MCU开发过程,有时候需要区分重新启动类型的情况:
1、MCU进入深度睡眠(deepsleep),被按键唤醒的情况。此时 部分MCU的RAM数据会丢失,无法区分 上电启动 还是深度睡眠 的启动。
2、MCU的OTA升级成功,重启。此时应用层无法区分 上电启动 还是OTA的启动。
区分方法:可以预知的重启:
1、深度休眠 唤醒后重启
2、OTA 成功后的重启
可以在Flash 存储对应的标志位Flag,等到唤醒后,读取Flag 来判断是应用的重启 还是 上电启动。
无法预知的重启:
上电复位/欠压复位/RST引脚复位,可以在上电时打印重启错误码进行区分。
|