專利名稱:一種多任務(wù)系統(tǒng)監(jiān)控方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,特別設(shè)計一種多任務(wù)系統(tǒng)監(jiān)控方法及裝置。
背景技術(shù):
看門狗(WDT,Watchdog Timer)分硬件看門狗和軟件看門狗,硬件看門狗是利用一 個定時器電路,其定時輸出連接到電路的復(fù)位端,在系統(tǒng)運行以后也就啟動了看門狗的計 數(shù)器,看門狗就開始自動計數(shù),程序在定時周期對定時器清零,因此程序正常工作時,定時 器總不能溢出,也就不能產(chǎn)生復(fù)位信號,如果程序出現(xiàn)故障,不在定時周期內(nèi)復(fù)位看門狗, 就使得看門狗定時器溢出產(chǎn)生復(fù)位信號并重啟系統(tǒng),軟件看門狗原理上一樣,只是將硬件 電路上的定時器用處理器的內(nèi)部定時器代替,在單任務(wù)系統(tǒng)中看門狗工作原理如上所述, 容易實現(xiàn),在多任務(wù)系統(tǒng)中情況更為復(fù)雜,只要有一個任務(wù)正常工作并定期對定時器清零, 看門狗定時器就不會溢出,除非所有的任務(wù)都發(fā)生故障,才能使得看門狗定時器溢出而產(chǎn) 生復(fù)位信號并重啟系統(tǒng)?,F(xiàn)有技術(shù)中為了解決上述多任務(wù)系統(tǒng)監(jiān)控出現(xiàn)的問題,給每個任務(wù)設(shè)置一個軟件 模擬出來的看門狗計數(shù)器,然后定時查詢每一個軟件看門狗的喂狗情況,由此決定是否調(diào) 用喂狗指令,清零看門狗計數(shù)器,若發(fā)現(xiàn)有任何一個軟件看門狗溢出,則停止喂狗,讓系統(tǒng) 復(fù)位。以上技術(shù)方案,需要對每一個任務(wù)的看門狗計數(shù)器進行判斷,才能判斷出系統(tǒng)中 所有任務(wù)的運行情況是否正常,降低了多任務(wù)系統(tǒng)的監(jiān)控效率。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種多任務(wù)系統(tǒng)監(jiān)控方法及裝置,能夠提高多任務(wù)系統(tǒng)的監(jiān) 控效率。本發(fā)明實施例提供的多任務(wù)系統(tǒng)監(jiān)控方法包括設(shè)置任務(wù)啟動標志寄存器及任務(wù) 執(zhí)行標志寄存器;置位所述任務(wù)啟動標志寄存器及所述任務(wù)執(zhí)行標志寄存器,使得所述任 務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的初始標志位相同;當執(zhí)行主 任務(wù)時,獲取所述任務(wù)啟動標志寄存器的標志位及所述任務(wù)執(zhí)行標志寄存器的標志位;判 斷所述任務(wù)啟動標志寄存器的標志位與所述任務(wù)執(zhí)行標志寄存器的標志位是否相同,若相 同,則清零任務(wù)計數(shù)器,清零并重新置位所述任務(wù)執(zhí)行標志寄存器,若不相同,則復(fù)位系統(tǒng)。本發(fā)明實施例提供的多任務(wù)系統(tǒng)監(jiān)控裝置包括設(shè)置單元,用于設(shè)置任務(wù)啟動標 志寄存器及任務(wù)執(zhí)行標志寄存器;置位單元,用于置位所述任務(wù)啟動標志寄存器及所述任 務(wù)執(zhí)行標志寄存器,使得所述任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存 器的初始標志位相同;獲取單元,用于當執(zhí)行主任務(wù)時,獲取所述任務(wù)啟動標志寄存器的標 志位及所述任務(wù)執(zhí)行標志寄存器的標志位;判斷單元,用于判斷所述任務(wù)啟動標志寄存器 的標志位與所述任務(wù)執(zhí)行標志寄存器的標志位是否相同;清零單元,用于清零任務(wù)計數(shù)器, 以及清零任務(wù)執(zhí)行標志寄存器;復(fù)位單元,用于復(fù)位系統(tǒng)。
從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點本發(fā)明實施例中,在對多任務(wù)系統(tǒng)的監(jiān)控中,多任務(wù)系統(tǒng)中,設(shè)置任務(wù)啟動標志寄 存器及任務(wù)執(zhí)行標志寄存器,在寄存器中為所有任務(wù)設(shè)置任務(wù)啟動標志位及任務(wù)執(zhí)行標志 位,在任務(wù)啟動時,將任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置相同的標志位,當主任 務(wù)執(zhí)行過程中,獲取啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存器的標志位,判斷二者 是否相同,若相同則清零任務(wù)計數(shù)器,清零并重新置位任務(wù)執(zhí)行標志寄存器,若不同則復(fù)位 系統(tǒng),因而每次只需判斷一次,便可得知所有任務(wù)的運行情況并決定是否需要復(fù)位系統(tǒng),減 少了判斷時間,提高了判斷效率。
圖1為本發(fā)明實施例中多任務(wù)系統(tǒng)監(jiān)控方法的一個實施例;圖2為本發(fā)明實施例中多任務(wù)系統(tǒng)監(jiān)控方法的另一個實施例;圖3為本發(fā)明實施例中多任務(wù)系統(tǒng)監(jiān)控裝置的一個實施例。
具體實施例方式本發(fā)明實施例提供了一種多任務(wù)系統(tǒng)監(jiān)控方法,用于提高多任務(wù)系統(tǒng)的監(jiān)控效 率,本發(fā)明還提供了一種多任務(wù)系統(tǒng)監(jiān)控裝置,以下分別進行詳細說明。需要說明的是,本發(fā)明實施例中提供的方法及裝置,可以應(yīng)用在嵌入式操作系 統(tǒng)的看門狗監(jiān)控程序中,也可以應(yīng)用在需要看門狗定時器的所有嵌入式實時系統(tǒng)(RT0S, Real-time operating system)中,具體應(yīng)用范圍此處不作限定。請參閱圖1,本發(fā)明實施例中的多任務(wù)系統(tǒng)監(jiān)控方法包括101、設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;本發(fā)明實施例中,在一個多任務(wù)系統(tǒng)中,設(shè)置任務(wù)啟動標志寄存器以及任務(wù)執(zhí)行 標志寄存器,此兩種標志寄存器為全局變量的標志寄存器,優(yōu)選的,設(shè)置一個任務(wù)啟動標志 寄存器以及一個任務(wù)執(zhí)行標志寄存器,最能夠節(jié)省系統(tǒng)資源,任務(wù)啟動標志寄存器用于暫 存單項任務(wù)的啟動標志指令,任務(wù)執(zhí)行標志寄存器用于暫存單項任務(wù)的執(zhí)行指令,例如對 看門狗計數(shù)器清零的指令,即喂狗指令。需要說明的是,任務(wù)執(zhí)行標志寄存器可以用于暫存對看門狗計數(shù)器清零的指令, 也可以是其他單項任務(wù)的執(zhí)行指令,暫存指令的種類與實際應(yīng)用過程有關(guān),具體此處不作 限定。102、置位任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;當任一單項任務(wù)開始運行時,置位任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器, 使得任務(wù)啟動標志寄存器中所有單項任務(wù)的初始標志位與任務(wù)執(zhí)行標志寄存器的所有單 項任務(wù)的初始標志位相同,例如,將任務(wù)啟動標志寄存器中所有單項任務(wù)的初始標志位設(shè) 置為1,則任務(wù)執(zhí)行標志寄存器中所有單項任務(wù)的初始標志位也設(shè)置為1,具體的置位過 程,將在后續(xù)實施例中詳細說明。103、獲取任務(wù)啟動標志寄存器的標志位及任務(wù)執(zhí)行標志寄存器的標志位;在主任務(wù)執(zhí)行過程中,可以按預(yù)置時間定時獲取任務(wù)啟動標志寄存器中所有單項 任務(wù)的標志位及任務(wù)執(zhí)行標志寄存器中所有單項任務(wù)的標志位,具體預(yù)置時間與實際應(yīng)用過程有關(guān),此處不作限定。104、判斷任務(wù)啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存器的標志位是否相 同;步驟103獲取到任務(wù)啟動標志寄存器的標志位及所述任務(wù)執(zhí)行標志寄存器的標 志位后,判斷任務(wù)啟動標志寄存器與任務(wù)執(zhí)行標志寄器是否相同,即可判斷任務(wù)啟動標志 寄存器中所有單項任務(wù)的標志位與任務(wù)執(zhí)行標志寄存器中所有單項任務(wù)的標志位是否相 同,若相同,則執(zhí)行步驟105,若不相同,則執(zhí)行步驟106。例如,若任務(wù)啟動標志寄存器中所有單項任務(wù)的標志位為1,而任務(wù)執(zhí)行標志寄存 器中所有單項任務(wù)的標志位也為1,那么判斷結(jié)果是系統(tǒng)中的任務(wù)啟動標志寄存器的標志 位與任務(wù)執(zhí)行標志寄存器的標志位相同,進而執(zhí)行步驟105,若任務(wù)啟動標志寄存器中所有 單項任務(wù)的標志位為1,而任務(wù)執(zhí)行標志寄存器中有一個或幾個單項任務(wù)的標志位為0,那 么判斷結(jié)果是任務(wù)啟動標志寄存器中單項任務(wù)的標志位與任務(wù)執(zhí)行標志寄存器中單項任 務(wù)的標志位不同,進而執(zhí)行步驟106。105、清零任務(wù)計數(shù)器,清零并重新置位任務(wù)執(zhí)行標志寄存器;若步驟104中的判斷結(jié)果是,任務(wù)啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存 器的標志位相同,則認為系統(tǒng)各單項任務(wù)運行正常,可以對任務(wù)的看門狗計數(shù)器進行清零, 并清零各單項任務(wù)的任務(wù)執(zhí)行標志寄存器,然后重新對單項任務(wù)的任務(wù)執(zhí)行標志寄存器進 行置位,使得單項任務(wù)的任務(wù)執(zhí)行標志寄存器的標志位與任務(wù)啟動標志寄存器的標志位相 同。106、復(fù)位系統(tǒng)。若步驟104中的判斷結(jié)果是,一個或幾個單項任務(wù)的任務(wù)啟動標志寄存器的標志 位與任務(wù)執(zhí)行標志寄存器的標志位不同,則認為系統(tǒng)出現(xiàn)了故障,對系統(tǒng)進行復(fù)位,重啟系 統(tǒng)。本發(fā)明實施例中,在對多任務(wù)系統(tǒng)進行監(jiān)控時,設(shè)置任務(wù)啟動標志寄存器及任務(wù) 執(zhí)行標志寄存器,在寄存器中為所有任務(wù)設(shè)置任務(wù)啟動標志位及任務(wù)執(zhí)行標志位,在任務(wù) 啟動時,將任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置相同的標志位,當主任務(wù)執(zhí)行過 程中,獲取啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存器的標志位,判斷二者是否相同, 若相同則清零任務(wù)計數(shù)器,清零并重新置位任務(wù)執(zhí)行標志寄存器,若不同則復(fù)位系統(tǒng),因而 每次只需判斷一次,便可得知所有任務(wù)的運行情況并決定是否需要復(fù)位系統(tǒng),減少了判斷 時間,提高了判斷效率。。下面請參照圖2,本發(fā)明實施例中多任務(wù)系統(tǒng)監(jiān)控方法的另一個實施例包括201、設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;本發(fā)明實施例中,步驟201的內(nèi)容與前述圖1所示步驟101的內(nèi)容相同,此處不再贅述。202、根據(jù)任務(wù)優(yōu)先級置位啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;單項任務(wù)啟動時,在單項任務(wù)優(yōu)先級對應(yīng)的位置上置位任務(wù)啟動標志寄存器及任 務(wù)執(zhí)行標志寄存器,使得任務(wù)啟動標志寄存器的初始標志位與任務(wù)執(zhí)行標記寄存器的初始 標志位相同。具體的,各單項任務(wù)有各自的優(yōu)先級,假設(shè)系統(tǒng)中有6項任務(wù),任務(wù)1的優(yōu)先級為1,任務(wù)2的優(yōu)先級為2,以此類推,任務(wù)6的優(yōu)先級為6,那么根據(jù)各自的優(yōu)先級,該6項任 務(wù)的執(zhí)行順序為最先執(zhí)行任務(wù)1,然后執(zhí)行任務(wù)2,以此類推,最后執(zhí)行任務(wù)6。進一步的,在任務(wù)啟動標志寄存器中有多個位置可以用來設(shè)置各單項任務(wù)的標志 位,在任務(wù)執(zhí)行標志寄存器中也有多個位置可以用來設(shè)置各單項任務(wù)的標志位,假設(shè)對任 務(wù)5的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位,當任務(wù)5啟動時,置位任務(wù)啟 動標志寄存器中對應(yīng)任務(wù)5的標志位,即設(shè)置任務(wù)啟動標志寄存器的第5位標志位為1,那 么將任務(wù)執(zhí)行標志寄存器的第5位的標志位也設(shè)置為1,使得任務(wù)啟動標志寄存器與任務(wù) 執(zhí)行標志寄存器的置位相同,可以理解的,在后續(xù)的對標志寄存器清零時也是對寄存器的 第5位進行清零。需要說明的是,如果單項任務(wù)的優(yōu)先級比較高,當優(yōu)先級數(shù)高出了標志寄存器位 數(shù)的限制或其他不適合的情況,則可以根據(jù)具體情況進行相應(yīng)調(diào)整。203 206,與前述圖1所示實施例中的步驟103至106內(nèi)容相同,此處不再贅述。207、根據(jù)預(yù)置時間定時置位任務(wù)執(zhí)行標志寄存器;具體的,首先預(yù)置置位的時間,每次到達預(yù)置時間,對單項任務(wù)中的任務(wù)執(zhí)行標志 寄存器進行清零,并對任務(wù)執(zhí)行標志寄存器重新置位,以保證任務(wù)執(zhí)行標志寄存器的標志 位與單項任務(wù)中啟動標志寄存器的標志位相同。需要說明的是,預(yù)置的置位時間可以任意設(shè)置,但須保證在主任務(wù)的一個循環(huán)時 長內(nèi)有足夠的時間使所有單項任務(wù)完成置位,否則,若預(yù)置時間太短,則當主任務(wù)再次進行 判斷時,單項任務(wù)尚未置位任務(wù)執(zhí)行標志寄存器,導(dǎo)致主任務(wù)對單項任務(wù)的兩種寄存器標 志位判斷的結(jié)果出錯。例如,假設(shè)系統(tǒng)中有6個單項任務(wù),每個單項任務(wù)的定時置位時間為0. 5秒,主任 務(wù)一次循環(huán)時間為1. 5秒,則在主任務(wù)的一次循環(huán)過程中,每個單項任務(wù)至少能夠?qū)θ蝿?wù) 執(zhí)行標志寄存器進行兩次置位,保證任務(wù)執(zhí)行標志寄存器的標志位與單項任務(wù)中啟動標志 寄存器的標志位相同。需要進一步說明的是,預(yù)置的置位時間也不可以太短,過于頻繁的置位會造成系 統(tǒng)資源的浪費。208、清零或者不對任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位;當某個單項任務(wù)不能作看門狗監(jiān)控時,需要禁止對該單項任務(wù)進行看門狗監(jiān)控 時,那么如果該單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器尚未置位,則不對 該任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位,如果已經(jīng)對該單項任務(wù)的任務(wù)啟 動標志寄存器及任務(wù)執(zhí)行標志寄存器置位,則將任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存 器進行清零。需要說明的是,禁止該單項任務(wù)進行看門狗監(jiān)控可以是暫時的,后續(xù)可以恢復(fù)看 門狗功能,也可以是永久的,終止看門狗功能,具體的禁止方式與實際應(yīng)用有關(guān),此處不作 限定。209、查詢發(fā)生故障的單項任務(wù)并對該單項任務(wù)進行處理。當系統(tǒng)中有單項任務(wù)的任務(wù)啟動標志寄存器與該單項任務(wù)的任務(wù)執(zhí)行標志寄存 器的標志位不同時,可查詢到發(fā)生故障的該單項任務(wù),并對該單項任務(wù)進行相應(yīng)的處理,如 查找故障原因或重啟該單項任務(wù)。
7
需要說明的是,查詢發(fā)生故障的單項任務(wù)的具體方式,可由現(xiàn)有技術(shù)實現(xiàn),具體此 處不作限定。本發(fā)明實施例中,根據(jù)任務(wù)優(yōu)先級置位啟動標志寄存器及任務(wù)執(zhí)行標志寄存器, 能夠減少寄存器設(shè)置,節(jié)約系統(tǒng)資源,根據(jù)預(yù)置時間定時置位任務(wù)執(zhí)行標志寄存器,并對任 務(wù)執(zhí)行標志寄存器重新置位,保證在主任務(wù)再次進行判斷時,對單項任務(wù)的任務(wù)啟動標志 寄存器及任務(wù)執(zhí)行標志寄存器進行正確判斷,且不會因頻繁置位而造成系統(tǒng)資源的浪費, 當某個單項任務(wù)計數(shù)器不能作看門狗而對系統(tǒng)進行監(jiān)控時,暫時或永久禁止該單項任務(wù)進 行看門狗監(jiān)控,不會影響系統(tǒng)其他部分的運行。下面對本發(fā)明實施例中的多任務(wù)系統(tǒng)監(jiān)控裝置進行描述,請參閱圖3,本發(fā)明實施 例中的多任務(wù)系統(tǒng)監(jiān)控裝置包括設(shè)置單元301,用于設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;置位單元302,用于置位任務(wù)執(zhí)行標志寄存器,使得任務(wù)執(zhí)行標志寄存器的標志位 與任務(wù)啟動標志寄存器的標志位相同;獲取單元303,用于當執(zhí)行主任務(wù)時,獲取任務(wù)啟動標志寄存器的標志位及任務(wù)執(zhí) 行標志寄存器的標志位;判斷單元304,用于判斷任務(wù)啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存器的 標志位是否相同;清零單元305,用于清零任務(wù)計數(shù)器及任務(wù)執(zhí)行標志寄存器,以及用于若需要禁止 對單項任務(wù)計數(shù)器進行清零,則當已對單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄 存器置位時,將單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行清零;復(fù)位單元306,用于復(fù)位系統(tǒng)。本實施例中,多任務(wù)系統(tǒng)監(jiān)控裝置還可以包括查詢單元307,用于查詢發(fā)生故障的單項任務(wù);處理單元308,用于對發(fā)生故障的單項任務(wù)進行處理。為便于理解,下面以一具體應(yīng)用場景對本實施例中多任務(wù)系統(tǒng)監(jiān)控裝置的各單元 之間的聯(lián)系進行說明首先,設(shè)置單元301在多任務(wù)系統(tǒng)中設(shè)置全局變量的任務(wù)啟動標志寄存器及任務(wù) 執(zhí)行標志寄存器,置位單元302對任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位, 使得任務(wù)啟動標志寄存器的初始標志位與任務(wù)執(zhí)行標志寄存器的初始標志位相同,置位單 元302可以根據(jù)各任務(wù)優(yōu)先級對任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置位。需要說明的是,置位單元302所執(zhí)行的具體置位功能可以與前述圖2所示的實施 例中的步驟202的內(nèi)容相同,此處不再贅述。當主任務(wù)開始執(zhí)行時,獲取單元303定時獲取任務(wù)中任務(wù)啟動標志寄存器中所有 單項任務(wù)的標志位及任務(wù)執(zhí)行標志寄存器中所有單項任務(wù)的標志位,判斷單元304判斷此 兩種標志位是否相同,若標志位相同,則認為系統(tǒng)各單項任務(wù)運行正常,清零單元305對看 門狗計數(shù)器進行清零,并清零任務(wù)執(zhí)行標志寄存器,由置位單元302重新對任務(wù)執(zhí)行標志 寄存器進行置位,若標志位不同,則認為系統(tǒng)出現(xiàn)了故障,復(fù)位單元306對系統(tǒng)進行復(fù)位, 重啟系統(tǒng)。在各單項任務(wù)中,需要重新置位出現(xiàn)故障的單項任務(wù)的任務(wù)執(zhí)行標志寄存器,否則當主任務(wù)再次進行判斷時,單項任務(wù)尚未置位任務(wù)執(zhí)行標志寄存器,導(dǎo)致主任務(wù)對單項 任務(wù)的兩種寄存器標志位判斷的結(jié)果出錯,首先,預(yù)置置位時間,在各單項任務(wù)中,每次到 達預(yù)置的置位時間,清零單元305對單項任務(wù)中的任務(wù)執(zhí)行標志寄存器進行清零,并由置 位單元302對該任務(wù)執(zhí)行標志寄存器進行重新置位,以保證任務(wù)執(zhí)行標志寄存器的標志位 與該單項任務(wù)中啟動標志寄存器的標志位相同。需要說明的是,預(yù)置的置位時間可以任意設(shè)置,但須保證在主任務(wù)的一個循環(huán)時 長內(nèi)有足夠的時間使所有單項任務(wù)完成置位,否則,若預(yù)置時間太短,則當主任務(wù)再次對單 項任務(wù)判斷時,單項任務(wù)尚未置位任務(wù)執(zhí)行標志寄存器,導(dǎo)致主任務(wù)對單項任務(wù)的兩種寄 存器標志位判斷的結(jié)果出錯,而預(yù)置的置位時間也不可以太短,過于頻繁的置位會造成系 統(tǒng)資源的浪費。特殊情況下,當某個單項任務(wù)計數(shù)器不能作看門狗而對系統(tǒng)進行監(jiān)控時,需要禁 止對該單項任務(wù)進行看門狗監(jiān)控時,那么如果該單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí) 行標志寄存器尚未置位,則不對該任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位, 如果已經(jīng)對該單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置位,則清零單元 305將任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行清零。需要說明的是,禁止該單項任務(wù)進行看門狗監(jiān)控可以是暫時的,后續(xù)可以恢復(fù)看 門狗功能,也可以是永久的,終止看門狗功能,具體的禁止方式與實際應(yīng)用有關(guān),此處不作 限定。當復(fù)位單元306對系統(tǒng)進行復(fù)位后,查詢單元307可查詢到發(fā)生故障的該單項任 務(wù),并由處理單元308對該單項任務(wù)進行相應(yīng)的處理,如查找故障原因或重啟該單項任務(wù)。需要說明的是,查詢發(fā)生故障的單項任務(wù)的具體方式,可由現(xiàn)有技術(shù)實現(xiàn),具體此 處不作限定。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上 述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上對本發(fā)明所提供的一種多任務(wù)系統(tǒng)監(jiān)控方法及裝置進行了詳細介紹,對于本 領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式
及應(yīng)用范圍上均會有改 變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
9
權(quán)利要求
一種多任務(wù)系統(tǒng)監(jiān)控方法,其特征在于,包括設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;置位所述任務(wù)啟動標志寄存器及所述任務(wù)執(zhí)行標志寄存器,使得所述任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的初始標志位相同;當執(zhí)行主任務(wù)時,獲取所述任務(wù)啟動標志寄存器的標志位及所述任務(wù)執(zhí)行標志寄存器的標志位;判斷所述任務(wù)啟動標志寄存器的標志位與所述任務(wù)執(zhí)行標志寄存器的標志位是否相同,若相同,則清零任務(wù)計數(shù)器,清零并重新置位所述任務(wù)執(zhí)行標志寄存器,若不相同,則復(fù)位系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述置位啟動標志寄存器及任務(wù)執(zhí)行標 志寄存器,使得所述任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的初始 標志位相同包括在單項任務(wù)優(yōu)先級對應(yīng)的位置上對所述任務(wù)啟動標志寄存器及所述任務(wù)執(zhí)行標志寄 存器進行置位,使得所述任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的 初始標志位相同。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述任務(wù)啟動標志寄存器的標 志位與所述任務(wù)執(zhí)行標志寄存器的標志位是否相同,若相同,則清零任務(wù)計數(shù)器,清零并重 新置位所述任務(wù)執(zhí)行標志寄存器,若不相同,則復(fù)位系統(tǒng)之后包括根據(jù)預(yù)置時間定時置位所述任務(wù)執(zhí)行標志寄存器,使得所述任務(wù)執(zhí)行標志寄存器的標 志位與所述任務(wù)啟動標志寄存器的標志位相同。
4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,若需要禁止對單項任務(wù)計 數(shù)器進行清零,則當所述單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器尚未置位 時,不對所述單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行置位;或者,當已對所述單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置位時,將所述單 項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進行清零。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷任務(wù)啟動標志寄存器的標志位 與任務(wù)執(zhí)行標志寄存器的標志位是否相同,若相同,則清零任務(wù)計數(shù)器,清零并重新置位所 述任務(wù)執(zhí)行標志寄存器,若不相同,則復(fù)位系統(tǒng)之后包括查詢發(fā)生故障的單項任務(wù),對所述發(fā)生故障的單項任務(wù)進行處理。
6.一種多任務(wù)系統(tǒng)監(jiān)控裝置,其特征在于,包括設(shè)置單元,用于設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器;置位單元,用于置位所述任務(wù)啟動標志寄存器及所述任務(wù)執(zhí)行標志寄存器,使得所述 任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的初始標志位相同;獲取單元,用于當執(zhí)行主任務(wù)時,獲取所述任務(wù)啟動標志寄存器的標志位及所述任務(wù) 執(zhí)行標志寄存器的標志位;判斷單元,用于判斷所述任務(wù)啟動標志寄存器的標志位與所述任務(wù)執(zhí)行標志寄存器的 標志位是否相同;清零單元,用于清零任務(wù)計數(shù)器,以及清零任務(wù)執(zhí)行標志寄存器;復(fù)位單元,用于復(fù)位系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述置位單元,還用于在單項任務(wù)優(yōu)先級 對應(yīng)的位置上對所述任務(wù)啟動標志寄存器及所述任務(wù)執(zhí)行標志寄存器進行置位,使得所述 任務(wù)啟動標志寄存器的初始標志位與所述任務(wù)執(zhí)行標志寄存器的初始標志位相同。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述置位單元,還用于根據(jù)預(yù)置時間定時 置位所述任務(wù)執(zhí)行標志寄存器,使得所述任務(wù)執(zhí)行標志寄存器的標志位與所述任務(wù)啟動標 志寄存器的標志位相同。
9.根據(jù)權(quán)利要求6至8中任一項所述的裝置,其特征在于,所述清零單元,還用于若需 要禁止對單項任務(wù)計數(shù)器進行清零,則當已對所述單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù) 執(zhí)行標志寄存器置位時,將所述單項任務(wù)的任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器進 行清零。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述多任務(wù)系統(tǒng)監(jiān)控裝置還包括查詢單元,用于查詢發(fā)生故障的單項任務(wù);處理單元,用于對所述發(fā)生故障的單項任務(wù)進行處理。
全文摘要
本發(fā)明實施例公開了一種多任務(wù)系統(tǒng)監(jiān)控方法及裝置,用于提高多任務(wù)系統(tǒng)的監(jiān)控效率。本發(fā)明實施例方法包括設(shè)置任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器,在寄存器中為所有任務(wù)設(shè)置任務(wù)啟動標志位及任務(wù)執(zhí)行標志位,任務(wù)啟動時,將任務(wù)啟動標志寄存器及任務(wù)執(zhí)行標志寄存器置相同的標志位,主任務(wù)執(zhí)行過程中,獲取啟動標志寄存器的標志位與任務(wù)執(zhí)行標志寄存器的標志位,判斷二者是否相同,若相同則清零任務(wù)計數(shù)器,同時清零并重置任務(wù)執(zhí)行標志寄存器,若不同則復(fù)位系統(tǒng),因而每次只需判斷一次,便可得知所有任務(wù)的運行情況并決定是否需要復(fù)位系統(tǒng),提高了判斷效率。
文檔編號G06F11/30GK101944056SQ20101029152
公開日2011年1月12日 申請日期2010年9月21日 優(yōu)先權(quán)日2010年9月21日
發(fā)明者吳海, 張進軍, 董光府, 郭彩霞 申請人:深圳市華力特電氣股份有限公司