【Linux囊萤映雪】基于Ubuntu编译RT Linux SDK

【Linux囊萤映雪】基于Ubuntu编译RT Linux SDK
作者:火山

一, 文档简介

NXP MIMXRT产品的SDK能够支持windows,Linux,macOS三个系统,通常情况下,使用windows版本结合IDE编译的用户占绝大多数,而且文档也比较齐全。但是,对于Linux版本,虽然下载了SDK,里面也包含了文档,但是文档却和windows的一样,并不是针对Linux的。所以当少部分客户在使用Ubuntu Linux编译的时候,苦于没有文档参考,尤其新手使用起来比较困难。
本文将基于Ubuntu实现RT1060 linux版本SDK的编译。

二, 工具准备

需要准备一个带有Ubuntu系统的电脑,windows可以安装虚拟机带有ubuntu系统,本文使用的是网络服务器的Ubuntu系统。
测试所需工具:
Ubuntu system
cmake
ARMGCC:用于ARM Cortex M核的ARGCC
SDK:SDK_2_13_1_EVK-MIMXRT1060_linux.zip
EVK: MIMXRT1060-EVK
本文以MIMXRT1060为例,其他RT开发板Linux SDK编译情况一致。

2.1 SDK下载

下载链接:https://mcuxpresso.nxp.com/en/builder?hw=EVK-MIMXRT1060
在这里插入图片描述

图1
下载SDK代码,命名为:SDK_2_13_1_EVK-MIMXRT1060_linux.zip
如果在windows下下载,需要拷贝SDK到Ubuntu系统中,这里可以使用FileZilla或者MobaXterm,因为本人使用的是网络服务器Ubuntu,所以是基于MobaXterm,该款软件免费使用,下载链接:
https://mobaxterm.mobatek.net/
将下载好的SDK放到Ubuntu文件夹中:
在这里插入图片描述

图2
解压SDK:

unzip SDK_2_13_1_EVK-MIMXRT1060_linux.zip -d ./SDK_2_13_1_EVK-MIMXRT1060_linux

在这里插入图片描述

图3
在这里插入图片描述

图4
可以看到,SDK已经成功被解压到SDK_2_13_1_EVK-MIMXRT1060_linux文件夹
至此,Linux SDK已经准备好了。

2.2 ARMGCC下载安装与配置

下载ARMGCC,从SDK的release note中可以看到,支持的GCC Arm Embeded版本:GCC Arm Embedded, version is 10.3-2021.10
下载链接:https://developer.arm.com/downloads/-/gnu-rm
下载gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
拷贝到Ubuntu下并且解压,解压命令:

tar -xjvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

在这里插入图片描述

图5
在这里插入图片描述

图6
可以看到ARMGCC已经解压好。
下面配置下环境变量,添加ARMGCC_DIR到/etc/profile:
在profile的尾部添加路径保存退出:

export ARMGCC_DIR=/home/nxa07323/rtdoc/gcc-arm-none-eabi-10.3-2021.10/
export PATH=$PATH:/home/nxa07323/rtdoc/gcc-arm-none-eabi-10.3-2021.10/bin/

在这里插入图片描述

图7
生效profile,并且检查ARMGCC_DIR是否有效。

source /etc/profile
echo $ARMGCC_DIR

在这里插入图片描述

图8
至此,ARMGCC编译器已经就位!

2.3 cmake下载安装

编译还需要cmake,所以使用如下命令安装cmake,并且检查是否安装成功:

sudo apt-get install cmake
cmake –version

在这里插入图片描述

图9
Cmake也已经就位!

三, 实验操作

工具已经全部就位,下面开始编译代码,这里以hello_world为例,编译一个下载到flash的可执行文件.

3.1 可执行文件编译

进入到SDK的hello_world gcc路径下:
在这里插入图片描述

图10
可以看到,armgcc文件夹下有很多的文件,分别为生成不同image的可编译文件:
build_debug,build_release:the linker file is RAM linker, where text and data section is put in internal TCM.
build_flexspi_nor_debug, build_flexspi_nor_release: The linker file is flexspi_nor linker, where text is put in flash and data put in TCM.
build_flexspi_nor_sdram_debug, build_flexspi_nor_sdram_release: The linker file is flexspi_nor_sdram linker, where text is put in flash and data put in SDRAM.
build_sdram_debug, build_sdram_release: The linker file is SDRAM linker, where text is put in internal TCM and data put in SDRAM.
build_sdram_txt_debug, build_sdram_txt_release: The linker file is SDRAM_txt linker, where text is put in SDRAM and data put in OCRAM.
下面编译build_flexspi_nor_debug.sh,这个脚本会生成flash的.elf文件,命令:
./build_flexspi_nor_debug.sh
在这里插入图片描述

图11
编译好的.elf放在flexspi_nor_debug文件夹中:
在这里插入图片描述

图12
转换hello_world.elf文件为hex和bin,用于后续板子烧录,转换命令:

arm-none-eabi-objcopy -O ihex hello_world.elf hello_world.hex
arm-none-eabi-objcopy -O binary hello_world.elf hello_world.bin

在这里插入图片描述

图13

3.2 代码烧录测试

生成的hello_world.hex,hello_world.bin即可执行文件,可以通过MSD,serial downloader,或者debugger的软件下载到EVK的板子中。
打开bin文件查看下:
在这里插入图片描述

图 14
可以看到,这个文件是一个带有FCB的app可执行文件。
这里使用MCUbootUtility工具下载,开发板进入serial download模式:SW7 1-OFF,2-OFF,3-OFF,4-ON
在这里插入图片描述

图 15
可以看到烧录完成。
板子进入internal boot 模式:SW7 1-OFF,2-OFF,3-ON,4-OFF
在这里插入图片描述

图16
可以看到,能够成功打印,说明在Ubuntu下编译的可执行代码已经工作了。

3.3 代码配置

有些客户可能想,我们有些工具要装载的可执行文件不带FCB,那么在linux下如何实现呢,这里就要修改flags.cmake文件,路径:
/home/nxa07323/rtdoc/SDK_2_13_1_EVK-MIMXRT1060_linux/boards/evkmimxrt1060/demo_apps/hello_world/armgcc
配置BOOT_HEADER_ENABLE=0:
默认是BOOT_HEADER_ENABLE=1,如图17,修改为图18:
在这里插入图片描述

图17

在这里插入图片描述

图18
重新编译,生成.bin,查看bin文件:
在这里插入图片描述

图19
可以看到,这个文件是不包含FCB+IVT的单纯app文件。可以供不需要FCB的场合使用。
本文到此,可以实现RT1060 linux版本的SDK在Ubuntu下编译生成可执行文件,并且通过烧录测试功能正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值