對比傳統的Xilinx AMP方案和OPENAMP方案-xapp1078和ug1186


xapp1078創建於2013年2月。文章描述了啟動運行兩個內核的方法,兩個cpu內核分別運行linux和bare-metal。已經過去四年,所以稱其為傳統的AMP方案。

該方案的關鍵過程:

(1)修改FSBL源碼,使其能夠load多個elf和bit文件,直到遇到標志Load地址后停止load,返回運行u-boot。

(2)通過配置文件image.bif將core0的u-boot.elf和core1的bare-metal.elf文件還有用於load停止的dummy bin文件都包含進來,然后運行bootgen生成BOOT.BIN。

(3)雙核啟動后,core1處於wfe狀態。core0首先向將bare-metal.elf的運行地址寫到WFE loop的檢測地址,然后sev或者中斷喚醒core1,之后core1跳轉運行bare-metal.elf。core0從文件系統中啟動linux app,與core1進行通信。

ug1186創建於2017年5月,文章介紹了在zynq上使用OpenAMP框架實現AMP的方法,兩個cpu內核分別運行linux和bare-metal。稱其為OpenAMP方案。master linux CPU內核通過remoteproc API來控制管理remote內核的生命周期(life cycle management LCM),為remote processor分配系統資源和創建virtIO設備。通過RPMsg API來實現不同cpu內核上運行的軟件之間的通信。

該方案的關鍵過程:

(1)基於remoteproc和RPMsg來設計bare-metal.elf程序。

(2)bare-metal.elf加入到petalinux工程中,后續remoteproc在linux的filesystem中調用bare-metal.elf。

(3)配置Kernel相應的options來配合OpenAMP工作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM