网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

如何实现异构处理器间相互通讯——米尔带您玩

时间:2022-07-22 15:47

人气:

作者:admin

标签: 开发板 

导读:本篇测评由电子工程世界的优秀测评者“bloong”提供。此次测试的项目,是异构处理器间相互通讯项目。MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行Linux和RTOS。本文主要介...

本篇测评由电子工程世界的优秀测评者“bloong”提供。

此次测试的项目,是异构处理器间相互通讯项目。

MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行LinuxRTOS。本文主要介绍协处理器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根线就可以。

43ffc6b2-0595-11ed-9ade-dac502259ad0.png

44114e1e-0595-11ed-9ade-dac502259ad0.png

查看分区信息

启动开发板按任意键进入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=> 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=> setenv m7_image imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin

u-boot=> setenv m7_boot_temp_addr0x48000000

u-boot=> setenv m7_boot_addr0x7E0000

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-jx8mplogin: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!

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信