这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率

共2条 1/1 1 跳转至

【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率

工程师
2025-03-12 23:32:02     打赏
背景

       说到看门狗,大部分人的第一反应是,看门狗就是用做防止系统异常时的终极对策,因为看门狗一旦启用,就得在看门狗触发时间内不断喂狗,一旦系统跑飞,则会出现无法喂狗的情况,此时看门狗就主动复位芯片,保证芯片能跑回正常状态。

        众所周知,软件能做出五花八门的功能,但带来的问题也显而易见,软件或多或少的存在一些小bug,这些bug随着系统运行时间的加长,触发的概率越大。一般的程序设计,基本上都按照上电后一直保持系统运行状态,关机操作仅仅是关闭外围器件,使主控进入低功耗模式。很明显,这种设计,主控一直在跑,很难保证某部分代码写得不对导致部分数据错乱后引起系统异常。

解决对策

    如果我们在关机动作完成时再使用看门狗复位一下系统,这样就可以做到对用户无感的将整个系统初始化成上电时的状态。具体操作流程为:

1.png

       到这里有人会问,这是默认待机的情况,如果上电默认开机怎么办?其实也是有办法的,虽然我们平时使用的看门狗定时器大部分场景仅使用看门狗的超时复位功能,但其实,看门狗还有一个后门,一般看门狗定时器中会留一两个寄存器,此寄存器有个很关键的功能,上电时有个默认值,但是呢,一旦设置了这些寄存器,看门狗复位时并不会清掉这部分寄存器的内容,因此可以使用这部分定时器的内容进行信息传递。实际上,有芯片原厂便是使用此方法向预置的启动程序传递参数的,如瑞星微的mcu产品线系列。那修改后的操作流程如下:

2.jpg

写在最后

    目前只要是我做的单片机的量产项目,基本上都会导入这种做法,原因无他,单片机项目一般上电到待机耗时很短,后台偷偷做看门狗复位操作对用户完全无感,也能降低系统长期运行时不稳定的概率。






关键词: 看门狗    

工程师
2025-03-14 18:11:27     打赏
2楼

我感觉看门狗能保证长期稳定以及出错没有什么相关吧。如果程序跑飞了,说明设计有缺陷。有助于发现替在的异常。看门狗出错后记录到特殊的地方,记录出错时的状态,这才有助于产品的健状成长。如果靠看门狗来复位保持程序的运转,我感觉不是他的初心。还有就是在一些特殊的环境下,出现干扰等现象,强行复位,暂时解决问题。

仅个人理解,无他想法。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]