DSP编程:C语言在TMS320C2000中的特性和应用
需积分: 33 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编程的重要参考资料。
2020-07-26 上传
2014-06-17 上传
2022-09-15 上传
171 浏览量
点击了解资源详情
点击了解资源详情
2009-09-13 上传
2009-09-19 上传
2022-09-24 上传
四方怪
- 粉丝: 28
- 资源: 2万+
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能