先描述一下问题吧,调试单片机程序,用的是华大的一款国产单片机:HDSCl130,专门用于做低功耗的单片机,只开启rtc定时唤醒的话,功耗在0.5uA左右,功耗已经算是很低了,这就不多说了,还是说重点吧。
今天在调试设备的时候,用的NB模块联网,联网成功后我把设备断电了,然后重新上电。按理说应该会有一个重新联网的过程,但是我看jlink打印信息,竟然没有执行重新联网。正常情况下设备重新上电,单片机复位,将所有的变量重新恢复到初始值,只要恢复到初始值,NB模块就会重新联网,我debug调试之后发现在参数确实每次初始化为原始值了,但是在某个地方执行之后,初始值全部变掉了,如下图:
#define SAVE_SYS_INFO_LEN 512
device_t smoke_fog_detector = {
.state = DEVICE_STATE_STANDBY,
.frozen_data_nums = 0,
.alarm_data_nums = 0,
.alarm_data_break_nums = 0,
.alarm_data_grand_total = 0,
.alarm_data_test_grand_total