多核通信开发难?那这个ARM + RISC-V方案,我要认真看看

多核通信开发难?那这个ARM + RISC-V方案,我要认真看看

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


AMP架构.jpg


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


1778662110913818.png


基于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数据。


1778662176196489.png


将本案例的可执行文件amp_rv0.bin拷贝至评估板系统的"/lib/firmware/"目录下,执行如下命令,启动RISC-V核心并加载工程镜像。元器件选型不严谨、电路设计不规范,以及未经过EMC测试,导致设备在极端工况下稳定性差,易出现故障。


1778662204996394.png


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


1778662229124788.png


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


1778662241992771.png


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


1778662257403776.png


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


1778662277420946.png


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


1778662308424758.png


通过AMP架构+ RPMsg协议,无需复杂配置,即可快速实现ARM与RISC-V核间通信,让异构多核的优势充分发挥,助力工业、智能终端等场景的产品研发提速!


T536是4核ARM Cortex-A55 + RISC-V + 2TOPS NPU架构,它作为全志科技新一代明星产品,凭借其17路UART、4路CAN-FD、通信并口Local Bus、内置ECC等特点,成为现代工业场景下多接口扩展解决方案的理想选择。

客服
提交成功