`
本帖最后由 yeyuangen 于 2020-2-25 23:27 编辑
AM5728 DSP/ARM/IPU核间通信例程实践
1 开发环境说明 Ø RTOS Processor-SDK 04.03.00.05;
Ø Linux-RT-4.9.65 内核;
Ø IPC 开发包版本:3.47.01.00。
ludev"
源文件编译生成,例程如果未使用共享内存则源码不含该文件。 如果IPC
例程需要使用到共享内存,请参照如下方法编译生成 lib
ticmem.a
链接库。 编译 IPC 例程时依赖于 libticmem.a 链接库,如果 IPC 例程没有使用到共享内存则无需编译 libticmem.a 链接库。 打开 Ubuntu,执行如下指令新建“/home/xmtech/AM57xx/rtos_examples/”工作目录, 将网盘“Demo
tos-examplesxm-linux-ipc-examplesxm-gatemap-mutex -access”例程整个文件夹上传到 rtos_examples 工作目录。
Host# mkdir -p /home/xmtech/AM57xx/rtos_examples
Host# cd /home/xmtech/AM57xx/rtos_examples
进入 IPC 例程"/src/ludev"目录,在 ludev 下依次执行如下指令,新__install 目录用于存放编译生成的文件。并设置好环境变量,其中"prefix="参数应根据 IPC 例程"ludev/__install"目录实际路径修改。
Host# cd xm-gatemap-mutex-access/src/ludev/
Host# mkdir __install
Host# ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --
prefix=/home/xmtech/AM57xx/rtos_examples/xm-gatemap-mutex-access/src/ludev/__install
执行如下指令编译并安装镜像,编译完成后,将在“__install/lib”目录下会生成
libticmem.a 链接库文件。
Host# make && make install
2.2 IPC 例程编译 以网盘“Demo
tos-examplesxm-linux-ipc-examplesxm-gatemap-mutex- access”例程为例, 进入 xm-gatemap-mutex-access 工程源码目录,打开 products.mak 文件,参照如下方法并结合实际情况配置环境变量,其他变量保持一致无需修改。
Host# vi products.mak
Ø Linux-RT 交叉编译工具链路径
TOOLCHAIN_INSTALL_DIR =
/home/xmtech/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr
Ø Cmem 链接库路径
CMEM_INSTALL_DIR =
/home/xmtech/AM57xx/rtos_examples/xm-gatemap-mutex-access/src/ludev
修改完成保存退出后,执行如下指令清理工程,编译并安装镜像。
Host# make clean
Host# make -j 8 && make install
编译完成后,会在“install/xm-gatemap-mutex-access/debug”目录下生成可执行文件,本例程编译生成了A15核可执行文件(app_host)和DSP1核可执行文件(server_dsp1.xe66),不同例程编译生成的可执行文件不一样。不同核心对应的可执行文件、trace buffer(调试信息)路径不相同,对应关系如下表所示。
表2
| 核心
| 可执行文件
| trace buffer
|
Host
| A15 核
| app_host
| ——
|
Slave
| DSP1 核
| server_dsp1.xe66
| remoteproc2/trace0
|
DSP2 核
| server_dsp2.xe66
| remoteproc3/trace0
|
IPU1 核
| server_ipu1.xem4
| remoteproc0/trace0
|
IPU2 核
| server_ipu2.xem4
| remoteproc1/trace0
|
2.3 IPC 例程测试 为便于测试,我司提供经测试验证的 IPC 例程可执行文件,位于网盘“Demo
tos-examples”路径下的 IPC 工程 bin 目录下,bin 目录下还包含 load-firmware.sh 脚本文件,ARM 端通过 load-firmware.sh 脚本文件加载可执行文件到 DSP/M4 核心。
以xm-gatemap-mutex-access 例程为例 , 将网盘 “Demo
tos-examplesxm- linux-ipc-examplesxm-gatemap-mutex-accessin”文件夹复制到开发板文件系统“/home/root”目录下。进入文件系统 bin 目录,执行 load-firmware.sh 脚本文件加载固件:
Target# ./load-firmware.sh
执行如下指令,运行 A15 测试程序:
Target# ./app_host
执行如下指令查看 DSP 核打印信息,如下图所示:
Target# cat /sys/kernel/debug/remoteproc/remoteproc2/trace0
`