查看: 39449|回復: 0
打印 上一主題 下一主題

如何實(shí)現異構處理器間相互通訊——米爾帶您玩轉i.MX 8M Plus開(kāi)發(fā)板

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-7-22 14:56:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 米爾 , 米爾電子 , 異構處理器 , 編程 , imx8mplus
本篇測評由電子工程世界的優(yōu)秀測評者“bloong”提供。
此次測試的項目,是異構處理器間相互通訊項目。
MYD-JX8MPQ配備了一顆異構的Cortex-M7協(xié)處理器,可以同時(shí)運行Linux和RTOS。本文主要介紹協(xié)處理器M7使用方法。M7在運行時(shí)可能會(huì )涉及到和A53核共用資源,這里列舉出會(huì )沖突資源如下:
ECSPI0/ECSPI2,FLEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,UART4,PWM4,SDMA1/SDMA2,所以在一起使用時(shí),需要將A53的這些資源關(guān)閉,這里就需要用到myd-jx8mp-rpmsg.dtb設備樹(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,據此pin2即UART4_RXD,pin3為GND。接這3根線(xiàn)就可以。


查看分區信息
啟動(dòng)開(kāi)發(fā)板按任意鍵進(jìn)入uboot模式,查看vfat分區中存在的文件。
  • u-boot=> fatls mmc 2
  • 29209088 Image
  • 8208 imx8mp_m7_TCM_hello_world.bin
  • 19040 imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
  • 18528 imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin
  • 40948 imx8mp_m7_TCM_sai_low_power_audio.bin
  • 62815 myd-jx8mp-atk-10.dtb
  • 61702 myd-jx8mp-base.dtb
  • 62815 myd-jx8mp-hontron-7.dtb
  • 62846 myd-jx8mp-lt8912.dtb
  • 62555 myd-jx8mp-m190etn01-19.dtb
  • 62619 myd-jx8mp-rpmsg.dtb
  • 2113024 tee.bin

  • 12 file(s), 0 dir(s)



設置M7設備樹(shù)
kernel加載的設備樹(shù)由fdt_file變量決定,這里設置成M7專(zhuān)用設備樹(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=>



設置M7啟動(dòng)參數
M7啟動(dòng)流程也是加載M7程序到內存,用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_addr 0x48000000
  • u-boot=> setenv m7_boot_addr 0x7E0000
  • 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=>



測試M7程序
此時(shí)已經(jīng)設置好了M7啟動(dòng),只需要重啟開(kāi)發(fā)板,那么在A(yíng)53啟動(dòng)kernel同時(shí),也會(huì )啟動(dòng)M7中的程序。啟動(dòng)之后A53的串口執行如下2句,既可以看到M7中串口出現對應的打印。
  • myd-jx8mp login: 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!



想要了解優(yōu)秀測評者“bloong”關(guān)于MYD-JX8MPQ開(kāi)發(fā)板測評原文的可以復制下方鏈接查看:
http://bbs.eeworld.com.cn/thread-1198858-1-1.html


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页