发布日期: 2024/12/17 02:23
本文主要给大家分享的是基于创龙科技TLT113-EVM评估板(基于全志T113-i)的ARM + RISC-V核间通信开发案例,适用开发环境如下。
OpenAMP简介
AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。OpenAMP框架是一个提供用于处理非对称多处理架构(AMP)系统的软件组件。
随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、继电保护装置、小电流选线设备等。
RPMsg(Remote Processor Messaging),是一种专为异构多核处理系统设计的通信协议。它允许不同处理器核心之间通过共享内存高效地交换信息,为主核心和从核心之间提供了一种标准化的消息传递机制,使得这些不同架构的核心能够协同工作,最大限度地发挥它们的性能。
RPMsg简介
RPMsg的主要特点包括: (1)基于VirtIO管理共享内存,实现了高效的数据传输; (2)避免额外的拷贝开销,优化了内存使用; (3)配备同步与互斥机制,确保数据交换的高效与安全;
T113-i核间通信开发案例演示
为了简化描述,本文仅摘录部分方案功能描述与测试结果,详细产品资料请扫描文末二维码下载。
本期案例主要是通过使用RPMsg框架,来实现异构的处理器之间进行相互通信。ARM核心运行Linux系统与rpmsg_echo应用程序,RISC-V核心运行RISC-V程序,实现ARM端的rpmsg数据的接收与发送功能。
首先,我们使用Type-C线连接PC机和评估板的USB TO UART0串口,使用RS232交叉串口母母线、USB转RS232公头串口线,将评估板的RS232 UART2串口连接至PC机的USB接口,如下图所示。
可以看到,当我们启动RISC-V核心并加载工程镜像后,RISC-V核心启动后会自动运行程序,RS232 UART2串口终端便打印显示出如下图内容。
然后,我们执行如下命令运行ARM端应用程序,发送5次rpmsg数据包至RISC-V核心,当RISC-V核心每收到1次rpmsg数据包,就会将数据包发送回ARM端。
Target# ./rpmsg_echo -r c906_rproc@0 -m tronlong -n 5
当ARM端程序运行时,RS232 UART2串口终端将会打印如下类似信息。