在嵌入式系統(tǒng)領(lǐng)域,隨著技術(shù)不斷發(fā)展,對于系統(tǒng)性能和功能要求日益提高。核間通信作為提升系統(tǒng)整體效能的關(guān)鍵技術(shù),成為了關(guān)注焦點。今天,我們和大家分享一個OpenAMP非對稱架構(gòu)核間通信方案,基于NXP i.MX 8M Plus平臺。
OpenAMP架構(gòu)
AMP(Asymmetric Multi-Processing),即非對稱多處理架構(gòu)。“非對稱AMP”雙系統(tǒng)是指多個核心相對獨立運行不同的操作系統(tǒng)或裸機應(yīng)用程序,如Linux + RTOS/裸機,但需一個主核心來控制整個系統(tǒng)以及其它從核心。每個處理器核心相互隔離,擁有屬于自己的內(nèi)存,既可各自獨立運行不同的任務(wù),又可多個核心之間進行核間通信。OpenAMP框架是一個提供用于處理非對稱多處理架構(gòu)(AMP)系統(tǒng)的軟件組件,為開發(fā)者提供了便捷高效的開發(fā)工具。
隨著對嵌入式系統(tǒng)性能需求的持續(xù)攀升,非對稱AMP架構(gòu)憑借其獨特優(yōu)勢,成為一種新選擇,被廣泛應(yīng)用于工業(yè)領(lǐng)域,如工業(yè)PLC、繼電保護裝置、小電流選線設(shè)備等場景,為工業(yè)自動化和智能化發(fā)展提供了強大的技術(shù)支持。
圖 1
i.MX 8M Plus的OpenAMP開發(fā)方案
本案例采用i.MX8M Plus處理器的Cortex-A53核心與Cortex-M7核心,基于RPMsg-lite框架實現(xiàn)高效的核間通信。
Cortex-A53通過加載imx_rpmsg_tty驅(qū)動,向內(nèi)核注冊TTY終端設(shè)備。這樣一來,Linux應(yīng)用層只需通過訪問"/dev/ttyRPMSGxx"設(shè)備節(jié)點,就能實現(xiàn)間接調(diào)用RPMsg-lite接口,與Cortex-M7核心建立通信連接。
系統(tǒng)框圖如下圖所示。
圖 2
i.MX 8M Plus的典型應(yīng)用領(lǐng)域
i.MX 8M Plus憑借其強大的性能和出色的兼容性,廣泛應(yīng)用多個領(lǐng)域,為行業(yè)提供了有力的硬件支撐。
圖 3
OpenAMP開發(fā)案例演示
為了簡化描述,本文僅摘錄部分方案功能描述與測試結(jié)果。
開發(fā)環(huán)境
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
虛擬機:VMware15.5.5
Linux開發(fā)環(huán)境:Ubuntu20.04.6 64bit
U-Boot:U-Boot-2022.04
Kernel:Linux-5.15.71-rt51
SDK開發(fā)包:SDK_2_12_0_MIMX8ML8xxxKZ
交叉編譯工具鏈:gcc-arm-none-eabi-10.3-2021.10-x86_64-linux
硬件平臺:創(chuàng)龍科技TLIMX8MP-EVM工業(yè)評估板(基于NXP i.MX 8M Plus)
案例功能
本文案例主要通過RPMsg-lite框架演示核間通信。首先,在Cortex-A53核心發(fā)送"Tronlong"字符串到Cortex-M7核心,Cortex-M7核心接收到"Tronlong"字符串后,會將此消息回發(fā)到Cortex-A53核心,最后,Cortex-A53核心接收并校驗消息,確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和完整性。
程序原理流程圖如下所示:
圖 4
案例測試
請使用USB串口線將評估板的USB TO UART2串口連接至PC機的USB接口,使用RS232交叉串口母母線、USB轉(zhuǎn)RS232公頭串口線將評估板的RS232 UART4串口連接至PC機的USB接口,如下圖所示。
其中USB TO UART2作為Cortex-A53核心調(diào)試串口,RS232 UART4作為Cortex-M7核心調(diào)試串口。
圖 5
參考產(chǎn)品資料進行環(huán)境搭建,啟動Cortex-M7核心并加載工程鏡像,Cortex-M7核心啟動后將自動運行程序,加載imx_rpmsg_tty模塊,啟動核間通信等。
然后將案例rpmsg_lite_str_echo文件拷貝至評估板文件系統(tǒng),執(zhí)行如下命令發(fā)送數(shù)據(jù)至Cortex-M7核心。
Target# ./rpmsg_lite_str_echo /dev/ttyRPMSG30
圖 6
Cortex-M7核心接收到數(shù)據(jù)后,在RS232 UART4調(diào)試串口將數(shù)據(jù)進行打印,同時將數(shù)據(jù)回發(fā)至Cortex-A53。
圖 7
在USB TO UART2調(diào)試串口可查看Cortex-M7核心回發(fā)的數(shù)據(jù)。
圖 8
如果您還想查看更多i.MX8M Plus相關(guān)的案例演示,請通過公眾號(Tronlog創(chuàng)龍科技)查閱,親自上手體驗吧!
審核編輯 黃宇
-
NXP
+關(guān)注
關(guān)注
61文章
1329瀏覽量
187405 -
通信
+關(guān)注
關(guān)注
18文章
6172瀏覽量
137365 -
Amp
+關(guān)注
關(guān)注
0文章
86瀏覽量
47646
發(fā)布評論請先 登錄
米爾NXP i.MX 91核心板發(fā)布,助力新一代入門級Linux應(yīng)用開發(fā)
大聯(lián)大友尚集團推出基于NXP和onsemi產(chǎn)品的汽車駕駛員監(jiān)控系統(tǒng)方案
TPS6521825 適用于 NXP i.MX 8M mini 的電源管理 IC數(shù)據(jù)手冊

在i.MX93和i.MX8M Plus上都使用UART,遇到了RTS/CTS連接問題求解決
在 NXP i.MX 8M Plus EVK上比較Yocto 4.0和Yocto 5.0時,空閑模式下的功耗增加了 20%,為什么?
NXP i.MX 93 開發(fā)板#提供高效的機器學(xué)習(xí) 支持高能效的邊緣計算

2.3T算力,真的強!1分鐘學(xué)會NPU開發(fā),基于NXP i.MX 8MP平臺!

使用TPS65023的NXP i.MX 7電源設(shè)計

使用TPS6521825和LP873347 PMIC為NXP i.MX 8M Mini和Nano供電

使用TPS6521815 PMIC為NXP i.MX 7處理器供電

使用TPS6521815 PMIC為NXP i.MX 6Solo、6DualLite供電

使用TPS65219為i.MX 8M Plus供電

評論