在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

到底該把喂狗任務優先級設置成最高還是最低好?

魚鷹談單片機 ? 來源:魚鷹談單片機 ? 2023-09-13 09:10 ? 次閱讀

前言

一個學員在學習 uCOS 系統過程中,對看門狗任務的優先級產生了疑惑,到底該把喂狗任務優先級設置成最高還是最低好?

這里談談個人看法,首先給出結論,最低,甚至是在空閑任務運行(使用鉤子函數)。

理由

首先我們要知道看門狗的工作是什么?為什么要設置看門狗。

很多產品出廠時,都會開啟看門狗,這是產品運行的最后保障,可以在出現軟件 bug 時(如hardfault,死循環等),及時恢復運行,讓產品可以重新繼續工作下去,但這不意味著萬事大吉,一旦發現了看門狗引起的復位問題(可以通過寄存器標志位查看因何復位),一定要找到問題根因,否則出現了一次,后面一定還會不停出現,用戶體驗相當不好。

那么我們應該怎么設置看門狗的功能呢?這個學員準備這么設計:

1、超時時間 1s ,喂狗時間 500ms

2、看門狗任務優先級最高

3、每個任務發送信號量給看門狗任務,看門狗任務判斷是否收到了全部任務信號量,然后再決定是否喂狗。

看似合理,但其實有許多問題,接下來一個一個討論。

超時時間?

首先是超時時間問題,設計 1s 超時時間,500ms 喂狗,這對喂狗功能本身來說是沒有問題的,但這顯得過于嚴苛了,因為只要你某個任務運行超過了 1s,那很容易造成重啟現象,雖然說一個任務持續運行 1 s 也算是個不大不小的問題,但你要知道,看門狗是應對極其嚴重問題下的緊急措施,這種運行緩慢只是體驗不好,如果經常發生,在研發階段就應該解決,如果是偶發的,那么對應客戶來說,基本是感知不到的。

而這么短的時間就完成重啟,你可能很難從外部現象分清到底是因為電源、復位引腳還是看門狗導致的重啟,在沒有日志情況下,增大排查范圍。

如果我們能設置成10多秒的超時時間,那么我們很容易就能從表象發現,產品停止工作了,然后我們有足夠的時間抓取到現場環境,這對定位這種偶發性問題非常有效(目前所待的兩個公司看門狗超時時間都設置在 10 s 以上)。

不過每種產品要求不同,對超時時間也不盡相同,所以自行決定即可(時間要求嚴格者,可考慮使用窗口看門狗)。

優先級和信號量?

第二點,優先級最高?在魚鷹看來,這絕對不行,這和把看門狗功能放在中斷中執行沒什么兩樣。

這里和第三點結合一起討論。

通過每個任務設置信號量的方式,確實保證了每個任務都正常運行,但真的合適嗎?

首先每個任務增加信號量,對系統資源是一大消耗,其次你能保證后續的開發人員在增加任務時能遵照你的設計要求寫代碼嗎?不一定吧。

一旦增加新任務而未增加這個喂狗信號量,那么這個新任務的死活,看門狗可就無能為力了。因為看門狗任務優先級最高,只要現有信號量接收到了,就一定會喂狗,那么新任務可監控不了。

另外有些任務在設計時,可能就是很長時間才運行一次(如外部中斷觸發),那么這種任務肯定要因為你這個設計而不得不做出修改。

還有些任務走了異常分支,并沒有釋放CPU的行為(如delay),卻能正常釋放信號量,那么也是很難發現的。

而將看門狗任務優先級設計成最低(建議在空閑任務執行,這樣它一定是最低的,不會被人為修改),那么不管后面的人怎么添加新任務,只要新任務死循環,不釋放 CPU(低優先級任務無法運行,包括看門狗任務),那么一定會被感知到,從而使看門狗復位。

而為了保證一些關鍵代碼一定會被執行,可以設計一個變量,每個 bit 是一處關鍵代碼(在關鍵代碼執行后置 1),這樣只要在喂狗前判斷這個變量相關位是否設置即可。就是要注意該變量的保護,如關中斷。

這樣通過低優先級+位域的方式,就保證了其它任務一定都能被執行到,并且對關鍵代碼也做了進一步運行保證,使看門狗功能最大化。






審核編輯:劉清

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

    關注

    10

    文章

    576

    瀏覽量

    71438
  • 中斷
    +關注

    關注

    5

    文章

    902

    瀏覽量

    42353
  • 信號量
    +關注

    關注

    0

    文章

    53

    瀏覽量

    8467
  • ucos系統
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6052

原文標題:談談看門狗優先級

文章出處:【微信號:emOsprey,微信公眾號:魚鷹談單片機】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    第8章 任務優先級修改

    優先級設置要注意以下幾個問題:u 設置任務優先級時,數值越小優先級越低。u
    發表于 10-03 00:15

    任務優先級設置

    //任務優先級
    發表于 02-16 17:20

    STM32中斷優先級徹底講解

    ,中斷源優先級是在中斷優先級寄存器中設置的,只能設置及高四位,必須根據中斷優先級分組中設置
    發表于 07-06 03:27

    UCOSII實驗1,任務調度的實驗中為什么最低優先級的給了開始任務?

    在實驗中有這樣一句代碼:#define START_TASK_PRIO10 //開始任務優先級設置最低??墒遣僮飨到y不是
    發表于 03-19 06:35

    UC/OS-II系統為什么例子里還能設置按鍵任務優先級為3

    KEY_TASK_STK[KEY_STK_SIZE];//任務函數接口void key_task(void *pdata);UC/OS-II 系統不是保留了4個最高優先級任務
    發表于 05-30 04:35

    藍牙無線電任務優先級

    任務首先獲得最小優先級,然后可以逐漸增加到最大優先級。下一節將對此進行說明。最低優先級為255,最高
    發表于 10-15 11:30

    ucos3中systick中斷的優先級在哪里修改?

    ucos3中systick中斷的優先級如果要修改應該在哪里修改呢??是設置成最高優先級還是怎么樣??但
    發表于 03-20 02:53

    COSII移植例程里開始任務優先級為什么是最低的?

    UCOSII移植例程里開始任務優先級為什么是最低的?#define START_TASK_PRIO10我看任哲的書里是定義優先級最高的?、
    發表于 05-19 03:19

    freertos中的任務優先級通過什么函數設置?

    任務優先級怎么設置成最高
    發表于 11-02 07:40

    DSP中斷如何設置優先級

    原以為2812中斷不能設置優先級。實際上硬件上優先級是做好的。但軟件上有辦法來設置優先級
    發表于 04-08 17:20 ?20次下載

    鴻蒙內核源碼:32優先級的進程和線程調度

    先看四個宏定義,進程和線程(線程就是任務最高最低優先級定義,[0,31]區間,即32,優先級
    的頭像 發表于 04-24 11:18 ?2228次閱讀

    2.FreeRTOS中斷優先級任務優先級

    FreeRTOS中斷優先級任務優先級架構:Cortex-M3版本:FreeRTOS V9.0.0前言:最開始,我并沒有搞清楚什么是中斷優先級任務
    發表于 12-04 20:21 ?9次下載
    2.FreeRTOS中斷<b class='flag-5'>優先級</b>和<b class='flag-5'>任務</b><b class='flag-5'>優先級</b>

    STM32F103芯片中斷優先級以及FreeRTOS優先級設置

    STM32F103只用了4個位來表達優先級,因此最多支持16的可編程優先級(0~15),15為最低優先級。
    發表于 01-25 18:59 ?1次下載
    STM32F103芯片中斷<b class='flag-5'>優先級</b>以及FreeRTOS<b class='flag-5'>優先級</b><b class='flag-5'>設置</b>

    FreeRTOS任務優先級示例

    任務優先級:0~24之間。數字越大,任務優先等級越高。高優先級任務
    的頭像 發表于 09-15 11:13 ?3070次閱讀

    談談MCU看門狗任務優先級設置

    一個學員在學習 uCOS 系統過程中,對看門狗任務優先級產生了疑惑,到底喂狗
    發表于 09-15 09:32 ?1195次閱讀
    主站蜘蛛池模板: 日本加勒比在线精品视频 | 久久99久久精品国产99热 | 黄色一级片毛片 | 色噜噜狠狠狠色综合久 | 久青草免费在线视频 | 日本aaaaa高清免费看 | 手机看片日韩国产 | 四虎在线最新永久免费 | 六月婷婷综合激情 | 国产激烈无遮挡免费床戏视频 | 色色色爱 | 男女爱爱福利 | 韩国三级久久精品 | 亚洲成a人片777777久久 | 在线不卡一区 | 成人欧美一区二区三区黑人3p | 扒开双腿猛进入jk校视频 | 91亚洲视频 | 欧美性猛交ⅹxxx乱大交免费 | 国产一级一片免费播放视频 | 欧美成人午夜不卡在线视频 | 可以直接看的黄址 | aaaa视频| 女人本色高清在线观看wwwwww国产 | 国产日韩精品欧美一区色 | 诱人的老师bd高清日本在线观看 | 狠狠狠狠狠狠狠狠 | 老师您的兔子好软水好多动漫视频 | 中国性猛交xxxx乱大交 | 日本a级三级三级三级久久 日本a级影院 | 五月婷婷深爱 | 精品三级网站 | 精品国产免费观看久久久 | 欧美一级精品高清在线观看 | 欧美综合视频 | 色婷婷99综合久久久精品 | 国产综合精品久久亚洲 | ww欧洲ww欧洲视频 | 国产亚洲第一伦理第一区 | 亚洲午夜精品久久久久久人妖 | 丝袜美腿一区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品