DRAFT MCU nuttx
DRAFT v0.1: nuttx+stm32f103 – Быстрый старт с nuttx и дешевым контроллером stm32f103.
Чтобы не забыть процесс развертывания/инсталляции, записываю, глядишь, кому еще пригодится.
Ставим Arch Linux (я развернул в VirtualBox). Пользователь создан, sudo установлен и настроен – я не затрагиваю настройки ни виртуальной машины, ни собственно ОС, предполагаю, что эти настройки уже сделаны.
Можно не отшивать на виртуалке (соотв. можно не ставить пакеты openocd/gdb – но тут есть нюансы в отладке), я забираю файл на локальную машину (машина с виртуалкой находится ну совсем не под боком 😉 ) – использую scp (с настроенным natpf). Исходники правлю на локальной машине (macOS, откровенно влом возиться с кросс-компиляторами), иногда на другой машине, иногда вообще на виртуальной же Windows. Среда разработки Geany, иногда vim (syntastic снес, достало каждый раз править), обязательно развернуты локальные репозитории + OpenGrok (пока ничего удобнее и проще под домашний серверок найти не удалось).
Ставим дополнительные пакеты.
sudo pacman -S arm-none-eabi-gcc arm-none-eabi-gdb \
stlink openocd gcc make gperf flex bison
Клонируем исходный код NuttX.
[ -d NuttX ] || mkdir Nuttx && cd NuttX
git clone https://bitbucket.org/nuttx/nuttx
git clone https://bitbucket.org/nuttx/apps
git clone https://bitbucket.org/nuttx/tools
Собираем фронтенды (нам по сути нужен только ncurses, но на опции забиваем).
cd tools/kconfig-frontends
./configure
make
sudo make install
Собираем собственно операционку.
cd ../../nuttx/tools
./configure.sh stm32f103-minimum/nsh
cd ../
make menuconfig
make -j8
Занимает около 1,5 минут на однопроцессорной виртуальной машине.
Можно не отшивать на виртуалке, я забираю файл на локальную машину (машина с виртуалкой находится ну совсем не под боком 😉 ) – использую scp (с настроенным natpf). Исходники правлю на локальной машине (macOS, откровенно влом возиться с кросс-компиляторами), иногда на другой машине, иногда вообще на виртуальной же Windows. Среда разработки Geany, иногда vim (syntastic снес, достало каждый раз править).
Технологии меняют мир 😉