异构通信的示范代码,在官网可以下载到,选择sdk后,按图下载源码即可。
代码解压缩到电脑上,打开这个位置就可以找到rpmsg的线程代码了。这个代码展示了如何在两个处理器核心之间通过rpmsg-lite进行通信。rpmsg-lite是一个轻量级的远程过程调用(RPC)库,用于在不同的处理器核心之间进行高效的数据传输。
在正常编译前,需要先解压缩arm-none-eabi-gcc,并且将build_all.sh和clean_all.sh两个脚本添加运行权限,然后设置编译器环境变量
export ARMGCC_DIR="/mnt/MyNAS/walker/.bin/tools/gcc-arm-none-eabi"
然后就可以执行编译命令了
./build_all.sh
通过scp命令把编译好的程序放到板子上,然后就可以运行以下两个命令echo /root/rpmsg_lite_pingpong_rtos_linux_remote.elf > /sys/devices/platform/imx93-cm33/remoteproc/remoteproc0/firmware echo start > /sys/devices/platform/imx93-cm33/remoteproc/remoteproc0/state
这样就可以正常启动m33的程序了,然后Linux终端这边显示的内容
可以看到,程序已经正常加载了。
然后我们加载内核模块,使用以下命令
modprobe imx_rpmsg_pingpong
可以看到,Linux终端这边接收到M33核心那边的数据。
M33内核这边,使用串口连接上J15后,输出如下:
符合乒乓程序的运行逻辑
更多回帖