调试过程中难免出现一些问题,许多同学也有类似的问题,现在就把可能出现的bug陆续更新吧!
1.Building configuration: as - Debug
Updating build tree...
Configuration is up-to-date.
重复make就是这样显示的。如果程序更改后第一次make就会出现。
Building configuration: xx - Debug
Updating build tree...
main.c
Linking
Total number of errors: 0
Total number of warnings: 0
2.Disassembly窗口内显示的是编译之后转化成的汇编代码
3.IAR中查看局部变量的值
查看IAR中变量的值可以使用 Quick Watch 、Watch 、Locals窗口,但有时会出现unavailable状态。
例如两个局部变量,一个先用,另一个后用,那么两者可能会被分配在同一个寄存器中哦……
这样当程序运行到后一个变量处时,前一个变量就失效了,那么当然也就显示不出来了……
自动窗口Locals:View->Auto,开启Auto窗口。自动窗口显示当前被修改过的表达。
Quick Watch 窗口的值没有实时改变。
4.IAR的代码优化
就我个人的经验来看: 在IAR中开启最高优化时导至程序不能正常工作的原因一般在
1,全局变量的处理上.
2, 无用代码(一般是用循环作延时)
一般可以通过以下几个方法来解决:
1,由多个子程序(ISR)都会操作到的全局变量一定要加 VOLATILE。
2,有无用代码的程序可以用指定优化级的方法来保证其不会被优化掉...建议用__DELAY_CYCLES()...
其它的还没有发现...
我做了好几人项目.都用了最高优化.程序运行稳定...