專利名稱:嵌入式系統(tǒng)及其升級(jí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù),特別涉及一種在嵌入式系統(tǒng)引導(dǎo)程序中實(shí)現(xiàn)升級(jí)的技術(shù)。
背景技術(shù):
嵌入式軟件系統(tǒng)由于具有操作系統(tǒng)和眾多的驅(qū)動(dòng)程序、協(xié)議棧和應(yīng)用程序,系統(tǒng)較為復(fù)雜,從而變得脆弱,容易發(fā)生程序錯(cuò)誤而需要不斷的升級(jí)。
系統(tǒng)引導(dǎo)程序(bootloader)是嵌入式系統(tǒng)上電啟動(dòng)運(yùn)行的第一段軟件代碼,是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前,運(yùn)行的一段子程序。通過這段程序,初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。即在嵌入式系統(tǒng)中系統(tǒng)引導(dǎo)模塊與操作系統(tǒng)相連,引導(dǎo)操作系統(tǒng)運(yùn)行。
嵌入式系統(tǒng)軟件一般由設(shè)備開發(fā)商在試制或生產(chǎn)時(shí)通過EJTAG調(diào)試器或編程器燒錄到FLASH中,其bootloader功能很弱。雖然現(xiàn)有的嵌入式系統(tǒng)包含有RS232串口、網(wǎng)絡(luò)接口、升級(jí)包存儲(chǔ)單元,但系統(tǒng)如欲在引導(dǎo)程序中實(shí)現(xiàn)系統(tǒng)升級(jí),必須額外在引導(dǎo)程序中編寫大量的軟件代碼,增加網(wǎng)口驅(qū)動(dòng)、HTTP協(xié)議棧等模塊。經(jīng)擴(kuò)充后的系統(tǒng)引導(dǎo)模塊通過操作系統(tǒng)可分別與RS232串口、網(wǎng)絡(luò)接口通信,把下載的升級(jí)軟件保存在升級(jí)包存儲(chǔ)單元。但是由于不同平臺(tái)硬件架構(gòu)不同,軟件要做很多的移植工作,其工作量較大,此類方法操作復(fù)雜且升級(jí)軟件速度較慢,給產(chǎn)品開發(fā)商和用戶帶來了諸多不便。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種在不擴(kuò)充bootloader的情況下,讓系統(tǒng)可以通過http、tftp協(xié)議下載軟件實(shí)現(xiàn)系統(tǒng)升級(jí)的嵌入式系統(tǒng)及其升級(jí)方法。
本發(fā)明為解決上述技術(shù)問題采用的技術(shù)方案是嵌入式系統(tǒng),包括系統(tǒng)引導(dǎo)模塊、操作系統(tǒng)、RS232串口、網(wǎng)絡(luò)接口、升級(jí)包存儲(chǔ)單元;增加了一個(gè)軟件升級(jí)模塊,操作系統(tǒng)與系統(tǒng)引導(dǎo)模塊相連;軟件升級(jí)模塊也與系統(tǒng)引導(dǎo)模塊相連;軟件升級(jí)模塊還分別與RS232串口、網(wǎng)絡(luò)接口、升級(jí)包存儲(chǔ)單元相連。
通過在FLASH中增加一個(gè)軟件升級(jí)模塊,該軟件升級(jí)模塊為裁減后的操作系統(tǒng),通過該軟件升級(jí)模塊來下載升級(jí)軟件,不需要在bootloader中再寫驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議,即直接利用裁減后的操作系統(tǒng)中已有的驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議來下載升級(jí)軟件。
本發(fā)明還提供該嵌入式系統(tǒng)的升級(jí)方法軟件升級(jí)模塊啟動(dòng)中先檢測(cè)是否在延遲時(shí)間內(nèi)出現(xiàn)升級(jí)請(qǐng)求,若沒有則正常啟動(dòng);若有則進(jìn)入軟件升級(jí)模塊,執(zhí)行升級(jí)程序下載、寫FLASH。其具體步驟如下a、嵌入式系統(tǒng)上電,運(yùn)行系統(tǒng)引導(dǎo)程序,統(tǒng)引導(dǎo)程序完成硬件的初始化并加載相關(guān)的硬件驅(qū)動(dòng)程序;b、判斷在延遲時(shí)間內(nèi)是否有升級(jí)請(qǐng)求,若否,進(jìn)入步驟c;若是,進(jìn)入步驟d;c、啟動(dòng)操作系統(tǒng);d、啟動(dòng)軟件升級(jí)模塊,軟件升級(jí)模塊設(shè)置網(wǎng)絡(luò)參數(shù),并通過網(wǎng)絡(luò)接口與升級(jí)服務(wù)器通信,將升級(jí)文件下載到FLASH,升級(jí)完畢回到步驟a。
本發(fā)明的有益效果是使用本發(fā)明所述嵌入式系統(tǒng)進(jìn)行軟件升級(jí),增加一個(gè)經(jīng)過操作系統(tǒng)裁減后的軟件升級(jí)模塊來加強(qiáng)引導(dǎo)程序的功能,實(shí)現(xiàn)了在引導(dǎo)階段完成系統(tǒng)升級(jí),大大節(jié)省了工作量,縮短產(chǎn)品的開發(fā)周期。裁減過的軟件升級(jí)模塊很小,不增加系統(tǒng)成本,而且在主文件系統(tǒng)損壞時(shí)還可提供系統(tǒng)恢復(fù)功能,提高了安全性,有利于軟件的后續(xù)升級(jí)和維護(hù),有著較大的社會(huì)效益和使用價(jià)值。
以下結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明做進(jìn)一步說明。
圖1為嵌入式系統(tǒng)示意圖;圖2為嵌入式系統(tǒng)的升級(jí)流程圖。
具體實(shí)施例方式
下面以PNX8550開發(fā)平臺(tái)為例,采用PHILIPS PNX8550開發(fā)板,已經(jīng)移植了linux操作系統(tǒng),相關(guān)驅(qū)動(dòng)和應(yīng)用軟件基本完成,有一個(gè)基本的bootloader,此bootloader只有uart驅(qū)動(dòng)和nand FLASH驅(qū)動(dòng),要讓此bootloader支持文件下載功能需要寫網(wǎng)卡驅(qū)動(dòng)和TCP/IP、tftp、http協(xié)議,工作量較大且不便于移植。
linux內(nèi)核本來就包含了網(wǎng)卡驅(qū)動(dòng)和TCP/IP、tftp、http協(xié)議,裁剪linux內(nèi)核,生成一個(gè)專門用來下載升級(jí)軟件的軟件升級(jí)模塊,包括網(wǎng)卡芯片驅(qū)動(dòng)、FLASH讀寫驅(qū)動(dòng)、RS232串口驅(qū)動(dòng)等,構(gòu)成一個(gè)嵌入式最小系統(tǒng),將與網(wǎng)絡(luò)連接、下載保存無關(guān)的進(jìn)程模塊裁減掉。
操作系統(tǒng)不用動(dòng)態(tài)模塊庫(kù),只用靜態(tài)模塊,文件系統(tǒng)采用initramfs,網(wǎng)卡驅(qū)動(dòng)采用靜態(tài)方式連接進(jìn)內(nèi)核,rootfs文件系統(tǒng)采用busybox編譯,只保留httpget程序,編譯成vmlinux,再用gzip壓縮。
進(jìn)一步裁減,將執(zhí)行的第一個(gè)進(jìn)程init改成http下載程序,去掉bash、init等shell程序。
再進(jìn)一步裁減,改造linux啟動(dòng)部分,將linux啟動(dòng)線程init改成http下載線程,去掉rootfs文件系統(tǒng)。
FLASH上保留最終裁減過后的操作系統(tǒng),即軟件升級(jí)模塊。利用此軟件升級(jí)模塊下載升級(jí)軟件至FLASH,實(shí)現(xiàn)系統(tǒng)升級(jí)。如圖1所示,形成雙系統(tǒng)bootloader,除操作系統(tǒng)與系統(tǒng)引導(dǎo)模塊相連以外,還有軟件升級(jí)模塊也與系統(tǒng)引導(dǎo)模塊相連;軟件升級(jí)模塊還分別與RS232串口、網(wǎng)絡(luò)接口、升級(jí)包存儲(chǔ)單元相連。上述嵌入式系統(tǒng)的FLASH空間分配如下表
這樣就不需要在bootloader中寫相關(guān)驅(qū)動(dòng)程序,嵌入式系統(tǒng)利用軟件升級(jí)模塊中的驅(qū)動(dòng)和網(wǎng)絡(luò)協(xié)議來下載升級(jí)軟件,還可以利用驅(qū)動(dòng)中的LCD驅(qū)動(dòng)以圖形方式顯示軟件下載、寫入FLASH的進(jìn)度,不但縮短了開發(fā)周期,而且功能強(qiáng)大,http下載可以穿透代理,可以顯示下載進(jìn)度圖形。
裁減操作系統(tǒng),也可以用其他比較小的系統(tǒng)如ucDOS、pSos等系統(tǒng),去掉所有不用的功能,只保留http下載和寫FLASH程序,用gzip壓縮。
如圖2所示,為嵌入式系統(tǒng)的升級(jí)流程如下嵌入式系統(tǒng)上電復(fù)位后,首先運(yùn)行bootloader,此程序主要完成硬件的初始化并加載相關(guān)的硬件驅(qū)動(dòng)程序。當(dāng)bootLoader初始化結(jié)束后,通過軟件控制加入3秒的軟件延時(shí),在此時(shí)間段內(nèi)判斷RS232串口有無請(qǐng)求升級(jí)的按鍵按下,若無,延遲時(shí)間到后立即啟動(dòng)操作系統(tǒng),進(jìn)行正常引導(dǎo)。若在延遲時(shí)間內(nèi)RS232串口接收到有相應(yīng)的升級(jí)功能請(qǐng)求鍵按下,立刻進(jìn)入軟件升級(jí)流程。通過設(shè)置網(wǎng)絡(luò)參數(shù)(本機(jī)地址、服務(wù)器地址、MAC地址、網(wǎng)絡(luò)傳輸協(xié)議等)來與升級(jí)服務(wù)器互連互通。設(shè)置結(jié)束后按下升級(jí)開始功能鍵開始軟件升級(jí),若升級(jí)成功則返回到上電初始化狀態(tài)重起系統(tǒng)。
升級(jí)的軟件一般包括操作系統(tǒng)的驅(qū)動(dòng)修正程序或應(yīng)用層面的增值服務(wù)軟件兩個(gè)方面。
權(quán)利要求
1.嵌入式系統(tǒng),包括系統(tǒng)引導(dǎo)模塊、操作系統(tǒng)、RS232串口、網(wǎng)絡(luò)接口、升級(jí)包存儲(chǔ)單元,其特征在于,還包括軟件升級(jí)模塊,所述軟件升級(jí)模塊與所述系統(tǒng)引導(dǎo)模塊相連;所述軟件升級(jí)模塊分別與所述RS232串口、所述網(wǎng)絡(luò)接口、所述升級(jí)包存儲(chǔ)單元相連。
2.如權(quán)利要求1所述的嵌入式系統(tǒng),其特征在于,所述系統(tǒng)引導(dǎo)模塊、操作系統(tǒng)、升級(jí)包存儲(chǔ)單元、軟件升級(jí)模塊都內(nèi)置于FLASH中。
3.如權(quán)利要求1或2所述的嵌入式系統(tǒng),其特征在于,所述軟件升級(jí)模塊包括網(wǎng)卡芯片驅(qū)動(dòng)、FLASH讀寫驅(qū)動(dòng)、RS232串口驅(qū)動(dòng)。
4.如權(quán)利要求1所述嵌入式系統(tǒng)其升級(jí)方法,包括以下步驟a、嵌入式系統(tǒng)上電,運(yùn)行系統(tǒng)引導(dǎo)程序,統(tǒng)引導(dǎo)程序完成硬件的初始化并加載相關(guān)的硬件驅(qū)動(dòng)程序;b、判斷在延遲時(shí)間內(nèi)是否有升級(jí)請(qǐng)求,若否,進(jìn)入步驟c;若是,進(jìn)入步驟d;c、啟動(dòng)操作系統(tǒng);d、啟動(dòng)軟件升級(jí)模塊,軟件升級(jí)模塊設(shè)置網(wǎng)絡(luò)參數(shù),并通過網(wǎng)絡(luò)接口與升級(jí)服務(wù)器通信,將升級(jí)文件下載到FLASH,升級(jí)完畢回到步驟a。
5.如權(quán)利要求4所述嵌入式系統(tǒng)的升級(jí)方法,其特征在于,所述軟件升級(jí)模塊為裁減后的操作系統(tǒng),包括網(wǎng)卡芯片驅(qū)動(dòng)、FLASH讀寫驅(qū)動(dòng)、RS232串口驅(qū)動(dòng)。
6.如權(quán)利要求4或5所述嵌入式系統(tǒng)的升級(jí)方法,其特征在于,所述軟件升級(jí)模塊保存在所述FLASH上。
7.如權(quán)利要求6所述嵌入式系統(tǒng)的升級(jí)方法,其特征在于,所述步驟b,所述升級(jí)請(qǐng)求由RS232串口輸入。
8.如權(quán)利要求7所述嵌入式系統(tǒng)的升級(jí)方法,其特征在于,所述網(wǎng)絡(luò)參數(shù)包括本機(jī)地址、服務(wù)器地址、MAC地址、網(wǎng)絡(luò)傳輸協(xié)議。
全文摘要
本發(fā)明涉及嵌入式系統(tǒng)技術(shù),特別涉及一種在嵌入式系統(tǒng)引導(dǎo)程序中實(shí)現(xiàn)升級(jí)的技術(shù)。本發(fā)明提供一種在不擴(kuò)充bootloader的情況下,讓系統(tǒng)可以通過http、tftp協(xié)議下載軟件實(shí)現(xiàn)系統(tǒng)升級(jí)的嵌入式系統(tǒng)及其升級(jí)方法,通過在FLASH增加一個(gè)經(jīng)操作系統(tǒng)裁減后的軟件升級(jí)模塊,來下載升級(jí)軟件,不需要在bootloader中再寫驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議,即直接利用裁減后的操作系統(tǒng)中已有的驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議來下載升級(jí)軟件。本發(fā)明實(shí)現(xiàn)了在引導(dǎo)階段完成系統(tǒng)升級(jí)。裁減過的軟件升級(jí)模塊小,不增加系統(tǒng)成本,而且在主文件系統(tǒng)損壞時(shí)還可提供系統(tǒng)恢復(fù)功能,提高了安全性,有利于軟件的后續(xù)升級(jí)和維護(hù),有著較大的社會(huì)效益和使用價(jià)值。
文檔編號(hào)H04L29/06GK1928820SQ20061002198
公開日2007年3月14日 申請(qǐng)日期2006年9月30日 優(yōu)先權(quán)日2006年9月30日
發(fā)明者任子義, 孫立新, 鄧文科 申請(qǐng)人:四川長(zhǎng)虹電器股份有限公司