声明:这个专栏专门用来记录我遇到的一些比较奇怪的事情,欢迎大家一起讨论!
今天在调试代码的时候遇到了一件特别诡异的事情,有一个会自动清零的变量!废话不多说直接看图!
我在user_tcoecho.c文件中定义了一个全局的结构体变量tIAP_Updata,并在user_tcoecho.h文件中对外声明了这个变量。好的,现在看看是发生了什么问题。
我在在调试过程中将tIAP_Updata.BootOnlineFlag赋值为1,然后我点击了继续运行!接着我就惊奇的发现tIAP_Updata.BootOnlineFlag居然变成了0!!
额…于是我就查看了一下代码中含有BootOnlineFlag的所有地方。
发现我并没有给他赋过0,于是我又查看了含有tIAP_Updata的所有地方,有可能我对这个结构体变量清零了。
啧…不对啊,我并没有对这个变量进行清零之类的操作,为什么他会自动清零呢?
经过我长达半小时的调试,我发现!居然是我的看门狗一直让我的程序复位导致的!!警钟长鸣:Debug的时候切记关闭看门狗!!