安装Toolchain
首先安装需要用到的一些依赖包
$sudo apt-get update
$sudo apt-get install python-serial python-argparse openocd \
flex bison libncurses5-dev autoconf texinfo build-essential \
libftdi-dev libtool zlib1g-dev genromfs git-core wget zip \
python-empy
接下来还需要安装32bit运行时支持库等
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
然后再安装ARM Toolchain(GCC 4.8)
pushd .
cd ~
wget https://launchpadlibrarian.net/186124160/gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
exportline="export PATH=$HOME/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
. ~/.profile
popd
Nuttx配置的时候需要用到kconfig-mconf,因此手动安装kconfig-frontends,源码可以从官网去下载:http://ymorin.is-a-geek.org/projects/kconfig-frontends
wget http://ymorin.is-a-geek.org/download/kconfig-frontends/kconfig-frontends-3.12.0.0.tar.bz2
tar jxf kconfig-frontends-3.12.0.0.tar.bz2
编译kconfig-frontends会需要依赖gperf,先安装
sudo apt-get install gperf
然后编译安装kconfig-frontends
cd kconfig-frontends-3.12.0.0
./configure
make
sudo make install
编译Nuttx
首先通过git clone代码下来
git clone git://git.code.sf.net/p/nuttx/git
nuttx-git
(sudo git clone
https://github.com/PX4/NuttX ./)
cd nuttx-git
配置编译平台
cd nuttx/tools
./configure.sh stm32f4discovery/usbnsh
cd ..
make menuconfig
如果在make
menuconfig的时候提示找不到库libkconfig-parser-3.12.0.so,但实际刚才编译安装过了,所以创建一个link
sudo ln -s /usr/local/lib/libkconfig-parser-3.12.0.so /lib/libkconfig-parser-3.12.0.so
源码默认编译平台是windows,所以需要配置一下,在make
menuconfig弹出的菜单里配置编译平台为LinuxBuild Setup=>Build host
platform: Linux
最后保存退出,输入make,则开始编译,编译得到一个nuttx.bin文件,这个可以烧入STM32F4
Discovery板来运行。刚才配置的是usbnsh,因此如果正常运行起来,通过usb连接STM32F4
Discovery到PC会在PC上找到一个serail设备,用终端程序连接打开,就可以看到Nuttx的nsh界面了。