一種二進制合一Boot程序及內(nèi)核程序的設(shè)計方法
【專利摘要】本發(fā)明公開了一種二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,包括:對不同控制芯片的配置文件進行統(tǒng)一配置,根據(jù)硬件信息標(biāo)識控制芯片,并修改不同控制芯片的代碼流程,以完成Boot程序的二進制合一;統(tǒng)一不同控制芯片的內(nèi)核配置,并進行不同控制芯片的編譯共存配置和運行共存配置,以實現(xiàn)內(nèi)核程序的二進制合一。本發(fā)明的方法可實現(xiàn)同一個軟件版本能在兩種或多種不同的控制芯片上使用。
【專利說明】一種二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及光纖通信【技術(shù)領(lǐng)域】,尤其涉及以太無源光網(wǎng)絡(luò)(EPON),千兆無源光網(wǎng)絡(luò)(GPON),無線第三代移動通信技術(shù)(3G)等綜合接入技術(shù)中的一種二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法。
【背景技術(shù)】
[0002]目前,隨著各種通信業(yè)務(wù)的不斷增長,光網(wǎng)絡(luò)終端主控設(shè)備(ONU)在光纖通信中被廣泛應(yīng)用。相應(yīng)的,ONU控制芯片的種類也逐漸增多,即使同一廠家不同系列的控制芯片也存在很大差異。在軟件設(shè)置時,都是每一款控制芯片對應(yīng)一個軟件版本,如果這樣的設(shè)置方式用到同一款產(chǎn)品上,就會對外場升級和用戶使用帶來很大麻煩。比如:對于同一款產(chǎn)品,先后使用兩種甚至多種不同ARM核的控制芯片,雖然對外是同一款產(chǎn)品,但卻需要提供兩套甚至多套軟件版本,導(dǎo)致外場升級效率低,升級方法過于繁瑣,用戶使用也不方便,管理也比較困難。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明的主要目的在于提供一種二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法,可實現(xiàn)同一個軟件版本能在兩種或多種不同的控制芯片上使用。
[0004]為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0005]本發(fā)明提供了一種二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法,該方法包括:
[0006]對不同控制芯片的配置文件進行統(tǒng)一配置,根據(jù)硬件信息標(biāo)識控制芯片,并修改不同控制芯片的代碼流程,以完成Boot程序的二進制合一;
[0007]統(tǒng)一不同控制芯片的內(nèi)核配置,并進行不同控制芯片的編譯共存配置和運行共存配置,以實現(xiàn)內(nèi)核程序的二進制合一。
[0008]其中,所述對不同控制芯片的配置文件進行統(tǒng)一配置,為:
[0009]將不同控制芯片相沖突的宏分別定義為全局變量,在控制芯片初始化的過程中對所有宏對應(yīng)的沖突項均進行設(shè)計,并對使用沖突項的位置依次進行修改。
[0010]其中,所述硬件信息包括:通用輸入/輸出GPIO接口信息或處理器類型信息。
[0011]其中,所述編譯共存配置為:使用同一套配置,將一個或者多個控制芯片的板級支持包BSP代碼整合到其中一個控制芯片的BSP中。
[0012]進一步地,該方法還包括二進制合一 Boot程序的啟動方法,包括:
[0013]系統(tǒng)上電,Boot程序開始啟動,獲取控制芯片類型;
[0014]判斷控制芯片類型,如果是ARM9核控制芯片,則初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件;如果是ARMll核控制芯片,則初始化ARMl I核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件;
[0015]檢測文件系統(tǒng)類型,并初始化文件系統(tǒng);
[0016]判斷flash上的版本文件是否完整有效,如果是完整有效版本,則啟動系統(tǒng)主版本;否則,返回Boot命令行,提示無有效版本。
[0017]進一步地,該方法還包括:二進制合一 Boot程序的升級方法,分為:Boot命令行下的升級,以及帶內(nèi)升級,即版本啟動后,通過網(wǎng)管進行的遠程升級。
[0018]其中,所述Boot程序在Boot命令行下的升級方法包括:
[0019]搭建Boot命令行下升級Boot程序的設(shè)備環(huán)境;上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);執(zhí)行更新命令,升級二進制合一 Boot程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0020]其中,所述Boot程序帶內(nèi)升級方法包括:
[0021]搭建版本啟動后升級Boot程序的設(shè)備環(huán)境;0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);執(zhí)行Boot程序升級命令,升級二進制合一 Boot程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0022]進一步地,該方法還包括二進制合一內(nèi)核程序的啟動方法,包括:
[0023]系統(tǒng)上電,內(nèi)核程序開始啟動,獲取控制芯片類型;
[0024]判斷控制芯片類型,如果是ARM9核控制芯片,則初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARM9單板相關(guān)外設(shè)的驅(qū)動程序;如果是ARMll核控制芯片,則初始化ARMll核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARMll單板相關(guān)外設(shè)的驅(qū)動程序;
[0025]兼容ARMV6和ARMV4兩種體系結(jié)構(gòu)編碼,使運行共存;
[0026]檢測文件系統(tǒng)類型,初始化文件系統(tǒng);
[0027]判斷flash上的用戶態(tài)版本文件是否完整有效,如果是,則啟動用戶態(tài)版本;否貝1J,返回內(nèi)核shell命令行,提示無有效用戶態(tài)版本。
[0028]進一步地,該方法還包括:二進制合一內(nèi)核程序的升級方法,分為=Boot命令行下的升級,以及帶內(nèi)升級。
[0029]其中,所述內(nèi)核程序在Boot命令行下的升級方法包括:
[0030]搭建Boot命令行下升級內(nèi)核程序的設(shè)備環(huán)境;上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);執(zhí)行版本升級命令,升級二進制合一內(nèi)核程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0031]其中,所述內(nèi)核程序帶內(nèi)升級方法包括:
[0032]搭建版本啟動后升級內(nèi)核程序的設(shè)備環(huán)境;0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);執(zhí)行版本升級命令,升級二進制合一內(nèi)核程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0033]本發(fā)明提供的二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法,對不同控制芯片的配置文件進行統(tǒng)一配置,根據(jù)處理器的類型標(biāo)識控制芯片,并修改不同控制芯片的代碼流程,以完成Boot程序的二進制合一;統(tǒng)一不同控制芯片的內(nèi)核配置,并進行編譯共存配置和運行共存配置,以實現(xiàn)內(nèi)核程序的二進制合一。本發(fā)明可實現(xiàn)同一軟件版本能在兩種不同的控制芯片上使用,不需要額外增加硬件成本,可移植性好。
[0034]此外,本發(fā)明的Boot程序及內(nèi)核程序在升級過程中,一個版本可以升級到兩種不同的控制芯片上,便于外場升級和版本管理,版本升級效率和穩(wěn)定性都大大提高,且使用方便,降低了系統(tǒng)的維護成本。
【專利附圖】
【附圖說明】
[0035]圖1為本發(fā)明二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法流程圖;[0036]圖2為本發(fā)明設(shè)置的控制芯片Boot程序?qū)嵤├慕M成結(jié)構(gòu)示意圖;
[0037]圖3為本發(fā)明Boot程序的啟動方法實現(xiàn)流程圖;
[0038]圖4本發(fā)明Boot程序在Boot命令行下的升級方法流程示意圖;
[0039]圖5為本發(fā)明Boot程序帶內(nèi)升級方法的流程示意圖;
[0040]圖6為本發(fā)明內(nèi)核程序的啟動方法實現(xiàn)流程圖;
[0041]圖7為本發(fā)明內(nèi)核程序在Boot命令行下的升級方法流程示意圖;
[0042]圖8為本發(fā)明內(nèi)核程序帶內(nèi)升級方法的流程示意圖。
【具體實施方式】
[0043]本發(fā)明的基本思想是:對兩個或者多個不同控制芯片的配置文件進行統(tǒng)一配置,根據(jù)硬件信息標(biāo)識控制芯片,并修改不同控制芯片的代碼流程,以完成Boot程序的二進制合一;統(tǒng)一不同控制芯片的內(nèi)核配置,并進行不同控制芯片的編譯共存配置和運行共存配置,以實現(xiàn)內(nèi)核程序的二進制合一。
[0044]進一步地,本發(fā)明還包括:二進制合一 Boot程序的啟動方法,以及二進制合一內(nèi)核程序的啟動方法。
[0045]進一步地,本發(fā)明還包括:二進制合一 Boot程序的升級方法,以及二進制合一內(nèi)核程序的升級方法。
[0046]下面結(jié)合附圖及具體實施例對本發(fā)明作進一步詳細說明。
[0047]本發(fā)明所述的ONU主控板,即ONU的控制芯片,一方面完成ONU系統(tǒng)的控制和數(shù)據(jù)交換功能,另一方面負責(zé)對各種線卡的管理,包括線卡的上下線處理、線卡的版本管理等。無源光網(wǎng)絡(luò)(PON)子卡通過光分路器完成與EP0N/GP0N光線路終端(OLT)系統(tǒng)的對接,同時完成與主控板的數(shù)據(jù)交互。基于網(wǎng)絡(luò)層協(xié)議的語音(VOIP)子卡完成對模擬電話業(yè)務(wù)(POTS)用戶提供多路VOIP接入;E1子卡主要完成El業(yè)務(wù)到以太網(wǎng)的轉(zhuǎn)換與恢復(fù);電源板主要提供系統(tǒng)的電源。
[0048]圖1為本發(fā)明二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法流程圖,如圖1所示,該流程的實現(xiàn)步驟如下:
[0049]步驟101:對不同控制芯片的配置文件進行統(tǒng)一配置;
[0050]具體為:對于不同的控制芯片,通常常見的沖突項包括:內(nèi)存基址、內(nèi)存大小、flash基址、flash大小及其他外設(shè)基址等。這里,將不同控制芯片相沖突的宏分別定義為全局變量,在控制芯片初始化的過程中對所有宏對應(yīng)的沖突項均進行設(shè)置,并對使用沖突項的位置依次進行修改。
[0051]以flash配置沖突為例,相關(guān)的沖突宏為CFG_FLASH_BASE和CFG_FLASH_SIZE,則將這兩個宏定義為全局變量_g_CFG_FLASH_BASE和_g_CFG_FLASH_SIZE,如果有其他宏使用了 CFG_FLASH_BASE與CFG_FLASH_SIZE,就將使用的宏修改為對應(yīng)的變量_g_CFG_FLASH_BASE 或 _g_CFG_FLASH_SIZE。
[0052]步驟102:根據(jù)硬件信息標(biāo)識控制芯片;
[0053]具體為:不同的控制芯片都有特定的識別方式,這種識別方式可以通過控制芯片獨特的硬件信息進行標(biāo)識,可使用的硬件信息有通用輸入/輸出(GPIO)接口信息或者處理器類型信息。以ARM系列處理器為例,協(xié)處理器CP15的寄存器O中有處理器的相關(guān)信息,通過該寄存器可以判斷當(dāng)前處理器是ARM9還是ARMlI。這里,可通過設(shè)計接口 detect控制芯片來探測當(dāng)前處理器的類型。
[0054]步驟103:修改不同控制芯片的代碼流程;
[0055]具體為:對不同控制芯片的代碼流程進行修改,在消除代碼統(tǒng)一后的編譯錯誤之后,從控制芯片上電后初始化代碼開始,使用if-else結(jié)構(gòu)控制不同控制芯片的代碼流程,直到控制芯片初始化結(jié)束,進入統(tǒng)一流程。
[0056]上述步驟101-103的操作完成了 Boot程序的二進制合一,該方法主要使用類似if-else指令控制程序根據(jù)控制芯片的不同類型進行各自的流程,直到控制芯片的初始化結(jié)束。
[0057]圖2為本發(fā)明設(shè)置的控制芯片Boot程序?qū)嵤├慕M成結(jié)構(gòu)示意圖,如圖2所示,包括:版本頭部和版本主體;其中,
[0058]所述版本頭部占用256個字節(jié),包括:版本號、版本功能,即對應(yīng)的控制芯片類型、版本類型,表明所述程序為Boot程序、版本的創(chuàng)建時間、版本頭的長度、整個版本的大小、版本頭的校驗和、Boot掩碼信息和保留信息;所述版本主體即Boot版本鏡像,即Boot程序的有效代碼。
[0059]步驟104:統(tǒng)一不同控制芯片的內(nèi)核配置;
[0060]這部分主要統(tǒng)一兩個或多個不同控制芯片的內(nèi)核配置項,使用同一套配置,能夠編譯出在不同控制芯片上都能運行正常的映像。
[0061]步驟105:不同控制芯片的編譯共存配置;
[0062]這里,所述編譯共存配置是指:使用同一套配置,將一個或者多個控制芯片的板級支持包(Board Support Package,BSP)代碼整合到其中一個控制芯片的BSP中。以ARMll和ARM9控制芯片的整合為例,將ARMl I控制芯片的BSP整合到ARM9控制芯片中,編譯完成。
[0063]由于不同控制芯片沖突的宏較多,且取值也不同,因此將所有有沖突的宏定義采取改名的方式進行整合;控制芯片相關(guān)的代碼,以不同的控制芯片目錄進行區(qū)分;驅(qū)動代碼也進行區(qū)分,其中,各個控制芯片可以共用通用的驅(qū)動;而對于某些控制芯片特有的驅(qū)動,則僅為該控制芯片使用。
[0064]所有控制芯片的所有模塊都加載,在模塊加載與卸載的時候,首先判斷處理器類型,如果不是本控制芯片,直接返回;因此在后續(xù)執(zhí)行的過程中,控制芯片初始化代碼與驅(qū)動代碼都不會混合。
[0065]步驟106:不同控制芯片的運行共存配置;
[0066]這里,所述運行共存是二進制合一調(diào)試的關(guān)鍵,主要在于不同版本處理器指令的統(tǒng)一。由于同一個架構(gòu)的處理器,通常高版本處理器能夠兼容低版本處理器的指令,因此,可提取包含高版本處理器指令的代碼,將這部分代碼使用高版本處理器指令去編譯。
[0067]以ARMll和ARM9的統(tǒng)一為例,需對ARMV6與ARMV4都進行配置,ARMV6的代碼使用ARMV6指令去編譯。
[0068]這樣處理之后,內(nèi)核能夠同時支持不同版本的處理器。內(nèi)核程序二進制合一設(shè)置之后,再和用戶態(tài)代碼一起編譯出系統(tǒng)的二進制合一版本。
[0069]上述步驟104-106的操作完成了內(nèi)核程序的二進制合一,由于不同控制芯片的處理器類型存在差異,涉及一些擴展指令,以及不同宏控制的代碼,因此內(nèi)核程序二進制合一相對復(fù)雜,但是基本思想與Boot程序類似。
[0070]當(dāng)然,由于上述過程均在系統(tǒng)啟動之前完成的,所以上述步驟101-103可與步驟104-106的操作可以相互調(diào)換。
[0071]本發(fā)明還提供了一種Boot程序的啟動方法,如圖3所示,實現(xiàn)步驟如下:
[0072]步驟301:系統(tǒng)上電,Boot程序開始啟動,獲取控制芯片類型;
[0073]步驟302:判斷控制芯片類型,如果是ARM9核控制芯片,則執(zhí)行步驟303 ;如果是ARMll核控制芯片,則執(zhí)行步驟304 ;
[0074]步驟303:初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,之后執(zhí)行步驟305 ;
[0075]所述外圍硬件包括:內(nèi)存,flash,網(wǎng)口,串口等設(shè)備。
[0076]步驟304:初始化ARMll核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件;
[0077]所述外圍硬件包括:內(nèi)存,flash,網(wǎng)口,串口等設(shè)備。
[0078]步驟305:檢測文件系統(tǒng)類型,即:檢測flash上的文件系統(tǒng)類型,并初始化文件系統(tǒng);
[0079]步驟306:判斷flash上的版本文件是否完整有效,主要是檢查主程序的掩碼,大小,校驗和等,如果是完整有效版本,則執(zhí)行步驟307 ;否則,跳轉(zhuǎn)到步驟308 ;
[0080]步驟307:啟動系統(tǒng)主版本;
[0081 ] 步驟308:返回Boot命令行,提示無有效版本。
[0082]進一步地,本發(fā)明還包括Boot程序的升級方法,分為=Boot命令行下的升級,以及帶內(nèi)升級,即版本啟動后,通過網(wǎng)管進行的遠程升級。
[0083]圖4為本發(fā)明Boot程序在Boot命令行下的升級方法流程示意圖,如圖4所示,實現(xiàn)流程如下:
[0084]步驟401:搭建Boot命令行下升級Boot程序的設(shè)備環(huán)境;
[0085]具體為:把ONU通過網(wǎng)線和串口線連接到PC機,在PC機側(cè)打開簡單文件傳輸協(xié)議(TFTP)客戶端,準(zhǔn)備好需要升級的Boot程序。
[0086]步驟402:上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);
[0087]具體為:上電啟動0NU,在Boot啟動的過程中按回車鍵,進入Boot命令行,輸入c命令,配置ONU側(cè)和TFTP服務(wù)器側(cè)的IP地址在同一網(wǎng)段。
[0088]步驟403:執(zhí)行更新命令,即執(zhí)行Boot程序升級命令,升級二進制合一 Boot程序;
[0089]步驟404:升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0090]圖5為本發(fā)明Boot程序帶內(nèi)升級方法的流程示意圖,如圖5所示,實現(xiàn)流程如下:
[0091]步驟501:搭建版本啟動后升級Boot程序的設(shè)備環(huán)境;
[0092]具體為:把ONU通過網(wǎng)線連接到PC機,在PC機側(cè)打開WFTP客戶端,準(zhǔn)備好需要升級的Boot程序。
[0093]步驟502:0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);
[0094]具體為:0NU上電啟動,版本啟動后,通過PC機遠程登錄到主控板,即控制芯片,控制芯片遠程配置ONU的IP地址和vlan參數(shù)。
[0095]步驟503:執(zhí)行Boot程序升級命令,升級二進制合一 Boot程序;
[0096]步驟504:升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。[0097]本發(fā)明還提供了一種內(nèi)核程序的啟動方法,如圖6所示,實現(xiàn)步驟如下:
[0098]步驟601:系統(tǒng)上電,內(nèi)核程序開始啟動,獲取控制芯片類型;
[0099]步驟602:判斷控制芯片類型,如果是ARM9核控制芯片,則執(zhí)行步驟603 ;如果是ARMll核控制芯片,則執(zhí)行步驟604 ;
[0100]步驟603:初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARM9單板相關(guān)外設(shè)的驅(qū)動程序,之后執(zhí)行步驟605 ;
[0101]所述外圍硬件包括:內(nèi)存,flash,網(wǎng)口,串口等設(shè)備。
[0102]步驟604:初始化ARMll核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARMll單板相關(guān)外設(shè)的驅(qū)動程序;
[0103]所述外圍硬件包括:內(nèi)存,flash,網(wǎng)口,串口等設(shè)備。
[0104]步驟605:兼容ARMV6和ARMV4兩種體系結(jié)構(gòu)編碼,使運行共存;
[0105]步驟606:檢測文件系統(tǒng)類型,即:檢測flash上的文件系統(tǒng)類型,初始化文件系統(tǒng);
[0106]步驟607:判斷flash上的用戶態(tài)版本文件是否完整有效,主要是檢查主程序的掩碼,大小,校驗和等,如果是完整有效版本,則執(zhí)行步驟608 ;否則,跳轉(zhuǎn)到步驟609 ;
[0107]步驟608:啟動用戶態(tài)版本;
[0108]步驟609:返回內(nèi)核she 11命令行,提示無有效用戶態(tài)版本。
[0109]進一步地,本發(fā)明還包括內(nèi)核程序的升級方法,分為=Boot命令行下的升級,以及帶內(nèi)升級,即版本啟動后,通過網(wǎng)管進行遠程升級。
[0110]圖7為本發(fā)明內(nèi)核程序在Boot命令行下的升級方法流程示意圖,如圖7所示,實現(xiàn)流程如下:
[0111]步驟701:搭建Boot命令行下升級內(nèi)核程序的設(shè)備環(huán)境;
[0112]具體為:把ONU通過網(wǎng)線和串口線連接到PC機,在PC機側(cè)打開TFTP客戶端,準(zhǔn)備好需要升級的二進制合一內(nèi)核程序。
[0113]步驟702:上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);
[0114]具體為:上電啟動0NU,在Boot啟動的過程中按回車鍵,進入Boot命令行,輸入c命令,配置ONU側(cè)和TFTP服務(wù)器側(cè)的IP地址在同一網(wǎng)段。
[0115]步驟703:執(zhí)行版本升級命令,升級二進制合一內(nèi)核程序,即升級二進制合一版本程序;
[0116]步驟704:升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0117]圖8為本發(fā)明內(nèi)核程序帶內(nèi)升級方法的流程示意圖,如圖8所示,實現(xiàn)流程如下:
[0118]步驟801:搭建版本啟動后升級內(nèi)核程序的設(shè)備環(huán)境;
[0119]具體為:把ONU通過網(wǎng)線連接到PC機,在PC機側(cè)打開WFTP客戶端,準(zhǔn)備好需要升級的二進制合一內(nèi)核程序。
[0120]步驟802:0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);
[0121]具體為:0NU上電啟動,版本啟動后,通過PC機遠程登錄到控制芯片,控制芯片遠程配置ONU的IP地址和vlan參數(shù)。
[0122]步驟803:執(zhí)行版本升級命令,升級二進制合一內(nèi)核程序,即升級二進制合一版本程序;[0123]步驟804:升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
[0124]以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種二進制合一 Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,該方法包括: 對不同控制芯片的配置文件進行統(tǒng)一配置,根據(jù)硬件信息標(biāo)識控制芯片,并修改不同控制芯片的代碼流程,以完成Boot程序的二進制合一; 統(tǒng)一不同控制芯片的內(nèi)核配置,并進行不同控制芯片的編譯共存配置和運行共存配置,以實現(xiàn)內(nèi)核程序的二進制合一。
2.根據(jù)權(quán)利要求1所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述對不同控制芯片的配置文件進行統(tǒng)一配置,為: 將不同控制芯片相沖突的宏分別定義為全局變量,在控制芯片初始化的過程中對所有宏對應(yīng)的沖突項均進行設(shè)計,并對使用沖突項的位置依次進行修改。
3.根據(jù)權(quán)利要求1所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述硬件信息包括:通用輸入/輸出GPIO接口信息或處理器類型信息。
4.根據(jù)權(quán)利要求1所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述編譯共存配置為:使用同一套配置,將一個或者多個控制芯片的板級支持包BSP代碼整合到其中一個控制芯片的BSP中。
5.根據(jù)權(quán)利要求1至4任一項所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,該方法還包括二進制合一 Boot程序的啟動方法,包括: 系統(tǒng)上電,Boot程序開始啟動,獲取控制芯片類型; 判斷控制芯片類型,如果是ARM9核控制芯片,則初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件;如果是ARMll核控制芯片,則初始化ARMl I核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件; 檢測文件系統(tǒng)類型,并初始化文件系統(tǒng); 判斷flash上的版本文件是否完整有效,如果是完整有效版本,則啟動系統(tǒng)主版本;否貝U,返回Boot命令行,提示無有效版本。
6.根據(jù)權(quán)利要求1至4任一項所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,該方法還包括:二進制合一 Boot程序的升級方法,分為:Boot命令行下的升級,以及帶內(nèi)升級,即版本啟動后,通過網(wǎng)管進行的遠程升級。
7.根據(jù)權(quán)利要求6所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述Boot程序在Boot命令行下的升級方法包括: 搭建Boot命令行下升級Boot程序的設(shè)備環(huán)境;上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);執(zhí)行更新命令,升級二進制合一 Boot程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
8.根據(jù)權(quán)利要求6所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述Boot程序帶內(nèi)升級方法包括: 搭建版本啟動后升級Boot程序的設(shè)備環(huán)境;0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);執(zhí)行Boot程序升級命令,升級二進制合一 Boot程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
9.根據(jù)權(quán)利要求1至4任一項所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,該方法還包括二進制合一內(nèi)核程序的啟動方法,包括: 系統(tǒng)上電,內(nèi)核程序開始啟動,獲取控制芯片類型; 判斷控制芯片類型,如果是ARM9核控制芯片,則初始化ARM9核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARM9單板相關(guān)外設(shè)的驅(qū)動程序;如果是ARMll核控制芯片,則初始化ARMll核控制芯片控制器的寄存器,初始化系統(tǒng)外圍硬件,加載ARMll單板相關(guān)外設(shè)的驅(qū)動程序; 兼容ARMV6和ARMV4兩種體系結(jié)構(gòu)編碼,使運行共存; 檢測文件系統(tǒng)類型,初始化文件系統(tǒng); 判斷flash上的用戶態(tài)版本文件是否完整有效,如果是,則啟動用戶態(tài)版本;否則,返回內(nèi)核shell命令行,提示無有效用戶態(tài)版本。
10.根據(jù)權(quán)利要求1至4任一項所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,該方法還包括:二進制合一內(nèi)核程序的升級方法,分為=Boot命令行下的升級,以及帶內(nèi)升級。
11.根據(jù)權(quán)利要求10所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述內(nèi)核程序在Boot命令行下的升級方法包括: 搭建Boot命令行下升級內(nèi)核程序的設(shè)備環(huán)境;上電啟動0NU,并配置網(wǎng)絡(luò)參數(shù);執(zhí)行版本升級命令,升級二進制合一內(nèi)核程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
12.根據(jù)權(quán)利要求10所述的二進制合一Boot程序及內(nèi)核程序的設(shè)計方法,其特征在于,所述內(nèi)核程序帶內(nèi)升級方法包括: 搭建版本啟動后升級內(nèi)核程序的設(shè)備環(huán)境;0NU上電啟動,配置網(wǎng)絡(luò)參數(shù);執(zhí)行版本升級命令,升級二進制合一內(nèi)·核程序;升級成功后,重啟ONU設(shè)備,運行系統(tǒng)新版本。
【文檔編號】G06F9/445GK103823664SQ201210468412
【公開日】2014年5月28日 申請日期:2012年11月19日 優(yōu)先權(quán)日:2012年11月19日
【發(fā)明者】張耀東, 徐嚴濤, 丁忠林 申請人:中興通訊股份有限公司