单片机程序运行过程中,某些变量被莫名其妙的修改了
在开发单片机程序中,遇到这么一个问题,程序运行过程中,某些变量被莫名其妙的修改了,然而经过打断点还有打印信息都完全查不出哪里出了问题,直到我灵光一闪。
解决方法:查 map文件,定位到被修改的变量,然后往上查看有可能的数组。后面经查看找到了可疑数组。然后再查看相关代码。发现有越界访问现象。然后对其进行修复便可以了。用KEIL DEBUG了大半天的问题。然后查看了一下MAP文件就搞定了。
当然,在以往的开发过程中也有过变量被莫名其妙的修改了另外一种情况,就是在函数中定义的局部变量数组太大也会发生这种情况。
总结
1、尽量使用全局数组
2、一定要做下标越界检测