<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > OpenAMP簡(jiǎn)介

OpenAMP簡(jiǎn)介

發(fā)布人:電子禪石 時(shí)間:2022-10-12 來(lái)源:工程師 發(fā)布文章

通常在A(yíng)MP(非對稱(chēng)多處理)配置中,會(huì )采用在不同的處理核上運行不同的軟件環(huán)境并執行各自的代碼程序,各核心之間通力合作實(shí)現處理器性能的提升。在A(yíng)MP系統中,所謂的主處理器通常是指最先啟動(dòng)且主要負責管理其他CPU以及這些CPU上軟件環(huán)境的CPU處理器。而遠程處理器簡(jiǎn)單的講就是指被主核所支配的CPU。主軟件環(huán)境通常需要進(jìn)行遠程核心的管理以及任務(wù)調度,在需要進(jìn)行計算任務(wù)分配時(shí),將選擇性地驅動(dòng)遠程內核上的遠程軟件環(huán)境,并交代任務(wù)信息。

OpenAMP軟件框架為開(kāi)發(fā)AMP系統提供了必要的API函數。OpenAMP 是Mentor Graphics 與賽靈思公司為了使在A(yíng)MP系統的設計中開(kāi)發(fā)出的RTOS和裸機程序能夠與開(kāi)源Linux社區提供的接口進(jìn)行互通訊,而共同通過(guò)的一個(gè)標準化的嵌入式多核框架。的全稱(chēng)是 ,即開(kāi)源的非對稱(chēng)多處理框架。OpenAMP框架提供了非對稱(chēng)多處理系統軟件開(kāi)發(fā)所需的軟件組件。OpenAMP框架是一種軟件框架,這種軟件框架能夠為非對稱(chēng)多處理(AMP)系統開(kāi)發(fā)人員提供三大重要組件:

l  該組件是RPMsg組件的實(shí)現基礎,在使用Remoteproc和RPMsg進(jìn)行核間通信時(shí)使用到了這個(gè)概念。在后面會(huì )講解Virtio的實(shí)現原理。

l  :該組件用于主機上,實(shí)現對遠程處理器及其相關(guān)軟件環(huán)境進(jìn)行生命周期管理(LCM),說(shuō)白了就是能夠對遠程處理器實(shí)現啟動(dòng)和關(guān)閉、加載遠程處理器運用程序到內存適合位置,并完成virtio和RPMSG設備的注冊等。

l  :實(shí)現多核處理器IPC通信的通道,基于virtio組件實(shí)現。

軟件框架為開(kāi)發(fā)人員提的標準化接口使得在A(yíng)MP結構中設計和管理軟硬件變得更為簡(jiǎn)單。和基礎架構最初是由德州儀器設計開(kāi)發(fā)的,并專(zhuān)門(mén)用在內核。使用該基礎架構可以實(shí)現在主軟件環(huán)境下對遠程軟件環(huán)境進(jìn)行生命周期管理并進(jìn)行核心間的通訊。但是,所提供的這些基礎架構在一定程度上存在著(zhù)局限性。首先,基礎架構通常都是默認將作為其主操作系統,然而并不支持把作為非對稱(chēng)多處理結構配置中的遠程軟件環(huán)境。另外,和API只能從系統的內核空間中獲得,由于缺乏相應的等效API或庫,這些組件并沒(méi)能用在其他的一些操作系統上,這造成了適用范圍上的局限性。

軟件框架很好的解決了以上的問(wèn)題。該框架是和賽靈思共同通過(guò)地一個(gè)開(kāi)源項目,其源代碼可以在GitHub(https://github.com/OpenAMP/open-amp)上獲得或從該文檔相同目錄下src文件夾中獲得(open-amp-openamp_zynq_kernel_3.17)。

框架能夠被很好地使用在實(shí)時(shí)操作系統或者裸機軟件環(huán)境中,使得在這些軟件環(huán)境下能夠使用與Linux系統具有相同功能的和,且之間在使用上具有很好的兼容性??蚣苤械暮突A架構使用VirtIO作為傳輸抽象層。下圖顯示了框架支持的各種軟件環(huán)境及配置,由圖所示,該框架可以被用在、或者裸機環(huán)境下,通過(guò)和組件實(shí)現不同軟件環(huán)境之間的通訊。

嵌入式多核框架同樣可以作為獨立庫使用。允許主處理器RTOS或者裸機軟件環(huán)境中的程序對遠程處理器進(jìn)行生命周期管理并且使用與遠程處理器進(jìn)行通信。

 

 該系列主要基于Linux master/FreeRTOS remote配置,講解如何使用OpenAMP框架實(shí)現多核處理器核間通信,包括開(kāi)發(fā)環(huán)境的搭建、工程的建立和編譯等,并在需要的時(shí)候介紹所涉及的Virtio、RPMsg組件的工作原理。在開(kāi)始設計開(kāi)發(fā)之前,首先需要搭建相應的開(kāi)發(fā)環(huán)境。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: openamp

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>