单片机程序运行过程中,某些变量被莫名其妙的修改了

 

  在开发单片机程序中,遇到这么一个问题,程序运行过程中,某些变量被莫名其妙的修改了,然而经过打断点还有打印信息都完全查不出哪里出了问题,直到我灵光一闪。

解决方法:查 map文件,定位到被修改的变量,然后往上查看有可能的数组。后面经查看找到了可疑数组。然后再查看相关代码。发现有越界访问现象。然后对其进行修复便可以了。用KEIL DEBUG了大半天的问题。然后查看了一下MAP文件就搞定了。

 

  当然,在以往的开发过程中也有过变量被莫名其妙的修改了另外一种情况,就是在函数中定义的局部变量数组太大也会发生这种情况。

 

  总结

  1、尽量使用全局数组

  2、一定要做下标越界检测

  

 

 

  

posted on 2023-04-11 10:28  一个大菜B  阅读(990)  评论(0编辑  收藏  举报