国产精品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>

      在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法

      文檔序號(hào):6640345閱讀:263來源:國(guó)知局
      在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法
      【專利摘要】一種不增加硬件成本、不影響系統(tǒng)啟動(dòng)時(shí)間的可在系統(tǒng)啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法。包括如下步驟:1)在系統(tǒng)上電啟動(dòng)后,打開實(shí)時(shí)中斷,將系統(tǒng)的中斷模塊代碼和系統(tǒng)啟動(dòng)過程中“喂狗”方案代碼作為緊急加載部分預(yù)先加載到系統(tǒng)中;2)執(zhí)行緊急加載部分中的“喂狗”方案代碼,依靠打開的實(shí)時(shí)中斷,利用指定的定時(shí)器周期性的觸發(fā)實(shí)時(shí)中斷來完成“喂狗”;3)在“喂狗”函數(shù)中指定一個(gè)技術(shù)器來判斷該系統(tǒng)啟動(dòng)是否超時(shí),如果超時(shí)則不“喂狗”,由該硬件看門狗復(fù)位系統(tǒng)重新加載;4)啟動(dòng)完成后,在系統(tǒng)任務(wù)中解除所述的指定的定時(shí)器,將該硬件看門狗交于系統(tǒng)的軟件管理。其可解決系統(tǒng)啟動(dòng)過程中因?yàn)闊o法喂看門狗導(dǎo)致的系統(tǒng)啟動(dòng)失敗。
      【專利說明】在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種計(jì)算機(jī)操作系統(tǒng)的監(jiān)控方法,特別涉及一種嵌入式計(jì)算機(jī)操作系統(tǒng)在啟動(dòng)過程中的監(jiān)控方法。

      【背景技術(shù)】
      [0002]通常,在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的考慮,便產(chǎn)生了一種專門用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)的芯片,俗稱〃看門狗〃(英文稱watchdog)。
      [0003]看門狗分硬件看門狗和軟件看門狗。硬件看門狗是利用一個(gè)定時(shí)器電路,其定時(shí)輸出連接到電路的復(fù)位端,程序在一定時(shí)間范圍內(nèi)對(duì)定時(shí)器清零(俗稱“喂狗”),因此程序正常工作時(shí),定時(shí)器總不能溢出(以下稱定時(shí)器溢出為“狗叫”),也就不能產(chǎn)生復(fù)位信號(hào)。如果程序出現(xiàn)故障,不在定時(shí)周期內(nèi)復(fù)位看門狗(即對(duì)定時(shí)器清零),就使得看門狗定時(shí)器溢出產(chǎn)生復(fù)位信號(hào)并重啟系統(tǒng)。軟件看門狗原理上一樣,只是將硬件電路上的定時(shí)器用處理器的內(nèi)部定時(shí)器代替,這樣可以簡(jiǎn)化硬件電路設(shè)計(jì)。
      [0004]在現(xiàn)有技術(shù)的嵌入式計(jì)算機(jī)操作系統(tǒng)中,通常在系統(tǒng)上電啟動(dòng)時(shí),看門狗也就被啟動(dòng),而在系統(tǒng)啟動(dòng)加載過程中如何“喂狗”,有如下幾種方法:
      [0005]1)在啟動(dòng)過程中“喂狗”:即在系統(tǒng)啟動(dòng)過程的加載代碼中添加“喂狗”代碼,該方法雖然可以避免在系統(tǒng)啟動(dòng)過程中因?yàn)榭撮T狗“狗叫”導(dǎo)致系統(tǒng)復(fù)位引起系統(tǒng)加載不成功,但是在加載代碼中插入較多的“喂狗”代碼會(huì)使系統(tǒng)加載代碼繁多雜亂,由此,會(huì)導(dǎo)致啟動(dòng)速度緩慢。當(dāng)操作系統(tǒng)為不開源加載代碼的操作系統(tǒng)時(shí),該方法不可使用。
      [0006]2)推遲啟動(dòng)看門狗:即在系統(tǒng)的啟動(dòng)過程中,關(guān)閉看門狗,當(dāng)系統(tǒng)啟動(dòng)完成后再啟動(dòng)看門狗,再由軟件來管理看門狗。該方法對(duì)于啟動(dòng)加載時(shí)間較短的系統(tǒng)而言確實(shí)有一定效果,但是當(dāng)操作系統(tǒng)在加載的過程中出錯(cuò)(即操作系統(tǒng)加載失敗)時(shí),由于看門狗處于關(guān)閉狀態(tài)而無法對(duì)該操作系統(tǒng)進(jìn)行監(jiān)控復(fù)位,導(dǎo)致系統(tǒng)死機(jī)。另外,使所設(shè)的看門狗資源派不上用場(chǎng),導(dǎo)致浪費(fèi)。
      [0007]3)啟動(dòng)過程中硬件“喂狗”:在系統(tǒng)啟動(dòng)的過程中使用另外設(shè)置的硬件看門狗,將“喂狗”任務(wù)交由該硬件看門狗完成。若系統(tǒng)啟動(dòng)完成,則通知該硬件看門狗不要“喂狗”,對(duì)操作系統(tǒng)的監(jiān)控交由系統(tǒng)中設(shè)置的軟件看門狗管理,此時(shí),硬件“喂狗”保持一定時(shí)限,到達(dá)預(yù)定時(shí)限。若系統(tǒng)還未啟動(dòng)成功就認(rèn)為系統(tǒng)啟動(dòng)失敗,由該硬件看門狗復(fù)位系統(tǒng)。該方法既可以解決系統(tǒng)在啟動(dòng)過程中“喂狗”的問題,又能使該看門狗起到對(duì)系統(tǒng)啟動(dòng)的監(jiān)視功能,但是其必須增加一個(gè)外設(shè)(即所述的硬件看門狗),這無疑會(huì)增加系統(tǒng)的成本;同時(shí),對(duì)于系統(tǒng)的軟復(fù)位而言,復(fù)位的可能僅僅是CPU而非外設(shè),導(dǎo)致系統(tǒng)的軟重啟又會(huì)進(jìn)入到原來的問題上:啟動(dòng)過程中無法“喂狗”導(dǎo)致啟動(dòng)失敗。


      【發(fā)明內(nèi)容】

      [0008]本發(fā)明要解決的技術(shù)問題是提供一種不增加硬件成本、不影響系統(tǒng)啟動(dòng)時(shí)間的可在系統(tǒng)啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法。
      [0009]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
      [0010]本發(fā)明的在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法,包括如下步驟:
      [0011]1)在系統(tǒng)上電啟動(dòng)后,打開實(shí)時(shí)中斷,將系統(tǒng)的中斷模塊代碼和系統(tǒng)啟動(dòng)過程中“喂狗”方案代碼作為緊急加載部分預(yù)先加載到系統(tǒng)中;
      [0012]2)在系統(tǒng)啟動(dòng)過程中執(zhí)行所述緊急加載部分中的“喂狗”方案代碼,依靠打開的實(shí)時(shí)中斷,利用指定的定時(shí)器周期性的觸發(fā)實(shí)時(shí)中斷來完成“喂狗”;
      [0013]3)在“喂狗”函數(shù)中指定一個(gè)技術(shù)器來判斷該系統(tǒng)啟動(dòng)是否超時(shí),如果超時(shí)則不“喂狗”,由該硬件看門狗復(fù)位系統(tǒng)重新加載;
      [0014]4)系統(tǒng)正常啟動(dòng)完成后,在系統(tǒng)任務(wù)中解除所述的指定的定時(shí)器,將該硬件看門狗交于系統(tǒng)的軟件管理。
      [0015]所述中斷模塊代碼由編譯器的編譯和鏈接器的鏈接并經(jīng)操作系統(tǒng)引導(dǎo)程序加載到鏈接指定的運(yùn)行地址,該運(yùn)行地址存儲(chǔ)在記憶性的存儲(chǔ)介質(zhì)中。
      [0016]在操作系統(tǒng)引導(dǎo)程序的引導(dǎo)過程中,優(yōu)先加載中斷管理和需要提前執(zhí)行的代碼,然后進(jìn)行中斷管理模塊的初始化以及硬件定時(shí)器初始化,并將硬件定時(shí)器的中斷服務(wù)函數(shù)設(shè)置為復(fù)位硬件看門狗。
      [0017]與現(xiàn)有技術(shù)相比,解決系統(tǒng)啟動(dòng)過程中因?yàn)闊o法喂看門狗導(dǎo)致的因?yàn)榭撮T狗的狗叫導(dǎo)致系統(tǒng)啟動(dòng)失敗,同時(shí)避免更改系統(tǒng)的加載代碼,實(shí)現(xiàn)簡(jiǎn)單。該方法實(shí)現(xiàn)簡(jiǎn)單,看門狗的模塊代碼可以單獨(dú)作為一個(gè)模塊編譯,簡(jiǎn)化了代碼布局的難度,對(duì)源代碼依賴性小,可以單獨(dú)編譯;該方案在沒有增加硬件的前提下,實(shí)現(xiàn)了看門狗對(duì)系統(tǒng)啟動(dòng)的整個(gè)過程的監(jiān)視,在一定程度上節(jié)約了成本。

      【專利附圖】

      【附圖說明】
      [0018]圖1為本發(fā)明方法的流程圖。
      [0019]圖2為本發(fā)明方法中普通中斷和實(shí)時(shí)中斷關(guān)系示意圖。

      【具體實(shí)施方式】
      [0020]如圖1所示,本發(fā)明的在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法是采用在啟動(dòng)過程中啟動(dòng)硬件定時(shí)器,在硬件定時(shí)器的中斷服務(wù)函數(shù)中實(shí)現(xiàn)我們的硬件看門狗的復(fù)位(讀寫某個(gè)硬件寄存器或者10端口),而傳統(tǒng)OS啟動(dòng)過程中一般都是禁止中斷發(fā)生。因此實(shí)現(xiàn)的難點(diǎn)和關(guān)鍵就在于:如何在系統(tǒng)啟動(dòng)過程中實(shí)現(xiàn)硬件定時(shí)器啟動(dòng)而又不破壞系統(tǒng)的整個(gè)OS的啟動(dòng)過程。首先我們重新構(gòu)造我們的中斷管理模塊,中斷分為實(shí)時(shí)中斷和普通中斷(如圖2所示),普通中斷即為傳統(tǒng)OS的中斷模塊,而實(shí)時(shí)中斷則為緊急處理中斷,是可以打斷普通中斷的。整個(gè)中斷管理模塊如圖2所示。因此配置硬件定時(shí)器為實(shí)時(shí)中斷,在啟動(dòng)過程中關(guān)閉普通中斷總開關(guān)而打開中斷總開關(guān),可以讓硬件定時(shí)器中斷可以產(chǎn)生定時(shí)中斷,從而實(shí)現(xiàn)在定時(shí)器中斷呢函數(shù)中復(fù)位看門狗,避免啟動(dòng)過程中看門狗復(fù)位系統(tǒng)導(dǎo)致不斷的系統(tǒng)重啟。其次,在硬件看門狗的中斷服務(wù)函數(shù)中,記錄復(fù)位硬件看門狗的次數(shù),超過指定次數(shù)就不再?gòu)?fù)位硬件看門狗,該指定次數(shù)根據(jù)系統(tǒng)正常加載和啟動(dòng)時(shí)間來決定,當(dāng)系統(tǒng)在加載和啟動(dòng)過程中出現(xiàn)意外導(dǎo)致不能正常啟動(dòng)時(shí),由于超過指定的復(fù)位看門狗次數(shù)導(dǎo)致不再?gòu)?fù)位看門狗,從而由硬件看門狗進(jìn)行復(fù)位系統(tǒng)并重新啟動(dòng)。再次,關(guān)于中斷管理我們使用實(shí)時(shí)中斷這段代碼必須提前加載到指定的運(yùn)行時(shí)地址并執(zhí)行。代碼在經(jīng)過編譯器的編譯和鏈接器的鏈接之后才成為真正的可執(zhí)行代碼,但是這部分可執(zhí)行代碼一般的存儲(chǔ)在記憶性的存儲(chǔ)介質(zhì)中,必須加載到鏈接指定的運(yùn)行時(shí)地址上才可以正確運(yùn)行,而這部分工作通常由引導(dǎo)程序完成。為了保證中斷管理模塊以及使用實(shí)時(shí)中斷的硬件定時(shí)器代碼能夠提前加載并運(yùn)行,必須在鏈接的時(shí)候通過腳本文件配置該部分代碼到指定的位置。最后,在引導(dǎo)程序中,優(yōu)先加載中斷管理和需要提前執(zhí)行的代碼(硬件定時(shí)器的初始化和中斷服務(wù)函數(shù)),然后進(jìn)行中斷管理模塊的初始化以及硬件定時(shí)器初始化,并將硬件定時(shí)器的中斷服務(wù)函數(shù)設(shè)置為復(fù)位硬件看門狗,完成之后再繼續(xù)進(jìn)行系統(tǒng)的加載和系統(tǒng)的啟動(dòng)。當(dāng)系統(tǒng)正常啟動(dòng)后,則由需要監(jiān)視的任務(wù)來接管看門狗的復(fù)位工作。上述方法能夠在系統(tǒng)啟動(dòng)過程中,不需要專門的硬件來復(fù)位看門狗,也不需要再系統(tǒng)代碼中等時(shí)間間隔的插入復(fù)位看門狗的代碼,就可以實(shí)現(xiàn)硬件看門狗對(duì)系統(tǒng)啟動(dòng)過程的監(jiān)視。
      [0021]本發(fā)明的方法采用在系統(tǒng)啟動(dòng)過程中,打開實(shí)時(shí)中斷(一種高優(yōu)先級(jí)中斷),通過將中斷等部分代碼[(包括系統(tǒng)啟動(dòng)過程中“喂狗”代碼,該處的“喂狗”代碼指的是實(shí)時(shí)中斷(定時(shí)器觸發(fā))中的喂狗,該喂狗方案就是我們要提出的一種針對(duì)OS啟動(dòng)過程中缺少監(jiān)控提出的一種方案,現(xiàn)有技術(shù)是直接關(guān)閉看門狗,該處我們采用打開看門狗,采用一個(gè)實(shí)時(shí)中斷來控制喂狗)]提前加載進(jìn)去,這樣完成了基本的緊急加載(完成系統(tǒng)運(yùn)行的基本硬件環(huán)境的初始化以及系統(tǒng)運(yùn)行前所必須進(jìn)行的操作,這部分程序掌控著系統(tǒng)啟動(dòng)前硬件的狀態(tài))以后,就可以使用系統(tǒng)的實(shí)時(shí)中斷了。啟動(dòng)過程中“喂狗”的代碼即依靠打開的實(shí)時(shí)中斷,利用特定定時(shí)器的固定間隔觸發(fā)的實(shí)時(shí)中斷來完成“喂狗”,這樣就可以實(shí)現(xiàn)在啟動(dòng)過程中的“喂狗”,由于緊急加載的代碼也屬于系統(tǒng)一部分,因此系統(tǒng)重啟時(shí)必然會(huì)執(zhí)行這一部分,因此系統(tǒng)的啟動(dòng)不論是軟重啟還是硬重啟都可以完全實(shí)現(xiàn)喂看門狗;同時(shí)在定時(shí)器的中斷服務(wù)函數(shù)中可以設(shè)定一個(gè)看門狗“喂狗”計(jì)數(shù)器,通過計(jì)數(shù)來判斷系統(tǒng)啟動(dòng)是否超時(shí)來決定是否繼續(xù)“喂狗”,這樣就可以監(jiān)視系統(tǒng)的啟動(dòng)是否正常,發(fā)揮看門狗的功效。當(dāng)系統(tǒng)成功啟動(dòng)后,解除指定的定時(shí)器“喂狗”動(dòng)作即可。
      [0022]在系統(tǒng)上電啟動(dòng)后,將系統(tǒng)的中斷模塊代碼和系統(tǒng)啟動(dòng)過程中“喂狗”方案代碼作為預(yù)加載部分率先加載到系統(tǒng)中,然后執(zhí)行啟動(dòng)過程中“喂狗”方案代碼,使用指定的定時(shí)器周期性的觸發(fā)中斷來“喂狗”,在此“喂狗”函數(shù)中通過一個(gè)技術(shù)器來判斷該系統(tǒng)啟動(dòng)是否超時(shí),如果超時(shí)則不“喂狗”,則導(dǎo)致硬件看門狗復(fù)位系統(tǒng)重新加載,以監(jiān)視系統(tǒng)啟動(dòng)正常與否。同時(shí),正常啟動(dòng)的系統(tǒng)能夠在啟動(dòng)過程中周期的“喂狗”,避免硬件狗復(fù)位引起的系統(tǒng)啟動(dòng)失敗。在系統(tǒng)正常啟動(dòng)后,在系統(tǒng)任務(wù)中解除指定的定時(shí)器“喂狗”,將硬件看門狗移交給系統(tǒng)的軟件來管理,以保證不會(huì)影響系統(tǒng)的任何運(yùn)行。當(dāng)系統(tǒng)重啟時(shí),相當(dāng)于從頭到尾的再次執(zhí)行,因此可以保證能夠在看門狗的監(jiān)視下正常啟動(dòng)。
      【權(quán)利要求】
      1.一種在啟動(dòng)過程中監(jiān)控計(jì)算機(jī)操作系統(tǒng)的方法,其特征在于:包括如下步驟: 1)在系統(tǒng)上電啟動(dòng)后,打開實(shí)時(shí)中斷,將系統(tǒng)的中斷模塊代碼和系統(tǒng)啟動(dòng)過程中“喂狗”方案代碼作為緊急加載部分預(yù)先加載到系統(tǒng)中; 2)在系統(tǒng)啟動(dòng)過程中執(zhí)行所述緊急加載部分中的“喂狗”方案代碼,依靠打開的實(shí)時(shí)中斷,利用指定的定時(shí)器周期性的觸發(fā)實(shí)時(shí)中斷來完成“喂狗”; 3)在“喂狗”函數(shù)中指定一個(gè)技術(shù)器來判斷該系統(tǒng)啟動(dòng)是否超時(shí),如果超時(shí)則不“喂狗”,由該硬件看門狗復(fù)位系統(tǒng)重新加載; 4)系統(tǒng)正常啟動(dòng)完成后,在系統(tǒng)任務(wù)中解除所述的指定的定時(shí)器,將該硬件看門狗交于系統(tǒng)的軟件管理。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述中斷模塊代碼由編譯器的編譯和鏈接器的鏈接并經(jīng)操作系統(tǒng)引導(dǎo)程序加載到鏈接指定的運(yùn)行地址,該運(yùn)行地址存儲(chǔ)在記憶性的存儲(chǔ)介質(zhì)中。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于:在操作系統(tǒng)引導(dǎo)程序的引導(dǎo)過程中,優(yōu)先加載中斷管理和需要提前執(zhí)行的代碼,然后進(jìn)行中斷管理模塊的初始化以及硬件定時(shí)器初始化,并將硬件定時(shí)器的中斷服務(wù)函數(shù)設(shè)置為復(fù)位硬件看門狗。
      【文檔編號(hào)】G06F11/07GK104503859SQ201410834749
      【公開日】2015年4月8日 申請(qǐng)日期:2014年12月29日 優(yōu)先權(quán)日:2014年12月29日
      【發(fā)明者】陳遠(yuǎn)生, 羅侍田, 羅來峰, 張前福, 孔德深, 林超, 范東凱, 朱海兵 申請(qǐng)人:長(zhǎng)園深瑞繼保自動(dòng)化有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1