本篇測(cè)評(píng)由電子工程世界的優(yōu)秀測(cè)評(píng)者“bloong”提供。
此次測(cè)試的項(xiàng)目,是異構(gòu)處理器間相互通訊項(xiàng)目。
MYD-JX8MPQ配備了一顆異構(gòu)的Cortex-M7協(xié)處理器,可以同時(shí)運(yùn)行Linux和RTOS。本文主要介紹協(xié)處理器M7使用方法。M7在運(yùn)行時(shí)可能會(huì)涉及到和A53核共用資源,這里列舉出會(huì)沖突資源如下:
ECSPI0/ECSPI2,F(xiàn)LEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,UART4,PWM4,SDMA1/SDMA2,所以在一起使用時(shí),需要將A53的這些資源關(guān)閉,這里就需要用到myd-jx8mp-rpmsg.dtb設(shè)備樹(shù)。這里的M7使用uart4 作為串口。
下文介紹如何使用M7,以及編譯M7程序的方法:
M7使用方法
接兩個(gè)串口:1個(gè)是開(kāi)發(fā)板的Debug串口,另一個(gè)是M7的UART4串口。
1、Debug口為J4及TYPE-C Debug;
2、UART4口為J6,下圖中紅色箭頭指示位置為pin1即UART4_TXD,據(jù)此pin2即UART4_RXD,pin3為GND。接這3根線就可以。


查看分區(qū)信息
啟動(dòng)開(kāi)發(fā)板按任意鍵進(jìn)入uboot模式,查看vfat分區(qū)中存在的文件。
u-boot=> fatls mmc2
29209088Image
8208imx8mp_m7_TCM_hello_world.bin
19040imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
18528imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin
40948imx8mp_m7_TCM_sai_low_power_audio.bin
62815myd-jx8mp-atk-10.dtb
61702myd-jx8mp-base.dtb
62815myd-jx8mp-hontron-7.dtb
62846myd-jx8mp-lt8912.dtb
62555myd-jx8mp-m190etn01-19.dtb
62619myd-jx8mp-rpmsg.dtb
2113024tee.bin
12file(s),0dir(s)
設(shè)置M7設(shè)備樹(shù)
kernel加載的設(shè)備樹(shù)由fdt_file變量決定,這里設(shè)置成M7專用設(shè)備樹(shù)。
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-base.dtb
u-boot=> setenv fdt_file myd-jx8mp-rpmsg.dtb
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-rpmsg.dtb
u-boot=>
設(shè)置M7啟動(dòng)參數(shù)M7啟動(dòng)流程也是加載M7程序到內(nèi)存,用bootaux命令啟動(dòng), 正常kernel啟動(dòng)也一樣,只是最后用bootm啟動(dòng)。
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-base.dtb
u-boot=> setenv fdt_file myd-jx8mp-rpmsg.dtb
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=> printenv fdt_file
fdt_file=myd-jx8mp-rpmsg.dtb
u-boot=> setenv m7_image imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin
u-boot=> setenv m7_boot_temp_addr0x48000000
u-boot=> setenv m7_boot_addr0x7E0000
u-boot=> setenv m7_run'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem
> p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bo
> otaux ${m7_boot_addr}'
u-boot=> setenv m7_run'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bootaux ${m7_boot_addr}'
u-boot=> setenv mmcboot"run m7_run;${mmcboot}"
u-boot=> save
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=>
測(cè)試M7程序
此時(shí)已經(jīng)設(shè)置好了M7啟動(dòng),只需要重啟開(kāi)發(fā)板,那么在A53啟動(dòng)kernel同時(shí),也會(huì)啟動(dòng)M7中的程序。啟動(dòng)之后A53的串口執(zhí)行如下2句,既可以看到M7中串口出現(xiàn)對(duì)應(yīng)的打印。
myd-jx8mplogin:root
root@myd-jx8mp:~# modprobe imx_rpmsg_tty
root@myd-jx8mp:~# [ 33.759911] can1-stby: disabling
[33.763151] can2-stby:disabling
[33.766408]VSD_3V3:disabling
[33.769489]m2_keyb_pwr:disabling
echo"hi m7!">/dev/ttyRPMSG30
root@myd-jx8mp:~# cat /dev/ttyRPMSG30
hi m7!
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6291瀏覽量
118108
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問(wèn)qemu 可以模擬 i.MX 8M Plus 嗎?
探索FRDM - IMX8MPLUS開(kāi)發(fā)板:開(kāi)啟嵌入式開(kāi)發(fā)新旅程
今天開(kāi)獎(jiǎng)!NXP i.MX開(kāi)發(fā)板、吸塵器、定制背包免費(fèi)送~
既要穩(wěn)定性,還要性價(jià)比的工業(yè)級(jí)開(kāi)發(fā)板 — 米爾i.MX91
恩智浦FRDM i.MX 8M Plus開(kāi)發(fā)板詳解
簡(jiǎn)單認(rèn)識(shí)NXP FRDM i.MX 93開(kāi)發(fā)板
【干貨分享】米爾NXP i.MX 91開(kāi)發(fā)板移植運(yùn)行IGH EtherCAT主站
恩智浦FRDM i.MX 8M Plus開(kāi)發(fā)板上架
有獎(jiǎng)丨米爾 NXP i.MX91開(kāi)發(fā)板免費(fèi)試用來(lái)啦
米爾NXP i.MX 91核心板發(fā)布,助力新一代入門(mén)級(jí)Linux應(yīng)用開(kāi)發(fā)
新品!米爾NXP i.MX 91核心板,賦能新一代入門(mén)級(jí)Linux應(yīng)用
NXP i.MX 91開(kāi)發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件
TPS6521825 適用于 NXP i.MX 8M mini 的電源管理 IC數(shù)據(jù)手冊(cè)
NXP基于i.MX 91應(yīng)用處理器打造的FRDM i.MX 91開(kāi)發(fā)板特性參數(shù)詳解
NXP i.MX 93 開(kāi)發(fā)板#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算
如何實(shí)現(xiàn)異構(gòu)處理器間相互通訊——米爾帶您玩轉(zhuǎn)i.MX 8M Plus開(kāi)發(fā)板
評(píng)論