无标题
IMX8MP-EVK MCU
uboot启动M7
进入uboot后 查看mmc设备
mmc list |
看到如下
FSL_SDHC: 1 # SD |
再查看emmc 第一个分区的内容,会有m7的程序
fatls mmc 2:1 |
直接运行
- 对于编译出来的运行在 TCM上的固件
TCM (Tightly Coupled Memory) - 紧耦合存储器
位置:通常位于核心处理器芯片内部或非常靠近核心的地方(片上内存,OCRAM/SRAM)。
速度:极快,通常与 CPU 核心时钟同步,访问速度接近 L1 Cache,无延迟。
用途:主要用于存储 关键代码(如实时操作系统 RTOS 内核、中断处理程序、设备驱动程序)和 实时数据。在异构系统(如 i.MX M7 核心)中,M7 的代码通常被复制到 TCM 中执行。
大小:较小(通常为几十 KB 到几 MB)。
特性:不可缓存。处理器直接访问它,因此访问是可预测的,非常适合 实时 应用。
fatload mmc 2:1 0x48000000 mcore-demos/imx8mp_m7_DDR_hello_world.bin;cp.b 0x48000000 0x7e0000 20000; |
他的步骤是将2:1分区上的固件加载到DDR上,再从DDR临时内存上拷贝到M7核心实际运行的内存(cp.b 表示按字节复制)
- 对于运行在DRAM上的固件
fatload mmc 2:1 0x80000000 hello_world.bin |
- 对于运行在flash上的固件
sf probe # 初始化 SPI Flash |
提示:如果os和M7同时运行,需要设置特殊的设备树,在uboot设置 setenv fdtfile ‘imx8mp-evk-rpmsg.dtb’
linux启动M7
使用的是Linux Remote Processor (rproc)模块, 系统的设备树得用*-rpmsg.dtb
kernel中是默认将imx_rpmsg_tty以模块加载进去了
设备树也不需要改
- 在uboot中启动M核
# 准备和初始化协核 (Cortex-M) |
- 进入系统后设置并启动m核程序
# 启动虚拟串口 (查看消息 nxp官方的demo可以用这个虚拟串口来查看) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雷子集中营!


