下载nuttX及编译
- 1、NuttX官方链接
- 2、NuttX及App工程下载
- 3、编译NuttX中STM32F103V nsh测试例程
- 4、在ubuntu下使用串口来烧录目标文件至STM32F103V
- 4.1、ubuntu下stm32flash工具下载
- 4.2、ubuntu下stm32flash工具编译及编译错误解决
- 5、烧录nuttx.bin至STM32目标板
- 6、重新启动系统进入NuttX shell模式
1、NuttX官方链接
官方门户:https://nuttx.apache.org/
官方wiki:https://cwiki.apache.org/confluence/display/NUTTX/NuttX
gitHub:https://github.com/apache/incubator-nuttx
2、NuttX及App工程下载
运行如下命令创建工程目录:
mkdir nuttx
进入到上面新创建的目录下,执行如下命令下载NuttX及App工程:
git clone https://github.com/apache/incubator-nuttx.git nuttx
git clone https://github.com/apache/incubator-nuttx-apps.git apps
下载完成之后得到如下两个工程目录:
3、编译NuttX中STM32F103V nsh测试例程
运行如下命令配置测试例程:
cd nuttx
tools/configure.sh -l stm32f103-minimum:nsh
将看开始配置例程相关环境:
配置完成之后输入如下命令开始编译:
make -j4
注:这里-j4是同时允许4个make任务并行编译,以加快编译时间
编译完成之后将看到如下提示:
在nuttx目录已经生成了相应的目标文件:nuttx.bin了。
下面我们来看看如何在ubuntu环境下来烧录这个目录文件至STM32F103V目标板。
4、在ubuntu下使用串口来烧录目标文件至STM32F103V
4.1、ubuntu下stm32flash工具下载
要想使用串口来烧录STM32,先得下载一个stm32flash的工具,工具的源代码地址及下载方法如下:
gitHub地址:https://github.com/ARMinARM/stm32flash
git clone https://github.com/ARMinARM/stm32flash.git
下载完成之后将得到一个stm32flash的工程目录。
4.2、ubuntu下stm32flash工具编译及编译错误解决
进入到stm32flash目录下执行如下命令进行编译:
make -j4
得到如下错误:
在i2c.c这个文件中增加如下内容:
重新执行编译即可成功。
执行如下命令安装stm32flash:
sudo make install
至此串口烧录工具stm32flash安装成功。
5、烧录nuttx.bin至STM32目标板
首先把stm32的boot0脚拉高,boot1脚置低,让STM32进入系统程序烧录模式
STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:
用户闪存: BOOT1=x BOOT0=0 芯片内置的Flash,即主存储器Flash
SRAM: BOOT1=1 BOOT0=1 芯片内置的SRAM 区,就是内存啦。
系统存储器: BOOT1=0 BOOT0=1 芯片内部一块特定的区域,叫做系统存储器。
执行如下命令测试STM32状态:
sudo stm32flash /dev/ttyUSB0
正常情况下会得到如下信息:
如何出现如下信息,请按复位键重试一次:
执行如下命令烧录目标文件:
sudo stm32flash -w nuttx.bin -v -g 0 /dev/ttyUSB0
正常情况下得到如下信息,说明烧录成功。
如果出现Failed to init deivce.的信息,请按复位键再重新执行一次上面的烧录命令。
6、重新启动系统进入NuttX shell模式
将BOOT0及BOOT1全部置为0,然后重新上电,运行如下命令通过串口登录STM32,将会得到如下命令,说明NuttX成功在STM32F103上运行起来了!
sudo minicom -D /dev/ttyUSB0
注:没有安装minicom请事先执行命令sudo apt install minicom进行安装
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)