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

米爾NXP i.MX 91核心板發布,助力新一代入門級Linux應用開發
大聯大友尚集團推出基于NXP和onsemi產品的汽車駕駛員監控系統方案
TPS6521825 適用于 NXP i.MX 8M mini 的電源管理 IC數據手冊

在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 開發板#提供高效的機器學習 支持高能效的邊緣計算

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

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

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

評論