世界俱乐部杯赛

深入解析嵌入式 OPENAMP 框架:开启异核通信新时代

出处:网络 发布于:2025-07-22 16:27:29

在当今的电子技术领域,嵌入式系统的发展日新月异,而异核通信技术在其中扮演着至关重要的角色。Open 软件框架作为针对非对称多处理(AMP)系统开发应用程序所需的软件框架,为实现核间通信提供了强大的支持。用户通过调用该框架组件中的 API,就能轻松实现核间通信。


在具体的硬件架构中,以 STM32MP157 为例,其 A7 内核和 M4 内核通过 IPCC 中断机制来通知对方在共享中有新的数据或者数据已经被处理。需要注意的是,在 A7 这边已经默认开启了 IPCC 中断,而 M4 一定要开启 IPCC 中断,否则 M4 就无法使能 OpenAMP。同时,HSEM(硬件信号量)默认开启,它的作用是确保所有内核可以有序地访问公共资源。内核能够使用信号量来保证对外围设备的独占访问和信息交换,这对于系统的稳定运行至关重要。


从系统架构的角度来看,存在同构和异构的概念。如果所有的 或的架构都一样,那么称为同构;反之,如果所有 CPU 或的架构有不一样的,那么就称为异构,像 STM32MP157 有 A7 和 M4 核就是典型的异构情况。多核操作系统体系主要包括 SMP(对称多处理)结构、AMP(非对称多处理)结构和 BMP(边界多处理)结构。SMP 结构一般运行在同构下,由一个 OS 负责协调两个处理器,两个处理器共享内存,每个运行的应用程序地址相同,通过 MMU(内存管理单元)将它们映射到主存的不同位置。而 AMP 结构则是每个内核运行自己的 OS 或同一 OS。


基于 OpenAMP,生命周期管理是通过 Remoteproc 来实现的,内核间通信是通过 RPMsg 来管理的。IPCC 通信框架在异核通信中也起着关键作用,邮箱依赖于 IPCC,STM32MP157 的 IPCC 硬件模块有 6 个双向通道,每个通道分为两个子通道,共有 12 个子通道。处理器之间交互的数据存放于共享内存中,IPCC 中断机制用于当一个数据包被放入共享内存时,通知另一个 CPU 有新的数据包需要处理。A7 内核的中断控制器是 GIC,M4 内核的中断控制器是 NVIC,且处理器之间要交互的数据是在共享内存中传输的,在 IPCC 处封装了邮箱(Mailbox)框架,用于通知 CPU 在共享内存中有数据要处理。


邮箱框架的工作流程较为复杂。首先要注册邮箱控制器,邮箱客户端发送数据前需先申请通道,接着客户端发送数据并记录数据,邮箱控制器将底层接收到的数据回调给上层应用,当数据发完时,邮箱控制器通知上层当前数据已经发送完成,邮箱客户端释放通道。RemoteProc 软件框架解决了远程处理器生命周期的问题,RPMsg 软件框架解决了核间通信的问题,M4 主要依赖 OpenAMP 库中已有的软件框架来实现和 A7 通信。


Virtio(虚拟化模块)中的 vring 是指向数据缓冲区指针的 FIFO 队列,有两个单向的 vring,一个用于发送到远程处理器的消息,另一个用于从远程处理器接收的消息,两个 vring 组成一个环形,其缓冲区就是两个处理器的共享内存。在实际操作中,A 核远程启动 M4 核(远程协处理器)有特定的脚本指令,例如加载固件、启动固件和关闭固件运行等操作。而且 A7 和 M4 之间通过 RPMsg 进行核间通信时,需要 A7 发送条消息,RPMsg 通道才会被激活,通道激活以后,M4 才能给 A7 发送数据。


以下是相关的图片说明:


  • 异核通信框架:

  • SMP 结构示意图:

  • AMP 结构示意图:

  • IPCC 通信框架:

  • IPCC 硬件模块通道示意图:

  • 邮箱框架相关:

  • Virtio vring 示意图:

  • 双核通信流程图:

  • 加载 rpmsg 驱动过程图:

关键词:嵌入式

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//trbgizp.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

2023全国大学生嵌入式芯片与系统设计竞赛,海思赛道,工程机械远程管理与安全检测系统
广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
 9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!