專(zhuān)利名稱(chēng):一種基站中加載程序的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種基站中加載程序的方法和系統(tǒng)。
背景技術(shù):
在無(wú)線接入網(wǎng)的應(yīng)用環(huán)境中,基站系統(tǒng)都位于獨(dú)立機(jī)房中,且多遠(yuǎn)離工作辦公環(huán)境,因此現(xiàn)場(chǎng)維護(hù)不太方便。為確?;鞠到y(tǒng)的穩(wěn)定運(yùn)行,對(duì)系統(tǒng)程序和應(yīng)用程序采用了雙備份的方式進(jìn)行版 本保護(hù)設(shè)計(jì)。即當(dāng)主版本運(yùn)行錯(cuò)誤,無(wú)法正常運(yùn)行時(shí),會(huì)重新加載備份版本,以備份版本進(jìn)行系統(tǒng)運(yùn)行。在現(xiàn)有技術(shù)方案中,主要對(duì)內(nèi)核映像、文件系統(tǒng)、其他各種應(yīng)用程序,應(yīng)用程序包括軟件和固件(固化的軟件,寫(xiě)入可編程只讀存儲(chǔ)器中的程序),進(jìn)行雙備份存儲(chǔ)。在程序運(yùn)行上執(zhí)行主版本的內(nèi)核映像啟動(dòng)運(yùn)行出現(xiàn)致命錯(cuò)將以備份版本內(nèi)核映像重新啟動(dòng),執(zhí)行主版本的文件系統(tǒng)加載失敗將以備份版本的文件系統(tǒng)重新加載,執(zhí)行主版本的各類(lèi)應(yīng)用程序啟動(dòng)加載出現(xiàn)致命錯(cuò)將以備份版本相應(yīng)的各類(lèi)應(yīng)用程序重新加載運(yùn)行。但是,在現(xiàn)有技術(shù)中沒(méi)有實(shí)現(xiàn)對(duì)操作系統(tǒng)的啟動(dòng)引導(dǎo)程序(boot)的版本備份保護(hù),一旦啟動(dòng)引導(dǎo)程序遭到破壞,直接后果是整個(gè)板卡崩潰,只能人工到機(jī)房更換板卡或插拔板卡重新用燒錄工具燒寫(xiě)啟動(dòng)引導(dǎo)程序。
發(fā)明內(nèi)容
本發(fā)明提供了一種基站中加載程序的方法和系統(tǒng),以解決由于啟動(dòng)引導(dǎo)程序遭到破壞,而導(dǎo)致整個(gè)板卡崩潰的問(wèn)題。本發(fā)明公開(kāi)了一種基站中加載程序的方法,所述方法包括存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序;復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序;如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。較佳的,所述根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序具體包括在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。較佳的,所述在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字后還包括當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào);所述如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序具體包括如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),將從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。
較佳的,所述定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序后還包括如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。較佳的,所述方法還包括存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序的程序;
通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。 較佳的,所述方法還包括將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域;將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域;將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。較佳的,所述方法還包括存儲(chǔ)應(yīng)用程序的主程序和備份程序;所述通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序具體包括當(dāng)加載系統(tǒng)程序時(shí),加載系統(tǒng)程序的主程序,如果加載失敗,則加載系統(tǒng)程序的備份程序;當(dāng)加載應(yīng)用程序的主程序和備份程序均失敗時(shí),則加載最小程序,通過(guò)最小程序與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。本發(fā)明還公開(kāi)了一種基站中加載程序的系統(tǒng),所述系統(tǒng)包括存儲(chǔ)模塊,用于存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序;主程序加載模塊,用于復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序;備份程序加載模塊,用于在主啟動(dòng)引導(dǎo)程序加載失敗時(shí),根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。較佳的,所述主程序加載模塊在根據(jù)主啟動(dòng)弓I導(dǎo)程序的地址加載主啟動(dòng)弓I導(dǎo)程序時(shí)具體用于在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。較佳的,所述主程序加載模塊還用于當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào);所述備份程序加載模塊具體用于如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。較佳的,所述主程序加載模塊還用于如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。較佳的,存儲(chǔ)模塊還用于存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序的程序;所述系統(tǒng)還包括
最小程序加載模塊,用于通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。較佳的,存儲(chǔ)模塊還用于將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域;將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域;將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。本發(fā)明的有益效果是本發(fā)明通過(guò)存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序,復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序,進(jìn)行啟動(dòng),如果主啟動(dòng)引導(dǎo)程序無(wú)法正常啟動(dòng),則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序,進(jìn)行啟動(dòng);能夠?qū)?dòng)引導(dǎo)程序進(jìn)行雙備份,當(dāng)主啟動(dòng)引導(dǎo)程序啟動(dòng)失敗時(shí),能夠使用備份引導(dǎo)程序完成啟動(dòng),避免了由于啟動(dòng)引導(dǎo)程序遭到破壞,而導(dǎo)致整個(gè)板卡崩潰。
圖I為本發(fā)明實(shí)施例一中加載啟動(dòng)引導(dǎo)程序的方法的流程圖。
圖2為本發(fā)明實(shí)施例一中加載啟動(dòng)引導(dǎo)程序的方法示例性說(shuō)明的流程圖。圖3為本發(fā)明實(shí)施例一中加載啟動(dòng)引導(dǎo)程序的方法示例性說(shuō)明的數(shù)據(jù)流示意圖。圖4為本發(fā)明實(shí)施例二中加載程序的方法中存儲(chǔ)介質(zhì)分區(qū)的流程圖。圖5為本發(fā)明實(shí)施例二中加載程序的方法中存儲(chǔ)介質(zhì)分區(qū)的示例性說(shuō)明的示意圖。圖6為本發(fā)明實(shí)施例三中加載應(yīng)用程序的方法中示例性說(shuō)明的流程圖。圖7為本發(fā)明實(shí)施例四中加載應(yīng)用程序的方法中示例性說(shuō)明的示意圖。圖8為本發(fā)明實(shí)施例五中加載引導(dǎo)程序的系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例一參見(jiàn)圖1,為本發(fā)明實(shí)施例一中提供的加載程序的方法的流程圖。本實(shí)施例中對(duì)啟動(dòng)引導(dǎo)程序進(jìn)行加載,具體包括如下步驟。步驟S100,存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序。步驟S200,復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序。步驟S300,如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。由于啟動(dòng)引導(dǎo)程序用于引導(dǎo)進(jìn)入系統(tǒng),對(duì)其無(wú)法應(yīng)用系統(tǒng)中功能實(shí)現(xiàn)主版本與備份版本間的切換,其無(wú)法采用現(xiàn)有技術(shù)中的系統(tǒng)程序和應(yīng)用程序的主版本與備份版本間切換方式實(shí)現(xiàn)切換。進(jìn)一步地,所述根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序具體包括在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。有效周期內(nèi)的復(fù)位包括上電復(fù)位、硬件復(fù)位、和軟件復(fù)位。進(jìn)一步地,所述在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字后還包括當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào)??梢酝ㄟ^(guò)選擇外圍電路將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào)。所述如果主啟動(dòng)引導(dǎo)程序加載失敗,根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序具體包括如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。進(jìn)一步地,所述定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序后還包括如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)??梢酝ㄟ^(guò)10(輸入輸出)設(shè)置將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。參見(jiàn)圖2,為本發(fā)明實(shí)施例一中加載啟動(dòng)引導(dǎo)程序的方法示例性說(shuō)明的流程圖。
在該示例性具體實(shí)施方式
中,加載啟動(dòng)引導(dǎo)程序的方法包括如下步驟。步驟S201,存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序。步驟S202,確定復(fù)位信號(hào)生效。步驟S203,從主復(fù)位配置字源加載硬件配置字,確定主啟動(dòng)引導(dǎo)程序地址。如圖3所示,微處理器依據(jù)復(fù)位配置字源的輸入信號(hào)確定主啟動(dòng)引導(dǎo)程序地址。步驟S204,確定復(fù)位信號(hào)無(wú)效。步驟S205,將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào)。此時(shí),復(fù)位配置字源從主復(fù)位配置字源切換至備份復(fù)位配置字源。步驟S206,按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序。如圖3所示,微處理器依據(jù)確定的主啟動(dòng)引導(dǎo)程序地址從閃存中加載主啟動(dòng)引導(dǎo)程序。步驟S207,判斷主啟動(dòng)引導(dǎo)程序是否加載成功,如果是,執(zhí)行步驟S208,否則,執(zhí)行步驟S209。步驟S208,將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。此時(shí),復(fù)位配置字源恢復(fù)為主復(fù)位配置字源。步驟S209,保持復(fù)位配置字源的輸入信號(hào)為備份復(fù)位配置字源所用信號(hào),以備份啟動(dòng)引導(dǎo)程序?yàn)橹鲉?dòng)引導(dǎo)程序。通過(guò)該步驟,以圖3中的備份啟動(dòng)引導(dǎo)程序?yàn)楹罄m(xù)執(zhí)行操作中的主啟動(dòng)引導(dǎo)程序。步驟S210,復(fù)位重新啟動(dòng),執(zhí)行步驟S202。在本示例性實(shí)施方式說(shuō)明中,如果主啟動(dòng)引導(dǎo)程序加載失敗,則經(jīng)過(guò)上述切換后,再次復(fù)位啟動(dòng)后,將加載主復(fù)位配置字(即原備份復(fù)位配置字),從而確定主啟動(dòng)引導(dǎo)程序地址(即原備份啟動(dòng)引導(dǎo)程序地址),從主啟動(dòng)引導(dǎo)程序地址啟動(dòng)。至此,完成一次主備啟動(dòng)引導(dǎo)程序切換。實(shí)施例二現(xiàn)有技術(shù)中,存在永久性存儲(chǔ)媒介文件丟失后系統(tǒng)無(wú)法正常運(yùn)行的風(fēng)險(xiǎn)。現(xiàn)有技術(shù)中,由于移動(dòng)運(yùn)營(yíng)商的要求,對(duì)基站的所有內(nèi)核映像、文件系統(tǒng)和其他各種應(yīng)用程序,包括軟件文件和固件文件的主程序和備份程序均要求可升級(jí),因此,存放這些程序的永久性存儲(chǔ)媒介對(duì)應(yīng)的區(qū)塊(比如閃存),均要求可擦可寫(xiě)。而現(xiàn)有技術(shù)中的永久性存儲(chǔ)媒介都是按塊操作先擦后寫(xiě)來(lái)進(jìn)行文件存儲(chǔ)。因此,在程序更新過(guò)程中,可能會(huì)由于程序擦寫(xiě)異?;虿翆?xiě)時(shí)供電異常等情況而導(dǎo)致一些文件丟失,特別是主程序文件和備份程序文件都有丟失時(shí),會(huì)導(dǎo)致系統(tǒng)無(wú)法正常啟動(dòng)和運(yùn)行。此外,在基站正常運(yùn)行過(guò)程中也存在存儲(chǔ)程序丟失的風(fēng)險(xiǎn)。由于基站運(yùn)行過(guò)程中,需要對(duì)永久性存儲(chǔ)媒介進(jìn)行相應(yīng)的文件寫(xiě)信息操作(比如保存相關(guān)配置信息和日志信息等),一旦出現(xiàn)寫(xiě)出錯(cuò)或?qū)憰r(shí)供電異常等情況下,其他的一些重要程序可能會(huì)同時(shí)丟失。圖4為本發(fā)明實(shí)施例二中加載程序的方法中存儲(chǔ)介質(zhì)分區(qū)的流程圖。本發(fā)明實(shí)施例二中方法除上述步驟外,還包括如下步驟。步驟S410,將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域。
步驟S420,將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域。步驟S430,將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。進(jìn)一步地,所述系統(tǒng)程序包括內(nèi)核映像程序和文件系統(tǒng)程序。進(jìn)一步地,所述文件包括運(yùn)行所需的配置文件和運(yùn)行中產(chǎn)生的日志文件。所述方法還包括針對(duì)存儲(chǔ)的主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、內(nèi)核映像的主程序、內(nèi)核映像的備份程序、文件系統(tǒng)的主程序、以及文件系統(tǒng)的備份程序,將專(zhuān)用區(qū)域分區(qū)。每個(gè)分區(qū)存儲(chǔ)對(duì)應(yīng)的程序。進(jìn)一步地,所述方法還包括針對(duì)存儲(chǔ)的應(yīng)用的主程序和備份程序,以及運(yùn)行所用的文件,將通用區(qū)域分區(qū);每個(gè)分區(qū)存儲(chǔ)對(duì)應(yīng)的程序或文件。參見(jiàn)圖5,為本發(fā)明實(shí)施例二中加載程序的方法中存儲(chǔ)介質(zhì)分區(qū)的示例性說(shuō)明的示意圖。永久性存儲(chǔ)媒介分區(qū)保護(hù)技術(shù)方案如下所述,以FLASH為實(shí)施例說(shuō)明。FLASH分區(qū)中劃分為操作系統(tǒng)分區(qū)包括主啟動(dòng)引導(dǎo)程序存儲(chǔ)分區(qū)、備份啟動(dòng)引導(dǎo)程序存儲(chǔ)分區(qū)、主內(nèi)核映像存儲(chǔ)分區(qū)、備份內(nèi)核映像存儲(chǔ)分區(qū)、主文件系統(tǒng)存儲(chǔ)分區(qū)、備份文件系統(tǒng)存儲(chǔ)分區(qū)。應(yīng)用存儲(chǔ)分區(qū)包括各類(lèi)應(yīng)用軟件和固件主程序存儲(chǔ)分區(qū),各類(lèi)應(yīng)用軟件和固件備份程序存儲(chǔ)分區(qū),各類(lèi)軟件和固件最小程序存儲(chǔ)分區(qū)。其他文件存儲(chǔ)分區(qū)包括日志存儲(chǔ)分區(qū)、配置文件存儲(chǔ)分區(qū)。操作系統(tǒng)分區(qū)劃分描述如下所述。主啟動(dòng)引導(dǎo)程序存儲(chǔ)分區(qū)用于存放主啟動(dòng)引導(dǎo)程序。備份啟動(dòng)引導(dǎo)程序存儲(chǔ)分區(qū)用于存放備份啟動(dòng)引導(dǎo)程序。主內(nèi)核映像存儲(chǔ)分區(qū)用于存放內(nèi)核映像的主程序。備份內(nèi)核映像存儲(chǔ)分區(qū)用于存放內(nèi)核映像的備份程序。主文件系統(tǒng)存儲(chǔ)分區(qū)用于存放文件系統(tǒng)的主程序。備份文件系統(tǒng)存儲(chǔ)分區(qū)用于存放文件系統(tǒng)的備份程序。
操作系統(tǒng)是系統(tǒng)正常運(yùn)行啟動(dòng)的根本,因此,不可以隨意的對(duì)該區(qū)域進(jìn)行更新擦除。為避免因誤操作進(jìn)行的更新擦除,特對(duì)該區(qū)域的更新擦寫(xiě)定義專(zhuān)用命令擦寫(xiě),以區(qū)別于通用擦寫(xiě)命令,從而避免由于誤操作導(dǎo)致存儲(chǔ)程序的丟失和損壞。應(yīng)用存儲(chǔ)分區(qū)劃分描述如下所述。各類(lèi)應(yīng)用軟件和固件主程序存儲(chǔ)分區(qū)用于存放應(yīng)用軟件和固件的主程序,其它應(yīng)用軟件的主程序。各類(lèi)應(yīng)用軟件和固件備份程序存儲(chǔ)分區(qū)用于存放應(yīng)用軟件和固件備份程序,其它應(yīng)用軟件備份程序。各類(lèi)應(yīng)用軟件和固件最小程 序存儲(chǔ)分區(qū)用于存放應(yīng)用軟件和固件最小程序,其它應(yīng)用軟件和固件最小程序。最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序維護(hù)和/或更新的程序。其中,對(duì)于每類(lèi)應(yīng)用軟件和固件劃分獨(dú)立的分區(qū),避免因?qū)ζ渌謪^(qū)的誤操作或其它異常情況導(dǎo)致的軟件和固件程序的丟失或損壞。其他文件存儲(chǔ)分區(qū)如下所述。日志存儲(chǔ)分區(qū)用于存放運(yùn)行過(guò)程產(chǎn)生的各類(lèi)日志文件。配置文件存儲(chǔ)分區(qū)用于存放系統(tǒng)啟動(dòng)和配置所需的配置文件和運(yùn)行過(guò)程中產(chǎn)生的各類(lèi)動(dòng)態(tài)文件。由于日志存儲(chǔ)和配置文件等經(jīng)常涉及到FLASH的讀寫(xiě)操作,可能會(huì)由于寫(xiě)出錯(cuò)或?qū)憰r(shí)供電異常等情況下,導(dǎo)致丟失文件或破壞文件的幾率比較大,因此將其單列放在獨(dú)立的分區(qū)里,即使擦寫(xiě)導(dǎo)致文件破壞也不會(huì)影響系統(tǒng)的正常啟動(dòng)運(yùn)行。實(shí)施例三在實(shí)際應(yīng)用中,基站經(jīng)常處于偏遠(yuǎn),難于近端操作的環(huán)境中?,F(xiàn)有技術(shù)中,基站中應(yīng)用采用軟件和固件的主程序和備份程序,雙版本模式,應(yīng)對(duì)出現(xiàn)異常的情況。但在實(shí)際的應(yīng)用中依然會(huì)出現(xiàn)主程序和備份程序都被破壞或丟失的現(xiàn)象,系統(tǒng)無(wú)法實(shí)現(xiàn)自行恢復(fù),導(dǎo)致系統(tǒng)無(wú)法正常啟動(dòng)運(yùn)行。為解決上述問(wèn)題,實(shí)施例三中方法除上述步驟外,還包括如下步驟。存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序維護(hù)和/或更新的程序。通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,從而實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。進(jìn)一步地,存儲(chǔ)應(yīng)用程序的主程序和備份程序。當(dāng)加載系統(tǒng)程序時(shí),加載系統(tǒng)程序的主程序,如果加載失敗,則加載系統(tǒng)程序的備份程序。當(dāng)加載應(yīng)用程序的主程序和備份程序均失敗時(shí),則加載應(yīng)用程序的最小程序,通過(guò)最小程序與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。在保留應(yīng)用的軟件和固件主程序、軟件和固件備份程序雙版本模式的同時(shí),增加軟件和固件最小程序。以保證軟件和固件主程序和備份程序都出現(xiàn)異常的情況下,仍可以正常加載。由于基站的永久性存儲(chǔ)空間有限,所以最小程序要求實(shí)現(xiàn)簡(jiǎn)單,盡可能少的占用永久性存儲(chǔ)空間。最小程序僅需要提供網(wǎng)絡(luò)通信,并可實(shí)現(xiàn)通過(guò)網(wǎng)絡(luò)維護(hù)和/或更新應(yīng)用程序即可。參見(jiàn)圖6,為本發(fā)明實(shí)施例三中加載應(yīng)用程序的方法中示例性說(shuō)明的流程圖。步驟S601,上電操作系統(tǒng)啟動(dòng)完成。步驟S602,加載軟件主程序。步驟S603,判斷軟件主程序加載是否成功,如果是,則執(zhí)行步驟S605,否則,執(zhí)行步驟S604。步驟S604,加載軟件備份程序。
步驟S604A,判斷軟件備份程序加載是否成功,如果是,則執(zhí)行步驟S605,否則,執(zhí)行步驟S604B。步驟S604B,加載軟件最小程序。步驟S604C,判斷軟件最小程序加載是否成功,如果是,則執(zhí)行步驟S605,否則,執(zhí)行步驟S611。步驟S605,加載固件主程序。步驟S606,判斷固件主程序加載是否成功,如果是,則執(zhí)行步驟S608,否則,執(zhí)行步驟S607。步驟S607,加載固件備份程序。步驟S607A,判斷固件備份程序加載是否成功,如果成功,執(zhí)行步驟S608,否則,執(zhí)行步驟S607B。步驟S607B,加載固件最小程序,執(zhí)行步驟S607C。步驟S607C,判斷固件最小程序加載是否成功,如果是,則執(zhí)行步驟S608,否則執(zhí)行步驟S611。步驟S608,實(shí)現(xiàn)網(wǎng)絡(luò)通信。步驟S609,判斷網(wǎng)絡(luò)通信是否正常,如果是,則執(zhí)行步驟S610,否則執(zhí)行步驟S610C。步驟S610,通過(guò)網(wǎng)絡(luò)通信實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。步驟S610A,判斷應(yīng)用程序的維護(hù)和/或更新是否成功,如果成功,則執(zhí)行步驟S610B,否則,執(zhí)行步驟S610C。步驟S610B,板卡復(fù)位啟動(dòng)新程序。步驟S610C,板卡復(fù)位重新啟動(dòng)進(jìn)行應(yīng)用程序維護(hù)和/或更新。步驟S611,更換板卡或近端維護(hù)。綜上,如應(yīng)用軟件或固件的主程序和備份程序均啟動(dòng)失敗,則可通過(guò)應(yīng)用軟件和固件的最小程序啟動(dòng),實(shí)現(xiàn)網(wǎng)絡(luò)通信,通過(guò)網(wǎng)絡(luò)進(jìn)行遠(yuǎn)端版本更新和/或維護(hù),恢復(fù)系統(tǒng)啟動(dòng)。如應(yīng)用軟件和固件最小程序啟動(dòng)失敗則只能通過(guò)更換板卡或近端維護(hù)恢復(fù)啟動(dòng)。最小程序可使基站更健壯,有更強(qiáng)的自我恢復(fù)能力。更低限度的避免了更換板卡或近端維護(hù)等情況的出現(xiàn)。實(shí)施例四本實(shí)施例中提供了主程序和備份程序的雙版本模式,在永久性存儲(chǔ)媒介中存儲(chǔ)主程序和備份程序,如果主程序出現(xiàn)損壞或丟失亦可通過(guò)備份程序?qū)崿F(xiàn)系統(tǒng)的正常啟動(dòng),無(wú)需更換板卡或近端維護(hù)。因此,本發(fā)明提供的雙版本模式在更低限度上避免了更換板卡和近端維護(hù)情況的發(fā)生。在永久性存儲(chǔ)媒介操作系統(tǒng)區(qū)域?yàn)橹鲉?dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序劃分存儲(chǔ)分區(qū),同時(shí)為內(nèi)核映像主程序和備份程序、文件系統(tǒng)主程序和備份程序劃分存儲(chǔ)分區(qū)。系統(tǒng)啟動(dòng)時(shí),加載主復(fù)位配置字源,從而加載主啟動(dòng)弓I導(dǎo)程序。如果主啟動(dòng)弓I導(dǎo)程序加載失敗,復(fù)位配置字源切換至備份復(fù)位配置字源。系統(tǒng)復(fù)位加載備份復(fù)位配置字源,從而加載備份啟動(dòng)引導(dǎo)程序,實(shí)現(xiàn)系統(tǒng)啟動(dòng)。參見(jiàn)圖7,為本發(fā)明實(shí)施例四中加載應(yīng)用程序的方法中示例性說(shuō)明的示意圖。步驟S701,上電。 步驟S702,復(fù)位啟動(dòng),加載主復(fù)位配置字源。步驟S703,加載主啟動(dòng)引導(dǎo)程序。步驟S704,判斷主啟動(dòng)引導(dǎo)程序是否加載成功,如果是,則執(zhí)行步驟S706,否則,執(zhí)行步驟S705。步驟S705,切換至備份啟動(dòng)引導(dǎo)程序,執(zhí)行步驟S705A。步驟S705A,判斷備份啟動(dòng)引導(dǎo)程序是否加載成功,如果是則執(zhí)行步驟S706,否貝IJ,執(zhí)行步驟S718。步驟S706,加載內(nèi)核映射的主程序。步驟S707,判斷內(nèi)核映射的主程序是否加載成功,如果是,則執(zhí)行步驟S709,否貝U,執(zhí)行步驟S708。步驟S708,加載內(nèi)核映射的備份程序,執(zhí)行步驟S708A。步驟S708A,內(nèi)核映射的備份程序是否加載成功,如果是,則執(zhí)行步驟S709,否則,執(zhí)行步驟S718。步驟S709,加載文件系統(tǒng)的主程序。步驟S710,判斷文件系統(tǒng)的主程序是否加載成功,如果是,則執(zhí)行步驟S712,否貝U,執(zhí)行步驟S711。步驟S711,加載文件系統(tǒng)的備份程序。步驟S711A,判斷文件系統(tǒng)的備份程序是否加載成功,如果是,則執(zhí)行步驟S712,否則,執(zhí)行步驟S718。步驟S712,加載軟件主程序。步驟S713,判斷軟件主程序加載是否成功,如果是,則執(zhí)行步驟S715,否則,執(zhí)行步驟S714。步驟S714,加載軟件的備份程序。步驟S714A,判斷軟件的備份程序是否加載成功,如果是,則執(zhí)行步驟S715,否則,執(zhí)行步驟S714B。步驟S714B,加載軟件最小程序。步驟S714C,判斷軟件最小程序是否加載成功,如果是,則執(zhí)行步驟S715,否則,執(zhí)行步驟S718。步驟S715,加載固件的主程序。步驟S716,判斷固件的主程序是否加載成功,如果是,則執(zhí)行步驟S719,否則,執(zhí)行步驟S717。
步驟S717,加載固件的備份程序。步驟S717A,判斷固件備份程序加載是否成功,如果是,則執(zhí)行步驟S719,否則,執(zhí)行步驟S717B。步驟S717B,加載固件 的最小程序。步驟S717C,判斷固件的最小程序加載是否成功,如果是,則執(zhí)行步驟S719,否則,執(zhí)行步驟S718。步驟S718,更換板卡或近端維護(hù)。步驟S719,系統(tǒng)啟動(dòng)完成。啟動(dòng)引導(dǎo)程序主備雙版本模式的設(shè)計(jì)增強(qiáng)了基站的自我恢復(fù)能力,最低限度的避免更換板卡和近端維護(hù)情況的出現(xiàn)。此外,為避免因誤操作造成的操作系統(tǒng)版本的丟失或損壞,特為操作系統(tǒng)版本劃分獨(dú)立分區(qū),并為該區(qū)域的更新擦寫(xiě)定義專(zhuān)用命令擦寫(xiě),以盡量避免操作系統(tǒng)版本的丟失或損壞情況的發(fā)生。本發(fā)明公開(kāi)了一種基站中加載程序的系統(tǒng),如圖8所示。所述系統(tǒng)包括存儲(chǔ)模塊100,用于存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序;主程序加載模塊200,用于復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序;備份程序加載模塊300,用于在主啟動(dòng)引導(dǎo)程序加載失敗時(shí),根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。進(jìn)一步地,所述主程序加載模塊200在根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序時(shí)具體用于在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。進(jìn)一步地,所述主程序加載模塊200還用于當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),則將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào);所述備份程序加載模塊300具體用于如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。進(jìn)一步地,所述主程序加載模塊200還用于如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。進(jìn)一步地,所述存儲(chǔ)模塊100還用于存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序的程序;所述系統(tǒng)還包括最小程序加載模塊,用于通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。進(jìn)一步地,所述存儲(chǔ)模塊100還用于將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域;將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域;將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。進(jìn)一步地,所述存儲(chǔ)模塊100還用于存儲(chǔ)應(yīng)用程序的主程序和備份程序;
所述最小程序加載模塊具體用于當(dāng)加載系統(tǒng)程序時(shí),加載系統(tǒng)程序的主程序,如果加載失敗,則加載系統(tǒng)程序的備份程序;當(dāng)加載應(yīng)用程序的主程序和備份程序均失敗時(shí),則加載最小程序,通過(guò)最小程序與遠(yuǎn)端服務(wù)器通信,進(jìn)行應(yīng)用程序的維護(hù)和/或更新。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基站中加載程序的方法,其特征在于,所述方法包括 存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序; 復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)弓I導(dǎo)程序的地址加載主啟動(dòng)弓I導(dǎo)程序; 如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述根據(jù)主啟動(dòng)弓I導(dǎo)程序的地址加載主啟動(dòng)弓I導(dǎo)程序具體包括 在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字后還包括 當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào); 所述如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序具體包括 如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),將從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序后還包括 如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)引導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述方法還包括 存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序的程序; 通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述方法還包括 將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域; 將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域; 將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于, 所述方法還包括 存儲(chǔ)應(yīng)用程序的主程序和備份程序; 所述通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序具體包括 當(dāng)加載系統(tǒng)程序時(shí),加載系統(tǒng)程序的主程序,如果加載失敗,則加載系統(tǒng)程序的備份程序; 當(dāng)加載應(yīng)用程序的主程序和備份程序均失敗時(shí),則加載最小程序,通過(guò)最小程序與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。
8.一種基站中加載程序的系統(tǒng),其特征在于,所述系統(tǒng)包括 存儲(chǔ)模塊,用于存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序; 主程序加載模塊,用于復(fù)位啟動(dòng)時(shí),根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序; 備份程序加載模塊,用于在主啟動(dòng)引導(dǎo)程序加載失敗時(shí),根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述主程序加載模塊在根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序時(shí)具體用于在復(fù)位信號(hào)有效周期內(nèi),從主復(fù)位配置字源加載硬件配置字,定位到主啟動(dòng)引導(dǎo)程序地址,按所述地址加載主啟動(dòng)引導(dǎo)程序。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述主程序加載模塊還用于當(dāng)復(fù)位信號(hào)都無(wú)效時(shí),將復(fù)位配置字源的輸入信號(hào)切換為備份復(fù)位配置字源所用信號(hào); 所述備份程序加載模塊具體用于如果主啟動(dòng)引導(dǎo)程序加載失敗,當(dāng)復(fù)位再次啟動(dòng)時(shí),從備份復(fù)位配置字源加載硬件配置字,定位到備份啟動(dòng)引導(dǎo)程序地址,按所述地址加載備份啟動(dòng)引導(dǎo)程序。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于, 所述主程序加載模塊還用于如果按主啟動(dòng)引導(dǎo)程序地址加載主啟動(dòng)弓I導(dǎo)程序成功,則將復(fù)位配置字源的輸入信號(hào)恢復(fù)為主復(fù)位配置字源所用信號(hào)。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 存儲(chǔ)模塊還用于存儲(chǔ)應(yīng)用程序的最小程序,所述最小程序?yàn)槭够九c遠(yuǎn)端服務(wù)器通信,維護(hù)和/或更新應(yīng)用程序的程序; 所述系統(tǒng)還包括 最小程序加載模塊,用于通過(guò)加載最小程序,與遠(yuǎn)端服務(wù)器通信,實(shí)現(xiàn)應(yīng)用程序的維護(hù)和/或更新。
13.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 存儲(chǔ)模塊還用于將存儲(chǔ)空間劃分為使用專(zhuān)用命令字擦寫(xiě)的專(zhuān)用區(qū)域和使用通用命令字擦寫(xiě)的通用區(qū)域;將主啟動(dòng)引導(dǎo)程序、備份啟動(dòng)引導(dǎo)程序、以及系統(tǒng)程序存儲(chǔ)于專(zhuān)用區(qū)域;將應(yīng)用程序和文件存儲(chǔ)于通用區(qū)域。
全文摘要
本發(fā)明公開(kāi)了一種基站中加載程序的方法和系統(tǒng),所述方法包括存儲(chǔ)主啟動(dòng)引導(dǎo)程序和備份啟動(dòng)引導(dǎo)程序;復(fù)位啟動(dòng)時(shí),通過(guò)啟動(dòng)源確定啟動(dòng)引導(dǎo)程序地址,根據(jù)主啟動(dòng)引導(dǎo)程序的地址加載主啟動(dòng)引導(dǎo)程序;如果主啟動(dòng)引導(dǎo)程序加載失敗,則根據(jù)備份啟動(dòng)引導(dǎo)程序的地址加載備份啟動(dòng)引導(dǎo)程序。本發(fā)明能夠解決由于啟動(dòng)引導(dǎo)程序遭到破壞,而導(dǎo)致整個(gè)板卡崩潰的問(wèn)題。
文檔編號(hào)G06F9/445GK102819444SQ20121030897
公開(kāi)日2012年12月12日 申請(qǐng)日期2012年8月27日 優(yōu)先權(quán)日2012年8月27日
發(fā)明者牛宏 申請(qǐng)人:新郵通信設(shè)備有限公司