專利名稱:嵌入式系統(tǒng)異?;謴?fù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,特別是涉及一種嵌入式系統(tǒng)異常恢復(fù)的方法和裝置。
背景技術(shù):
隨著嵌入式技術(shù)的發(fā)展,嵌入式設(shè)備功能日趨強(qiáng)大,復(fù)雜的嵌入式設(shè)備被設(shè)計(jì)成由多處理器組成的分布式架構(gòu),其對(duì)應(yīng)的嵌入式系統(tǒng)也日趨龐大、復(fù)雜。在如此龐大的嵌入式系統(tǒng)運(yùn)行過程中,會(huì)存在某個(gè)子模塊發(fā)生異常的情況,在面對(duì)系統(tǒng)中某個(gè)功能模塊發(fā)生異常時(shí),需要系統(tǒng)對(duì)發(fā)生的異常情況進(jìn)行及時(shí)的恢復(fù)處理。傳統(tǒng)的異?;謴?fù)方法是:在異常發(fā)生后,重啟嵌入式系統(tǒng)的子系統(tǒng),甚至直接重啟整個(gè)嵌入式系統(tǒng)。而在實(shí)際操作過程中,發(fā)生異常的功能模塊往往只對(duì)該模塊內(nèi)部有影響,并不會(huì)影響到整個(gè)系統(tǒng),此時(shí)將嵌入式系統(tǒng)的子系統(tǒng)或整個(gè)系統(tǒng)進(jìn)行重啟操作,對(duì)于現(xiàn)今龐大的嵌入式系統(tǒng),會(huì)耗費(fèi)大量的時(shí)間,直接影響了異?;謴?fù)的效率。針對(duì)現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,目前尚未提出有效地解決方案。
發(fā)明內(nèi)容
本發(fā)明提供了一種嵌入式系統(tǒng)異?;謴?fù)的方法和裝置,用以解決現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題。為解決上述技術(shù)問題,一方面,本發(fā)明提供一種嵌入式系統(tǒng)異?;謴?fù)的方法,該方法包括:確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊;獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成嵌入式系統(tǒng)的異常恢復(fù)。優(yōu)選地,在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,還包括:創(chuàng)建異常決策表,異常決策表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。優(yōu)選地,在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,還包括:創(chuàng)建異?;謴?fù)表,異?;謴?fù)表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。優(yōu)選地,屬性參數(shù)包括預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,包括:根據(jù)發(fā)生異常的功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定發(fā)生異常的功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的頻率;根據(jù)發(fā)生異常的頻率的大小,在異?;謴?fù)表中選擇對(duì)應(yīng)的恢復(fù)操作。優(yōu)選地,恢復(fù)操作包括以下之一:將發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn);將發(fā)生異常的功能模塊重啟;將發(fā)生異常的功能模塊所屬的子系統(tǒng)重啟;將嵌入式系統(tǒng)重啟。優(yōu)選地,在完成嵌入式系統(tǒng)的異常恢復(fù)之后,還包括:將發(fā)生異常的功能模塊對(duì)應(yīng)的異常信息進(jìn)行保存。另一方面,本發(fā)明還提供一種嵌入式系統(tǒng)異?;謴?fù)的裝置,包括:異常確定單元,用于確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊;異?;謴?fù)單元,用于獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成嵌入式系統(tǒng)的異?;謴?fù)。優(yōu)選地,該裝置還包括:第一創(chuàng)建單元,用于在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,創(chuàng)建異常決策表,異常決策表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。優(yōu)選地,該裝置還包括:第二創(chuàng)建單元,用于在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,創(chuàng)建異?;謴?fù)表,異?;謴?fù)表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。優(yōu)選地,屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),異?;謴?fù)單元包括:頻率確定模塊,用于根據(jù)發(fā)生異常的功能模塊預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定發(fā)生異常的功能模塊發(fā)生異常的頻率;恢復(fù)操作確定模塊,用于根據(jù)發(fā)生異常的頻率的大小,在異?;謴?fù)表中選擇對(duì)應(yīng)的恢復(fù)操作。本發(fā)明有益效果如下:本發(fā)明中,在檢測(cè)到嵌入式系統(tǒng)中某一功能模塊發(fā)生異常時(shí),獲取該發(fā)生異常的功能模塊相關(guān)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定發(fā)生異常模塊的實(shí)際情況后,再選擇對(duì)應(yīng)的恢復(fù)操作完成系統(tǒng)的恢復(fù)。其中,在獲取到的發(fā)生異常的功能模塊的屬性參數(shù)不同時(shí),選擇不同的恢復(fù)操作進(jìn)行系統(tǒng)的恢復(fù),這種處理方式有效地解決了現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,減少了系統(tǒng)異?;謴?fù)的時(shí)間。
圖1是本發(fā)明實(shí)施例中嵌入式系統(tǒng)異?;謴?fù)的方法的一種優(yōu)選的流程圖;圖2是本發(fā)明實(shí)施例中嵌入式系統(tǒng)異?;謴?fù)的裝置的一種優(yōu)選的結(jié)構(gòu)框圖;圖3是本發(fā)明實(shí)施例中嵌入式系統(tǒng)異?;謴?fù)的裝置的另一種優(yōu)選的結(jié)構(gòu)框圖。
具體實(shí)施例方式為了解決現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,本發(fā)明提供了一種嵌入式系統(tǒng)異?;謴?fù)的方法和裝置,下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。實(shí)施例1在本發(fā)明優(yōu)選的實(shí)施例中,提供了一種嵌入式系統(tǒng)異?;謴?fù)的方法,圖1示出該方法的一種優(yōu)選的流程圖,如圖1所示,該方法包括如下步驟:S102,確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊;具體來說,通過進(jìn)行檢測(cè),來確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊。優(yōu)選地,檢測(cè)的方式包括:被動(dòng)檢測(cè)和主動(dòng)檢測(cè),其中,被動(dòng)檢測(cè)是指系統(tǒng)CPU檢測(cè)到異常后,發(fā)送異常通知給相應(yīng)的檢測(cè)裝置;主動(dòng)檢測(cè)是指檢測(cè)裝置通過主動(dòng)的定時(shí)輪詢機(jī)制對(duì)系統(tǒng)中各個(gè)功能模塊進(jìn)行異常的檢測(cè)。
S104,獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成嵌入式系統(tǒng)的異?;謴?fù)。具體地,可以預(yù)先設(shè)置存儲(chǔ)器來存儲(chǔ)嵌入式系統(tǒng)中各個(gè)功能模塊的屬性參數(shù),優(yōu)選地,屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)、以及每次異常對(duì)應(yīng)的時(shí)間點(diǎn)、該功能模塊發(fā)生異常是否影響整個(gè)系統(tǒng)等信息,根據(jù)這些屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作。例如,發(fā)生異常的功能模塊近期預(yù)定時(shí)間段內(nèi)(如3天)沒有發(fā)生異?;虬l(fā)生異常的次數(shù)很少,且該功能模塊發(fā)生異常并不會(huì)影響整個(gè)嵌入式系統(tǒng),則不必將整個(gè)系統(tǒng)進(jìn)行重啟,只需重啟該功能模塊即可。上述優(yōu)選的實(shí)施方式中,在檢測(cè)到嵌入式系統(tǒng)中某一功能模塊發(fā)生異常時(shí),獲取該發(fā)生異常的功能模塊相關(guān)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定發(fā)生異常模塊的實(shí)際情況后,再選擇對(duì)應(yīng)的恢復(fù)操作完成系統(tǒng)的恢復(fù)。其中,在獲取到的發(fā)生異常的功能模塊的屬性參數(shù)不同時(shí),選擇不同的恢復(fù)操作進(jìn)行系統(tǒng)的恢復(fù),這種處理方式有效地解決了現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,減少了系統(tǒng)異?;謴?fù)的時(shí)間。在本發(fā)明的一個(gè)優(yōu)選的實(shí)施方式中,還對(duì)上述提供的方法進(jìn)行了優(yōu)化,具體地,在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,創(chuàng)建異常決策表,異常決策表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。優(yōu)選地,上述異常決策表的創(chuàng)建過程可以在系統(tǒng)初始化階段完成。此外,可以每隔預(yù)定時(shí)間將該異常決策表中記錄的屬性參數(shù)進(jìn)行更新,也可以在確定了發(fā)生異常的功能模塊后,更新該功能模塊對(duì)應(yīng)的屬性參數(shù),再進(jìn)行獲取操作。在本發(fā)明的一個(gè)優(yōu)選的實(shí)施方式中,還對(duì)上述提供的方法進(jìn)行了進(jìn)一步地優(yōu)化,具體來說,在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,還創(chuàng)建異?;謴?fù)表,異常恢復(fù)表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。優(yōu)選地,上述異?;謴?fù)表的創(chuàng)建過程可以在系統(tǒng)初始化階段完成。具體地,可以根據(jù)上述異常決策表中記錄的功能模塊的屬性參數(shù),確定功能模塊可執(zhí)行的恢復(fù)操作,例如,某一功能模塊的屬性參數(shù)表明,該功能模塊發(fā)生異常,并不對(duì)整個(gè)系統(tǒng)造成影響,因此,該功能模塊對(duì)應(yīng)的可執(zhí)行操作包括:回到異常前某一預(yù)定的狀態(tài)繼續(xù)執(zhí)行、重啟功能模塊、重啟該功能模塊所在的子系統(tǒng)等;若某一功能模塊的屬性參數(shù)表明,該功能模塊發(fā)生異常,會(huì)直接影響整個(gè)嵌入式系統(tǒng),所以該功能模塊可執(zhí)行的恢復(fù)操作僅為重啟整個(gè)嵌入式系統(tǒng)。在本發(fā)明的一個(gè)優(yōu)選地實(shí)施方式中,還對(duì)上述方法進(jìn)行了進(jìn)一步地優(yōu)化,具體來說,屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作包括如下步驟:根據(jù)發(fā)生異常的功能模塊預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定發(fā)生異常的功能模塊在該預(yù)定時(shí)間段內(nèi)發(fā)生異常的頻率;根據(jù)發(fā)生異常的頻率的大小,在異?;謴?fù)表中選擇對(duì)應(yīng)的恢復(fù)操作。具體來說,例如,根據(jù)獲取到的功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),判斷出該功能模塊發(fā)生異常的頻率低,則可將該功能模塊進(jìn)行重啟即可;若判斷出近期經(jīng)常發(fā)生異?,F(xiàn)象,頻率比較高,則可選擇重啟該功能模塊所在的子系統(tǒng),或者重啟整個(gè)嵌入式系統(tǒng)。在本發(fā)明的一個(gè)優(yōu)選的實(shí)施方式中,還提供了如下優(yōu)選的恢復(fù)操作:將發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn);將發(fā)生異常的功能模塊重啟;將發(fā)生異常的功能模塊所屬的子系統(tǒng)重啟;將嵌入式系統(tǒng)重啟。優(yōu)選地,根據(jù)功能模塊發(fā)生異常頻率由低到高,依次選擇上述的恢復(fù)操作。本發(fā)明還提供了一種將發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn)的優(yōu)選的實(shí)施方式,具體來說,可以在發(fā)生異常前預(yù)定的時(shí)間點(diǎn)的位置,保存當(dāng)前的上下文信息和一些必要的任務(wù)狀態(tài)信息,優(yōu)選地,上下文信息通過獲取當(dāng)前CPU寄存器內(nèi)容獲取,需要保存的任務(wù)狀態(tài)信息包括但不限于:任務(wù)占用的資源ID、信號(hào)掩碼;當(dāng)檢測(cè)到某一功能模塊發(fā)生異常,且確定的恢復(fù)操作為恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn)時(shí),查找之前保存的上下文信息和任務(wù)狀態(tài)信息,直接跳轉(zhuǎn)到對(duì)應(yīng)的時(shí)間點(diǎn)繼續(xù)執(zhí)行。按照這種跳轉(zhuǎn)的方式進(jìn)行異?;謴?fù),消耗時(shí)間短,基本相當(dāng)于一次函數(shù)調(diào)用耗費(fèi)的時(shí)間。此外,本發(fā)明還對(duì)上述方法進(jìn)行了進(jìn)一步地優(yōu)化,具體來說,在完成嵌入式系統(tǒng)的異?;謴?fù)之后,將發(fā)生異常的功能模塊對(duì)應(yīng)的異常信息進(jìn)行保存。優(yōu)選地,根據(jù)確定恢復(fù)操作的不同,保存異常信息到不同的存儲(chǔ)區(qū)域:對(duì)于不需要重啟CPU的異常,簡(jiǎn)要保存上下文信息至普通內(nèi)存區(qū)中;對(duì)于需要重啟CPU的異常,詳細(xì)保存到非易失性內(nèi)存,再擇機(jī)轉(zhuǎn)存到外部?jī)?chǔ)存器。其中,外部存儲(chǔ)器包括但不限于硬盤、FLASH、磁盤等。優(yōu)選地,異?;謴?fù)之后,根據(jù)異?;謴?fù)的方式,決定是否更新異常決策表中對(duì)應(yīng)的參數(shù)。實(shí)施例2基于上述實(shí)施例1提供的方法,本優(yōu)選的實(shí)施例提供了一種嵌入式系統(tǒng)異常恢復(fù)的裝置,具體地,如圖2所示,該裝置包括:異常確定單元202,用于確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊;具體來說,通過進(jìn)行檢測(cè),來確定嵌入式系統(tǒng)中是否發(fā)生異常的功能模塊。優(yōu)選地,檢測(cè)的方式包括:被動(dòng)檢測(cè)和主動(dòng)檢測(cè),其中,被動(dòng)檢測(cè)是指系統(tǒng)CPU檢測(cè)到異常后,發(fā)送異常通知給異常確定單元202 ;主動(dòng)檢測(cè)是指異常確定單元202通過主動(dòng)的定時(shí)輪詢機(jī)制對(duì)系統(tǒng)中各個(gè)功能模塊進(jìn)行異常的檢測(cè)。異?;謴?fù)單元204,用于獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成嵌入式系統(tǒng)的異?;謴?fù)。具體地,可以預(yù)先設(shè)置存儲(chǔ)器來存儲(chǔ)嵌入式系統(tǒng)中各個(gè)功能模塊的屬性參數(shù),優(yōu)選地,屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)、以及每次異常對(duì)應(yīng)的時(shí)間點(diǎn)、該功能模塊發(fā)生異常是否影響整個(gè)系統(tǒng)等信息,根據(jù)這些屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作。例如,發(fā)生異常的功能模塊近期預(yù)定時(shí)間段內(nèi)(如3天)沒有發(fā)生異?;虬l(fā)生異常的次數(shù)很少,且該功能模塊發(fā)生異常并不會(huì)影響整個(gè)嵌入式系統(tǒng),則不必將整個(gè)系統(tǒng)進(jìn)行重啟,只需重啟該功能模塊即可。上述優(yōu)選的實(shí)施方式中,在檢測(cè)到嵌入式系統(tǒng)中某一功能模塊發(fā)生異常時(shí),獲取該發(fā)生異常的功能模塊相關(guān)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定發(fā)生異常模塊的實(shí)際情況后,再選擇對(duì)應(yīng)的恢復(fù)操作完成系統(tǒng)的恢復(fù)。其中,在獲取到的發(fā)生異常的功能模塊的屬性參數(shù)不同時(shí),選擇不同的恢復(fù)操作進(jìn)行系統(tǒng)的恢復(fù),這種處理方式有效地解決了現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,減少了系統(tǒng)異常恢復(fù)的時(shí)間。在本發(fā)明的一個(gè)優(yōu)選的實(shí)施方式中,還對(duì)上述提供的裝置進(jìn)行了優(yōu)化,具體地,如圖3所示,該裝置還包括:第一創(chuàng)建單元302,與異常恢復(fù)單元204連接,用于在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,創(chuàng)建異常決策表,異常決策表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。優(yōu)選地,上述異常決策表的創(chuàng)建過程可以在系統(tǒng)初始化階段完成。此外,可以每隔預(yù)定時(shí)間將該異常決策表中記錄的屬性參數(shù)進(jìn)行更新,也可以在確定了發(fā)生異常的功能模塊后,更新該功能模塊對(duì)應(yīng)的屬性參數(shù),再進(jìn)行獲取操作。優(yōu)選地,如圖3所示,該裝置還包括:第二創(chuàng)建單元304,與異?;謴?fù)單元204連接,用于在獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,創(chuàng)建異?;謴?fù)表,異?;謴?fù)表記錄有嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。優(yōu)選地,上述異?;謴?fù)表的創(chuàng)建過程可以在系統(tǒng)初始化階段完成。具體地,可以根據(jù)上述異常決策表中記錄的功能模塊的屬性參數(shù),確定功能模塊可執(zhí)行的恢復(fù)操作,例如,某一功能模塊的屬性參數(shù)表明,該功能模塊發(fā)生異常,并不對(duì)整個(gè)系統(tǒng)造成影響,因此,該功能模塊對(duì)應(yīng)的可執(zhí)行操作包括:回到異常前某一預(yù)定的狀態(tài)繼續(xù)執(zhí)行、重啟功能模塊、重啟該功能模塊所在的子系統(tǒng)等;若某一功能模塊的屬性參數(shù)表明,該功能模塊發(fā)生異常,會(huì)直接影響整個(gè)嵌入式系統(tǒng),所以該功能模塊可執(zhí)行的恢復(fù)操作僅為重啟整個(gè)嵌入式系統(tǒng)。優(yōu)選地,屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),異?;謴?fù)單元包括:頻率確定模塊,用于根據(jù)發(fā)生異常的功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定發(fā)生異常的功能模塊發(fā)生異常的頻率;恢復(fù)操作確定模塊,用于根據(jù)發(fā)生異常的頻率的大小,在異?;謴?fù)表中選擇對(duì)應(yīng)的恢復(fù)操作。具體來說,例如,根據(jù)獲取到的功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),判斷出該功能模塊發(fā)生異常的頻率低,則可將該功能模塊進(jìn)行重啟即可;若判斷出近期經(jīng)常發(fā)生異?,F(xiàn)象,頻率比較高,則可選擇重啟該功能模塊所在的子系統(tǒng),或者重啟整個(gè)嵌入式系統(tǒng)。在本發(fā)明的一個(gè)優(yōu)選的實(shí)施方式中,還提供了如下優(yōu)選的恢復(fù)操作:將發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn);將發(fā)生異常的功能模塊重啟;將發(fā)生異常的功能模塊所屬的子系統(tǒng)重啟;將嵌入式系統(tǒng)重啟。優(yōu)選地,根據(jù)功能模塊發(fā)生異常頻率由低到高,依次選擇上述的恢復(fù)操作。本發(fā)明還提供了一種將發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn)的優(yōu)選的實(shí)施方式,具體來說,可以在發(fā)生異常前預(yù)定的時(shí)間點(diǎn)的位置,保存當(dāng)前的上下文信息和一些必要的任務(wù)狀態(tài)信息,優(yōu)選地,上下文信息通過獲取當(dāng)前CPU寄存器內(nèi)容獲取,需要保存的任務(wù)狀態(tài)信息包括但不限于:任務(wù)占用的資源ID、信號(hào)掩碼;當(dāng)檢測(cè)到某一功能模塊發(fā)生異常,且確定的恢復(fù)操作為恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn)時(shí),查找之前保存的上下文信息和任務(wù)狀態(tài)信息,直接跳轉(zhuǎn)到對(duì)應(yīng)的時(shí)間點(diǎn)繼續(xù)執(zhí)行。按照這種跳轉(zhuǎn)的方式進(jìn)行異?;謴?fù),消耗時(shí)間短,基本相當(dāng)于一次函數(shù)調(diào)用耗費(fèi)的時(shí)間。此外,本發(fā)明還對(duì)上述方裝置進(jìn)行了進(jìn)一步地優(yōu)化,具體來說,該裝置還包括存儲(chǔ)單元,用于在完成嵌入式系統(tǒng)的異?;謴?fù)之后,將發(fā)生異常的功能模塊對(duì)應(yīng)的異常信息進(jìn)行保存。優(yōu)選地,根據(jù)確定恢復(fù)操作的不同,保存異常信息到不同的存儲(chǔ)區(qū)域:對(duì)于不需要重啟CPU的異常,簡(jiǎn)要保存上下文信息至普通內(nèi)存區(qū)中;對(duì)于需要重啟CPU的異常,詳細(xì)保存到非易失性內(nèi)存,再擇機(jī)轉(zhuǎn)存到外部?jī)?chǔ)存器。其中,外部存儲(chǔ)器包括但不限于硬盤、FLASH、磁盤等。優(yōu)選地,異常恢復(fù)之后,根據(jù)異常恢復(fù)的方式,決定是否更新異常決策表中對(duì)應(yīng)的參數(shù)。
盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域的技術(shù)人員將意識(shí)到各種改進(jìn)、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實(shí)施例。
權(quán)利要求
1.一種嵌入式系統(tǒng)異?;謴?fù)的方法,其特征在于,所述方法包括以下步驟: 確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊; 獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的所述屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成所述嵌入式系統(tǒng)的異常恢復(fù)。
2.如權(quán)利要求1所述的方法,其特征在于,在所述獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,還包括: 創(chuàng)建異常決策表,所述異常決策表記錄有所述嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。
3.如權(quán)利要求1或2所述的方法,其特征在于,在所述獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,還包括: 創(chuàng)建異常恢復(fù)表,所述異常恢復(fù)表記錄有所述嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。
4.如權(quán)利要求3所述的方法,其特征在于,所述屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),所述根據(jù)獲取的所述屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,包括: 根據(jù)所述發(fā)生異常的功能模塊在所述預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定所述發(fā)生異常的功能模塊在所述預(yù)定時(shí)間段內(nèi)發(fā)生異常的頻率; 根據(jù)所述發(fā)生異常的頻率的大小,在所述異?;謴?fù)表中選擇對(duì)應(yīng)的恢復(fù)操作。
5.如權(quán)利要求1、2或4中任一項(xiàng)所述的方法,其特征在于,所述恢復(fù)操作包括以下之 將所述發(fā)生異常的功能模塊恢復(fù)至發(fā)生異常前預(yù)定的時(shí)間點(diǎn); 將所述發(fā)生異常的功能模塊重啟; 將所述發(fā)生異常的功能模塊所屬的子系統(tǒng)重啟; 將所述嵌入式系統(tǒng)重啟。
6.如權(quán)利要求5所述的方法,其特征在于,在完成所述嵌入式系統(tǒng)的異?;謴?fù)之后,還包括: 將所述發(fā)生異常的功能模塊對(duì)應(yīng)的異常信息進(jìn)行保存。
7.一種嵌入式系統(tǒng)異?;謴?fù)的裝置,其特征在于,包括: 異常確定單元,用于確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊; 異常恢復(fù)單元,用于獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的所述屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成所述嵌入式系統(tǒng)的異?;謴?fù)。
8.如權(quán)利要求7所述的裝置,其特征在于,還包括: 第一創(chuàng)建單元,用于在獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù)之前,創(chuàng)建異常決策表,所述異常決策表記錄有所述嵌入式系統(tǒng)中各個(gè)功能模塊對(duì)應(yīng)的屬性參數(shù)。
9.如權(quán)利要求7或8所述的裝置,其特征在于,還包括: 第二創(chuàng)建單元,用于在獲取當(dāng)前所述發(fā)生異常的功能模塊對(duì)應(yīng)的屬性之前,創(chuàng)建異常恢復(fù)表,所述異?;謴?fù)表記錄有所述嵌入式系統(tǒng)中各個(gè)功能模塊可執(zhí)行的恢復(fù)操作。
10.如權(quán)利要求9所述的裝置,其特征在于,所述屬性參數(shù)包括功能模塊在預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),所述異?;謴?fù)單元包括:頻率確定模塊,用于根據(jù)所述發(fā)生異常的功能模塊在所述預(yù)定時(shí)間段內(nèi)發(fā)生異常的次數(shù)和發(fā)生異常的時(shí)間點(diǎn),確定所述發(fā)生異常的功能模塊在所述預(yù)定時(shí)間段內(nèi)發(fā)生異常的頻率; 恢復(fù)操作確定模塊,用于根據(jù)所述發(fā)生異常的頻率的大小,在所述異?;謴?fù)表中選擇對(duì)應(yīng)的 恢復(fù)操作。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)異?;謴?fù)的方法和裝置,其中,該方法包括確定嵌入式系統(tǒng)中發(fā)生異常的功能模塊;獲取當(dāng)前發(fā)生異常的功能模塊對(duì)應(yīng)的屬性參數(shù),根據(jù)獲取的屬性參數(shù),確定對(duì)應(yīng)的恢復(fù)操作,以完成嵌入式系統(tǒng)的異常恢復(fù)。本發(fā)明有效地解決了現(xiàn)有技術(shù)中處理嵌入式系統(tǒng)發(fā)生異常時(shí),需要重啟整個(gè)嵌入式系統(tǒng)或子系統(tǒng),導(dǎo)致耗費(fèi)大量時(shí)間的問題,減少了系統(tǒng)異?;謴?fù)的時(shí)間。
文檔編號(hào)G06F11/00GK103150222SQ20131003286
公開日2013年6月12日 申請(qǐng)日期2013年1月28日 優(yōu)先權(quán)日2013年1月28日
發(fā)明者張磊, 王剛, 楊青海 申請(qǐng)人:中興通訊股份有限公司