- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于C语言的DSP程序设计研究
?
?
刘智勇
摘要:近年来,随着科技的不断发展与进步,所用的开发语言也不断增多,但是c语言作为最基础的机器语言,自然有其自身不可替代的优势。c语言是一种极为高级的编程语言,简单易学,并且易于使用。c语言在开发过程中,效率极高,调试方便,它有其自身的高可靠性和可移植性好,使得它在进行DSP程序设计时极为便利。所以,在进行开发DSP系统时,大多采用c语言作为主要的编程语言。在DSP系统上使用c语言编程,可以简化设计方法,提高系统的集成性,节约开发与设计成本,因此会越来越流行。
关键词:c语言;DSP程序;集成性;设计研究
DSP系统对计算的实时性和准确性要求较高,因此它在实时和准实时系统中应用广泛。DSP自身具备的片内结构,可以对信号进行处理。另外DSP专门为系统的数字处理设计专门的指令系统,用以快速执行信号处理。众所周知,汇编语言开发DSP系统一直存在诸多缺陷,随着DSP应用的逐步深入,这种缺陷更加突出。因此采用C语言编程,来解决突出的问题。C语言是高级开发语言,具备高效、灵活等特点,可以解决汇编语言开发过程中遇到的难度大,周期长,维护性差等缺点。在利用C语言编程的时候,利用算法结构来优化程序流程,提高算法大的执行速度,提高其运行效率,满足实时性的要求,保障系统的可靠运行。
1C语言的基本结构
完整的C应用程序是由主函数和子函数组成,每一个子函数都有其自身的功能,在DSP、系统中,c语言的入口地址固定为c_int00,并且在rts.1ib中定义。C语言有着丰富的数据类型和数据结构。我们知道,在CCS集成开发环境中,它为其提供了完整的硬件支持,包括底层函数库和DSP算法函数库。
通常来说,C英语程序至少要包含几个重要的文件,其一,作为C程序入口点的main0函数的C语言源文件,也就是.c文件,它必须存在而且唯一,其主要作用是在等待系统库初始化完毕之后,将控制权交给mainf)函数;其二,定义DSP和目标板的存储空间,另外指明这些代码段、数据段的存储方式;其三,运行库文件rts.1ib。一个完整的编译器需要具备初始化环境,设置堆栈,还有提供标准c的库函数等功能,而运行库文件rts.1ib便提供了上述这些功能,方便开发。
用户所编写的程序要写进ROM存储器,并且需要上电后才能直接运行,其中需要注意的是,这里面需要包含中断向量表文件。所谓中断向量表文件一种.asm形式的汇编文件,是执行指令的地址。其地址主要是被链接器命令文件准确定位在DSP复位后的一个地址。
一般C程序的基本结构
#include“函数库”//语句定义程序中使用的函数库对应的.h文件
#define宏替换名替换内容//定义程序中所有的宏替换
函数类型函数名(函数参数列表)//内部函数声明
interrputvoidfunctio~name(void);//中断服务程序声明
变量类型全局变量名;//全局变量声明
voidmain(void)//主函数mainf)
{函数类型函数名(函数参数列表)//内部函数声明
//函数的局部变量定义
//函数的算法}
C语言的数据类型也非常丰富,比如字符型、长/短整型,浮点型、枚举型、指针等,DSP是16位的处理器,它的字符长度是16位,这里要特别注意各种数据类型的长度、内容和表示的数值范围大小。DSP的c语言编译器具备良好的通用性,因此短整型和整型的数据类型是一样的,浮点型、双精度浮点型和长双精度浮点型是一致的,在实际开发应用中,通常将数据类型简化,比如短整型和整型统一为im类型,而浮点类型的各种类型都统一为float。
2C语言实现DSP程序的设计过程
2.1中断向量表的定位
所谓中断向量,就是中断服务程序地址。它需要装载到存储设备中去,一般情况下这些向量都被定位在0x0开始的程序存储器中去,但是这样的情况并不是特定的,有些也可以存储在其他区域,比如微处理器模式下的TMS320系列就是如此。它的中断服务程序地址定位就是在0x0开始的地址,另外6它还可以将中断服务程序地址定位于OxffaO和Ox809fel。中断服务程序地址也可以定位于任何2k字的程序存储器中。PMST寄存器的IPTR与中断向量表的定位有关,一般来说,中断向量表的有效基地址是0x0,……,Ox2000等等。
2.2实现方法
C语言开发过程中,对于中断向量表的初始化有很多种办法,但是都有不可忽视的缺陷,因此在进行开发和调试的时候,需要特殊的办法。这种办法的主要目的是为了提高DsP系统的运行效率,提高DsP系统的运行效率,增强其开放性、灵活性和可维护性,弥补C语言开发的缺陷。其主要的原理是在C语言中建立一个运行的向量表,这个表要在C语言进行中断服务程序地址的装载前期建立完成,代码简单,操作也非常方便,实现的办法也有很
文档评论(0)