DSP编程:C语言在TMS320C2000中的特性和应用

需积分: 33 6 下载量 159 浏览量 更新于2024-07-12 收藏 716KB PPT 举报
本文主要介绍了DSP(数字信号处理器)中的C语言编程基础知识,特别是关于被调用函数如何响应的步骤,以及TMS320C2000 DSP的C语言特性和关键字。 在被调用函数如何响应的流程中,涉及到以下关键点: 1. **返回地址**:当函数调用结束时,需要恢复执行调用函数的下一条指令,这通常通过从硬件堆栈中弹出返回地址,并将其压入软件堆栈来实现。 2. **帧指针**(FP):FP会被压入软件堆栈,以便在函数执行过程中跟踪局部变量和函数调用的状态。 3. **局部帧分配**:这是为了创建函数内部的局部变量空间,通常涉及调整堆栈指针以分配所需内存。 4. **寄存器管理**:如果函数修改了AR6和AR7寄存器,它们需要被保存到堆栈中,以保持调用者寄存器的状态。其他未指定的寄存器则可以根据需要自由修改。 接着,文章介绍了TMS320C2000 DSP的C语言特性: - **标识符和常数**:标识符的前100个字符有意义,区分大小写,字符集基于ASCII,没有多字节字符。字符常数按最后一个字符编码。 - **数据转换**:浮点数转换为整数时,结果为整数部分;指针和整数可以自由互换。 - **表达式**:有符号整数相除时,商和余数的符号遵循特定规则。 - **声明**:寄存器变量适用于特定数据类型,`interrupt`关键字仅用于无参数的`void`函数。 - **预处理**:预处理器不支持某些`#pragma`伪指令,但提供如`CODE_SECTION`, `DATA_SECTION`, `FUNC_EXT_CALLED`等伪指令。 TMS320C2000 DSP的C语言数据类型和关键字: - 数据类型中,字节长度为16位,`sizeof`操作符返回的结果以16位字为单位。 - 关键字包括`const`(常量)、`ioport`(I/O端口)、`interrupt`(中断)、`near`(近)、`far`(远)和`volatile`(可变的)。 - 寄存器变量的使用有限制,每个函数最多两个,且必须在函数开始处声明。 此外,还强调了寄存器变量的使用注意事项,如编译器可能使用AR6和AR7作为内部管理,这表明这些寄存器在函数内部可能会被用作存储目的。 这篇文章为初学者提供了理解DSP中C语言编程的基础,包括函数调用机制和特定平台的C语言特性,是学习DSP编程的重要参考资料。