OpenAMP简介

匿名 (未验证) 提交于 2019-12-03 00:41:02

通常在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组件的工作原理。在开始设计开发之前,首先需要搭建相应的开发环境。
 

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!