TWI386847B - 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 - Google Patents
可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 Download PDFInfo
- Publication number
- TWI386847B TWI386847B TW098103499A TW98103499A TWI386847B TW I386847 B TWI386847 B TW I386847B TW 098103499 A TW098103499 A TW 098103499A TW 98103499 A TW98103499 A TW 98103499A TW I386847 B TWI386847 B TW I386847B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- update
- electronic device
- new firmware
- status
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本發明大體上是關於一種韌體更新的方法,且特別是有關於一種用於嵌入式電子裝置的可安全復原的韌體更新方法及其嵌入式電子裝置。
目前嵌入式電子裝置(embedded electronic device)可以透過許多方式讓使用者手動將新韌體(firmware)由網際網路(Internet)下載後,更新到嵌入式電子裝置上。常見的嵌入式電子裝置韌體更新方法包括先透過網際網路確認伺服器(server)上面有新版本的韌體,然後下載此新版本韌體,安裝到指定之裝置上面。此外亦可以透過在裝置上面之一塊特殊儲存裝置來儲存下載的新韌體,且以一個旗標(flag)來判斷是否要更新,並於成功更新後清除此旗標。再者,亦可以判斷使用者是否按下裝置上特殊的按鍵組合,再透過通用串列匯流排(universal serial bus,簡稱USB)連線執行裝置的韌體更新。不過這些更新方法多是直接下載新版本韌體去覆蓋舊的韌體,在沒有備份機制情況下,若在韌體更新、寫入記憶體過程中發生異常問題,例如當機(crash)、停電或此新版本韌體本身有問題,此裝置在韌體更新過程後將無法正常運作。大多數嵌入式電子裝置無法容許更新錯誤的情況發生(例如掛在牆上的監視系統的數位攝影機),一旦更新錯誤就可能無法正常啟動,也就無法再次進行更新。但是在開發過程中卻總是會有許多不正常的錯誤情況發生,所以需要有一套機制可以安全地更新韌體。
為了避免嵌入式電子裝置在韌體更新後無法正常運作,也有一些對應的方法可以採用。例如,使用兩塊記憶體區域來存放舊的韌體與新版本韌體,並透過特殊之旗標,例如核對和(checksum)來判斷韌體更新是否正確。若韌體更新不正確時,可以由使用者透過按鈕控制驅動舊的韌體重新開機。另外,也可以在韌體更新過程前,先進入一個特殊模式,當韌體更新不正確時,由此裝置的預設之系統監視器(watchdog)在預設時間到達時,重新驅動舊的韌體重新開機。但是這些需要額外的硬體電路或硬體來達成,且仍然無法保證韌體更新後每次都可以正常啟動,甚至需要於更新韌體失敗後由人工方式取回此嵌入示電子裝置以其他方法更新韌體。
為解決上述之問題,本發明提供一種韌體更新方法,適用於一遠端嵌入式電子裝置。
本發明另提供一種韌體更新方法,適用於嵌入式電子裝置。
本發明另提供一種遠端嵌入式電子裝置,適用於上述之韌體更新方法。
為了達到上述或其他目的,根據本發明之實施例,本發明提供一種韌體更新方法,適用於遠端嵌入式電子裝置。韌體更新方法包括執行啟動程式以進行初始化之設定、讀取唯讀記憶體內之設定區域的更新狀態,以及判斷更新狀態。若更新狀態為預設狀態,則執行預設韌體。若更新狀態非為預設狀態,則判斷該更新狀態是否為已更新狀態。若更新狀態為已更新狀態,則將該設定區域設定為啟動狀態,並執行新韌體。若更新狀態並非為已更新狀態,則進一步判斷更新狀態是否為執行新韌體狀態。若更新狀態為執行新韌體狀態,則執行新韌體,並執行更新確認方法,若更新確認方法得到確認更新完成訊息,則將該更新狀態設定為執行新韌體狀態。若更新狀態並非為執行新韌體狀態,則代表前次的更新失敗,此時可執行預設韌體,回復到初始預設的模式。
根據本發明之實施例,本發明另提供一種嵌入式電子裝置之韌體更新方法。其中,嵌入式電子裝置之韌體更新方法包括執行啟動程式,進行初始化之設定、確認嵌入式電子裝置的設定區域之更新狀態是否進入已更新狀態,以及執行更新確認方法。若確認嵌入式電子裝置的設定區域之更新狀態進入已更新狀態,則將更新狀態設定為啟動狀態,並執行新韌體。若更新確認方法得到確認更新完成訊息,則將更新狀態設定為執行新韌體狀態,之後再次啟動時,該嵌入式電子裝置便會使用新韌體。相反地,若更新確認方法未得到確認更新完成訊息,則更新狀態依然為啟動狀態,當重新啟動時便會執行預設韌體,回復到初始預設的模式。
根據本發明之實施例,本發明另提供一種遠端嵌入式電子裝置,用以執行上述之韌體更新方法。此遠端嵌入式電子裝置包括處理器、隨機存取記憶體、唯讀記憶體以及輸入輸出介面。其中,唯讀記憶體分成四個區域,此四個區域分別用以儲存啟動程式、設定參數、預設韌體以及新的韌體。而輸入輸出介面包括網路介面。
基於上述,本發明之實施例提供一個可安全復原的韌體更新方法,藉由確認嵌入式電子裝置之更新狀態以及確認韌體成功更新之方法,以讓此嵌入式電子裝置在韌體更新錯誤時選擇預設韌體重新開機以確保可再次更新。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
現在將詳細參照本發明的實施例,其實例繪示於附圖中,附帶一提的是,整個附圖中相同的參考標記用於表示相同或相似的部件。
圖1繪示根據本發明之實施例所提出之一種嵌入式電子裝置100的系統方塊圖。此嵌入式電子裝置100包括處理器110、唯讀記憶體模組(Read only Memory Module,簡稱為ROM模組)120、隨機存取記憶體模組(Random Access Memory Module,簡稱為RAM模組)130以及輸出輸入介面140。此嵌入式電子裝置100之RAM模組130可儲存程式模組,所述程式模組在由處理器110執行時,執行產生媒體程式的一或多個過程。RAM模組130可為一或多個記憶體裝置,用以儲存資料以及軟體程式,且亦可例如包括RAM、磁性儲存設備、快閃記憶體儲存(Flash Memory Storage)設備或光學儲存設備中之一或多者。處理器110可提供為一或多個經組態(configuration)以執行程式模組的處理器。
如圖1所示,此嵌入式電子裝置100之ROM模組120分成四個區域,此四個區域分別為啟動程式(Boot Loader)區域122、設定區域124、預設韌體區域126以及新韌體區域128。另外,此嵌入式電子裝置100之輸出輸入介面140包括網路介面142、通用匯流排介面(Universal Serial Bus Interface,簡稱為USB介面)144、大容量儲存裝置介面146以及其他輸出輸入裝置介面148。
在本實施例中,ROM模組120之啟動程式122是用以儲存啟動(Boot Loader)程式。此啟動程式是用以進行一些初始化(Initialization)之動作,並將主要之韌體程式模組載入RAM模組130中執行。
在本發明的一實施例中,ROM模組120之設定區域124是用以儲存設定參數。此設定參數包括韌體之更新狀態。其中更新狀態可以被區分為四種狀態,分別是預設(DEFAULT)狀態、已更新(UPDATED)狀態、啟動(BOOTING)狀態以及執行新韌體(RUNNEW)狀態。
在本實施例中,ROM模組120之預設韌體區域126是用以儲存預設韌體。此預設韌體具備使嵌入式電子裝置100正常運作以及被更新韌體的能力。
另外,ROM模組120之新韌體區域128是用以儲存新的韌體。
在此值得一提的是,以上所述之韌體可以是包含作業系統、檔案系統、韌體更新程式、韌體更新檢查程式以及其他相關之應用程式。
延續上述之本實施例,輸出輸入介面140之網路介面142可為一個區域網路介面,用以連結嵌入式電子裝置100至儲存新韌體的一主機(Server)。再者,此區域網路介面也可將此嵌入式電子裝置100連結到網際網路(Internet),用以連結嵌入式電子裝置100至儲存新韌體的一主機(Server)。另外,本發明中之嵌入式電子裝置100的網路介面142也可為一個撥接網路連線介面、一個無線網路介面、一個城域網路(Metropolitan Area Network)介面、一個廣域網路(Wide Area Network)介面或一個光纖網路(Optical Fiber Network)介面。
輸出輸入介面140之通用匯流排介面144係用以將此嵌入式電子裝置100連結至其他電子裝置來下載新的韌體。例如,此其他電子裝置可以是一個移動式記憶模組,可為一或多個記憶體裝置,用以儲存資料以及軟體程式,且亦可例如包括RAM、磁性儲存設備、快閃記憶體儲存設備或光學儲存設備中之一或多者。又例如,此其他電子裝置可以是一個移動式電腦(Computer)。
輸出輸入介面140之大容量儲存裝置介面146係用以將此嵌入式電子裝置100連結至一個外接式儲存裝置來下載新的韌體。例如,此外接式儲存裝置可以是一個移動式記憶卡(Memory Card)。又例如,此外接式儲存裝置可以是一個移動式記憶模組,可為一或多個記憶體裝置,用以儲存資料以及軟體程式,且亦可例如包括RAM、磁性儲存設備、快閃記憶體儲存設備或光學儲存設備中之一或多者。
另外,輸出輸入介面140還包括一個其他輸出輸入裝置介面148。例如,此其他輸出輸入裝置介面可以是高效能串聯匯流排(為IEEE標準組織制定,簡稱為IEEE 1394介面)。
圖2繪示了一種嵌入式電子裝置開機程序的流程圖。首先,在步驟S202中,處理器110將唯讀記憶體120中的啟動程式複製到RAM模組130中並執行此啟動程式。
接著,在步驟S204中,啟動程式將韌體程式複製到RAM模組130中並執行此韌體程式。
然後,在步驟S206中,韌體程式對週邊硬體進行初始化動作並執行韌體檔案中之相關應用程式。當需要進行更新韌體時,則需執行一個韌體更新程式。以下將以圖3~5說明本發明之一實施例中的一種更新韌體方法之技術手段。
圖3繪示根據本發明之實施例所提出的一種嵌入式電子裝置韌體更新方法的流程圖。首先,在步驟302中,處理器110執行唯讀記憶體120中的一個韌體更新程式。
接著,在步驟304中,此韌體更新程式取得一個新的韌體檔案。取得此新的韌體檔案的方法包括透過輸出輸入介面140之網路介面142與一個主機建立連線,此主機有可以下載的新的韌體檔案。另外,此韌體更新程式可以透過其他途徑取得新的韌體檔案,例如,此韌體更新程式可以透過輸出輸入介面140之USB介面144連接到另一個主機來下載在主機中的新的韌體檔案。又例如,此韌體更新程式可以透過輸入介面140之大容量儲存裝置介面146,連接到一外接式記憶卡來下載在此外接式記憶卡中的新的韌體檔案。又例如,此韌體更新程式可以透過一IEEE 1394介面連接到一光學記憶模組,並由此光學記憶模組下載新的韌體檔案。
再者,在步驟S306中,此韌體更新程式將ROM模組120中的新韌體區域128清除。
然後,在步驟S308中,此韌體更新程式將以下載成功之新的韌體檔案寫入到新韌體區域128中。
在步驟S310中,此韌體更新程式讀取此新韌體區域128中之新的韌體是否與之前取得的新的韌體相同。若新韌體區域128中之新的韌體與之前取得的新的韌體相同,則執行後續的步驟S312。相反地,若新韌體區域128中之新的韌體與之前取得的新的韌體不同,則重新執行步驟S304。
在步驟S312中,此韌體更新程式將ROM模組120之設定區域124中的更新狀態設定為”已更新”狀態。
在本實施例中,為了避免嵌入式電子裝置在韌體更新失敗後無法重新啟動,另外提供一個方法於韌體更新後啟動時,選擇要使用預設韌體或新的韌體來啟動此嵌入式電子裝置。以下將以圖4說明此選擇韌體的方法之技術手段。
圖4繪示了根據本發明之實施例所提出的選擇使用韌體之方法的流程圖,而此選擇使用韌體之方法是於啟動嵌入式電子裝置時執行。首先,在步驟S402中,處理器110執行啟動程式。
接著,在步驟中S404中,啟動程式讀取在ROM模組120之設定區域124中的更新狀態。
再者,在步驟中S406中,啟動程式檢查此更新狀態是否為”預設”狀態。若更新狀態是”預設”狀態,則執行步驟S414,
執行預設韌體。若更新狀態並非”預設”狀態,則執行下一個步驟S408。
在步驟S408中,啟動程式檢查此更新狀態是否為”已更新”狀態。若更新狀態是”已更新”狀態,則執行步驟S412。若更新狀態並非”已更新”狀態,則執行步驟S410。
在步驟S410中,啟動程式檢查此更新狀態是否為”執行新韌體”狀態。若更新狀態是”執行新韌體”狀態,則執行步驟S416。若更新狀態並非”執行新韌體”狀態,則執行步驟S414。
在步驟S412中,啟動程式將ROM模組120之設定區域124中的更新狀態設定為”啟動”。
然後,在步驟S416中,系統執行新韌體。
最後,在步驟S418中,執行更新確認程式。以下將以圖5說明此更新確認程式之技術手段。
圖5是圖4之執行更新確認程式的細部流程圖。首先,在步驟S502中,處理器110執行更新確認程式。
接著,在步驟S504中,更新確認程式讀取ROM模組120之設定區域124中的更新狀態。
再者,在步驟S506中,更新確認程式檢查此更新狀態是否為”
啟動”
。若更新狀態為”啟動”,則執行下一步驟S508。若更新狀態並非”啟動”,則結束此流程。
然後,在步驟S508中,更新確認程式檢查是否有足夠可用之隨機存取記憶體。若有足夠可用之隨機存取記憶體,則執行下一步驟S510。若沒有足夠可用之隨機存取記憶體,則結束此流程。
在步驟S510中,更新確認程式檢查系統週邊(System Peripheral)狀態是否正常,此系統週邊狀態可為網路介面、USB介面或大容量儲存裝置介面。若系統週邊狀態正常,則執行下一步驟S512。若系統週邊狀態並非運作正常,則結束此流程。
在步驟S512中,更新確認程式檢查唯讀記憶體是否運作正常。若唯讀記憶體運作正常,則執行下一步驟S514。若唯讀記憶體並非運作正常,則結束此流程。
在步驟S514中,更新確認程式檢查其他相關功能是否運作正常。此相他相關功能可為該嵌入式電子裝置的主要功能,例如傳輸控制協定(Transport Control Protocol簡稱為TCP)、網際網路協定(Internet Protocol簡稱為IP)、使用者資料協定(User Datagram Protocol簡稱為UDP)、串流服務(Streaming Service)功能或與串流伺服器(Streamihg Server)連線相關之功能。若這些相關功能運作正常,則執行下一步驟S516。若這些相關功能並非運作正常,則結束此流程。
最後,在步驟S516中,更新確認程式將ROM模組120之設定區域124中的更新狀態設定為”執行新韌體”。
參照圖4與圖5,本發明中所提到如何選擇使用預設韌體或是新韌體的方式,主要是由設定區域124中的更新狀態來判斷。其中關鍵的步驟為更新後第一次執行時,啟動程式暫時將更新狀態改為“啟動”,接著執行新的韌體。在此新韌體中需包含更新確認程式,只有當更新確認程式測試過記憶體空間大小、系統周邊裝置狀態、唯讀記憶體存取狀態以及此嵌入式電子裝置的主要功能都沒有問題,亦即此新韌體具有再次更新的能力時,之後才能將更新狀態設定成”執行新韌體”。如此,此嵌入式電子裝置重新開機時也會使用新的韌體。但若新的韌體執行過程中系統發生任何錯誤,導致更新確認程式無法正常完成的話,更新狀態就依然保留為”啟動”,直到下次開機時,啟動程式便會依據圖4所繪示之流程去執行預設韌體。以下將以圖6之實施例說明應用本發明之一種嵌入式電子裝置韌體更新方法的一種遠端嵌入式電子裝置及其應用環境。
圖6是根據本發明之實施例的一個IP攝影機裝置600使用環境的示意圖。此IP攝影機裝置使用之環境包括此IP攝影機裝置600、韌體下載伺服器640、用戶裝置650及網際網路660。其中,此IP攝影機裝置600、韌體下載伺服器640及用戶裝置650透過網際網路660連接在一起。
此IP攝影機裝置600具有將攝影機所攝錄之影像,經過適當之壓縮處理後,透過網路傳送到預設之客戶裝置650。此客戶裝置650可為一台電腦或一個具有監看IP攝影機裝置600所攝錄影像之功能的裝置。使用者可以利用此客戶裝置650來監看或錄影IP攝影機裝置600所攝錄影像。另外,使用者也可以人工方式由韌體下載伺服器640下載此IP攝影機裝置600之新的韌體,且上傳此新的韌體到IP攝影機裝置600並執行韌體更新程式。當IP攝影機裝置600更新韌體完成後即自動重新啟動,並如圖4所述流程執行新的韌體及更新確認程式。
在本實施例中,除了上述之圖5的相關檢查流程以外,此IP攝影機裝置600還檢查相關功能是否運作正常,例如:感測器介面632、網路連線狀態、網頁服務、串流伺服器等應用程式等。
如果上述之檢查結果皆正常時,下次此IP攝影機裝置600重新啟動時將使用新的韌體,若上述之檢查結果並非皆正常時,下次重新啟動時,則會執行預設韌體。
綜上所述,本發明藉由確認嵌入式電子裝置之更新狀態、確認成功更新韌體之方法,以及發生錯誤時選擇預設韌體重新開機來達到可安全復原的韌體更新。因此可以在不使用特殊電路之一般狀況下,讓更新後的韌體在發生錯誤時不至於無法挽救,可重新開機自動執行預設韌體,並可透過預設韌體進行再次更新。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...嵌入式電子裝置
110、610...處理器
120、620...唯讀記憶體模組
122、622...啟動程式區域
124、624...設定區域
126、626...預設韌體區域
128、628...新韌體區域
130...隨機存取記憶體模組
140...輸出輸入介面
142...網路介面
144...USB介面
146...大容量儲存裝置介面
148...其他輸出輸入裝置介面
S202~S206...依照本發明實施例說明之嵌入式電子裝置開機程序的步驟
S302~S312...依照本發明實施例說明之嵌入式電子裝置韌體更新方法的步驟
S402~S418...依照本發明實施例說明之韌體更新方法中選擇使用韌體之方法的步驟
S502~S516...依照本發明實施例說明之更新確認程式的步驟
600...IP攝影機裝置
612...隨機存取記憶體模組
620...快閃記憶體模組
630...網路介面
632...感測器介面
640...韌體下載伺服器
650...用戶裝置
660...網際網路
圖1是根據本發明之實施例所提出之一種嵌入式電子裝置的系統架構圖。
圖2是一種嵌入式電子裝置開機程序的流程圖。
圖3是根據本發明之實施例所提出的一種嵌入式電子裝置韌體更新方法的流程圖。
圖4是根據本發明之實施例所提出的一種嵌入式電子裝置韌體更新方法中選擇使用韌體之方法的流程圖。
圖5是接續圖四之執行更新確認程式之方法的細部流程圖。
圖6是根據本發明之實施例所提出的一個IP攝影機使用環境的示意圖。
S402~S418...步驟
Claims (30)
- 一種韌體更新方法,適用於一電子裝置,其中該方法包括:執行一啟動程式(Boot Loader),進行初始化之設定;讀取一記憶體內之一設定區域(Configuration Area)的更新狀態;以及判斷該更新狀態,若為一預設(DEFAULT)狀態,則執行一預設韌體(Default Firmware)啟動系統,若非為預設(DEFAULT)狀態,則進行底下之判斷:判斷該更新狀態是否為一已更新(UPDATED)狀態,若該更新狀態為該已更新狀態,則將該設定區域(Configuration Area)設定為啟動(BOOTING)狀態,並執行一新韌體(New Firmware),若該更新狀態並非該已更新狀態,則進行底下之判斷:判斷該更新狀態是否為一執行新韌體(RUNNEW)狀態,若該更新狀態為該執行新韌體狀態,則執行該新韌體,並於啟動後執行一更新確認方法,若該更新狀態並非該執行新韌體狀態,則執行該預設韌體,其中該更新確認方法包括:讀取該記憶體內之設定區域的更新狀態;以及判斷該更新狀態是否為該啟動狀態,若該更新狀態並非該啟動狀態,則結束更新確認方法,若該更新狀態是該啟動狀態,則檢查是否符合再次下載該新韌體的條件,若符合該些再次下載該新韌體的條件,則發出一確認完成訊息,並將該更新狀態設定為該執行新韌體狀態。
- 如申請專利範圍第1項所述的韌體更新方法,其中該些再次下載該新韌體的條件包括建立該電子裝置與一主機之連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第2項所述的韌體更新方法,其中該些再次下載該新韌體的條件,用以檢查該電子裝置的系統週邊裝置、該記憶體之運作、該記憶體空間大小其中之一或其組合。
- 如申請專利範圍第1項所述的韌體更新方法,其中該方法還包括建立該電子裝置經由一網際網路(Internet)與一主機建連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第1項所述的韌體更新方法,其中該方法還包括建立該電子裝置經由一撥接網路與一主機建連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第1項所述的韌體更新方法,其中該方法還包括該電子裝置經由一區域網路介面與一主機建立連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第1項所述的韌體更新方法,其中該方法還包括該電子裝置經由一無線網路介面與一主機建立連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第1項所述的韌體更新方法,其中該記憶體為該電子裝置內的多個唯讀記憶體(Read Only Memory)其中之一。
- 如申請專利範圍第1項所述的韌體更新方法,其中該唯讀記憶體為快閃唯讀記憶體。
- 一種韌體更新方法,適用於一電子裝置,其方法包括:執行一啟動程式(Boot Loader),進行初始化之設定;確認該電子裝置內的一記憶體的一設定區域(Configuration Area)之一更新狀態是否進入一已更新狀態(UPDATED),若該記憶體的該設定區域之更新狀態是進入該已更新狀態,則將該更新狀態設定為一啟動狀態(BOOTING),並執行一新韌體(New Firmware);以及執行一更新確認方法,若該更新確認方法得到一確認更新完成訊息,則將該更新狀態設定為該執行新韌體狀態,並讓該電子裝置使用新韌體,若該更新確認方法未得到該確認更新完成訊息,則執行一預設韌體(Default Firmware),其中該更新確認方法包括判斷該更新狀態是否為該啟動狀態,若該更新狀態並非該啟動狀態,則結束更新確認方法,若該更新狀態是該啟動狀態,則檢查是否符合再次下載該新韌體的條件,若符合該再次下載該新韌體的條件,則發出該確認完成訊息,並將該更新狀態設定為該執行新韌體狀態。
- 如申請專利範圍第10項所述的韌體更新方法,其中該些再次下載該新韌體的條件,用以建立該電子裝置與一主機之連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第11項所述的韌體更新方法,其中該些再次下載該新韌體的條件還包括檢查該電子裝置的系統週邊裝置、一唯讀記憶體之運作、該記憶體空間大小其中之一或其組合。
- 如申請專利範圍第10項所述的韌體更新方法,其中該方法還包括建立該電子裝置經由一網際網路(Internet)與一主機建立連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第10項所述的韌體更新方法,其中該方法還包括該電子裝置經由一通用串列匯流排(USB)介面下載該新韌體。
- 如申請專利範圍第10項所述的韌體更新方法,其中該方法還包括該電子裝置經由一儲存裝置介面下載該新韌體。
- 如申請專利範圍第10項所述的韌體更新方法,其中該方法還包括該電子裝置經由一區域網路介面與一主機建立連線路徑,並由該主機下載該新韌體。
- 如申請專利範圍第10項所述的韌體更新方法,其中該方法還包括該電子裝置經由一無線網路介面與一主機建立連線路徑,並由該主機下載該新韌體。
- 一種電子裝置,用以執行如申請專利範圍第10項所述之韌體更新方法,其中該裝置包括:一處理器(Processor);一隨機存取記憶體(RAM);以及一唯讀記憶體(ROM),該記憶體具有四個區域,其中該四個區域包括:一第一區域,用以儲存一啟動程式(Boot Loader);一第二區域,用以儲存設定參數;一第三區域,用以儲存預設韌體(Default Firmware);以及一第四區域,用以儲存一新韌體(New Firmware);以及一輸入輸出介面,其中該輸出輸入介面包括一網路介面(Network Interface)。
- 如申請專利範圍第18項所述的電子裝置,其中該啟動程式對該電子裝置進行初始化之設定,並執行下述之步驟: 確認該電子裝置內的該記憶體的該第二區域之一更新狀態是否進入一已更新狀態(UPDATED),若該記憶體的該第二區域之更新狀態是進入該已更新狀態,則將該更新狀態設定為一啟動狀態(BOOTING),並執行該新韌體;以及執行一更新確認方法,若該更新確認方法得到一確認更新完成訊息,則將該更新狀態設定為該執行新韌體狀態,並讓該電子裝置使用新韌體,若該更新確認方法未得到該確認更新完成訊息,則執行該預設韌體。
- 如申請專利範圍第18項所述的電子裝置,其中該更新確認方法包括判斷該更新狀態是否為啟動狀態,若該更新狀態並非該啟動狀態,則結束更新確認方法,若該更新狀態是該啟動狀態,則檢查是否符合再次下載該新韌體的條件,若符合該再次下載該新韌體的條件,則發出該確認完成訊息,並將該更新狀態設定為該執行新韌體狀態。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,用以建立該電子裝置與一主機之連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件還包括檢查該電子裝置的該輸入輸出介面、該隨機存取記憶體之運作、該記憶體之運作、記憶體空間大小其中之一或其組合。
- 如申請專利範圍第18項所述的電子裝置,其中該裝置的該輸入輸出介面還包括: 一通用串列匯流排(USB)介面;以及一外接式大容量儲存裝置介面。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一網際網路與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一撥接網路與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一區域網路與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一無線網路與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一城域網路(Metropolitan Area Network)與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一廣域網路(Wide Area Network)與一主機建立連線路徑,以達成再次下載該新韌體的能力。
- 如申請專利範圍第18項所述的電子裝置,其中該些再次下載該新韌體的條件,包括該電子裝置經由一光纖網路(Optical Fiber Network)與一主機建立連線路徑,以達成再次下載該新韌體的能力。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098103499A TWI386847B (zh) | 2009-02-04 | 2009-02-04 | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 |
| US12/468,068 US8161277B2 (en) | 2009-02-04 | 2009-05-19 | Method of safe and recoverable firmware update and device using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098103499A TWI386847B (zh) | 2009-02-04 | 2009-02-04 | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201030605A TW201030605A (en) | 2010-08-16 |
| TWI386847B true TWI386847B (zh) | 2013-02-21 |
Family
ID=42398663
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW098103499A TWI386847B (zh) | 2009-02-04 | 2009-02-04 | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8161277B2 (zh) |
| TW (1) | TWI386847B (zh) |
Families Citing this family (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010183428A (ja) * | 2009-02-06 | 2010-08-19 | Nec Corp | 撮像装置および撮像方法ならびにプログラム |
| US10177934B1 (en) | 2009-09-04 | 2019-01-08 | Amazon Technologies, Inc. | Firmware updates inaccessible to guests |
| US8887144B1 (en) * | 2009-09-04 | 2014-11-11 | Amazon Technologies, Inc. | Firmware updates during limited time period |
| US9565207B1 (en) | 2009-09-04 | 2017-02-07 | Amazon Technologies, Inc. | Firmware updates from an external channel |
| US8214653B1 (en) | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
| US8601170B1 (en) | 2009-09-08 | 2013-12-03 | Amazon Technologies, Inc. | Managing firmware update attempts |
| US8971538B1 (en) | 2009-09-08 | 2015-03-03 | Amazon Technologies, Inc. | Firmware validation from an external channel |
| US8959611B1 (en) | 2009-09-09 | 2015-02-17 | Amazon Technologies, Inc. | Secure packet management for bare metal access |
| US8300641B1 (en) | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
| US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
| JP5564956B2 (ja) * | 2010-01-15 | 2014-08-06 | 富士通株式会社 | 情報処理装置及び情報処理装置のファームウェア更新方法 |
| JP5392203B2 (ja) * | 2010-08-19 | 2014-01-22 | 株式会社リコー | 情報処理装置、情報処理システム、インストール支援方法、及びインストール支援プログラム |
| US9158525B1 (en) | 2010-10-04 | 2015-10-13 | Shoretel, Inc. | Image upgrade |
| CN102750155A (zh) * | 2011-04-19 | 2012-10-24 | 鸿富锦精密工业(深圳)有限公司 | 用于更新固件的控制板、固件更新系统及方法 |
| JP5486628B2 (ja) * | 2011-04-28 | 2014-05-07 | キヤノン株式会社 | 撮像装置 |
| CN102857358A (zh) * | 2011-06-29 | 2013-01-02 | 环旭电子股份有限公司 | 可修复固件的客户端设备及其固件修复方法 |
| TWI448966B (zh) * | 2011-07-04 | 2014-08-11 | Realtek Semiconductor Corp | 用於具有內建網路單元之嵌入式系統裝置的網路單元置換方法以及嵌入式系統裝置 |
| US8281119B1 (en) * | 2011-11-22 | 2012-10-02 | Google Inc. | Separate normal firmware and developer firmware |
| US9880862B2 (en) | 2012-03-31 | 2018-01-30 | Intel Corporation | Method and system for verifying proper operation of a computing device after a system change |
| TWI465928B (zh) * | 2012-04-13 | 2014-12-21 | Acer Inc | 通用串列匯流排(usb)網路儲存裝置、系統與方法 |
| CN103577214B (zh) * | 2012-08-09 | 2017-03-29 | 罗森伯格(上海)通信技术有限公司 | 应用程序更新方法和装置 |
| US9678732B2 (en) * | 2012-09-14 | 2017-06-13 | Intel Corporation | Firmware agent |
| JP6134390B2 (ja) | 2013-01-15 | 2017-05-24 | ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP | 動的ファームウェア更新 |
| CN103106089B (zh) * | 2013-01-25 | 2016-03-02 | 大唐移动通信设备有限公司 | 一种智能平台管理控制器的升级方法和系统 |
| KR20140099757A (ko) * | 2013-02-04 | 2014-08-13 | 삼성전자주식회사 | 전자장치 및 전자장치의 펌웨어 업그레이드 방법 |
| CN103106095A (zh) * | 2013-03-11 | 2013-05-15 | 深圳华用科技有限公司 | 一种工业照相机远程升级的方法及照相机 |
| US20140282478A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Tcp server bootloader |
| KR101427755B1 (ko) * | 2013-04-26 | 2014-08-07 | 주식회사 코아로직 | Usb를 이용한 펌웨어 업그레이드 장치 및 방법 |
| CN103309709B (zh) * | 2013-06-08 | 2018-10-09 | 华为终端有限公司 | 一种固件升级方法、装置及通信设备 |
| JP5864510B2 (ja) * | 2013-10-18 | 2016-02-17 | 富士通株式会社 | 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置 |
| US10209999B2 (en) * | 2013-12-13 | 2019-02-19 | Razer (Asia-Pacific) Pte. Ltd. | Devices, updaters, methods for controlling a device, and methods for controlling an updater |
| CN103713929B (zh) * | 2013-12-31 | 2018-11-13 | 南京新奕天科技有限公司 | 基于片上Flash嵌入式系统的远程更新方法 |
| JP6256063B2 (ja) * | 2014-02-05 | 2018-01-10 | 富士通株式会社 | 情報処理システム及びプログラム管理方法 |
| US9594910B2 (en) * | 2014-03-28 | 2017-03-14 | Intel Corporation | In-system provisioning of firmware for a hardware platform |
| JP6482211B2 (ja) * | 2014-09-03 | 2019-03-13 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
| JP6147240B2 (ja) * | 2014-12-05 | 2017-06-14 | キヤノン株式会社 | 情報処理装置、該装置の制御方法、並びにプログラム |
| CN104572178B (zh) * | 2014-12-19 | 2018-05-08 | 南昌市科陆智能电网科技有限公司 | 电能表嵌入式软件远程差异化升级方法及升级系统 |
| US9836417B2 (en) * | 2015-04-20 | 2017-12-05 | Western Digital Technologies, Inc. | Bridge configuration in computing devices |
| CN105242939A (zh) * | 2015-09-11 | 2016-01-13 | 三星半导体(中国)研究开发有限公司 | 将固件烧写到主板的连接器和利用连接器烧写固件的方法 |
| JP6912163B2 (ja) * | 2016-03-17 | 2021-07-28 | 日本電気株式会社 | ファームウェア起動装置、ファームウェア起動方法、およびファームウェア起動プログラム |
| CN106168906A (zh) * | 2016-06-23 | 2016-11-30 | 广州信位通讯科技有限公司 | 一种网络摄像机的固件升级方法 |
| TWI602056B (zh) * | 2016-09-30 | 2017-10-11 | 強弦科技股份有限公司 | 韌體碼檢查系統及其檢查方法 |
| US10871963B2 (en) * | 2016-10-17 | 2020-12-22 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Adjustment of voltage regulator firmware settings based upon external factors |
| US11182143B2 (en) | 2016-10-18 | 2021-11-23 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Adjustment of voltage regulator firmware settings based upon an efficiency score |
| US10423594B2 (en) * | 2016-11-28 | 2019-09-24 | Atlassian Pty Ltd | Systems and methods for indexing source code in a search engine |
| US10671358B2 (en) | 2016-11-28 | 2020-06-02 | Atlassian Pty Ltd | Systems and methods for indexing source code in a search engine |
| US11023224B2 (en) * | 2019-10-01 | 2021-06-01 | Chen-Source Inc. | Firmware update method for smart charging device |
| WO2021150219A1 (en) * | 2020-01-22 | 2021-07-29 | Hewlett-Packard Development Company, L.P. | Customized thermal and power policies in computers |
| CN113495743A (zh) * | 2020-03-19 | 2021-10-12 | 瑞昱半导体股份有限公司 | 储存电路以及运作方法 |
| US20240129184A1 (en) * | 2021-02-09 | 2024-04-18 | Nippon Telegraph And Telephone Corporation | Setting changing apparatus, setting changing method and program |
| US11409607B1 (en) * | 2021-07-13 | 2022-08-09 | Hewlett-Packard Development Company, L.P. | Basic input output system updates |
| US12079619B2 (en) | 2022-07-27 | 2024-09-03 | T-Mobile Usa, Inc. | Firmware-over-the-air (FOTA) update for wireless devices in an internet of things (IoT) network |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6584559B1 (en) * | 2000-01-28 | 2003-06-24 | Avaya Technology Corp. | Firmware download scheme for high-availability systems |
| TW548954B (en) * | 2001-02-20 | 2003-08-21 | Sharp Kk | Efficient method of computing gamma correction tables |
| US7080246B2 (en) * | 2002-12-09 | 2006-07-18 | Intel Corporation | Firmware override handling system with default selection of a platform specific group or a customized group of hardware settings |
| TWI272534B (en) * | 2003-12-31 | 2007-02-01 | Asustek Comp Inc | Firmware update processing method and application program |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5960445A (en) * | 1996-04-24 | 1999-09-28 | Sony Corporation | Information processor, method of updating a program and information processing system |
| US7337309B2 (en) * | 2003-03-24 | 2008-02-26 | Intel Corporation | Secure online BIOS update schemes |
| GB2409328A (en) * | 2003-12-20 | 2005-06-22 | Hewlett Packard Development Co | Boot indicator for sequential access storage device |
-
2009
- 2009-02-04 TW TW098103499A patent/TWI386847B/zh active
- 2009-05-19 US US12/468,068 patent/US8161277B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6584559B1 (en) * | 2000-01-28 | 2003-06-24 | Avaya Technology Corp. | Firmware download scheme for high-availability systems |
| TW548954B (en) * | 2001-02-20 | 2003-08-21 | Sharp Kk | Efficient method of computing gamma correction tables |
| US7080246B2 (en) * | 2002-12-09 | 2006-07-18 | Intel Corporation | Firmware override handling system with default selection of a platform specific group or a customized group of hardware settings |
| TWI272534B (en) * | 2003-12-31 | 2007-02-01 | Asustek Comp Inc | Firmware update processing method and application program |
Also Published As
| Publication number | Publication date |
|---|---|
| US20100199078A1 (en) | 2010-08-05 |
| US8161277B2 (en) | 2012-04-17 |
| TW201030605A (en) | 2010-08-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI386847B (zh) | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 | |
| CN104025047B (zh) | 信息处理装置、信息处理方法以及计算机程序 | |
| EP1433060B1 (en) | Crash recovery system | |
| JP5431111B2 (ja) | 情報処理装置及びシステム設定方法 | |
| KR100952585B1 (ko) | 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법 | |
| TWI786871B (zh) | 電腦和系統啓動方法 | |
| US12468527B2 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
| CN102214106B (zh) | 嵌入式设备双系统自动引导方法 | |
| US20070174689A1 (en) | Computer platform embedded operating system backup switching handling method and system | |
| TWI777664B (zh) | 嵌入式系統的開機方法 | |
| JP2001331327A (ja) | 電子機器 | |
| CN113138791B (zh) | 基于嵌入式系统的升级处理方法、装置及电子设备 | |
| CN101807149B (zh) | 可安全复原的固件更新方法及其嵌入式电子装置 | |
| JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
| CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
| JP2012174061A (ja) | 情報処理装置、情報処理方法、スキャナ装置、スキャナ装置の制御方法 | |
| US20230132214A1 (en) | Information processing apparatus and method of the same | |
| JP2011053780A (ja) | 復旧システム、復旧方法及びバックアップ制御システム | |
| TW201617861A (zh) | 韌體更新方法及其電子裝置 | |
| CN113452550A (zh) | 资讯撷取装置、嵌入式系统装置的固件更新方法及系统 | |
| JP5992029B2 (ja) | 基本入出力システムプログラムコードの書き込み回路及び書き込み方法 | |
| JP2011085977A (ja) | 信号処理装置 | |
| CN118113319A (zh) | 设备运行控制方法和装置、存储介质及电子装置 | |
| JP2002229798A (ja) | コンピュータシステムとそのバイオス管理方法、及びバイオス管理プログラム | |
| JP6911591B2 (ja) | 情報処理装置、制御装置および情報処理装置の制御方法 |