Это первый пробный проект на базе nuttx.
Разработать драйвер SPI и приложение для взаимодействия с ним.
Приложение должно отправлять в SPI два типа данных:
- Счетчик
- Произведение двух случайно сгенерированных матриц
Реализовать работу драйвера в двух задачах.
- При разработке я исходил из того, что вносить изменения в код nuttx, в том числе добавлять новый код, не нужно. Таким образом новый драйвер описан не в папке
nuttx/drivers
, а в папке приложения. - Драйвер взаимодействует с условным устройством под названием "denis"
- Не реализована поддержка CS для SPI. Нужно больше времени
Вероятно, подход "чистого" репозитория nuttx неправильный. И добавлять поддержку новых плат, устройств и их драйверов нужно непосредственно в nuttx. Тогда не было бы проблем с SPI CS.
Проект основан на nuttx версии 11.0.0-RC2
Необходимо, чтобы в общей папке были помещены два репозитория:
git clone https://github.com/apache/incubator-nuttx.git nuttx
git clone https://github.com/apache/incubator-nuttx-apps apps
Более подробно можно посмотреть тут
cd apps/examples
git clone git@github.com:chuyec/nuttx-test-task.git test_task
cd test_task
git submodule update --recursive
cd nuttx
make distclean
tools/configure.sh -l stm32f4discovery:nsh
cd nuttx
make apps_distclean
make menuconfig
Application Configuration ---> Examples --->
Select[*] Test Task
RTOS Features ---> Tasks and Scheduling ---> Application entry point --->
Type'test_task_main'
System Type ---> STM32 Peripheral Support --->
SelectSPI1
Library Routines ---> Standard C I/O --->
SelectEnable floating point in printf
cd nuttx
make
openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg -c 'init' -c 'program nuttx verify reset' -c 'shutdown'
picocom -b 115200 /dev/ttyACM0