Skip to main content

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 снес, достало каждый раз править).

Технологии меняют мир 😉

Прошиваем.