ARM核心一般负责接口驱动、业务逻辑、核心算法等,RISC-V核心一般专注于实时控制、数据采集等。如何实现二者高效协同?AMP架构 + RPMsg协议给出答案,轻松实现ARM与RISC-V核间通信。

AMP(Asymmetric Multi-Processing),即非对称多处理架构,指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,需要一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。

基于RPMsg(Remote Processor Messaging),即远程处理器消息传递,是一种专为异构多核处理系统设计的通信协议。它允许不同处理器核心之间通过共享内存高效地交换消息,为主核心和从核心之间提供了一种标准化的消息传递机制,使得这些不同架构的核心能够协同工作,最大限度地发挥它们的性能。
▍应用场景
该方案适配多种工业应用场景,针对性解决多核协同难题:
工业网关:ARM处理网络通信,RISC-V处理数据采集。
工业PLC:ARM负责逻辑决策,RISC-V负责实时控制。
智能终端:ARM负责用户操作响应,RISC-V处理外设控制。
▍ARM + RISC-V通信演示
以下基于全志T536异构多核工业处理器,演示如何通过RPMsg实现ARM和RISC-V核心通信功能。
(1)RISC-V核心:运行RTOS程序,等待接收Linux RPMsg数据。接收到数据后,把数据发回给Linux,循环往复接收与发送RPMsg数据,实现核间通信。
(2)ARM核心:运行Linux应用程序,发送Linux RPMsg数据,并接收RISC-V程序发回的RPMsg数据。

将本案例的可执行文件amp_rv0.bin拷贝至评估板系统的"/lib/firmware/"目录下,执行如下命令,启动RISC-V核心并加载工程镜像。

RS232 S-UART1调试串口(即RISC-V的调试串口)终端将会打印如下类似信息。

将案例可执行程序rpmsg_echo拷贝至文件系统任意目录下,并赋予可执行程序rpmsg_echo执行权限。

执行如下命令运行程序,Linux端将发送5次RPMsg数据:tronlong,RISC-V端将接收并打印RPMsg数据至RS232 S-UART1串口。

RS232 S-UART1串口打印信息如下图所示。

执行如下命令,关闭RISC-V核心,程序将停止运行。

通过AMP架构+ RPMsg协议,无需复杂配置,即可快速实现ARM与RISC-V核间通信,让异构多核的优势充分发挥,助力工业、智能终端等场景的产品研发提速!
审核编辑 黄宇
-
ARM
+关注
关注
135文章
9597浏览量
393881 -
RISC-V
+关注
关注
49文章
2958浏览量
53617
发布评论请先 登录
RISC-V vs ARM:为什么工业与边缘计算仍然选择 ARM 架构?
论实时性,RISC-V究竟比ARM强多少?
重磅合作!Quintauris 联手 SiFive,加速 RISC-V 在嵌入式与 AI 领域落地
探索RISC-V在机器人领域的潜力
为什么RISC-V是嵌入式应用的最佳选择
大湾区RISC-V生态全景展示:RISC-V生态发展论坛、开发者Workshop和生态应用专区
【飞凌T527N开发板试用】异构RISC-V核心使用体验
国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V核间通信开发案例
RISC-V 手册
包云岗:原位替代 ARM,并未真正发挥 RISC-V 的优势
RISC-V 的平台思维和生态思维
同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?
RISC-V和ARM有何区别?
IAR开发平台升级Arm和RISC-V开发工具链,加速现代嵌入式系统开发
关税取消后,国产的这款RISC-V开发板能否称霸市场?进迭时空Muse Pi Pro开发板
多核通信开发难?那这个ARM + RISC-V方案,我要认真看看
评论