记得刚开始面试的时候,被面试官问了一个问题:stm32这个项目如果系统跑飞了,死机了,你是怎么处理的?
那时候没听懂他的意思,傻乎乎的回了一句,没遇到过这种情况。事后,才后悔莫及啊,他的意思不就是问我看门狗的作用吗?
然后就没有然后了,一个嵌入式工程师,如果看门狗都不知道人家是不敢用你的。
一、什么是看门狗?
看门狗是一个定时器,我们可以设置一个计数值,当看门狗启动后,计数值在一定的频率下不停的减1,当计数值减到0,看门狗会发出一个复位信号给CPU,这样会造成嵌入式系统复位。
软件系统在正常工作的过程中,需要在看门狗计数值减到0之前,给计数值重新赋值,这个看门狗就不会复位了,这个过程-》“喂狗”。
当嵌入式系统,因为受到干扰或者出现错误,可能会造成软件“跑飞”---》死机。当系统发生死机的时候,看门狗喂狗的过程就没有了,看门狗计数值减到0,产生一个复位信号给CPU,造成系统复位,从错误的状态恢复了。
STM32有2个看门狗:独立看门狗和窗口看门狗。
独立看门狗IWDG----独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。
窗口看门狗WWDG----系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。
简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。
独立看门狗拥有自己的时钟源,不依赖PLL时钟输出的分频信号,能够独立运行,这样子的好处就是PLL假如受到干扰,导致运行异常,独立的看门狗还能正常地进行工作,如果没有正常的喂狗动作,就复位CPU。
IWDG程序设计
喂狗的动作其实就等同于银行取钱的原理,银行正常工作时间为上午9点到下午5点,其他时间都不能取钱。
WWDG程序设计
记得刚开始面试的时候,被面试官问了一个问题:stm32这个项目如果系统跑飞了,死机了,你是怎么处理的?
那时候没听懂他的意思,傻乎乎的回了一句,没遇到过这种情况。事后,才后悔莫及啊,他的意思不就是问我看门狗的作用吗?
然后就没有然后了,一个嵌入式工程师,如果看门狗都不知道人家是不敢用你的。
一、什么是看门狗?
看门狗是一个定时器,我们可以设置一个计数值,当看门狗启动后,计数值在一定的频率下不停的减1,当计数值减到0,看门狗会发出一个复位信号给CPU,这样会造成嵌入式系统复位。
软件系统在正常工作的过程中,需要在看门狗计数值减到0之前,给计数值重新赋值,这个看门狗就不会复位了,这个过程-》“喂狗”。
当嵌入式系统,因为受到干扰或者出现错误,可能会造成软件“跑飞”---》死机。当系统发生死机的时候,看门狗喂狗的过程就没有了,看门狗计数值减到0,产生一个复位信号给CPU,造成系统复位,从错误的状态恢复了。
STM32有2个看门狗:独立看门狗和窗口看门狗。
独立看门狗IWDG----独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。
窗口看门狗WWDG----系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。
简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。
独立看门狗拥有自己的时钟源,不依赖PLL时钟输出的分频信号,能够独立运行,这样子的好处就是PLL假如受到干扰,导致运行异常,独立的看门狗还能正常地进行工作,如果没有正常的喂狗动作,就复位CPU。
IWDG程序设计
喂狗的动作其实就等同于银行取钱的原理,银行正常工作时间为上午9点到下午5点,其他时间都不能取钱。
WWDG程序设计
举报