完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们在前面的文章有提到过Linux的remoteproc框架,并通过它体验了一番异构核心的控制和运行,这一次我们来体验一下异构核心通信。 1、RPMsg协议异构多核心也不是最近才出现的技术,只是由于使用这些技术的人越来越多,才慢慢引起大家的关注。OpenAMP框架已经发展了很多年,他们这个框架感觉更激进一些,例如实现两个MCU核心之间的通讯功能,并且支持Linux平台以外的RTOS。他们提出的机制在2014年合并到Linux内核里,也就是现在常见的rpmsg(Remote Processor Messaging)框架。 RPMsg通信实现可以分为三个不同的层 - 传输层、媒体访问控制层和物理层。物理层就是mailbox,共享内存之类的硬件层。如图所示: 两个核心之间的通信,可以通过共享内存来实现,两个核心通过硬件中断或者轮巡来更新通信数据。由于两个核心需要关注有没有新数据,那最好是每个通信核心都有一个中断线用于接收通知。没有中断也可以实现,只是核心需要花时间来检查物理层里有没有新的数据,这样会影响性能。 核间通信使用环形缓冲区进行通信,两个核心不断在环形缓冲区里写入数据和读取数据。写入新数据则标记为已使用,读取完数据则标记为可用。 2、RPMsg通信流程从Linux到mcu核心,首先从环形缓冲区这边申请空间,然后写入RPMsg消息头和传递的数据,再插入到环形缓冲区中,然后通知MCU来取消息。MCU从缓冲区拿到数据,再传递给终端回调函数处理数据,最后将RPMsg消息从队列取出,通知A53核心完成。反过来也一样,只是数据是由MCU负责填充,再通过队列发送给A53核心。如下图所示: 3、官方RPMsg示范案例体验由于官方SDK默认加载的m4fss和r5fss核心程序,都是RPMsg示范程序,所以我们重启一下开发板,就可以运行SDK的示范程序了。 通过运行rpmsg_char_simple命令,可以看到Linux和两个核心的RPMsg通信已经跑起来了,也成功通讯了。 这两个命令,指定的设备id是固件里设置好的,m4fss是9,r5fss(唤醒核心)是15 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【米尔-Xilinx XC7A100T FPGA开发板试用】+04.SFP之Aurora测试(zmj)
559 浏览 0 评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)
528 浏览 1 评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+01.开箱(zmj)
630 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】米尔-紫光PG2L100H国产FPGA开发板开箱评测
622 浏览 0 评论
【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置
566 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
3560浏览 2评论
【米尔NXP i.MX 93开发板试用评测】5、安装Debian和排除启动故障
555浏览 2评论
【米尔NXP i.MX 93开发板试用评测】2、异构通信环境搭建和源码编译
714浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
1343浏览 1评论
【米尔-芯驰D9开发板- 国产平台试用】- 03- 外设接口测试-U盘、485总线
6791浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:16 , Processed in 0.939656 second(s), Total 73, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号