新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > OMAPL138双核系统的调试方案设计

OMAPL138双核系统的调试方案设计

作者:时间:2012-05-08来源:网络收藏

摘要:高性能、低功耗处理器为手持式移动设备提供强有力的支持。对通信模块DSPLink的软件架构和在Linux嵌入式操作下的编译加载进行了分析和介绍,以消息队列组件为例分析了ARM和DSP通信时通道的建立和连接的方式。通过DSP/BIOS和Linux端DSPLink的MSGQ接口和多线程技术,建立ARM和DSP消息传递通道,提供了在双核开发中对DSP端暗箱的解决方法。
关键词:;双核处理器;DSPLink;消息队列;

1 双核困难
双核芯片的推出为兼顾强大的数据处理能力和良好的用户体验提供了解决方案,将双CPU集成在一个芯片上也简化了硬件电路设计的难度。但是,双核开发增加了软件设计的难度。以往的ARM工程师与DSP算法工程师的明确分工已经不能适用于双核芯片的开发,需要在双核芯片的同步运行上提供一些解决方案。开发工程师在进行双核开发中会遇到调试方面的困难,以往的CCS和仿真器的调试方式已经不适用于双核环境下对DSP程序的调试。DSP端的程序运行,无法直观地提供调试信息给开发者,相当于一个“黑匣子”,以至于开发者无法获取DSP端寄存器和变量的变化情况。本文通过推出基于DSPLink软件模块的消息队列组件,使DSP调试信息通过ARM端应用程序打印。

2 双核通信理论
TI公司推出的OMAP体系结构与其推出的达芬奇结构有相似之处,OMAP体系开发套件与达芬奇套件有很大的相似性,而达芬奇处理器最具革命性的意义在于它的全平台开放。TI提供了全套开发套件,给工程师们在开发上提供了便利性和规范。开发套件中,基于双核通信的底层为DSPLink模块,为核心模块。
2.1 DSPLink双核通信构架
在OMAP体系中,芯片设计时,在片内分配一块RAM内存区域,是ARM和DSP都可以直接使用的共享内存区域。在小数据量的简单的控制信息通信时,可以直接使用片内的共享内存,通信速率也是最快的。同时还有将共享内存分配在片外的DDR,以便进行大数据量的传输。
DSPLink为TI针对双核通信的底层模块,在ARM端和DSP端具有相似的作用,在ARM端Linux嵌入式操作中作为Linux的内核模块存在,扮演着设备驱动的角色,通过驱动提供的众多上层API接口直接操作共享内存。在DSP端其连接的是TI推出的主要用于DSP的一款实时操作DSP/BIOS,同样作为驱动存在。采用DSPLink软件方法将物理层抽象出来,为硬件提供了十分优秀的拟合,使ARM和DSP在通信上实现无缝的链接。
DSPLink的软件构架如图1所示。

本文引用地址:http://www.eepw.com.cn/article/149121.htm

a.jpg


(1)在GPP端
GPP OS:在GPP端多采用操作系统,比较常用的是嵌入式操作系统Linux和WinCE,TI的DVSDK中有相关的支持。
OS抽象层:OS抽象层包含了DSPLink需要的一些通用的OS服务部件,通过此层使DSPLink可以不依赖特定的操作系统,从而可以利用接口特性更多地针对不同的操作系统使用,使开发者方便地移植到不同操作系统中。
Link Driver:GPP端的驱动层,该层提供了共享内存的GPP端的驱动。
Processor Manager:该层维护一个针对所有模块的Book-Keeping信息,通过API给用户提供通过Link Driver的控制操作。
DSP/BIOS Link:通过API可以脱离对底层的了解,直接操作共享内存,以实现通信。
(2)在DSP端
DSP Link Driver:Link Driver是DSP/BIOS中驱动的一部分,该部分驱动只负责基于物理连接之上与GPP之间的交互。
DSP/BIOS:DSP端的实时操作系统。
2.2 MSGQ通信搭建方法
双核通信的基本模式即是一方将所需要传输的数据放到共享内存中,通过中断的方式告知另一方。作为DSPLink中不同的通信模块,存在的不同只是对共享内存的组织方式不同。下面以MSGQ传输方式为例分析建立双核通信构架。
MSGQ表述消息队列方式,主要针对ARM和DSP端可变长度的短消息的交互,是基于DSP/BIOS的MSGQ模块实现的。消息的发送/接收都要以队列的方式进行。消息的发送者将消息发送入队列中,随后接收者从队列中将消息取出。每个消息队列只能有一个接收者,但是可以同时有多个发送者。在一个任务中,可以进行多个消息队列的读写。使用MSGQ进行数据传输还需要用到另外两个组件:
①PROC,在GPP应用中模拟DSP角色,控制DSP程序的载入、运行、停止。
②POOL,用于分配存储器缓冲区,将内存合理分块,使分配所需内存适合传输数据的尺寸。
利用这两个组件,将完成DSP程序的载入启动和内存池的分配。
MSGQ通信流程如图2所示。

b.jpg

linux相关文章:linux教程



上一页 1 2 3 4 下一页

推荐阅读

评论

技术专区

关闭