“非對(duì)稱AMP”雙系統(tǒng)是什么
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è)主核心來(lái)控制整個(gè)系統(tǒng)以及其它從核心。每個(gè)處理器核心相互隔離,擁有屬于自己的內(nèi)存,既可各自獨(dú)立運(yùn)行不同的任務(wù),又可多個(gè)核心之間進(jìn)行核間通信。
圖 1 FMQL20SM AMP異構(gòu)多核框架示意圖
“非對(duì)稱 AMP” 對(duì)工業(yè)的重大意義
更強(qiáng)“系統(tǒng)實(shí)時(shí)性”
在工業(yè)自動(dòng)化控制的復(fù)雜場(chǎng)景中,對(duì)于系統(tǒng)實(shí)時(shí)性的要求極高。非對(duì)稱AMP架構(gòu)憑借其獨(dú)特優(yōu)勢(shì),能夠運(yùn)用固定的核心來(lái)處理實(shí)時(shí)任務(wù),很好兼顧復(fù)雜功能與實(shí)時(shí)性需求。AMP架構(gòu)全面提升了系統(tǒng)實(shí)時(shí)性、執(zhí)行效率、計(jì)算能力以及響應(yīng)速度,讓工業(yè)生產(chǎn)更加精準(zhǔn)、高效。
更高“系統(tǒng)穩(wěn)定性”
非對(duì)稱AMP架構(gòu)在穩(wěn)定性方面表現(xiàn)卓越。無(wú)需多個(gè)分立CPU之間頻繁交互數(shù)據(jù),每個(gè)處理器核心擁有屬于自己的內(nèi)存,核心之間互不干擾。開發(fā)者可靈活分配任務(wù)或指定核心間通信,大大增強(qiáng)了系統(tǒng)穩(wěn)定性,有效減少崩潰風(fēng)險(xiǎn),全方位保障數(shù)據(jù)的完整性。
更低“系統(tǒng)硬件成本”
成本控制一直是工業(yè)領(lǐng)域關(guān)注的重點(diǎn)。非對(duì)稱AMP架構(gòu)通過(guò)優(yōu)化內(nèi)部通信,僅需一套硬件電路即可實(shí)現(xiàn)復(fù)雜功能,顯著降低系統(tǒng)硬件成本。其各核心能運(yùn)行不同操作系統(tǒng),并行處理多個(gè)任務(wù),無(wú)需額外硬件支持,真正做到了高效且經(jīng)濟(jì)。相比之下,采用分立CPU方案則需要兩套硬件電路(CPU/ROM/RAM/PMIC),系統(tǒng)硬件成本成倍增加。
圖 2
“非對(duì)稱AMP”雙系統(tǒng)的應(yīng)用領(lǐng)域
隨著嵌入式系統(tǒng)的發(fā)展,對(duì)其性能和功能的要求日益提高,非對(duì)稱AMP架構(gòu)如今已成為一種新選擇,主要應(yīng)用于工業(yè)領(lǐng)域,如電力DTU、數(shù)據(jù)采集器、繼電保護(hù)設(shè)備、運(yùn)動(dòng)控制器、驅(qū)控一體控制器等。
圖 3
FMQL20S400M 非對(duì)稱AMP開發(fā)案例
接下來(lái),為大家詳細(xì)介紹基于FMQL20S400M異構(gòu)多核SoC處理器PS端的AMP通信案例,適用開發(fā)環(huán)境如下。
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:Ubuntu 16.04.5 64bit
虛擬機(jī):VMware16.2.5
PL端開發(fā)環(huán)境:Procise 2023.1
LinuxSDK:FMQL-Linux-SDK-Prj-20230801
U-Boot:U-Boot-2018.07
Kernel:Linux-4.14.55
硬件平臺(tái):創(chuàng)龍科技TLFM20S-EVM工業(yè)評(píng)估板
為了簡(jiǎn)化描述,本文僅摘錄部分方案功能描述與測(cè)試結(jié)果。
基于Linux啟動(dòng)AMP裸機(jī)程序
案例功能
本案例主要實(shí)現(xiàn)如下的功能:
(1)配置CPU0、CPU1、CPU2運(yùn)行Linux系統(tǒng),配置CPU3運(yùn)行裸機(jī)程序。
(2)運(yùn)行Linux系統(tǒng)的CPU核功能為:初始化系統(tǒng);控制運(yùn)行裸機(jī)程序的CPU核啟動(dòng);與運(yùn)行裸機(jī)程序的CPU核通信,控制LED亮滅。
(3)運(yùn)行裸機(jī)程序的CPU核功能為:與Linux系統(tǒng)通信;接收Linux系統(tǒng)的控制命令,并根據(jù)命令控制LED亮滅。
案例演示
首先,請(qǐng)將案例的可執(zhí)行程序拷貝至評(píng)估板文件系統(tǒng)任意目錄下,參考產(chǎn)品資料進(jìn)行環(huán)境配置,完成后,執(zhí)行以下命令,加載裸機(jī)程序至PS端DDR地址0x19000000。
備注:我司提供的Linux系統(tǒng)已在PS端DDR內(nèi)存中分配AMP裸機(jī)程序的內(nèi)存空間,地址范圍為0x1900 0000 ~ 0x19FF FFFF,容量為16MByte。
Target# ./filetomem ./amp_led_ctrl.bin 0x19000000
圖 4
執(zhí)行如下命令,設(shè)置CPU3核運(yùn)行裸機(jī)程序。
Target# ./amp 3 0x19000000
圖 5
執(zhí)行如下命令,運(yùn)行Linux端AMP應(yīng)用程序,點(diǎn)亮或熄滅評(píng)估底板PS端LED1。
Target# ./led 1 on
Target# ./led 1 off
圖 6
基于U-Boot啟動(dòng)AMP裸機(jī)程序
案例功能
本案例主要實(shí)現(xiàn)如下的功能:
(1)CPU0啟動(dòng)U-Boot,基于U-Boot配置CPU1/CPU2/CPU3其中一個(gè)核心運(yùn)行裸機(jī)程序。
(2)CPU0功能為:初始化系統(tǒng),控制運(yùn)行裸機(jī)程序的CPU核啟動(dòng)。
(3)運(yùn)行裸機(jī)程序的CPU核功能為:控制LED亮滅。
案例演示
首先,請(qǐng)將Linux系統(tǒng)啟動(dòng)卡通過(guò)讀卡器插至PC機(jī)USB端口,并將案例的amp_led_flash.bin文件拷貝至Linux系統(tǒng)啟動(dòng)卡BOOT分區(qū)(FAT32格式)。
圖 7
然后,在插入Linux系統(tǒng)啟動(dòng)卡后,啟動(dòng)評(píng)估板,進(jìn)入U(xiǎn)-Boot命令行,執(zhí)行如下命令。加載Linux系統(tǒng)啟動(dòng)卡中的裸機(jī)程序至DDR地址0x19000000,并設(shè)置CPU3運(yùn)行裸機(jī)程序。
U-Boot> fatload mmc 0 0x19000000 /amp_led_flash.bin
U-Boot> bootamp 3 0x19000000
圖 8
程序運(yùn)行后,您就能看到評(píng)估底板PS端LED1每隔0.5s閃爍,是不是很神奇?
如果各位工程師想要了解更多 FMQL20SM 相關(guān)的案例演示,可以通過(guò)公眾號(hào)(Tronlong創(chuàng)龍科技)查看,快來(lái)探索吧!
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307637 -
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210382 -
Amp
+關(guān)注
關(guān)注
0文章
82瀏覽量
47241
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論