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