專利名稱:單板復(fù)位對象控制處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式單板軟件技術(shù),特別是涉及一種對單板不同復(fù)位模塊對象進行集中控制處理的方法。
背景技術(shù):
在單板運行過程中,單板所承載的業(yè)務(wù)是必須要得到保證的,但是當(dāng)單板出現(xiàn)異常或者為了實現(xiàn)某方面的要求,通常需要對單板的某些模塊對象進行復(fù)位操作。
在現(xiàn)有技術(shù)中,對各個需要復(fù)位的模塊對象,在處理過程中都沒有提供統(tǒng)一的接口,正由于處理方式的多元化,也就無法對各個復(fù)位對象進行集中管理,這就給以后的代碼維護和擴展過程中帶來了很大困難。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種單板復(fù)位對象控制處理方法,克服現(xiàn)有技術(shù)中對單板的不同復(fù)位對象有不同的接口且處理分散的缺點,針對各種復(fù)位對象,提供完善并統(tǒng)一的實現(xiàn)接口,便于實現(xiàn)自動控制處理;并在實施過程中,提供了方便的實施接口,同時預(yù)留了可擴充的接口。
為了實現(xiàn)上述目的,本發(fā)明提供了一種單板復(fù)位對象控制處理方法,其特點在于,該方法是根據(jù)單板中不同復(fù)位對象之間的共性,將不同的復(fù)位對象特征抽象出來,然后調(diào)用統(tǒng)一的復(fù)位對象處理接口進行復(fù)位處理,該復(fù)位處理包括軟復(fù)位處理、硬復(fù)位處理、復(fù)位前的相關(guān)數(shù)據(jù)保存和復(fù)位后的相關(guān)數(shù)據(jù)的恢復(fù)。
上述的單板復(fù)位對象控制處理方法,其特點在于,該方法包括如下步驟步驟1、遍歷復(fù)位對象,獲取當(dāng)前對象的復(fù)位信息;步驟2、判斷獲取的復(fù)位信息中的復(fù)位類型,如果為硬復(fù)位,則將該復(fù)位類型設(shè)置為硬復(fù)位方式,再進入到步驟4;否則,判斷是否為軟復(fù)位方式;
步驟3、如果是軟復(fù)位,再判斷是否為CPU的軟復(fù)位并且是軟件運行的初始狀態(tài),如果該條件成立,則不執(zhí)行復(fù)位處理,并進入到步驟4;否則,將該復(fù)位類型設(shè)置為軟復(fù)位方式,再進入到步驟4;步驟4、進行復(fù)位前的數(shù)據(jù)保存處理;步驟5、根據(jù)步驟1獲取的復(fù)位信息進行復(fù)位處理;步驟6、進行復(fù)位后的數(shù)據(jù)恢復(fù)處理;步驟7、刷新復(fù)位信息;步驟8、遍歷下一個復(fù)位對象,直到遍歷完成后結(jié)束。
上述的單板復(fù)位對象控制處理方法,其特點在于,在步驟5中,對于復(fù)位對象為CPU的復(fù)位處理過程,包含如下步驟第一步、判斷CPU的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則初始化CPU的I/O口,再進入到第三步;不是則判斷CPU的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束CPU的復(fù)位處理過程;否則,繼續(xù)進入到第三步;第三步、初始化CPU的相關(guān)配置,結(jié)束CPU的復(fù)位處理過程。
上述的單板復(fù)位對象控制處理方法,其特點在于,在步驟5中,對于復(fù)位對象為FPGA的復(fù)位處理過程,包含如下步驟第一步、判斷FPGA的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位FPGA芯片,再進入到第三步;不是則判斷FPGA的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束FPGA的復(fù)位處理過程;否則,繼續(xù)進入第三步;第三步、加載FPGA,初始化FPGA寄存器,結(jié)束FPGA的復(fù)位處理過程。
上述的單板復(fù)位對象控制處理方法,其特點在于,在步驟5中,對于復(fù)位對象為IC的復(fù)位處理過程,包含如下步驟第一步、判斷IC的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位IC芯片,再進入到第三步;不是則判斷IC的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束IC的復(fù)位處理過程;否則,繼續(xù)進入第三步;第三步、初始化指定的IC,結(jié)束IC的復(fù)位處理過程。
上述的單板復(fù)位對象控制處理方法,其特點在于,在步驟4中,對復(fù)位前的相關(guān)數(shù)據(jù)保存有兩種方式硬件提供相應(yīng)的寄存器以便軟件將相應(yīng)的狀態(tài)保存以便復(fù)位發(fā)生時用于恢復(fù)相應(yīng)的狀態(tài);軟件本身從相應(yīng)寄存器中讀取配置信息,再通過這些信息恢復(fù)之前的各種狀態(tài)。
另外,在進行復(fù)位控制處理中,為了實現(xiàn)方便,本發(fā)明還提供了一些接口給實施人員,為初始化變量、安裝復(fù)位對象、復(fù)位有無誤碼,更多的可以根據(jù)需要擴充。
根據(jù)本發(fā)明的一個方面,本發(fā)明具有如下優(yōu)點針對各種復(fù)位對象,提供了完善并統(tǒng)一的實現(xiàn)接口,便于實現(xiàn)自動控制處理;在實施過程中,提供了方便的實施接口,同時預(yù)留了可擴充的接口,為后續(xù)的代碼維護和擴展過程中提供了方便。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細(xì)描述,但不作為對本發(fā)明的限定。
圖1是本發(fā)明的單板復(fù)位規(guī)范;圖2是本發(fā)明的復(fù)位集中控制處理流程;圖3是本發(fā)明的具體實施處理流程;圖4是本發(fā)明的CPU復(fù)位處理流程;圖5是本發(fā)明的FPGA復(fù)位處理流程;圖6是本發(fā)明的IC復(fù)位處理流程。
具體實施例方式
本發(fā)明中,主要涉及的復(fù)位對象指CPU、FPGA和IC這三種復(fù)位對象,當(dāng)然,可理解的是,可以根據(jù)系統(tǒng)的需要加入更多的復(fù)位處理對象。
首先從復(fù)位對象講起,三種復(fù)位對象對單板所承載的業(yè)務(wù)的影響程度各不相同,見附表1。本發(fā)明中,涉及的三種復(fù)位對象的復(fù)位類型定義如下硬復(fù)位CPU是指外界直接設(shè)置CPU的RESET而引起的CPU復(fù)位。
軟復(fù)位CPU是指軟件重新運行。
硬復(fù)位IC是指外界直接設(shè)置IC的RESET而引起的IC復(fù)位。
軟復(fù)位IC是指軟件不觸發(fā)硬復(fù)位IC而只是重新初始化指定IC芯片。
硬復(fù)位FPGA是指外界直接設(shè)置FPGA的RESET而引起的FPGA復(fù)位。
軟復(fù)位FPGA是指軟件不觸發(fā)硬復(fù)位FPGA而只是重新加載FPGA程序。
在本發(fā)明中,由于各種復(fù)位對象都有一些共同的特征,都可以進行軟復(fù)位和硬復(fù)位處理,為了減小復(fù)位操作對系統(tǒng)的影響,都需要進行復(fù)位之前的數(shù)據(jù)保存、復(fù)位之后的數(shù)據(jù)恢復(fù)等??紤]到這些的共同特征,可以將這些復(fù)位對象抽象出來,再對這些復(fù)位對象進行自動控制管理,從而提高實現(xiàn)單板復(fù)位處理的效率。因此,本發(fā)明主要是根據(jù)單板中不同復(fù)位對象之間的共性,將不同的復(fù)位對象特征抽象出來,然后調(diào)用統(tǒng)一的復(fù)位對象處理接口進行復(fù)位處理。該復(fù)位處理包括軟復(fù)位處理、硬復(fù)位處理、復(fù)位前的相關(guān)數(shù)據(jù)保存和復(fù)位后的相關(guān)數(shù)據(jù)的恢復(fù)。
如圖2所示,示出了本發(fā)明的單板復(fù)位對象的集中處理方法,包括下列步驟第一步、遍歷復(fù)位對象,獲取當(dāng)前對象的復(fù)位信息;第二步、判斷獲取的復(fù)位信息中的復(fù)位類型,如果為硬復(fù)位,則將該復(fù)位類型設(shè)置為硬復(fù)位方式,再到第四步;否則,判斷是否為軟復(fù)位方式;第三步、如果是軟復(fù)位,再判斷是否為CPU的軟復(fù)位并且是軟件運行的初始狀態(tài),如果該條件成立,則不執(zhí)行復(fù)位處理,再到第四步;否則,將該復(fù)位類型設(shè)置為軟復(fù)位方式;第四步、進行復(fù)位前的數(shù)據(jù)保存處理;第五步、根據(jù)第一步所獲取的復(fù)位信息進行復(fù)位處理;第六步、進行復(fù)位后的數(shù)據(jù)恢復(fù)處理;第七步、刷新復(fù)位信息;第八步、遍歷下一個復(fù)位對象,直到遍歷完成;流程結(jié)束。
下面結(jié)合圖3和實施例對本發(fā)明作進一步的詳細(xì)說明。
為了解決某些承載業(yè)務(wù)的單板出現(xiàn)異?;蛘邽榱藢崿F(xiàn)某方面的要求,需要對單板的某些模塊對象進行復(fù)位操作,本發(fā)明提供了在單板軟件中增加對復(fù)位模塊的集中處理的方法,具體實施步驟如下第一步、直接調(diào)用初始化函數(shù),初始化與復(fù)位模塊相關(guān)的變量;第二步、安裝需要進行復(fù)位管理的對象;第三步、進行初始化階段的復(fù)位處理;第四步、在單板軟件處理完關(guān)鍵配置后,進入主循環(huán)后,判斷有無復(fù)位請求,如果有復(fù)位請求,進入第五步,否則,到第七步執(zhí)行;第五步、設(shè)置復(fù)位信息;第六步、進行單板運行階段的復(fù)位處理,其中如果復(fù)位對象為CPU,則到第一步,否則,繼續(xù);第七步、執(zhí)行其他處理(除復(fù)位處理以外的處理),完畢后開始下一次循環(huán)。
其中,對于不同的復(fù)位對象,其復(fù)位處理的流程相同,內(nèi)容不同。
如圖4所示,示出了CPU復(fù)位處理過程,包括如下步驟第一步、判斷CPU的復(fù)位等級是否為硬復(fù)位方式,如果是硬復(fù)位方式,則初始化CPU的I/O口,再到第三步;不是則判斷CPU的復(fù)位等級是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,流程結(jié)束;否則,繼續(xù);第三步、初始化CPU的相關(guān)配置,如初始化定時器、中斷向量等,流程結(jié)束。
如圖5所示,示出了FPGA復(fù)位處理過程,包括如下步驟第一步、判斷FPGA的復(fù)位等級是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位FPGA芯片,再到第三步;不是則判斷FPGA的復(fù)位等級是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,流程結(jié)束;否則,繼續(xù);第三步、加載FPGA,初始化FPGA寄存器,流程結(jié)束。
如圖6所示,示出了IC復(fù)位處理過程,包括如下步驟第一步、判斷IC的復(fù)位等級是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位IC芯片,再到第三步;不是則判斷IC的復(fù)位等級是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,流程結(jié)束;否則,繼續(xù);
第三步、初始化指定的IC,流程結(jié)束。
本發(fā)明中,對于要求不影響業(yè)務(wù)或者盡量少影響業(yè)務(wù)的復(fù)位處理過程,需要對復(fù)位前的相關(guān)數(shù)據(jù)保存,以便在復(fù)位后對相關(guān)數(shù)據(jù)進行恢復(fù)。對于實現(xiàn)這些相關(guān)數(shù)據(jù)的保存有兩種方式1、硬件提供相應(yīng)的寄存器以便軟件將相應(yīng)的狀態(tài)保存以便復(fù)位發(fā)生時用于恢復(fù)相應(yīng)的狀態(tài);這種方式需要硬件資源提供,同時要求資源充足,避免后期升級導(dǎo)致資源不夠而造成版本不兼容。
2、軟件本身從相應(yīng)寄存器中讀取配置信息,再通過這些信息恢復(fù)之前的各種狀態(tài)。對于寄存器比較多的單板這部分工作比較繁瑣,同時可靠性需要重點考慮。同時有些寄存器可能只寫不讀的,對于這樣的寄存器則無法滿足要求只能按照方式1實現(xiàn)。
當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種單板復(fù)位對象控制處理方法,其特征在于,該方法是根據(jù)單板中不同復(fù)位對象之間的共性,將不同的復(fù)位對象特征抽象出來,然后調(diào)用統(tǒng)一的復(fù)位對象處理接口進行復(fù)位處理,該復(fù)位處理包括軟復(fù)位處理、硬復(fù)位處理、復(fù)位前的相關(guān)數(shù)據(jù)保存和復(fù)位后的相關(guān)數(shù)據(jù)的恢復(fù)。
2.根據(jù)權(quán)利要求1所述的單板復(fù)位對象控制處理方法,其特征在于,該方法包括如下步驟步驟1、遍歷復(fù)位對象,獲取當(dāng)前對象的復(fù)位信息;步驟2、判斷獲取的復(fù)位信息中的復(fù)位類型,如果為硬復(fù)位,則將該復(fù)位類型設(shè)置為硬復(fù)位方式,再進入到步驟4;否則,判斷是否為軟復(fù)位方式;步驟3、如果是軟復(fù)位,再判斷是否為CPU的軟復(fù)位并且是軟件運行的初始狀態(tài),如果該條件成立,則不執(zhí)行復(fù)位處理,并進入到步驟4;否則,將該復(fù)位類型設(shè)置為軟復(fù)位方式,再進入到步驟4;步驟4、進行復(fù)位前的數(shù)據(jù)保存處理;步驟5、根據(jù)步驟1獲取的復(fù)位信息進行復(fù)位處理;步驟6、進行復(fù)位后的數(shù)據(jù)恢復(fù)處理;步驟7、刷新復(fù)位信息;步驟8、遍歷下一個復(fù)位對象,直到遍歷完成后結(jié)束。
3.根據(jù)權(quán)利要求2所述的單板復(fù)位對象控制處理方法,其特征在于,在步驟5中,對于復(fù)位對象為CPU的復(fù)位處理過程,包含如下步驟第一步、判斷CPU的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則初始化CPU的I/O口,再進入到第三步;不是則判斷CPU的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束CPU的復(fù)位處理過程;否則,繼續(xù)進入到第三步;第三步、初始化CPU的相關(guān)配置,結(jié)束CPU的復(fù)位處理過程。
4.根據(jù)權(quán)利要求2所述的單板復(fù)位對象控制處理方法,其特征在于,在步驟5中,對于復(fù)位對象為FPGA的復(fù)位處理過程,包含如下步驟第一步、判斷FPGA的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位FPGA芯片,再進入到第三步;不是則判斷FPGA的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束FPGA的復(fù)位處理過程;否則,繼續(xù)進入第三步;第三步、加載FPGA,初始化FPGA寄存器,結(jié)束FPGA的復(fù)位處理過程。
5.根據(jù)權(quán)利要求2所述的單板復(fù)位對象控制處理方法,其特征在于,在步驟5中,對于復(fù)位對象為IC的復(fù)位處理過程,包含如下步驟第一步、判斷IC的復(fù)位類型是否為硬復(fù)位方式,如果是硬復(fù)位方式,則硬復(fù)位IC芯片,再進入到第三步;不是則判斷IC的復(fù)位類型是否為軟復(fù)位方式;第二步、如果不是軟復(fù)位方式,結(jié)束IC的復(fù)位處理過程;否則,繼續(xù)進入第三步;第三步、初始化指定的IC,結(jié)束IC的復(fù)位處理過程。
6.根據(jù)權(quán)利要求2或3或4或5所述的單板復(fù)位對象控制處理方法,其特征在于,在步驟4中,對復(fù)位前的相關(guān)數(shù)據(jù)保存有兩種方式硬件提供相應(yīng)的寄存器以便軟件將相應(yīng)的狀態(tài)保存以便復(fù)位發(fā)生時用于恢復(fù)相應(yīng)的狀態(tài);軟件本身從相應(yīng)寄存器中讀取配置信息,再通過這些信息恢復(fù)之前的各種狀態(tài)。
全文摘要
本發(fā)明涉及一種單板復(fù)位對象控制處理方法,根據(jù)單板中不同復(fù)位對象之間的共性,將不同的復(fù)位對象特征抽象出來,然后調(diào)用統(tǒng)一的復(fù)位對象處理接口進行復(fù)位處理,該復(fù)位處理包括軟復(fù)位處理、硬復(fù)位處理、復(fù)位前的相關(guān)數(shù)據(jù)保存和復(fù)位后的相關(guān)數(shù)據(jù)的恢復(fù)。本發(fā)明的方法針對各種復(fù)位對象,提供了完善并統(tǒng)一的實現(xiàn)接口,便于實現(xiàn)自動控制處理;并在實施過程中,提供了方便的實施接口,同時預(yù)留了可擴充的接口,為后續(xù)的代碼維護和擴展過程中提供了方便。
文檔編號G06F1/24GK1959594SQ200510095289
公開日2007年5月9日 申請日期2005年11月1日 優(yōu)先權(quán)日2005年11月1日
發(fā)明者彭成, 吳召惠, 羅亞軍 申請人:中興通訊股份有限公司