專利名稱:一種嵌入式系統(tǒng)軟件升級方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式技術(shù),更具體地說,涉及ー種嵌入式系統(tǒng)軟件升級方法及系統(tǒng)。
背景技術(shù):
目前的嵌入式系統(tǒng)中,絕大部分系統(tǒng)是基于arm-linux平臺,系統(tǒng)中的軟件通常存儲在Flash中,包括NAND flash和NOR flash?;诔杀镜目紤],很多方案里選擇NANDflash作為存儲介質(zhì),但是NAND flash有個特性就是,在使用過程中可能出現(xiàn)位翻轉(zhuǎn)現(xiàn)象導(dǎo)致出現(xiàn)壞塊,而且新出廠的flash,廠家也不保證沒有壞塊但是保證壞塊數(shù)占得比例控制在某個范圍內(nèi)。由于壞塊問題,所以用戶在燒寫數(shù)據(jù)時通常需要考慮壞塊處理方式,還有一點(diǎn)就是NAND flash里面的軟件更新方式,對于ー塊新的flash,里面的內(nèi)容是空白 的,通常的做法是,將flash焊接在電路板上,使用JTAG調(diào)試器燒寫加載引導(dǎo)程序(又稱bootloader),然后上電啟動進(jìn)入bootloader后通過串ロ或網(wǎng)絡(luò)下載Linux內(nèi)核(又稱kernel)以及文件系統(tǒng)(一般為ramdisk)到內(nèi)存,最后燒寫到flash中。這種操作方式對于燒寫數(shù)量小的情況是適用的,但是壞塊處理問題依賴于JTAG調(diào)試器和bootloader是否支持壞塊檢測,對于某些文件系統(tǒng)如Jffs、YafTs等,不支持壞塊檢測的話將關(guān)鍵數(shù)據(jù)寫入壞塊里面可能導(dǎo)致系統(tǒng)無法啟動,需要人工操作進(jìn)行調(diào)節(jié),效率低。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在干,針對現(xiàn)有技術(shù)中的缺陷,提供一種能夠燒寫不支持壞塊檢測的文件系統(tǒng)且無需手動調(diào)節(jié)的嵌入式系統(tǒng)軟件升級方法及系統(tǒng)。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是提供ー種嵌入式系統(tǒng)軟件升級方法,其特征在于,包括以下步驟SI、將存儲單元內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)三個文件依次燒寫到插裝在目標(biāo)板上的空白的Flash閃存中,燒寫的同時進(jìn)行壞塊檢測,直到完成燒寫;S2、自動重啟目標(biāo)板,計算機(jī)進(jìn)入Linux系統(tǒng),連接目標(biāo)板與移動存儲設(shè)備;S3、所述第一加載引導(dǎo)程序、第一 Linux內(nèi)核、及第一文件系統(tǒng)自動復(fù)制至內(nèi)存,所述Linux系統(tǒng)調(diào)用內(nèi)存中的所述第一文件系統(tǒng)內(nèi)的升級腳本,擦除所述Flash閃存內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核及第一文件系統(tǒng);S4、掛載移動存儲設(shè)備;所述升級腳本控制將實(shí)際需要燒寫的存儲在所述移動存儲設(shè)備中的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng)依次燒寫入所述Flash閃存,燒寫的同時在Linux系統(tǒng)的支持下,自動進(jìn)行壞塊檢測,直到完成燒寫。在本發(fā)明所述的嵌入式系統(tǒng)軟件升級方法中,所述步驟SI包括以下分步驟S11、在計算機(jī)上運(yùn)行編程器;S12、所述編程器向所述Flash閃存中燒寫所述第一加載引導(dǎo)程序,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一加載引導(dǎo)程序,否則繼續(xù)燒寫;S13、編程器向所述Flash閃存中燒寫所述第一 Linux內(nèi)核,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一 Linux內(nèi)核,否則繼續(xù)燒寫;S14、編程器向所述Flash閃存中燒寫所述第一文件系統(tǒng),同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一文件系統(tǒng),否則繼續(xù)燒寫,直到完成燒寫。在本發(fā)明所述的嵌入式系統(tǒng)軟件升級方法中,所述步驟SI中,所述編程器在Widows系統(tǒng)下運(yùn)行。在本發(fā)明所述的嵌入式系統(tǒng)軟件升級方法中,所述步驟S3中所述升級腳本調(diào)用所述編程器擦除所述Flash閃存內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核及第一文件系統(tǒng)。
在本發(fā)明所述的嵌入式系統(tǒng)軟件升級方法中,所述步驟S4包括以下分步驟S41、掛載移動存儲設(shè)備;S42、所述升級腳本,調(diào)用所述目標(biāo)板上的升級單元將存儲在移動存儲設(shè)備中的所述第二加載引導(dǎo)程序燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二加載引導(dǎo)程序,否則繼續(xù)燒寫;S43、所述升級腳本,調(diào)用所述升級単元將存儲在移動存儲設(shè)備中的所述第二Linux內(nèi)核燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二 Linux內(nèi)核,否則繼續(xù)燒寫;S44、所述升級腳本,利用所述升級単元將存儲在移動存儲設(shè)備中的所述第二文件系統(tǒng)燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第ニ文件系統(tǒng),否則繼續(xù)燒寫,直到完成燒寫。本發(fā)明還提供了ー種嵌入式系統(tǒng)軟件升級系統(tǒng),包括Flash閃存、目標(biāo)板、移動存儲設(shè)備、計算機(jī)及設(shè)置在所述計算機(jī)內(nèi)的存儲單元與編程器;所述目標(biāo)板上設(shè)置有升級單元;所述存儲単元用于存儲第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);所述第一文件系統(tǒng)設(shè)置有升級腳本;所述目標(biāo)板連接計算機(jī),所述flash閃存插裝在所述目標(biāo)板上;所述flash閃存最初為空白flash ;所述編程器用于將存儲在所述存儲単元內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)燒寫進(jìn)空白的所述Flash閃存,還用于受所述升級腳本控制并擦除所述Flash閃存內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);所述目標(biāo)板在所述第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)內(nèi)后自動重啟,同時所述計算機(jī)進(jìn)入Linux系統(tǒng);所述第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)在所述計算機(jī)進(jìn)入Linux系統(tǒng)后自動復(fù)制到所述計算機(jī)的內(nèi)存中;所述移動存儲設(shè)備用于存儲實(shí)際需要燒寫的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng);移動存儲設(shè)備連接目標(biāo)板;所述升級腳本用于控制所述升級単元后向所述Flash閃存內(nèi)燒寫所述第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng),并在燒寫的同時進(jìn)行壞塊檢測。在本發(fā)明所述的嵌入式系統(tǒng)軟件升級系統(tǒng)中,所述移動存儲設(shè)備為SD卡或U盤。在本發(fā)明所述的嵌入式系統(tǒng)軟件升級系統(tǒng)中,所述編程器在所述計算機(jī)Windows系統(tǒng)下運(yùn)行。
本發(fā)明的嵌入式系統(tǒng)軟件升級方法及系統(tǒng)具有以下有益效果本發(fā)明的嵌入式系統(tǒng)軟件升級方法及系統(tǒng)通過編程器將支持壞塊處理的第一文件系統(tǒng)燒寫到Flash閃存中,目標(biāo)板自動重啟,計算機(jī)進(jìn)入Linux系統(tǒng),在Linux系統(tǒng)下第一文件系統(tǒng)及相應(yīng)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核自動復(fù)制到內(nèi)存,由于第一文件系統(tǒng)中設(shè)置有升級腳本,升級腳本在Linux系統(tǒng)的支持下控制將實(shí)際需要燒寫的文件即第二加載引導(dǎo)程序、第二 Linux內(nèi)核及一般燒寫過程中不支持壞塊處理的第二文件系統(tǒng),燒寫到Flash閃存中,整個過程無需手動控制調(diào)節(jié),能夠?qū)崿F(xiàn)壞塊檢測,升級快速高效。
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)ー步說明,附圖中圖I是根據(jù)本發(fā)明的嵌入式系統(tǒng)軟件升級系統(tǒng)一個實(shí)施例的原理框圖;圖2是根據(jù)本發(fā)明的嵌入式系統(tǒng)軟件升級方法一個實(shí)施例的方法流程圖;圖3是根據(jù)本發(fā)明的嵌入式系統(tǒng)軟件升級方法步驟SI的分步驟的方法流程圖;圖4是根據(jù)本發(fā)明的嵌入式系統(tǒng)軟件升級方法步驟S4的分步驟的方法流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)ー步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示的是ー種嵌入式系統(tǒng)軟件升級系統(tǒng),包括Flash閃存3、目標(biāo)板4、移動存儲設(shè)備2、計算機(jī)I及設(shè)置在計算機(jī)I內(nèi)的存儲單元100、編程器101 ;移動存儲設(shè)備2分別與計算機(jī)I連接;目標(biāo)板4連接計算機(jī)1,flash閃存3插裝在所述目標(biāo)板4上;目標(biāo)板4上設(shè)置有升級單元402存儲單兀100用于存儲第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);所述第一文件系統(tǒng)設(shè)置有升級腳本;編程器101用于將存儲在存儲單元100內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)燒寫進(jìn)空白的Flash閃存3,還用于受所述升級腳本的控制并擦除Flash閃存3內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);目標(biāo)板4在第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)被燒寫后自動重啟,同時計算機(jī)I進(jìn)入Linux系統(tǒng);第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)在計算機(jī)I進(jìn)入Linux系統(tǒng)后自動復(fù)制到計算機(jī)I的內(nèi)存中;編程器101在Windows系統(tǒng)下運(yùn)打;移動存儲設(shè)備2用于存儲實(shí)際需要燒寫的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第ニ文件系統(tǒng);移動存儲設(shè)備2連接目標(biāo)板4 ;移動存儲設(shè)備2 —般為SD卡或U盤。所述升級腳本還用于在Linux系統(tǒng)中移動存儲設(shè)備2掛載后控制升級單元401后向Flash閃存3內(nèi)燒寫第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng),并在燒寫的同時進(jìn)行壞塊檢測。本發(fā)明中的第一文件系統(tǒng)一般為ramdisk文件系統(tǒng),是用于系統(tǒng)啟動時輔助正式文件系統(tǒng)成功掛載而在內(nèi)存中設(shè)置的ー個特殊的文件系統(tǒng);在內(nèi)存中而第二文件系統(tǒng)一般為Cramfs、Yaffsx、Jffsx等直接燒寫時不支持壞塊檢測的文件系統(tǒng),其中,Cramfs文件系統(tǒng)是專門針對閃存設(shè)計的只讀壓縮的文件系統(tǒng),其容量上限為256M,采用zlib壓縮,文件系統(tǒng)類型可以是EXT2或EXT3;Jffs即閃存設(shè)備日志型文件系統(tǒng),是ー種用于保護(hù)嵌入式系統(tǒng)免受巖機(jī)和斷電危害的文件系統(tǒng);Yaffs是指Yet Another Flash File System,是第ー個專門為NAND Flash存儲器設(shè)計的嵌入式文件系統(tǒng),適用于大容量的存儲設(shè)備,它基于日志的文件系統(tǒng),提供磨損平衡和掉電恢復(fù)的健壯性。它還為大容量的Flash芯片做了很好的調(diào)整,針對啟動時間和RAM的使用做了優(yōu)化。CRAMFS文件系統(tǒng)是專門針對閃存設(shè)計的只讀壓縮的文件系統(tǒng),其容量上限為256M,采用zlib壓縮,文件系統(tǒng)類型可以是EXT2或EXT3。而第一加載引導(dǎo)程序與第二加載引導(dǎo)程序可以是同一加載引導(dǎo)程序,同理第一 Linux內(nèi)核與第二 Linux內(nèi)核可以是同一 Linux內(nèi)核。如圖2所示的是ー種用于實(shí)施上述嵌入式系統(tǒng)軟件升級系統(tǒng)的嵌入式系統(tǒng)軟件升級方法,該方法包括以下步驟SI、將存儲單兀100內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)三個文件依次燒寫到空白的Flash閃存3中,燒寫的同時進(jìn)行壞塊檢測,直到完成燒寫;S2、目標(biāo)板4自動重啟,計算機(jī)I進(jìn)入Linux系統(tǒng),連接目標(biāo)板4與移動存儲設(shè)備2 ;S3、第一加載引導(dǎo)程序、第一 Linux內(nèi)核、及第一文件系統(tǒng)自動復(fù)制至內(nèi)存,存儲在第一文件系統(tǒng)內(nèi)的升級腳本調(diào)用升級單元12擦除Flash閃存3內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核及第一文件系統(tǒng);S4、掛載移動存儲設(shè)備2 ;升級腳本在Linux系統(tǒng)的支持下,調(diào)用升級單元12將存儲在移動存儲設(shè)備2中的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng)依次燒寫入所述Flash閃存3,燒寫的同時所述升級單元12進(jìn)行壞塊檢測,直到完成燒寫。其中,如圖3所示,步驟SI包括以下分步驟S11、在計算機(jī)I上運(yùn)行編程器101,編程器101在Windows系統(tǒng)下運(yùn)行的編輯エ具.S12、編程器101向空白的Flash閃存3中燒寫第一加載引導(dǎo)程序,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一加載引導(dǎo)程序,否則繼續(xù)燒寫;S13、編程器101向Flash閃存3中燒寫第一 Linux內(nèi)核,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一 Linux內(nèi)核,否則繼續(xù)燒寫;S14、編程器101向Flash閃存3中燒寫所述第一文件系統(tǒng),同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一文件系統(tǒng),否則繼續(xù)燒寫,直到完成燒寫。第一加載引導(dǎo)程序、第一 Linux內(nèi)核和第一文件系統(tǒng)存儲在計算機(jī)I內(nèi)的存儲單元100中,第一文件系統(tǒng)一般是支持壞塊檢測的ramdisk文件系統(tǒng)。S12、S13、S14三個分步驟均分別進(jìn)行壞塊檢測,完成燒寫后Flash閃存3中會自動生成用于存儲上述三個文件的三個分區(qū),相反地,如果該Flash閃存3中壞塊過多以至于第一加載引導(dǎo)程序、第一 Linux內(nèi)核和第一文件系統(tǒng)無法全部燒寫到Flash閃存3中,則無法完成燒寫,該Flash閃存3廢棄,更換ー個新的Flash閃存3重新燒寫。本發(fā)明中采用的Flash閃存3為NAND flash。 燒寫到Flash閃存3中的第一文件系統(tǒng)中包括一個升級腳本,步驟S2中根據(jù)該升級腳本控制目標(biāo)板4自動重啟;此外計算機(jī)進(jìn)入Linux系統(tǒng),此時連接移動存儲設(shè)備2與目標(biāo)板4,如前面所說的,移動存儲設(shè)備2 —般為SD卡或U盤。
相應(yīng)地,步驟S3計算機(jī)I調(diào)用升級腳本,控制編程器101將Flash閃存3中的第一加載引導(dǎo)程序、第一 Linux內(nèi)核和第一文件系統(tǒng)復(fù)制到計算機(jī)I的內(nèi)存中,然后將Flash閃存3內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核和第一文件系統(tǒng)全部擦除??梢岳斫獾氖牵藭r升級腳本已經(jīng)被復(fù)制到內(nèi)存中。
如圖4所示,步驟S4包括以下分步驟S41、掛載移動存儲設(shè)備2 ;S42、升級腳本在Linux系統(tǒng)的支持下,調(diào)用目標(biāo)板4上升級單元401將存儲在移動存儲設(shè)備2中的第二加載引導(dǎo)程序燒寫到Flash閃存3中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二加載引導(dǎo)程序,否則繼續(xù)燒寫;S43、升級腳本在Linux系統(tǒng)的支持下,調(diào)用升級單元401將存儲在移動存儲設(shè)備2中的第二 Linux內(nèi)核燒寫到Flash閃存3中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二 Linux內(nèi)核,否則繼續(xù)燒寫;S44、升級腳本在Linux系統(tǒng)的支持下,調(diào)用升級單元401將存儲在移動存儲設(shè)備2中的所述第二文件系統(tǒng)燒寫到Flash閃存3中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二文件系統(tǒng),否則繼續(xù)燒寫。一般來說,需要根據(jù)第二文件系統(tǒng)的類型掛載根分區(qū),本發(fā)明的第二文件系統(tǒng)ー般是直接燒寫不支持壞塊檢測的Jffs、YaffS、Cramfs等文件系統(tǒng),JffS、YaffS、Cramfs等文件系統(tǒng)適用于NAND flash,且均具有自己的NFTL (即NAND Flash Translation Layer,又稱為NAND Flash轉(zhuǎn)換層)實(shí)現(xiàn)而且可以自己管理壞塊。本發(fā)明的升級單元401還可以調(diào)用MTD分區(qū)讀寫工具進(jìn)行燒寫第二加載引導(dǎo)程序、第二Linux內(nèi)核、第二文件系統(tǒng),MTD分區(qū)讀寫工具在Jffs、Yaffs、Cramfs等文件系統(tǒng)燒寫時進(jìn)行壞塊檢測。MTD的全稱為memorytechnology device即內(nèi)存技術(shù)設(shè)備,是用于訪問memory設(shè)備(R0M、flash)的Linux子系統(tǒng)。MTD分區(qū)讀寫工具受NFTL管理向Flash閃存3中存取數(shù)據(jù)。雖然本發(fā)明是通過具體實(shí)施例進(jìn)行說明的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,在不脫離本發(fā)明范圍的情況下,還可以對本發(fā)明進(jìn)行各種變換及等同替代。另外,針對特定情形或材料,可以對本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具體實(shí)施例,而應(yīng)當(dāng)包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實(shí)施方式。
權(quán)利要求
1.一種嵌入式系統(tǒng)軟件升級方法,其特征在于,包括以下步驟 51、將存儲單兀(100)內(nèi)的第一加載引導(dǎo)程序、第一Linux內(nèi)核、第一文件系統(tǒng)三個文件依次燒寫到插裝在目標(biāo)板(4)上的空白的Flash閃存(3)中,燒寫的同時進(jìn)行壞塊檢測,直到完成燒寫; 52、自動重啟目標(biāo)板(4),計算機(jī)(I)進(jìn)入Linux系統(tǒng),連接目標(biāo)板(4)與移動存儲設(shè)備(2); 53、所述第一加載引導(dǎo)程序、第一Linux內(nèi)核、及第一文件系統(tǒng)自動復(fù)制至內(nèi)存,所述Linux系統(tǒng)調(diào)用內(nèi)存中的所述第一文件系統(tǒng)內(nèi)的升級腳本,擦除所述Flash閃存(3)內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核及第一文件系統(tǒng); 54、掛載移動存儲設(shè)備(2);所述升級腳本控制將實(shí)際需要燒寫的存儲在所述移動存儲設(shè)備(2)中的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng)依次燒寫入所述Flash閃存(3),燒寫的同時在Linux系統(tǒng)的支持下,自動進(jìn)行壞塊檢測,直到完成燒寫。
2.根據(jù)權(quán)利要求I所述的嵌入式系統(tǒng)軟件升級方法,其特征在于,所述步驟SI包括以下分步驟 SI I、在計算機(jī)(I)上運(yùn)行編程器; 512、所述編程器(101)向所述Flash閃存(3)中燒寫所述第一加載引導(dǎo)程序,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一加載引導(dǎo)程序,否則繼續(xù)燒寫; 513、編程器向所述Flash閃存(3)中燒寫所述第一Linux內(nèi)核,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一 Linux內(nèi)核,否則繼續(xù)燒寫; 514、編程器向所述Flash閃存(3)中燒寫所述第一文件系統(tǒng),同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第一文件系統(tǒng),否則繼續(xù)燒寫,直到完成燒寫。
3.根據(jù)權(quán)利要求2所述的嵌入式系統(tǒng)軟件升級方法,其特征在于,所述步驟SI中,所述編程器在Widows系統(tǒng)下運(yùn)行。
4.根據(jù)權(quán)利要求I所述的嵌入式系統(tǒng)軟件升級方法,其特征在于,所述步驟S3中所述升級腳本調(diào)用所述編程器(101)擦除所述Flash閃存(3)內(nèi)的第一加載引導(dǎo)程序、第一Linux內(nèi)核及第一文件系統(tǒng)。
5.根據(jù)權(quán)利要求I所述的嵌入式系統(tǒng)軟件升級方法,其特征在于,所述步驟S4包括以下分步驟 541、掛載移動存儲設(shè)備(2); 542、所述升級腳本,調(diào)用目標(biāo)板(4)上的升級單元(401)將存儲在移動存儲設(shè)備(2)中的所述第二加載引導(dǎo)程序燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二加載引導(dǎo)程序,否則繼續(xù)燒寫; 543、所述升級腳本,調(diào)用所述升級單元(401)將存儲在移動存儲設(shè)備(2)中的所述第二 Linux內(nèi)核燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二 Linux內(nèi)核,否則繼續(xù)燒寫; 544、所述升級腳本,利用所述升級單元(401)將存儲在移動存儲設(shè)備(2)中的所述第二文件系統(tǒng)燒寫到所述flash中,同時檢測是否存在壞塊,如果存在壞塊,跳過壞塊并重新燒寫第二文件系統(tǒng),否則繼續(xù)燒寫,直到完成燒寫。
6.一種嵌入式系統(tǒng)軟件升級系統(tǒng),其特征在于,包括Flash閃存(3)、目標(biāo)板(4)、移動存儲設(shè)備(2)、計算機(jī)(I)及設(shè)置在所述計算機(jī)(I)內(nèi)的存儲單元(100)與編程器(101);所述目標(biāo)板(4)上設(shè)置有升級單元(401); 所述存儲單元(100)用于存儲第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);所述第一文件系統(tǒng)設(shè)置有升級腳本;所述目標(biāo)板(4)連接計算機(jī)(1),所述flash閃存(3)插裝在所述目標(biāo)板(4)上;所述flash閃存(3)最初為空白flash ; 所述編程器(101)用于將存儲在所述存儲單元(100)內(nèi)的第一加載引導(dǎo)程序、第一Linux內(nèi)核、第一文件系統(tǒng)燒寫進(jìn)空白的所述Flash閃存(3),還用于受所述升級腳本控制并擦除所述Flash閃存(3)內(nèi)的第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng);所述目標(biāo)板(4)在所述第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)內(nèi)后自動重啟,同時所述計算機(jī)(I)進(jìn)入Linux系統(tǒng);所述第一加載引導(dǎo)程序、第一 Linux內(nèi)核、第一文件系統(tǒng)在所述計算機(jī)(I)進(jìn)入Linux系統(tǒng)后自動復(fù)制到所述計算機(jī)(I)的內(nèi)存中; 所述移動存儲設(shè)備(2)用于存儲實(shí)際需要燒寫的第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng);移動存儲設(shè)備(2)連接目標(biāo)板(4); 所述升級腳本用于控制所述升級單元(12)后向所述Flash閃存(3)內(nèi)燒寫所述第二加載引導(dǎo)程序、第二 Linux內(nèi)核、第二文件系統(tǒng),并在燒寫的同時進(jìn)行壞塊檢測。
7.根據(jù)權(quán)利要求6所述的嵌入式系統(tǒng)軟件升級系統(tǒng),其特征在于,所述移動存儲設(shè)備(2)為SD卡或U盤。
8.根據(jù)權(quán)利要求6所述的嵌入式系統(tǒng)軟件升級系統(tǒng),其特征在于,所述編程器(101)在所述計算機(jī)(I) Windows系統(tǒng)下運(yùn)行。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)軟件升級方法,包括以下步驟編程器將第一加載引導(dǎo)程序、第一Linux內(nèi)核、第一文件系統(tǒng)三個文件依次燒寫到空白的Flash閃存中,同時編程器進(jìn)行壞塊檢測;自動重啟目標(biāo)板并進(jìn)入Linux系統(tǒng),連接計算機(jī)與移動存儲設(shè)備;第一加載引導(dǎo)程序、第一Linux內(nèi)核、及第一文件系統(tǒng)自動復(fù)制至內(nèi)存,擦除Flash閃存內(nèi)的內(nèi)容;掛載移動存儲設(shè)備,然后將第二載引導(dǎo)程序、第二Linux內(nèi)核、第二文件系統(tǒng)依次燒寫入所述Flash閃存,同時進(jìn)行壞塊檢測,直到完成燒寫。本發(fā)明還公開了一種用于實(shí)施該方法的嵌入式系統(tǒng)軟件升級系統(tǒng)。本發(fā)明的嵌入式系統(tǒng)軟件升級方法及系統(tǒng)能夠在Linux文件系統(tǒng)支持下實(shí)現(xiàn)壞塊管理,燒寫各種常見類型文件系統(tǒng)如Cramfs/Yaffsx/Jffsx等,所有步驟可自動完成。
文檔編號G06F9/445GK102629206SQ201210049198
公開日2012年8月8日 申請日期2012年2月29日 優(yōu)先權(quán)日2012年2月29日
發(fā)明者楚甲良, 殷國順, 王志強(qiáng) 申請人:深圳市賽格導(dǎo)航科技股份有限公司