国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

看門狗定時器、復位源、異常處理機制科普

信盈達 ? 2025-11-17 10:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發中,系統一旦“跑飛”,工程師最怕的不是 bug,而是程序卡死無人知。這時,芯片自身的自我保護機制就至關重要。看門狗、復位源和異常處理機制,是保證系統可靠性的三大基石。本文帶你梳理清楚它們的作用、原理與應用。

一、看門狗定時器(Watchdog Timer)

1. 原理

看門狗定時器本質上是一個獨立定時器,持續倒計時:

  • 軟件在規定時間內“喂狗”(重置看門狗計數器),系統繼續運行。
  • 如果程序死循環或跑飛,沒有及時喂狗,看門狗觸發復位,將 MCU 拉回初始狀態。

示例:STM32 獨立看門狗 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.Reload=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. 外部復位(External 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. // 可以點亮 LED 或輸出日志
  3. while(1){
  4. // 死循環,等待復位或調試
  5. }
  6. }

3. 應用實踐

  • Cortex-M 系列常見異常:
  • HardFault(硬錯誤)
  • MemManage(存儲器管理錯誤)
  • BusFault(總線錯誤)
  • UsageFault(用法錯誤)
  • 異常處理函數中可加入死循環 + LED 閃爍或日志打印,方便調試。

四、三者關系

  • 看門狗:主動防御程序“卡死”
  • 復位源:系統“重啟按鈕”,確保安全狀態
  • 異常處理:運行中診斷問題

它們共同構成系統的三道保險:

  1. 1.異常處理發現問題
  2. 2.看門狗在關鍵時刻觸發復位
  3. 3.復位源保證重啟后系統穩定

總結

嵌入式開發中,功能跑通只是第一步,系統可靠性才是真正考驗。

  • 看門狗確保程序不會永久卡死
  • 復位源保證系統能安全回到起點
  • 異常處理機制幫助定位問題

三者配合,才能讓嵌入式系統在無人值守的環境下長期穩定運行。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 看門狗
    +關注

    關注

    10

    文章

    605

    瀏覽量

    72531
  • 定時器
    +關注

    關注

    23

    文章

    3356

    瀏覽量

    121580
  • 異常處理
    +關注

    關注

    0

    文章

    15

    瀏覽量

    7445
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文詳解看門狗定時器

    看門狗定時器由獨立的1 Mhz 片內振蕩驅動。這是VCC = 5V 時的典型值。請參見特性數據以了解其他VCC 電平下的典型值。通過設置看門狗定時
    發表于 09-02 16:40 ?4830次閱讀
    一文詳解<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    看門狗定時器的設計、工作原理及看門狗定時器的操作

    看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數,一般給看門狗一個數字,程序開始運行后看門狗
    發表于 05-23 09:14 ?8495次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的設計、工作原理及<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的操作

    看門狗喂狗時間及程序

    ,過一段時間CPU應發出指令讓看門狗復位,重新開始倒計數。如果看門狗減到0就認為程序沒有正常工作,強制整個系統復位看門狗分硬件
    發表于 10-16 09:19 ?1.8w次閱讀

    看門狗定時器的作用

    看門狗復位,重新開始倒計數。如果看門狗減到0就認為程序沒有正常工作,強制整個系統復位看門狗定時器
    發表于 10-20 14:41 ?7182次閱讀

    dsp看門狗定時器的作用解析

    看門狗在外圍監控DSP中軟件的運行以及硬件的操作,當CPU出現故障時,看門狗將執行系統復位。如果軟件進入了一個不正確的循環或者CPU出現暫時的混亂,看門狗
    發表于 11-21 16:52 ?1.5w次閱讀
    dsp<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的作用解析

    基于VxWorks的看門狗定高效定時機制設計實現

    VxWorks提供了一個看門狗定時器(watchDog timer),它由以下四個函數維護: wdCreate( ) 創建并初始化一個看門狗定時器;wdDelete( ) 終止并
    發表于 03-06 09:22 ?5369次閱讀
    基于VxWorks的<b class='flag-5'>看門狗</b>定高效<b class='flag-5'>定時機制</b>設計實現

    TB3123 - PIC?單片機的窗口看門狗定時器

    窗口看門狗定時器(Windowed Watchdog Timer,WWDT)是PIC單片機的增強型看門狗定時器。該定時器是PIC單片機現有
    發表于 03-26 14:35 ?0次下載
    TB3123 - PIC?單片機的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    看門狗定時器防止溢出復位程序

    看門狗定時器用來防止程序因供電電源、空間電磁干擾或其它原因引起的強烈干擾噪聲而跑飛的事故。程序中設置看TL=WDTPW+WDTCNTCL,當程序跑飛不能及時清零看門狗,導致看門狗溢出
    發表于 04-23 09:59 ?5155次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>防止溢出<b class='flag-5'>復位</b>程序

    看門狗定時器的相關問題和實驗說明

    看門狗的作用: 看門狗定時器是一個計數,基本功能是在發生軟件問題和程序跑飛后使系統重新啟動。看門狗計數
    的頭像 發表于 10-06 12:59 ?5184次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的相關問題和實驗說明

    可配置電源監視為多軌系統集成了可調看門狗復位定時器

    可配置電源監視為多軌系統集成了可調看門狗復位定時器
    發表于 03-21 06:26 ?7次下載
    可配置電源監視<b class='flag-5'>器</b>為多軌系統集成了可調<b class='flag-5'>看門狗</b>和<b class='flag-5'>復位</b><b class='flag-5'>定時器</b>

    LPC2294看門狗定時器

    看門狗定時器(WDT)特點1.如果不定期重新裝載,會內部重置芯片2.調試模式3.由軟件啟動,但是需要硬件復位或者看門狗復位/中斷才能禁用。4
    發表于 12-04 10:36 ?8次下載
    LPC2294<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    看門狗定時器

    看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數,一般給看門狗一個數字,程序開始運行后看門狗
    發表于 12-09 09:21 ?7次下載
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    使用高速微型看門狗定時器

    在惡劣環境中使用的高速微控制應用的設計人員將使用看門狗定時器來防止軟件失控。DS80C320高速微控制集成了看門狗
    的頭像 發表于 02-09 11:54 ?1643次閱讀

    內部和外部看門狗定時器的比較

    本文比較了內部(與微處理器集成)和外部(基于硬件)看門狗定時器(WDT)的優缺點。它解釋了內部看門狗定時器易于實現,但容易發生故障。MAXQ
    的頭像 發表于 04-03 11:15 ?4024次閱讀

    看門狗定時器的工作原理

    看門狗定時器是一種獨立的計時硬件模塊,其核心功能是倒計時。如果系統軟件在計時超時前沒有對其進行復位操作(即“喂狗”),
    的頭像 發表于 10-21 14:18 ?1851次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的工作原理