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

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

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

3天內不再提示

基于嵌入式系統中看門狗的原理與使用

Q4MP_gh_c472c21 ? 2018-02-08 18:27 ? 次閱讀

最近需要在板子上加上一塊WatchDog,以確保在系統出錯時自動重啟,所以看了一些在嵌入式系統中使用看門狗的資料,總結如下:

一、看門狗原理

在產品化的嵌入式系統中,為了使系統在異常情況下能自動復位,一般都需要引入看門狗。

看門狗其實就是一個可以在一定時間內被復位的計數器。當看門狗啟動后,計數器開始自動計數,經過一定時間,如果沒有被復位,計數器溢出就會對CPU產生一個復位信號使系統重啟(俗稱“被狗咬”)。系統正常運行時,需要在看門狗允許的時間間隔內對看門狗計數器清零(俗稱“喂狗”),不讓復位信號產生。如果系統不出問題,程序保證按時“喂狗”,一旦程序跑飛,沒有“喂狗”,系統“被咬”復位。

這就好比你的身邊有一只時刻饑餓的狗,你不按時給它肉吃,它就會吃你的肉,你被吃了......掛了,投胎轉世,徹底重新做人了。不幸的是來世你還得喂狗.

二、看門狗的種類

在現在的嵌入式系統中主要可以分為兩種類型的看門狗:

1、CPU內部自帶的看門狗:此類看門狗一般是將一個芯片中的定時器來作為看門狗,通過程序的初始化,寫入初值,設定溢出時間,并啟動定時器。程序按時對定時器賦初值(或復位),以免被咬。這種看門狗是可以被禁用的(只要停止這個定時器即可),好比對那只要咬你的狗來個“葵花點穴手”。大部分CPU都內置看門狗,硬件原理可參考各芯片數據手冊。

優點:可以通過程序改變溢出時間;可以隨時禁用

缺點:需要初始化;如果程序在初始化、啟動完成前跑飛或在禁用后跑飛,看門狗就無法復位系統,這樣看門狗的作用就沒有了,系統恢復能力降低。

2、獨立的看門狗芯片:這種看門狗主要有一個用于喂狗的引腳(一般與CPU的GPIO相連)和一個復位引腳(與系統的RESET引腳相連),如果沒有在一定時間內改變喂狗腳的電平,復位引腳就會改變狀態復位CPU。此類看門狗一上電就開始工作,無法禁用。現在常用的芯片有:CAT705/CAT706、IMP706等等,溢出時間在1.6秒左右。 硬件原理可以參考各芯片數據手冊和《基于Linux的嵌入式系統全程喂狗策略》。

優點:無須配置,上電即用。無法禁用,系統必須按時喂狗,系統恢復能力高。

缺點:無法靈活配置溢出時間,無法禁用,靈活性降低。

當然還有所謂的軟件看門狗,這其實是也是一種監控軟件。

一些重要的程序,必須讓它一直跑著;而且還要時時關心它的狀態——不能讓它出現死鎖現象。(當然,如果一個主程序會出現死鎖,肯定是設計或者編程上的失誤。首要做的事是Debug。)但如果時間緊迫可以用軟件看門狗,暫時應急。

這種監控軟件運行不出現界面窗口,具有一定的隱蔽性;它定時判斷目標進程是否運行在當前系統中,如果沒有則啟動目標進程;判斷目標進程是否“無響應”,如果是則終止目標進程;如果目標進程“無響應”的次數超過一定的數量,則重啟整個系統。它的目的也是復位,但是它主要市復位進程,實在不行才復位CPU。

這種軟件屬于監控軟件,不在本文的敘述范圍之內。

三、看門狗的選擇

在一般的民用產品,對系統的穩定性沒有太高要求的場合,可以使用內置看門狗,可以簡化軟件開發和硬件成本。

在工控產品和對系統的穩定性有較高要求的關鍵場合,基本都選用硬件獨立看門狗,確保系統在面對嚴重錯誤時的恢復能力。增加了硬件成本,稍微加大了軟件的開發難度(必須確保在正常情況下的不斷喂狗)。

四、在bootloader下的使用

如果是CPU內置的看門狗,一般在這階段可以禁用,所有沒什么特殊的操作。

但是如果是獨立的看門狗芯片就必須喂了。或者為了保險,你在bootloader中就啟動了看門狗,也得喂了。

bootloader有很多,基本原理都是一樣的,喂狗的過程也基本一樣,在這里以uboot為例講解如何喂狗。

u-boot的運行分為以下幾個階段:

最早的簡單初始化,代碼重定位的自拷貝階段

系統詳細初始化階段

控制臺階段(如果使用了自動啟動,則跳過)

OS內核拷貝(可能帶有解壓過程),跳入操作系統

五、在Linux下使用

在bootloader加載了內核之后,系統就開始由Linux內核接管。而喂狗的工作自然也開始由內核來承擔。在bootloader將控制權給內核之后,時間上可以分為以下幾個部分:

內核自解壓階段(壓縮內核才有:zImage或bzImage)

內核啟動到看門狗驅動加載之前

看門狗驅動加載后到根文件系統啟動前

根文件系統啟動后到看門狗守護進程啟動前

看門狗守護進程啟動后

對于使用CPU內置的看門狗,在1~4階段,看門狗一般都沒有啟動,無需喂狗。只有在看門狗守護進程啟動后,由守護進程打開看門狗,并根據配置文件監控其他進程的狀態來開始喂狗。如果被監控進程出現不可修復的問題,守護進程停止喂狗,CPU復位。

對于獨立的看門狗芯片,系統一上電就必須不斷喂狗,接過bootloader的接力棒繼續喂狗。

首先在第1階段,內核的自解壓一般時間較長,必須在自解壓的循環過程中加入喂狗代碼(可能還要是匯編形式的)。一旦在這過程中跑飛,就不會喂狗,CPU復位。

在第2階段,這段時間一般不會很長,可以不用喂狗。但是這也和你的內核有關,如果在這個階段正好有比較耗時的模塊啟動的話,你可以在這個模塊的初始化函數或者比較耗時的循環和等待中添加喂狗代碼。具體在哪些模塊中加,要嘗試啟動幾次就知道了,靠實驗和經驗。

在看門狗驅動加載時,一般會在模塊初始化代碼中喂一次狗。

在第3階段,和第2階段類似,如果在這個階段正好有比較耗時的模塊啟動的話,你可以在這個模塊的初始化函數或者比較耗時的循環和等待中添加喂狗代碼。但是在根文集系統掛載時,根據文件系統的性質和大小,可能需要在文件系統代碼中添加喂狗指令。

第4階段是一個比較耗時的階段,一般會在系統啟動腳本中添加一些簡單的喂狗的shell命令,例如:“echo V > /dev/watchdog”,加的位置根據系統的啟動過程而異。

在第5階段,一切都由看門狗守護進程來實現喂狗了。

基于嵌入式系統中看門狗的原理與使用

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

    關注

    5121

    文章

    19413

    瀏覽量

    312427
  • 看門狗
    +關注

    關注

    10

    文章

    576

    瀏覽量

    71411

原文標題:實用!快速操作Linux終端命令行的快捷鍵

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式系統看門狗計數器怎么清零?

    嵌入式系統中,為了使系統在異常情況下能自動恢復,一般都會引入看門狗電路。看門狗電路其實就是一個計數器。當
    發表于 03-09 06:16

    看門狗嵌入式Linux中的應用有哪些

    嵌入式領域中 Watchdog 看門狗通常被作為用于應對系統或者應用意外崩潰的有效手段。其可以在程序執行出錯并無法恢復的情況下,自動重啟應用甚至復位整個系統,從而使
    發表于 01-01 07:42

    嵌入式系統】獨立看門狗原理+看門狗實驗分析 精選資料推薦

    嵌入式系統】獨立看門狗原理+看門狗實驗分析1、看門狗模塊概述在由單片機構成的微機系統中,由于單
    發表于 08-03 06:27

    嵌入式系統中看門狗的相關資料下載

    https://blog.csdn.net/maopig/article/details/7173393
    發表于 12-22 06:55

    怎樣去使用嵌入式系統中看門狗

    嵌入式系統中看門狗的使用總結原文地址:嵌入式系統中看門狗的使用總結 作者:tekkamannin
    發表于 12-22 06:09

    單片機應用中看門狗技術

    分析研究了單片機應用系統中軟件看門狗、單雙時限和強制復位 看門狗 等幾種常見的看門狗技術及具體的實現方法, 從提高看門狗工作可靠性的角度,
    發表于 06-03 16:49 ?318次下載
    單片機應用<b class='flag-5'>中看門狗</b>技術

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

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數器達到給定的超時值時,觸發一個中斷(僅適用于窗口型
    發表于 11-09 17:17 ?8525次閱讀
    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 ?768次閱讀

    嵌入式系統中看門狗的類型

    CPU內部自帶的看門狗:此類看門狗一般是將一個芯片中的定時器來作為看門狗,通過程序的初始化,寫入初值,設定溢出時間,并啟動定時器。
    發表于 07-19 11:09 ?3504次閱讀

    看門狗嵌入式 Linux 中的應用

    By Toradex胡珊逢1).簡介在嵌入式領域中Watchdog看門狗通常被作為用于應對系統或者應用意外崩潰的有效手段。其可以在程序執行出錯并無法恢復的情況下,自動重啟應用甚至復位整個系統
    發表于 11-01 18:00 ?18次下載
    <b class='flag-5'>看門狗</b>在<b class='flag-5'>嵌入式</b> Linux 中的應用

    嵌入式單片機基礎篇(八)之兩只看門狗

    嵌入式工程師成長之路(八)之兩只看門狗獨立看門狗與窗口看門狗第一部分:stm32。STM32 內部自帶了 2 個看門狗:獨立
    發表于 11-24 20:51 ?2次下載
    <b class='flag-5'>嵌入式</b>單片機基礎篇(八)之兩只<b class='flag-5'>看門狗</b>

    嵌入式系統】獨立看門狗原理+看門狗實驗分析

    嵌入式系統】獨立看門狗原理+看門狗實驗分析1、看門狗模塊概述在由單片機構成的微機系統中,由于單
    發表于 11-25 09:51 ?1次下載
    【<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>】獨立<b class='flag-5'>看門狗</b>原理+<b class='flag-5'>看門狗</b>實驗分析

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

    和窗口看門狗。 獨立看門狗:使用的是外部時鐘,即使主頻不工作了,看門狗也能正常工作。只要在到達喂狗時間的上限前喂狗即表示程序是正常的,這點和窗口看門狗是有區別的。另外獨立
    的頭像 發表于 12-22 16:58 ?2401次閱讀

    電路中看門狗的作用

    電路中看門狗的作用 電路中的看門狗是一個非常重要的保護裝置,它主要用于監測系統是否出現異常狀況,在檢測到異常狀況后關閉系統,防止系統出現不可
    的頭像 發表于 09-26 16:38 ?4381次閱讀

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

    系統出現了故障或死鎖,軟件看門狗會自動重啟系統或執行其他預定義的操作。軟件看門狗通常用于嵌入式系統
    的頭像 發表于 04-16 15:10 ?1418次閱讀
    主站蜘蛛池模板: 性色在线视频 | 久久青草91线频免费观看 | 高h水果榨汁play男男 | 日本特级淫片免费看 | 五月天色婷婷丁香 | 免费看黄在线观看 | 亚洲小便| 日韩婷婷 | se97se成人亚洲网站在线观看 | 美女黄色在线 | 小雪被老外黑人撑破了视频 | 色黄网站成年女人色毛片 | 国内夫妇交换性经过实录 | 国产黄视频网站 | 一区二区午夜 | 天天在线精品视频在线观看 | 久久69 | 免费一级视频在线播放 | 亚洲电影二区 | 色婷婷六月丁香七月婷婷 | 视色4setv.com | 白丝丝袜高跟国产在线视频 | 男人j进女人j的一进一出视频 | 免费的很黄很色的床小视频 | 黄色永久网站 | 91国内在线 | 日韩色区 | 国产三级在线免费观看 | 天堂看动漫 | 亚欧免费视频一区二区三区 | 精品国产高清在线看国产 | 天堂日本| 天天干夜夜做 | 狠狠色丁香久久婷婷 | 婷婷的五月 | 婷婷色在线播放 | 日韩毛片免费看 | 久热精品视频 | 四虎影院在线免费观看视频 | 黄色国产在线观看 | 巨骚综合网 |