
本书从DSP软件开发的各个角度阐述了TI公司提供的DSP软件技术和开发工具,为DSP软件开发人员理清思路,以简化和加快DSP系统的软件开发。第1章首先从宏观上讨论了DSP嵌入式系统软件开发应注意的要素,然后简介了TI公司的eXpressDSP实时软件组件和开发工具。第2~5章分别从DSP可重用实时软件技术、多核嵌入式软件开发、优化的DSP库,以及DSP软件开发工具等几方面进行了详细介绍。 本书所涉及的材料,是截止到2014年的最新资料。结合编者的项目开发经验,增加了实现的例子,有利于读者理解和应用。
序 自20世纪70年代末80年代初,DSP处理器诞生以来,发展与推广应用神速,在短短的30多年时间内,其应用的领域和深度,令人叹为观止。 随着科学技术的进步,尤其是微电子和软件科学与技术的发展,微处理器的种类、型号与性能的发展,只能用“眼花缭乱”来形容。各类微处理器之间的技术交融合、功能交叠,一方面使人们有了更多的选择余地,但也使得制订系统方案时的选择出现了方方面面的困难,主要是权衡利弊、取优舍劣、软硬件性能与开发难易程度的选择,性能价格比的考虑,以及发展前景的预测,等等。 微处理器(包括DSP处理器)硬件性能的极大改善,为软件的开发提供了很大的余地和空间;软件技术的进步,也为微处理器软件的开发提供了极大的方便。特别值得一提的是编译器的优化,极大地提高了高级语言编译的效率,使其结果的优化程度,可以和直接用汇编语言程序的编译结果相媲美。也就是说,编程人员完全可以从烦琐的汇编语言编程工作中解放出来,使用自己熟悉的高级语言来编程,工作难度的降低和效率的提高,不言而喻。 为了推广自己公司的产品,各微处理器厂商还不断地推出、更新和优化自己系列处理器的开发工具和算法库,使应用系统的软件开发人员得以方便和高效地开展工作。 仍然存在不方便的是,不同厂商微处理器的硬件和软件系统,以及开发环境和工具,各不相同。因此,应用系统的开发人员,在系统开发之初,必须谨慎地选择所要使用的微处理器;不但是这一代产品,还得考虑后续的产品,因为改变所使用的微处理器,成本极为高昂,除开硬件、软件和开发环境的成本,还有开发所投入的人力成本,以及推迟新产品上市的机会成本,等等。 本书是针对德州仪器(TI)公司的DSP软件开发而编写的。如上所述,各家公司的硬件系统、软件系统和开发环境,各不相同。即便如此,基本的思路和方法还是一致的。有经验的开发人员都有这样的体会,真正熟悉了一家公司的东西,即便改用其他公司的产品,上手也很容易就是这个道理,即所谓“举一反三”。 参与本书编写的几位作者,都是电子科技大学的教师,是在DSP技术领域工作多年的资深教师和研究人员。他们有很好的“数字信号处理”的理论功底,熟悉DSP的硬件系统、软件系统和开发环境与工具,完成过多项包含DSP处理器的复杂系统的研制,因此,他们拥有完善的相关知识,积累了丰富的工作经验。 本书以实用为目的,基于作者的DSP工程开发经验,从TI公司纷繁复杂的文档中整理出有利于工程人员开发DSP系统的体系,为DSP软件开发人员理清思路。我相信,认真阅读和学习本书的读者,一定可以从中获得丰富的知识和体会,并在自己的学习和开发工作中,得益良多。 彭启琮 2015年10月于 电子科技大学前言前言 随着数字信号处理(DSP)技术的发展,其应用无处不在。各种丰富多彩的多媒体智能终端带给人们方便快捷的应用体验,人们可以随时访问网络、处理音频和视频、规划交通路线等。除了上述消费类电子设备,工业控制、安防系统、通信系统、医疗设备、航天航空、军事装备等各方面都离不开DSP。因此,DSP软硬件开发以及系统集成等成为人们关注的问题。在通常情况下,开发一个DSP嵌入式系统,80%的努力及80%的复杂度均取决于软件;如何提高DSP软件的开发速度、降低开发难度和成本至关重要。 目前,DSP芯片的功能越来越复杂,多核片上系统(SOC)普遍应用,外设种类越来越多,大量新技术标准、新算法、新应用层出不穷。开发人员要花很长的时间来熟悉各种标准,而这些标准又在不停地改变。已有的设备和系统往往和特定的软硬件紧紧地联系在一起,很难升级和维护。开发人员常常面临不同方面的技术难题,还要重复开发类似的算法,既耗时又使成本增加。有些看似细节的问题,所涉及的处理方案可能影响整个系统,解决起来也较为复杂。用户所期待的是不用考虑产品所采用技术的不同,开发者也不希望陷入耗时费力的技术细节之中。因此,DSP芯片的主要供应商(如TI公司)提供了一系列可重用的实时软件开发框架、组件、库,以及适应SOC的多核通信组件、编解码算法、网络开发包等。 而且,对于DSP工程师而言,选择一个优秀的软件开发工具将大大地加快整个开发的进度,成为帮助开发和调试的有利手段。Code Composer Studio (CCS) 是TI公司嵌入式处理器系列的集成开发环境(IDE),也是目前使用最为广泛的DSP开发软件之一。CCS以Eclipse开源软件框架为基础。CCS将Eclipse软件框架的优点和TI先进的嵌入式调试功能相结合,为嵌入式开发人员提供了功能丰富的开发环境。 由以上讨论可知,现代复杂的DSP嵌入式系统的开发已经不再是开发人员从头开始编写所有的软件,而是以成熟的框架和算法库为基础,充分利用开发工具,才能又快又好地完成;开发人员也不是独立完成整个系统,而是分工合作,可分成算法开发人员、系统集成开发人员以及底层驱动开发人员等。 本书的目的就是从DSP软件开发的各个角度阐述TI公司提供的DSP软件和开发工具,为DSP软件开发人员理清思路,以简化和加快DSP系统的软件开发。本书系统地阐述了德州仪器(TI)公司的数字信号处理器(DSP)和多核片上系统(SOC)的相关软件技术,包括可重用的软件开发框架、实时操作系统内核、算法和多媒体库,以及适应SOC的多核通信组件,网络开发包等。全书分为五章,第1章讨论DSP嵌入式软件开发应注意的要素;第2章从XDAIS算法标准和三种参考编程框架等方面讨论DSP可重用实时软件技术;第3章从DSP/BIOS实时内核、网络开发包(NDK)、设备驱动包(DDK)和多核通信组件等方面讨论多核嵌入式软件开发;第4章讨论了优化的DSP库,包括算法库、数学库、图像处理库以及音视频编解码;第5章介绍了DSP软件开发工具——Code Composer Studio (CCS)。 本书所涉及的材料,是截止到2014年的最新资料。在全面整理TI公司相关资料的基础上,结合编者的项目开发经验,增加了实现的例子,有利于读者理解和应用。 本书是在彭启琮教授的主导下,由潘晔和廖昌俊完成的。两位主编均完成过大量的DSP软硬件工程项目,对TI公司的DSP软件和开发工具十分熟悉。其中潘晔编写了第1、2章和第3章的31、32节,并对全书统稿;廖昌俊编写了第4、5章和第3章的33、34节。 DSP技术发展日新月异,应用广泛,新的软件技术和开发工具层出不穷。本书选择介绍的内容难免存在不当和错误,敬请读者反馈意见和批评指正。 编著者
目录 第1章绪论 11DSP嵌入式软件开发要素 111操作系统 112图形化与人机交互 113安全性 114开发工具 115代码结构 116中间件和软件框架 117多媒体编程 118多处理器或多核SOC 12eXpressDSP实时软件与开发工具简介 121CCS集成开发环境 122数据可视化 123操作系统方案 124算法标准和框架 125数字媒体软件 126驱动与开发套件 参考文献 第2章DSP可重用实时软件技术 21XDAIS算法标准 211算法标准简介 212XDAIS算法标准规则 213创建符合标准的DSP算法 214XDAIS算法实例 22参考编程框架 221RF简介 222RF1——紧凑型编程框架 223RF3——灵活型编程框架 224RF5——扩展型编程框架 23RF应用举例——网络数字监控系统 231系统框图 232系统软件设计 233算法集成到RF5 234软件流程 参考文献 第3章多核嵌入式软件开发 31DSP/BIOS实时内核 311DSP/BIOS简介 312DSP/BIOS内核 313DSP/BIOS多线程程序设计 314DSP/BIOS的编程和调试 315DSP/BIOS线程同步 316DSP/BIOS系统时钟 32NDK(Network Development Kit) 321NDK简介 322NDK的基本架构和API函数 323NDK应用实例 33DDK(Device Driver Kit) 331DDK概述 332DDK的基本结构 333DSP/BIOS设备驱动 334GIO组件 335DDK应用举例——Video Port mini-driver 34DSP/BIOS LINK 341DSP/BIOS LINK的软件结构 342DSP/BIOS LINK的关键组件 343典型的应用流程 344使用DSP/BIOS LINK 345应用举例 参考文献 第4章优化的DSP库 41DSP的算法库DSPLIB 411DSPLIB的下载和安装 412利用DSPLIB实现FFT算法 413利用DSPLIB实现无限单位冲激响应(IIR)数字滤波器 414利用DSPLIB实现有限单位冲激响应(FIR)数字滤波器 415利用DSPLIB实现自适应滤波器 42DSP的数学库MATHLIB 421三角函数 422除法函数和倒数函数 423平方根函数和平方根倒数函数 424指数函数 425对数函数 426幂指函数 43DSP的IQmath数学函数库 431定点算法原理 432如何安装IQmath库 433如何使用IQmath库 434IQmath库的函数功能 44DSP的图像处理库IMGLIB 441如何安装和调用IMGLIB库 442IMGLIB库的函数功能 443IMGLIB函数使用举例 45DSP的音频、视频和语音编解码器 451视频编解码器 452JPEG图像编解码器 453音频编解码器 454G711语音编解码器 参考文献 第5章软件开发工具 51DSP的集成开发坏境CCS 511CCS的下载和安装 512CCS开发DSP程序流程 52CCS IDE 常用工具的使用 521CCS中代码生成工具的使用 522CCS中调试工具的使用 523CCS中探针工具的使用 524图形工具的使用 525分析工具的使用 53CCS编程支持工具 531CMD内存定位文件的使用 532DSP片级支持库 533DSP/BIOS工具的使用 534XDC工具的使用 54C6EZ 工具的使用 541C6Run工具的使用 542C6Accel工具的使用 543C6Flo工具的使用 参考文献
作者是在DSP技术领域工作多年的资深教师和研究人员,熟悉和完成过多项包含DSP处理器的复杂系统的研制,教学和项目经验丰富,教授课程包括《C语言》、《软件技术基础》、《DSP技术》等,承担部委及横向众多项目。