
DSP中C程序设计-课件.ppt
191页TMS320C54TMS320C54系列系列DSPDSP原理与应用原理与应用第6章 DSP中C程序设计 1最新课件教学内容及要求 教学内容:教学内容:本章介绍C/C+程序设计原则、C语言的数据结构、C/C+语言函数及C/C+库函数,详细地介绍了实际C/C+语言开发C5000应用系统的编程方法、实例及程序框架,可在此基础上修改相应程序并应用于其他的项目开发中虽然CCStudio完全支持标准的C/C+语言,但为了加深对DSP中C程序设计的理解,本章用了大量篇幅结合实际的DSP编程需要重点介绍了标准C/C+的数据结构和库函数 教学要求:教学要求:要求学生了解面向DSP的C/C+程序设计流程及设计框架掌握C/C+语言数据结构及语法,并掌握C/C+语言函数及库函数了解TMS320C54X C语言编程规则及其用C语言和汇编语言混合编程的方法2最新课件本章主要内容F6 6.1 .1 简介简介F6 6.2 C/C+.2 C/C+程序设计程序设计F6 6.3 C/C+.3 C/C+语言数据结构及语法语言数据结构及语法F6 6.4 C/C+.4 C/C+语言函数语言函数3最新课件本章主要内容F6 6. .5 5 C/C+库函数F6 6. .6 6 TMS320C54X C语言编程F6 6. .7 7 用C语言和汇编语言混合编程4最新课件6.1 简介 DSP芯片的开发包括硬件开发和软件开发两个方面。
当系统的硬件和处理算法基本确定,并且选定TMS320C54X作为核心处理器时,下一步的工作重点就是软件系统的开发设计它包含两个方面:一是选择适当的编程语言编写程序;二是选择合适的开发环境和工具前面章节对软件开发过程和开发环境作出了详细的介绍,然而就软件开发而言,用DSP芯片的汇编语言编写程序是一件比较繁杂的事情一般来说,不同公司的DSP芯片所提供的汇编语言是各不相同的,即使是同一公司的芯片,由于芯片的类型不同(如定点和浮点)、芯片的升级换代,其汇编语言也有所不同5最新课件6.1 简介 因此,用汇编语言开发基于某种DSP芯片的产品的周期都相对较长,因为开发人员在编写DSP程序之前首先必须熟悉这种DSP芯片的汇编语言,而一旦产品开发完毕,回头再对软件进行修改、升级是非常困难的,这是因为汇编语言的可读性和可移植性相对来说较差基于以上原因,各个DSP芯片公司都相继推出了相应的高级语言(如C语言)编译器,使得DSP芯片的软件可直接用高级语言编写而成,从而使DSP芯片的开发速度大大提高,也使程序的修改和移植变得十分方便 6最新课件6.1 简介 本章主要介绍DSP中C语言程序设计,围绕着如何使用标准C/C+语言编写C5000应用程序这一主题展开论述。
掌握了这一章的内容可以使读者熟练地运用C/C+语言进行DSP程序设计在此特别强调:面向DSP的C/C+程序设计中,数据结构是相对简单的,没有像通用计算机上的C/C+那样复杂的数据结构算法,在面向DSP的程序设计中,对实时性要求较高因此,在DSP的结构设计中,数据区的空间相对于程序区一般要小得多7最新课件6.2 C/C+程序设计 6.2.1 面向DSP的C/C+程序设计原则 1.面向DSP的C/C+程序设计与通用计算机上的C/C+程序设计的比较 面向DSP的C/C+程序设计与通用计算机上的C/C+程序设计有很多不同之处,这也正是面向DSP的C/C+程序设计的特色所在在通用计算机上开发C/C+语言程序,程序运行界面受到了高度的重视,目前已经出现了专门设计人机界面的程序开发人员在DSP上编写C/C+程序,是没有任何界面可言的,这时的人机接口是来自受DSP控制的终端,C/C+程序起到管理和控制的作用,类似于操作系统软件的作用;8最新课件6.2 C/C+程序设计但但是是,面面向向DSPDSP的的C/C+C/C+程程序序应应属属于于应应用用程程序序的的范范畴畴通通用用计计算算机机上上的的C/C+C/C+语语言言程程序序与与面面向向DSPDSP的的C/C+C/C+语语言言程程序序最最本本质质的的区区别别在在于于:前前者者是是大大量量数数据据的的集集中中式式处处理理过过程程,而而后后者者是是针针对对极极少少数数据据点点的的实实时时处处理理过过程程。
计计算算机机是是将将全全部部数数据据作作为为一一个个输输入入向向量量,进进行行足足够够长长时时间间的的处处理理,得得出出所所需需要要的的高高精精度度的的结结果果在在这这个个过过程程中中,尽尽可可能能采采用用快快速速算算法法以以节节约约时时间间,但但是是并并不不要要求求计计算算机机仿仿真真的的时时间间与与现现实实的的时时间间相相等等,即即不不要要求求具具有有实实时时性性所所谓谓实实时时性性,主主要要是是针针对对离离散散系系统统来来讲讲的的,即即要要求求在在采采样样时时间间间间隔隔内内,DSPDSP完完成成所所有有需需要要处处理理的的数数据据处处理理任任务务,并并处处于于空空闲闲状态状态( (或进程或进程) ),等待下一个采样点的数据到来等待下一个采样点的数据到来9最新课件6.2 C/C+程序设计 数据到达后,根据信号处理算法的需要,可能会与前面到达的数据联合处理,也可能单独处理不论采用哪一种处理方式,下一点数据到达之前的瞬间,该点数据所属的所有处理进程必须处理完毕,下一点的数据一旦到达,DSP将开始下一点的数据处理 另一种情况例外,就是并行处理根据并行处理方式的不同,着眼点不同,实时性的含义略有差异。
但就并行处理的一般含义而言,通常并不一定要求逐个数据点连续的进程的实时性,但要求多个并行进程必须是实时的也就是说,面向DSP的C/C+程序设计不像通用计算机那样单纯对数据流进行处理,它兼顾了数据流和时序机制的处理10最新课件6.2 C/C+程序设计 时序机制是定义DSP工作能力的一个重要指标,包括了DSP的内部工作频率和DSP与所有外设进行通信的时钟频率,以及在时序驱动下的数据流格式定义等等时序机制决定了DSP的实时处理能力,目前的一些DSP器件的时序机制能完成基带内的几乎全部数字信号处理 通用计算机上的C/C+程序设计有直观的输入和输出设备,可以直接观察运行的结果,无需借助一些示波器等等的仪器而面向DSP的C/C+程序设计是没有直观的输入、输出设备的,它的输入和输出均为映射存储空间的某个或某些地址及其这个地址中的数据实际上,DSP也只能访问(包括读和写)它的映射存储空间,虽然这个空间不一定是实在的东西,对这个空间的访问可以在DSP的外设上反映出来,这个反映必须借助于如数字示波器、逻辑分析仪等观测设备进行辅助分析11最新课件6.2 C/C+程序设计 通用计算机的C/C+程序设计的数据来源可以由计算机的信号处理软件仿真产生,也可以是通过计算机接口接收外部的实时数据。
如果时序机制允许的话,计算机也会实现一些实时运算,因此计算机可以对数据流进行集中处理,也可以完成一些低速实时处理但是面向DSP的C/C+程序设计的数据来源只能是外部A/D送来的DSP的数据存储区是相当有限的,它不可能完成大量数据流的集中处理,即使是运算的中间结果,也不可能太多 通用计算机上的C/C+语言程序设计是要杜绝出现死循环的,而面向DSP的C/C+程序设计却是必然出现死循环才行,这也是两者程序设计的又一个明显区别 12最新课件6.2 C/C+程序设计 由于计算机的由于计算机的由于计算机的由于计算机的CPUCPUCPUCPU和和和和DSPDSPDSPDSP的的的的CPUCPUCPUCPU在本质上和工作原理在本质上和工作原理在本质上和工作原理在本质上和工作原理上是一致的,所以,面向上是一致的,所以,面向上是一致的,所以,面向上是一致的,所以,面向DSPDSPDSPDSP的的的的C/C+C/C+C/C+C/C+程序设计与通用计程序设计与通用计程序设计与通用计程序设计与通用计算机上的算机上的算机上的算机上的C/C+C/C+C/C+C/C+程序设计又具有本质上的一致性,即有程序设计又具有本质上的一致性,即有程序设计又具有本质上的一致性,即有程序设计又具有本质上的一致性,即有类似的编程风格、类似的程序框架、类似的编译执行过类似的编程风格、类似的程序框架、类似的编译执行过类似的编程风格、类似的程序框架、类似的编译执行过类似的编程风格、类似的程序框架、类似的编译执行过程,以及基本类似的设计思想。
程,以及基本类似的设计思想程,以及基本类似的设计思想程,以及基本类似的设计思想2.2.2.2.面向面向面向面向DSPDSPDSPDSP的的的的C/C+C/C+C/C+C/C+程序设计原则程序设计原则程序设计原则程序设计原则 面向面向面向面向DSPDSPDSPDSP的的的的C/C+C/C+C/C+C/C+程序设计,有一条基本的原则,即程序设计,有一条基本的原则,即程序设计,有一条基本的原则,即程序设计,有一条基本的原则,即C/C+C/C+C/C+C/C+程序不但需要对数据流进程进行编程,也要对时程序不但需要对数据流进程进行编程,也要对时程序不但需要对数据流进程进行编程,也要对时程序不但需要对数据流进程进行编程,也要对时序机制进行编程,两者是同样重要的序机制进行编程,两者是同样重要的序机制进行编程,两者是同样重要的序机制进行编程,两者是同样重要的在编程风格上,在编程风格上,在编程风格上,在编程风格上,要求程序简练、高效要求程序简练、高效要求程序简练、高效要求程序简练、高效13最新课件6.2 C/C+程序设计 就就就就面面面面向向向向对对对对象象象象的的的的C+C+C+C+程程程程序序序序设设设设计计计计而而而而言言言言,其其其其数数数数据据据据的的的的封封封封装装装装作作作作用用用用等等等等一一一一些些些些C+C+C+C+的的的的特特特特性性性性,对对对对于于于于通通通通用用用用计计计计算算算算机机机机的的的的程程程程序序序序设设设设计计计计是是是是一一一一种种种种有有有有效效效效的的的的方方方方法法法法。
但但但但是是是是,在在在在目目目目前前前前DSPDSPDSPDSP速速速速度度度度不不不不够够够够高高高高的的的的情情情情况况况况下下下下,C+C+C+C+的的的的这这这这些些些些特特特特性性性性不不不不一一一一定定定定有有有有很很很很大大大大的的的的优优优优势势势势,原原原原因因因因在在在在于于于于: : : :其其其其一一一一,DSPDSPDSPDSP强强强强调调调调实实实实时时时时处处处处理理理理,容容容容许许许许的的的的数数数数据据据据量量量量小小小小;其其其其二二二二,C+C+C+C+的的的的编编编编译译译译执执执执行行行行效效效效率率率率可可可可能能能能没没没没有有有有C C C C语语语语言言言言成成成成熟熟熟熟CCStudioCCStudioCCStudioCCStudio几几几几乎乎乎乎支支支支持持持持标标标标准准准准C+C+C+C+的的的的所所所所有有有有语语语语法法法法,所所所所有有有有能能能能在在在在Borland Borland Borland Borland C+3.1C+3.1C+3.1C+3.1上上上上调调调调试试试试通通通通过过过过的的的的 标标标标 准准准准 C+C+C+C+程程程程 序序序序 ( ( ( (流流流流 库库库库 除除除除 外外外外 ) ) ) ), 可可可可 以以以以 不不不不 加加加加 修修修修 改改改改 地地地地 在在在在CCStudioCCStudioCCStudioCCStudio上上上上运运运运行行行行。
本本本本章章章章也也也也给给给给出出出出了了了了一一一一个个个个C+C+C+C+的的的的实实实实例例例例,建建建建议议议议在进行类的封装时将时序机制一起进行封装在进行类的封装时将时序机制一起进行封装在进行类的封装时将时序机制一起进行封装在进行类的封装时将时序机制一起进行封装 特特特特别别别别需需需需要要要要指指指指出出出出的的的的是是是是CCStudioCCStudioCCStudi。
