如何使用i.MX8M mini开发板的Cortex-M4内核进行程序编译?

i.MX8M mini内置4核Cortex-A53和一个通用Cortex-M4小核,大核可以用来处理复杂的任务,而小核可以执行一些轻便任务。

今天给大家演示如何用启扬i.MX8M mini开发板的Cortex-M4内核运行一个“Hello World”的demo。

启扬i.MX8M mini

nxp i.MX8M mini

环境搭建

启扬i.MX8M mini开发板在启动时会首先启动A53核,然后再启动M4核,所以我们需要先从外部存储器将M4的镜像加载到内存中,这里我们选择SD卡加载到内存(TCML/DDR)。

首先我们需要从NXP官网下载官方提供的M4核SDK以及相关演示镜像

下载内容如图所示:

图片

因为这里需要编译M4核镜像,所以就不再使用编译A53内核镜像的交叉编译器,而是使用新的交叉编译器,如下图所示:

图片

交叉编译器安装完毕后我们需要将交叉编译器声明,命令如下:

export ARMGCC_DIR=GCC路径

export PATH=$PATH:GCC路径/bin

在编译之前我们还需要安装一些工具,防止编译出错,命令如下:

sudo apt-get install make

sudo apt-get install cmake

以上便是相关环境的搭建。

M4内核演示程序编译

首先,进入启扬i.MX8M mini的demo文件中,这里的路径是

/home/ylook/Linux/m4/sdk/boards/evkmimx8mm/demo_apps/hello_world

内容如下图所示,主要是demo的相关源文件以及头文件,还有已经编译好的bin文件。 

图片

因为我们要将demo编译到自己的内存上使用,所以就不再使用它提供的bin镜像。首先进入到armgcc目录中,这里有NXP提供用于制作镜像的脚本,不同的内存使用不同的脚本进行编译,且镜像的链接地址也不尽相同,具体可见sdk目录下的docs目录。

图片

这里我们选择build_release.sh这个脚本,符合我们sd卡加载ddr的配置,./build_release.sh运行编译,编译结束后会在release目录下生成我们需要的bin镜像文件,如下图所示:

图片

hello_world.bin就是我们所需要的镜像文件。

接下来,我们首先将bin文件拷贝到SD卡中,这里需要注意SD卡最好保留一个分区以便uboot加载时能够很好地找到拷贝的文件。

插入SD卡,停留在uboot处,通过mmc list命令可以查看目前我们板子上有哪些mmc设备,如图显示有sd卡和emmc两种。

图片

mmc dev 0命令将当前mmc设备设置为sd卡;

mmc info命令查看sd卡的信息,保证我们的sd卡是完好且被识别的;

mmc part命令查看mmc分区信息,显示一个分区。

图片

图片

确认无误后,将M4调试串口连接。因启扬i.MX8M mini开发板的M4调试串口为ttl电平,所以需要对应的串口连接,串口配置如下:

图片

配置完M4调试串口后,我们在A53上加载M4镜像,命令如下:

fatload mmc 0:1 0x48000000 hello_world.bin

cp.b 0x48000000 0x7e0000 0x20000

bootaux 0x7e0000

图片

运行成功的话就可以在m4调试串口上看到打印hello world.字样。

图片

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值