NuttX est un système d’exploitation POSIX et temps réel disponible pour plusieurs familles de microprocesseurs 8 et 32Bits. Il est complètement supporté sur la carte STM32F4-DISCOVERY. Son empreinte mémoire est très faible, environ 8ko sur les 192ko du STM32F407: dérisoire par rapport aux services rendus.
Pour compiler NuttX, vous aurez besoin (en plus de la chaîne de compilation ARM-GCC) de kconfig-frontends
.
Si vous avez déjà compilé le noyau de votre distribution Linux, vous avez forcement utilisé ces outils (make menuconfig
, ça vous dit quelque chose?). Pour l’installer, récupérez la dernière version ici, puis
tar xjf kconfig-frontends-*.tar.bz2 cd kconfig-frontends* ./configure.sh make sudo make install
Pour macOS, la dernière commande installe les fichiers suivants:
/usr/local/bin/kconfig-conf /usr/local/bin/kconfig-diff /usr/local/bin/kconfig-mconf /usr/local/bin/kconfig-merge /usr/local/bin/kconfig-nconf /usr/local/bin/kconfig-tweak /usr/local/include/kconfig /usr/local/include/kconfig/expr.h /usr/local/include/kconfig/list.h /usr/local/include/kconfig/lkc.h /usr/local/include/kconfig/lkc_proto.h /usr/local/lib/libkconfig-parser-3.12.0.dylib /usr/local/lib/libkconfig-parser.dylib /usr/local/lib/libkconfig-parser.la /usr/local/share/doc/kconfig-frontends /usr/local/share/doc/kconfig-frontends/kconfig-language.txt /usr/local/share/doc/kconfig-frontends/kconfig.txt
Il ne reste plus qu’a suivre la procédure indiquée sur le site de NuttX: récupérez les sources de NuttX:
git clone https://bitbucket.org/nuttx/nuttx.git nuttx git clone https://bitbucket.org/nuttx/apps.git apps cd nuttx/tools
Pour configurer la console sur le port micro-USB (CN5), tapez la commande suivante:
./configure.sh stm32f4discovery/usbnsh
Si vous préférez utiliser l’UART2, tapez:
./configure.sh stm32f4discovery/nsh
Dans ce cas, il vous faut un adaptateur (USB) RS232 vers TTL. le brochage de l’UART2 est le suivant:
PA3(Rx) -> Tx(uart-TTL) PA2(Tx) -> Rx(uart-TTL)
Configurez NuttX en fonction de la carte:
make menuconfig
Dans le menu Build Setup->Build Host Platform
, Sélectionnez OSX
pour MacOS ou Other
pour FreeBSD. Puis,
make st-flash --reset write nuttx.bin 0x08000000
Pour se connecter sur la console, vous pouvez utiliser cu
:
sudo cu -l /dev/cuaU0
Si vous avez configuré la console sur l’UART2, il faut préciser la vitesse du port:
sudo cu -l /dev/cuaU0 -s 115200
Liens
- Le canal NuttX sur youtube avec de nombreux tutoriels