本书全面介绍了使用C/C++高级语言开发TMS320C5000系列DSP应用系统的方法。全书共\r\n分为七章,内容包括TMS320C5000系列开发平台、TMS320C5000系列硬件基础、C/C++程序设\r\n计、DSP/BIOS程序设计、RTDX程序设计、Boot Loader程序设计和应用实例。本书的特色在于\r\n通过完整的程序实例介绍相关的内容。\r\n 本书是作者近几年来不间断地从事TMS320系列DSP系统设计和开发的技术结晶,书中偏重\r\n于讲解用C/C++语言对DSP的硬件资源访问。本书内容除具有TMS320C5000系列DSP程序设计\r\n的通用性外,还对TMS320C6000系列DSP程序设计具有直接的指导意义。\r\n 本书可以作为从事DSP开发的电子工程技术人员以及DSP爱好者的参考书,也可以作为高\r\n校电子类相关专业的学生学习DSP及其程序设计的参考书或教科书。
第一章 TMS320C5000系列开发平台 \r\n 1.1 本章内容简介 \r\n 1.2 开发DSP应用系统的过程 \r\n 1.3 开发平台建设 \r\n 1.3.1 硬件设备 \r\n 1.3.2 软件平台 \r\n 1.4 CCStudio初步探索 \r\n 1.4.1 仿真器的驱动程序的安装 \r\n 1.4.2 Setup使用简介 \r\n 1.4.3 CCStudio界面操作 \r\n 1.4.4 GEL语言 \r\n 1.4.5 Visual Linker 操作方法 \r\n 1.5 本章小结 \r\n 习题一 \r\n第二章 TMS320C5000 系列硬件基础 \r\n 2.1 本章内容简介\r\n 2.2 TMS320VC5402简介\r\n 2.2.1 CPU \r\n 2.2.2 存储器 \r\n 2.2.3 片上外设\r\n 2.2.4 寄存器与中断 \r\n 2.3 TMS320VC5510简介 \r\n 2.3.1 CPU \r\n 2.3.2 存储器配置\r\n 2.3.3 片上外设 \r\n 2.4 SY-5402EVM板 \r\n 2.4.1 SY-5402EVM板的硬件组成 \r\n 2.4.2 VC5402的存储器配置\r\n 2.4.3 VC5402的中断向量表 \r\n 2.5 本章小结 \r\n 习题二 \r\n第三章 C/C++ 程序设计\r\n 3.1 本章内容简介 \r\n 3.2 C/C++程序设计 \r\n 3.2.1 面向DSP 的C/C++ 程序设计原则\r\n 3.2.2 C/C++ 程序设计流程\r\n 3.2.3 C/C++ 程序设计框架\r\n 3.3 C 程序设计示例 \r\n 3.3.1 硬件准备及实现结果\r\n 3.3.2 程序分析\r\n 3.3.3 程序源代码 \r\n 3.4 C/C++ 语言数据结构及语法 \r\n 3.4.1 C/C++数据结构 \r\n 3.4.2 C/C++控制语句 \r\n 3.5 C/C++ 语言函数\r\n 3.5.1 C/C++自定义函数\r\n 3.5.2 C++函数重载 \r\n 3.5.3 中断函数 \r\n 3.5.4 C/C++库函数 \r\n 3.6 CCStudio库函数\r\n 3.6.1 DSPLIB库 \r\n 3.6.2 IMGLIB库 \r\n 3.7 C++类 \r\n 3.7.1 类的概念 \r\n 3.7.2 程序实例 \r\n 3.8 C/C++文件操作 \r\n 3.9 本章小结\r\n 习题三\r\n第四章 DSP/BOIS 程序设计 \r\n……\r\n第五章 RTDX 程序设计\r\n第六章 Boot Loader程序设计\r\n第七章 一个完整实例 \r\n附录 相关术语表 \r\n致谢
随着微电子技术、计算机技术和通信技术的迅猛发展,数字化技术已广泛深入地应用于现代国防、现代科技和国民经济的各个领域,在社会活动和个人生活中都随处可见其形影。数字化技术的基础和核心是通用数字信号处理器(DSP)及其相应的程序软件。这就使得DSP及其应用程序在科技、国防、国民经济、社会和个人生活中占有特殊地位。因此,开发应用DSP及其相应软件是当今科学和社会发展所需。
DSP芯片的最大优越性在于其可重复编程的能力。将各种不同应用的数字信号处理技术以软件的形式下载到DSP芯片中,可以实现相应的通信和控制功能。DSP的发展和应用使得软件开发和硬件设计变得相对独立,DSP是数字信号处理硬件系统的核心,DSP硬件系统具有灵活的可编程性。C/C++语言因其具有灵活、易学和可访问硬件资源等特性,已成为DSP软件设计的最佳高级语言。所以,DSP硬件知识(包括CPU、存储器、片上外设等)与C/C++程序设计语言是进行DSP系统设计的最基础的知识。
DSP的开发分为两部分:一部分是硬件平台的设计,另一部分是软件平台的设计。前一部分设计追求的是一定范围内的广泛通用性,后一部分设计追求的是软件设计的模块性。硬件平台的设计一方面要求使用通用数字信号处理器或它们的并行处理器作为整个硬件平台的核心,这是一条最本质的原则;另一方面,通过借用一个或几个现场可编程逻辑器件如CPLD、FPGA等完成一些控制或缓冲,平台上具有高速的可编程数字编码器件(如高速A/D,D/A等),具有一些可以长期存放数据的存储器,还应提供灵活的接口和美观的人机界面等。软件的设计,不是通常意义上的计算机软件设计,它更注重高效、实时等特性。
本书主要介绍使用C/C++语言对DSP硬件进行编程的方法,主要内容分为7部分,依次介绍了开发平台建设、硬件基础、C/C++ 语言程序设计、DSP/BIOS、RTDX和在线Boot Loader,以及一个完整实例。本书内容是作者进行DSP系统开发和研究成果的结晶。本书选取了TI公司的高速低功耗的TMS320C5000系列DSP为介绍对象,以TMS320VC5402为例,系统地介绍了DSP的硬件资源和使用C/C++语言完成DSP系统的程序设计的具体过程。其中,重点突出了C/C++语言与DSP硬件相结合的编程方法与技巧。通用数字信号处理算法的C/C++语言程序设计,与在计算机上开发C程序类似,本书仅以一个语音自动增益控制为例作了方法上的介绍。
本书的最大特点在于作者给出了进行DSP程序设计的完整实例和程序代码。这些实例是以基于SY-5402EVM板上的语音信号处理模块的形式出现的,具有代表性和参考价值。C/C++语言作为高级语言在各种DSP平台上具有很好的可移植性,基于C/C++语言的CCStudio编译支持技术不断提高,进行模块化的C/C++语言程序设计将有望取代汇编语言进行DSP程序设计。
本书在硬件上为读者展示了TMS320VC5402等芯片,在软件设计上为读者展示了用C/C++语言进行通用DSP硬件开发的过程及应用实例。虽然,无论是硬件和软件设计,本书的重点都放在TMS320VC5402的介绍上,但是它们对C5000系列甚至C6000系列都有直接的通用性。一方面,C5000系列具有相同的CPU核(严格说来,C5400和C5500的CPU核在总线个数和运算速度上有所区别),具有大体相同的外设接口和大小不同的存储空间。因此,对它们的C/C++语言程序设计是完全通用的;对它们外设的访问方法也是相同的,只是在硬件设计上要根据不同的要求选用具有不同外设和不同存储空间的DSP。也就是说,本书是面向C5000系列的一本程序设计书,本书的所有程序几乎不需要修改就可以直接移植到其它C5000系列DSP上,读者可以举一反三。另一方面,C6000系列是TI公司推出的目前运算速度最高的DSP系列,C6000包括C62xx、C64xx和C67xx;C6000和C5000只有一个本质的区别,这也是C6000系列的本质所在,那就是C6000的“并行”思想。对于一个掌握了C5000的读者来说,严格意义上讲,只要具备了“并行”思想,基本上已经初步理解C6000了。这个“并行”思想,体现在两个方面:一方面,体现在硬件结构上,并集中体现在CPU内部;另一方面,体现在软件设计上,且集中体现在对C/C++语言或是汇编语言的编译、执行过程中。一个CPU时钟为200 MHz的C6000,当每个时钟周期并行8条指令时,即一个C6000相当于8片C5000并行使用,运算速率为1600 MIPS(百万条指令每秒)。另外,C6000也支持ANSI C和C++语言,本书的C/C++语言介绍直接适用于C6000;C6000的DSP/BIOS和RTDX与C5000的相比是大同小异的;C6000的Boot Loader比C5000的Boot Loader方便些。
本书可以作为从事DSP开发的电子工程技术人员的参考书,也可以作为电子类相关专业的本科及硕士生学习DSP开发应用或进行毕业设计的参考书。为了对每一章的学习作一个自我测试,每章后面都附有习题,这些习题是对本章内容的一个总结,也是为了强调本章需要熟练掌握的知识。如果本书有幸成为高校相关专业课的教科书,建议对本书的程序也进行一定的讲解,并需要结合硬件平台给学生作详细的分析。如有必要,您可以通过EMAIL(zhnyong1975@163.com)或OICQ(105351369)与作者交流。
学习本书可以按章节顺序进行,也可以先学第二章的部分内容。此外,建议读者登录到 www.ti.com 网站,了解一下C5000最新的动态及应用范围。国内上海三意电子公司的官方网站 www.dspdsp.com 上,也有很多C5000的技术文档可供下载。
编著者
2003年3月于电子科大