This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

看门狗复位是否会重新初始化全局变量



我的程序中需要用到一个常数的全局变量,因为执行时间比较严格,我希望把全局变量数组放在RAM中,所以没有把全局数组声明为const型,但我有一个担忧,就是如果看门狗复位的话,程序是否会重新初始化全局变量呢,因为在RAM中的仿真,我发现RAM中数按CPU重启,如果变量被修改过,就不会被重新初始化。

  • 1、上电复位,是为了为程序的开始作好准备,强制的所有的数据清零,它必须要从零开始。
    2、看门狗复位,则是一种对意外的程序跑偏时或者死机时的拯救,不是简单的清零。
  • 会全部初始化的,也就是清零从头开始执行
  • RAM的内容是不能掉电保持的,因此上电复位之后RAM里的内容是不确定的(系统寄存器占用的RAM除外),而看门狗复位并没有导致掉电,因此RAM里的内容还是以前的值(系统寄存器占用的RAM除外)。
  • “我的程序中需要用到一个常数的全局变量,因为执行时间比较严格,我希望把全局变量数组放在RAM中,所以没有把全局数组声明为const型,但我有一个担忧,就是如果看门狗复位的话,程序是否会重新初始化全局变量呢,因为在RAM中的仿真,我发现RAM中数按CPU重启,如果变量被修改过,就不会被重新初始化”
    Eric:
    如果定义的这个全局变量有带初始值,那么复位之后,会复位成默认的初始值。如果没有初始值,那么复位之后还是不变。