本篇测评由电子工程世界的优秀测评者“bloong”提供。 此次测试的项目,是异构处理器间相互通讯项目。 MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行Linux和RTOS。本文主要介绍协处理器M7使用方法。M7在运行时可能会涉及到和A53核共用资源,这里列举出会冲突资源如下: ECSPI0/ECSPI2,FLEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,UART4,PWM4,SDMA1/SDMA2,所以在一起使用时,需要将A53的这些资源关闭,这里就需要用到myd-jx8mp-rpmsg.dtb设备树。这里的M7使用uart4 作为串口。 下文介绍如何使用M7,以及编译M7程序的方法: M7使用方法 接两个串口:1个是开发板的Debug串口,另一个是M7的 UART4 串口。 1、Debug口为J4及TYPE-C Debug; 2、UART4口为J6,下图中红色箭头指示位置为pin1即UART4_TXD,据此pin2即UART4_RXD,pin3为GND。接这3根线就可以。 查看分区信息 启动开发板按任意键进入uboot模式,查看vfat分区中存在的文件。 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 -lt 8912.dtb 62555 myd-jx8mp-m190etn01- 19 .dtb 62619 myd-jx8mp-rpmsg.dtb 2113024 tee.bin 12 file(s), 0 dir(s) 设置M7设备树 kernel加载的设备树由fdt_file变量决定,这里设置成M7专用设备树。 printenv fdt_file fdt_file=myd-jx8mp-base.dtb setenv fdt_file myd-jx8mp-rpmsg.dtb save Saving Environment to MMC... Writing to MMC( 2 )... OK printenv fdt_file fdt_file=myd-jx8mp-rpmsg.dtb 设置M7启动参数 M7启动流程也是加载M7程序到内存,用bootaux命令启动, 正常kernel启动也一样,只是最后用bootm启动。 printenv fdt_file fdt_file=myd-jx8mp-base.dtb setenv fdt_file myd-jx8mp-rpmsg.dtb save Saving Environment to MMC... Writing to MMC( 2 )... OK printenv fdt_file fdt_file=myd-jx8mp-rpmsg.dtb setenv m7_image imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin setenv m7_boot_temp_addr 0x48000000 setenv m7_boot_addr 0x7E0000 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}' 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}' setenv mmcboot "run m7_run;${mmcboot}" save Saving Environment to MMC... Writing to MMC( 2 )... OK 测试M7程序 此时已经设置好了M7启动,只需要重启开发板,那么在A53启动kernel同时,也会启动M7中的程序。启动之后A53的串口执行如下2句,既可以看到M7中串口出现 对应的打印。 myd-jx8mp login: root root @myd - jx8mp: ~ # modprobe imx_rpmsg_tty root @myd - jx8mp: ~ # can1-stby: disabling can2- stby: disabling VSD_3V3 : disabling m2_keyb_pwr: disabling echo "hi m7!" /dev/tty RPMSG3 0 root @myd - jx8mp: ~ # cat /dev/ttyRPMSG30 hi m7! 想要了解优秀测评者“ bloong ”关于MYD-JX8MPQ开发板测评原文的可以复制下方链接查看: http://bbs.eeworld.com.cn/thread-1198858-1-1.html