我不太了解看门狗定时器在嵌入式环境中的工作原理,我正面临与看门狗定时器相关的问题
其中一个宏中定义的最大超时值为 55,当我们尝试通过 watchdog_set_period 函数设置该值时,我们的板子正在重启
#define Max_time_out 55
watchdog_set_period(int period)//设置看门狗超时计数器
其中句点 = 55
现在是预期的东西还是重启的原因是什么
我们正在将这个周期值写入我们通过文件描述符访问的一些驱动程序。
最佳答案
link在看门狗定时器上声明此描述。
看门狗定时器是一种硬件,可用于自动检测软件异常并在发生任何异常时重置处理器。一般来说,看门狗定时器是基于一个从某个初始值递减计数到零的计数器。嵌入式软件选择计数器的初始值并定期重新启动它。如果计数器在软件重新启动之前达到零,则认为软件出现故障并且处理器的复位信号被断言。处理器(以及它正在运行的嵌入式软件)将重新启动,就好像人类运算符(operator)关闭电源一样。
你没有贴出代码所以我们无法判断具体是什么问题。如果您已经编写了代码,请检查您的代码是否导致了导致看门狗定时器重置的任何问题。
关于c - 将 watchdog_set_period 设置为最大值会导致重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18400355/