所谓冷启动,是指电路的重新上电,即断电后,再次上电。
热启动就是芯片不断电。使用复位管脚对其复位,或者看门狗、软件复位,这些都属于热启动。由于干扰或其他因素引起的复位,这时候如果希望芯片继续做复位之前的事情,而不是从头再来,这样就要在RAM中开一片区域 ,复位时这个区域的数据不让它清零,然后再进行数据比较,就可以实现冷,热启动的区分。
从STM32的启动文件startup.s看,无论冷启动还是热启动,都是将RAM区清零,即所有变量都初始化为0,这样设计是正确的,一般系统复位了,都是有干扰或者硬件原因,单片机RAM里面的数据就有很大的出错几率,重新开始,有重要意义,有些场合如果防止信息丢失的,可以放在backup区,或者热启动时设置为RAM不清零。