保障嵌入式系统稳定的关键机制:看门狗、复位与异常处理

发布者:Blissful5最新更新时间:2025-12-03 来源: elecfans作者: Lemontree关键字:看门狗定时器  复位源  异常处理机制 手机看文章 扫描二维码
随时随地手机看文章

嵌入式系统开发中,系统一旦“跑飞”,最令人担忧的并非软件缺陷,而是程序卡死且无法被及时察觉。此时,芯片内置的自我保护机制显得尤为关键。复位源与异常处理机制共同构成了确保系统可靠性的重要基石。本文将系统阐述它们的作用、原理及实际应用。

一、看门狗(Watchdog mer)

1. 原理

看门狗定时器本质上是一个独立定时器,持续倒计时:

  • 软件在规定时间内“喂狗”(重置看门狗计数器),系统继续运行。
  • 如果程序死循环或跑飞,没有及时喂狗,看门狗触发复位,将 拉回初始状态。

示例: 独立看门狗 IWDG 喂狗代码

  1. #include"stm32f4xx_hal.h"
  2. IWDG_HandleTypeDef hiwdg;
  3. voidWatchdog_Init(void){
  4. hiwdg.Instance=IWDG;
  5. hiwdg.Init.Prescaler=IWDG_PRESCALER_64;
  6. hiwdg.Init.Relo=0x0FFF;// 最大计数
  7. HAL_IWDG_Init(&hiwdg);
  8. }
  9. voidFeed_Watchdog(void){
  10. HAL_IWDG_Refresh(&hiwdg);// 喂狗
  11. }
  12. intmain(void){
  13. HAL_Init();
  14. Watchdog_Init();
  15. while(1){
  16. // 主循环任务
  17. Feed_Watchdog();// 喂狗
  18. HAL_Delay(100);// 其他操作
  19. }
  20. }

2. 应用场景

  • 防止程序死锁或跑飞
  • 中的容错设计
  • 、等高可靠性系统

3. 开发注意点

  • 喂狗操作应放在主循环关键路径或任务完成后,而不是单纯在中断中定时喂,否则失去意义。
  • 某些 MCU 提供独立看门狗(IWDG)与窗口看门狗(WWDG),后者要求“既不能太早喂,也不能太晚喂”,增加可靠性。

二、复位源(Reset Source)

复位让 MCU 回到确定的起点,触发来源多样:

  1. 上电复位(POR)
  2. 外部复位(Exrnal Reset)
  3. 看门狗复位
  4. 低电压复位(Brown-out Reset)
  5. 软件复位(Software Reset)

示例:软件复位 STM32

  1. #include"stm32f4xx_hal.h"
  2. voidSoftware_Reset(void){
  3. NVIC_SystemReset();// 触发软件复位
  4. }

复位意义

  • 保证系统回到安全初始状态
  • 避免在或逻辑异常下继续运行
  • 给系统“第二次机会”

三、异常处理机制(Exception Handling)

即使有看门狗和复位,系统运行中仍可能遇到不可避免的异常,如访问非法地址、总线错误或中断嵌套冲突。

1. 异常来源

  • 硬件异常:除零错误、非法指令、总线错误
  • 系统异常:中断优先级冲突、栈溢出
  • 软件异常:数组越界、指针错误

2. 处理方式

  • 异常向量表:启动时建立,不同异常对应不同入口函数。
  • 硬件保护:部分 MCU 自动保存现场,便于恢复。
  • 软件处理:可编写异常处理函数(如HardFault_Handler),打印或记录错误信息。

示例:Cortex-M HardFault 处理

  1. voidHardFault_Handler(void){
  2. // 可以点亮 或输出日志
  3. while(1){
  4. // 死循环,等待复位或调试
  5. }
  6. }

3. 应用实践

  • Cortex-M 系列常见异常:
  • HardFault(硬错误)
  • MemManage(存储器管理错误)
  • BusFault(总线错误)
  • UsageFault(用法错误)
  • 异常处理函数中可加入死循环 + LED 闪烁或日志打印,方便调试。

四、三者关系

  • 看门狗:主动防御程序“卡死”
  • 复位源:系统“重启按钮”,确保安全状态
  • 异常处理:运行中诊断问题

它们共同构成系统的三道保险:

  1. 1.异常处理发现问题
  2. 2.看门狗在关键时刻触发复位
  3. 3.复位源保证重启后系统稳定

总结

在开发中,功能跑通只是第一步,系统可靠性才是真正考验。

  • 看门狗确保程序不会永久卡死
  • 复位源保证系统能安全回到起点
  • 异常处理机制帮助定位问题

三者配合,才能让在无人值守的环境下长期稳定运行。

关键字:看门狗定时器  复位源  异常处理机制 引用地址:保障嵌入式系统稳定的关键机制:看门狗、复位与异常处理

上一篇:基于匠芯创D13x系列开发板的KunLun Pi探索分享
下一篇:RV1126B芯片WiFi STA模式通信技术解析

小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved