欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實(shí)現(xiàn)固件更新的方法和系統(tǒng)的制作方法

文檔序號:6573467閱讀:271來源:國知局

專利名稱::一種實(shí)現(xiàn)固件更新的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及固件更新
技術(shù)領(lǐng)域
,特別涉及一種實(shí)現(xiàn)嵌入式系統(tǒng)固件更新的方法和系統(tǒng)。
背景技術(shù)
:固件是具有軟件功能的硬件,在早期這種器件一般都是存有軟件的可擦除只讀存儲(chǔ)器(EROM)或可擦除可編程只讀存儲(chǔ)器(EPROM)等。固件發(fā)展到今天已經(jīng)具有了新的定義,一般來說,將擔(dān)任著一個(gè)系統(tǒng)最基礎(chǔ)、最底層工作的軟件稱為固件,并且以系統(tǒng)中的閃存為載體,與系統(tǒng)其他硬件部分同時(shí)存在,支持系統(tǒng)運(yùn)行。固件廣泛存在于嵌入式系統(tǒng)中,比如手機(jī)中,數(shù)碼相機(jī)中,隨身聽中等都有。固件常常需要進(jìn)行更新,例如當(dāng)嵌入式系統(tǒng)發(fā)生故障,就需要對固件進(jìn)行更新,以修復(fù)缺陷。另外,固件更新帶來的不僅是硬件性能地提升,還能為硬件增添許多嶄新的功能。例如,打印機(jī)進(jìn)行了固件更新后,可以很大程度地改善打印質(zhì)量,提升進(jìn)紙速度等。目前的嵌入式固件更新方法主要是通過硬件傳輸線在嵌入式系統(tǒng)和上位機(jī)間建立連接,嵌入式系統(tǒng)的主程序與上位機(jī)之間進(jìn)行配合,完成設(shè)備枚舉,在需要進(jìn)行固件更新時(shí),上位機(jī)需要通過客戶端應(yīng)用程序和專用的硬件傳輸線根據(jù)私有的客戶端協(xié)議向嵌入式系統(tǒng)的主程序發(fā)出固件更新的通知,嵌入式系統(tǒng)先通過執(zhí)行主程序,獲得該固件更新通知,將固件更新程序從主程序所在的那個(gè)存儲(chǔ)器中移到一個(gè)緩存中,然后從緩存中讀取該固件更新程序并執(zhí)行,執(zhí)行的結(jié)果是將從上位機(jī)獲得的新的固件存儲(chǔ)到存儲(chǔ)器的指定位置(一般為原固件程序所在的位置)中,并對新的固件進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果反饋給上位機(jī),上位機(jī)通過專門的應(yīng)用程序獲得并顯示該校驗(yàn)結(jié)果,從而通知用戶固件更新是否成功。其中所述的上位機(jī)為可以為PC機(jī)或者其他可以用于更新固件程序的服務(wù)器??梢钥闯?,目前的嵌入式固件更新方法需要專門的硬件傳輸線、專門的應(yīng)用程序和私有的協(xié)議客戶端軟件,當(dāng)對應(yīng)不同的嵌入式系統(tǒng)時(shí),必須在上位機(jī)中安裝相應(yīng)的客戶端軟件,系統(tǒng)和操作都比較復(fù)雜,不方便嵌入式系統(tǒng)進(jìn)行固件程序的更新。另外,現(xiàn)有的嵌入式系統(tǒng)中為了實(shí)現(xiàn)固件更新而設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)也比較復(fù)雜,研發(fā)和產(chǎn)品成本較高。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)固件更新的方法,使嵌入式系統(tǒng)的固件更新簡單方便。本發(fā)明的第二個(gè)目的在于提供一種實(shí)現(xiàn)固件更新的系統(tǒng),使嵌入式系統(tǒng)的固件更新簡單方便。為了實(shí)現(xiàn)上述第一個(gè)目的,本發(fā)明提供了一種實(shí)現(xiàn)固件更新的方法,該方法包括在固件更新模式下,在嵌入式系統(tǒng)中加載固件更新模塊,所述固件更新模塊建立虛擬文件分配表FAT;在上位機(jī)與嵌入式系統(tǒng)連接后,進(jìn)行設(shè)備枚舉過程,上位機(jī)基于存儲(chǔ)設(shè)備協(xié)議,根據(jù)所述虛擬FAT將所述嵌入式系統(tǒng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備;執(zhí)行固件更新過程,所述上位機(jī)將固件程序拷貝到嵌入式系統(tǒng),所述固件更新模塊接收來自上位機(jī)的固件程序,并根據(jù)所述虛擬FAT存儲(chǔ)該固件程序。優(yōu)選的,所述虛擬FAT可以包括FAT引導(dǎo)扇區(qū)FATHEADER,只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭的2個(gè)FAT表區(qū),只包含1個(gè)文件名內(nèi)容的目錄和文件名區(qū),以及虛擬數(shù)據(jù)區(qū)。優(yōu)選的,所述固件更新模塊可以加載在所述嵌入式系統(tǒng)的引導(dǎo)系統(tǒng)BOOT內(nèi),所述虛擬FAT的FATHEADER、FAT表區(qū)以及目錄和文件名區(qū)均在所述BOOT中建立,所述虛擬數(shù)據(jù)區(qū)被映射到所述嵌入式系統(tǒng)的存儲(chǔ)空間中。所述固件更新模塊接收來自上位機(jī)的固件程序后,進(jìn)一步可對固件程序進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果通過所述虛擬FAT返回給所述上位機(jī),并且在校驗(yàn)通過時(shí)存儲(chǔ)固件程序。優(yōu)選的,所述固件更新模塊將校驗(yàn)結(jié)果通過虛擬FAT返回給所述上位機(jī)具體是,根據(jù)校驗(yàn)結(jié)果生成狀態(tài)反饋文件,所述生成狀態(tài)反饋文件為將校驗(yàn)結(jié)果以字符串的形式填充在虛擬FAT中的目錄和文件名區(qū)內(nèi);在生成狀態(tài)反饋文件后,固件更新模塊通知上位機(jī)虛擬FAT內(nèi)數(shù)據(jù)改變,上位機(jī)進(jìn)行自動(dòng)刷新,顯示以校驗(yàn)結(jié)果作為文件名的狀態(tài)反饋文件。優(yōu)選的,所述設(shè)備枚舉過程包括上位機(jī)讀取FATHEADER,固件更新模塊返回FATHEADER內(nèi)容;上位機(jī)根據(jù)返回的FATHEADER內(nèi)容讀取FAT表區(qū)以及目錄和文件名區(qū)內(nèi)容,固件更新模塊根據(jù)FATHEADER中標(biāo)識的FAT表區(qū)以及目錄和文件名區(qū)的長度來返回簡化的FAT表區(qū)以及目錄和文件名區(qū)內(nèi)容。優(yōu)選的,在校驗(yàn)通過時(shí),所述固件更新模塊將所述固件程序存儲(chǔ)到映射在所述嵌入式系統(tǒng)的存儲(chǔ)空間中的虛擬數(shù)據(jù)區(qū)內(nèi);在校驗(yàn)未通過時(shí),所述固件更新模塊將所述固件程序丟棄。優(yōu)選的,所述可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備為通用的可移動(dòng)存儲(chǔ)設(shè)備;所述存儲(chǔ)設(shè)備協(xié)議為通用的可移動(dòng)存儲(chǔ)設(shè)備協(xié)議。優(yōu)選的,所述固件更新模塊為U盤系統(tǒng),所述通用的可移動(dòng)存儲(chǔ)設(shè)備協(xié)議為U盤的軟硬件協(xié)議,所述上位機(jī)將嵌入式系統(tǒng)識別為U盤;所述上位機(jī)通過USB電纜與嵌入式系統(tǒng)連接。為了實(shí)現(xiàn)上述第二個(gè)目的,本發(fā)明提供了一種實(shí)現(xiàn)固件更新的系統(tǒng),該系統(tǒng)包括上位機(jī)和嵌入式系統(tǒng),嵌入式系統(tǒng)中設(shè)置有固件更新模塊,所述固件更新模塊在固件更新模式下被加載,并在加載后建立虛擬文件分配表FAT;上位機(jī),與處于固件更新模式下的嵌入式系統(tǒng)連接,并用于在連接后根據(jù)所述虛擬FAT,基于存儲(chǔ)設(shè)備協(xié)議將所述嵌入式系統(tǒng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備;所述上位機(jī)還用于將固件程序拷貝到所述嵌入式系統(tǒng),所述固件更新模塊用于接收來自上位機(jī)的固件程序,并根據(jù)所述虛擬FAT存儲(chǔ)該固件程序至嵌入式系統(tǒng)的存儲(chǔ)空間。優(yōu)選的,所述固件更新模塊中的虛擬FAT包含F(xiàn)ATHEADER,只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭的2個(gè)FAT表區(qū),只包含1個(gè)文件名內(nèi)容的目錄和文件名區(qū),以及虛擬數(shù)據(jù)區(qū)。所述固件更新模塊進(jìn)一步用于對來自上位機(jī)的固件程序進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果生成狀態(tài)反饋文件,所述生成狀態(tài)反饋文件為將校驗(yàn)結(jié)果以字符串的形式填充在虛擬FAT中的目錄和文件名區(qū)內(nèi);在生成狀態(tài)反饋文件之后,固件更新模塊進(jìn)一步用于通知上位機(jī)虛擬FAT內(nèi)數(shù)據(jù)改變;所述上位機(jī)進(jìn)一步用于進(jìn)行自動(dòng)刷新,顯示以校驗(yàn)結(jié)果作為文件名的狀態(tài)反饋文件。優(yōu)選的,所述固件更新模塊加載在所述嵌入式系統(tǒng)的引導(dǎo)系統(tǒng)BOOT內(nèi),所述虛擬FAT的FATHEADER、FAT表區(qū)以及目錄和文件名區(qū)均設(shè)置在所述BOOT中,所述虛擬數(shù)據(jù)區(qū)映射到所述嵌入式系統(tǒng)的存儲(chǔ)空間中。優(yōu)選的,所述固件更新模塊為U盤系統(tǒng),所述存儲(chǔ)設(shè)備協(xié)議為U盤的軟硬件協(xié)議,所述上位機(jī)將嵌入式系統(tǒng)識別為U盤;所述上位機(jī)與所述嵌入式系統(tǒng)中的U盤系統(tǒng)通過USB電纜連接。由以上技術(shù)方案可以看出,本發(fā)明通過在嵌入式系統(tǒng)中設(shè)置具有虛擬文件分配表FAT的固件更新模塊,在上位機(jī)和嵌入式系統(tǒng)之間建立連接后,上位機(jī)基于存儲(chǔ)設(shè)備協(xié)議可自動(dòng)識別嵌入式系統(tǒng),并通過執(zhí)行文件拷貝的操作,即可將固件程序拷貝到嵌入式系統(tǒng),使固件更新模塊進(jìn)行固件更新的操作,將固件程序存儲(chǔ)到嵌入式系統(tǒng)的存儲(chǔ)空間中。因此與現(xiàn)有技術(shù)中必須由嵌入式系統(tǒng)的主程序與上位機(jī)配合才能完成固件更新不同的是,本發(fā)明針對不同的嵌入式系統(tǒng)不需要采用專門的傳輸線和私有的協(xié)議客戶端軟件,使嵌入式系統(tǒng)的固件更新簡單方便。圖1為實(shí)現(xiàn)固件更新的系統(tǒng)結(jié)構(gòu)示意圖;圖2為基本固件更新模塊的虛擬FAT分布示意圖;圖3為實(shí)現(xiàn)固件更新的方法流程圖;圖4為本發(fā)明所提供實(shí)施例的方法流程圖。具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對本發(fā)明做進(jìn)一步地詳細(xì)描述。首先有必要對存儲(chǔ)設(shè)備協(xié)議進(jìn)行說明。本文中所采用的存儲(chǔ)設(shè)備協(xié)議是指上位機(jī)所通用的,用于對存儲(chǔ)設(shè)備進(jìn)行識別,并與存儲(chǔ)設(shè)備進(jìn)行通信的標(biāo)準(zhǔn)協(xié)議。本領(lǐng)域內(nèi)技術(shù)人員所公知的,上位機(jī)為了識別某些類型的存儲(chǔ)設(shè)備,一般都預(yù)先配置了存儲(chǔ)設(shè)備協(xié)議,這些存儲(chǔ)設(shè)備協(xié)議因其通用性而成為業(yè)內(nèi)的標(biāo)準(zhǔn)協(xié)議,并在存儲(chǔ)設(shè)備連接到上位機(jī)后,上位機(jī)無需其它應(yīng)用程序控制,即可自動(dòng)對該存儲(chǔ)設(shè)備進(jìn)行設(shè)備枚舉,識別設(shè)備,并可在使用過程中對該存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存取的操作。舉例來說,如現(xiàn)在的電腦一般都具有U盤的軟硬件協(xié)議,當(dāng)將U盤插入電腦的USB接口后,電腦可以自動(dòng)識別出U盤,從而在電腦的操作系統(tǒng)中,通過打開文件夾的方式,對U盤進(jìn)行文件操作。另外,目前一些MP3播放器、手機(jī)等設(shè)備也可以在無需特別安裝驅(qū)動(dòng)程序的情況下,被電腦識別并進(jìn)行文件存取操作。這里的存儲(chǔ)設(shè)備及存儲(chǔ)設(shè)備協(xié)議包括現(xiàn)在已有的以及未來將有的通用的存儲(chǔ)設(shè)備及存儲(chǔ)設(shè)備協(xié)議。所述存儲(chǔ)設(shè)備及存儲(chǔ)設(shè)備協(xié)議可以為現(xiàn)有的或未來將有的通用的可移動(dòng)存儲(chǔ)設(shè)備和通用的可移動(dòng)存儲(chǔ)設(shè)備協(xié)議。本發(fā)明的核心思想是,利用上位機(jī)具備根據(jù)所述存儲(chǔ)設(shè)備協(xié)議自動(dòng)識別外部設(shè)備的性能,使上位機(jī)將嵌入式系統(tǒng)自動(dòng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備,通過上位機(jī)向該設(shè)備拷貝文件的簡單操作完成復(fù)雜的固件更新過程。本文中所述的“拷貝”的操作,不僅包括傳統(tǒng)意義上的將文件從一個(gè)文件夾復(fù)制到另一個(gè)文件夾的過程,還包括將文件從一個(gè)文件夾移動(dòng)到另一個(gè)文件夾,或?qū)⑽募囊粋€(gè)文件夾剪切后粘貼到另一個(gè)文件,等等類似的過程。下面,首先對本發(fā)明所提供的一種實(shí)現(xiàn)固件更新的系統(tǒng)進(jìn)行描述。圖1為實(shí)現(xiàn)固件更新的系統(tǒng)結(jié)構(gòu)示意圖。如圖1所示,該系統(tǒng)包括上位機(jī)100和嵌入式系統(tǒng)110。其中,上位機(jī)100為可自動(dòng)根據(jù)存儲(chǔ)設(shè)備協(xié)議,將所連接的設(shè)備識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備的上位機(jī);嵌入式系統(tǒng)100中設(shè)置有固件更新模塊111,以及存儲(chǔ)空間112。固件更新模塊111在被加載后,建立虛擬FAT,并可以基于存儲(chǔ)設(shè)備協(xié)議和虛擬FAT與上位機(jī)100進(jìn)行設(shè)備枚舉過程和固件更新過程。下面參照現(xiàn)有FAT對本發(fā)明的固件更新模塊中的虛擬FAT進(jìn)行描述。目前公知的標(biāo)準(zhǔn)的文件分配表FAT,以FAT16為例,如圖2所示,分為FATHEADER201、2個(gè)FAT表區(qū)202和203、目錄和文件名區(qū)204、以及數(shù)據(jù)區(qū)205。其中,F(xiàn)ATHEADER201一般用來標(biāo)識FAT系統(tǒng),也可用來標(biāo)識FAT表區(qū)202和203、目錄和文件名區(qū)204、以及數(shù)據(jù)區(qū)的長度。FAT表區(qū)202和203用來記錄每一扇區(qū)是否使用,以及它們的位置關(guān)系。目錄和文件名區(qū)204用來記錄文件名和路徑名,記錄根目錄下每個(gè)文件的起始單元、文件屬性等。定位文件位置時(shí),操作系統(tǒng)根據(jù)目錄和文件名區(qū)204以及FAT表202和203就可以知道文件的具體位置和大小了。數(shù)據(jù)區(qū)205用來存儲(chǔ)數(shù)據(jù)。由于標(biāo)準(zhǔn)的文件分配表FAT中包含的信息很多,一般其所占用的存儲(chǔ)空間很大,很多時(shí)候都達(dá)到了500k。因此現(xiàn)有的這種標(biāo)準(zhǔn)FAT將占用大量的內(nèi)存空間。本發(fā)明對FAT作虛擬化處理,即只有在進(jìn)入固件更新模式后,嵌入式系統(tǒng)才會(huì)將固件更新模塊加載到內(nèi)存中,固件更新模塊工作的過程中才會(huì)建立虛擬FAT,虛擬FAT的內(nèi)容才會(huì)被緩存在內(nèi)存中;而在非固件更新模式下,虛擬FAT會(huì)因?yàn)楣碳履K未被加載或從嵌入式系統(tǒng)的內(nèi)存中移除,而未被建立或同時(shí)被移除。從而達(dá)到虛擬FAT一方面可以幫助實(shí)現(xiàn)基于存儲(chǔ)設(shè)備協(xié)議進(jìn)行固件更新的過程,另一方面又不占用嵌入式系統(tǒng)的內(nèi)存空間的目的。另外,為了簡化嵌入式系統(tǒng)的結(jié)構(gòu),所述固件更新模塊111可以加載在嵌入式系統(tǒng)的BOOT中,這樣嵌入式系統(tǒng)的固件更新過程將不依賴于系統(tǒng)的主程序,而獨(dú)立工作。但因?yàn)槟壳暗那度胧较到y(tǒng)分配給BOOT的內(nèi)存空間很小,一般在30k左右,因此現(xiàn)有的標(biāo)準(zhǔn)的FAT不能設(shè)置在現(xiàn)在的嵌入式系統(tǒng)的BOOT內(nèi)。為了能夠在BOOT中加載固件更新模塊,固件更新模塊111中建立的虛擬FAT可以采用虛擬化后的簡化的文件分配表FAT。即保留FATHEADER區(qū);2個(gè)FAT表區(qū)只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭,只占3-4字節(jié),F(xiàn)AT表區(qū)中的其余數(shù)據(jù)用0表示,不占用空間,同時(shí)還可以表示所有的扇區(qū)未被使用,那么數(shù)據(jù)區(qū)的0地址即為固件程序的存放地址;目錄和文件名區(qū)只保留1個(gè)文件名內(nèi)容,為32字節(jié),該文件名內(nèi)容是狀態(tài)反饋文件的文件名內(nèi)容,在固件更新之前,此文件名內(nèi)容為空。本虛擬FAT的數(shù)據(jù)區(qū)被直接映射到嵌入式設(shè)備的存儲(chǔ)空間112中,成為一個(gè)虛擬數(shù)據(jù)區(qū)。這樣就可以將簡化的虛擬FAT放到BOOT中,即將虛擬FAT的FATHEADER區(qū)、2個(gè)FAT表區(qū)、以及目錄和文件名區(qū)放到BOOT中,只占用BOOT很少的內(nèi)存空間,而虛擬數(shù)據(jù)區(qū)實(shí)際存在于嵌入式設(shè)備的存儲(chǔ)空間112中,它不占用BOOT的內(nèi)存空間。進(jìn)一步地,上位機(jī)100,與處于固件更新模式下的嵌入式系統(tǒng)110連接,并用于在連接后根據(jù)所述存儲(chǔ)設(shè)備協(xié)議以及虛擬FAT將所述嵌入式系統(tǒng)110識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備;所述上位機(jī)100還用于將固件程序拷貝到所述嵌入式系統(tǒng)110,所述固件更新模塊111用于接收來自上位機(jī)100的固件程序,并對固件程序進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果通過所述虛擬FAT返回給所述上位機(jī)100,并在校驗(yàn)通過時(shí)根據(jù)所述虛擬FAT存儲(chǔ)該固件程序至嵌入式系統(tǒng)的存儲(chǔ)空間112。所述上位機(jī)一般為PC機(jī),也可以為能夠識別固件更新模塊的其他設(shè)備。所述固件更新模塊111將校驗(yàn)結(jié)果通過所述虛擬FAT返回給所述上位機(jī)100具體可以是在校驗(yàn)過程中,根據(jù)固件程序的長度和校驗(yàn)碼來校驗(yàn)數(shù)據(jù),并根據(jù)校驗(yàn)結(jié)果生成狀態(tài)反饋文件,然后向上位機(jī)100發(fā)送數(shù)據(jù)改變通知。其中,所述生成的狀態(tài)反饋文件用來表征校驗(yàn)是否成功,校驗(yàn)成功則生成表征正確的狀態(tài)反饋文件;校驗(yàn)失敗,則生成表征錯(cuò)誤的狀態(tài)反饋文件。所述狀態(tài)反饋文件以字符串的形式填充在所述虛擬FAT的目錄和文件名區(qū)中。上位機(jī)100,接收到固件更新模塊111發(fā)來的數(shù)據(jù)改變通知后,自動(dòng)進(jìn)行刷新,顯示以校驗(yàn)結(jié)果作為文件名的狀態(tài)反饋文件。作為一種具體實(shí)施的方式,所述固件更新模塊111可以為U盤系統(tǒng),所述存儲(chǔ)設(shè)備協(xié)議為U盤的軟硬件協(xié)議;上位機(jī)與嵌入式系統(tǒng)的連接可以采用USB傳輸線連接。下面對本發(fā)明所提供的實(shí)現(xiàn)固件更新的方法做詳細(xì)的描述。圖3為實(shí)現(xiàn)固件更新的方法流程圖。如圖3所示,該方法包括以下步驟步驟301在固件更新模式下,在嵌入式系統(tǒng)中加載固件更新模塊,固件更新模塊建立虛擬FAT。步驟302連接上位機(jī)與嵌入式系統(tǒng),進(jìn)行設(shè)備枚舉過程,并根據(jù)存儲(chǔ)設(shè)備協(xié)議以及虛擬FAT將所述嵌入式系統(tǒng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備。步驟303執(zhí)行固件更新過程,所述上位機(jī)將固件程序拷貝到嵌入式系統(tǒng),所述固件更新模塊接收來自上位機(jī)的固件程序,并根據(jù)所述虛擬FAT存儲(chǔ)該固件程序。所述步驟303進(jìn)一步可以包括,固件更新模塊對固件程序進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果通過所述虛擬FAT返回給上位機(jī)。步驟303之后,該方法還可以進(jìn)一步包括上位機(jī)自動(dòng)刷新,顯示校驗(yàn)結(jié)果。上述是本發(fā)明所提供方法的主要流程,下面以從PC機(jī)下載固件程序,固件更新模塊為U盤系統(tǒng)為例,對本發(fā)明所提供的實(shí)現(xiàn)固件更新的方法進(jìn)行詳細(xì)描述。圖4為本發(fā)明所提供實(shí)施例的方法流程圖。如圖4所示,該方法包括以下步驟步驟401在固件更新模式下,在嵌入式系統(tǒng)的BOOT內(nèi)加載U盤系統(tǒng),U盤系統(tǒng)建立虛擬FAT。本領(lǐng)域內(nèi)普通技術(shù)人員應(yīng)當(dāng)可以想到,為了使嵌入式系統(tǒng)進(jìn)入固件更新模式,可以為嵌入式系統(tǒng)設(shè)置工作模式選擇開關(guān),在將PC與嵌入式系統(tǒng)連接之前,將工作模式選擇開關(guān)選定至普通工作狀態(tài),則PC與嵌入式系統(tǒng)連接后,將按照公知的步驟,進(jìn)入正常的工作狀態(tài),此步驟可以為現(xiàn)有技術(shù),本發(fā)明不贅述;將工作模式選擇開關(guān)選定至固件更新狀態(tài)時(shí),則嵌入式系統(tǒng)進(jìn)入固件更新模式。U盤系統(tǒng)可以為一軟件模塊,預(yù)先存儲(chǔ)在嵌入式系統(tǒng)的存儲(chǔ)空間中,當(dāng)系統(tǒng)切換到固件更新模式下時(shí),才在BOOT內(nèi)加載該U盤系統(tǒng)。U盤系統(tǒng)被加載后,將建立虛擬FAT。U盤系統(tǒng)中的虛擬FAT可以采用簡化的FAT12/FAT16。保留FATHEADER區(qū);2個(gè)FAT表區(qū)只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭,只占3-4字節(jié);目錄和文件名區(qū)只保留1個(gè)文件名內(nèi)容,為32字節(jié)。這樣,在BOOT內(nèi)建立的虛擬FAT實(shí)際上只包括FATHEADER區(qū)、2個(gè)FAT表區(qū)、以及目錄和文件名區(qū),虛擬FAT的虛擬數(shù)據(jù)區(qū)被映射到嵌入式系統(tǒng)的存儲(chǔ)空間112中。本實(shí)施例中,嵌入式系統(tǒng)110可以為MP3播放器、掌上電腦等PMP(PortableMultiMediaPlayer,便攜式多媒體播放器)設(shè)備,嵌入式系統(tǒng)110的內(nèi)存可以采用SRAM、SDRAM等內(nèi)存RAM,存儲(chǔ)空間112可以采用非易失性存儲(chǔ)器NORFLASH、或NANDFLASH等。U盤系統(tǒng)與上位機(jī)通信時(shí),是采用標(biāo)準(zhǔn)的USB設(shè)備傳輸協(xié)議,該協(xié)議為目前的計(jì)算機(jī)所通用,所以本實(shí)施例在進(jìn)行固件更新時(shí),可以不再需要專門的私有協(xié)議客戶端軟件,遵循私有協(xié)議進(jìn)行通信,使嵌入式系統(tǒng)的固件更新更加的方便簡單。步驟402連接PC與嵌入式系統(tǒng)。本步驟中是通過USB電纜連接PC與嵌入式系統(tǒng)的,連接后PC端可顯示已格式化的U盤。所述PC端顯示已格式化的U盤的過程,即為U盤系統(tǒng)的枚舉過程PC端首先讀取FATHEADER,U盤系統(tǒng)返回FATHEADER內(nèi)容;然后PC端會(huì)根據(jù)FATHEADER內(nèi)容來讀取FAT表區(qū)或者目錄和文件名區(qū)內(nèi)容,U盤系統(tǒng)根據(jù)FATHEADER中標(biāo)識的FAT表區(qū)、目錄和文件名區(qū)的長度來返回簡化的FAT表區(qū)或者目錄和文件名區(qū)內(nèi)容,對于不占用存儲(chǔ)空間的簡化數(shù)據(jù)用0數(shù)據(jù)代替。PC讀取完這些數(shù)據(jù)后完成U盤系統(tǒng)的枚舉。枚舉過程完成后,PC機(jī)上會(huì)顯示出表示嵌入式系統(tǒng)的設(shè)備符號,比如打開windows操作系統(tǒng)中的“我的電腦”或者“windows資源管理器”,可以看到其中新出現(xiàn)了一個(gè)表示嵌入式系統(tǒng)的U盤標(biāo)識符。雙擊該標(biāo)識符可以進(jìn)入到嵌入式系統(tǒng)的根目錄中,此時(shí)進(jìn)入根目錄將是固件程序的存儲(chǔ)位置。步驟403通過U盤系統(tǒng),將固件程序從PC拷貝到嵌入式系統(tǒng)的存儲(chǔ)空間。本步驟中的固件程序一般是打包好的固件程序的數(shù)據(jù)塊。其中包含固件程序的數(shù)據(jù)長度和校驗(yàn)碼,用于確定固件程序拷貝的結(jié)束和拷貝結(jié)束后的校驗(yàn)數(shù)據(jù)。本步驟具體的實(shí)現(xiàn)過程如下需要進(jìn)行固件更新時(shí),上位機(jī)接收到將固件程序拷貝到嵌入式系統(tǒng)中的指令后,上位機(jī)按照扇區(qū)塊操作的方式,將固件程序的數(shù)據(jù)塊通過傳輸線傳輸;嵌入式系統(tǒng)通過其U盤系統(tǒng),接收上位機(jī)發(fā)送過來的固件程序的數(shù)據(jù)塊,并進(jìn)行分析,剝離出固件程序后,將其存儲(chǔ)到地址為0的嵌入式系統(tǒng)的存儲(chǔ)空間。當(dāng)拷貝到數(shù)據(jù)區(qū)的長度達(dá)到了打包固件程序中包含的固件程序數(shù)據(jù)的長度時(shí),固件程序的拷貝結(jié)束。所述U盤系統(tǒng)的數(shù)據(jù)區(qū)映射在嵌入式系統(tǒng)的存儲(chǔ)空間中,本步驟實(shí)際上就是將固件程序從PC拷貝到了嵌入式系統(tǒng)的存儲(chǔ)空間中。對用戶而言,本步驟的操作是在PC機(jī)的windows操作系統(tǒng)中,將其它磁盤中的固件程序拷貝到了嵌入式系統(tǒng)中的存儲(chǔ)空間,其操作與將一磁盤的文件拷貝到另一磁盤的操作一樣。步驟404校驗(yàn)數(shù)據(jù),在U盤系統(tǒng)中生成狀態(tài)反饋文件。U盤系統(tǒng)接收固件程序時(shí),將先根據(jù)固件程序中包含的數(shù)據(jù)長度和校驗(yàn)碼進(jìn)行固件程序數(shù)據(jù)的校驗(yàn),校驗(yàn)成功,在U盤系統(tǒng)中生成表征正確的狀態(tài)反饋文件,并將固件程序存儲(chǔ)到嵌入式系統(tǒng)的存儲(chǔ)空間;校驗(yàn)失敗,則在U盤系統(tǒng)中生成表征錯(cuò)誤的狀態(tài)反饋文件,并將拷貝的固件程序數(shù)據(jù)丟棄。生成的狀態(tài)反饋文件以字符串的形式填充在U盤系統(tǒng)中32字節(jié)的目錄和文件名區(qū)。如校驗(yàn)成功,可以在目錄和文件名區(qū)生成“success.txt”,校驗(yàn)失敗,則可以在目錄和文件名區(qū)生成“fail.txt”。步驟405通知PC端U盤系統(tǒng)內(nèi)數(shù)據(jù)改變,PC端自動(dòng)刷新。校驗(yàn)數(shù)據(jù)和狀態(tài)反饋文件生成后,U盤系統(tǒng)將根據(jù)新的數(shù)據(jù)重新改變虛擬FAT。然后向PC端通知U盤系統(tǒng)內(nèi)的數(shù)據(jù)改變,PC端收到通知后,進(jìn)行自動(dòng)刷新,顯示U盤系統(tǒng)的狀態(tài)反饋文件。例如,PC端自動(dòng)刷新后,在PC端上嵌入式系統(tǒng)的根目錄下,可以看到文件名為“success.txt”或“fail.txt”的文件。用戶可以根據(jù)PC顯示的U盤系統(tǒng)的狀態(tài)反饋文件解析固件更新成功或者失敗的原因。由上述描述可以看出,本發(fā)明與現(xiàn)有技術(shù)相比存在如下優(yōu)勢1、由于固件更新模塊采用通用的存儲(chǔ)設(shè)備協(xié)議與上位機(jī)通信,上位機(jī)根據(jù)虛擬FAT對嵌入式系統(tǒng)進(jìn)行設(shè)備識別,固件更新模塊根據(jù)虛擬FAT執(zhí)行固件更新過程,因此上位機(jī)無需另外安裝特定的客戶端程序,只需要通過普通的打開設(shè)備上的文件夾、拷貝文件到設(shè)備、刷新設(shè)備狀態(tài)的簡單操作,即可實(shí)現(xiàn)固件更新。也使嵌入式系統(tǒng)的固件更新擺脫了傳統(tǒng)的需要到特定的上位機(jī)上,通過特定的硬件傳輸線的束縛,在任意一臺(tái)可自動(dòng)識別該存儲(chǔ)設(shè)備的機(jī)器上即可實(shí)現(xiàn)。其操作過程相當(dāng)簡單。2、由于固件更新模塊內(nèi)建立的虛擬FAT為虛擬化并簡化的虛擬FAT,虛擬FAT本身在固件更新模塊未被加載時(shí)不占用嵌入式系統(tǒng)的內(nèi)存空間,使嵌入式系統(tǒng)可分配更多的內(nèi)存空間給其它功能模塊使用。3、由于固件更新模塊被加載后,虛擬FAT只占用很少的內(nèi)存空間,進(jìn)一步保證固件更新模塊可以設(shè)置在現(xiàn)有的BOOT內(nèi)。而利用BOOT作為引導(dǎo)系統(tǒng),在主程序啟動(dòng)之前工作的特性,使本發(fā)明實(shí)現(xiàn)固件更新的過程將不再依賴于嵌入式系統(tǒng)的主程序,且其固件更新的系統(tǒng)結(jié)構(gòu)也得到了大大的簡化。4、固件更新的校驗(yàn)結(jié)果通過虛擬FAT傳遞給上位機(jī),將校驗(yàn)結(jié)果的接收、顯示過程簡化成了上位機(jī)自動(dòng)刷新設(shè)備文件夾狀態(tài)的過程,使上位機(jī)不再需要特定的客戶端應(yīng)用程序接收和顯示校驗(yàn)結(jié)果,進(jìn)一步使固件更新過程不依賴于客戶端應(yīng)用程序、特定的硬件傳輸線和私有協(xié)議。權(quán)利要求1.一種實(shí)現(xiàn)固件更新的方法,其特征在于,該方法包括在固件更新模式下,在嵌入式系統(tǒng)中加載固件更新模塊,所述固件更新模塊建立虛擬文件分配表FAT;在上位機(jī)與嵌入式系統(tǒng)連接后,進(jìn)行設(shè)備枚舉過程,上位機(jī)基于存儲(chǔ)設(shè)備協(xié)議,根據(jù)所述虛擬FAT將所述嵌入式系統(tǒng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備;執(zhí)行固件更新過程,所述上位機(jī)將固件程序拷貝到嵌入式系統(tǒng),所述固件更新模塊接收來自上位機(jī)的固件程序,并根據(jù)所述虛擬FAT存儲(chǔ)該固件程序。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬FAT包括FAT引導(dǎo)扇區(qū)FATHEADER,只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭的2個(gè)FAT表區(qū),只包含1個(gè)文件名內(nèi)容的目錄和文件名區(qū),以及虛擬數(shù)據(jù)區(qū)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述固件更新模塊加載在所述嵌入式系統(tǒng)的引導(dǎo)系統(tǒng)BOOT內(nèi),所述虛擬FAT的FATHEADER、FAT表區(qū)以及目錄和文件名區(qū)均在所述BOOT中建立,所述虛擬數(shù)據(jù)區(qū)被映射到所述嵌入式系統(tǒng)的存儲(chǔ)空間中。4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述固件更新模塊接收來自上位機(jī)的固件程序后,進(jìn)一步對固件程序進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果通過所述虛擬FAT返回給所述上位機(jī),并且在校驗(yàn)通過時(shí)存儲(chǔ)固件程序。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述固件更新模塊將校驗(yàn)結(jié)果通過虛擬FAT返回給所述上位機(jī)具體是,根據(jù)校驗(yàn)結(jié)果生成狀態(tài)反饋文件,所述生成狀態(tài)反饋文件為將校驗(yàn)結(jié)果以字符串的形式填充在虛擬FAT中的目錄和文件名區(qū)內(nèi);在生成狀態(tài)反饋文件后,固件更新模塊通知上位機(jī)虛擬FAT內(nèi)數(shù)據(jù)改變,上位機(jī)進(jìn)行自動(dòng)刷新,顯示以校驗(yàn)結(jié)果作為文件名的狀態(tài)反饋文件。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述設(shè)備枚舉過程包括上位機(jī)讀取FATHEADER,固件更新模塊返回FATHEADER內(nèi)容;上位機(jī)根據(jù)返回的FATHEADER內(nèi)容讀取FAT表區(qū)以及目錄和文件名區(qū)內(nèi)容,固件更新模塊根據(jù)FATHEADER中標(biāo)識的FAT表區(qū)以及目錄和文件名區(qū)的長度來返回簡化的FAT表區(qū)以及目錄和文件名區(qū)內(nèi)容。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在校驗(yàn)通過時(shí),所述固件更新模塊將所述固件程序存儲(chǔ)到映射在所述嵌入式系統(tǒng)的存儲(chǔ)空間中的虛擬數(shù)據(jù)區(qū)內(nèi);在校驗(yàn)未通過時(shí),所述固件更新模塊將所述固件程序丟棄。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備為通用的可移動(dòng)存儲(chǔ)設(shè)備;所述存儲(chǔ)設(shè)備協(xié)議為通用的可移動(dòng)存儲(chǔ)設(shè)備協(xié)議。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述固件更新模塊為U盤系統(tǒng),所述通用的可移動(dòng)存儲(chǔ)設(shè)備協(xié)議為U盤的軟硬件協(xié)議,所述上位機(jī)將嵌入式系統(tǒng)識別為U盤;所述上位機(jī)通過USB電纜與嵌入式系統(tǒng)連接。10.一種實(shí)現(xiàn)固件更新的系統(tǒng),該系統(tǒng)包括上位機(jī)和嵌入式系統(tǒng),其特征在于,嵌入式系統(tǒng)中設(shè)置有固件更新模塊,所述固件更新模塊在固件更新模式下被加載,并在加載后建立虛擬文件分配表FAT;上位機(jī),與處于固件更新模式下的嵌入式系統(tǒng)連接,并用于在連接后根據(jù)所述虛擬FAT,基于存儲(chǔ)設(shè)備協(xié)議將所述嵌入式系統(tǒng)識別為可進(jìn)行數(shù)據(jù)存儲(chǔ)操作的設(shè)備;所述上位機(jī)還用于將固件程序拷貝到所述嵌入式系統(tǒng),所述固件更新模塊用于接收來自上位機(jī)的固件程序,并根據(jù)所述虛擬FAT存儲(chǔ)該固件程序至嵌入式系統(tǒng)的存儲(chǔ)空間。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述固件更新模塊中的虛擬FAT包含F(xiàn)ATHEADER,只包含F(xiàn)AT表區(qū)的數(shù)據(jù)頭的2個(gè)FAT表區(qū),只包含1個(gè)文件名內(nèi)容的目錄和文件名區(qū),以及虛擬數(shù)據(jù)區(qū)。12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述固件更新模塊進(jìn)一步用于對來自上位機(jī)的固件程序進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果生成狀態(tài)反饋文件,所述生成狀態(tài)反饋文件為將校驗(yàn)結(jié)果以字符串的形式填充在虛擬FAT中的目錄和文件名區(qū)內(nèi);在生成狀態(tài)反饋文件之后,固件更新模塊進(jìn)一步用于通知上位機(jī)虛擬FAT內(nèi)數(shù)據(jù)改變;所述上位機(jī)進(jìn)一步用于進(jìn)行自動(dòng)刷新,顯示以校驗(yàn)結(jié)果作為文件名的狀態(tài)反饋文件。13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于所述固件更新模塊加載在所述嵌入式系統(tǒng)的引導(dǎo)系統(tǒng)BOOT內(nèi),所述虛擬FAT的FATHEADER、FAT表區(qū)以及目錄和文件名區(qū)均設(shè)置在所述BOOT中,所述虛擬數(shù)據(jù)區(qū)映射到所述嵌入式系統(tǒng)的存儲(chǔ)空間中。14.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述固件更新模塊為U盤系統(tǒng),所述存儲(chǔ)設(shè)備協(xié)議為U盤的軟硬件協(xié)議,所述上位機(jī)將嵌入式系統(tǒng)識別為U盤;所述上位機(jī)與所述嵌入式系統(tǒng)中的U盤系統(tǒng)通過USB電纜連接。全文摘要本發(fā)明提供了一種實(shí)現(xiàn)固件更新的方法和系統(tǒng),通過在固件更新模式下,在嵌入式系統(tǒng)中加載固件更新模塊,固件更新模塊建立虛擬文件分配表FAT,連接上位機(jī)與嵌入式系統(tǒng)進(jìn)行設(shè)備枚舉過程,并根據(jù)存儲(chǔ)設(shè)備協(xié)議以及虛擬FAT將所述嵌入式系統(tǒng)識別為存儲(chǔ)設(shè)備,執(zhí)行固件更新過程,根據(jù)所述虛擬FAT將固件程序通過固件更新模塊拷貝到所述嵌入式系統(tǒng)中。解決了現(xiàn)有技術(shù)中需要專門私有的協(xié)議客戶端軟件才能實(shí)現(xiàn)固件升級時(shí),系統(tǒng)復(fù)雜,操作麻煩的問題,使固件更新更加簡單方便。文檔編號G06F9/445GK101030146SQ20071006530公開日2007年9月5日申請日期2007年4月10日優(yōu)先權(quán)日2007年4月10日發(fā)明者劉勇,譚帥,張華申請人:北京中星微電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
南雄市| 界首市| 施秉县| 同德县| 祁连县| 卓资县| 白沙| 开鲁县| 门源| 泾阳县| 米泉市| 东丽区| 密山市| 栖霞市| 松滋市| 自贡市| 兴安盟| 广东省| 将乐县| 常宁市| 雷州市| 安国市| 增城市| 鸡西市| 上饶市| 固安县| 建湖县| 武汉市| 专栏| 平安县| 南京市| 清流县| 盐山县| 高安市| 庄浪县| 阳信县| 东平县| 政和县| 荥阳市| 大新县| 威远县|