APP下载

基于C语言的DSP程序设计研究

2017-07-29刘智勇

电脑知识与技术 2017年12期
关键词:设计研究C语言

刘智勇

摘要:近年来,随着科技的不断发展与进步,所用的开发语言也不断增多,但是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宏替换名替换内容//定义程序中所有的宏替换

函数类型函数名(函数参数列表)//内部函数声明

interrput void functio~name(void);//中断服务程序声明

变量类型全局变量名;//全局变量声明

void main(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语言进行中断服务程序地址的装载前期建立完成,代码简单,操作也非常方便,实现的办法也有很多,常用的有以下兩种:

猜你喜欢

设计研究C语言
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
C语言程序设计课程教学与学科专业相结合的探索
小学语文口语交际课程目标的设计
高职高专院校C语言程序设计教学改革探索
高中数学新课程中函数的教学设计研究
论子函数在C语言数据格式输出中的应用
非计算机专业C语言教学探讨