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


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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你不知道的SAM V系列MCU:SAM V MCU基于 ARM Cortex:trade_mark:-M7 的微控制器系列可提供最佳的连接接口组合,包括以太网 AVB、MediaLB、USB 和 CAN-FD,以及可提供高达 1500 CoreMark 的高性能 ARM Cortex-M 内核。SAM V MCU专注于音频放大器、汽车通信控制单元或车头单元的车载信息娱乐链接。 关键特性: 高性能—由于 Cortex-M7 能够以 300 MHz 的频率运行,外加前所未有的 DSP 性能,可实现高达 1500 CoreMark 先进的存储器架构— 高达 384 KB 的多端口存储器,其中高达 256 KB 可分配作为紧密耦合存储器(数据和指令),实现以 300 MHz 频率运行时零等待 以太网 AVB— SAM V71 在以太网 MAC 中嵌入了对音频视频桥接 (AVB) 的特定硬件支持。在 MAC 的硬件中实现了基于信用的流量整形,从而无需 CPU 干预 高速 USB— 主机和器件模式高速 USB 控制器集成了 PHY 以降低 BOM 成本 MOST 连接— MediaLB 3 线接口可无缝集成到 MOST 总线 音频接口— 灵活的 TDM/I2S 接口可以连接音频源、编解码器或 DSP CAN-FD— 最新的 CAN 2.0 和 CAN 灵活数据速率 (FD) 控制器可实现更高带宽 汽车等级— 通过 AEC-Q100 等级 2 (-40C/105C) 认证 2015年最新评估开发板——SAM V71 Xplained Atmel年初刚刚推出了基于SAM V71Xplained评估套件,目前已在官网发布出售。 开发板资源: 处理器:ATSAMV71Q21(ATSAMV71Q21数据手册) 用户:一个电源开关按钮、一个机械复位按钮、两个用户按钮、两个黄色LED指示灯 存储:2MB SDRAM、2MB QSPI Flash、256KByte EEPROM 网口:IEEE 802.3az 10Base-T/100Base-TX Ethernet RMII PHY 媒体接口:立体音频编解码器、相机接口、耳机和麦克风接口 SDIO接口SD连接器、CAN收发器 MediaLB接口 接口:外部调试连接器接口、一个扩展LCD接口、两个外部扩展接口、调试接口、虚拟COM口、USB接口 电源:外部电源输入、USB供电 用到的主要芯片: 基于 ARM Cortex:trade_mark:-M7 的微控制器:ATSAMV71Q21 AVR 32-bit RISC MCU:AT32UC3A4256J CAN收发器:ATA6561-GBQW 超低功耗、便携式音频编解码器:WM8904 IEEE 802.3az 10Base-T/100Base-TX Ethernet RMII PHY:KSZ8061RNBVA 2kbit I2C EEPROM:AT24MAC402-MAHM-T

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值