1 / 15
文档名称:

第四章 dsp的c语言程序设计.doc

格式:doc   大小:68KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第四章 dsp的c语言程序设计.doc

上传人:xxq93485240 2019/1/14 文件大小:68 KB

下载得到文件列表

第四章 dsp的c语言程序设计.doc

相关文档

文档介绍

文档介绍:DSP的C语言程序设计为什么要使用C语言对DSP编程?C语言是高级语言,易学易用。C语言的编程效率极高,易于调试。C语言的可移植性好。C程序的结构及组成完整的C程序是由一个主函数main()和其它的子函数组成的,每一个子函数完成特定的功能。DSP的C语言的入口地址固定为c_int00,。C语言支持丰富的数据类型和数据结构,在ccs集成开发环境中,为C语言提供了完整的支持硬件的底层函数库和支持算法的DSP函数库。在使用C语言的库函数时,。下面是一般C语言程序的结构和组成框架。一般C程序的结构如下: //##include“函数库1”#include<函数库2>#include“函数库3” … //#define定义程序中所有的宏替换 #define宏替换名 替换内容 … //本程序的内部函数声明,这些函数一般放在main()函数的后面 函数类型函数名(函数参数列表); …//中断服务程序(函数)的声明interruptvoidfunction_name(void); //全局变量声明 变量类型 全局变量名; … //主函数main() voidmain(void) { //局部变量定义… for(;;) { //调用子函数来处理数据…//完成数据的输入和输出功能…}}//本程序的内部函数函数类型函数名(函数参数列表){ //本函数的局部变量定义 … //本函数中的算法 …}…//程序结束数据类型C语言支持的数据类型很丰富,包括字符型、短整型、整型、长整型、枚举型、浮点型、双精度浮点型、长双精度浮点型、数据指针及程序指针,要注意的是由于54xDSP是16位的处理器,它的字符型数据的长度是16位的,另外注意比较各种数据类型的长度、内容以及所表示的值的范围大小,可以发现短整型和整型数据类型是一致的,浮点型、双精度浮点型和长双精度浮点型是一致的,这是因为54xDSP的C语言编译器为了适应不同的编程****惯而这样定义的,所以实际使用中可以将常用的数据类型进行适当简化,即将短整型、整型统一为整型(int),将各种浮点类型统一为浮点型(float)。另外,为了简化书写,用户可以自定义数据类型,:typedeffloatf32; //浮点型typedeflongs32; //有符号的长整型typedefints16; //有符号的整型typedefunsignedcharu8; //无符号的字符型typedefunsignedintu16; //无符号的整型typedefunsignedlongu32; //。头文件中存储器映射寄存器(MMR)的定义和访问对于DSP的软件设计,首先必须明了DSP的可用片内资源及其访问方法,包括DSP的片上存储器映射寄存器、程序存储器、数据存储器、I/O空间的寻址范围、寻址方式,片上外设的寄存器定义、工作流程以及编程控制方法。,这些头文件位于c:\ti\c5400\dsk5402\include目录下,在这两个文件中定义了C54xDSP中涉及到的所有寄存器及其所包含的控制和状态比特,这些定义是使用宏替换定义#define进行的,例如:串口控制寄存器中接收移位寄存器满标志位的比特域定义:#defineRSRFULL13//RSRFULL标志比特位于寄存器的bit13位置#defineRSRFULL_SZ1//此标志的长度为1个比特我们只需要了解这些寄存器定义,在编程过程中直接使用而不需要自己来重新定义。,。注意#define的语句中“\”是续行符。,如:REG_READ(addr);//寄存器读REG_WRITE(addr,val);//寄存器写RESET_BIT(addr,bit);//bit位清零GET_BIT(addr,bit);//取得bit位的值SET-BIT(addr,bit);//bit位置1 ……详细内容请参考c:\ti\c5400\dsk5402\。在头文件中,采用了以下几种方法对DSP内部的存储器映射寄存器(MMR)进行定义和访问:使用#define宏定义语句定义MMR的地址,有两种定义方法:统一定义法:如MCBSP串口接收寄存器的定义:#defineDRR2_ADDR(port) (port?