嵌入式Linux在数字信号处理系统中的应用研究.docVIP

嵌入式Linux在数字信号处理系统中的应用研究.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux在数字信号处理系统中的应用研究.doc

嵌入式Linux在数字信号处理系统中的应用研究   摘 要:由于在原有的具有双核结构的数字信号处理芯片ADSP-BF561上运行的嵌入式Linux 2.6系统的运行效率不高,无法满足网络多媒体电话的实时需求。针对这个问题,本文在系统引导模式、程序的执行模式、线程支持以及双核通讯这几个方面对Linux系统进行了改进,从而提高了运行效率以及满足了实时应用的需求。   关键词:嵌入式;Linux;数字信号处理器   中图分类号:TP316.81   数字信号处理器(DSP)是指将信号以数字形式表示且处理的技术与理论,是对数字信号进行处理的一种芯片。数字信号处理器是跟随数字信号处理技术共同发展的。数字信号处理器除了应用于音视频领域,还广泛应用于通信、信息、控制、军事、雷达、医疗、家用电器以及航空航天等多个领域。下面介绍的数字信号处理器的系统采用的是嵌入式Linux 2.6系统,它在消费类的数字多媒体产品中得到广泛应用。   1 嵌入式Linux的概述   嵌入式系统是一种以计算机技术为根本,以运用为核心,软硬件可被任意裁剪,适用于各类应用系统,对成本、功耗、功能、体积以及可靠性要求严格的特定计算机系统。它的计算机硬件系统是将功能软件与操作系统集于一身,简而言之就是将系统的硬件与应用软件一体化,具有自动化高、软件代码小以及速度迅速等优点。Linux是日趋盛行的一种操作系统平台,能被广泛的用于各类产品与工程中。由于Linux系统的资源都是免费开放的,因此为了满足和适应市场以及Linux应用软件的各种需求,它的配置与所支持的软件组件都在不断发展。目前Linux系统主要有实时增强和嵌入式这两个版本。虽然Linux系统最初被用于PC体系组织结构的操作系统,但如今也被应用于各种管理单元、控制器。嵌入式Linux最大的特点便是选择性广。   2 总体设计结构   此系统主要采用的是ADSP-BF561芯片,它具备双核CPU,主要由Core A与Core B这两个可独立进行计算的Blackfin核构成。每个Blackfin都包括四种片上存储器,其中一个称为L2是双核共享的,其他三个空间里每个Blackfin核各占一份。此网络多媒体电话的主要有音/视频解码、音/视频编码(G.711、H.263)、网络通讯(H.323、PPPOE)等功能。用Linux系统来承担网络通讯功能,能很大程度地减轻软件开发整体的工作量。对系统进行总体设计时,不仅平均地分配了BF561双核芯片的计算任务,而且定义Core A为供Linux 系统运行的主导核,用来担任系统的网络通讯和解码计算,同时定义Core B 来进行运算量大的编码计算。   3 嵌入式Linux在DSP中的具体应用   在对系统进行详细设计时,有几个问题我们要事先考虑好:第一,只要是通过VDSP工具所开发出来的编/解码算法都不可在使用GCC工具编译的Linux系统中直接运行,再加上GCC工具的代码优化能力不强,因而要往Linux系统中移植编/解码算法所需的工作量太大。第二,Linux系统中没有把不是GCC工具编译出来的代码加载到BF561芯片中的片内存储空间的方法。第三,由于现有的Linux系统中不支持线程,而且系统栈存在于片外的SDRAM中,因此导致访问速度变慢。第四,BF561芯片所具备的原子操作功能在用在双核互斥的访问临界资源的时候会引起死锁。下面介绍一下具体的解决方案:   3.1 再阶段引导方式   在处理音/视频数据时,网络多媒体电话不仅要进行较多的运算,而且在计算方面要求速度较快。相比外部的SDRAM,BF561芯片的内部L1存储器对代码的执行速度要快很多,因此,要想提高速度,就该把全部的算法都加载到内部的L1中。再加上与VDSP工具相比,开源社区所支持的GCC工具所具有的优化能力较弱,因此算法最好采用VDSP工具来翻译链接。要想将这些问题解决,必须用到再阶段引导方式:在第一阶段先对链接选项进行更改,把音/视频的解压缩算法通过BF561的boot ROM加载到内部L1准确的位置上去;在第二阶段把Linux系统的压缩核心再加载到外部SDRAM的准确位置上同时开始运行。   一开始,建立一个VDSP的引导工程,往该工程里增添音/视频的解压缩的全部算法,再通过对链接选项的设置进行正确的引导。所有的代码、数据以及栈等的地址在链接文件中都进行了明确的规定,再根据链接文件VDSP工具能生成与执行程序映像,而且把地址信息都存储在于映像文件的头部。在系统引导的过程中,通过映像文件头所显示的信息,BF561的boot ROM可把数据和代码加载到之前链接文件所指定的位置上去。然后再往外部SDRAM里复制上Flash上Linux的核心压缩映像且启动核心运行。但值得注意的是,在核心运行被

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档