国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      嵌入式系統(tǒng)的全程喂狗方法

      文檔序號(hào):6458723閱讀:1007來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):嵌入式系統(tǒng)的全程喂狗方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式系統(tǒng)的失效恢復(fù)方法,尤其涉及一種看門(mén)狗全程喂狗方法。
      技術(shù)背景在嵌入式系統(tǒng)中,為了使系統(tǒng)在異常情況下能自動(dòng)恢復(fù), 一般都會(huì)引入硬件看門(mén) 狗電路。硬件看門(mén)狗本身并不能解決系統(tǒng)出現(xiàn)的問(wèn)題,它只是有助于系統(tǒng)在出現(xiàn)異常 狀況時(shí)可自動(dòng)恢復(fù)正常工作狀態(tài)。硬件看門(mén)狗其實(shí)就是一個(gè)計(jì)數(shù)器,當(dāng)硬件看門(mén)狗啟動(dòng)后,計(jì)數(shù)器開(kāi)始自動(dòng)計(jì)數(shù),經(jīng)過(guò)一定時(shí)間計(jì)數(shù)器溢出就會(huì)對(duì)CPU產(chǎn)生一個(gè)復(fù)位信號(hào)使系統(tǒng)重啟。系統(tǒng)正常運(yùn)行時(shí)需要在硬件看門(mén)狗允許的時(shí)間間隔內(nèi)對(duì)看門(mén)狗計(jì)數(shù)器清 零,不讓復(fù)位信號(hào)產(chǎn)生,這即是喂狗動(dòng)作。目前嵌入式系統(tǒng)喂狗方法一般都是在設(shè)備啟動(dòng)階段禁用看門(mén)狗,設(shè)備啟動(dòng)后程序 運(yùn)行時(shí)再啟用看門(mén)狗。這是由于設(shè)備啟動(dòng)時(shí)間一般都大于硬件看門(mén)狗的時(shí)間間隔,如 果此階段不禁用看門(mén)狗,則設(shè)備啟動(dòng)無(wú)法成功。問(wèn)題是如果在設(shè)備啟動(dòng)階段系統(tǒng)出現(xiàn) 故障,系統(tǒng)則無(wú)法恢復(fù)。如何在嵌入式系統(tǒng)設(shè)備啟動(dòng)和程序運(yùn)行時(shí)都正確啟用看門(mén)狗 以實(shí)現(xiàn)系統(tǒng)全過(guò)程失效恢復(fù),是一個(gè)待解決的技術(shù)問(wèn)題。發(fā)明內(nèi)容技術(shù)問(wèn)題為了解決以上問(wèn)題,本發(fā)明涉及一種看門(mén)狗電路設(shè)計(jì)及在嵌入式系 統(tǒng)設(shè)備啟動(dòng)和程序運(yùn)行時(shí)都啟用看門(mén)狗以實(shí)現(xiàn)系統(tǒng)全過(guò)程失效恢復(fù)的方法。技術(shù)方案本發(fā)明采用IMP706芯片組成硬件看門(mén)狗電路(看門(mén)狗的時(shí)間間隔為 1.6秒),硬件看門(mén)狗電路的WDI 口通過(guò)電平轉(zhuǎn)換器件與中央處理器的GPI03 口相連, 硬件看門(mén)狗電路的RESETJ)UT 口與中央處理器的RESET 口相連。嵌入式系統(tǒng)全過(guò)程喂 狗策略是嵌入式系統(tǒng)看門(mén)狗電路設(shè)計(jì)和從設(shè)備啟動(dòng)階段到程序運(yùn)行階段的看門(mén)狗喂 狗策略,即硬件看門(mén)狗器件IMP706的WDI 口與中央處理器(CPU)UO的GPI03 口相連, 在BootLoader階段、內(nèi)核1階段、內(nèi)核2階段、內(nèi)核3階段、程序運(yùn)行階段都插入 喂狗程序進(jìn)行喂狗動(dòng)作,這些喂狗程序的運(yùn)行時(shí)間間隔為1秒。在設(shè)備啟動(dòng)和程序運(yùn)行的不同階段喂狗實(shí)現(xiàn)方法不同在BootLoader階段采用 直接取反中央處理器的GPI03 口寄存器值的方法;在Linux內(nèi)核1階段采用直接取反 中央處理器的GPI03 口寄存器值的方法;在Linux內(nèi)核2階段釆用調(diào)用GPIO的驅(qū)動(dòng) 的方法;在Linux內(nèi)核3階段采用調(diào)用WATCHDOG驅(qū)動(dòng)的方法;在應(yīng)用程序運(yùn)行階段, 采用調(diào)用WATCHDOG驅(qū)動(dòng)的方法。這些方法的實(shí)質(zhì)都是使看門(mén)狗計(jì)數(shù)器清零,不產(chǎn)生 復(fù)位信號(hào)。有益效果全過(guò)程啟用看門(mén)狗,確保系統(tǒng)在任一階段出現(xiàn)軟件或硬件故障都能復(fù) 位重啟,系統(tǒng)可靠性得到全面提高;看門(mén)狗電路簡(jiǎn)單,硬件只需一塊看門(mén)狗芯片,不 需復(fù)雜的外圍電路,有效降低成本;


      圖l是本發(fā)明的總體框圖。圖2是本發(fā)明的看門(mén)狗電路原理圖。圖3是本發(fā)明的多線程應(yīng)用程序喂狗流程圖。
      具體實(shí)施例方式下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。圖1本發(fā)明的總體框圖表明了嵌入式系統(tǒng)的喂狗過(guò)程和各階段的喂狗方法。喂狗 過(guò)程分兩個(gè)階段設(shè)備啟動(dòng)階段和程序運(yùn)行階段。設(shè)備啟動(dòng)階段分BootLoader階段、 內(nèi)核1階段、內(nèi)核2階段、內(nèi)核3階段,程序運(yùn)行階段包括多線程各任務(wù)的運(yùn)行。在 各階段喂狗程序的調(diào)用方法不同在BootLoader階段采用直接取反中央處理器的 GPI03 口寄存器值的方法,不斷使看門(mén)狗計(jì)數(shù)器清零;在Linux內(nèi)核l階段也采用直 接取反中央處理器的GPI03 口寄存器值的方法,不斷使看門(mén)狗計(jì)數(shù)器清零;在Linux 內(nèi)核2階段采用調(diào)用GPIO的驅(qū)動(dòng)的方法;在Linux內(nèi)核3階段釆用調(diào)用WATCHDOG驅(qū) 動(dòng)的方法;在應(yīng)用程序運(yùn)行階段,采用調(diào)用WATCHDOG驅(qū)動(dòng)的方法。這些方法的實(shí)質(zhì) 都是使看門(mén)狗計(jì)數(shù)器清零,不產(chǎn)生復(fù)位信號(hào)。如圖2看門(mén)狗電路原理圖,本發(fā)明采用IMP706芯片Ul組成硬件看門(mén)狗電路(看 門(mén)狗的時(shí)間間隔為1. 6秒),硬件看門(mén)狗器件的TOI 口與中央處理器(CPU)UO的GPI03 口相連。電平轉(zhuǎn)換器件U2為74AVC1T45 (視不同的CPU可省略U2器件)。CPU的GPI03 腳與電平轉(zhuǎn)換器件U2的4腳Bl連接,提供1. 8V的電平,電平轉(zhuǎn)換器件U2的3腳與看門(mén)狗器件Ul的6腳連接,對(duì)Ul的WDI腳提供看門(mén)狗復(fù)位信號(hào),看門(mén)狗器件Ul的1 腳與4腳接到復(fù)位開(kāi)關(guān),看門(mén)狗器件Ul的7腳接到CPU的復(fù)位管腳,當(dāng)復(fù)位開(kāi)關(guān)被 觸動(dòng)或看門(mén)狗器件Ul的計(jì)數(shù)器溢出,看門(mén)狗器件Ul的7腳輸出復(fù)位信號(hào)給CPU的 RESET 口, CPU復(fù)位重啟。嵌入式系統(tǒng)全過(guò)程喂狗方法詳細(xì)過(guò)程如下-在BootLoader (本發(fā)明采用U-boot但不限于此)階段喂狗的策略是在BootLoader 的程序中不同位置插入喂狗程序,這些不同位置程序其運(yùn)行時(shí)間相隔一定時(shí)間(小于 看門(mén)狗的時(shí)間間隔,典型值為l秒)。具體做法是,首先在BootLoader第一階段即匯 編中插入喂狗代碼,然后在BootLoader第二階段Flash讀寫(xiě)、CRC校驗(yàn)、循環(huán)等待等 處插入喂狗代碼。喂狗代碼采用直接置位中央處理器的GPI03口寄存器值的方式進(jìn)行。在Linux內(nèi)核(本發(fā)明采用MontaVista Linux操作系統(tǒng)但不限于此)加載階段 喂狗策略是在Linux內(nèi)核程序的不同位置插入喂狗程序,這些不同位置程序其運(yùn)行時(shí) 間相隔一定時(shí)間(小于看門(mén)狗的時(shí)間間隔,典型值為1秒)。具體做法是,首先在Linux 內(nèi)核1階段的內(nèi)核解壓縮程序、GPIO驅(qū)動(dòng)加載程序適當(dāng)代碼處插入喂狗代碼,喂狗代 碼調(diào)用直接取反中央處理器的GPI03 口寄存器值的方式進(jìn)行;在Linux內(nèi)核2階段的 各類(lèi)設(shè)備驅(qū)動(dòng)加載、WATCHDOG驅(qū)動(dòng)加載程序適當(dāng)代碼處插入喂狗代碼,喂狗代碼調(diào)用 GPIO驅(qū)動(dòng),GPIO驅(qū)動(dòng)內(nèi)含取反中央處理器的GPI03 口寄存器值的操作;在Linux內(nèi) 核3階段的內(nèi)核RTC驅(qū)動(dòng)加載程序、加載根文件系統(tǒng)程序、init程序的適當(dāng)代碼處調(diào) 用Linux的WATCHDOG驅(qū)動(dòng),WATCHDOG驅(qū)動(dòng)內(nèi)含GPIO驅(qū)動(dòng)。圖3為多線程應(yīng)用程序運(yùn)行階段喂狗方法。在主程序中首先創(chuàng)建一個(gè)監(jiān)控線程, 它的優(yōu)先級(jí)高于其他線程。監(jiān)控線程在其他被監(jiān)控的線程正常工作的情況下, 一定時(shí) 間內(nèi)對(duì)看門(mén)狗進(jìn)行喂狗操作,喂狗操作通過(guò)調(diào)用WATCHDOG驅(qū)動(dòng)來(lái)完成。如果某個(gè)線 程出現(xiàn)故障,監(jiān)控線程就不執(zhí)行喂狗操作,也就達(dá)到這個(gè)線程出現(xiàn)故障時(shí)系統(tǒng)自動(dòng)重 啟的目的。如果監(jiān)控線程自身出現(xiàn)故障,不能及時(shí)執(zhí)行喂狗操作,看門(mén)狗也自動(dòng)復(fù)位 重啟。具體做法是,主程序首先啟動(dòng)監(jiān)控線程,然后依次啟動(dòng)多個(gè)被監(jiān)控的線程,每 一線程內(nèi)都設(shè)置一計(jì)數(shù)器。被監(jiān)控的線程中首先對(duì)線程內(nèi)的計(jì)數(shù)器初始化為O,在各 個(gè)線程主循環(huán)中,對(duì)相應(yīng)的計(jì)數(shù)器執(zhí)行加1操作。監(jiān)控任務(wù)每隔若干秒對(duì)各線程內(nèi)的 計(jì)數(shù)器進(jìn)行檢驗(yàn),查詢(xún)計(jì)數(shù)器值是否為0,如果不為0,則說(shuō)明對(duì)應(yīng)接受監(jiān)控的線程 正常運(yùn)行,然后對(duì)看門(mén)狗喂狗,系統(tǒng)就不會(huì)復(fù)位。如果有任意一個(gè)計(jì)數(shù)器值為0,檢測(cè)到 對(duì)應(yīng)接受監(jiān)視的線程出現(xiàn)故障需要重啟,這時(shí)不對(duì)看門(mén)狗喂狗,使得系統(tǒng)復(fù)位重啟。
      權(quán)利要求
      1.一種嵌入式系統(tǒng)的全程喂狗方法,其特征在于嵌入式系統(tǒng)看門(mén)狗電路設(shè)計(jì)和從設(shè)備啟動(dòng)階段到程序運(yùn)行階段的看門(mén)狗喂狗策略,即硬件看門(mén)狗器件IMP706的WDI口與中央處理器(CPU)U0的GPIO3口相連,在BootLoader階段、內(nèi)核1階段、內(nèi)核2階段、內(nèi)核3階段、程序運(yùn)行階段都插入喂狗程序進(jìn)行喂狗動(dòng)作,這些喂狗程序的運(yùn)行時(shí)間間隔為1秒。
      2. 根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)看門(mén)狗的全程喂狗方法,其特征在于在設(shè)備 啟動(dòng)和程序運(yùn)行的不同階段喂狗實(shí)現(xiàn)方法不同在Boo1;Loader階段采用直接取反中 央處理器的GPI03 口寄存器值的方法;在Linux內(nèi)核1階段采用直接取反中央處理器 的GPI03 口寄存器值的方法;在Linux內(nèi)核2階段采用調(diào)用GPI0的驅(qū)動(dòng)的方法;在 Linux內(nèi)核3階段采用調(diào)用WATCHDOG驅(qū)動(dòng)的方法;在應(yīng)用程序運(yùn)行階段,采用調(diào)用 WATCHDOG驅(qū)動(dòng)的方法。這些方法的實(shí)質(zhì)都是使看門(mén)狗計(jì)數(shù)器清零,不產(chǎn)生復(fù)位信號(hào)。
      全文摘要
      嵌入式系統(tǒng)的全程喂狗方法涉及嵌入式系統(tǒng)的失效恢復(fù)方法,嵌入式系統(tǒng)看門(mén)狗電路設(shè)計(jì)和從設(shè)備啟動(dòng)階段到程序運(yùn)行階段的看門(mén)狗喂狗策略,即硬件看門(mén)狗器件IMP706的WDI口與中央處理器(CPU)U0的GPIO3口相連,在BootLoader階段、內(nèi)核1階段、內(nèi)核2階段、內(nèi)核3階段、程序運(yùn)行階段都插入喂狗程序進(jìn)行喂狗動(dòng)作,這些喂狗程序的運(yùn)行時(shí)間間隔為1秒。該方法可對(duì)嵌入式系統(tǒng)運(yùn)行的全過(guò)程進(jìn)行有效的失效恢復(fù),提高了系統(tǒng)可靠性。
      文檔編號(hào)G06F11/00GK101271414SQ200810024778
      公開(kāi)日2008年9月24日 申請(qǐng)日期2008年5月6日 優(yōu)先權(quán)日2008年5月6日
      發(fā)明者張長(zhǎng)順, 趙新榮, 陸永剛, 黃建元 申請(qǐng)人:江蘇東大金智建筑智能化系統(tǒng)工程有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1