在嵌入式系統(tǒng)領(lǐng)域,隨著技術(shù)不斷發(fā)展,對(duì)于系統(tǒng)性能和功能要求日益提高。核間通信作為提升系統(tǒng)整體效能的關(guān)鍵技術(shù),成為了關(guān)注焦點(diǎn)。今天,我們和大家分享一個(gè)OpenAMP非對(duì)稱架構(gòu)核間通信方案,基于NXP i.MX 8M Plus平臺(tái)。
OpenAMP架構(gòu)
AMP(Asymmetric Multi-Processing),即非對(duì)稱多處理架構(gòu)?!胺菍?duì)稱AMP”雙系統(tǒng)是指多個(gè)核心相對(duì)獨(dú)立運(yùn)行不同的操作系統(tǒng)或裸機(jī)應(yīng)用程序,如Linux + RTOS/裸機(jī),但需一個(gè)主核心來控制整個(gè)系統(tǒng)以及其它從核心。每個(gè)處理器核心相互隔離,擁有屬于自己的內(nèi)存,既可各自獨(dú)立運(yùn)行不同的任務(wù),又可多個(gè)核心之間進(jìn)行核間通信。OpenAMP框架是一個(gè)提供用于處理非對(duì)稱多處理架構(gòu)(AMP)系統(tǒng)的軟件組件,為開發(fā)者提供了便捷高效的開發(fā)工具。
隨著對(duì)嵌入式系統(tǒng)性能需求的持續(xù)攀升,非對(duì)稱AMP架構(gòu)憑借其獨(dú)特優(yōu)勢(shì),成為一種新選擇,被廣泛應(yīng)用于工業(yè)領(lǐng)域,如工業(yè)PLC、繼電保護(hù)裝置、小電流選線設(shè)備等場(chǎng)景,為工業(yè)自動(dòng)化和智能化發(fā)展提供了強(qiáng)大的技術(shù)支持。
圖 1
i.MX 8M Plus的OpenAMP開發(fā)方案
本案例采用i.MX8M Plus處理器的Cortex-A53核心與Cortex-M7核心,基于RPMsg-lite框架實(shí)現(xiàn)高效的核間通信。
Cortex-A53通過加載imx_rpmsg_tty驅(qū)動(dòng),向內(nèi)核注冊(cè)TTY終端設(shè)備。這樣一來,Linux應(yīng)用層只需通過訪問"/dev/ttyRPMSGxx"設(shè)備節(jié)點(diǎn),就能實(shí)現(xiàn)間接調(diào)用RPMsg-lite接口,與Cortex-M7核心建立通信連接。
系統(tǒng)框圖如下圖所示。
圖 2
i.MX 8M Plus的典型應(yīng)用領(lǐng)域
i.MX 8M Plus憑借其強(qiáng)大的性能和出色的兼容性,廣泛應(yīng)用多個(gè)領(lǐng)域,為行業(yè)提供了有力的硬件支撐。
圖 3
OpenAMP開發(fā)案例演示
為了簡(jiǎn)化描述,本文僅摘錄部分方案功能描述與測(cè)試結(jié)果。
開發(fā)環(huán)境
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
虛擬機(jī):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
硬件平臺(tái):創(chuàng)龍科技TLIMX8MP-EVM工業(yè)評(píng)估板(基于NXP i.MX 8M Plus)
案例功能
本文案例主要通過RPMsg-lite框架演示核間通信。首先,在Cortex-A53核心發(fā)送"Tronlong"字符串到Cortex-M7核心,Cortex-M7核心接收到"Tronlong"字符串后,會(huì)將此消息回發(fā)到Cortex-A53核心,最后,Cortex-A53核心接收并校驗(yàn)消息,確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和完整性。
程序原理流程圖如下所示:
圖 4
案例測(cè)試
請(qǐng)使用USB串口線將評(píng)估板的USB TO UART2串口連接至PC機(jī)的USB接口,使用RS232交叉串口母母線、USB轉(zhuǎn)RS232公頭串口線將評(píng)估板的RS232 UART4串口連接至PC機(jī)的USB接口,如下圖所示。
其中USB TO UART2作為Cortex-A53核心調(diào)試串口,RS232 UART4作為Cortex-M7核心調(diào)試串口。
圖 5
參考產(chǎn)品資料進(jìn)行環(huán)境搭建,啟動(dòng)Cortex-M7核心并加載工程鏡像,Cortex-M7核心啟動(dòng)后將自動(dòng)運(yùn)行程序,加載imx_rpmsg_tty模塊,啟動(dòng)核間通信等。
然后將案例rpmsg_lite_str_echo文件拷貝至評(píng)估板文件系統(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ù)進(jìn)行打印,同時(shí)將數(shù)據(jù)回發(fā)至Cortex-A53。
圖 7
在USB TO UART2調(diào)試串口可查看Cortex-M7核心回發(fā)的數(shù)據(jù)。
圖 8
如果您還想查看更多i.MX8M Plus相關(guān)的案例演示,請(qǐng)通過公眾號(hào)(Tronlog創(chuàng)龍科技)查閱,親自上手體驗(yàn)吧!
審核編輯 黃宇
-
NXP
+關(guān)注
關(guān)注
61文章
1396瀏覽量
197620 -
通信
+關(guān)注
關(guān)注
18文章
6389瀏覽量
140040 -
Amp
+關(guān)注
關(guān)注
0文章
100瀏覽量
48496
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問qemu 可以模擬 i.MX 8M Plus 嗎?
探索NXP EdgeReady智能HMI解決方案:i.MX RT117H的無限可能
探索NXP i.MX 93應(yīng)用處理器家族:高效邊緣計(jì)算的理想之選
探索i.MX 91應(yīng)用處理器家族:為邊緣應(yīng)用帶來新可能
FRDM i.MX 9平臺(tái)選型指南:FRDM i.MX 9系列開發(fā)平臺(tái)解析
恩智浦FRDM i.MX 8M Plus開發(fā)板詳解
恩智浦FRDM i.MX 8M Plus開發(fā)板上架
【飛凌嵌入式】基于i.MX9352開發(fā)板M核的FreeRTOS設(shè)計(jì)例程
米爾NXP i.MX 91核心板發(fā)布,助力新一代入門級(jí)Linux應(yīng)用開發(fā)
大聯(lián)大友尚集團(tuán)推出基于NXP和onsemi產(chǎn)品的汽車駕駛員監(jiān)控系統(tǒng)方案
NXP i.MX 91開發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件
TPS6521825 適用于 NXP i.MX 8M mini 的電源管理 IC數(shù)據(jù)手冊(cè)
在i.MX93和i.MX8M Plus上都使用UART,遇到了RTS/CTS連接問題求解決
在 NXP i.MX 8M Plus EVK上比較Yocto 4.0和Yocto 5.0時(shí),空閑模式下的功耗增加了 20%,為什么?
NXP i.MX 93 開發(fā)板#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算
分享!基于NXP i.MX 8M Plus平臺(tái)的OpenAMP核間通信方案
評(píng)論