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

c
此文章原创来源于:创龙电子

? ? ? ??AM5708嵌入式开发板是一款由创龙基于TI AM570x浮点DSP C66x + ARM Cortex-A15工业控制及可编程音视频处理器。由SOM-TL570x工业核心板设计的开发板,它为用户提供了SOM-TL570x工业核心板的测试平台,用于快速评估SOM-TL570x工业核心板的整体性能。广泛应用于机器视觉、电力自动化、智能交通、医疗器械、自动分拣装置、高精度仪器仪表、高端数控系统等多种工业应用场合。

? ? ? ? 下面简单讲解一下创龙基于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链接库。

AM5708编译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

图 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

图 2

执行如下指令编译并安装镜像,编译完成后,将在“__install/lib”目录下会生成libticmem.a链接库文件,如下图所示:

Host#?? make && make install

图 3

图 4

AM5708的IPC例程编译
以光盘“Demo\rtos-examples\tl-linux-ipc-examples\tl-gatemap-mutex-access”例程为例,进入tl-gatemap-mutex-access工程源码目录,打开products.mak文件,参照如下方法并结合实际情况配置环境变量,其他变量保持一致无需修改。

Host#?? vi products.mak

图 5

Linux-RT交叉编译工具链路径
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链接库路径
CMEM_INSTALL_DIR = /home/tronlong/AM57xx/rtos_examples/tl-gatemap-mutex-access/src/ludev

图 6

修改完成保存退出后,执行如下指令清理工程,编译并安装镜像。

Host#?? make clean

Host#?? make -j 8 && make install


图 7

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

表 1

核心

可执行文件

trace buffer

Host

A15核

app_host

——

Slave

DSP1核

server_dsp1.xe66

remoteproc2/trace0

DSP2核
(AM570x不含)

server_dsp2.xe66

remoteproc3/trace0

IPU1核

server_ipu1.xem4

remoteproc0/trace0

IPU2核

server_ipu2.xem4

remoteproc1/trace0

Host#?? tree -A install/

图 8

AM5708的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


图 9

执行如下指令,运行A15测试程序:

Target# ????? ./app_host


图 10

执行如下指令查看DSP核打印信息,如下图所示:

Target# ????? cat /sys/kernel/debug/remoteproc/remoteproc2/trace0


图 11

原文地址:https://blog.51cto.com/13771845/2395267

时间: 2024-10-08 06:33:59

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

Prism for WPF再探(基于Prism事件的模块间通信)

上篇博文链接 一.简单介绍: 在上一篇博文中初步搭建了Prism框架的各个模块,但那只是搭建了一个空壳,里面的内容基本是空的,在这一篇我将实现各个模块间的通信,在上一篇博文的基础上改的. 先上效果图:初步介绍下,图中虚线分割为四个模块,每个模块可向另外三个模块发消息.这里还是基于模块化开发CS端程序的思路,模块之间低耦合,如果项目做大,好处自然体现出来了. 图中的效果已经实现了一个模块朝其他三个模块发送消息.这里我使用的事Prism框架中的PubSubEvent事件,其优点是简单易用,直接Pub

创龙基于C66x平台DSP与FPGA通信测试

本文为基于创龙TL665xF-EasyEVM开发板的DSP与FPGA通信测试.TL665xF-EasyEV开发板的简介绍如下:由核心板+底板构成.核心板DSP端采用单核TMS320C6655或双核TMS320C6657处理器,FPGA端采用Xilinx Artix-7处理器,实现异构多核处理器架构,DSP与FPGA内部通过uPP.EMIF16.SRIO连接:底板接口资源丰富,支持uPP.EMIF16.SRIO.千兆以太网口等多种高速接口,引出PCIe接口,单端口双通道,每通道最高通信速率5GBa

创龙TI、Xilinx全系列DSP、ARM、FPGA开发平台免费试用来了

[创龙开发板_免费试用升级啦~~]创龙TI.Xilinx全系列DSP\ARM\FPGA开发套件-免费试用 一.试用申请时间:2019年7月8日-7月19日 二.试用产品:创龙TI.Xilinx全系列开发套件 三.试用规则: 1.试用时间:20天(自然日) 2.活动流程:选择板卡-申请免费试用-审核(电话申请)-申请成功-创龙寄送板卡-确认收货,开始试用-试用完成,发布试用报告-板卡寄回创龙 3.活动说明: 活动期间,凡获得免费试用资格者即可获得创龙精美礼品一份(礼品二选一:32G U盘.保温杯)

创龙基于TI AM5708多通道振动数据采集处理单元的应用

创龙基于TI AM5708多通道振动数据采集处理单元的应用此产品案例来源于:创龙电子创龙基于TI AM5708处理器设计的开发板,广泛应用于机器视觉.电力自动化.智能交通.医疗器械.自动分拣装置.高精度仪器仪表.高端数控系统等多种工业应用场合.TI AM5708器件通过其极具灵活性的全集成混合处理器解决方案,可实现较高的处理性能.此外,这些器件还将可编程的视频处理功能与高度集成的外设集完美融合, 为用户带来全新的数据计算性能和方案灵活性. 下面简单讲解一下创龙基于TI AM5708多通道振动数据

基于TI AM335x创龙开发板U-Boot编译

分享一下基于广州创龙TL335x-IDK开发板的U-Boot编译.希望能帮助上你. 板子特点如下: ? 基于 TI AM335x ARM Cortex-A8 CPU,主频可高达 1GHz,运算能力可高达 2000DMIPS,搭配DDR3,兼容 eMMC 和 NAND FLASH,超高性价比: ? 2 个 PRU 协处理器,支持 EtherCAT.PROFINET.EtherNet/IP.PROFIBUS.Ethernet POWERLINK.Sercos 等工业协议: ? 内部集成 SGX530

基于TI AM335x创龙开发板的快速体验

着手体验的是创龙TL335x-IDK,这个板子的特点如下: 基于 TI AM335x ARM Cortex-A8 CPU,主频可高达 1GHz,运算能力可高达 2000DMIPS,搭配DDR3,兼容 eMMC 和 NAND FLASH,超高性价比: 2 个 PRU 协处理器,支持 EtherCAT.PROFINET.EtherNet/IP.PROFIBUS.Ethernet POWERLINK.Sercos 等工业协议: 内部集成 SGX530 3D 图形加速器和 24bit LCD 触摸屏控制

专訪阿里陶辉:大规模分布式系统、高性能server设计经验分享

http://www.csdn.net/article/2014-06-27/2820432 摘要:先后就职于在国内知名的互联网公司,眼下在阿里云弹性计算部门做架构设计与核心模块代码的编写,主要负责云server管理系统和存储系统的优化.陶辉就大规模分布式系统.高性能server设计分享了自己的看法. 关注陶辉非常长时间,初次对陶辉的了解还是在我们CSDN的博客上,从2007年開始写博客,一直到如今,假设不是对技术的追求和热爱,以及热爱分享的精神,我想不是非常多人能坚持下来,拥有多年大型互联网公

广州创龙TMS320C6655 TMS320C6657核心板

1 核心板简介 ? 处理器架构先进:基于TI KeyStone C66x多核定点/浮点DSP TMS320C665x,标配工业级核心板,单核TMS320C6655和双核TMS320C6657管脚Pin to Pin兼容,同等频率下具有四倍于C64x+器件的乘累加能力: ? 运算能力强:主频1.0/1.25GHz,单核可高达40GMACS和20GFLOPS,包含2个Viterbi协处理器和1个Turbo协处理解码器,每核心32KB L1P.32KB L1D.1MB L2,1MB多核共享内存,819

Android内存优化解决 资料和总结的经验分享

在前公司做一个图片处理的应用时, 项目交付的时候,客户的手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集资料和代码走查的方式来优化解决的,这里,我就把我们收集到资料和总结的经验分享下吧. Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M.我们平常看到的OutOfMemory的错误,通常 是堆内存溢出.移动开发和web开发的最大的区别是设备资源受限,对一般手