[WDT]内部看门狗和外部看门狗

1. 芯片内部看门狗

内部看门狗通常为芯片内部某个特殊定时器,用户可以通过手动初始化、设置timeout、使能、失能该看门狗,然后在线程中定时去喂狗,从而达到检测应用程序跑飞、跑死的情况。

在Linux系统中,可以在uboot中打开看么狗,把喂狗时间设置长度超过kernel启动时间,从而当kernel正常启动后,喂狗任务由uboot交给了应用程序,这样达到了监控kernel启动bootsup和应用程序的双重功效。

2. 芯片外部看门狗

外部看门狗具有独立性,可以更加安全的确保芯片的正常运行。

外部看门狗如何工作?

外部看门狗非常简单,没有所谓的初始化、使能等等,就是电源、地、WDI喂狗引脚、RESET引脚,当WDI每次检测到边沿跳变,则重新置位看门狗计数,如果在超出timeout,则拉低RESET引脚一段时间,周而复始。

那外部看门狗的使用也带来一些问题:

  • 在超长启动时间的系统中,如何确保外部看门狗的喂狗
    • 在Uboot中将内部看门狗设置1~3min喂狗时间以确保kernel启动过程出现问题,在系统启动完成后,重新交由应用程序喂狗,且喂狗周期根据线程时长决定
    • 不做特殊喂狗处理,uboot命令行期间将会出现看门狗超时
    • 外部看门狗,则可以在硬件电路中将具有pwm功能的IO口接至WDI引脚,在uboot中使能IO口的pwm功能,在kernel加载驱动期间,可以不再对此IO进行操作,也可以重新再kernel中使能该IO脚的PWM功能,但是必须在驱动probe阶段,如果交由应用程序,中间时间可能无法喂狗,导致重启。
  • 在ICT、FCT、程序烧录阶段中,如何确保这些动作不被外部看门狗打断,循环复位

解决思路

在电路设计中,针对第二个问题,可以设计电路的JTAG中Reset的优先级最高,当Jtag插上,程序不运行,Reset也就失效了。

增加跳线,在生产阶段,将跳线跳开,完毕后,将跳线跳上,但是此法增加Factory阶段的复杂度。

ISP:In-system programing 在线系统编程; IAP: In-application programing 在应用编程; ICP: In-circuit programing 在电路编程。ISP和IAP都是在板进行编程,也就是不用拆除芯片。ISP的意思就是应用程序本身有和PC上位机之间的接口,当上位机有更新程序的需求时,应用程序会进入更新程序的逻辑,知道更新结束。而IAP则是BootLoader+Application的结构,在Boot阶段,如果接收到上位机的更新需求,则进行更新,更新结束跳到application。

 

Warm Reset:

Code Reset:

转载于:https://www.cnblogs.com/aaronLinux/p/6725629.html

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103看门狗程序是一种用于监视和保护嵌入式系统的重要技术。看门狗计时器(Watchdog Timer,简称WDT)是一种硬件定时器,其目的是在系统出现故障(例如软件死锁或死循环)时进行系统重启和恢复,从而避免系统长时间处于非正常运行状态。 在STM32F103系列微控制器中,看门狗计时器是一个重要的硬件模块,通过配置相关寄存器来设置计时器的工作模式和计时时间。以下是一个简单的STM32F103看门狗程序示例: 1. 首先,配置看门狗计时器的时钟源和预分频器,使其按照所需的时间间隔进行计时。例如,可以选择内部LSE(低速外部晶振)或LSI(低速内部RC振荡器)作为时钟源,并设置分频系数。 2. 设置看门狗计时器的重载值(Reload Value),该值决定了看门狗计时器的溢出时间。当计时器计数达到该值时,看门狗计时器会自动触发复位。 3. 启动看门狗计时器,并在需要的时候定期重载计时器的值,以避免看门狗计时器溢出。这样,只要系统正常运行,看门狗计时器就会定期重载计时值,防止系统复位。 4. 如果系统出现故障导致看门狗计时器未能及时重载计时器的值,计时器会溢出并触发系统复位,从而恢复系统到正常工作状态。 需要注意的是,看门狗计时器是一种保护机制,必须小心使用。如果看门狗计时器设置得太短,系统在正常运行时可能会因为无法及时重载计时器而被错误地复位。相反,如果设置得太长,系统在出现故障时可能无法及时恢复,从而导致系统长时间处于非正常状态。因此,正确地设置和使用看门狗计时器是确保系统稳定性和可靠性的关键一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值