在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux看門狗管理及在DM8168芯片上的應(yīng)用

            Linux看門狗管理及在DM8168芯片上的應(yīng)用

            作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

            摘要:隨著智能手機及平板為代表的嵌入式設(shè)備的普及,對系統(tǒng)的可靠性提出較高的要求。以TI TMS320DM8168芯片為例,詳細介紹了系統(tǒng)從U—Boot啟動、內(nèi)核啟動到文件系統(tǒng)加載及用戶程序啟動過程中,的啟用及管理,通過不同階段管理,可以保證系統(tǒng)在任意可能出現(xiàn)問題的階段,可以自動重啟以修復(fù)故障,從而有效提高系統(tǒng)的可靠性。

            本文引用地址:http://www.biyoush.com/article/201609/303453.htm

            關(guān)鍵詞:;;DM8168

            引言

            隨著智能終端及移動互聯(lián)網(wǎng)的發(fā)展,系統(tǒng)被應(yīng)用到越來越多的嵌入式設(shè)備中,如移動通信基站、Android(基于Linux內(nèi)核)智能手機、智能手環(huán)等。不同領(lǐng)域的應(yīng)用都對Android/Linux系統(tǒng)的可靠性及可用性有嚴格的要求。在嵌入式系統(tǒng)中,CPU必須可靠工作,即使因為某種錯誤或異常進入錯誤狀態(tài),系統(tǒng)應(yīng)該可以自動復(fù)位,看門狗也可以在系統(tǒng)進入錯誤狀態(tài)后的一段時間內(nèi)重啟復(fù)位,以實現(xiàn)系統(tǒng)自動從故障恢復(fù)。

            1 看門狗的概念

            看門狗是一個進行累加計數(shù)的定時器,在其啟動后,如果在設(shè)定的時間間隔內(nèi)對定時器清零(俗稱“喂狗”操作),定時器就不會溢出,也不會產(chǎn)生復(fù)位信號;如果在設(shè)定的時間間隔內(nèi),沒有對定時器清零,定時器就會溢出產(chǎn)生復(fù)位信號,從而實現(xiàn)系統(tǒng)重啟。根據(jù)實現(xiàn)方式的不同,可以分為硬件看門狗和軟件看門狗。

            硬件看門狗是利用定時器電路實現(xiàn),其輸出連接到電路的復(fù)位端,程序在設(shè)定間隔內(nèi)對定時器清零。因此程序正常工作時,定時器不會溢出;如果程序出現(xiàn)故障,未能在設(shè)定間隔周期內(nèi)執(zhí)行清零操作,就使得看門狗定時器溢出,產(chǎn)生復(fù)位信號并重啟系統(tǒng)。軟件看門狗原理上同硬件看門狗一樣,只是將硬件電路上的定時器用操作系統(tǒng)內(nèi)部的軟件定時器代替,這樣可以簡化硬件電路設(shè)計。但軟件定時器在可靠性方面不如硬件定時器,在一些異常的情形下,比如處理器或操作系統(tǒng)內(nèi)部發(fā)生故障時,會導(dǎo)致軟件定時器不可用,也就無法檢測到這些故障。

            2 Linux系統(tǒng)對看門狗的支持

            Linux內(nèi)核從1.3.51版本開始提供硬件、軟件看門狗的驅(qū)動支持。隨著內(nèi)核版本不斷更新與發(fā)展,Linux內(nèi)核對各種不同類型的硬件看門狗提供了廣泛的支持。根據(jù)訪問方式的不同,Linux系統(tǒng)下的設(shè)備驅(qū)動程序分為字符設(shè)備及塊設(shè)備。看門狗在Linux系統(tǒng)下作為字符設(shè)備來處理,/dev/watchdog是一個主設(shè)備號為10、從設(shè)備號為130的字符設(shè)備節(jié)點。

            Linux系統(tǒng)下的硬件看門狗,必須有硬件電路支持,設(shè)備節(jié)點/dev/watchdog對應(yīng)著真實的物理設(shè)備,不同類型的硬件看門狗設(shè)備由相應(yīng)的硬件驅(qū)動管理。

            軟件看門狗則由Linux內(nèi)核模塊通過定時器機制實現(xiàn),此時設(shè)備節(jié)點/dev/watchdog并不對應(yīng)真實的物理設(shè)備,只是為應(yīng)用提供了一個與操作硬件看門狗相同的接口。各種不同類型的硬件看門狗電路,不僅提供了驅(qū)動程序支持,還提供了一個基于定時器的純軟件看門狗驅(qū)動,其驅(qū)動程序的源碼位于Linux內(nèi)核源碼下面的/drivers/watchdog目錄。

            與Linux下的軟件看門狗相比,硬件看門狗具有更高的可靠性。基于Linux內(nèi)核的定時器實現(xiàn)的軟件看門狗,當內(nèi)核或中斷出現(xiàn)異常時,將會失效。而硬件看門狗由自身的硬件電路控制,獨立于內(nèi)核,無論當前系統(tǒng)狀態(tài)如何,如果硬件看門狗在設(shè)定的時間間隔內(nèi)沒有被執(zhí)行寫操作,仍會重新啟動系統(tǒng)。

            Linux系統(tǒng)下面的軟件、硬件看門狗對應(yīng)用程序而言是透明的。應(yīng)用程序操作軟件看門狗的方式如下:打開設(shè)備/dev/watchdog,在設(shè)定的時間間隔內(nèi)對/dev/watchdog設(shè)備執(zhí)行寫操作。在任意時刻,只能有一個看門狗驅(qū)動模塊被加載,管理/dev/watchdog設(shè)備節(jié)點。如果系統(tǒng)沒有硬件看門狗電路,可以加載軟件看門狗驅(qū)動模塊。

            3 Linux系統(tǒng)下看門狗的訪問

            前文提到,Linux系統(tǒng)將看門狗作為一個字符設(shè)備來管理。本節(jié)將以TI公司推出的高清視頻處理芯片TMS320DM8168(以下簡稱DM8168)芯片為例,介紹Linux下訪問及操作看門狗的邏輯層次。

            DM8168芯片將高清多通道系統(tǒng)的所有捕獲、壓縮、顯示以及控制功能整合于同一芯片,芯片內(nèi)部集成了硬件看門狗,外圍連接電路如圖1所示。硬件看門狗溢出同時產(chǎn)生復(fù)位(Reset)及中斷信號(Interrupt),復(fù)位信號會復(fù)位整個芯片,中斷信號可以在捕獲到中斷事件后,在中斷處理函數(shù)中增加一些額外的操作(比如將收到的看門狗溢出中斷的時間寫進日志,然后再復(fù)位等)。

            Linux系統(tǒng)訪問硬件接口需通過設(shè)備驅(qū)動程序接口實現(xiàn),硬件看門狗也不例外。

            如圖2所示,Linux系統(tǒng)下操作看門狗需要以下3個層次:

            ①Hardware Layer-硬件層,指硬件設(shè)備,通常提供GPIO;

            ②Kernel Layer-內(nèi)核層,內(nèi)核通過設(shè)備驅(qū)動程序訪問并控制硬件設(shè)備;

            ③Usee Space-用戶空間,應(yīng)用程序通過內(nèi)核驅(qū)動提供的API接口(通常以打開文件或ioctl方式),提供訪問硬件設(shè)備的接口,比如打開看門狗(int fd = open(“/dev/wat chdog”,O_RDWR))。

            4 Linux系統(tǒng)下看門狗的管理

            Linux啟動過程依次為U—Boot、內(nèi)核及文件系統(tǒng),最后是應(yīng)用程序啟動。在Linux系統(tǒng)啟動過程中,啟用看門狗可以有效監(jiān)測系統(tǒng)狀態(tài),若異常導(dǎo)致看門狗溢出,系統(tǒng)會自動復(fù)位以試修復(fù)問題,從而提高系統(tǒng)的可靠性及健壯性。本節(jié)以DMS168開發(fā)板為例,介紹Linux各個啟動階段看門狗的管理。

            4.1 U—Boot啟動階段

            開發(fā)板上電后,執(zhí)行U—Boot的第一條指令,然后順序執(zhí)行U—Boot啟動函數(shù)。U—Boot啟動內(nèi)核的過程如下:

            ①硬件設(shè)備初始化。

            ②加載U—Boot第二階段代碼到RAM空間。

            ③設(shè)置好堆棧,跳轉(zhuǎn)到start_armboot函數(shù)入口。

            ④start_armboot是U—Boot執(zhí)行的第一個C語言函數(shù)。


            上一頁 1 2 下一頁

            關(guān)鍵詞: Linux 看門狗

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉