20、实时编程的挑战与应对策略

实时编程的挑战与应对策略

1. 调试版本与发布版本构建

在Code Composer Studio中创建项目时,会建立两种构建配置:调试(Debug)和发布(Release)。

调试配置

  • 调试配置会在目标文件中嵌入调试信息,这些信息将汇编指令与原始源代码关联起来。
  • 不会对生成的代码进行优化,确保源代码的每一行与生成的汇编语言有直接对应关系。
  • 允许进行符号调试,保证汇编代码按C代码的编写顺序执行。
  • 调试配置在软件开发时很有用,但生成的代码通常比发布版本慢得多。

发布配置

  • 编译器会使用一系列转换和算法对生成的代码进行优化,以获得最佳性能。
  • 源代码和汇编代码之间可能不再存在一对一的对应关系,功能会被移动和重新排序,代码会尽可能复用,冗余会被消除,以最大化执行速度和/或最小化代码大小。
  • 调试发布版本生成的汇编代码对经验丰富的程序员来说也是一项重大挑战。

优化的类型和程度可以按项目和文件进行控制,更多信息可在CCS文档中找到。

2. volatile关键字

在实时DSP编程中,有两种常见情况需要使用volatile关键字来控制编译器对内存引用的优化。

直接引用硬件的变量

当使用指针变量访问硬件寄存器时,编译器的优化器会假设数据传输是针对标准读写内存位置进行的。例如:

unsigned int 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值