
Nuttx - как да го подкараме ?
Ето едно съвсем кратко описание от типа 'как да' докараме нещата до работеща система.
Host os - Windows, target cpu архитектура - ARM.
1. Изисквания
1.1. GCC за ARM –
https://launchpad.net/gcc-arm-embedded и инсталиране. Проверете за наличие на път до %INSTALLDIR%\bin, ако няма го добавете.
1.2. Cygwin -
http://www.cygwin.com - setup-x86.exe, използват се настройките по подразбиране. По-долу е списък с инсталираните пакети (cygwin-pkg.zip, изход от ‘cygcheck –c’) – инсталират се липсващите(make, autotools, gcc, g++, libncurses-devel, libtool, bison и т.н.) Добавя се път до %INSTALLDIR%\bin и %INSTALLDIR%\usr\local\bin.
1.3. Nuttx - Отваряте команден прозорец и пишете: git clone
http://git.code.sf.net/p/nuttx/git nuttx-code. Ако нямате git -
http://msysgit.github.io/2. Компилация
2.1 Отивате в nuttx-code\misc\tools\kconfig-frontends и пишете: sh configure --enable-mconf --disable-gconf --disable-qconf, след това: make
При мен по някое време даде нещо такова:
libtool: link: warning: library `/usr/lib/libmenuw.la' was moved.
libtool: link: warning: library `/usr/lib/libpanelw.la' was moved.
libtool: link: warning: library `/usr/lib/libncursesw.la' was moved.
libtool: link: warning: library `/usr/lib/libmenuw.la' was moved.
libtool: link: warning: library `/usr/lib/libpanelw.la' was moved.
Отивате в %CYGWININSTALLDIR%\lib. Намирате например libmenuw.la, отваряте го и редактирате dependency_libs да изглкежда така: dependency_libs=' -L../lib /lib/libncursesw.la' и libdir така: libdir='/lib'
За другите файлове подобно - необходимо е да се редактират пътищата. След това make и make install
2.2. Отивате в nuttx-code\nuttx\tools. Пишете например: sh configure.sh sama5d3-xplained/nsh (само пример)
2.3. Отивате в nuttx-code\nuttx. Пишете make menuconfig. Преглеждате в Build Setup - Build Host Platform - Windows, Windows Build Environment - Cygwin. В System Type-Toolchain Selection(Generic GNU EABI toolchain under windows). Записвате конфигурaцията.
Излизате. след това пишете: make. Ако всичко мине без грешки като резултат ще имате nuttx.bin и nuttx.hex. При мен даде грешка в arm_syscall.c:433:3: error: 'current_regs' undeclared (first use in this function). Намирате файла и добавяте след последния '#else' - extern volatile uint32_t *current_regs;