原因:
编译器把代码优化掉了,直接导致在仿真中变量根本没有分配内存,也就无法查看变量值
以后调试中遇到这种情况的解决办法:
核心思想是:让变量值在代码中被读取其内存值
1、把变量定义为全局变量,全局变量编译器貌似不会太多干扰,但是在项目中总不能定义太多全局变量,而且经常为了调试而改代码,太麻烦了
2、使用变量,让编译器不优化掉,例如在for循环中使用。更简单的方法是把变量定义为 volatile。
例如:int temp; => volatile int temp;//volatile变量会使得cpu每次使用该值时都一定会从内存读取而不是直接使用cpu寄存器里的值,相当于提高了变量的级别,编译器不会优化此变量
3、降低KEIL的优化级别