此次测试的项目,是异构处理器间相互通讯项目。
MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行Linux和RTOS。本文主要介绍协处理器M7使用方法。M7在运行时可能会涉及到和A53核共用资源,这里列举出会冲突资源如下:
ECSPI0/ECSPI2,FLEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,UART4,PWM4,SDMA1/SDMA2,所以在一起使用时,需要将A53的这些资源关闭,这里就需要用到myd-jx8mp-rpmsg.dtb设备树。这里的M7使用uart4 作为串口。
下文介绍如何使用M7,以及编译M7程序的方法:
M7使用方法
接两个串口:1个是开发板的Debug串口,另一个是M7的UART4串口。
1、Debug口为J4及TYPE-C Debug;
2、UART4口为J6,下图中红色箭头指示位置为pin1即UART4_TXD,据此pin2即UART4_RXD,pin3为GND。接这3根线就可以。


查看分区信息
启动开发板按任意键进入uboot模式,查看vfat分区中存在的文件。
u-boot=> fatls mmc2
29209088Image
8208imx8mp_m7_TCM_hello_world.bin
19040imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
18528imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin
40948imx8mp_m7_TCM_sai_low_power_audio.bin
62815myd-jx8mp-atk-10.dtb
61702myd-jx8mp-base.dtb
62815myd-jx8mp-hontron-7.dtb
62846myd-jx8mp-lt8912.dtb
62555myd-jx8mp-m190etn01-19.dtb
62619myd-jx8mp-rpmsg.dtb
2113024tee.bin
12file(s),0dir(s)
设置M7设备树
kernel加载的设备树由fdt_file变量决定,这里设置成M7专用设备树。
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-base.dtb
u-boot=> setenv fdt_file myd-jx8mp-rpmsg.dtb
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-rpmsg.dtb
u-boot=>
设置M7启动参数
M7启动流程也是加载M7程序到内存,用bootaux命令启动, 正常kernel启动也一样,只是最后用bootm启动。
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-rpmsg.dtb
u-boot=> setenv m7_image imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin
u-boot=> setenv m7_boot_temp_addr 0x48000000
u-boot=> setenv m7_boot_addr 0x7E0000
u-boot=> setenv m7_run 'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem
> p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bo
> otaux ${m7_boot_addr}'
u-boot=> setenv m7_run 'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bootaux ${m7_boot_addr}'
u-boot=> setenv mmcboot "run m7_run;${mmcboot}"
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=>
测试M7程序
此时已经设置好了M7启动,只需要重启开发板,那么在A53启动kernel同时,也会启动M7中的程序。启动之后A53的串口执行如下2句,既可以看到M7中串口出现对应的打印。
myd-jx8mp login: root
root@myd-jx8mp:~# modprobe imx_rpmsg_tty
root@myd-jx8mp:~# [ 33.759911] can1-stby: disabling
[ 33.763151] can2-stby: disabling
[ 33.766408] VSD_3V3: disabling
[ 33.769489] m2_keyb_pwr: disabling
echo "hi m7!" > /dev/ttyRPMSG30
root@myd-jx8mp:~# cat /dev/ttyRPMSG30
hi m7!
审核编辑 黄昊宇
-
通讯
+关注
关注
9文章
919浏览量
35210 -
编程
+关注
关注
88文章
3648浏览量
94312 -
异构处理器
+关注
关注
0文章
9浏览量
6470 -
米尔科技
+关注
关注
5文章
227浏览量
21206
发布评论请先 登录
相关推荐
i.MX8MPlus开发板实现SPI转CAN,该如何操作?

迅为i.MX8M Mini开发板-多核异构CPU低功耗
使用i.MX8MPlus运行Windows 10 IoT系统,遇到了三星eMMC的兼容性问题如何解决?
请问I.MX8MPlus板在网络中是否可以作为节点或路由器或两者兼而有之?
OKMX8MP操作说明 :飞凌嵌入式 iMX8MP平台系统设置

如何实现异构处理器间相互通讯——米尔带您玩转i.MX 8M Plus开发板

启扬i.MX8M Plus核心板、开发板编解码性能测试

技术分享 | 启扬i.MX8M Plus开发板适配LVDS屏幕

技术分享 | i.MX8M Plus开发板支持ov5640

技术分享 | i.MX8M Plus开发板交叉编译qt5.15.2

NXP开发板有哪些?基于NXP i.MX 6UL、i.MX 8M Mini、i.MX 8M Plus、LS1028A的开发板概述

评论