TWI384367B - 韌體更新系統及方法 - Google Patents
韌體更新系統及方法 Download PDFInfo
- Publication number
- TWI384367B TWI384367B TW097151559A TW97151559A TWI384367B TW I384367 B TWI384367 B TW I384367B TW 097151559 A TW097151559 A TW 097151559A TW 97151559 A TW97151559 A TW 97151559A TW I384367 B TWI384367 B TW I384367B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- information
- update
- abnormal
- new
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 74
- 230000002159 abnormal effect Effects 0.000 claims description 60
- 125000004122 cyclic group Chemical group 0.000 claims description 42
- 230000005856 abnormality Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 4
- 238000013524 data verification Methods 0.000 claims 2
- 230000003287 optical effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 26
- 238000010276 construction Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Description
本發明係有關於一種韌體更新技術,更詳而言之,係關於一種能確保韌體更新作業失敗時,亦可保留一個正常之韌體進行後續的韌體更新作業之韌體更新系統及方法。
於現今各種電腦應用設備中,許多硬體的運作均由韌體(Firmware)來負責啟動及執行,例如光碟機、數據機等等,而韌體的儲存裝置也由早期無法更新的裝置逐步發展為可更新的裝置,例如快閃唯讀記憶體(以下簡稱Flash ROM)、電子可抺除式唯讀記憶體(EEPROM)等非揮發性記憶體,由是,韌體更新作業亦已由早期必須將設備送回原廠以執行韌體更新的方式,逐漸轉變為使用者可透過網路系統自行下載更新程式以進行韌體更新的方式。
目前使用者自行將韌體更新的通用做法係由原製造廠商於網路伺服器端提供韌體之更新檔案,而後使用者透過網路系統下載該韌體之更新檔案,並經由韌體更新程式將該韌體更新檔案寫入至用於儲存韌體之記憶體中,以覆蓋原先之韌體,進而完成韌體之更新作業。
採用上述方式執行韌體更新作業時,必須確定使用者電腦端係已呈開機狀態且處於諸如DOS、Window或Linux等作業系統環境之中,方可正常執行該韌體更新作業。
然而,前述由使用者操作控制之韌體在更新時可能發生無法預期的異常狀況,例如,在韌體更新的過程中,發
生系統斷電之狀況,而使韌體更新產生無法預期的錯誤,或者如windows或Linux等作業系統自身存在一些錯誤(bug),而在韌體更新過程中突顯出來(如系統突然重啟),從而導致韌體在更新時產生錯誤。
當韌體更新的過程中發生異常情形時,因原有之韌體已於韌體更新過程中被覆蓋而清除,則使得韌體所在的設備(例如光碟機等)或系統無法繼續運行,如此使用者則無法再次寫入由網路上下載的更新檔案至該設備或系統中,導致韌體所在的設備或系統必須送回原廠進行維修及更新,造成使用者的不便以及原製造廠商處理上的困擾。
因此,在韌體由使用者自行進行更新的必然趨勢下,如何提供一種韌體更新技術以及韌體更新之韌體建構技術,於韌體更新時,即使發生韌體更新異常的狀況仍可使設備或系統得以於後續執行韌體更新作業,實為目前亟欲解決之技術問題。
鑒於上述習知技術之缺點,本發明之一目的在於提一種韌體更新系統及方法,於韌體更新時,即使發生韌體更新異常的狀況仍可使設備或系統得以於後續執行韌體更新作業。
為達上述目的及其他相關目的,本發明提供一種韌體更新系統,係用以對具有韌體電子裝置執行韌體之更新作業,該韌體更新系統包括:韌體儲存模組、接收模組、判斷模組、以及更新模組。其中,該韌體儲存模組係設置於
該電子裝置中,至少用以儲存第一韌體以及第二韌體,該第一韌體及該第二韌體具有映像標頭檔案資料,且該映像標頭檔案資料至少包含循環冗餘校驗總和資訊以及映像標頭檔案建置時間資訊;該接收模組係用於接收韌體更新執行指令,以獲取新韌體;該判斷模組係用以接收韌體更新執行指令,以依據該接收模組獲取之新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常,若判斷為異常則結束該韌體之更新程序,若判斷為正常則分別依據該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,以鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若該第一韌體以及該第二韌體均發生異常,則結束該韌體更新程序;該更新模組係用以將該判斷模組所鎖定之目標韌體替換為該新韌體,俾完成該電子裝置之韌體更新作業。
此外,本發明之該韌體更新系統復包括韌體執行模組,該韌體執行模組係用以重新執行該電子裝置中之可執行韌體。
需要特別指明的是,該判斷模組復用以於該韌體執行模組重新啟動執行該韌體前,分別依據該韌體儲存模組所
儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷經韌體更新後之該第一韌體或該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定正常之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,鎖定映像標頭檔案建置時間較晚之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該系統啟動。
為達上述相同目的,本發明復提供韌體更新方法,係用以對具有韌體電子裝置執行韌體之更新作業,該電子裝置中係具有韌體儲存模組,該韌體儲存模組係儲存有第一韌體以及第二韌體,其中,該第一韌體及第二韌體中分別至少具有包含循環冗餘校驗總和資訊以及映像標頭檔案建置時間資訊之映像標頭檔案資料,該韌體更新方法包括:首先,於接收到韌體更新執行指令時,獲取該新韌體;其次,對該新韌體中之循環冗餘校驗總和資訊進行判斷,於該循環冗餘校驗總和資訊吻合時,進至下一步驟;再次,分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,以鎖定映像標頭檔案建置
時間較早之韌體為目標韌體,若判斷該第一韌體以及該二韌體均發生異常,則結束該韌體更新過程;最後,將鎖定之目標韌體替換為該新韌體,以完成該電子裝置之韌體更新作業。
於本發明之韌體更新方法,復包括以下步驟:將該目標韌體替換為新韌體後重啟,並分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則執行正常之韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,以執行該映像標頭檔案建置時間較晚之韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體啟動程序。
於本發明之韌體更新方法,於該識別碼資訊比對步驟之前復包括:依據該新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常,若是,則結束該韌體更新程序,若否,則進至該識別碼資訊比對步驟。
相較於習知技術,本發明提供一種韌體更新系統及方法,主要係接收到韌體更新執行指令時,獲取該新韌體,對該新韌體中之循環冗餘校驗總和資訊判斷,以於該循環冗餘校驗總和資訊吻合時,分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌
體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,並鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體的更新程序,最後將鎖定之目標韌體替換為該新韌體,藉此以在韌體更新時,確保電子裝置中有一個正常之韌體,得以於後續再次執行韌體更新作業時能防止因韌體更新失敗所造成系統無法啟動之情事,即有效克服了習知技術中之種種缺失。
以下係藉由特定的具體實例說明本發明之實施方式,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之其他優點與功效。本發明亦可藉由其他不同的具體實例加以施行或應用,本說明書中的各項細節亦可基於不同觀點與應用,在不悖離本發明之精神下進行各種修飾與變更。
請參閱第1圖,係為本發明之韌體更新系統的基本架構方塊之示意圖。如圖所示,本創作係提供一種韌體更新系統10,係用以對具有韌體電子裝置執行韌體之更新作業,具體地,係應用於例如路由器之電子裝置1中,用以依據前述韌體更新檔案之建構方法於伺服器端2所生成之韌體更新檔案對電子裝置1執行韌體之更新作業。
如圖所示,本發明之韌體更新系統10係包括韌體儲存模組100、接收模組110、判斷模組120、更新模組130、
以及韌體執行模組140,以下即對上揭各物件進行詳細的說明。
該韌體儲存模組100係設置於該電子裝置1中,至少用以儲存第一韌體以及第二韌體,該第一韌體及該第二韌體具有映像標頭檔案資料,且該映像標頭檔案資料至少包含循環冗餘校驗總和資訊、以及映像標頭檔案建置時間資訊;於本實施例中,該循環冗餘校驗總和資訊包括標頭校驗總和資訊、檔案長度資訊、以及資料校驗總和資訊,於本實施例中,該韌體儲存模組100係為快閃唯讀記憶體(Flash ROM),但不以此為限,該韌體儲存模組100亦可為電子可抺除式唯讀記憶體(EEPROM)或者其他非揮發性記憶體。
該接收模組110係用以接收韌體更新執行指令,而獲取新韌體,於本實施例中,該接收模組110係透過網路傳輸方式自該伺服器端2下載該韌體更新檔案,但不以此為限,該接收模組110亦可透過光碟讀取方式或USB讀取方式等資料傳輸方式予以下載。
該判斷模組120係用以接收韌體更新執行指令,對該接收模組110獲取之新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常時,若異常則結束該韌體更新過程,若正常則分別依據該韌體儲存模組100所儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體
為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組100所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,並鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體更新程序。
該更新模組130係用以依據該判斷模組120所鎖定之目標韌體,以將該韌體儲存模組100中之目標韌體替換為該新韌體,俾完成該電子裝置1之韌體更新作業。
該韌體執行模組140係用以重新執行該電子裝置1中可執行韌體。
於本實施例中,該判斷模組120還用以於該韌體執行模組140重新啟動執行該韌體前,分別依據該韌體儲存模組140所儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷經韌體更新後之該第一韌體或該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定正常之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組100所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,鎖定映像標頭檔案建置時間較晚之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該系統啟動。
因此,應用本發明之韌體更新系統,則可在韌體更新過程中選擇異常或檔案建置時間最早的韌體進行更新,從而可讓電子裝置中始終都具有一個較新版本之韌體,倘若
韌體更新的作業成功,電子裝置則會依據韌體之檔案建置時間資訊執行最新之韌體,反之,若韌體更新的作業失敗,則執行原先建置時間較早的(即舊的)韌體,亦不會因韌體更新的作業失敗而讓電子裝置無法啟用,而需送回原製造廠商進行維修及更新,如此,本發明即可避免使用者的不便及原製造廠商處理上的困擾。
透過上述韌體更新系統,執行本發明之韌體更新方法之實施例流程,係如第2A及2B圖所示。該韌體更新方法係用以對具有韌體電子裝置1執行韌體之更新作業,該電子裝置1中係具有韌體儲存模組100,該韌體儲存模組100係儲存有第一韌體以及第二韌體,其中,該第一韌體及第二韌體中分別至少具有包含循環冗餘校驗總和資訊以及映像標頭檔案建置時間資訊之映像標頭檔案資料,該韌體更新方法包括以下步驟:
首先進行步驟S300,於該電子裝置1接收到韌體更新執行指令時,透過網路傳輸方式自該伺服器端2獲取該新韌體,並產生啟動訊號,而該新韌體之獲取方式並不侷限於網路傳輸方式,於其他實施例,亦可透過光碟讀取方式、USB讀取方式或其他資料傳輸方式予以進行。接著進至步驟S301。
於步驟S301中,由於獲取新韌體過程中,可能會因網路傳輸故障造成新韌體下載不完全等異常,則需依據該新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常,若是,則進至步驟S302,若否,則進至步驟S303。
於步驟S302中,判斷是否重新獲取該新韌體,若是,返回步驟S301。若否,則結束。於本實施例中,即重新透過網路傳輸方式自該伺服器端2下載該新韌體。
於步驟S303中,由於於伺服器端2提供之新韌體之版本可能不止一種(即同時提供多種對應不同製造廠商之韌體更新檔案),使用者可能在下載該新韌體前未詳盡瞭解該新韌體之應用對象,而下載錯誤版本之新韌體,於此判斷對該新韌體中之循環冗餘校驗總和資訊是否吻合,若是,則進至步驟S305,若否,則進至步驟S304。
於步驟S304中,重新獲取另一版本之新韌體,於本實施例中,即重新透過網路傳輸方式自該伺服器端2下載另一版本之新韌體。接著,返回至步驟S301。
於步驟S305中,依據該第一韌體中之循環冗餘校驗總和資訊判斷該第一韌體是否異常,若是,則進至步驟S306,若否,則進至步驟S308。
於步驟S306中,依據該第二韌體中之循環冗餘校驗總和資訊判斷該第二韌體是否異常,若是(表示該第一韌體以及該第二韌體均發生異常),則結束該韌體更新過程,若否(表示僅該第一韌體發生異常),則進至步驟S307。
於步驟S307中,鎖定該第一韌體為目標韌體。接著進行步驟S311。
於步驟S308中,依據該第二韌體中之循環冗餘校驗總和資訊判斷該第二韌體是否異常,若是(表示僅該第二韌體發生異常),則進至步驟S310,若否(表示該第一韌
體以及該第二韌體均正常),則進至步驟S309。
於步驟S309中,比對該第一韌體中之檔案建置時間資訊是否早於該第二韌體中之檔案建置時間資訊,若是,則進至S307,若否,則進至步驟S310。
於步驟S310中,鎖定該第二韌體為目標韌體。接著進行步驟S311。
於步驟S311中,依據所鎖定之目標韌體,將該目標韌體替換為該新韌體,以完成該電子裝置之韌體更新作業。接著進行步驟S312。
於步驟S312中,啟動該電子裝置,以使韌體更新作業生效。接著進行步驟S313。
於步驟S313中,依據該第一韌體中之循環冗餘校驗總和資訊判斷該第一韌體是否異常,若是,則進至步驟S317,若否,則進至步驟S314。
於步驟S314中,依據該第二韌體中之循環冗餘校驗總和資訊判斷該第二韌體是否異常,若是(表示僅該第二韌體發生異常),則進至步驟S315,若否(表示該第一韌體以及該第二韌體均正常),則進至步驟S316。
於步驟S315中,執行該第一韌體,此時,即完成該韌體更新過程。
於步驟S316中,比對該第一韌體中之檔案建置時間資訊是否早於該第二韌體中之檔案建置時間資訊,若是,則進至S318,若否,則進至步驟S315。
於步驟S317中,依據該第二韌體中之循環冗餘校驗
總和資訊判斷該第二韌體是否異常,若是(表示該第一韌體以及該第二韌體均發生異常),則結束該韌體更新過程,若否(表示僅該第一韌體發生異常),則進至步驟S318。
於步驟S318中,執行該第二韌體,此時,即完成該韌體更新過程。
此處須予以說明的是,上述步驟S305、S306、S308與步驟S313、S314、S317中關於第一韌體以及第二韌體是否異常之判斷次序係以第一韌體作為優先判斷對象,但並非以此為限,亦可以第二韌體作為優先判斷對象,而以第一韌體作為第二判斷對象。
請參閱第3圖,第3圖係顯示本發明之韌體更新系統之韌體建構方法的流程示意圖;於本實施例中,本發明之韌體更新系統之韌體建構方法係搭建於伺服器端並由製造廠商構建完成者,以生成新韌體供使用者於電子裝置自行更新使用,如圖所示,首先執行步驟S100,設定韌體存儲之最大檔案長度;接著進行步驟S110。
於步驟S110中,合併內核檔案資料與檔案系統資料為臨時檔案資料;接著進至步驟S120。
於步驟S120中,建置映像標頭檔案資料,其中,該映像標頭檔案資料至少包含循環冗餘校驗總和資訊、以及該映像標頭檔案建置時間資訊;於本實施例中,該映像標頭檔案資料復包括識別碼資訊;該循環冗餘校驗總和資訊包括標頭校驗總和(header CRC checksum)資訊、檔案長度(data size)資訊、以及資料校驗總和(data CRC checksum)
資訊。接著進至步驟S130。
需要說明的是,該韌體更新檔案至少包含內核(kernel)檔案資料以及檔案系統(file system)資料;該識別碼資訊係為包含製造廠商資訊之產品序列號,該循環冗餘校驗總和資訊係用以提供驗證該資訊所在檔案是否發生異常之用,惟,以循環冗餘校驗總和資訊驗證檔案是否異常之技術應為所屬領域熟知之技術,於此不再為文贅述,此外,由於內核檔案資料之實際檔案長度會因編譯時間以及版本的不同而有不同的長度,如此,則會影響後續欲與該內核檔案資料合併之檔案系統資料之起始位元位址的配置,而且,通常該檔案系統資料之執行係從固定之起始位址開始,是故,於該步驟中復設定該內核檔案資料之最大檔案長度,以確保該檔案系統資料之起始位址在固定位址段,即為(內核檔案資料起始位址)+(最大檔案長度)+1之位址。
於步驟S130中,加入該映像標頭檔案資料至該臨時檔案資料,以生成韌體,俾供電子裝置的使用者自行依需求來使用;接著進至步驟S140。
於步驟S140中,判斷該韌體實際長度是否小於該設定韌體存儲之最大長度,若是,接著進至步驟S150;若否,則完成構建。
於步驟S15O中,則增加該臨時檔案資料之長度至該韌體實際長度符合設定韌體存儲之最大長度,即可完成構建作業。
承上所述,本發明係提供一韌體更新系統、方法以及
韌體更新系統之韌體建構方法,本發明提供一種韌體更新系統、方法以及韌體更新系統之韌體建構方法,主要係接收到韌體更新執行指令時,獲取該新韌體,對該新韌體中之循環冗餘校驗總和資訊判斷,並於該循環冗餘校驗總和資訊吻合時,分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,並鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束對該韌體的更新程序,最後依據鎖定之目標韌體,將該目標韌體替換為該新韌體。
藉此,本發明可在韌體更新過程中選擇異常或檔案建置時間較早的韌體進行更新,從而可讓電子裝置中始終都具有一個較新版本之韌體,倘若韌體更新的作業成功,電子裝置則會依據韌體之檔案建置時間資訊執行最新之韌體,反之,若韌體更新的作業失敗,則執行原先建置時間較早的韌體,亦不會因韌體更新的作業失敗而讓電子裝置無法啟用,更無法再次進行韌體更新的作業,而需送回原製造廠商進行維修及更新,如此,本發明即可避免習知技術中,因使用者端無法自行排除在韌體更新的作業中所產生的錯誤,而導致使用者的不便及原製造廠商處理上的困
擾。
上述實施例僅例示性說明本創作之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施例進行修飾與改變。因此,舉凡所屬技術領域中具有通常知識者在未脫離本發明所揭示之精神與技術思想下所完成之一切等效修飾或改變,仍應由後述之申請專利範圍所涵蓋。
1‧‧‧電子裝置
10‧‧‧韌體更新系統
100‧‧‧韌體儲存模組
110‧‧‧接收模組
120‧‧‧判斷模組
130‧‧‧更新模組
140‧‧‧韌體執行模組
2‧‧‧伺服器端
S100~S150、S300~S318‧‧‧步驟
第1圖係為本發明之韌體更新系統的基本架構方塊之示意圖;第2A及2B圖係為本發明之韌體更新方法之實施例流程示意圖;以及第3圖係顯示本發明之韌體更新系統之韌體建構方法的流程示意圖。
1‧‧‧電子裝置
10‧‧‧韌體更新系統
100‧‧‧韌體儲存模組
110‧‧‧接收模組
120‧‧‧判斷模組
130‧‧‧更新模組
140‧‧‧韌體執行模組
2‧‧‧伺服器端
Claims (13)
- 一種韌體更新系統,係用以對具有韌體電子裝置執行韌體之更新作業,該韌體更新系統包括:韌體儲存模組,係設置於該電子裝置中,至少用以儲存第一韌體以及第二韌體,該第一韌體及該第二韌體具有映像標頭檔案資料,且該映像標頭檔案資料至少包含循環冗餘校驗總和資訊以及映像標頭檔案建置時間資訊;接收模組,係用於接收韌體更新執行指令,以獲取新韌體;判斷模組,係用以接收韌體更新執行指令,以依據該接收模組獲取之新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常,若經判斷為異常則結束該韌體更新程序,若經判斷為正常則分別依據該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,以鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體更新程序;以及 更新模組,係用以將該判斷模組所鎖定之目標韌體替換為該新韌體,俾完成該電子裝置之韌體更新作業。
- 如申請專利範圍第1項之韌體更新系統,復包括韌體執行模組,係用以重新執行該電子裝置中之可執行韌體。
- 如申請專利範圍第2項之韌體更新系統,其中,該判斷模組復用以於該韌體執行模組重新執行該可執行韌體前,分别依據該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷經韌體更新後之該第一韌體或該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定正常之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該韌體儲存模組所儲存之該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,鎖定映像標頭檔案建置時間較晚之韌體為可執行韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該系統啟動。
- 如申請專利範圍第1項之韌體更新系統,其中,該循環冗餘校驗總和資訊包括標頭校驗總和資訊、檔案長度資訊、以及資料校驗總和資訊。
- 如申請專利範圍第1項之韌體更新系統,其中,該韌體儲存模組係為一快閃唯讀記憶體(Flash ROM)及電子可抺除式唯讀記憶體(EEPROM)之其中一者。
- 如申請專利範圍第1項之韌體更新系統,其中,該新韌體之獲取方式係透過網路傳輸方式、光碟讀取方式以及USB讀取方式之其中一者。
- 一種韌體更新方法,係用以對具有韌體電子裝置執行韌體之更新作業,該電子裝置中係具有韌體儲存模組,該韌體儲存模組係儲存有第一韌體以及第二韌體,其中,該第一韌體及第二韌體中分別至少具有包含循環冗餘校驗總和資訊以及映像標頭檔案建置時間資訊之映像標頭檔案資料,該韌體更新方法包括:於接收到韌體更新執行指令時,獲取新韌體;對該新韌體中之循環冗餘校驗總和資訊判斷,並於該循環冗餘校驗總和資訊吻合時,進至下一步驟;分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則鎖定該發生異常之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,並鎖定映像標頭檔案建置時間較早之韌體為目標韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體更新程序;以及依據所鎖定之目標韌體,將該目標韌體替換為該新韌體,以完成該電子裝置之韌體更新作業。
- 如申請專利範圍第7項之韌體更新方法,於該電子裝 置啟動後復包括:分別依據該第一韌體以及該第二韌體中之循環冗餘校驗總和資訊判斷該第一韌體以及該第二韌體是否異常,若判斷該第一韌體以及該第二韌體之其中一者發生異常,則執行正常之韌體,若判斷該第一韌體以及該第二韌體均為正常,則比對該第一韌體以及該第二韌體中之映像標頭檔案建置時間資訊,以執行該映像標頭檔案建置時間較晚之韌體,若判斷該第一韌體以及該第二韌體均發生異常,則結束該韌體啟動程序。
- 如申請專利範圍第7項之韌體更新方法,其中,該循環冗餘校驗總和資訊包括標頭校驗總和資訊、檔案長度資訊、以及資料校驗總和資訊。
- 如申請專利範圍第7項之韌體更新方法,其中,該映像標頭標頭資料復包括識別碼資訊,係提供於識別碼資訊比對步驟,用以判斷該新韌體中之識別碼資訊與該第一韌體或該第二韌體中之識別碼資訊不相同時,則重新獲取另一新韌體。
- 如申請專利範圍第10項之韌體更新方法,其中,於該識別碼資訊比對步驟之前復包括:依據該新韌體中之循環冗餘校驗總和資訊判斷該新韌體是否異常,若是,則結束該韌體更新程序,若否,則進至該識別碼資訊比對步驟。
- 如申請專利範圍第11項之韌體更新方法,其中,該識別碼資訊係為包含製造廠商資訊之產品序列號。
- 如申請專利範圍第7項之韌體更新方法,其中,該新韌體之獲取方式係透過網路傳輸方式、光碟讀取方式以及USB讀取方式之其中一者。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097151559A TWI384367B (zh) | 2008-12-31 | 2008-12-31 | 韌體更新系統及方法 |
GB0906936A GB2466685A (en) | 2008-12-31 | 2009-04-23 | Fault tolerant updating of firmware |
US12/434,203 US20100169709A1 (en) | 2008-12-31 | 2009-05-01 | System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware |
FR0902218A FR2940692A1 (fr) | 2008-12-31 | 2009-05-07 | Systeme et procede de mise a jour de microprogrammmes et procede de creation de microprogrammes |
DE102009020389A DE102009020389A1 (de) | 2008-12-31 | 2009-05-08 | System zur Aktualisierung von Firmware und Verfahren dazu, und Verfahren zum Erzeugen von Firmware |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097151559A TWI384367B (zh) | 2008-12-31 | 2008-12-31 | 韌體更新系統及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201025008A TW201025008A (en) | 2010-07-01 |
TWI384367B true TWI384367B (zh) | 2013-02-01 |
Family
ID=40774804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097151559A TWI384367B (zh) | 2008-12-31 | 2008-12-31 | 韌體更新系統及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100169709A1 (zh) |
DE (1) | DE102009020389A1 (zh) |
FR (1) | FR2940692A1 (zh) |
GB (1) | GB2466685A (zh) |
TW (1) | TWI384367B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747733B2 (en) | 2004-10-25 | 2010-06-29 | Electro Industries/Gauge Tech | Power meter having multiple ethernet ports |
US8966101B2 (en) * | 2009-08-10 | 2015-02-24 | Sling Media Pvt Ltd | Systems and methods for updating firmware over a network |
US8869138B2 (en) | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
JP5677173B2 (ja) * | 2011-04-11 | 2015-02-25 | キヤノン株式会社 | 画像形成装置、ネットワークシステム、画像形成装置の制御方法、及びプログラム |
US8683457B1 (en) * | 2011-06-17 | 2014-03-25 | Western Digital Technologies, Inc. | Updating firmware of an electronic device by storing a version identifier in a separate header |
US10862784B2 (en) | 2011-10-04 | 2020-12-08 | Electro Industries/Gauge Tech | Systems and methods for processing meter information in a network of intelligent electronic devices |
US10771532B2 (en) | 2011-10-04 | 2020-09-08 | Electro Industries/Gauge Tech | Intelligent electronic devices, systems and methods for communicating messages over a network |
US20130166893A1 (en) * | 2011-12-23 | 2013-06-27 | Sandisk Technologies Inc. | Auxiliary card initialization routine |
US9170827B2 (en) * | 2012-01-31 | 2015-10-27 | Hewlett-Packard Development Company, L.P. | Configuration file compatibility |
TW201339831A (zh) * | 2012-03-19 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 無線救援裝置、無線通訊遠端救援系統及方法 |
TWI436559B (zh) * | 2012-04-23 | 2014-05-01 | Enermax Technology Corp | 水冷散熱系統及其散熱方法 |
US9563497B2 (en) | 2012-12-19 | 2017-02-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Correcting a failure associated with a current firmware image |
US11816465B2 (en) | 2013-03-15 | 2023-11-14 | Ei Electronics Llc | Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices |
US8868796B1 (en) | 2013-04-18 | 2014-10-21 | Otter Products, Llc | Device and method for updating firmware of a peripheral device |
US9116774B2 (en) * | 2013-05-14 | 2015-08-25 | Sandisk Technologies Inc. | Firmware updates for multiple product configurations |
FR3013866B1 (fr) * | 2013-11-22 | 2015-12-04 | Bull Sas | Procede, programme d'ordinateur et dispositif de configuration ou de maintenance d'un systeme informatique dans un cluster |
US11734396B2 (en) | 2014-06-17 | 2023-08-22 | El Electronics Llc | Security through layers in an intelligent electronic device |
CN104503786B (zh) * | 2014-12-15 | 2020-10-16 | 小米科技有限责任公司 | 固件刷新方法及装置 |
CN106845289A (zh) * | 2015-12-07 | 2017-06-13 | 国民技术股份有限公司 | 一种安全芯片及其非易失性存储控制装置、方法 |
US10958435B2 (en) | 2015-12-21 | 2021-03-23 | Electro Industries/ Gauge Tech | Providing security in an intelligent electronic device |
US10430263B2 (en) * | 2016-02-01 | 2019-10-01 | Electro Industries/Gauge Tech | Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices |
CN107562434A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 升级文件的制作方法、升级方法、装置及设备 |
KR102123676B1 (ko) * | 2016-12-06 | 2020-06-29 | 주식회사 엘지화학 | 주택용 ESS에 탑재되는 직류변압기(DC-DC converter)와 배터리관리시스템(BMS) 소프트웨어의 통합관리 및 업데이트 방법 |
US10481901B2 (en) * | 2017-04-24 | 2019-11-19 | Amzetta Technologies, Llc | System and method for performing firmware update by patching |
JP6987556B2 (ja) * | 2017-07-19 | 2022-01-05 | キヤノン株式会社 | 通信装置、情報処理方法及びプログラム |
CN109947439B (zh) * | 2017-12-15 | 2022-04-08 | 库币科技有限公司 | 封闭式储存装置的韧体更新方法 |
US11734704B2 (en) | 2018-02-17 | 2023-08-22 | Ei Electronics Llc | Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data |
US11686594B2 (en) | 2018-02-17 | 2023-06-27 | Ei Electronics Llc | Devices, systems and methods for a cloud-based meter management system |
US11754997B2 (en) | 2018-02-17 | 2023-09-12 | Ei Electronics Llc | Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems |
KR20200005220A (ko) * | 2018-07-06 | 2020-01-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버 |
US11863589B2 (en) | 2019-06-07 | 2024-01-02 | Ei Electronics Llc | Enterprise security in meters |
JP7377893B2 (ja) * | 2019-12-24 | 2023-11-10 | 京セラ株式会社 | 通信機器及びプログラム |
US11507367B2 (en) * | 2019-12-26 | 2022-11-22 | Gunitech Corp. | Firmware update method and firmware update system thereof |
CN113377392B (zh) | 2020-03-09 | 2024-03-29 | 瑞昱半导体股份有限公司 | 可后台升级固件的系统及后台升级固件方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060168574A1 (en) * | 2005-01-21 | 2006-07-27 | David Giannini | Methods and systems for transferring data over a network |
TW200739425A (en) * | 2006-03-06 | 2007-10-16 | Mediatek Inc | Method and apparatus for updating firmware |
US20080270677A1 (en) * | 2003-06-30 | 2008-10-30 | Mikolaj Kolakowski | Safe software revision for embedded systems |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317827B1 (en) * | 1996-08-16 | 2001-11-13 | Intel Corporation | Method and apparatus for fault tolerant flash upgrading |
US6357021B1 (en) * | 1999-04-14 | 2002-03-12 | Mitsumi Electric Co., Ltd. | Method and apparatus for updating firmware |
US6622246B1 (en) * | 1999-11-12 | 2003-09-16 | Xerox Corporation | Method and apparatus for booting and upgrading firmware |
US6584559B1 (en) * | 2000-01-28 | 2003-06-24 | Avaya Technology Corp. | Firmware download scheme for high-availability systems |
US6560703B1 (en) * | 2000-04-18 | 2003-05-06 | International Business Machines Corporation | Redundant updatable self-booting firmware |
CA2320665C (en) * | 2000-09-26 | 2010-08-17 | Spielo Manufacturing Incorporated | System and method for downloading electronic information to a video lottery terminal |
US7730326B2 (en) * | 2004-11-12 | 2010-06-01 | Apple Inc. | Method and system for updating firmware stored in non-volatile memory |
US7904901B1 (en) * | 2005-11-02 | 2011-03-08 | Parallels Holdings, Ltd. | System and method for controlling installed third party software components |
-
2008
- 2008-12-31 TW TW097151559A patent/TWI384367B/zh not_active IP Right Cessation
-
2009
- 2009-04-23 GB GB0906936A patent/GB2466685A/en not_active Withdrawn
- 2009-05-01 US US12/434,203 patent/US20100169709A1/en not_active Abandoned
- 2009-05-07 FR FR0902218A patent/FR2940692A1/fr active Pending
- 2009-05-08 DE DE102009020389A patent/DE102009020389A1/de not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270677A1 (en) * | 2003-06-30 | 2008-10-30 | Mikolaj Kolakowski | Safe software revision for embedded systems |
US20060168574A1 (en) * | 2005-01-21 | 2006-07-27 | David Giannini | Methods and systems for transferring data over a network |
TW200739425A (en) * | 2006-03-06 | 2007-10-16 | Mediatek Inc | Method and apparatus for updating firmware |
Also Published As
Publication number | Publication date |
---|---|
GB0906936D0 (en) | 2009-06-03 |
US20100169709A1 (en) | 2010-07-01 |
GB2466685A (en) | 2010-07-07 |
TW201025008A (en) | 2010-07-01 |
FR2940692A1 (fr) | 2010-07-02 |
DE102009020389A1 (de) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI384367B (zh) | 韌體更新系統及方法 | |
KR100750132B1 (ko) | 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체 | |
KR100506203B1 (ko) | 부팅 및 부트 코드 업데이트 방법 및 시스템 | |
US8181007B2 (en) | Electronic device and method for secure operating system update in embedded system | |
KR101427755B1 (ko) | Usb를 이용한 펌웨어 업그레이드 장치 및 방법 | |
US8595716B2 (en) | Failsafe firmware updates | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
US7512749B2 (en) | Safe software revision for embedded systems | |
WO2011075139A1 (en) | Methods and devices for updating firmware of a component using a firmware update application | |
JP2000357095A (ja) | 埋込式システムにソフトウェアをダウンロードする方法および装置 | |
US11442718B2 (en) | Embedded system and method of controlling non-volatile memory to perform firmware update | |
CN101807152A (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
CN116932010B (zh) | 系统固件升级方法、装置及服务器 | |
JP2001331327A (ja) | 電子機器 | |
CN109375953B (zh) | 一种操作系统启动方法及装置 | |
CN117608627A (zh) | 升级固件的方法、电子设备和存储介质 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
US20090138865A1 (en) | Performing an operating system upgrade without multiple system interruptions | |
CN116301995A (zh) | 基于bootloader架构的固件升级方法 | |
US11768669B2 (en) | Installing application program code on a vehicle control system | |
JP4062429B2 (ja) | メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
JP2004054421A (ja) | メモリ、情報処理装置、記憶方法および情報処理方法 | |
CN117215604A (zh) | 一种软件更新方法、装置、车辆控制器及可读存储介质 | |
CN117407022A (zh) | 升级固件的方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |