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

电子说

1.4w人已加入

描述

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V

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

RISC-V


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

审核编辑 黄宇

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

全部0条评论

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

×
20
完善资料,
赚取积分