ATSAMV7Xult板卡调试Nuttx系统----NuttX系统的编译

1. NUTTX以及APP源码下载

下载Nuttx以及APP的源码包
https://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.17/nuttx-7.17.tar.gz
https://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.17/apps-7.17.tar.gz

下载完成后,解压缩至同一个目录下,比如/home/user/nuttx
/home/user/nuttx/nuttx-7.17

/home/user/nuttx/apps-7.17

注意:nuttx-7.17与apps-7.17一定要放在同一个目录下,编译的时候回自动寻找apps目录;


2.Nuttx的编译主要分为如下几个步骤

2.1 生成编译板卡的默认配置信息
以ATMEL板卡samv71-xult为例,TOPDIR为/home/user/nuttx/nuttx-7.17
$ cd /home/user/nuttx/nuttx-7.17/tools 
$ ./configure.sh samv71-xult/nsh
注意:
必须切换到tools目录下再执行 ./configure.sh samv71-xult/nsh,否则会提示无法找到../configs目录

说明:
A> samv71-xult
位于TOPDIR/configs目录下,是一种待编译的板卡配置;
上述操作完成如下内容
把TOPDIR/configs/samv71-xult/nsh/defconfig复制到NUTTX工程目录(TOPDIR下命名为.config,
把TOPDIR/configs/samv71-xult/nsh/setenv.sh复制到NUTTX工程目录TOPDIR/)下;
把TOPDIR/configs/samv71-xult/nsh/Make.defs复制到NUTTX工程目录(TOPDIR/)下;

B>NSH位于目录/home/user/nuttx/nuttx-7.17/configs/samv71-xult/下,samv7-xult平台的一个应用,后用户定制自己的应用时,可以改成自定义APP的名字,

此时用户可以手动执行make menuconfig进入图形界面进行详细配置,首次编译建议使用对应板卡形态的默认配置,随着对板卡的熟悉,逐步对系统进行裁剪和定制,添加和删除相关选项;

2.2 加载环境变量
切换至NUTTX工程目录(/home/user/nuttx/nuttx-7.17/),加载刚刚copy好的env文件
$ cd /home/user/nuttx/nuttx-7.17/
$ source ./setenv.sh

3.3 系统编译
切换至Nuttx工程目录,执行Make进行工程构建
$ cd /home/user/nuttx/nuttx-7.17/
$ make CROSSDEV=arm-none-eabi-

说明:

A> 由于前面环境配置时,已经把toolchain路径添加至PATH路径,因此这里直接执行make即可完成构建

B> 用户的toolchain名字如果不是arm-none-eabi-,这里的CROSSDEV可以其他的toolchain名字,比如CROSSDEV=arm-linux-


3.4 编译时遇到问题:
编译时会提示如下错误” error: target CPU does not support ARM mode”,
arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -Os -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer -mcpu=cortex-m3 -mfloat-abi=soft -I. -isystem /home/user/nuttx/nuttx-7.17/include -D__KERNEL__ -pipe
error: target CPU does not support ARM mode

定位下来是由于未打开如下两个编译选项导致
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y 
CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=n

解决方法:
把上述编译选项添加至公共的Config.mk中

打开文件/home/user/nuttx/nuttx-7.17/tools/Config.mk
在最后面添加如下内容后再次编译OK
ifneq ($(CONFIG_WINDOWS_NATIVE),y)
    CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y
    CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=n
endif


最后笔者文档水平有限,希望大家多多指点!!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值