随笔分类 -  OMAPL138

与Omapl138有关的笔记
摘要:Framework components 主要包括模块DSKT2和DMAN3,分别负责DSP侧的memory和EDMA资源管理。DSP算法使用的memory必须是先向DSKT2提出申请并由DSKT2分配得到的,同样DSP算法使用的EDMA通道也是向DMAN3申请并由DMAN3分配得到的。关于QDMA的操作,是通过ACPY3这个模块实现的,这样的好处是很容易对DSP侧不同的算法做整合,不同的算法之间不用担心资源(memory 和 EDMA)的冲突问题。目录结构: examples +---apps | `---system_files Linux scripts ... 阅读全文
posted @ 2014-04-01 09:35 卧佛赐杯 阅读(756) 评论(0) 推荐(0)
摘要:认识xDAIS(部分转载) 现代软件开发,已从上世纪的面向过程编程发展到当前的面向框架编程。软件开发经验已证明:框架话、模块化的开发方式可以极大的提高软件开发效率,提高代码质量及代码重用率。然而,在嵌入式编程中,由于长期缺乏完善的开发框架和可用的API,开发人员依旧利用C或汇编语言和底层硬件打交道,凡是亲力亲为,这必然会增加嵌入式开发的入门门槛,降低代码的重用性,甚至增加代码易集时的复制度(不过这些缺点,对于程序员来说确是好事,入门门槛高、开发复制意味着高付出高回报,不像现在桌面电脑端的开发,已经被人研究烂了,如果你不是超超超超级大牛,根本找不到一份满意的薪水)。基于这点,TI公司发布了一套. 阅读全文
posted @ 2014-03-29 12:12 卧佛赐杯 阅读(514) 评论(0) 推荐(0)
摘要:一、TI xDC工具入门简介 转载来自于TI XDC工具入门简介1.XDC(Express DSP Component)是TI提供的一个命令行工具,它可以生成并使用实时软件组件包,它包括一系列工具,这些工具可以允许你将你的C语言代码组织成类似于java的包管理方式,具有面向对象的特性,因为它还有一个名字,叫做eXpanDed C. 2.以上两图说明了XDC的工作方式:通过相关文件设定操作指令,读入源码、库文件以及已经存在的组件包最终生成可执行文件。3.Package------XDC工作的基本单元。包括有:源码、库文件以及元数据;元数据这包含有该包的版本信息和依赖信息,以及模块(Module) 阅读全文
posted @ 2014-03-28 10:37 卧佛赐杯 阅读(1225) 评论(0) 推荐(0)
摘要:MPCSMPCS 实现了GPP和DSP互斥访问共享数据结构,应用程序有时候需要定义属于自己的并能够被多个处理器访问的数据结构,用于多个处理器间的信息通信。但应用程序必须保证某个或多个处理器的各个任务之间都可以互斥地访问这些数据结构,以保证数据的连贯性。MPCS用于解决这个问题。 MPCS组件提供了接口来创建和删除MPCS实体,每个MPCS实体都通过一个系统唯一的字符串来标识。每一个需要使用MPCS的客户端都需要调用API打开函数来获取句柄。不使用MPCS时,用相应API函数来关闭句柄。 如果MPCS对象要求的存储空间由用户提供的话,则它必须位于所有处理器都可以访问的POOL中,如果在创建对.. 阅读全文
posted @ 2014-03-28 10:17 卧佛赐杯 阅读(654) 评论(0) 推荐(0)
摘要:MPLIST 示例阐明了如何使用 DSP/BIOSLINK 中的 MPLIST 的部件以及在 GPP 与使用多个处理器列表的 DSP 之间的数据流的方法。它实现了 GPP 端和 DSP 端之间的数据转换与传递。在 DSP 端,应用程序通过 MPLIST 实现了 TSK。---------------------------------------------GPP端--------------------------------------------------------status = MP_LIST_Create (dspExecutable,strNumIterations,strN 阅读全文
posted @ 2014-03-27 17:44 卧佛赐杯 阅读(653) 评论(0) 推荐(0)
摘要:RING_IO 示例阐明了如何使用 DSP/BIOSLINK 中的 RingIO 部件以及在 GPP 与使用两个RingIO 实例的 DSP 之间的数据流的方法。它实现了数据在 GPP 端运行的线程/进程的应用程序和 DSP 端之间的传递与转换。在 Linux 中,这个应用程序在某个过程中通过进程或者线程来运行。在 PrOS 中,它通过一系列任务来运行。在随后的部分应用程序中的每个线程/进程/被视为客户端。DSP端使用RingIO实现TSK。------------------------------------GPP端------------------------------------- 阅读全文
posted @ 2014-03-27 16:50 卧佛赐杯 阅读(908) 评论(0) 推荐(0)
摘要:READWRITE 示例阐明了大缓冲区通过直接读写 DSP 内部 RAM 来进行传输的概念。它实现了在 GPP 端和使用 PROC_Read()和 PROC_Write() API 的 DSP 端以及两个 DSP 端之间的大尺寸数据缓冲器之间的数据与信息的传递和转换。DSP 端应用程序采用 MSGQ 实现了 TSK。------------------------------------------------GPP端----------------------------------------------------status = RDWR_Create (dspExecutable,s 阅读全文
posted @ 2014-03-27 12:01 卧佛赐杯 阅读(697) 评论(2) 推荐(0)
摘要:关于dsplink channel组件与message组件的小结: 1、对于GPP端(arm/linux)来说: 初始化的三步曲都是一样的,proc_setup()、proc_attach()、pool_open(),使用channel组件时,发送和接收需要创建两条channel通道,为发送到DSP分配channel缓冲,然后调用proc_load()。对于message来说,向DSP发送数据和从DSP接收数据初始化是不同的,向DSP发送数据就打开远程传输msgq_transportopen()(在发送时也需要对DSP消息队列进行定位,这个动作放到发送执行函数时进行),从DSP端接收数据... 阅读全文
posted @ 2014-03-27 11:16 卧佛赐杯 阅读(420) 评论(0) 推荐(0)
摘要:SCALE 示例阐明了在DSP/BIOS LINK 的数据流和信息的组合,实现了GPP端和DSP端任务间的数据传递,还从GPP端发送信息到DSP端。-------------------------------------------GPP端------------------------------------------------SCALE_BufferSize = DSPLINK_ALIGN (SCALE_Atoi (strBufferSize),DSPLINK_BUF_ALIGN) ; //验证数据缓冲区大小status = SCALE_Create (dspExecutable,. 阅读全文
posted @ 2014-03-26 17:40 卧佛赐杯 阅读(829) 评论(0) 推荐(0)
摘要:信息流如下图--------------------------------------------ARM端------------------------------------------status = MESSAGE_Create (dspExecutable,strNumIterations,processorId) ;--------PROC_setup()--------PROC_attach()--------POOL_open()--------status = MSGQ_open (SampleGppMsgqName, &SampleGppMsgq, NULL) ; 阅读全文
posted @ 2014-03-26 16:13 卧佛赐杯 阅读(701) 评论(0) 推荐(0)
摘要:参考资料:77F6-TI DSP BIOS Real-time Operating System v6.x User’s Guide.pdfDSP/BIOS一、关于DSP/BIOSDSP/BIOS 是一个可裁剪实时内核,它提供了多线程抢占、硬件抽象、实习分析、配置工具。实时软件组件(RTSC)为模块打包和配置提供了一个标准,RTSC包含一组工具(XDCtools)和一个实时包二、线程模块1、DSP/BIOS 启动顺序1)xdctools 运行时启动顺序CPU初始化-->用户提供的重置函数-->运行cinit()以初始化C运行环境-->运行用户提供的first function 阅读全文
posted @ 2014-03-26 14:07 卧佛赐杯 阅读(2442) 评论(0) 推荐(0)
摘要:loop例程中数据流向:………………………………………………………………ARM端…………………………………………………………………loop.c是实现loop例程的文件。status = LOOP_Create (dspExecutable,strBufferSize,strNumIterations,processorId) ; --------status = PROC_setup (NULL) ; --------status = PROC_attach (processorId, NULL) ; --------status = POOL_open (POOL_make... 阅读全文
posted @ 2014-03-26 09:38 卧佛赐杯 阅读(795) 评论(1) 推荐(0)