找回密码
 注册

扫一扫,访问微社区

查看: 245|回复: 0

【经验分享】基于创龙AM5708多核间通信的IPC例程通用开发流程

[复制链接]

三级会员(30)

Rank: 3Rank: 3Rank: 3

发表于 2019-5-16 15:44 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 chuanglong 于 2019-5-16 15:47 编辑 . C$ S% Y, J  P) h' U. z, U# q
3 J8 A( V. F  Z1 j# E, d
【经验分享】基于创龙AM5708多核间通信的IPC例程通用开发流程
9 C9 V" I  `# I( {# G$ `# X
此文章原创来源于:创龙电子
        AM5708嵌入式开发板是一款由创龙基于TI AM570x浮点DSP C66x + ARM Cortex-A15工业控制及可编程音视频处理器。由SOM-TL570x工业核心板设计的开发板,它为用户提供了SOM-TL570x工业核心板的测试平台,用于快速评估SOM-TL570x工业核心板的整体性能。广泛应用于机器视觉、电力自动化、智能交通、医疗器械、自动分拣装置、高精度仪器仪表、高端数控系统等多种工业应用场合。
5708开发板.jpg
        下面简单讲解一下创龙基于AM57x核间通信的IPC例程位于光盘"Demo\rtos-examples"目录下,其中ti-linux-ipc-examples文件夹下包含TI官方例程,tl-linux-ipc-examples文件夹下为创龙移植的IPC例程。
        每个IPC例程包含src、bin两个文件夹,其中src文件夹下含例程源文件,bin文件夹下含有我司提供的IPC例程可执行文件,将其复制到开发板文件系统下即可测试。本章节以光盘"Demo\rtos-examples\tl-linux-ipc-examples\tl-gatemap-mutex-access"例程为例,演示基于AM57x核间通信IPC例程在Linux下的通用开发步骤。测试前请参照《基于创龙AM57x的RTOS SDK开发环境搭建和编译说明》文档,搭建基于Linux的RTOS Processor-SDK-04.03开发环境、编译IPC例程需要依赖的IPC链接库。
[url=]AM5708[/url]编译libticmem.a链接库
libticmem.a共享内存链接库提供对共享内存的支持,它是由IPC例程"/src/ludev"源文件编译生成,例程如果未使用共享内存则源码不含该文件。
如果IPC例程需要使用到共享内存,请参照如下方法编译生成libticmem.a链接库。编译IPC例程时依赖于libticmem.a链接库,如果IPC例程没有使用到共享内存则无需编译libticmem.a链接库。
打开Ubuntu,执行如下指令新建“/home/tronlong/AM57xx/rtos_examples/”工作目录,将光盘“Demo\rtos-examples\tl-linux-ipc-examples\tl-gatemap-mutex-access”例程整个文件夹上传到rtos_examples工作目录。
Host#   mkdir -p /home/tronlong/AM57xx/rtos_examples
Host#   cd /home/tronlong/AM57xx/rtos_examples
image1 (1).jpg
图 1
进入IPC例程"/src/ludev"目录,在ludev下依次执行如下指令,新建__install目录用于存放编译生成的文件。并设置好环境变量,其中"prefix="参数应根据IPC例程"ludev/__install"目录实际路径修改。
Host#   cd tl-gatemap-mutex-access/src/ludev/
Host#   mkdir __install
Host#   ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=/home/tronlong/AM57xx/rtos_examples/tl-gatemap-mutex-access/src/ludev/__install
' t, \* {6 Q& h5 h" s' l% B9 B- B5 q# U
image1 (2).jpg
图 2

/ O* Q5 {* M& S. |; i* j2 g
执行如下指令编译并安装镜像,编译完成后,将在“__install/lib”目录下会生成libticmem.a链接库文件,如下图所示:
Host#   make && make install
image1 (3).jpg
图 3
image1 (4).jpg
图 4
: O7 N1 [9 d( u7 N, l. n$ |( m
[url=]AM5708[/url]的IPC例程编译
以光盘“Demo\rtos-examples\tl-linux-ipc-examples\tl-gatemap-mutex-access”例程为例,进入tl-gatemap-mutex-access工程源码目录,打开products.mak文件,参照如下方法并结合实际情况配置环境变量,其他变量保持一致无需修改。
Host#   vi products.mak
image1 (5).jpg
图 5

" Q" u8 @& m" z7 B( U1 {6 c( g
  • Linux-RT交叉编译工具链路径
      `' `; d3 \: ^
TOOLCHAIN_INSTALL_DIR = /home/tronlong/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr
  • Cmem链接库路径
    1 C3 c) b0 K( x- x
CMEM_INSTALL_DIR = /home/tronlong/AM57xx/rtos_examples/tl-gatemap-mutex-access/src/ludev
image1 (6).jpg
图 6
修改完成保存退出后,执行如下指令清理工程,编译并安装镜像。
Host#   make clean
Host#   make -j 8 && make install
image1 (7).jpg
图 7

$ d0 ?0 [; u4 }* H& c
编译完成后,会在“install/tl-gatemap-mutex-access/debug”目录下生成可执行文件,本例程编译生成了A15核可执行文件(app_host)和DSP1核可执行文件(server_dsp1.xe66),不同例程编译生成的可执行文件不一样。不同核心对应的可执行文件、trace buffer(调试信息)路径不相同,对应关系如下表所示。

/ v9 h3 P; t$ a' U" W
表 1
6 y" C5 x& {! U/ Z
核心
可执行文件
trace buffer
Host
A15核
app_host
——
Slave
DSP1核
server_dsp1.xe66
remoteproc2/trace0
DSP2核
5 T. h% p6 T, v- ?% L(AM570x不含)
server_dsp2.xe66
remoteproc3/trace0
IPU1核
server_ipu1.xem4
remoteproc0/trace0
IPU2核
server_ipu2.xem4
remoteproc1/trace0
1 K$ T( C; U' Z6 n# A6 c
Host#   tree -A install/
image1 (8).jpg
图 8

4 l$ j8 B& i. l; ]  C9 V& ~[url=]AM5708[/url]的IPC例程测试
为便于测试,我司提供经测试验证的IPC例程可执行文件,位于光盘“Demo\rtos-examples”路径下的IPC工程bin目录下,bin目录下还包含load-firmware.sh脚本文件,ARM端通过load-firmware.sh脚本文件加载可执行文件到DSP/M4核心。
以tl-gatemap-mutex-access例程为例,将光盘“Demo\rtos-examples\tl-linux-ipc-examples\tl-gatemap-mutex-access\bin”文件夹复制到开发板文件系统“/home/root”目录下。进入文件系统bin目录,执行load-firmware.sh脚本文件加载固件:
Target#       ./load-firmware.sh
image1 (9).jpg
图 9
执行如下指令,运行A15测试程序:
Target#       ./app_host
image1 (10).jpg
图 10

9 Y5 w; ~4 s2 q3 T
执行如下指令查看DSP核打印信息,如下图所示:
Target#       cat /sys/kernel/debug/remoteproc/remoteproc2/trace0
image1 (11).jpg
图 11
AM570x开发板开发资料
l  提供核心板引脚定义、可编辑底板原理图、可编辑底板PCB、芯片Datasheet,缩短硬件设计周期;
l  提供系统烧写镜像、内核驱动源码、文件系统源码,以及丰富的Demo程序;
l  提供完整的平台开发包、入门教程,节省软件整理时间,上手容易;
l  提供详细的DSP+ARM多核通信教程,有力解决多核开发瓶颈;
l  提供基于Qt的图形界面开发教程。
l  AM5708开发例程主要包括:
AM5708基于ARM端的Linux开发例程
AM5708基于TI-RTOS的ARM、DSP、PRU、IPU的开发例程
AM5708基于OpenCL、OpenMP、IPC的多核开发例程
AM5708基于OpenCV的图像开发例程
AM5708基于Qt的入门开发例程
AM5708基于TI-RTOS和RT-Linux的EtherCAT开发例程
AM5708音视频采集和编解码例程
创龙高品质工业核心板,嵌入式一体化解决方案商。

7 c; R9 Y5 T4 @, Q" q- _) K1 E
8 q* q; X/ d' X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号 )

GMT+8, 2019-9-18 11:14 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19925233282

快速回复 返回顶部 返回列表