1 / 22
文档名称:

DSP的C语言程序设计.doc

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

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

分享

预览

DSP的C语言程序设计.doc

上传人:读书之乐 2021/12/6 文件大小:63 KB

下载得到文件列表

DSP的C语言程序设计.doc

文档介绍

文档介绍:DSPC语言程序设计
为什么要使用C语言对DSP编程?
C语言是高档语言,易学易用。
C语言编程效率极高,易于调试。
C语言可移植性好。
C程序构造及构成
完整C程序是由一种主函数main()和其他子函数构成,每一种子函数完毕特定功能。DSPC语言入口地址固定为c_int00,。C语言支持丰富数据类型和数据构造,在ccs集成开发环境中,为C语言提供了完整支持硬件底层函数库和支持算法DSP函数库。在使用C语言库函数时,。下面是普通C语言程序构造和构成框架。
普通C程序构造如下:

// #include包括语句定义程序中使用函数库相应. h头文献
#include “函数库1”
#include <函数库2>
#include “函数库3”

// #define 定义程序中所有宏替代
#define 宏替代名 替代内容

//本程序内部函数声明,这些函数普通放在main()函数背面
函数类型 函数名(函数参数列表);

//中断服务程序(函数)声明
interrupt void function_name (void);
//全局变量声明
变量类型 全局变量名;

//主函数main()
void main(void)
{
//局部变量定义

for(;;)
{
//调用子函数来解决数据

//完毕数据输入和输出功能

}
}
//本程序内部函数
函数类型 函数名(函数参数列表)
{
//本函数局部变量定义

//本函数中算法

}

//程序结束
数据类型
C语言支持数据类型很丰富,涉及字符型、短整型、整型、长整型、枚举型、浮点型、双精度浮点型、长双精度浮点型、数据指针及程序指针,要注意是由于54x DSP是16位解决器,它字符型数据长度是16位,此外注意比较各种数据类型长度、内容以及所示值范畴大小,可以发现短整型和整型数据类型是一致,浮点型、双精度浮点型和长双精度浮点型是一致,这是由于54x DSPC语言编译器为了适应不同编程****惯而这样定义,因此实际使用中可以将惯用数据类型进行恰当简化,即将短整型、整型统一为整型(int),将各种浮点类型统一为浮点型(float)。
此外,为了简化书写,顾客可以自定义数据类型,:
typedef float f32; //浮点型
typedef long s32; //有符号长整型
typedef int s16; //有符号整型
typedef unsigned char u8; //无符号字符型
typedef unsigned int u16; //无符号整型
typedef unsigned long u32; //无符号长整型

头文献中存储器映射寄存器(MMR)定义和访问
对于DSP软件设计,一方面必要明了DSP可用片内资源及其访问办法,涉及DSP片上存储器映射寄存器、程序存储器、数据存储器、I/O空间寻址范畴、寻址方式,片上外设寄存器定义、工作流程以及编程控制办法。
54X ,这些头文献位于 c:\ti\c5400\dsk5402\include目录下,在这两个文献中定义了C54x DSP中涉及到所有寄存器及其所包括控制和状态比特,这些定义是使用宏替代定义#define进行,例如:串口控制寄存器中接受移位寄存器满标志位比特域定义:
# define RSRFULL 13 //RSRFULL标志比特位于寄存器bit13位置
#define RSRFULL_SZ 1 //此标志长度为1个比特
咱们只需要理解这些寄存器定义,在编程过程中直接使用而不需要自己来重新定义。
,。注意#define语句中“\”是续行符。
,如:
REG_READ(addr); //寄存器读
REG_WRITE(addr,val); //寄存器写
RESET_BIT(addr,bit); //bit位清零
GET_BIT(addr,bit);