吴忠躺衫网络科技有限公司

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

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

3天內不再提示

MCU硬件看門狗+軟件看門狗監測多任務的思路

jf_pJlTbmA9 ? 來源:strongerHuang ? 作者:strongerHuang ? 2023-10-24 15:25 ? 次閱讀

我們都知道硬件看門狗的目的:是用來監測系統,防止系統死機,并在死機的情況下使其系統復位重啟。

RTOS操作系統中,如果任務(線程)較多,出現高優先級任務長時間占用CPU資源,低優先級任務長時間得不到執行這種想象,那么我們的系統就是具有“Bug”的系統。

如上描述,假如我們的線程沒有死機,只是長時間得不到執行。在這種異常情況下,我們又不希望系統復位,只希望執行特定代碼,那我們該如何來避免這種問題呢?

關于看門狗

硬件看門狗:利用一個定時器計數電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內對定時“喂狗”。

因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。如果程序出現故障,不在定時周期內喂狗,就使得看門狗定時器溢出產生復位信號并重啟系統。

STM32中,有兩個看門狗:獨立看門狗和窗口看門狗。原理和功能都類似,只是應用場景不一樣。
軟件看門狗:軟件看門狗和硬件看門狗原理類似,都是定期(在時間溢出之內),對其喂狗。只是軟件喂狗的方式是通過自身設計的計數來實現。

硬件+軟件看門狗監測多任務的原理

1.利用一個監測線程(自身),來監測其它多個線程;2.利用硬件看門狗來監測自身。

wKgZomUD0CiAMZsbAAJGanNheg0439.jpg

如圖:

假如我系統中有多個應用線程(如上圖),我就利用一個監測線程(自身),來監測其它多個應用線程。

同時,為了防止自身線程異常,利用一個硬件看門狗來監測自身。這樣就可以做到雙重監測的作用。

軟件案例

上一節上述的原理可能對于有些人來說,是比較抽象的。那么這一節來看看代碼:

監測線程(自身):

wKgaomUD0CqAKIgTAAKLYqg47Vw442.jpg

簡單來說:在監測線程(自身)之中,需要對硬件看門狗進行喂狗。軟件看門狗的角色:在這里就是對齊計數,瀏覽是否溢出,我把它封裝成一個瀏覽函數。具體的喂狗就在其他各個被監測的線程中。

wKgZomUD0C2AaSk0AAKKGiq4UzQ804.jpg那么,再看軟件看門狗對其中一個應用線程喂狗的代碼:這里只是簡單的舉例,一個主線程里面的喂狗。相當于:我線程啟動之后,就需要定時喂狗。如果這里長時間不喂狗,那么監測線程(自身)就會發現你沒有喂狗。

實現方法

看到這里,相信大家都知道其原理了。具體實現的方式方法很多種,可根據自己實際項目需要,添加相應的接口。這里舉例幾點吧。
定義一個數據結構:

wKgZomUD0C-AX58MAAHMzH1VzNc585.jpg

這里舉例,是實現最基礎的東西,比如計數器,最大超時值等。

注冊接口函數:

wKgZomUD0DCATdzOAAMN_PLf7O8191.jpg

監測瀏覽函數接口:

wKgaomUD0DKALgg5AAJt1-OhQbM173.jpg

以上只是教大家方法,具體的實現,可自己根據自己習慣,項目需求來定制化開發。

來源:strongerHuang

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理


審核編輯 黃宇

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

    關注

    146

    文章

    17317

    瀏覽量

    352635
  • 看門狗
    +關注

    關注

    10

    文章

    566

    瀏覽量

    70945
  • 監測
    +關注

    關注

    2

    文章

    3654

    瀏覽量

    44742
收藏 人收藏

    評論

    相關推薦

    看門狗多任務系統及喂狗方法詳解

    看門狗硬件看門狗軟件看門狗硬件看門狗是利用一
    的頭像 發表于 07-05 09:21 ?1.9w次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>多任務</b>系統及喂狗方法詳解

    STM32中的獨立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發表于 02-20 17:47 ?2883次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    MCU獨立看門狗和窗口看門狗的區別

    早期的MCU沒有看門狗,就容易引起有些產品死機了不能重啟工作。為了避免這個問題,后期的MCU在內部集成了看門狗的功能。
    發表于 03-03 09:18 ?815次閱讀

    如何去實現一種硬件+軟件看門狗監測多任務方案

    硬件+軟件看門狗監測多任務的原理是什么?如何去實現一種硬件+
    發表于 08-05 07:55

    什么是看門狗電路

    看門狗電路 看門狗電路一般有軟件看門狗硬件看門狗兩種。
    發表于 10-21 01:40 ?8228次閱讀

    什么是stm32看門狗?獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立看門狗
    的頭像 發表于 11-06 11:48 ?2.8w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數器達到給定
    發表于 11-09 17:17 ?8476次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

    uC/OS-II 系統的多任務看門狗設計

    在嵌入式系統中為提高微型機系統的可靠性和安全性, 常用的方法就是使用看門狗看門狗硬件看門狗軟件看門
    發表于 11-30 06:39 ?741次閱讀

    軟件看門狗硬件看門狗的作用和區別

    就來看看軟硬件看門狗區別。  看門狗,又叫 watchdog timer,是一個定時器電路, 一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,M
    的頭像 發表于 10-15 17:29 ?3.9w次閱讀

    基于STM32、FreeRTOS 實現硬件看門狗+軟件看門狗監測多任務的方法

    基于STM32、FreeRTOS實現硬件看門狗+軟件看門狗監測多任務的方法
    的頭像 發表于 03-12 10:11 ?9520次閱讀

    MCU獨立看門狗與窗口看門狗的區別

    早期的MCU沒有看門狗,就容易引起有些產品死機了不能重啟工作。為了避免這個問題,后期的MCU在內部集成了看門狗的功能。為了滿足更多使用場景,現在很多
    發表于 10-28 20:06 ?8次下載
    <b class='flag-5'>MCU</b>獨立<b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區別

    STM32中的獨立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發表于 12-22 16:58 ?2229次閱讀

    STM32中的獨立看門狗和窗口看門狗

    在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發表于 01-30 14:38 ?1434次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    MCU如何集成看門狗的功能

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發表于 06-22 09:09 ?1884次閱讀
    <b class='flag-5'>MCU</b>如何集成<b class='flag-5'>看門狗</b>的功能

    軟件看門狗硬件看門狗的區別

    軟件看門狗硬件看門狗都是用于監控系統崩潰的工具,它們的作用是在系統出現故障或異常情況時自動恢復系統。 ?軟件
    的頭像 發表于 04-16 15:10 ?1188次閱讀
    大发888下载地址| 大发888下载大发888娱乐城| 大发888大发888m摩卡游戏博彩官方下载| 六合彩网址大全| 百家乐官网博彩桌出租| 榆次百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城赌场| 澳门金沙会| 百家乐官网注册彩金| 属鸡与属羊做生意| 大发888有破解的没| 百家乐官网赌术揭秘| LV百家乐官网赢钱LV| 免费百家乐缩水工具| 缙云县| 有24天星名的罗盘| 百家乐唯一能长期赢钱的方法| 百家乐官网打法分析| 肯博百家乐官网的玩法技巧和规则| 百家乐注册下注平台| 大发888 无法进入网页| 百家乐官网桌布专业| 通海县| 24山安葬择日吉凶| 百家乐平注7s88| 赌场网站| 百家乐交流群号| 澳门顶级赌场金鹰娱乐| 红宝石百家乐官网娱乐城| 七胜百家乐娱乐平台| 土默特右旗| 百家乐是如何出千的| 网上真钱轮盘| 澳门百家乐如何算牌| 博彩旅游业| 财神百家乐官网的玩法技巧和规则 | 24向风水| bet365网站地址器| 百家乐官网五铺的缆是什么意思| 大发888娱乐场1888| 致胜百家乐官网软件|