CCS Version: 12.4.0.00007
现象如下, 数据格式都为 int32:
1. 如下图, 上一语句第144行 park1.q 计算出来监控结果一直在变, 为Q30格式,紧接着下一行将值赋给 iir.input , 监控iir.input一直为0, Q30 * 2不会导致数值溢出况且监控结果看也没有溢出;
2. 我在147行后第148行增加了一句测试 instr.testCount++; instr.testCount这个却每中断一次增加一;
3. 断点调试在143行处设断点, 停下后按step in to,直接跳到152, instr.testCount 正常增加并且park1.q结果正常有数值, 而iir.input一直为0;
监控结果如下:
编译器优化等级为0, 不优化, 如下图设置
反汇编如下
从汇编看, 是第144行到151行被优化了没有汇编语句, 但是中间的测试语句按理也被优化了, 却运行正常, 从143行跳到152行时会自动增1
另外说明, 此程序之前运行正常, 在一次注释整段语句时用快捷键Ctrl + /时出现了连续 /// 三个/的情况, 我删掉后就出现问题了
工程文件全部删除, 只把.c文件和.h文件拷出来, 重头再建工程文件, 还是一样的现象;
更换了一个CCS V11的版本来编译, 也一样的情况
也尝试更换C2000 tools, 不起作用, 能用的办法都用过了, 还是没辙, 请大神支招!