專利名稱:一種用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,尤其涉及用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法。
背景技術(shù):
隨著硬件設(shè)計(jì)和制造技術(shù)的快速發(fā)展,嵌入式系統(tǒng)已經(jīng)被廣泛應(yīng)用于工業(yè)、通訊、家電等各個(gè)領(lǐng)域。同時(shí),隨著功能的不斷增強(qiáng),嵌入式系統(tǒng)的體系結(jié)構(gòu)也越來(lái)越復(fù)雜。嵌入式系統(tǒng)已經(jīng)從最初僅由單片機(jī)和簡(jiǎn)單的程序代碼組成發(fā)展到了包含功能強(qiáng)大的處理器、豐富的外部設(shè)備接口和復(fù)雜的操作系統(tǒng)。為了滿足用戶的需求,目前大多數(shù)面向個(gè)人消費(fèi)群體的嵌入式系統(tǒng),如手機(jī),數(shù)碼相機(jī)等都包含擴(kuò)展/移動(dòng)存儲(chǔ)器接口。目前市場(chǎng)上主流的擴(kuò)展/夠動(dòng)存儲(chǔ)器接口和設(shè)備有CF(Compact Flash,緊湊型閃存)卡、MMC(MultiMedia Card,多媒體卡)、SD(Secure Digital,安全數(shù)字)卡以及能夠滿足更小體積要求的Mini SD卡、Trans Flash卡等。此外,某些嵌入式系統(tǒng)還有具有藍(lán)牙、USB、紅外等擴(kuò)展/移動(dòng)存儲(chǔ)器接口。
但是,隨著嵌入式系統(tǒng)的復(fù)雜度不斷加大,對(duì)嵌入式系統(tǒng)的開(kāi)發(fā)和產(chǎn)品的維修帶來(lái)了諸多問(wèn)題。由于大多數(shù)嵌入式系統(tǒng)包含復(fù)雜的操作系統(tǒng)和應(yīng)用軟件,所以在嵌入式系統(tǒng)軟件的開(kāi)發(fā)過(guò)程中難免會(huì)出現(xiàn)一些問(wèn)題,廠商通常需要通過(guò)升級(jí)來(lái)修復(fù)這些問(wèn)題,而且軟件的開(kāi)發(fā)也需要在產(chǎn)品上市后通過(guò)升級(jí)不斷補(bǔ)充和完善。此外,用戶在使用嵌入式產(chǎn)品的過(guò)程中也會(huì)因?yàn)橛布虿僮鞑划?dāng)?shù)仍蛟斐刹僮飨到y(tǒng)等核心軟件被破壞,使得產(chǎn)品無(wú)法使用。
嵌入式系統(tǒng)通常都是在上電啟動(dòng)時(shí),由BOOTLOADER(引導(dǎo)加載程序)從ROM(Read Only Memory,只讀存儲(chǔ)器)中讀取包含嵌入式系統(tǒng)程序的鏡像文件,并加載到RAM(Random Access Memory,隨機(jī)存取存儲(chǔ)器)中運(yùn)行。因此,對(duì)嵌入式產(chǎn)品軟件的升級(jí)和修復(fù)通常就是對(duì)ROM中的鏡像文件進(jìn)行重寫和修復(fù)。
通常,對(duì)嵌入式產(chǎn)品的軟件升級(jí)和修復(fù)都是由專業(yè)維修人員通過(guò)計(jì)算機(jī)上專用的PST(Product Support Tools)軟件和數(shù)據(jù)線與嵌入式產(chǎn)品相連,進(jìn)行嵌入式軟件的升級(jí)或修復(fù)。因此需要設(shè)置專門的維修網(wǎng)點(diǎn)和人員從事產(chǎn)品的售后服務(wù),這給嵌入式產(chǎn)品生產(chǎn)廠商帶來(lái)了極大的負(fù)擔(dān)。對(duì)于規(guī)模較小的廠商,很難在產(chǎn)品上市的所有地區(qū)設(shè)置專業(yè)的售后部門,部分用戶的產(chǎn)品無(wú)法得到及時(shí)的修復(fù),最終造成了對(duì)用戶利益的極大損害。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,克服現(xiàn)有技術(shù)中嵌入式系統(tǒng)軟件升級(jí)和修復(fù)方法的不足,提出一種不需要額外的維修設(shè)備,通過(guò)嵌入式系統(tǒng)自帶的擴(kuò)展/移動(dòng)存儲(chǔ)器接口和相應(yīng)的存儲(chǔ)設(shè)備對(duì)嵌入式系統(tǒng)的軟件進(jìn)行升級(jí)和修復(fù)的方法。
為了解決上述問(wèn)題,本發(fā)明提供一種用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,應(yīng)用于具有可與包含存儲(chǔ)介質(zhì)的擴(kuò)展/移動(dòng)存儲(chǔ)器相連的存儲(chǔ)接口的嵌入式系統(tǒng);該方法包含以下步驟a)調(diào)用擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng),初始化存儲(chǔ)接口和存儲(chǔ)器,獲取存儲(chǔ)介質(zhì)控制信息;b)調(diào)用文件系統(tǒng),獲取存儲(chǔ)介質(zhì)文件系統(tǒng)信息;c)調(diào)用ROM驅(qū)動(dòng),初始化ROM訪問(wèn)接口;d)根據(jù)上述存儲(chǔ)介質(zhì)控制信息、存儲(chǔ)介質(zhì)文件系統(tǒng)信息,通過(guò)擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng)讀取存儲(chǔ)介質(zhì)中保存的嵌入式系統(tǒng)鏡像文件,并將其通過(guò)ROM訪問(wèn)接口寫入ROM中。
此外,所述步驟a)之前還包含如下步驟a1)獲取調(diào)用模式;所述調(diào)用模式為第一調(diào)用模式,引導(dǎo)加載程序調(diào)用;第二調(diào)用模式,錯(cuò)誤處理程序調(diào)用;和第三調(diào)用模式,輸入設(shè)備事件處理程序調(diào)用中的一種。
此外,所述步驟a1)與a)之間還包含如下步驟a2)對(duì)ROM中的鏡像文件的完整性進(jìn)行檢查,若鏡像文件完整且為第一調(diào)用模式,則本方法結(jié)束。
此外,在所述步驟d)之前還包含如下步驟d1)調(diào)用顯示驅(qū)動(dòng),初始化嵌入式系統(tǒng)的顯示/輸出設(shè)備;d2)調(diào)用輸入設(shè)備驅(qū)動(dòng),初始化嵌入式系統(tǒng)的輸入設(shè)備;d3)通過(guò)上述顯示/輸出設(shè)備和輸入設(shè)備選擇并輸入修復(fù)/升級(jí)操作所需的指示信息。
此外,所述步驟c)和d)之間還包含步驟屏蔽系統(tǒng)中斷和消息。
此外,所述步驟d)之后還包含步驟重新啟動(dòng)嵌入式系統(tǒng)。
此外,該方法還包含如下步驟定時(shí)復(fù)位看門狗,以防其產(chǎn)生系統(tǒng)復(fù)位信號(hào)。
本發(fā)明通過(guò)使用擴(kuò)展/移動(dòng)存儲(chǔ)設(shè)備,以快捷方便的方式對(duì)嵌入式系統(tǒng)的軟件進(jìn)行升級(jí)和修復(fù),降低了產(chǎn)品出現(xiàn)故障時(shí)用戶對(duì)廠商的依賴程度,減少了廠商的售后負(fù)擔(dān),增加了用戶對(duì)產(chǎn)品的信心,提高了用戶的滿意度。
圖1是實(shí)現(xiàn)本發(fā)明軟件修復(fù)和升級(jí)方法的軟件修復(fù)模塊的結(jié)構(gòu)框圖;圖2是本發(fā)明用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法的流程圖。
具體實(shí)施例方式
對(duì)于具有擴(kuò)展/移動(dòng)存儲(chǔ)設(shè)備接口的嵌入式系統(tǒng),當(dāng)軟件出現(xiàn)故障甚至系統(tǒng)無(wú)法啟動(dòng)時(shí),可以通過(guò)修復(fù)程序?qū)⑾鄳?yīng)存儲(chǔ)設(shè)備上的系統(tǒng)鏡像文件讀出,并重新寫入到ROM中,覆蓋原先的版本,實(shí)現(xiàn)軟件的升級(jí)和修復(fù)。
通常系統(tǒng)鏡像文件中包含嵌入式系統(tǒng)程序,即與嵌入式系統(tǒng)硬件一起完成嵌入式產(chǎn)品功能的程序。系統(tǒng)鏡像文件是通過(guò)將多個(gè)包含代碼的程序源文件和資源文件編譯在一起生成的。由于上述修復(fù)程序在對(duì)嵌入式系統(tǒng)進(jìn)行升級(jí)和修復(fù)時(shí)也需要與嵌入式系統(tǒng)程序的某些模塊進(jìn)行交互,例如調(diào)用特定的函數(shù)、傳遞參數(shù)等,因此也需要將其與嵌入式系統(tǒng)程序編譯在一起。以下所述系統(tǒng)鏡像文件包含嵌入式系統(tǒng)程序和本發(fā)明的修復(fù)程序。
本發(fā)明的修復(fù)程序可在以下三種情況下被調(diào)用一、在ROM中保存的系統(tǒng)鏡像文件損壞,嵌入式系統(tǒng)無(wú)法正常啟動(dòng)時(shí),由BOOTLOADER調(diào)用;由上所述,本發(fā)明的修復(fù)程序可以與嵌入式系統(tǒng)程序編譯在一起,因此,只要通過(guò)特定的鏈接定義選項(xiàng)將其編譯在BOOTLOADER可以調(diào)用的、系統(tǒng)鏡像文件的特定位置(通常為文件的開(kāi)始部分),本發(fā)明的修復(fù)程序就可以在上電后嵌入式操作系統(tǒng)啟動(dòng)前被BOOTLOADER首先調(diào)用。在這種情況下,由于包含嵌入式操作系統(tǒng)和嵌入式應(yīng)用程序的嵌入式系統(tǒng)程序尚未啟動(dòng),所以本發(fā)明的修復(fù)程序可以獨(dú)占嵌入式CPU的時(shí)間片,在不被干擾的情況下完成修復(fù)或升級(jí)。
二、在嵌入式系統(tǒng)軟件出現(xiàn)致命錯(cuò)誤時(shí),由錯(cuò)誤處理程序調(diào)用;這種情況需要修改嵌入式系統(tǒng)的錯(cuò)誤處理程序,以便在出現(xiàn)致命錯(cuò)誤,無(wú)法通過(guò)正常方式進(jìn)行處理時(shí)調(diào)用本發(fā)明的修復(fù)程序。
三、在嵌入式系統(tǒng)軟件正常工作時(shí),由輸入設(shè)備事件處理程序調(diào)用;通常嵌入式系統(tǒng)都有輸入設(shè)備,如鍵盤、觸摸屏等。對(duì)輸入設(shè)備引發(fā)的事件,如用戶按鍵等,有專門的輸入設(shè)備事件處理程序進(jìn)行處理。因此,只需設(shè)置專門的組合鍵,使對(duì)該組合鍵的處理程序調(diào)用本發(fā)明的修復(fù)程序即可。
此外,為了進(jìn)一步增強(qiáng)系統(tǒng)的可靠性,使本發(fā)明的修復(fù)程序能被正常調(diào)用,一般將其保存在ROM中不易損壞的位置。對(duì)于每一款ROM產(chǎn)品,為了保證BOOTLOADER等程序能正常運(yùn)行,通常存在若干不易損壞的BLOCK(塊),通過(guò)適當(dāng)?shù)木幾g選項(xiàng),可將本發(fā)明的修復(fù)程序與BOOTLOADER保存在這些不易損壞的塊中。
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)的描述。
圖1是實(shí)現(xiàn)本發(fā)明軟件修復(fù)和升級(jí)方法的軟件修復(fù)程序的結(jié)構(gòu)框圖;如圖1所示,實(shí)現(xiàn)本發(fā)明軟件修復(fù)和升級(jí)方法的軟件修復(fù)程序包含ROM驅(qū)動(dòng),用于對(duì)嵌入式系統(tǒng)的ROM進(jìn)行初始化和讀寫操作。
存儲(chǔ)器驅(qū)動(dòng),用于對(duì)嵌入式系統(tǒng)的擴(kuò)展/移動(dòng)存儲(chǔ)器進(jìn)行初始化和讀寫操作。
存儲(chǔ)器文件系統(tǒng),用于對(duì)擴(kuò)展/移動(dòng)存儲(chǔ)器中保存的文件進(jìn)行存取等操作。
核心驅(qū)動(dòng),用于對(duì)系統(tǒng)時(shí)鐘,IO接口,RAM等硬件進(jìn)行訪問(wèn)和控制。
顯示驅(qū)動(dòng),用于對(duì)嵌入式系統(tǒng)的顯示裝置進(jìn)行初始化和控制,以實(shí)現(xiàn)菜單、文字和圖形的顯示功能。
輸入設(shè)備驅(qū)動(dòng),用于對(duì)嵌入式系統(tǒng)的鍵盤等輸入設(shè)備進(jìn)行初始化和控制,使用戶實(shí)現(xiàn)菜單選擇,字符輸入等功能。
主程序模塊,用于調(diào)用ROM驅(qū)動(dòng)、存儲(chǔ)器驅(qū)動(dòng)、存儲(chǔ)器文件系統(tǒng)、核心驅(qū)動(dòng)、顯示驅(qū)動(dòng)和輸入設(shè)備驅(qū)動(dòng)對(duì)嵌入式系統(tǒng)硬件進(jìn)行初始化操作,并通過(guò)ROM驅(qū)動(dòng)、存儲(chǔ)器驅(qū)動(dòng)和存儲(chǔ)器文件系統(tǒng)將系統(tǒng)鏡像文件從擴(kuò)展/移動(dòng)存儲(chǔ)設(shè)備中讀出,并寫入ROM,完成軟件修復(fù)/升級(jí)。
上述包含ROM驅(qū)動(dòng)、存儲(chǔ)器驅(qū)動(dòng)、核心驅(qū)動(dòng)、顯示驅(qū)動(dòng)、輸入設(shè)備驅(qū)動(dòng)的驅(qū)動(dòng)模塊以及存儲(chǔ)器文件系統(tǒng)所完成的功能與嵌入式系統(tǒng)正常工作時(shí)相應(yīng)的驅(qū)動(dòng)完成的功能一樣,但是在嵌入式系統(tǒng)無(wú)法正常啟動(dòng)或出現(xiàn)致命錯(cuò)誤時(shí)嵌入式系統(tǒng)程序本身的上述驅(qū)動(dòng)和文件系統(tǒng)模塊可能無(wú)法正常被調(diào)用,或不能正常工作,所以需要將其包含在本發(fā)明的修復(fù)程序中。
圖2是本發(fā)明用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法的流程圖。如圖2所示,本發(fā)明的軟件修復(fù)和升級(jí)方法包含如下步驟步驟101獲取程序的調(diào)用模式。
如上所述,本發(fā)明的修復(fù)程序可在三種情況下被調(diào)用,分別對(duì)應(yīng)了本發(fā)明的修復(fù)程序的三種調(diào)用模式系統(tǒng)無(wú)法啟動(dòng)、系統(tǒng)出現(xiàn)致命錯(cuò)誤和系統(tǒng)正常運(yùn)行。由于在這三種調(diào)用模式下,本發(fā)明的修復(fù)程序進(jìn)行不同的修復(fù)/升級(jí)操作,所以需要判斷當(dāng)前程序所屬的調(diào)用模式。對(duì)調(diào)用模式的判斷僅需由調(diào)用方BOOTLOADER、錯(cuò)誤處理程序或輸入設(shè)備事件處理程序在調(diào)用修復(fù)程序時(shí)傳入不同的參數(shù),本發(fā)明的修復(fù)程序即可根據(jù)該參數(shù)判斷當(dāng)前的調(diào)用模式。當(dāng)然也可以通過(guò)讀取操作系統(tǒng)狀態(tài)位來(lái)獲知當(dāng)前軟硬件系統(tǒng)的狀態(tài),進(jìn)而獲知當(dāng)前程序的運(yùn)行狀態(tài)和調(diào)用模式。
步驟102若當(dāng)前為第一種調(diào)用模式,需要對(duì)鏡像文件進(jìn)行完整性檢查,若鏡像文件完整,則退出本程序,否則執(zhí)行下一步。
由于包含操作系統(tǒng)及其它嵌入式應(yīng)用程序的可執(zhí)行文件和實(shí)現(xiàn)本發(fā)明的修復(fù)程序的鏡像文件都保存在ROM中,可能被損壞,從而導(dǎo)致系統(tǒng)無(wú)法正常啟動(dòng),所以需要對(duì)鏡像文件的完整性進(jìn)行檢查。
在將鏡像文件寫入ROM時(shí)通常需要計(jì)算該鏡像文件的初始CRC(Cyclical Redundancy Check,循環(huán)冗余檢驗(yàn))并將其同時(shí)寫入ROM。因此,鏡像文件的完整性檢查就是通過(guò)重新計(jì)算ROM中保存的鏡像文件的CRC,并將其與ROM中保存的初始CRC進(jìn)行比較,若比較的結(jié)果不相同,則說(shuō)明鏡像文件被損壞。
對(duì)于第二種和第三種調(diào)用模式,也可以進(jìn)行鏡像文件的完整性檢查,并保存檢查的結(jié)果。
步驟103調(diào)用顯示驅(qū)動(dòng)模塊,對(duì)顯示/輸出設(shè)備進(jìn)行初始化。
為了使用戶能對(duì)軟件修復(fù)和升級(jí)操作進(jìn)行選擇,并使用戶獲知當(dāng)前修復(fù)或升級(jí)操作的狀態(tài)/進(jìn)度,需要在嵌入式輸出設(shè)備上以文字、菜單或圖形方式顯示信息。
對(duì)于第一種調(diào)用模式,由于當(dāng)前操作系統(tǒng)尚未啟動(dòng),需要對(duì)顯示/輸出設(shè)備進(jìn)行初始化;對(duì)于第二種和第三種調(diào)用模式,也可以對(duì)顯示/輸出設(shè)備重新進(jìn)行初始化操作,以確保程序的正確運(yùn)行。
步驟104調(diào)用輸入設(shè)備驅(qū)動(dòng)模塊,初始化輸入設(shè)備。
同上,如果軟件的修復(fù)和升級(jí)操作需要用戶輸入信息,那么對(duì)于第一種調(diào)用模式必須進(jìn)行此操作,對(duì)于第二和第三種調(diào)用模式,此操作為可選。
步驟105調(diào)用存儲(chǔ)器驅(qū)動(dòng),初始化擴(kuò)展/移動(dòng)存儲(chǔ)器;如發(fā)現(xiàn)存儲(chǔ)器中沒(méi)有存儲(chǔ)卡,則顯示信息提示用戶插入存儲(chǔ)卡,并在用戶點(diǎn)擊確定后繼續(xù)嘗試初始化存儲(chǔ)卡。如初始化成功,則讀取存儲(chǔ)器最大容量,磁頭數(shù),磁道扇區(qū)數(shù),設(shè)備名,串行碼(卷標(biāo))等存儲(chǔ)卡控制信息。
步驟106調(diào)用存儲(chǔ)器文件系統(tǒng),讀取MBR(Master Boot Record,主引導(dǎo)記錄),BPB(BIOS Parameter Block,基本輸入輸出系統(tǒng)參數(shù)塊,也稱作啟動(dòng)扇區(qū)),存儲(chǔ)卡文件分區(qū)信息,根目錄表等文件系統(tǒng)信息。
步驟107調(diào)用嵌入式系統(tǒng)ROM驅(qū)動(dòng),初始化ROM的訪問(wèn)接口。
步驟108提示用戶選擇需要升級(jí)或修復(fù)的嵌入式系統(tǒng)軟件模塊。
用戶可通過(guò)輸入和輸出/顯示設(shè)備選擇并輸入指示信息,例如,當(dāng)嵌入式系統(tǒng)軟件包含多個(gè)鏡像文件時(shí),可以由用戶選擇對(duì)其中的一個(gè)或多個(gè)文件進(jìn)行修復(fù)/升級(jí)操作。
步驟109屏蔽系統(tǒng)中斷和消息。
對(duì)于第二種和第三種調(diào)用模式,為了避免系統(tǒng)中其它進(jìn)程/線程以及消息的干擾,在修復(fù)/升級(jí)操作進(jìn)行過(guò)程中,需要禁止系統(tǒng)中的可屏蔽中斷,并禁止各種用戶和系統(tǒng)消息。
步驟110根據(jù)上述存儲(chǔ)卡控制信息和文件系統(tǒng)信息,從存儲(chǔ)卡中讀取鏡像文件,并寫入嵌入式系統(tǒng)的ROM中,同時(shí)顯示升級(jí)或修復(fù)操作的進(jìn)度或其它狀態(tài)信息。
步驟111完成后續(xù)操作。
對(duì)于第一種調(diào)用模式,在修復(fù)/升級(jí)操作完成后,退出修復(fù)程序,將系統(tǒng)控制權(quán)交還給BOOTLOADER,由其完成后續(xù)的系統(tǒng)啟動(dòng)過(guò)程。對(duì)于第二和第三種調(diào)用模式,則可由用戶選擇重新啟動(dòng)系統(tǒng)或退出本程序。
除上述操作外,若系統(tǒng)中還有看門狗,則還需定時(shí)復(fù)位看門狗,以防看門狗定時(shí)器溢出,產(chǎn)生系統(tǒng)復(fù)位信號(hào)。
下面以在高通MSM6500平臺(tái)上的一款CDMA手機(jī)上實(shí)現(xiàn)的軟件修復(fù)程序?yàn)槔?,?duì)本發(fā)明作進(jìn)一步描述。
此CDMA手機(jī)的嵌入式硬件環(huán)境如下·外部/擴(kuò)展存儲(chǔ)器為TransFlash卡座,可支持現(xiàn)有的16MB到2GB的各種容量的TransFlash的存儲(chǔ)卡;·主處理器為ARM926EJ-S的處理器,主頻是146.7648MHz,總線速度是二分頻73.3824MHz,具有內(nèi)置的MMC/SD存儲(chǔ)卡控制器,可以兼容TransFlash卡,存儲(chǔ)卡接口時(shí)鐘由總線時(shí)鐘分頻獲得,為10MHz;·ROM為SAMSUNG的128MB NAND FLASH存儲(chǔ)器;·LCD采用EPSON驅(qū)動(dòng)芯片的2英寸TFT顯示屏。
此手機(jī)的嵌入式軟件環(huán)境如下·操作系統(tǒng)采用高通的REX操作系統(tǒng),自身文件系統(tǒng)是EFS(EmbeddedFile System,嵌入式文件系統(tǒng));·TransFlash存儲(chǔ)卡是FAT16文件系統(tǒng);·鏡像文件包含三部分BOOTLOADER,主程序鏡像,EFS。
由于手機(jī)的文件系統(tǒng)是EFS,與存儲(chǔ)卡的FAT16文件系統(tǒng)不兼容,所以需要一個(gè)轉(zhuǎn)換程序。高通提供了一個(gè)SFAT任務(wù)來(lái)完成EFS與FAT16之間的轉(zhuǎn)換。因此,當(dāng)手機(jī)在正常運(yùn)行狀態(tài)時(shí),本發(fā)明的修復(fù)程序可使用SFAT任務(wù)和EFS文件系統(tǒng)訪問(wèn)TransFlash存儲(chǔ)卡,在手機(jī)出現(xiàn)致命錯(cuò)誤或無(wú)法正常啟動(dòng)時(shí),可通過(guò)自身的FAT16文件系統(tǒng)訪問(wèn)TransFlash存儲(chǔ)卡。
經(jīng)過(guò)測(cè)試,在上述CDMA手機(jī)上采用本發(fā)明的修復(fù)軟件進(jìn)行軟件升級(jí)或修復(fù)的成功率100%。并且采用本發(fā)明的修復(fù)和升級(jí)方法進(jìn)行升級(jí)或修復(fù)的速度要遠(yuǎn)高于通過(guò)USB線連接的計(jì)算機(jī)側(cè)PST軟件的升級(jí)或修復(fù)速度,如表1所示。
由上可知,采用本發(fā)明的方法進(jìn)行軟件的修復(fù)和升級(jí)不僅提高了速度,用戶還可以通過(guò)網(wǎng)絡(luò)等方式獲得更新軟件,方便了用戶,減輕了廠商的售后負(fù)擔(dān)。
權(quán)利要求
1.一種用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,應(yīng)用于具有可與包含存儲(chǔ)介質(zhì)的擴(kuò)展/移動(dòng)存儲(chǔ)器相連的存儲(chǔ)接口的嵌入式系統(tǒng);該方法包含以下步驟a)調(diào)用擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng),初始化存儲(chǔ)接口和存儲(chǔ)器,獲取存儲(chǔ)介質(zhì)控制信息;b)調(diào)用文件系統(tǒng),獲取存儲(chǔ)介質(zhì)文件系統(tǒng)信息;c)調(diào)用ROM驅(qū)動(dòng),初始化ROM訪問(wèn)接口;d)根據(jù)上述存儲(chǔ)介質(zhì)控制信息、存儲(chǔ)介質(zhì)文件系統(tǒng)信息,通過(guò)擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng)讀取存儲(chǔ)介質(zhì)中保存的嵌入式系統(tǒng)鏡像文件,并將其通過(guò)ROM訪問(wèn)接口寫入ROM中。
2.如權(quán)利要求1所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,所述步驟a)之前還包含如下步驟a1)獲取調(diào)用模式;所述調(diào)用模式為第一調(diào)用模式,引導(dǎo)加載程序調(diào)用;第二調(diào)用模式,錯(cuò)誤處理程序調(diào)用;和第三調(diào)用模式,輸入設(shè)備事件處理程序調(diào)用中的一種。
3.如權(quán)利要求2所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,所述步驟a1)與a)之間還包含如下步驟a2)對(duì)ROM中的鏡像文件的完整性進(jìn)行檢查,若鏡像文件完整且為第一調(diào)用模式,則本方法結(jié)束。
4.如權(quán)利要求1所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,在所述步驟d)之前還包含如下步驟d1)調(diào)用顯示驅(qū)動(dòng),初始化嵌入式系統(tǒng)的顯示/輸出設(shè)備;d2)調(diào)用輸入設(shè)備驅(qū)動(dòng),初始化嵌入式系統(tǒng)的輸入設(shè)備;d3)通過(guò)上述顯示/輸出設(shè)備和輸入設(shè)備選擇并輸入修復(fù)/升級(jí)操作所需的指示信息。
5.如權(quán)利要求1所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,所述步驟c)和d)之間還包含步驟屏蔽系統(tǒng)中斷和消息。
6.如權(quán)利要求2所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,所述步驟d)之后還包含步驟重新啟動(dòng)嵌入式系統(tǒng)。
7.如權(quán)利要求1所述的用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,其特征在于,該方法還包含如下步驟定時(shí)復(fù)位看門狗,以防其產(chǎn)生系統(tǒng)復(fù)位信號(hào)。
全文摘要
一種用于嵌入式系統(tǒng)的軟件修復(fù)和升級(jí)方法,應(yīng)用于具有可與包含存儲(chǔ)介質(zhì)的擴(kuò)展/移動(dòng)存儲(chǔ)器相連的存儲(chǔ)接口的嵌入式系統(tǒng);該方法包含以下步驟調(diào)用擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng),初始化存儲(chǔ)接口和存儲(chǔ)器,獲取存儲(chǔ)介質(zhì)控制信息;調(diào)用文件系統(tǒng),獲取存儲(chǔ)介質(zhì)文件系統(tǒng)信息;調(diào)用ROM驅(qū)動(dòng),初始化ROM訪問(wèn)接口;根據(jù)上述存儲(chǔ)介質(zhì)控制信息、存儲(chǔ)介質(zhì)文件系統(tǒng)信息,通過(guò)擴(kuò)展/移動(dòng)存儲(chǔ)器驅(qū)動(dòng)讀取存儲(chǔ)介質(zhì)中保存的嵌入式系統(tǒng)鏡像文件,并將其通過(guò)ROM訪問(wèn)接口寫入ROM中。本發(fā)明通過(guò)使用擴(kuò)展/移動(dòng)存儲(chǔ)設(shè)備,以快捷方便的方式對(duì)嵌入式系統(tǒng)的軟件進(jìn)行升級(jí)和修復(fù),降低了產(chǎn)品出現(xiàn)故障時(shí)用戶對(duì)廠商的依賴程度,減少了廠商的售后負(fù)擔(dān)。
文檔編號(hào)G06F11/14GK101021797SQ20071009084
公開(kāi)日2007年8月22日 申請(qǐng)日期2007年4月6日 優(yōu)先權(quán)日2007年4月6日
發(fā)明者陳巖 申請(qǐng)人:中興通訊股份有限公司