TI
DSP
多核
技术
实时
软件
开发
TI-DSP 多核技术及实时软件开发潘摇晔摇廖昌俊摇编著内 容 简 介本书从 DSP 软件开发的各个角度阐述了 TI 公司提供的 DSP 软件技术和开发工具,为 DSP 软件开发人员理清思路,以简化和加快 DSP 系统的软件开发。第 1 章首先从宏观上讨论了 DSP 嵌入式系统软件开发应注意的要素,然后简介了 TI 公司的 eXpressDSP 实时软件组件和开发工具。第 2 5 章分别从 DSP 可重用实时软件技术、多核嵌入式软件开发、优化的 DSP 库,以及 DSP 软件开发工具等几方面进行了详细介绍。本书所涉及的材料,是截止到 2014 年的最新资料。结合编者的项目开发经验,增加了实现的例子,有利于读者理解和应用。本书可以作为电子信息类专业研究生和高年级本科生的参考书,对从事 DSP 技术研究和开发的科研人员和工程技术人员也很有参考价值。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据TI-DSP 多核技术及实时软件开发/潘晔,廖昌俊编著 郾 北京:电子工业出版社,2016郾 1(DSP 应用丛书)ISBN 978-7-121-27635-4玉郾 淤T摇 域郾 淤潘摇 于廖摇 芋郾 淤数字信号处理-程序设计摇 郁郾 淤TN911.72中国版本图书馆 CIP 数据核字(2015)第 281631 号责任编辑:曲摇 昕摇 摇 特约编辑:张传福印摇 摇 刷:装摇 摇 订:出版发行:电子工业出版社北京市海淀区万寿路 173 信箱摇 邮编 100036开摇 摇 本:787 伊1 092摇 1/16摇 印张:20郾 25摇 字数:531 千字版摇 摇 次:2016 年 1 月第 1 版印摇 摇 次:2016 年 1 月第 1 次印刷定摇 摇 价:49郾 80 元凡所购买电子工业出版社的图书,如有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 zlts phei郾 com郾 cn,盗版侵权举报请发邮件至 dbqq phei郾 com郾 cn。服务热线:(010)88258888。序自 20 世纪 70 年代末 80 年代初,DSP 处理器诞生以来,其发展与推广应用神速,在短短的 30 多年时间内,应用的领域和深度,令人叹为观止。随着科学技术的进步,尤其是微电子和软件科学与技术的发展,微处理器的种类、型号与性能的发展,只能用“眼花缭乱冶 来形容。各类微处理器之间的技术融合、功能交叠,一方面使人们有了更多的选择余地,但也使得制订系统方案时的选择出现了方方面面的困难,主要是权衡利弊、取优舍劣、软硬件性能与开发难易程度的选择,性能价格比的考虑,以及发展前景的预测等。微处理器(包括 DSP 处理器)硬件性能的极大改善,为软件的开发提供了很大的余地和空间;软件技术的进步也为微处理器软件的开发提供了极大的方便。特别值得一提的是编译器的优化,极大地提高了高级语言编译的效率,使其结果的优化程度,可以和直接用汇编语言程序的编译结果相媲美。也就是说,编程人员完全可以从烦琐的汇编语言编程工作中解放出来,使用自己熟悉的高级语言来编程,工作难度的降低和效率的提高,不言而喻。为了推广自己公司的产品,各微处理器厂商还不断地推出、更新和优化自己系列处理器的开发工具和算法库,使应用系统的软件开发人员得以方便和高效地开展工作。仍然存在不方便的是,不同厂商微处理器的硬件和软件系统,以及开发环境和工具,各不相同。因此,应用系统的开发人员,在系统开发之初,必须谨慎地选择所要使用的微处理器;不但是这一代产品,还得考虑后续的产品,因为改变所使用的微处理器,成本极为高昂,除了硬件、软件和开发环境的成本,还有开发所投入的人力成本,以及推迟新产品上市的机会成本,等等。本书是针对德州仪器(TI)公司的 DSP 软件开发而编写的。如上所述,各家公司的硬件系统、软件系统和开发环境,各不相同。即便如此,基本的思路和方法还是一致的。有经验的开发人员都有这样的体会,真正熟悉了一家公司的东西,即便改用其他公司的产品上手也很容易,就是这个道理,即所谓“举一反三冶。参与本书编写的几位作者,都是电子科技大学的教师,是在 DSP 技术领域工作多年的资深教师和研究人员。他们有很好的“数字信号处理冶 的理论功底,熟悉 DSP 的硬件系统、软件系统和开发环境与工具,完成过多项包含 DSP 处理器的复杂系统的研制,因此,他们拥有完善的相关知识,积累了丰富的工作经验。本书以实用为目的,基于作者的 DSP 工程开发经验,从 TI 公司纷繁复杂的文档中整理出有利于工程人员开发 DSP 系统的体系,为 DSP 软件开发人员理清思路。我相信,认真阅读和学习本书的读者,一定可以从中获得丰富的知识和体会,并在自己的学习和开发工作中,得益良多。彭启琮2015 年 11 月于电子科技大学前摇摇言随着数字信号处理(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 章的 3郾 1、3郾 2 节,并对全书统稿;廖昌俊编写了第 4、5 章和第 3 章的 3郾 3、3郾 4节。管庆教授提供了第 5 章的实例和重要参考意见,教研室多位研究生同学参加的项目也作为本书的应用举例,在此表示感谢。DSP 技术发展日新月异,应用广泛,新的软件技术和开发工具层出不穷。本书选择介绍的内容难免存在不当和错误,敬请读者反馈意见和批评指正。编著者2015 年 11 月于电子科技大学遇TI-DSP 多核技术及实时软件开发目摇摇录第 1 章摇 绪论11郾 1摇 DSP 嵌入式软件开发要素11郾 1郾 1摇 操作系统11郾 1郾 2摇 图形化与人机交互21郾 1郾 3摇 安全性31郾 1郾 4摇 开发工具41郾 1郾 5摇 代码结构51郾 1郾 6摇 中间件和软件框架61郾 1郾 7摇 多媒体编程61郾 1郾 8摇 多处理器或多核 SOC81郾 2摇 eXpressDSP 实时软件与开发工具简介91郾 2郾 1摇 CCS 集成开发环境91郾 2郾 2摇 数据可视化111郾 2郾 3摇 操作系统方案111郾 2郾 4摇 算法标准和框架121郾 2郾 5摇 数字媒体软件131郾 2郾 6摇 驱动与开发套件13参考文献14第 2 章摇 DSP 可重用实时软件技术152郾 1摇 XDAIS 算法标准152郾 1郾 1摇 算法标准简介152郾 1郾 2摇 XDAIS 算法标准规则162郾 1郾 3摇 创建符合标准的 DSP 算法172郾 1郾 4摇 XDAIS 算法实例232郾 2摇 参考编程框架262郾 2郾 1摇 RF 简介272郾 2郾 2摇 RF1 紧凑型编程框架302郾 2郾 3摇 RF3 灵活型编程框架472郾 2郾 4摇 RF5 扩展型编程框架702郾 3摇 RF 应用举例 网络数字监控系统812郾 3郾 1摇 系统框图812郾 3郾 2摇 系统软件设计822郾 3郾 3摇 算法集成到 RF5832郾 3郾 4摇 软件流程86参考文献90第 3 章摇 多核嵌入式软件开发923郾 1摇 DSP/BIOS 实时内核923郾 1郾 1摇 DSP/BIOS 简介923郾 1郾 2摇 DSP/BIOS 内核933郾 1郾 3摇 DSP/BIOS 多线程程序设计1013郾 1郾 4摇 DSP/BIOS 的编程和调试1113郾 1郾 5摇 DSP/BIOS 线程同步1293郾 1郾 6摇 DSP/BIOS 系统时钟1423郾 2摇 NDK(Network Development Kit)1463郾 2郾 1摇 NDK 简介1463郾 2郾 2摇 NDK 的基本架构和 API 函数1463郾 2郾 3摇 NDK 应用实例1533郾 3摇 DDK(Device Driver Kit)1563郾 3郾 1摇 DDK 概述1563郾 3郾 2摇 DDK 的基本结构1573郾 3郾 3摇 DSP/BIOS 设备驱动1613郾 3郾 4摇 GIO 组件1643郾 3郾 5摇 DDK 应用举例 Video Port mini-driver1663郾 4摇 DSP/BIOS LINK1703郾 4郾 1摇 DSP/BIOS LINK 的软件结构1713郾 4郾 2摇 DSP/BIOS LINK 的关键组件1723郾 4郾 3摇 典型的应用流程1743郾 4郾 4摇 使用 DSP/BIOS LINK1793郾 4郾 5摇 应用举例181参考文献197第 4 章摇 优