i.MX 8MM如何在uboot运行M4程序

原创 2020-01-10 13:15:00 i.MX 8MM uboot M4

OKMX8MM-C 平台内部有一个Cortex-M4内核,可以使用MCUXpresso SDK进行开发,MCUXpresso SDK是微控制器软件支持的集合,它包含外围驱动程序,RPMSG多核通信,以及FreeRTOS支持。可以查看SDK API文档了解它实现的函数和结构体。

MCUXpresso SDK支持IAR或者armgcc两种方式编译镜像,编译可以生成三种镜像,分别运行在QSPI flash、ram、DDR中。编译方法参考飞凌Linux手册或SDK_2.5.0_EVK-MIMX8MM使用手册Getting Started with MCUXpresso SDK for i.MX 8M Mini。

下面介绍编译出的三种镜像如何在uboot启动,以最简单的hello world为例,程序启动后会在uart4输出“hello world.”。

一、如何在uboot启动QSPI flash版本的M4程序

首先需要将M4程序烧写到QSPI flash中,可以通过TF卡或者UUU工具(可以参考飞凌linux手册)。

然后在uboot启动QSPI flash中的M4核程序。

初始化QSPIflash

sf probe

M启动M4核程序

bootaux 0x8000000

输入命令




二、如何在uboot启动ram版本的M4程序

首先需要在uboot将M4程序读取到ram中。

如在M4程序在emmc固定位置中,假定存放位置为MMC的10M偏移处。选择存放了M4程序的emmc作为当前mmc设备

mmc dev 1

将10M偏移处(0x2800 * 512 = 102400)读取50K到ram中

mmc read 0x7e0000 2800 100

如果在M4程序在U盘的fat分区中,

usb start

fatload usb 0:1 0x7e0000 hello_world.bin

然后在uboot启动ram版本的程序

bootaux 0x7e0000

0x7e0000为M4程序的地址

输入命令后




查看结果




三、如何在uboot启动DDR版本的程序

首先需要在uboot将M4程序读取到DDR中。

如在M4程序在emmc固定位置中,假定存放位置为MMC的10M偏移处。选择存放了M4程序的emmc作为当前mmc设备

mmc dev 1

将10M偏移处(0x2800 * 512 = 102400)读取50K到DDR中

mmc read 0x80000000  2800 100

dcache flush

如果在M4程序在U盘的fat分区中,

usb start

fatload usb 0:1 0x80000000  hello_world.bin

然后在uboot启动ram版本的程序

bootaux 0x80000000  

0x80000000为M4程序的地址

输入命令


查看结果




特别注意:

编译生成的不同版本的M4程序,要严格按照编译版本进行加载,并跳转到其加载地址运行。

如果编译的镜像没有放到其需要运行的存储空间内(ram版放到ram、DDR版放到DDR内,QSPIflash版放到QSPIflash内),M4程序程序是不能运行的。例如M4程序是编译的QSPIflash版本的,把其放入到DDR或者ram内运行,程序无法运行。

希望大家看到有所收获,指出问题共同进步,在飞凌的技术支持和分享中获得更多的知识。



相关产品 >

  • FETMX8MM-C核心板

    NXP i.MX8系列分为iMX8I、i.MX8M、i.MX8Mini、iMX8M Nano、iMX 8X等,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,搭配实时任务处理的Cortex-M4和Cortex M7的解决方案,适用于从消费家庭音频到工业楼宇自动化及移动计算机等。飞凌嵌入式近期推出的iMX8系列i.MX8Mmini核心板基于四核Cortex-A53、单核Cortex-M4架构的i.MX 8Mmini 处理器设计,现已全面上市,更多i.MX8M核心板产品、解决方案详情,欢迎致电飞凌嵌入式了解。

    了解详情
    FETMX8MM-C核心板
  • OKMX8MM-C开发板

    多数字音频接口,多核异构A53+M4,10年+生命周期|NXP公司 i.MX8系列应用处理器根据不同配置有i.MX8I、iMX8M、i.MX8Mini、iMX8M Mini、iMX8M Nano、iMX 8X ,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,此外还提供实时任务处理的Cortex-M核心(Cortex-M4和Cortex M7)的解决方案,因此,NXP i.MX8系列应用处理器在高级图形、高级成像、高级机器视觉、高端音频、高端语音、高端视频和高安全的嵌入式应用等跨领域的多种应用场景非常适用。飞凌嵌入式i.MX8M Mini开发板基于NXP 公司的i.MX8M Mini 四核64位处理器设计,主频最高1.8GHz,ARM Cortex-A53架构。IMX8开发板是一款高性能,低功耗产品,欢迎选购。更多IMX8芯片介绍,IMX8系列软硬件资料,i.MX8M mini方案定制,请联系飞凌嵌入式

    了解详情
    OKMX8MM-C开发板

推荐阅读 换一批 换一批