亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

<code id="bt2jf"><form id="bt2jf"><noframes id="bt2jf"><i id="bt2jf"></i>
<rp id="bt2jf"><dl id="bt2jf"></dl></rp>
  • <i id="bt2jf"><form id="bt2jf"><noframes id="bt2jf">

    嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法和系統(tǒng)的制作方法

    文檔序號(hào):9787265閱讀:1180來(lái)源:國(guó)知局
    嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法和系統(tǒng)的制作方法
    【技術(shù)領(lǐng)域】
    [0001]本發(fā)明涉及故障檢測(cè)技術(shù)領(lǐng)域,特別是涉及一種嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法和系統(tǒng)。
    【背景技術(shù)】
    [0002]嵌入式軟件就是嵌入在硬件中的操作系統(tǒng)和開(kāi)發(fā)工具軟件,它在產(chǎn)業(yè)中的關(guān)聯(lián)關(guān)系體現(xiàn)為:芯片設(shè)計(jì)制造—嵌入式系統(tǒng)軟件—嵌入式電子設(shè)備開(kāi)發(fā)、制造。嵌入式軟件廣泛應(yīng)用于國(guó)防、工控、家用、商用、辦公、醫(yī)療等領(lǐng)域。
    [0003]傳統(tǒng)的嵌入式軟件故障檢測(cè)及恢復(fù)方法,一般是在某個(gè)循環(huán)程序或中斷程序中周期性的進(jìn)行“喂狗”操作,當(dāng)軟件系統(tǒng)出現(xiàn)故障,超過(guò)一定時(shí)間沒(méi)有“喂狗”時(shí),硬件看門(mén)狗啟動(dòng),對(duì)CPU進(jìn)行復(fù)位,軟件系統(tǒng)重新運(yùn)行。而在實(shí)時(shí)多任務(wù)系統(tǒng)中,各任務(wù)程序獨(dú)立完成不同的功能,當(dāng)系統(tǒng)中任何一個(gè)任務(wù)運(yùn)行出現(xiàn)故障時(shí),都會(huì)引起整個(gè)軟件系統(tǒng)重新啟動(dòng),可能會(huì)帶來(lái)嚴(yán)重后果。此外,當(dāng)軟件系統(tǒng)某一功能模塊出現(xiàn)故障時(shí),只要硬件看門(mén)狗的“喂狗”程序可以正常運(yùn)行,軟件系統(tǒng)就不會(huì)重啟,這時(shí)軟件系統(tǒng)就處于帶病運(yùn)行狀態(tài),會(huì)導(dǎo)致某些功能失效或其它意想不到的后果。傳統(tǒng)的嵌入式軟件故障檢測(cè)及恢復(fù)方法存在可靠性低的缺點(diǎn)。

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

    [0004]基于此,有必要針對(duì)上述問(wèn)題,提供一種可靠性高的嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法和系統(tǒng)。
    [0005]—種嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法,包括以下步驟:
    [0006]實(shí)時(shí)對(duì)嵌入式軟件系統(tǒng)的多個(gè)應(yīng)用任務(wù)進(jìn)行監(jiān)控,檢測(cè)是否存在應(yīng)用任務(wù)出現(xiàn)故障;
    [0007]若是,則對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟;
    [0008]檢測(cè)所述嵌入式軟件系統(tǒng)是否出現(xiàn)任務(wù)調(diào)度故障;
    [0009]在檢測(cè)到所述嵌入式軟件系統(tǒng)出現(xiàn)任務(wù)調(diào)度故障時(shí),對(duì)所述嵌入式軟件系統(tǒng)進(jìn)行故障恢復(fù)。
    [0010]一種嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)系統(tǒng),包括:
    [0011]任務(wù)監(jiān)控模塊,用于實(shí)時(shí)對(duì)嵌入式軟件系統(tǒng)的多個(gè)應(yīng)用任務(wù)進(jìn)行監(jiān)控,檢測(cè)是否存在應(yīng)用任務(wù)出現(xiàn)故障;
    [0012]任務(wù)重啟模塊,用于在應(yīng)用任務(wù)出現(xiàn)故障時(shí),對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟;
    [0013]調(diào)度檢測(cè)模塊,用于檢測(cè)所述嵌入式軟件系統(tǒng)是否出現(xiàn)任務(wù)調(diào)度故障;
    [0014]故障恢復(fù)模塊,用于在檢測(cè)到所述嵌入式軟件系統(tǒng)出現(xiàn)任務(wù)調(diào)度故障時(shí),對(duì)所述嵌入式軟件系統(tǒng)進(jìn)行故障恢復(fù)。
    [0015]上述嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法和系統(tǒng),實(shí)時(shí)對(duì)嵌入式軟件系統(tǒng)的多個(gè)應(yīng)用任務(wù)進(jìn)行監(jiān)控,檢測(cè)是否存在應(yīng)用任務(wù)出現(xiàn)故障,并對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟。檢測(cè)嵌入式軟件系統(tǒng)是否出現(xiàn)任務(wù)調(diào)度故障,并在檢測(cè)到嵌入式軟件系統(tǒng)出現(xiàn)任務(wù)調(diào)度故障時(shí),對(duì)嵌入式軟件系統(tǒng)進(jìn)行故障恢復(fù)。通過(guò)實(shí)時(shí)監(jiān)控嵌入式軟件系統(tǒng)的各應(yīng)用任務(wù)的運(yùn)行情況,當(dāng)檢測(cè)到某一應(yīng)用任務(wù)出現(xiàn)故障時(shí)重啟應(yīng)用任務(wù)來(lái)恢復(fù)軟件系統(tǒng)到正常狀態(tài)運(yùn)行。檢測(cè)嵌入式軟件系統(tǒng)的任務(wù)調(diào)度是否失效,若任務(wù)調(diào)度失效則對(duì)嵌入式軟件系統(tǒng)進(jìn)行故障恢復(fù),以達(dá)到軟件系統(tǒng)整體恢復(fù)的目的。不僅可以檢測(cè)出實(shí)時(shí)多任務(wù)系統(tǒng)中的局部軟件故障和整體的軟件系統(tǒng)故障,并且在軟件系統(tǒng)出現(xiàn)故障時(shí)可以自動(dòng)恢復(fù)軟件系統(tǒng)到正常運(yùn)行狀態(tài),實(shí)現(xiàn)了有選擇性的軟件故障檢測(cè)和恢復(fù),檢測(cè)范圍更全面、無(wú)死角,且簡(jiǎn)單可靠。
    【附圖說(shuō)明】
    [0016]圖1為一實(shí)施例中嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法的流程圖;
    [0017]圖2為另一實(shí)施例中嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法的流程圖;
    [0018]圖3為一實(shí)施例中嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)系統(tǒng)的結(jié)構(gòu)圖;
    [0019]圖4為另一實(shí)施例中嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)系統(tǒng)的結(jié)構(gòu)圖。
    【具體實(shí)施方式】
    [0020]一種嵌入式軟件系統(tǒng)故障檢測(cè)恢復(fù)方法,適用于對(duì)實(shí)時(shí)多任務(wù)嵌入式軟件系統(tǒng)進(jìn)行故障檢測(cè)和恢復(fù)。如圖1所示,上述方法包括以下步驟:
    [0021]步驟S120:實(shí)時(shí)對(duì)嵌入式軟件系統(tǒng)的多個(gè)應(yīng)用任務(wù)進(jìn)行監(jiān)控,檢測(cè)是否存在應(yīng)用任務(wù)出現(xiàn)故障。實(shí)時(shí)對(duì)嵌入式軟件系統(tǒng)的各應(yīng)用任務(wù)進(jìn)行檢測(cè),監(jiān)控各應(yīng)用任務(wù)的運(yùn)行情況,當(dāng)實(shí)時(shí)多任務(wù)系統(tǒng)中的某一應(yīng)用任務(wù)未在設(shè)定時(shí)間內(nèi)作出反應(yīng)時(shí),則可判定為此應(yīng)用任務(wù)運(yùn)行出現(xiàn)故障。若檢測(cè)到應(yīng)用任務(wù)出現(xiàn)故障,則進(jìn)行步驟S130;若否,可返回步驟S120,繼續(xù)對(duì)應(yīng)用任務(wù)進(jìn)行監(jiān)控,也可直接進(jìn)行步驟S140,進(jìn)行任務(wù)調(diào)度故障檢測(cè)。本實(shí)施例中在步驟S120未檢測(cè)到應(yīng)用任務(wù)出現(xiàn)故障時(shí)進(jìn)行步驟S140。在其中一個(gè)實(shí)施例中,具體可通過(guò)軟件看門(mén)狗模塊對(duì)應(yīng)用任務(wù)進(jìn)行監(jiān)控。步驟SI 20包括步驟122和步驟124。
    [0022]步驟122:通過(guò)嵌入式軟件系統(tǒng)的實(shí)時(shí)多任務(wù)系統(tǒng)中預(yù)設(shè)的監(jiān)控任務(wù),實(shí)時(shí)接收實(shí)時(shí)多任務(wù)系統(tǒng)中各應(yīng)用任務(wù)發(fā)送的軟件喂狗信號(hào)。可預(yù)先在實(shí)時(shí)多任務(wù)系統(tǒng)中建立一個(gè)運(yùn)行優(yōu)先級(jí)最高的任務(wù)作為監(jiān)控任務(wù),通過(guò)監(jiān)控任務(wù)對(duì)各應(yīng)用任務(wù)進(jìn)行監(jiān)控,實(shí)時(shí)接收各應(yīng)用任務(wù)發(fā)送的軟件喂狗信號(hào)。
    [0023]具體以對(duì)DMP300C保護(hù)測(cè)控裝置的軟件系統(tǒng)進(jìn)行故障檢測(cè)和恢復(fù)為例,軟件系統(tǒng)的調(diào)度器采用實(shí)時(shí)內(nèi)核對(duì)各應(yīng)用任務(wù)進(jìn)行調(diào)度。應(yīng)用任務(wù)在程序初始化后申請(qǐng)全局資源,包括內(nèi)存、文件等。應(yīng)用任務(wù)調(diào)用軟件看門(mén)狗模塊的ResetTaskWtd函數(shù)復(fù)位軟件看門(mén)狗模塊的定時(shí)計(jì)數(shù)器,持續(xù)發(fā)送軟件喂狗信號(hào)至軟件看門(mén)狗模塊進(jìn)行“喂狗”,同時(shí)應(yīng)用任務(wù)執(zhí)行相應(yīng)的功能流程。
    [0024]步驟124:通過(guò)監(jiān)控任務(wù)提取在預(yù)設(shè)時(shí)間內(nèi)未發(fā)出軟件喂狗信號(hào)的應(yīng)用任務(wù)作為出現(xiàn)故障的應(yīng)用任務(wù)。預(yù)設(shè)時(shí)間的具體取值范圍可根據(jù)實(shí)際情況調(diào)整,監(jiān)控任務(wù)每10ms周期性的檢測(cè)各應(yīng)用任務(wù)是否在預(yù)設(shè)時(shí)間內(nèi)調(diào)用了 TerminateTask函數(shù)對(duì)軟件看門(mén)狗進(jìn)行了復(fù)位,如果應(yīng)用任務(wù)超出預(yù)設(shè)時(shí)間沒(méi)有及時(shí)調(diào)用TerminateTask函數(shù),則認(rèn)為此應(yīng)用任務(wù)出現(xiàn)故障。
    [0025]步驟S130:對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟。若檢測(cè)到應(yīng)用任務(wù)出現(xiàn)故障,則通過(guò)軟件看門(mén)狗模塊對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟,來(lái)恢復(fù)軟件系統(tǒng)到正常狀態(tài)運(yùn)行。在其中一個(gè)實(shí)施例中,步驟SI30包括132至步驟136。
    [0026]步驟132:通過(guò)監(jiān)控任務(wù)釋放出現(xiàn)故障的應(yīng)用任務(wù)所占資源。具體可調(diào)用出現(xiàn)超時(shí)的應(yīng)用任務(wù)的TerminateTask回調(diào)函數(shù),釋放應(yīng)用任務(wù)占用的資源。
    [0027]步驟I34:通過(guò)監(jiān)控任務(wù)刪除出現(xiàn)故障的應(yīng)用任務(wù)。具體可調(diào)用實(shí)時(shí)內(nèi)核的TaskDel函數(shù)刪除超時(shí)的應(yīng)用任務(wù)。
    [0028]步驟136:通過(guò)監(jiān)控任務(wù)重新創(chuàng)建出現(xiàn)故障的應(yīng)用任務(wù)。具體可調(diào)用實(shí)時(shí)內(nèi)核的TaskCreate函數(shù)重新創(chuàng)建出現(xiàn)超時(shí)的應(yīng)用任務(wù)。
    [0029]通過(guò)軟件看門(mén)狗模塊對(duì)應(yīng)用任務(wù)監(jiān)控,并對(duì)檢測(cè)到出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟,以達(dá)到有選擇性的恢復(fù)局部故障的目的。
    [0030]步驟S140:檢測(cè)嵌入式軟件系統(tǒng)是否出現(xiàn)任務(wù)調(diào)度故障。當(dāng)軟件系統(tǒng)故障較嚴(yán)重時(shí),可能會(huì)使實(shí)時(shí)操作系統(tǒng)內(nèi)核的任務(wù)調(diào)度失效,即出現(xiàn)任務(wù)調(diào)度故障,導(dǎo)致整個(gè)軟件系統(tǒng)停止運(yùn)行。若未檢測(cè)到應(yīng)用任務(wù),或者對(duì)出現(xiàn)故障的應(yīng)用任務(wù)進(jìn)行重啟之后,對(duì)嵌入式軟件系統(tǒng)進(jìn)行任務(wù)調(diào)度故障檢測(cè),判斷是否存在整體軟件系統(tǒng)故障。
    [0031]具體地,任務(wù)調(diào)度故障可包括兩種情況:1、監(jiān)控任務(wù)得不到執(zhí)行,在檢測(cè)到應(yīng)用任務(wù)出現(xiàn)故障時(shí)無(wú)法對(duì)應(yīng)用任務(wù)進(jìn)行重啟。2、監(jiān)控任務(wù)在運(yùn)行但應(yīng)用任務(wù)得不到執(zhí)行,這種情況下監(jiān)控任務(wù)會(huì)檢測(cè)出其它應(yīng)用任務(wù)出現(xiàn)運(yùn)行超時(shí)的情況,并對(duì)其它應(yīng)用任務(wù)進(jìn)行重啟,嘗試恢復(fù)其它應(yīng)用任務(wù)的運(yùn)行,但此時(shí)因調(diào)度器已經(jīng)出現(xiàn)故障,其它應(yīng)用任務(wù)雖然重啟但是仍然分配不到CPU的執(zhí)行時(shí)間。
    [0032]對(duì)應(yīng)地,在其中一個(gè)實(shí)施例中,步驟S140包括步驟142和/或步驟144。
    [0033]步驟142:檢測(cè)在設(shè)定時(shí)間內(nèi)是否接收到監(jiān)控任務(wù)發(fā)送的硬件喂狗信號(hào);若否,則嵌入式軟件系統(tǒng)出現(xiàn)任務(wù)調(diào)度故障。設(shè)定時(shí)間的具體取值范圍同樣可根據(jù)實(shí)際情況調(diào)整,針對(duì)監(jiān)控任務(wù)得不到執(zhí)行這一情況,具體可通過(guò)硬件看門(mén)狗對(duì)監(jiān)控任務(wù)進(jìn)行監(jiān)控,使監(jiān)控任務(wù)定期對(duì)硬件看門(mén)狗裝置進(jìn)行“喂狗”操作,如果監(jiān)測(cè)任務(wù)未在設(shè)定時(shí)間內(nèi)發(fā)送硬件喂狗信號(hào),則說(shuō)明監(jiān)控任務(wù)本身沒(méi)有運(yùn)行,在檢測(cè)到應(yīng)用任務(wù)出現(xiàn)故障時(shí)無(wú)法對(duì)應(yīng)用任務(wù)進(jìn)行重啟。此時(shí)可認(rèn)為嵌入式軟件系統(tǒng)出現(xiàn)任務(wù)調(diào)度故
    當(dāng)前第1頁(yè)1 2 3 
    網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
    • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
    1