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