遇到一个很奇怪的BUG

2019-07-20 03:59发布


这个是一个boot程序
int main(void) {    int32u n;
    n = RTC_ReadBackupRegister(BKP_1);  读取备份寄存器中的值
   if(n< 2) {
       进入APP程序;
    }

   初始化函数;

   RTC_WriteBackupRegister(BKP_1,0);  //对该寄存器清零

  for(;;) {
        boot升级程序函数;


  }
  当n在APP函数中被累计到2时,手动断电再上电 ,发现程序在main中由于n不小于2跳过了进APP程序,执行寄存器清零,却没进for循环中,而是n =0,又去执行了进APP程序,这是咋回事啊

   








}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。