基于IMX8MM处理器Cortex-A核和Cortex-M核的RPMsg通信方案

描述

RPMsg介绍

RPMsg全称为 remote processor messages,是一种基于virtio的消息传递总线,专为异构处理器系统之间的通信设计。

主要特点:

1.标准化接口:RPMsg定义了一个标准化接口,用于在异构多核系统中的多个核之间进行通信。

2.高效通信:利用virtio管理机制实现高效数据传输。

IMX8MM平台优势

高速性能 稳定好用

迅为-i.MX8M Mini核心板采用了先进的14LPC FinFET工艺,提供更快的速度和更高的电源效率。支持工业控制设备和消费电子设备,在恶劣环境中运行应用程序。

强大的视频处理能力

迅为iMX8MM 开发板支持 H264,VP8 格式的视频编码,最大支持1080p60fps。支持H264,H265,VP8,VP9 视频硬解码,最大支持1080p60fps,并提供相关历程。

H265编码更流畅,您可以随时随地查看你所关心场景的监控视频。

功耗更低 更稳定

迅为i.MX8M Mini采用PCA9450A电源管理,拒绝老旧方案,采用NXP全新研制配套i.MX8M Mini的电源管理芯片,有六个降压稳压器、五个线性稳压器和一个负载开关,为整个系统的稳定运行提供了更可靠的保证。

丰富接口配置 满足多种使用场景

齐全的接口配置,千兆工业级以太网、PDM接口、SAI接口、SpeakerMIPI-DSI、CAMERA、USB HOST、WIFI/BT、4G模块等一应俱全。

方案演示

演示demo为 rpmsg_lite_pingpong_rtos

代码位于SDK中:drivers/rpmsg/imx_rpmsg_pingpong.c

实现功能:Cortex -A53 与 Cortex-M4 二者使用共享内存实现数据收发。

Demo测试平台:iTOP-IMX8MM开发板

Cortex-M

测试步骤

将SDK包 SDK_2_9_1_EVK-MIMX8MM.zip 拷贝到 ubuntu 的任意路径下, 并使用命令 unzipSDK_2_9_1_EVK-MIMX8MM.zip 解压 sdk 包, 解压完成后如下图所示:

Cortex-M

解压源码包并进入

boards/evkmimx8mm/multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote/armgcc/路径下通过build_debug.sh进行编译

Cortex-M

将编译得到的rpmsg_lite_pingpong_rtos_linux_remote.bin 文件拷贝到 TF 卡, 拷贝完成后将 TF 卡插到开发板的 TF 卡座子, 接着启动开发板并进到 uboot 模式。

Cortex-M

输入命令 fatload mmc 0 0x7e0000 rpmsg_lite_pingpong_rtos_linux_remote.bin 将 bin 文件拷贝到0x7e0000, 如下图所示

Cortex-M

拷贝完成后使用 bootaux 0x7e0000 命令启动程序, 同时我们可以看到连接串口 4 的控制台输出了打印信息, 如下图所示

Cortex-M

串口 4 输出打印如下图所示:

Cortex-M

使用boot命令启动内核, 如下图所示:

Cortex-M

内核启动成功以后在串口 4 会输出打印连接成功的信息, 如下图所示:

Cortex-M

然后在串口终端加载以下内核模块:modprobe imx_rpmsg_pingpong模块加载之后, Cortex A53 开始跟 Cortex M4 进行数据传输, 此时可以在 Cortex M4 的串口终端看到以下输出:

Cortex-M

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分