Nuttx的编译与构建

2 篇文章 0 订阅
2 篇文章 0 订阅

Nuttx的编译与构建

这篇文章是我编译和构建Nuttx的过程,也算是一篇笔记。主要内容如下:

  • Nuttx的简介
  • 编译环境搭建
  • 编译步骤
  • 下载到目标版

1.什么是Nuttx?

Nuttx是一个实时操作系统(RTOS),可以运行在8位至32位微控制器。它符合POSIX和ANSI标准 ,是一个类linux的操作系统。 —— [ 维基百科 ]

编译环境:xubuntu 14.10 32位

2.准备工作

在编译之前要先安装各种依赖包。

$ sudo apt-get install autoconf libtool gperf flex bison  
$ sudo apt-get install autoconf2.13 
$ sudo apt-get install libncurses-dev
$ sudo apt-get install libusb-1.0-0-dev
$ sudo apt-get install libsgutils2-dev
$ sudo apt-get install genromfs

编译Nuttx需要kconfig-frontends,下载并编译安装kconfig-frontends。

$ git clone https://github.com/jameswalmsley/kconfig-frontends.git
$ cd kconfig-frontends
$ ./bootstrap
$ ./configure --enable-mconf
$ make
$ sudo make install
$ sudo ldconfig

3.下载Nuttx

到Nuttx的Bitbucket下载源码,注意:除了Nuttx的源码还要下载app文件夹里的内容,并且把它和Nuttx的文件夹放到一起。
将nuttx与apps放到一起
然后配置nuttx,这里根据使用的板子不同选择不同的配置文件,我这里使用的是STM32F4DISCOVERY。进入nuttx-7.15文件夹然后,进入tools文件夹,使用configure.sh拷贝相关文件。

$ cd nuttx-7.15/
$ cd tools/
$ ./configure.sh ../configs/stm32f4discovery/usbnsh

这里nuttx提供了两种与STM32F4DISCOVERY通信的方式,USB和UART。如果要使用USB与STM32F4DISCOVERY通信,则使用上述命令;如果使用UART与STM32F4DISCOVERY通信,则使用如下命令:

$ ./configure.sh ../configs/stm32f4discovery/nsh

最后还有一个不容忽视的一步:设置环境变量。在nuttx-7.15目录下,打开setenv.sh,根据你的情况修改TOOLCHAIN_BIN的路径,然后别忘了 ‘source ./setenv.sh’,所有这些完成后就可以编译了。

$ make oldconfig
$ make menuconfig
$ make

编译完成后会在nuttx-7.15目录下生成nuttx.binnuttx.hex两个文件。

4.下载可执行文件到目标板上

STM32F4DISCOVERY上自带了stlink,因此需要安装stlink驱动。下载并安装stlink

$ ./autogen.sh
$ ./configure
$ make

安装完成后复制rules文件到/etc/udev/rules.d/下:

$ cp stlink/etc/udev/rules.d/* /etc/udev/rules.d/

使更改生效:

$ sudo udevadm control --reload-rules
or
$ sudo restart udev

方便使用,可以将stlink相关命令添加到PATH1中.将STM32F4DISCOVERY连接到电脑上,现在可以测试stlink是否正确安装,输入st-util,如果正常会显示:

st-util

一切正常,就可以将nuttx.bin下载到板子里了:

$ st-flash write nuttx.bin 0x8000000

下载完成后,用USB线将板子与电脑连接上(此时STM32F4DISCOVERY的两个USB口都被使用了)就可以与电脑通信了,通过USB与电脑通信,此时板子会被电脑识别成ttyACM*设备,通常ttyACM0是stlink,ttyACM1才是通信口。这里使用screen命令连接nsh(nuttx的shell):

$ sudo screen /dev/ttyACM1

回车后,如果没有任何显示,按三下回车应该会有反馈。
nsh
输入help可以查看命令:
help

这里有一张接口图,注意这里 “USB STLINK”应该是 “ttyACM0”,”USB Bootloader”应该是”ttyACM1”。
stmf4board



  1. echo “export PATH=$PATH:/path/to/dir” >> ~/.bashrc
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值