OpenAMP简介

OpenAMP简介

时间:2018-07-14 21:33:45      阅读:4966      评论:0      收藏:0      [点我收藏+]

标签:https   框架   tor   com   简介   函数   计算   环境   位置   

通常在AMP(非对称多处理)配置中,会采用在不同的处理核上运行不同的软件环境并执行各自的代码程序,各核心之间通力合作实现处理器性能的提升。在AMP系统中,所谓的主处理器通常是指最先启动且主要负责管理其他CPU以及这些CPU上软件环境的CPU处理器。而远程处理器简单的讲就是指被主核所支配的CPU。主软件环境通常需要进行远程核心的管理以及任务调度,在需要进行计算任务分配时,将选择性地驱动远程内核上的远程软件环境,并交代任务信息。

OpenAMP软件框架为开发AMP系统提供了必要的API函数。OpenAMP 是Mentor Graphics 与赛灵思公司为了使在AMP系统的设计中开发出的RTOS和裸机程序能够与开源Linux社区提供的接口进行互通讯,而共同通过的一个标准化的嵌入式多核框架。的全称是 ,即开源的非对称多处理框架。OpenAMP框架提供了非对称多处理系统软件开发所需的软件组件。OpenAMP框架是一种软件框架,这种软件框架能够为非对称多处理(AMP)系统开发人员提供三大重要组件:

l  该组件是RPMsg组件的实现基础,在使用Remoteproc和RPMsg进行核间通信时使用到了这个概念。在后面会讲解Virtio的实现原理。

l  :该组件用于主机上,实现对远程处理器及其相关软件环境进行生命周期管理(LCM),说白了就是能够对远程处理器实现启动和关闭、加载远程处理器运用程序到内存适合位置,并完成virtio和RPMSG设备的注册等。

l  :实现多核处理器IPC通信的通道,基于virtio组件实现。

软件框架为开发人员提的标准化接口使得在AMP结构中设计和管理软硬件变得更为简单。和基础架构最初是由德州仪器设计开发的,并专门用在内核。使用该基础架构可以实现在主软件环境下对远程软件环境进行生命周期管理并进行核心间的通讯。但是,所提供的这些基础架构在一定程度上存在着局限性。首先,基础架构通常都是默认将作为其主操作系统,然而并不支持把作为非对称多处理结构配置中的远程软件环境。另外,和API只能从系统的内核空间中获得,由于缺乏相应的等效API或库,这些组件并没能用在其他的一些操作系统上,这造成了适用范围上的局限性。

软件框架很好的解决了以上的问题。该框架是和赛灵思共同通过地一个开源项目,其源代码可以在GitHub(https://github.com/OpenAMP/open-amp)上获得或从该文档相同目录下src文件夹中获得(open-amp-openamp_zynq_kernel_3.17)。

框架能够被很好地使用在实时操作系统或者裸机软件环境中,使得在这些软件环境下能够使用与Linux系统具有相同功能的和,且之间在使用上具有很好的兼容性。框架中的和基础架构使用VirtIO作为传输抽象层。下图显示了框架支持的各种软件环境及配置,由图所示,该框架可以被用在、或者裸机环境下,通过和组件实现不同软件环境之间的通讯。

嵌入式多核框架同样可以作为独立库使用。允许主处理器RTOS或者裸机软件环境中的程序对远程处理器进行生命周期管理并且使用与远程处理器进行通信。

 技术分享图片

 该系列主要基于Linux master/FreeRTOS remote配置,讲解如何使用OpenAMP框架实现多核处理器核间通信,包括开发环境的搭建、工程的建立和编译等,并在需要的时候介绍所涉及的Virtio、RPMsg组件的工作原理。在开始设计开发之前,首先需要搭建相应的开发环境。
 

OpenAMP简介

标签:https   框架   tor   com   简介   函数   计算   环境   位置   

原文地址:https://www.cnblogs.com/jiandahao/p/9310978.html

 

转载自http://www.mamicode.com/info-detail-2373653.html,仅供学习。

### OpenAMP在飞腾平台上的应用与配置 OpenAMP(Open Asymmetric MultiProcessing)是一种用于异构多核系统的开源框架,支持主从处理器架构下的通信和资源管理。以下是关于如何在飞腾平台上配置和使用OpenAMP的相关说明。 #### 1. 开发环境准备 为了成功部署OpenAMP,在飞腾平台上需完成以下准备工作: - 安装必要的开发工具链和支持库。例如,可以参考飞腾平台的通用软件栈安装指南[^1]来搭建基础运行环境。 - 确保目标硬件已正确初始化并启用了PCIe接口等相关外设功能[^3]。 #### 2. 配置内核支持 Linux内核需要启用对OpenAMP的支持选项。具体操作包括但不限于以下几个方面: - 打开`CONFIG_REMOTEPROC`以及与其关联的功能模块; - 启用`CONFIG_OPENAMP`及其依赖项以便加载相应的驱动程序;这些设置通常位于`.config`文件中的设备树部分或者通过menuconfig界面调整得到。 #### 3. 设备树修改 针对特定型号如飞腾E系列芯片组,可能还需要定制化编辑Device Tree Blob (DTB),以反映实际连接关系及分配给远程处理单元(RPU)的具体资源范围。这一步骤涉及定义memory regions、interrupt lines等关键属性,并将其映射至主机侧可见空间之内。 #### 4. 应用层编程实例 下面给出一段简单的代码片段展示如何利用libmetal API实现基本的消息传递机制: ```c #include <openamp/open_amp.h> ... int main() { struct rproc *rproc; struct rpmsg_endpoint *ept; /* 初始化remote processor */ rproc = remoteproc_create("virtio_rpmsg", NULL); /* 建立rpmsg通道 */ ept = rpmsg_create_ept(rproc->chan, callback_function, RPMSG_ADDR_ANY, DESTINATION_ADDRESS); while(1){ // 处理接收到的数据包... } return 0; } ``` 上述示例中调用了remoteproc_create函数启动远端处理器实例,并创建了一个RPMsg端点来进行跨核间的信息交换过程[^2]。 #### 5. 测试验证流程 最后阶段应当进行全面测试以确认整个解决方案的有效性和稳定性。建议按照官方文档指示执行一系列预定义场景试验项目,同时记录下任何异常现象便于后续分析解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值