0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看门狗技术实战:构建嵌入式系统抗死机能力的核心策略

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-08-15 13:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在复杂的嵌入式应用中,死机风险无处不在。看门狗定时器以“监督员”角色,通过预设的监控周期与反馈协议,实时验证程序健康度,若出现超时未响应则执行系统重置,其配置技巧是提升抗风险能力的关键。

本文将分享正常运行情况和模拟故障场景两个示例,带你快速了解看门狗定时器在嵌入式系统中的运用要点。

wKgZO2ieuySATqsJAAedFxcTg-Y462.png

最新源码及实操教程详见:https://docs.openluat.com/air8101/luatos/app/common/wdt/

注意:模组/芯片的内部硬狗,能解决绝大多数情况下的死机问题。但如果有要求非常高的场景, 依然建议外挂硬件,然后通过gpio/i2c定时喂狗。

一、正常运行情况

LuatOS的看门狗wdt操作库,为嵌入式系统提供了关键的系统稳定性保障机制。

在正常运行情况下,示例代码会初始化看门狗库,并设置超时时间和喂狗周期。然后创建一个任务,该任务会定期喂狗,以防止看门狗定时器超时。如果看门狗定时器超时,系统将自动重启。

1.1 完整示例代码

如下图,初始化wdt库,设置超时时间为9秒。设置一个定时器每3秒喂一次看门狗,确保设备在正常运行的情况下不会重启;若发生软件崩溃或硬件故障,最多18秒后将自动重启设备。

wKgZPGievnuAe_5lAASFKZFbkEQ845.png

1.2 示例运行结果

Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。

设备启动,程序正常运行:

wKgZO2ievq-AZRJZAAOxbBF4Ve8292.png

二、添加死循环模拟故障场景

我们在原有正常运行示例代码中创建了一个新的任务,命名为fault_task,它将进入一个死循环。由于这个新任务阻断了喂狗操作,设备将在超时后自动重启。这样,我们就可以有效地模拟看门狗的超时情况。

创建一个新的任务来模拟故障场景:

wKgZPGievueADPQXAACE4l33z7U318.png


2.1 完整示例代码

wKgZPGievxGAHJYTAAIzwBTUkFQ442.png

wKgZPGievyOAPMW9AABtWq0KYJY927.png

2.2 示例运行结果

Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。

看门狗超时被触发,系统崩溃导致重启:

wKgZO2iev0-AUx1EAAJiJGIFTEE273.png

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    611

    浏览量

    73193
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3821

    浏览量

    133876
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘MAX6814:5引脚看门狗定时器电路的实用指南

    的低功耗看门狗电路。 文件下载: MAX6814.pdf 一、概述 MAX6814能够有效监控系统的软件代码执行情况,大大提高系统的可靠性。当看门狗输入检测到转换沿时,内部的
    的头像 发表于 03-26 14:50 158次阅读

    【瑞萨RA × Zephyr评测】多线程和看门狗

    本文章旨在评估使用 Zephyr RTOS 在 Renesas FPB-RA6E2 开发板上实现多线程调度与硬件看门狗功能的应用。评估内容包括任务调度、看门狗初始化流程、主程序逻辑的详细解析,以及实验现象与数据分析。
    的头像 发表于 01-10 10:23 2653次阅读
    【瑞萨RA × Zephyr评测】多线程和<b class='flag-5'>看门狗</b>

    从小白到大牛:Linux嵌入式系统开发的完整指南

    编写简单的 Shell 脚本(如自动备份文件、批量编译程序)巩固技能。​ 二、能力进阶:攻克核心技术模块​ 入门后需聚焦嵌入式 Linux 的核心技术栈,分模块突破,形成
    发表于 12-16 10:42

    什么是ADC模拟看门狗

    模拟看门狗功能,支持将 ADC 转换结果与用户设定的阈值进行比较,支持上阈值、下阈值、区间值比较,通过阈值寄存器 ADC_VTH 和 ADC_VTL 设置比较阈值。 模拟看门狗功能只在单通道模式
    发表于 12-12 06:15

    嵌入式应掌握的几种能力

    能力。 我觉得牢牢地掌握这些99.99999%的概率都会用得上的嵌入式软件基础对找工作才比较有利。其它一些技术可以再用的时候再去了解、学习。 特别是一些行业相关知识,可以入行之后再进行学习。如果你一开始的目标就很明确,要在
    发表于 12-08 06:05

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    安全性、时间精确性和使用灵活性方面变现得非常优秀。两个看门狗定时器单元都可用来检测由软件错误引起的故障,具体表现为当计数器达到给定的超时值或未能在指定时间窗口内刷新计数器的值,会触发系统复位。
    的头像 发表于 11-28 14:51 4006次阅读
    中科芯CKS32F107XX系列MCU的独立<b class='flag-5'>看门狗</b>介绍

    中科芯CKS32F107XX系列MCU的窗口看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG
    的头像 发表于 11-28 14:48 4313次阅读
    中科芯CKS32F107XX系列MCU的窗口<b class='flag-5'>看门狗</b>介绍

    “喂狗”的艺术:看门狗不叫,才是系统

    看门狗选哪只好呢? 中间那只看起来不错。 咳咳搞错了,自动化项目中说的看门狗是PLC的看门狗,那这个有什么用呢?难道真的是看大门的
    的头像 发表于 11-25 10:50 421次阅读
    “喂狗”的艺术:<b class='flag-5'>看门狗</b>不叫,才是<b class='flag-5'>系统</b>好

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?
    发表于 11-21 06:42

    看门狗定时器、复位源、异常处理机制科普

    嵌入式开发中,系统一旦“跑飞”,工程师最怕的不是bug,而是程序卡死无人知。这时,芯片自身的自我保护机制就至关重要。看门狗、复位源和异常处理机制,是保证系统可靠性的三大基石。本文带你
    的头像 发表于 11-17 10:53 1675次阅读
    <b class='flag-5'>看门狗</b>定时器、复位源、异常处理机制科普

    嵌入式与单片机定义及区别

    单片机,即嵌入式微控制器MCU,是嵌入式系统核心组成部分。除此之外,嵌入式处理器还包括嵌入式D
    发表于 11-17 08:11

    小安派BW21-CBV-Kit入门教程之看门狗简介

    这是一个简单的看门狗定时器(WDT)示例,演示了看门狗 API 的用法。 有关看门狗的定义和工作原理,请参阅以下信息。
    的头像 发表于 11-13 17:22 5210次阅读
    小安派BW21-CBV-Kit入门教程之<b class='flag-5'>看门狗</b>简介

    T113-I打造高可靠性嵌入式系统,1.12秒极限下的看门狗喂狗之法

    前言:在嵌入式系统使用中,看门狗(Watchdog)是保障系统稳定性的重要机制之一,守护着系统的稳定运行。常规实现是通过应用层参与喂狗操作,
    的头像 发表于 08-22 08:30 1664次阅读
    T113-I打造高可靠性<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>,1.12秒极限下的<b class='flag-5'>看门狗</b>喂狗之法

    死机克星:嵌入式系统看门狗定时器的关键作用与配置

    嵌入式系统因软件漏洞或干扰导致的死机问题,可通过看门狗定时器高效化解。该机制通过定时“心跳检测”识别程序停滞,并在超时后强制系统重启,其参数
    的头像 发表于 08-15 13:22 869次阅读
    <b class='flag-5'>死机</b>克星:<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中<b class='flag-5'>看门狗</b>定时器的关键作用与配置

    【书籍评测活动NO.61】Yocto项目实战教程:高效定制嵌入式Linux系统

    《 Yocto项目实战教程:高效定制嵌入式Linux系统 》应运而生。这本书在官方文档的基础上,结合笔者多年的嵌入式开发经验,提炼核心理论框
    发表于 05-21 10:00