TI论坛
直播中

蒋进如

7年用户 186经验值
私信 关注
[问答]

CCS5.5 F28035开编译优化导致程序出错怎么办

你好,
我在CCS5.5 定义全局变量int Kr_deadband=30; 在程序中不更改变量值,只是读取。
仿真器观察该变量,发现变成1365这样的数值。
如果改为宏定义#define Kr_deadband 30,就可以了。
请问这是CCS5.5本身的bug还是优化设置本身可能会带来这样的错误?
设置如下:

回帖(7)

蒋进如

2020-6-2 15:33:21
补充:如果把 Kr_deadband改为函数里面局部变量,程序也能正常运行。
举报

李秋年

2020-6-2 15:40:20
这个全局变量你在程序中有没有使用,没有使用的话可能会被优化掉。
举报

徐小婷

2020-6-2 15:50:54
应该是优化的问题,你试试在int前面加volatile试试
举报

张琛根

2020-6-2 16:04:27
引用: muuwfwr 发表于 2020-6-2 21:53
应该是优化的问题,你试试在int前面加volatile试试

按照楼主说的在程序中有读取的使用,应该不会在这一级被优化吧。
而且他的是全局变量,1级优化应该只涉及局部吧。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分