前言
MYD-JX8MMA7 配备了一颗异构的 Cortex-M4 协处理器,可以跑实时系统用于控制等相关处理。
m4 在运行时可能会涉及到和 A53 核共用资源,需要切换到 mydjx8mma7-rpmsg-m4.dtb 设备树。M4 使用 uart4 作为串口。
准备
准备如下文件
03_Tools\Toolchains\gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
04_Sources\SDK_2.8.0_EVK-MIMX8MM.tar.gz
解压编译器
mkdir toolchain
tar -lxf /mnt/d/BOARD/MYD-JX8MMA7/03_Tools/Toolchains/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2 -C toolchain/
解压SDK包
mkdir SDK_2.8.0_EVK-MIMX8MM
tar -zxf /mnt/d/BOARD/MYD-JX8MMA7/04_Sources/SDK_2.8.0_EVK-MIMX8MM.tar.gz -C SDK_2.8.0_EVK-MIMX8MM/
可以使用vscode打开阅读,工程如下
设置编译器路径
export ARMGCC_DIR=`pwd`/toolchain/gcc-arm-none-eabi-7-2017-q4-major
编译
cd SDK_2.8.0_EVK-MIMX8MM/boards/evkmimx8mm/demo_apps/hello_world/armgcc/
./clean.sh
./build_debug.sh
debug/下生成hello_world.bin hello_world.elf
运行
重启,按回车进入boot
修改设备树为setenv fdtfile myd-jx8mma7-rpmsg.dtb
u-boot=> mmc list
FSL_SDHC: 1
FSL_SDHC: 2 (eMMC)
u-boot=> fatls mmc 2
39297536 Image
6040 imx8mm_m4_TCM_hello_world.bin
17248 imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
16712 imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
40780 imx8mm_m4_TCM_sai_low_power_audio.bin
47864 myd-jx8mma7-lvds-atk10-1.dtb
47045 myd-jx8mma7-rpmsg.dtb
474776 tee.bin
8 file(s), 0 dir(s)
u-boot=> print fdtfile
fdtfile=myd-jx8mma7-lvds-atk10-1.dtb
u-boot=> setenv fdtfile myd-jx8mma7-rpmsg.dtb
u-boot=> saveenv
Saving Environment to MMC... Writing to MMC(2)... OK
u-boot=> print fdtfile
fdtfile=myd-jx8mma7-rpmsg.dtb
u-boot=>
导出到win下cp debug/hello_world.elf /mnt/d
开发板中
cd /lib/firmware/
rz导入hello_world.elf到开发板
echo /lib/firmware/hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware
没有/sys/class/remoteproc/remoteproc0/firmware这个路径,未能测试运行
总结
没有 /sys/class/remoteproc/remoteproc0/firmware
这个路径,参考文档中没有找到原因。
参考
MYD-JX8MMA7软件评估指南.pdf 2.2章
MYD-JX8MMA7软件开发指南.pdf 2.2.2章