实时编程的挑战与应对策略
1. 调试版本与发布版本构建
在Code Composer Studio中创建项目时,会建立两种构建配置:调试(Debug)和发布(Release)。
调试配置
- 调试配置会在目标文件中嵌入调试信息,这些信息将汇编指令与原始源代码关联起来。
- 不会对生成的代码进行优化,确保源代码的每一行与生成的汇编语言有直接对应关系。
- 允许进行符号调试,保证汇编代码按C代码的编写顺序执行。
- 调试配置在软件开发时很有用,但生成的代码通常比发布版本慢得多。
发布配置
- 编译器会使用一系列转换和算法对生成的代码进行优化,以获得最佳性能。
- 源代码和汇编代码之间可能不再存在一对一的对应关系,功能会被移动和重新排序,代码会尽可能复用,冗余会被消除,以最大化执行速度和/或最小化代码大小。
- 调试发布版本生成的汇编代码对经验丰富的程序员来说也是一项重大挑战。
优化的类型和程度可以按项目和文件进行控制,更多信息可在CCS文档中找到。
2. volatile关键字
在实时DSP编程中,有两种常见情况需要使用volatile关键字来控制编译器对内存引用的优化。
直接引用硬件的变量
当使用指针变量访问硬件寄存器时,编译器的优化器会假设数据传输是针对标准读写内存位置进行的。例如:
unsigned int
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



