CH582常供電的情況下,出現(xiàn)上電復(fù)位問題

CH582,設(shè)備是24小時(shí)常供電的

開啟了看門狗,OTA等等,可能會(huì)出現(xiàn)軟件復(fù)位的情況

但是通過日志,卻出現(xiàn)了"上電復(fù)位"的情況

void?Get_Last_Reset_Sta(void)
{
????uint8_t?ResetSta?=?0;
????ResetSta?=?SYS_GetLastResetSta()?&?0x07;?//?獲取系統(tǒng)上次復(fù)位狀態(tài)
????switch?(ResetSta)
????{
????case?0:
????????PRINT("軟件復(fù)位?=?%#04X?\r\n",?ResetSta);
????????break;
????case?1:
????????PRINT("上電復(fù)位?RPOR?=?%#04X?\r\n",?ResetSta);
????????Erase_All_Records();??????????????????//?擦除Flash
????????break;
????case?2:
????????PRINT("看門狗超時(shí)復(fù)位?WTR?=?%#04X?\r\n",?ResetSta);
????????break;
????case?3:
????????PRINT("外部手動(dòng)復(fù)位?MR?=?%#04X?\r\n",?ResetSta);
????????break;
????case?5:
????????PRINT("從下電模式喚醒時(shí)的復(fù)位?GRWSM?=?%#04X?\r\n",?ResetSta);
????????break;

????default:
????????PRINT("喚醒復(fù)位?LRW?=?%#04X?\r\n",?ResetSta);
????????break;
????}
}

因?yàn)?上電復(fù)位"對我很重要,用來判別設(shè)備是不是第一次上電

理論上我都沒有斷過電,為什么會(huì)出現(xiàn)"上電復(fù)位"???


或者還有什么別的方法,用來判斷設(shè)備是不是第一次上電???

您好,代碼正常運(yùn)行的情況下是可以靠復(fù)位狀態(tài)寄存器判斷上電的,但是運(yùn)行異常時(shí),該寄存器的值也不可預(yù)期。

常見的情況是ram被篡改,代碼跑進(jìn)了hardfault中斷并復(fù)位,此時(shí)上電復(fù)位寄存器的值不可預(yù)期。

參考下篇博客添加串口打印,跟蹤一下代碼運(yùn)行是否正常。

CH57x/CH58x/CH32V wch risc-v 芯片hardfault問題追蹤&程序卡死追蹤 - iot-fan - 博客園 (cnblogs.com)


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频