為了能夠讓更多的工程師朋友了解多核異構(gòu)處理器,飛凌嵌入式特別推出了【玩轉(zhuǎn)多核異構(gòu)】專題,幫助大家解決在多核異構(gòu)處理器的開發(fā)過程中遇到的問題,硬核內(nèi)容持續(xù)更新中。
引言
有很多研究單片機(jī)的小伙伴在面對多核異構(gòu)處理器時,可能會對多核的啟動流程感到困惑——因?yàn)椴皇煜CC編程和GDB調(diào)試,所以也無法確定多核異構(gòu)處理器的程序是否能像單片機(jī)那樣方便地編寫和仿真。本篇文章,小編就將以飛凌嵌入式的OKMX8MP-C開發(fā)板為例,為大家介紹多核異構(gòu)處理器M核程序的啟動配置、程序編寫和實(shí)時仿真的過程。
飛凌嵌入式OKMX8MP-C開發(fā)板飛凌嵌入式OKMX8MP-C開發(fā)板所搭載的NXP i.MX8M Plus處理器具備強(qiáng)悍的性能,集成4個主頻最高可達(dá)1.8GHz(工業(yè)級主頻為1.6GHz) 的Arm Cortex-A53多任務(wù)核和1個Cortex-M7實(shí)時核,不管是對數(shù)據(jù)的高速吞吐、處理,還是復(fù)雜的人機(jī)交互界面處理,都能從容應(yīng)對。
M核程序啟動
NXP i.MX8M Plus處理器的M核是無法單獨(dú)啟動的,必須由A核uboot加載,因此飛凌嵌入式基于這款處理器打造的OKMX8MP-C開發(fā)板也是默認(rèn)不開啟M核的,需要修改uboot下的環(huán)境變量,配置M核自啟動。
這樣每次A核啟動后,uboot會加載/run/media/mmcblk2p1/目錄下的forlinx_m7_tcm_firmware.bin文件,M核啟動后會完成內(nèi)核初始化,并由資源域0變?yōu)橘Y源域1,再將時鐘、外設(shè)、內(nèi)存等資源初始化,就可以完成程序的輪轉(zhuǎn)運(yùn)行了。
1. uboot環(huán)境變量加載M核
(1)重啟OKMX8MP-C開發(fā)板,按空格鍵進(jìn)入uboot命令行控制臺。
(2)輸入”1”進(jìn)入uboot控制臺。并按順序依次輸入以下命令,修改uboot環(huán)境變量,使其能加載M核程序。
2. 下載M核程序
(1)我們可以使用IAR軟件對飛凌M核軟件開發(fā)包的程序進(jìn)行編譯,在工程目錄/IAR/debug目錄下將生成*.bin文件,將文件名稱改為:forlinx_m7_tcm_firmware.bin ;
(2)使用串口Xmodem,網(wǎng)絡(luò)FTP,SCP,U盤,TF卡等多種方式,都可以將forlinx_m7_tcm_firmware.bin 從電腦拷貝至核心板/run/media/mmcblk2p1/目錄下,在Linux調(diào)試串口輸入 sync 命令同步 ;
(3)給OKMX8MP-C開發(fā)板重新上電,A核uboot會加載M核程序,通過M核串口即可看到程序的打印信息。
M核程序編寫
許多使用單片機(jī)的用戶習(xí)慣通過Keil或IAR這類IDE工具對程序進(jìn)行編寫;由于此類軟件易用性較差,因此很多時候我們都會再使用VScode等編輯器進(jìn)行代碼的編輯開發(fā);但此類編輯器對程序編譯、燒寫和仿真時又相當(dāng)不方便,大家在選擇工具時可能會很頭痛。
這里小編推薦使用VScode對代碼編寫和修改,使用IAR對程序編譯、下載、仿真。
1. IDE工具——IAR
IAR是支持多個廠家的單片機(jī)處理器的集成開發(fā)環(huán)境(IDE),用于提供開發(fā)環(huán)境的應(yīng)用程序,是集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件。
i.MX8M Plus處理器的IAR版本要求在9.20版本以上,用戶可在網(wǎng)上自行下載。用戶在安裝IAR后,打開飛凌嵌入式提供的M核SDK開發(fā)包,可在boards\evkmimx8mp\driver_examples\*\*\iar目錄下找到iar工程文件*.ewww,雙擊即打開IAR項(xiàng)目。
2. VScode
VScode是微軟推出的一款跨平臺的編輯器,能夠在windows、Linux、iOS等平臺上運(yùn)行,通過安裝插件可以讓這個編輯器變成一個編譯器。
軟件打開后在菜單欄單擊文件--打開文件夾,選擇SDK下對應(yīng)的例程,即可完成代碼的編寫和修改工作。
M核程序仿真
飛凌嵌入式OKMX8MP-C開發(fā)板支持JTAG對M核的硬件仿真功能,用戶可在IAR中通過JTAG設(shè)置斷點(diǎn),實(shí)時查看和修改各變量,全速運(yùn)行或單步運(yùn)行程序等功能,提高程序排查錯誤時的效率。
1. 安裝JTAG
(1)在Segger官網(wǎng)下載J-LINK驅(qū)動,并在電腦上安裝程序,IDE工具選擇IAR;
(2)由于i.MX8M Plus是推出時間相對較短的芯片,因此需要更換Segger目錄下8mp的J-LINK驅(qū)動;
(3)如果使用的NXP官方的 SDK還需要更換啟動文件。
2. 硬件鏈接
飛凌嵌入式OKMX8MP-C開發(fā)板JTAG接口采用標(biāo)準(zhǔn)線序,用戶可通過20pin 2.54間距轉(zhuǎn)10pin 1.27間距的JTAG轉(zhuǎn)接板和10pin1.27 間距的連接線與J-LINK連接,注意J-LINK 1腳要和開發(fā)板JTAG 1 腳對應(yīng)。
3. 硬件仿真
(1)用戶將程序編譯完成后,將執(zhí)行程序放入
核心板/run/media/mmcblk2p1/ 目錄下,因?yàn)橛布抡媸菍DK包的程序加載到內(nèi)存執(zhí)行,所以要仿真的程序和核心板中的forlinx_m7_tcm_firmware.bin可不是同一個;
(2)點(diǎn)擊仿真按鈕或快捷鍵Ctrl+D,進(jìn)入仿真界面,可正常設(shè)置斷點(diǎn)、監(jiān)測變量、單步和全速執(zhí)行、復(fù)位等操作;
(3)如果需要查看freeRTOS任務(wù)調(diào)度情況,在工程處右擊,選擇OptionS菜單,Debugger-Plugins界面中勾選FreeRTOS and OpenROTS。
4. 串口打印
飛凌嵌入式OKMX8MP-C開發(fā)板除了支持JLink硬件仿真外,應(yīng)用程序中還可通過PRINTF函數(shù)向M核串口輸出打印信息,了解程序運(yùn)行過程。
好啦,以上就是小編為大家?guī)淼幕贠KMX8MP-C開發(fā)板的M核程序的使用方法,是不是感覺和單片機(jī)的開發(fā)一樣簡單又方便呢?
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229657 -
ARM
+關(guān)注
關(guān)注
134文章
9087瀏覽量
367398 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19107瀏覽量
304834
發(fā)布評論請先 登錄
相關(guān)推薦
評論