大家好、
CCS 版本:12.4.0.00007。 数据格式为 int32。
a: 如下图所示、前一条语句第144行的 park1.q 计算结果始终更改为 Q30格式。 下一行将该值分配给 iir.input、监控 iir.input 始终为0、Q30 * 2不会导致数字溢出、也不会基于监控结果溢出。
b. 客户在第148行添加了一个测试句、用于 instr.testCount++;instr.testCount、但每次中断该语句会增加1。
c.在第143行设置一个断点、stop 并按 step in 直接跳转到第152行、instr.testCount 正常增加、park1.q 结果通常有值、但 iir.input 始终为0。
编译器优化级别为0、无优化、如下图中所设置:
从汇编开始、144到151行经过优化、没有汇编语句。 但是、应该优化中间的测试语句、但它们工作正常、当从143行跳到152行时、这些语句会自动递增1。 分解如下:
注:程序以前工作正常,使用快捷键 Ctrl +/注释整条语句时连续// 3次/,客户将其删除后出现问题。
客户进行了以下尝试、但均失败:
- 全部删除项目文件、只需将.c 和.h 文件复制出来、然后再次构建项目文件即可。
- 将 CCS V11的版本更改为构建。
- 尝试替换 C2000工具。
在其他编辑器中,使尾部字符出现,并且它的基金是,如果注释后面是一个 CR,下一个语句将不会被执行,在 CR 按压机返回 CRLF,下一个语句执行。
客户 只有 Windows、没有额外操作。 通常、按下 ENTER (输入)窗口为 CRLF、但它会突然改变。 您能帮助检查这个案例吗? 谢谢。
此致、
切里