伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

看門狗定時器、復(fù)位源、異常處理機(jī)制科普

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

掃碼添加小助手

加入工程師交流群

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

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

1. 原理

看門狗定時器本質(zhì)上是一個獨(dú)立定時器,持續(xù)倒計時:

  • 軟件在規(guī)定時間內(nèi)“喂狗”(重置看門狗計數(shù)器),系統(tǒng)繼續(xù)運(yùn)行。
  • 如果程序死循環(huán)或跑飛,沒有及時喂狗,看門狗觸發(fā)復(fù)位,將 MCU 拉回初始狀態(tài)。

示例:STM32 獨(dú)立看門狗 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;// 最大計數(shù)
  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. // 主循環(huán)任務(wù)
  17. Feed_Watchdog();// 喂狗
  18. HAL_Delay(100);// 模擬其他操作
  19. }
  20. }

2. 應(yīng)用場景

3. 開發(fā)注意點(diǎn)

  • 喂狗操作應(yīng)放在主循環(huán)關(guān)鍵路徑或任務(wù)完成后,而不是單純在中斷中定時喂,否則失去意義。
  • 某些 MCU 提供獨(dú)立看門狗(IWDG)與窗口看門狗(WWDG),后者要求“既不能太早喂,也不能太晚喂”,增加可靠性。

二、復(fù)位源(Reset Source)

復(fù)位讓 MCU 回到確定的起點(diǎn),觸發(fā)來源多樣:

  1. 上電復(fù)位(POR)
  2. 外部復(fù)位(External Reset)
  3. 看門狗復(fù)位
  4. 低電壓復(fù)位(Brown-out Reset)
  5. 軟件復(fù)位(Software Reset)

示例:軟件復(fù)位 STM32

  1. #include"stm32f4xx_hal.h"
  2. voidSoftware_Reset(void){
  3. NVIC_SystemReset();// 觸發(fā)軟件復(fù)位
  4. }

復(fù)位意義

  • 保證系統(tǒng)回到安全初始狀態(tài)
  • 避免在電源或邏輯異常下繼續(xù)運(yùn)行
  • 給系統(tǒng)“第二次機(jī)會”

三、異常處理機(jī)制(Exception Handling)

即使有看門狗和復(fù)位,系統(tǒng)運(yùn)行中仍可能遇到不可避免的異常,如訪問非法地址、總線錯誤或中斷嵌套沖突。

1. 異常來源

  • 硬件異常:除零錯誤、非法指令、總線錯誤
  • 系統(tǒng)異常:中斷優(yōu)先級沖突、棧溢出
  • 軟件異常:數(shù)組越界、指針錯誤

2. 處理方式

  • 異常向量表:啟動時建立,不同異常對應(yīng)不同入口函數(shù)。
  • 硬件保護(hù):部分 MCU 自動保存現(xiàn)場寄存器,便于恢復(fù)。
  • 軟件處理:開發(fā)者可編寫異常處理函數(shù)(如HardFault_Handler),打印或記錄錯誤信息。

示例:Cortex-M HardFault 處理

  1. voidHardFault_Handler(void){
  2. // 可以點(diǎn)亮 LED 或輸出日志
  3. while(1){
  4. // 死循環(huán),等待復(fù)位或調(diào)試
  5. }
  6. }

3. 應(yīng)用實踐

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

四、三者關(guān)系

  • 看門狗:主動防御程序“卡死”
  • 復(fù)位源:系統(tǒng)“重啟按鈕”,確保安全狀態(tài)
  • 異常處理:運(yùn)行中診斷問題

它們共同構(gòu)成系統(tǒng)的三道保險:

  1. 1.異常處理發(fā)現(xiàn)問題
  2. 2.看門狗在關(guān)鍵時刻觸發(fā)復(fù)位
  3. 3.復(fù)位源保證重啟后系統(tǒng)穩(wěn)定

總結(jié)

嵌入式開發(fā)中,功能跑通只是第一步,系統(tǒng)可靠性才是真正考驗。

  • 看門狗確保程序不會永久卡死
  • 復(fù)位源保證系統(tǒng)能安全回到起點(diǎn)
  • 異常處理機(jī)制幫助定位問題

三者配合,才能讓嵌入式系統(tǒng)在無人值守的環(huán)境下長期穩(wěn)定運(yùn)行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    610

    瀏覽量

    73069
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    124017
  • 異常處理
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    一文詳解看門狗定時器

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

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

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

    看門狗喂狗時間及程序

    ,過一段時間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位,重新開始倒計數(shù)。如果看門狗減到0就認(rèn)為程序沒有正常工作,強(qiáng)制整個系統(tǒng)復(fù)位看門狗分硬件
    發(fā)表于 10-16 09:19 ?1.9w次閱讀

    看門狗定時器的作用

    看門狗復(fù)位,重新開始倒計數(shù)。如果看門狗減到0就認(rèn)為程序沒有正常工作,強(qiáng)制整個系統(tǒng)復(fù)位看門狗定時器
    發(fā)表于 10-20 14:41 ?7291次閱讀

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

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

    基于VxWorks的看門狗定高效定時機(jī)制設(shè)計實現(xiàn)

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

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

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

    看門狗定時器防止溢出復(fù)位程序

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

    看門狗定時器的相關(guān)問題和實驗說明

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

    可配置電源監(jiān)視為多軌系統(tǒng)集成了可調(diào)看門狗復(fù)位定時器

    可配置電源監(jiān)視為多軌系統(tǒng)集成了可調(diào)看門狗復(fù)位定時器
    發(fā)表于 03-21 06:26 ?7次下載
    可配置電源監(jiān)視<b class='flag-5'>器</b>為多軌系統(tǒng)集成了可調(diào)<b class='flag-5'>看門狗</b>和<b class='flag-5'>復(fù)位</b><b class='flag-5'>定時器</b>

    LPC2294看門狗定時器

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

    看門狗定時器

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

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

    在惡劣環(huán)境中使用的高速微控制應(yīng)用的設(shè)計人員將使用看門狗定時器來防止軟件失控。DS80C320高速微控制集成了看門狗
    的頭像 發(fā)表于 02-09 11:54 ?1936次閱讀

    內(nèi)部和外部看門狗定時器的比較

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

    看門狗定時器的工作原理

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