專(zhuān)利名稱(chēng):一種系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于軟件故障處理領(lǐng)域,特別涉及一種熱點(diǎn)AP、服務(wù)器、電話(huà)系統(tǒng)及生產(chǎn)線(xiàn)等工控系統(tǒng)的軟件自動(dòng)恢復(fù)的方法。
背景技術(shù):
目前,在有人操作的臺(tái)式機(jī)中出現(xiàn)導(dǎo)致系統(tǒng)癱瘓的軟件錯(cuò)誤并不可怕,因?yàn)橛脩?hù)只需重新啟動(dòng)系統(tǒng)即可,它只會(huì)造成少量數(shù)據(jù)的丟失。然而,對(duì)于運(yùn)行在工控系統(tǒng)的軟件,系統(tǒng)則必須能夠在沒(méi)有人為干預(yù)的條件下恢復(fù)故障。這一特性在兩種情況下非常關(guān)鍵一種是高有效性系統(tǒng),如服務(wù)器、電話(huà)系統(tǒng)以及生產(chǎn)線(xiàn)等;另一種是高可靠性系統(tǒng),因?yàn)檫@種系統(tǒng)一旦出現(xiàn)錯(cuò)誤將造成傷害,如汽車(chē)、醫(yī)療設(shè)備、工業(yè)控制、自動(dòng)門(mén)等。這些工控系統(tǒng)一般
都使用兩套硬件,每套硬件上運(yùn)行相同的軟件,一個(gè)主用另一個(gè)備用,當(dāng)主用設(shè)備軟件出現(xiàn)故障時(shí),主用設(shè)備退出,備用設(shè)備立即頂上去,此時(shí),主設(shè)備只需要進(jìn)行復(fù)位就可以恢復(fù)。另夕卜,熱點(diǎn)AP在開(kāi)機(jī)進(jìn)入bootloader后10分鐘沒(méi)有進(jìn)行任何操作時(shí)會(huì)導(dǎo)致ap吊死,此時(shí)不能對(duì)ap執(zhí)行任何操作。需要手動(dòng)重啟ap再進(jìn)入u-boot執(zhí)行相關(guān)的操作技術(shù)問(wèn)題,使用不方便。
發(fā)明內(nèi)容
為解決目前熱點(diǎn)AP在開(kāi)機(jī)進(jìn)入bootloader后10分鐘沒(méi)有進(jìn)行任何操作時(shí)會(huì)導(dǎo)致ap吊死,此時(shí)不能對(duì)ap執(zhí)行任何操作。需要手動(dòng)重啟ap再進(jìn)入u_boot執(zhí)行相關(guān)的操作技術(shù)問(wèn)題,使用不方便的不足,本發(fā)明提供一種系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法。本發(fā)明為了完成其技術(shù)目的所采用的技術(shù)方案是一種系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,該方法根據(jù)系統(tǒng)硬件的實(shí)際情況,通過(guò)在bootloader的初始化的地方定義看門(mén)狗的相關(guān)處理函數(shù),然后根據(jù)可能導(dǎo)致系統(tǒng)串口吊死事件處理添加看門(mén)狗計(jì)數(shù)器處理;等到計(jì)數(shù)器數(shù)值到10分鐘的時(shí)候自動(dòng)喂狗,最后系統(tǒng)自動(dòng)重啟。進(jìn)一步的,上述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法中所述的系統(tǒng)為工為熱點(diǎn)AP或者服務(wù)器、電話(huà)系統(tǒng)及生產(chǎn)線(xiàn)。進(jìn)一步的,上述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法中包括以下步驟
步驟Ml、使用bootloader初始化的入口函數(shù);
步驟M2、在u-boot模式下檢查串口是否有字符輸入,如果有字符輸入則接收到字符,按照字符的定義做相應(yīng)處理,否則進(jìn)入步驟M3處理;
步驟M3、檢測(cè)沒(méi)有字符輸入的時(shí)間,如果達(dá)到設(shè)定時(shí)間則進(jìn)入步驟M4處理,否則執(zhí)行下一次檢測(cè)判斷;
步驟M4、執(zhí)行reset命令使系統(tǒng)自動(dòng)重啟。進(jìn)一步的,上述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法中所述的步驟M3中,檢測(cè)沒(méi)有字符輸入的時(shí)間是通過(guò)count計(jì)數(shù)判斷是否到達(dá)設(shè)定時(shí)間的。進(jìn)一步的,上述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法中設(shè)定時(shí)間為10分鐘。
本發(fā)明通過(guò)采用設(shè)置看門(mén)狗的方式檢測(cè)系統(tǒng)軟件是否出現(xiàn)故障,當(dāng)檢測(cè)到有故障發(fā)生時(shí),自動(dòng)重啟系統(tǒng),使系統(tǒng)軟件恢復(fù)正常。下面通過(guò)結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步的說(shuō)明。
附圖I是本發(fā)明實(shí)施例I流程圖。
具體實(shí)施例方式
如圖I所示,本實(shí)施例是一種熱點(diǎn)AP在開(kāi)機(jī)進(jìn)入bootloader后10分鐘沒(méi)有進(jìn)行任何操作時(shí)而導(dǎo)致ap吊死,不能對(duì)ap執(zhí)行任何操作時(shí),對(duì)熱點(diǎn)AP軟件故障自動(dòng)恢復(fù)的方法。根據(jù)硬件的實(shí)際情況,通過(guò)在bootloader的初始化的地方定義看門(mén)狗的相關(guān)處
理函數(shù),
本實(shí)施例中,在已進(jìn)入bootloader的地方具有如下代碼,對(duì)看門(mén)狗及相關(guān)函數(shù)進(jìn)行初 始化,具體代碼如下 watchdog_openO ; mem_malloc_initO ; serial_init (); eth_initialize(gd_>bd); watchdog_close();
其中第一行打開(kāi)看門(mén)狗處理函數(shù),然后是進(jìn)行內(nèi)存、串口、以太網(wǎng)口等硬件的初始化函數(shù),最后是關(guān)閉看門(mén)狗處理函數(shù)
然后根據(jù)可能導(dǎo)致ap串口吊死事件處理添加看門(mén)狗計(jì)數(shù)器處理。等到計(jì)數(shù)器數(shù)值到10分鐘的時(shí)候自動(dòng)喂狗,然后ap自動(dòng)重啟。這里,看門(mén)狗是借助計(jì)數(shù)器處理,當(dāng)計(jì)數(shù)器計(jì)算到設(shè)定的10分鐘值,調(diào)用相應(yīng)的命令處理如reset命令后。把原先的計(jì)算到的10分鐘值清0.然后再循環(huán)前面的計(jì)數(shù)處理。關(guān)鍵步驟如圖1,實(shí)現(xiàn)說(shuō)明如下
步驟Ml: bootloader初始化的入口函數(shù),包括看門(mén)狗開(kāi)和關(guān)的初始化,還有導(dǎo)致程序吊死的網(wǎng)卡初始化失敗函數(shù)的處理。步驟M2:在boot模式下檢查串口是否有字符輸入,接收到字符,按照字符的定義做相應(yīng)處理。否則進(jìn)入步驟M3處理。步驟M3 :如果串口一直沒(méi)有接收到字符的到來(lái),就做count計(jì)數(shù)判斷是否到達(dá)10分鐘。如果達(dá)到10分鐘進(jìn)入步驟M4處理,否則執(zhí)行下一次循環(huán)判斷。步驟M4 :如果count計(jì)數(shù)超過(guò)10分鐘。就執(zhí)行reset命令使ap自動(dòng)重啟。注意使用reset命令,因?yàn)樵趩?dòng)內(nèi)核的時(shí)候還需要判斷是用哪個(gè)內(nèi)核及其他的判斷是用哪個(gè)內(nèi)核及其他的判斷。
權(quán)利要求
1.一種系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,其特征在于該方法根據(jù)系統(tǒng)硬件的實(shí)際情況,通過(guò)在bootloader的初始化的地方定義看門(mén)狗的相關(guān)處理函數(shù),然后根據(jù)可能導(dǎo)致系統(tǒng)串口吊死事件處理添加看門(mén)狗計(jì)數(shù)器處理;等到計(jì)數(shù)器數(shù)值到10分鐘的時(shí)候自動(dòng)喂狗,最后系統(tǒng)自動(dòng)重啟。
2.根據(jù)權(quán)利要求I所述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,其特征在于所述的系統(tǒng)為工為熱點(diǎn)AP或者服務(wù)器、電話(huà)系統(tǒng)及生產(chǎn)線(xiàn)。
3.根據(jù)權(quán)利要求2所述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,其特征在于包括以下步驟 步驟Ml、使用bootloader初始化的入口函數(shù); 步驟M2、在boot模式下檢查串口是否有字符輸入,如果有字符輸入則接收到字符,按 照字符的定義做相應(yīng)處理,否則進(jìn)入步驟M3處理; 步驟M3、檢測(cè)沒(méi)有字符輸入的時(shí)間,如果達(dá)到設(shè)定時(shí)間則進(jìn)入步驟M4處理,否則執(zhí)行下一次檢測(cè)判斷; 步驟M4、執(zhí)行reset命令使系統(tǒng)自動(dòng)重啟。
4.根據(jù)權(quán)利要求3所述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,其特征在于所述的步驟M3中,檢測(cè)沒(méi)有字符輸入的時(shí)間是通過(guò)count計(jì)數(shù)判斷是否到達(dá)設(shè)定時(shí)間的。
5.根據(jù)權(quán)利要求3或4所述的系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,其特征在于設(shè)定時(shí)間為10分鐘。
全文摘要
本發(fā)明提供了一種系統(tǒng)從故障狀態(tài)下自動(dòng)恢復(fù)的方法,該方法根據(jù)系統(tǒng)硬件的實(shí)際情況,通過(guò)在bootloader的初始化的地方定義看門(mén)狗的相關(guān)處理函數(shù),然后根據(jù)可能導(dǎo)致系統(tǒng)串口吊死事件處理添加看門(mén)狗計(jì)數(shù)器處理;等到計(jì)數(shù)器數(shù)值到10分鐘的時(shí)候自動(dòng)喂狗,最后系統(tǒng)自動(dòng)重啟。本發(fā)明通過(guò)采用設(shè)置看門(mén)狗的方式檢測(cè)系統(tǒng)軟件是否出現(xiàn)故障,當(dāng)檢測(cè)到有故障發(fā)生時(shí),自動(dòng)重啟系統(tǒng),使系統(tǒng)軟件恢復(fù)正常。
文檔編號(hào)G06F11/00GK102880520SQ20121031770
公開(kāi)日2013年1月16日 申請(qǐng)日期2012年8月31日 優(yōu)先權(quán)日2012年8月31日
發(fā)明者汪公玉 申請(qǐng)人:深圳市共進(jìn)電子股份有限公司