專利名稱:固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于一種固件更新技術(shù),更詳而言之,是關(guān)于一種能確保固件更新作業(yè)失
敗時(shí),也可以保留一個(gè)正常之固件進(jìn)行后續(xù)的固件更新作業(yè)之固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法。
背景技術(shù):
于現(xiàn)今各種電腦應(yīng)用設(shè)備中,許多硬件的運(yùn)作均由固件(Firmware)來負(fù)責(zé)啟動(dòng)及執(zhí)行,例如光碟機(jī)、數(shù)據(jù)機(jī)等等,而固件的儲(chǔ)存裝置也由早期無法更新的裝置逐步發(fā)展為可更新的裝置,例如快閃唯讀內(nèi)存(以下簡(jiǎn)稱Flash ROM)、電子可抹除式唯讀內(nèi)存(EEPROM)等非揮發(fā)性內(nèi)存,由是,固件更新作業(yè)亦已由早期必須將設(shè)備送回原廠以執(zhí)行固件更新的方式,逐漸轉(zhuǎn)變?yōu)槭褂谜呖赏高^網(wǎng)路系統(tǒng)自行下載更新程式以進(jìn)行固件更新的方式。 目前使用者自行將固件更新的通用做法是由原制造廠商于網(wǎng)路服務(wù)器端提供固件之更新文件,而后使用者透過網(wǎng)路系統(tǒng)下載該固件之更新文件,并經(jīng)由固件更新程式將該固件更新文件寫入至用于儲(chǔ)存固件之內(nèi)存中,以覆蓋原先之固件,進(jìn)而完成固件之更新作業(yè)。 采用上述方式執(zhí)行固件更新作業(yè)時(shí),必須確定使用者電腦端已呈開機(jī)狀態(tài)且處于諸如D0S、 Window或Linux等作業(yè)系統(tǒng)環(huán)境之中,方可正常執(zhí)行該固件更新作業(yè)。
然而,前述由使用者操作控制之固件在更新時(shí)可能發(fā)生無法預(yù)期的異常狀況,例如,在固件更新的過程中,發(fā)生系統(tǒng)斷電之狀況,而使固件更新產(chǎn)生無法預(yù)期的錯(cuò)誤,或者如windows或Linux等作業(yè)系統(tǒng)自身存在一些錯(cuò)誤(bug),而在固件更新過程中突顯出來(如系統(tǒng)突然重啟),從而導(dǎo)致固件在更新時(shí)產(chǎn)生錯(cuò)誤。 當(dāng)固件更新的過程中發(fā)生異常情形時(shí),因原有之固件已于固件更新過程中被覆蓋
而清除,則使得固件所在的設(shè)備(例如光碟機(jī)等)或系統(tǒng)無法繼續(xù)運(yùn)行,如此使用者則無法
再次寫入由網(wǎng)路上下載的更新文件至該設(shè)備或系統(tǒng)中,導(dǎo)致固件所在的設(shè)備或系統(tǒng)必須送
回原廠進(jìn)行維修及更新,造成使用者的不便以及原制造廠商處理上的困擾。 因此,在固件由使用者自行進(jìn)行更新的必然趨勢(shì)下,如何提供一種固件更新技術(shù)
以及固件更新之固件建構(gòu)技術(shù),于固件更新時(shí),即使發(fā)生固件更新異常的狀況仍可使設(shè)備
或系統(tǒng)得以于后續(xù)執(zhí)行固件更新作業(yè),實(shí)為目前亟欲解決之技術(shù)問題。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)之缺點(diǎn),本發(fā)明之一目的在于提一種固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法,于固件更新時(shí),即使發(fā)生固件更新異常的狀況仍可使設(shè)備或系統(tǒng)得以于后續(xù)執(zhí)行固件更新作業(yè)。 為達(dá)上述目的及其他相關(guān)目的,本發(fā)明提供一種固件更新系統(tǒng),用以對(duì)具有固件電子裝置執(zhí)行固件之更新作業(yè),該固件更新系統(tǒng)包括固件儲(chǔ)存模組、接收模組、判斷模組、以及更新模組。其中,該固件儲(chǔ)存模組設(shè)置于該電子裝置中,至少用以儲(chǔ)存第一固件以及第
二固件,該第一固件及該第二固件具有映像標(biāo)頭文件資料,且該映像標(biāo)頭文件資料至少包
含循環(huán)冗余校驗(yàn)總和資訊以及映像標(biāo)頭文件建置時(shí)間資訊;該接收模組用于接收固件更新
執(zhí)行指令,以獲取新固件;該判斷模組用以接收固件更新執(zhí)行指令,以依據(jù)該接收模組獲取
之新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常,若判斷為異常則結(jié)束該固件
之更新程序,若判斷為正常則分別依據(jù)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固
件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固
件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該
第一固件以及該第二固件均為正常,則比對(duì)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第
二固件中之映像標(biāo)頭文件建置時(shí)間資訊,以鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)
固件,若該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件更新程序;該更新模組用以
將該判斷模組所鎖定之目標(biāo)固件替換為該新固件,俾完成該電子裝置之固件更新作業(yè)。 此外,本發(fā)明之該固件更新系統(tǒng)還包括固件執(zhí)行模組,該固件執(zhí)行模組用以重新
執(zhí)行該電子裝置中之可執(zhí)行固件。 需要特別指明的是,該判斷模組還用以于該固件執(zhí)行模組重新啟動(dòng)執(zhí)行該固件前,分別依據(jù)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷經(jīng)固件更新后之該第一固件或該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定正常之固件為可執(zhí)行固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,鎖定映像標(biāo)頭文件建置時(shí)間較晚之固件為可執(zhí)行固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該系統(tǒng)啟動(dòng)。 為達(dá)上述相同目的,本發(fā)明還提供固件更新方法,用以對(duì)具有固件電子裝置執(zhí)行固件之更新作業(yè),該電子裝置中具有固件儲(chǔ)存模組,該固件儲(chǔ)存模組儲(chǔ)存有第一固件以及第二固件,其中,該第一固件及第二固件中分別至少具有包含循環(huán)冗余校驗(yàn)總和資訊以及映像標(biāo)頭文件建置時(shí)間資訊之映像標(biāo)頭文件資料,該固件更新方法包括首先,于接收到固件更新執(zhí)行指令時(shí),獲取該新固件;其次,對(duì)該新固件中之循環(huán)冗余校驗(yàn)總和資訊進(jìn)行判斷,于該循環(huán)冗余校驗(yàn)總和資訊吻合時(shí),進(jìn)至下一步驟;再次,分別依據(jù)該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,以鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件更新過程;最后,將鎖定之目標(biāo)固件替換為該新固件,以完成該電子裝置之固件更新作業(yè)。 于本發(fā)明之固件更新方法,還包括以下步驟將該目標(biāo)固件替換為新固件后重啟,并分別依據(jù)該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則執(zhí)行正常之固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,以執(zhí)行該映像標(biāo)頭文件建置時(shí)間較晚之固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件啟動(dòng)程序。
5
于本發(fā)明之固件更新方法,于該識(shí)別碼資訊比對(duì)步驟之前還包括依據(jù)該新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常,若是,則結(jié)束該固件更新程序,若否,則進(jìn)至該識(shí)別碼資訊比對(duì)步驟。 再者,本發(fā)明亦提供一種固件更新系統(tǒng)之固件建構(gòu)方法,包括首先,設(shè)定固件存
儲(chǔ)之最大文件長度;其次,合并內(nèi)核文件資料與文件系統(tǒng)資料為臨時(shí)文件資料;再次,建置
映像標(biāo)頭文件資料,其中,該映像標(biāo)頭文件資料至少包含循環(huán)冗余校驗(yàn)總和資訊以及該映
像標(biāo)頭文件建置時(shí)間資訊;接著,加入該映像標(biāo)頭文件資料至該臨時(shí)文件資料,以生成固
件;最后,判斷該固件實(shí)際文件長度是否小于該設(shè)定固件存儲(chǔ)之最大文件長度,若是,則增
加該臨時(shí)文件資料之文件長度至該固件實(shí)際文件長度符合設(shè)定固件存儲(chǔ)之最大文件長度。 相較于現(xiàn)有技術(shù),本發(fā)明提供一種固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件
建構(gòu)方法,主要接收到固件更新執(zhí)行指令時(shí),獲取該新固件,對(duì)該新固件中之循環(huán)冗余校驗(yàn)
總和資訊判斷,以于該循環(huán)冗余校驗(yàn)總和資訊吻合時(shí),分別依據(jù)該第一固件以及該第二固
件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固
件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該
第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件
建置時(shí)間資訊,并鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件
以及該第二固件均發(fā)生異常,則結(jié)束該固件的更新程序,最后將鎖定之目標(biāo)固件替換為該
新固件,藉此以在固件更新時(shí),確保電子裝置中有一個(gè)正常之固件,得以于后續(xù)再次執(zhí)行固
件更新作業(yè)時(shí)能防止因固件更新失敗所造成系統(tǒng)無法啟動(dòng)之情事,即有效克服了現(xiàn)有技術(shù)
中之種種缺失。
第1圖為本發(fā)明之固件更新系統(tǒng)的基本架構(gòu)方塊之示意第2A及2B圖為本發(fā)明之固件更新方法之實(shí)施例流程示意圖;以及第3圖顯示本發(fā)明之固件更新系統(tǒng)之固件建構(gòu)方法的流程示意圖。主要元件符號(hào)說明
1
100120140S100
固件儲(chǔ)存模組判斷模組固件執(zhí)行模組 S150、S300 -
10 固件更新系統(tǒng)110接收模組130更新模組2 服務(wù)器端S318步驟
具體實(shí)施例方式
以下是藉由特定的具體實(shí)例說明本發(fā)明之實(shí)施方式,熟悉此技藝之人士可由本說明書所揭示之內(nèi)容輕易地了解本發(fā)明之其他優(yōu)點(diǎn)與功效。本發(fā)明也可以藉由其他不同的具體實(shí)例加以施行或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在不悖離本發(fā)明之精神下進(jìn)行各種修飾與變更。 請(qǐng)參閱第1圖,為本發(fā)明之固件更新系統(tǒng)的基本架構(gòu)方塊之示意圖。如圖所示,本創(chuàng)作提供一種固件更新系統(tǒng)10,用以對(duì)具有固件電子裝置執(zhí)行固件之更新作業(yè),具體地,應(yīng)用于例如路由器之電子裝置1中,用以依據(jù)前述固件更新文件之建構(gòu)方法于服務(wù)器端2所生成之固件更新文件對(duì)電子裝置1執(zhí)行固件之更新作業(yè)。 如圖所示,本發(fā)明之固件更新系統(tǒng)10包括固件儲(chǔ)存模組100、接收模組110、判斷模組120、更新模組130、以及固件執(zhí)行模組140,以下即對(duì)上揭各物件進(jìn)行詳細(xì)的說明。
該固件儲(chǔ)存模組100設(shè)置于該電子裝置1中,至少用以儲(chǔ)存第一固件以及第二固件,該第一固件及該第二固件具有映像標(biāo)頭文件資料,且該映像標(biāo)頭文件資料至少包含循環(huán)冗余校驗(yàn)總和資訊、以及映像標(biāo)頭文件建置時(shí)間資訊;在本實(shí)施例中,該循環(huán)冗余校驗(yàn)總和資訊包括標(biāo)頭校驗(yàn)總和資訊、文件長度資訊、以及資料校驗(yàn)總和資訊,在本實(shí)施例中,該固件儲(chǔ)存模組100為快閃唯讀內(nèi)存(Flash ROM),但不以此為限,該固件儲(chǔ)存模組100也可以為電子可抹除式唯讀內(nèi)存(EEPROM)或者其他非揮發(fā)性內(nèi)存。 該接收模組110用以接收固件更新執(zhí)行指令,而獲取新固件,在本實(shí)施例中,該接
收模組110透過網(wǎng)路傳輸方式自該服務(wù)器端2下載該固件更新文件,但不以此為限,該接收
模組110也可以透過光碟讀取方式或USB讀取方式等資料傳輸方式予以下載。 該判斷模組120用以接收固件更新執(zhí)行指令,對(duì)該接收模組110獲取之新固件中
之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常時(shí),若異常則結(jié)束該固件更新過程,若正
常則分別依據(jù)該固件儲(chǔ)存模組100所儲(chǔ)存之該第一固件以及該第二固件中之循環(huán)冗余校
驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件
之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該第一固件以及該第
二固件均為正常,則比對(duì)該固件儲(chǔ)存模組100所儲(chǔ)存之該第一固件以及該第二固件中之映
像標(biāo)頭文件建置時(shí)間資訊,并鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件更新程序。 該更新模組130用以依據(jù)該判斷模組120所鎖定之目標(biāo)固件,以將該固件儲(chǔ)存模
組100中之目標(biāo)固件替換為該新固件,俾完成該電子裝置1之固件更新作業(yè)。 該固件執(zhí)行模組140用以重新執(zhí)行該電子裝置1中可執(zhí)行固件。 在本實(shí)施例中,該判斷模組120還用以于該固件執(zhí)行模組140重新啟動(dòng)執(zhí)行該固
件前,分別依據(jù)該固件儲(chǔ)存模組140所儲(chǔ)存之該第一固件以及該第二固件中之循環(huán)冗余校
驗(yàn)總和資訊判斷經(jīng)固件更新后之該第一固件或該第二固件是否異常,若判斷該第一固件以
及該第二固件之其中一者發(fā)生異常,則鎖定正常之固件為可執(zhí)行固件,若判斷該第一固件
以及該第二固件均為正常,則比對(duì)該固件儲(chǔ)存模組100所儲(chǔ)存之該第一固件以及該第二固
件中之映像標(biāo)頭文件建置時(shí)間資訊,鎖定映像標(biāo)頭文件建置時(shí)間較晚之固件為可執(zhí)行固
件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該系統(tǒng)啟動(dòng)。 因此,應(yīng)用本發(fā)明之固件更新系統(tǒng),則可在固件更新過程中選擇異常或文件建置
時(shí)間最早的固件進(jìn)行更新,從而可讓電子裝置中始終都具有一個(gè)較新版本之固件,倘若固
件更新的作業(yè)成功,電子裝置則會(huì)依據(jù)固件之文件建置時(shí)間資訊執(zhí)行最新之固件,反之,若
固件更新的作業(yè)失敗,則執(zhí)行原先建置時(shí)間較早的(即舊的)固件,亦不會(huì)因固件更新的作
業(yè)失敗而讓電子裝置無法啟用,而需送回原制造廠商進(jìn)行維修及更新,如此,本發(fā)明即可避
免使用者的不便及原制造廠商處理上的困擾。 透過上述固件更新系統(tǒng),執(zhí)行本發(fā)明之固件更新方法之實(shí)施例流程,呈如第2A及2B圖所示。該固件更新方法用以對(duì)具有固件電子裝置1執(zhí)行固件之更新作業(yè),該電子裝置1中具有固件儲(chǔ)存模組100,該固件儲(chǔ)存模組100儲(chǔ)存有第一固件以及第二固件,其中,該第
一固件及第二固件中分別至少具有包含循環(huán)冗余校驗(yàn)總和資訊以及映像標(biāo)頭文件建置時(shí)間資訊之映像標(biāo)頭文件資料,該固件更新方法包括以下步驟 首先進(jìn)行步驟S300,于該電子裝置l接收到固件更新執(zhí)行指令時(shí),透過網(wǎng)路傳輸方式自該服務(wù)器端2獲取該新固件,并產(chǎn)生啟動(dòng)訊號(hào),而該新固件之獲取方式并不局限于網(wǎng)路傳輸方式,在其他實(shí)施例中,也可以透過光碟讀取方式、USB讀取方式或其他資料傳輸方式予以進(jìn)行。接著進(jìn)至步驟S301。 在步驟S301中,由于獲取新固件過程中,可能會(huì)因網(wǎng)路傳輸故障造成新固件下載不完全等異常,則需依據(jù)該新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常,若是,則進(jìn)至步驟S302,若否,則進(jìn)至步驟S303。 在步驟S302中,判斷是否重新獲取該新固件,若是,返回步驟S301 。若否,則結(jié)束。
在本實(shí)施例中,即重新透過網(wǎng)路傳輸方式自該服務(wù)器端2下載該新固件。 在步驟S303中,由于在服務(wù)器端2提供之新固件之版本可能不止一種(即同時(shí)提
供多種對(duì)應(yīng)不同制造廠商之固件更新文件),使用者可能在下載該新固件前未詳盡了解該
新固件之應(yīng)用對(duì)象,而下載錯(cuò)誤版本之新固件,于此判斷對(duì)該新固件中之循環(huán)冗余校驗(yàn)總
和資訊是否吻合,若是,則進(jìn)至步驟S305,若否,則進(jìn)至步驟S304。 在步驟S304中,重新獲取另一版本之新固件,在本實(shí)施例中,即重新透過網(wǎng)路傳輸方式自該服務(wù)器端2下載另一版本之新固件。接著,返回至步驟S301。
在步驟S305中,依據(jù)該第一固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件是否異常,若是,則進(jìn)至步驟S306,若否,則進(jìn)至步驟S308。 在步驟S306中,依據(jù)該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第二固件是否異常,若是(表示該第一固件以及該第二固件均發(fā)生異常),則結(jié)束該固件更新過程,若否(表示僅該第一固件發(fā)生異常),則進(jìn)至步驟S307。 在步驟S307中,鎖定該第一固件為目標(biāo)固件。接著進(jìn)行步驟S311。
在步驟S308中,依據(jù)該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第二固件是否異常,若是(表示僅該第二固件發(fā)生異常),則進(jìn)至步驟S310,若否(表示該第一固件以及該第二固件均正常),則進(jìn)至步驟S309。 在步驟S309中,比對(duì)該第一固件中之文件建置時(shí)間資訊是否早于該第二固件中
之文件建置時(shí)間資訊,若是,則進(jìn)至S307,若否,則進(jìn)至步驟S310。 在步驟S310中,鎖定該第二固件為目標(biāo)固件。接著進(jìn)行步驟S311。 在步驟S311中,依據(jù)所鎖定之目標(biāo)固件,將該目標(biāo)固件替換為該新固件,以完成
該電子裝置之固件更新作業(yè)。接著進(jìn)行步驟S312。 在步驟S312中,啟動(dòng)該電子裝置,以使固件更新作業(yè)生效。接著進(jìn)行步驟S313。
在步驟S313中,依據(jù)該第一固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件是否異常,若是,則進(jìn)至步驟S317,若否,則進(jìn)至步驟S314。 在步驟S314中,依據(jù)該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第二固件是否異常,若是(表示僅該第二固件發(fā)生異常),則進(jìn)至步驟S315,若否(表示該第一固件以及該第二固件均正常),則進(jìn)至步驟S316。 在步驟S315中,執(zhí)行該第一固件,此時(shí),即完成該固件更新過程。
在步驟S316中,比對(duì)該第一固件中之文件建置時(shí)間資訊是否早于該第二固件中之文件建置時(shí)間資訊,若是,則進(jìn)至S318,若否,則進(jìn)至步驟S315。 在步驟S317中,依據(jù)該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第二固件是
否異常,若是(表示該第一固件以及該第二固件均發(fā)生異常),則結(jié)束該固件更新過程,若
否(表示僅該第一固件發(fā)生異常),則進(jìn)至步驟S318。 在步驟S318中,執(zhí)行該第二固件,此時(shí),即完成該固件更新過程。此處須予以說明的是,上述步驟S305、 S306、 S308與步驟S313、 S314、 S317中關(guān)于
第一固件以及第二固件是否異常之判斷次序以第一固件作為優(yōu)先判斷對(duì)象,但并非以此為
限,也可以以第二固件作為優(yōu)先判斷對(duì)象,而以第一固件作為第二判斷對(duì)象。 請(qǐng)參閱第3圖,第3圖顯示本發(fā)明之固件更新系統(tǒng)之固件建構(gòu)方法的流程示意在本實(shí)施例中,本發(fā)明之固件更新系統(tǒng)之固件建構(gòu)方法搭建于服務(wù)器端并由制造廠商構(gòu)建
完成,以生成新固件供使用者于電子裝置自行更新使用,如圖所示,首先執(zhí)行步驟S100,設(shè)
定固件存儲(chǔ)之最大文件長度;接著進(jìn)行步驟SllO。 在步驟S110中,合并內(nèi)核文件資料與文件系統(tǒng)資料為臨時(shí)文件資料;接著進(jìn)至步驟S120。 在步驟S120中,建置映像標(biāo)頭文件資料,其中,該映像標(biāo)頭文件資料至少包含循環(huán)冗余校驗(yàn)總和資訊、以及該映像標(biāo)頭文件建置時(shí)間資訊;在本實(shí)施例中,該映像標(biāo)頭文件資料還包括識(shí)別碼資訊;該循環(huán)冗余校驗(yàn)總和資訊包括標(biāo)頭校驗(yàn)總和(header CRCchecksum)資訊、文件長度(data size)資訊、以及資料校驗(yàn)總和(data CRC checksum)資訊。接著進(jìn)至步驟S130。 需要說明的是,該固件更新文件至少包含內(nèi)核(kernel)文件資料以及文件系統(tǒng)(file system)資料;該識(shí)別碼資訊為包含制造廠商資訊之產(chǎn)品序列號(hào),該循環(huán)冗余校驗(yàn)總和資訊用以提供驗(yàn)證該資訊所在文件是否發(fā)生異常之用,惟,以循環(huán)冗余校驗(yàn)總和資訊驗(yàn)證文件是否異常之技術(shù)應(yīng)為所屬領(lǐng)域熟知之技術(shù),在此不再為文贅述,此外,由于內(nèi)核文件資料之實(shí)際文件長度會(huì)因編譯時(shí)間以及版本的不同而有不同的長度,如此,則會(huì)影響后續(xù)欲與該內(nèi)核文件資料合并之文件系統(tǒng)資料之起始位元位址的配置,而且,通常該文件系統(tǒng)資料之執(zhí)行從固定之起始位址開始,是故,在該步驟中還設(shè)定該內(nèi)核文件資料之最大文件長度,以確保該文件系統(tǒng)資料之起始位址在固定位址段,即為(內(nèi)核文件資料起始位址)+ (最大文件長度)+1之位址。 在步驟S130中,加入該映像標(biāo)頭文件資料至該臨時(shí)文件資料,以生成固件,俾供電子裝置的使用者自行依需求來使用;接著進(jìn)至步驟S140。 在步驟S140中,判斷該固件實(shí)際長度是否小于該設(shè)定固件存儲(chǔ)之最大長度,若是,接著進(jìn)至步驟S150 ;若否,則完成構(gòu)建。 在步驟S150中,則增加該臨時(shí)文件資料之長度至該固件實(shí)際長度符合設(shè)定固件存儲(chǔ)之最大長度,即可完成構(gòu)建作業(yè)。 承上所述,本發(fā)明提供一固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法,本發(fā)明提供一種固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法,主要接收到固件更新執(zhí)行指令時(shí),獲取該新固件,對(duì)該新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷,并于該循環(huán)冗余校驗(yàn)總和資訊吻合時(shí),分別依據(jù)該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,并鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束對(duì)該固件的更新程序,最后依據(jù)鎖定之目標(biāo)固件,將該目標(biāo)固件替換為該新固件。 藉此,本發(fā)明可在固件更新過程中選擇異?;蛭募ㄖ脮r(shí)間較早的固件進(jìn)行更新,從而可讓電子裝置中始終都具有一個(gè)較新版本之固件,倘若固件更新的作業(yè)成功,電子裝置則會(huì)依據(jù)固件之文件建置時(shí)間資訊執(zhí)行最新之固件,反之,若固件更新的作業(yè)失敗,則執(zhí)行原先建置時(shí)間較早的固件,亦不會(huì)因固件更新的作業(yè)失敗而讓電子裝置無法啟用,更無法再次進(jìn)行固件更新的作業(yè),而需送回原制造廠商進(jìn)行維修及更新,如此,本發(fā)明即可避免現(xiàn)有技術(shù)中,因客戶端無法自行排除在固件更新的作業(yè)中所產(chǎn)生的錯(cuò)誤,而導(dǎo)致使用者的不便及原制造廠商處理上的困擾。 上述實(shí)施例僅例示性說明本創(chuàng)作之原理及其功效,而非用于限制本發(fā)明。任何熟習(xí)此項(xiàng)技藝之人士均可在不違背本發(fā)明之精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾與改變。因此,舉凡所屬技術(shù)領(lǐng)域中具有通常知識(shí)者在未脫離本發(fā)明所揭示之精神與技術(shù)思想下所完成之一切等效修飾或改變,仍應(yīng)由后述之申請(qǐng)專利范圍所涵蓋。
10
權(quán)利要求
一種固件更新系統(tǒng),用以對(duì)具有固件電子裝置執(zhí)行固件之更新作業(yè),其特征在于,該固件更新系統(tǒng)包括固件儲(chǔ)存模組,設(shè)置于該電子裝置中,至少用以儲(chǔ)存第一固件以及第二固件,該第一固件及該第二固件具有映像標(biāo)頭文件資料,且該映像標(biāo)頭文件資料至少包含循環(huán)冗余校驗(yàn)總和資訊以及映像標(biāo)頭文件建置時(shí)間資訊;接收模組,用于接收固件更新執(zhí)行指令,以獲取新固件;判斷模組,用以接收固件更新執(zhí)行指令,以依據(jù)該接收模組獲取之新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常,若經(jīng)判斷為異常則結(jié)束該固件更新程序,若經(jīng)判斷為正常則分別依據(jù)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,以鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件更新程序;以及更新模組,用以將該判斷模組所鎖定之目標(biāo)固件替換為該新固件,俾完成該電子裝置之固件更新作業(yè)。
2. 如申請(qǐng)專利范圍第l項(xiàng)之固件更新系統(tǒng),其特征在于還包括固件執(zhí)行模組,用以重新執(zhí)行該電子裝置中之可執(zhí)行固件。
3. 如申請(qǐng)專利范圍第2項(xiàng)之固件更新系統(tǒng),其特征在于該判斷模組還用以于該固件執(zhí)行模組重新執(zhí)行該可執(zhí)行固件前,分別依據(jù)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷經(jīng)固件更新后之該第一固件或該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定正常之固件為可執(zhí)行固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該固件儲(chǔ)存模組所儲(chǔ)存之該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,鎖定映像標(biāo)頭文件建置時(shí)間較晚之固件為可執(zhí)行固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該系統(tǒng)啟動(dòng)。
4. 如申請(qǐng)專利范圍第1項(xiàng)之固件更新系統(tǒng),其特征在于該循環(huán)冗余校驗(yàn)總和資訊包括標(biāo)頭校驗(yàn)總和資訊、文件長度資訊、以及資料校驗(yàn)總和資訊。
5. 如申請(qǐng)專利范圍第1項(xiàng)之固件更新系統(tǒng),其特征在于該新固件之獲取方式是透過網(wǎng)路傳輸方式、光碟讀取方式以及USB讀取方式之其中一者。
6. —種固件更新方法,用以對(duì)具有固件電子裝置執(zhí)行固件之更新作業(yè),該電子裝置中具有固件儲(chǔ)存模組,該固件儲(chǔ)存模組儲(chǔ)存有第一固件以及第二固件,其中,該第一固件及第二固件中分別至少具有包含循環(huán)冗余校驗(yàn)總和資訊以及映像標(biāo)頭文件建置時(shí)間資訊之映像標(biāo)頭文件資料,該固件更新方法包括于接收到固件更新執(zhí)行指令時(shí),獲取該新固件;對(duì)該新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷,并于該循環(huán)冗余校驗(yàn)總和資訊吻合時(shí),進(jìn)至下一步驟;分別依據(jù)該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則鎖定該發(fā)生異常之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,并鎖定映像標(biāo)頭文件建置時(shí)間較早之固件為目標(biāo)固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件更新程序;以及依據(jù)所鎖定之目標(biāo)固件,將該目標(biāo)固件替換為該新固件,以完成該電子裝置之固件更新作業(yè)。
7. 如申請(qǐng)專利范圍第6項(xiàng)之固件更新方法,其特征在于在該電子裝置啟動(dòng)后還包括分別依據(jù)該第一固件以及該第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該第一固件以及該第二固件是否異常,若判斷該第一固件以及該第二固件之其中一者發(fā)生異常,則執(zhí)行正常之固件,若判斷該第一固件以及該第二固件均為正常,則比對(duì)該第一固件以及該第二固件中之映像標(biāo)頭文件建置時(shí)間資訊,以執(zhí)行該映像標(biāo)頭文件建置時(shí)間較晚之固件,若判斷該第一固件以及該第二固件均發(fā)生異常,則結(jié)束該固件啟動(dòng)程序。
8. 如申請(qǐng)專利范圍第6項(xiàng)之固件更新方法,其特征在于該映像標(biāo)頭標(biāo)頭資料還包括識(shí)別碼資訊,用以判斷該新固件中之識(shí)別碼資訊與該第一固件或該第二固件中之識(shí)別碼資訊不相同時(shí),則重新獲取另一版本之新固件。
9. 如申請(qǐng)專利范圍第6項(xiàng)之固件更新方法,其特征在于于該識(shí)別碼資訊比對(duì)步驟之前還包括依據(jù)該新固件中之循環(huán)冗余校驗(yàn)總和資訊判斷該新固件是否異常,若是,則結(jié)束該固件更新程序,若否,則進(jìn)至該識(shí)別碼資訊比對(duì)步驟。
10. —種固件更新系統(tǒng)之固件建構(gòu)方法,其特征在于,包括設(shè)定固件存儲(chǔ)之最大文件長度;合并內(nèi)核文件資料與文件系統(tǒng)資料為臨時(shí)文件資料;建置映像標(biāo)頭文件資料,其中,該映像標(biāo)頭文件資料至少包含循環(huán)冗余校驗(yàn)總和資訊以及該映像標(biāo)頭文件建置時(shí)間資訊;加入該映像標(biāo)頭文件資料至該臨時(shí)文件資料,以生成固件;判斷該固件實(shí)際長度是否小于該設(shè)定固件存儲(chǔ)之最大長度,若是,則增加該臨時(shí)文件資料之長度至該固件實(shí)際長度符合設(shè)定固件存儲(chǔ)之最大長度。
全文摘要
一種固件更新系統(tǒng)、方法以及固件更新系統(tǒng)之固件建構(gòu)方法,是于電子裝置中設(shè)置具有第一固件及第二固件之固件儲(chǔ)存模組,且該第一固件及第二固件具有至少包含循環(huán)冗余校驗(yàn)總和資訊及映像標(biāo)頭文件建置時(shí)間資訊之標(biāo)頭文件資料,俾于執(zhí)行新固件之更新時(shí),分別依據(jù)該第一固件及第二固件中之循環(huán)冗余校驗(yàn)總和資訊判斷兩者是否異常,若其中一者經(jīng)判斷為異常時(shí),則將異常之固件替換為該新固件,若經(jīng)判斷兩者均正常,則比對(duì)兩者中之映像標(biāo)頭文件建置時(shí)間資訊,以將建置時(shí)間較早之固件替換為該新固件,藉此確保即使固件更新作業(yè)失敗,也可以保留一個(gè)正常之固件進(jìn)行后續(xù)的固件更新作業(yè)。
文檔編號(hào)G06F9/445GK101770372SQ20081018773
公開日2010年7月7日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者余仁煥, 謝青峰, 邱奕通 申請(qǐng)人:亞旭電腦股份有限公司