启扬智能-ARM嵌入式开发平台与方案提供商

才智横溢 / 卓越品质

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

发布日期:2021/07/23 01:38:40 发布者:admin

  启扬i.MX8M mini开发板Cortex-M4内核程序编译

  i.MX8M mini内置4核Cortex-A53和一个通用Cortex-M4小核,大核可以用来处理复杂的任务,而小核可以执行一些轻便任务。今天给大家演示如何用启扬i.MX8M mini开发板的Cortex-M4内核运行一个“Hello World”的demo。

  环境搭建

  启扬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.字样。

相关产品

i.mx8m mini开发板

    IAC-IMX8MM-Kit开发板