omapl138的双核通信组件dsplink开发入门_第1页
omapl138的双核通信组件dsplink开发入门_第2页
omapl138的双核通信组件dsplink开发入门_第3页
omapl138的双核通信组件dsplink开发入门_第4页
omapl138的双核通信组件dsplink开发入门_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

阅前须不作任何通告的情况下,终止其任何一款产品的供应和服务的权利。请用户在前向我©2014-2018GuangzhouTronlongElectronicTechnologyCo.,.Allrights广州创龙电子科技(简称“广州创龙”,英文简称“Tronlong”),是杰出的有密切的技术合作,如富士康、威胜、中国、等国内龙头企业和院TI嵌入式处理业务拓展经理ZhengXiaolong:“Tronlong是国内研究OMAP-L138最深入的企业之一,Tronlong推出OMAP-L138+Spartan-6三核处理显示解决方案,帮 技术邮箱:su DSP: 引 DSPLINK介 GPP DSP DSPLINK关键组 RING DSPLINK配 DSPLINK源 GPP端源 DSP端源 DSPLINK配 DSPLINK编 GPPGPP端DSPLINK编 DSPLINK源码编 示例程序编 DSP端DSPLINK编 DSPLINK源码编 示例程序编 DSPLINK例程演 演示程序准 运行dsplink演示程 帮 引DSPLINKDSP/BIOSTMLINKGPPDSP端进行通信的驱动程序。本文将讲述基于OMAPL138平台下GPP端(ARM端)DSP端双核通信组DSPLINK内容。DSPLINK提供了一套通用API,从应用层抽象出ARMDSP的DSPLINK介绍DSPLINK的软件架构如下图示GPPGPPGPP(GeneralPurposeProcessor)是指和DSPOSADAPTATIONLAYER:指操作系统抽象层,包含了DSPLINK需要的一些通用的OS服务部件,提供了一套通用的API接口,与OS的其他组件。其他组件通过API,而不直接DSPLINK,此特性使DSPLINK可以方便的被移植到不同操作系统中。LINKDRIVER:指连接驱动含了基于GPP与DSP的物理连接的底层控制操作,负GPPDSP之间的数据传输和DSP的运行等操作。APILINKDRIVERDSP/BIOSTMLINKAPI:GPP端的接口,是非常轻小型的组件,API层可以PROCESSORMANAGER和LINKDRIVER之上的层。DSPDSP/BIOS:DSPBIOS轻量级操作系统,同时它是一个实时操作系统。本文提说,如果使用DSPlink调用DSP,那么编写DSP程序时必须要选择操作DSP/BIOSTM支物理连接之上与GPP之间的交互。DSP端没DSPLINKAPI,和GPP之间的通信DSP/BIOSTMSIO、GIO、MSGQOTHERDRIVERS:指DSP端其他驱动程序DSPLINK关键组件GPP端的DSPLINK关键组件有PROCCHNLMSGQPOOLNOTIFYMPCSPROC表述应用空间的DSP处理器,提供以下服务:初始化DSP,使之能从GPP端进行从DSP代码制定的地址运行DSP程序读写DSP端的地址空间其他一些平台专有的控制操作CHNLchannel无方向性,通道方向可以配置DSPDSPGPP端的一条物理连接被多通道复用,被传输的数据中不包含目的地和issue-reclaim端的可变长度的短消息交互,基于DSP/BIOSTM的MSGQ模块实步的API接口。此模块提供如下功能:在共享内存区域内分配或释放缓存分配的内存地址可以在不同的地址空间内转换在不同CPU核之间实现内存数据的同步此组件允许应用程序为发生在处理器上的通知(Notification),并发送通知给的处理器。允许应用程序为处理器上的一个带回调函数;使能应用程序发送通知到处理器;同时,应用程序也可以发送一个事上的各个任务之间互斥地这些数据结构,从而保证数据的连贯性。MPCS被用来实在拥有可以共同的内存区域的多处理器系统中,可以实现GPP和DPS之间的个系统唯一的字符串名字来个需要使用MPCS的客户端都需要调API打开函数来获取句柄。当不再需要使用MPCS时,通过相应的API函数来关闭句柄,同时也提供了进入和离开MPCS对象句柄指定的临界区域的API函数。如果MPCS对象要求的空间由用户提供的话,它必须位于所有处理器都可以到的池(Pool)中;如果在创建对象的时候不提供空间,则指定池的ID号将被MPCS对象用来内部分配空间。MPLISTAPIsMPLIST实体都通过一个系统唯一的字符串名字来标识。每一个需要使用MPLIST的客户端都需要调用MPLISTAPIsMPLIST实体都通过一个系统唯一的字符串名字来标识。每一个需要使用MPLIST的客户端都需要调用打开函数来获取句柄。当不再需要使用MPLIST时,通过相应的API函数来关闭句中任意一个指定的元素,并提供了检查列表是否为空的API函数。另外,还有API函数RING不同的处理都能够或者写入循环缓冲区。RINGIO组件允许通过写指针来获取数据缓冲区的空空间,当该空间被释放之后,相应空间可以被再次写入。空间的数据被标记为无效。每个RINGIO实体拥有一个读指针和一个写指针。RINGIO组件也有API函数可以使能数据属性的同步传输。如:EOS(EndOfStream)DSPLINK配置 启动开发板。需要使用linux-3.3内核请使用MCSDKSYSLINK。//DSP/BIOS源//dsplink//DSP/BIOS源//dsplink//dsp 执行以下命令分别解压以上四个文件到: cd tarzxvf/mnt/hgfs/shareVM/dsplink_linux_1_65_00_03.tar.gz-C 下就有了以下4 DSPLINK进入 展开其各 GPP端源进入 ,可以看到端的源 如下图 DSP进入进入,可以看到 DSPLINK修改环境变量 在当 运行命令“geditdsplinkenv.bash”打开配置文 dsplinkenv.bash“export 执行命令“sourcedsplinkenv.bash”会提示环境变量配置编译参数 下有dsplinkcfg.pl编译配置文件,在当前 tl@tl-desktop:~/omapl138/dsplink_linux_1_65_00_03/dsplink/config/bin$perl--tform=OMAPL138--nodsp=1-- --tform=OMAPL138:编译的平台是--dspcfg_0=OMAPL138GEMSHMEM:使用 共享内--dspos_0=DSPBIOS5XX:dsp端使用的是--gppos=ARM:gpp端是ARM平 错误的原因在于通过“sourcedsplinkenv.bash”设置环境变量仅在当前窗口有效。在另外一个窗口操作时需要重新source。修改编译时GPPOS的路径和编译器路径 件Rules.mk。ifeq("$(TI_DSPLINK_TFORM)", :=${HOME}/toolchains/git/arm-2009q1-203/binendif#ifeq("$(TI_DSPLINK_TFORM)","OMAPL138")ifeq("$(TI_DSPLINK_TFORM)", :=/home/tl/omapl138/linux-2.6.33TOOL_PATH:=/home/tl/arm-2009q1/binendif#ifeq("$(TI_DSPLINK_TFORM)", 修改gpp端配置文进入 BASE_BUILDOS:=/home/tl/omapl138/linux-(交叉编译工具链存放在位置,根据工具链存放而改动(交叉编译工具链存放在位置,根据工具链存放而改动 修改DSP端配置文c674x_5.xx_linux.mk进入c674x_5.xx_linux.mk := :=/home/tl/omapl138/bios_5_41_10_36 :=/home/tl/omapl138/ti_cgt_c6000_7.3.0 DSPLINK编译GPPDSPLINK编.1DSPLINK源码编译切换到 编译完成后,将会在以 产生gpp端的驱动程序镜像dsplinkk.ko文件4.1.2示例程序编译 下的 DSPLINK源码编译DSPDSPLINKDSPLINK源码编译 4.2.2示例程序编译 下的samples示例代码 DSPLINKDSPLINK例程演演示程序准备程序演示需要将编译完成的GPP端和DSP端的程序和数据文件到开发板的文 mkdir-p拷贝dsplinkk.ko: cd 将dsplink文件夹拷贝到开发板的根 下,完成后,进入开发板的dsplink 运行dsplink演示程序在运行所有演示程序之前,请先安装dsplink驱动程序dsplinkk.ko insmoddsplinkk.koLOOPDSP/BIOSTMLINKGPP端的任务DSP端任务的数据传输。DSP端应用程序采SIOGIO实现TSK(任务)与SWI(软中断。Size><numberoftransfers><DSPProcessorId>absolutepathofDSPexecutableDSPDSPDSPProcessorId:DSPId0DSP0,1DSP1,当只有一个DSP时,此处可不填。Target#./loopgpploop.out1024 MESSAGEDSP/BIOSTMLINK中的基本信息传递的概念。它实现了GPP端任务DSP端任务之间的信息DSP端应用程序采用MSGQ实现了TSK与MESSAGE例程中信息流向如下图MESSAGE例程演示操作令格式如下:./messagegpp<absolutepathofDSPexecutable><numberoftransfers><DSPProcessorId> GPPDSP端任务之间的数据传递,而且从GPPDSP端。DSPSIO&MSGQGIO&MSGQTSKSWI。SCALE例程演示操作令格式如下:./scalegpp<absolutepathofDSPexecutable><BufferSize><numberoftransfers><DSPProcessorId> ./scalegppscale.out1024READWRITEDSPRAM来进行传输的概GPPPROC_Read()PROC_Write()APIDSP端以及两个MSGQ实现了TSK。READWRITE例程演示操作令格式如下:./readwritegpp<absolutepathofDSPexecutable><DSPaddress><buffersize><numberoftransfers><DSPProcessorId> 1024DSP10001Kbyte RING_IO示例阐明了如何使用DSP/BIOSTMLINK中的RingIO部件以及在GPP与/DSPLinux中,这个应用程序在某个过程中通过进程或者线程来运行。在PrOS来实现TSK的用法。 RING_IORING_IO例程演示操作令格式如下:./ringiogpp<absolutepathofexecutable><R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论