專利名稱:嵌入式電子裝置及更新其固件的方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種更新固件方法,且特別是有關(guān)于一種更新嵌入式電子裝置的更 新固件的方法。
背景技術(shù):
隨著科技的進步,目前嵌入式電子裝置(embedded electronic device)的更新方 法亦越來越多樣化。例如,利用無線更新固件(Firmware Over-the-Air, F0TA)技術(shù)來更 新嵌入式電子裝置的固件(firmware)?;蛘撸嗫赏ㄟ^通用串行總線(Universal Serial Bus, USB)連線來執(zhí)行固件更新。一般而言,固件會存放于與非門與非門快閃記憶體(NAND flash)之中。當(dāng)要更新 固件時,使用者需先下載新版本固件,并執(zhí)行固件更新程序。在固件更新程序檢查新版本固 件無誤之后,便開始將新版本固件直接燒錄至與非門與非門快閃記憶體,以覆蓋舊版本固 件。在更新完成后,重新啟動系統(tǒng),以讓新版本固件開始運作。然而,在更新固件的過程中,可能會發(fā)生系統(tǒng)當(dāng)機(crash)、電力中斷、或固件更新 程序出錯等問題。當(dāng)這些問題其中之一發(fā)生時,便會因為新版本固件尚未完整寫入與非門 與非門快閃記憶體,而無法正常地啟動新版本固件。相對地,舊版本固件也會因為部分被新 版本固件覆蓋,也無法啟動。如此一來,嵌入式電子裝置將會因為沒有完整的固件,而無法 正常運作。
發(fā)明內(nèi)容
本發(fā)明提供一種更新固件方法,能夠避免因更新中斷所造成系統(tǒng)毀損的問題。本發(fā)明提供一種嵌入式電子裝置,可于斷電而重新開機之后,在原寫入進度的基 礎(chǔ)上繼續(xù)寫入前次未更新的固件碼。本發(fā)明提出一種更新固件方法,適于嵌入式電子裝置。上述嵌入式電子裝置包括 第一儲存單元及第二儲存單元,而第二儲存單元具有設(shè)定檔分區(qū)、資料分區(qū)以及系統(tǒng)分區(qū), 且系統(tǒng)分區(qū)至少儲存有嵌入式電子裝置的固件。本方法包括下列步驟。下載固件套件至第 一儲存單元,其中固件套件包括安裝資訊檔案以及多個固件碼檔案。接著,將安裝資訊檔案 與這些固件碼檔案分別寫入至設(shè)定檔分區(qū)與資料分區(qū)。之后,重新啟動嵌入式電子裝置,并 執(zhí)行系統(tǒng)分區(qū)中的啟動程序以執(zhí)行固件寫入操作。固件寫入操作包括依據(jù)設(shè)定檔分區(qū)中 的安裝資訊檔案,依序自資料分區(qū)讀取各固件碼檔案,以寫入至系統(tǒng)分區(qū);并且,在每次各 固件碼檔案寫入完成時,更新設(shè)定檔分區(qū)中的寫入進度,以在斷電重新啟動嵌入式電子裝 置之后,由啟動程序依據(jù)寫入進度繼續(xù)將余下的固件碼檔案寫入至系統(tǒng)分區(qū)。在本發(fā)明的一實施例中,上述執(zhí)行固件寫入操作的步驟還包括分別判斷各固件 碼檔案的檔案大小是否超過預(yù)定大小。若檔案大小超過預(yù)定大小,則在每次寫入預(yù)定大小 之后,即更新寫入進度,并在整個固件碼檔案寫入完成時,更新寫入進度。相反地,若檔案大 小未超過預(yù)定大小,則在每次各固件碼檔案寫入完成時,更新寫入進度。
6
在本發(fā)明的一實施例中,在上述下載固件套件至第一儲存單元的步驟之后,檢查 第一儲存單元的剩余容量是否滿足資料分區(qū)中的本機資料。若第一儲存單元的剩余容量滿 足本機資料,則將資料分區(qū)中的本機資料備份至第一儲存單元,之后,自資料分區(qū)抹除本機 資料。在本發(fā)明的一實施例中,在上述執(zhí)行啟動程序的步驟之后,判斷設(shè)定檔分區(qū)中的 安裝資訊檔案是否符合更新條件。若符合更新條件,則透過啟動程序執(zhí)行固件寫入操作。若 不符合更新條件,則檢查寫入進度,以判斷這些固件碼檔案是否已全部寫入至系統(tǒng)分區(qū)中。 當(dāng)判定這些固件碼檔案已全部寫入至系統(tǒng)分區(qū)時,格式化資料分區(qū),并在將備份于第一儲 存裝置的本機資料恢復(fù)至資料分區(qū)之后,刪除設(shè)定檔分區(qū)的安裝資訊檔案。相反地,當(dāng)設(shè)定 檔分區(qū)中的安裝資訊檔案不符合更新條件,且判定這些固件碼檔案尚未全部寫入至系統(tǒng)分 區(qū)時,則關(guān)機,或者進入下載模式以重新下載固件套件。在本發(fā)明的一實施例中,上述固件寫入操作的步驟還包括解密并初始化系統(tǒng)分區(qū) 中的分區(qū)表。在本發(fā)明的一實施例中,上述將安裝資訊檔案與固件碼檔案分別寫入至設(shè)定檔分 區(qū)與資料分區(qū)的步驟,其是在以二進制方式記錄安裝資訊檔案至設(shè)定檔分區(qū)之后,解析固 件套件的標(biāo)頭訊息,進而依據(jù)標(biāo)頭訊息,利用二進制方式將固件碼檔案寫入至資料分區(qū),而 將固件碼檔案轉(zhuǎn)換為鏡像資料。在本發(fā)明的一實施例中,在上述下載固件套件至第一儲存單元的步驟之后,還可 驗證固件套件的循環(huán)冗余檢查(Cycle Redundancy Check, CRC)碼。在本發(fā)明的一實施例中,上述第一儲存單元例如是微安全數(shù)位(Micro SD, SD = Secure Digital)卡,上述第二儲存單元例如是與非門快閃記憶體(NANDflash)。在本發(fā)明的一實施例中,上述資料分區(qū)為快閃轉(zhuǎn)譯層(Flash TranslationLayer, FTL)分區(qū),上述設(shè)定檔分區(qū)為無線更新固件(Firmware Over-the-Air, F0TA)分區(qū)。在本發(fā)明的一實施例中,上述啟動程序例如為原來設(shè)備制造商二級啟動程序 (Original Equipment Manufacturer Secondary Boot Loader, 0EMSBL)。在本發(fā)明的一實施例中,上述系統(tǒng)分區(qū)用以儲存分區(qū)表、0EMSBL、高等移動用戶 軟件(Advanced Mobile Subscriber Software, AMSS)以及 QC 二級啟動程序(Qualcomm Secondary Boot Loader)。本發(fā)明還提出一種嵌入式電子裝置,包括第一儲存單元、第二儲存單元以及處理 單元。第一儲存單元用以儲存所載入的固件套件,其中固件套件包括安裝資訊檔案以及多 個固件碼檔案。第二儲存單元具有設(shè)定檔分區(qū)、資料分區(qū)以及系統(tǒng)分區(qū),系統(tǒng)分區(qū)至少儲存 嵌入式電子裝置的固件。處理單元耦接第一儲存單元與第二儲存單元,處理單元用以下載 固件套件至第一儲存單元,并且自第一儲存單元取出安裝資訊檔案與固件碼檔案,以分別 寫入至設(shè)定檔分區(qū)與資料分區(qū);之后,重新開機,并執(zhí)行系統(tǒng)分區(qū)中的啟動程序以執(zhí)行固件 寫入操作。上述固件寫入操作包括依據(jù)設(shè)定檔分區(qū)中的安裝資訊檔案,依序自資料分區(qū)讀 取固件碼檔案,以寫入至系統(tǒng)分區(qū),并在每次各固件碼檔案寫入完成時,更新設(shè)定檔分區(qū)中 的寫入進度,以在斷電重新啟動嵌入式電子裝置之后,由啟動程序依據(jù)寫入進度繼續(xù)將余 下的固件碼檔案寫入至系統(tǒng)分區(qū)?;谏鲜觯景l(fā)明是針對當(dāng)前固件套件更新過程中的中止問題,也就是當(dāng)更新過程中發(fā)生斷電或其他意外而重新開機時,能夠在前次寫入進度的基礎(chǔ)上繼續(xù)更新余下的固 件碼檔案,增加更新固件的成功率。換言之,在固件寫入過程中記錄固件的寫入進度,從而 保證在寫入過程的任何階段中,即便嵌入式電子裝置重啟,亦能夠繼續(xù)更新。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳 細(xì)說明如下。
圖1是依照本發(fā)明一實施例所繪示的更新固件方法的流程圖。圖2是依照本發(fā)明一實施例所繪示的寫入安裝資訊檔案與固件碼檔案的方法流 程圖。圖3是依照本發(fā)明一實施例所繪示的固件寫入操作的方法流程圖。圖4是依照本發(fā)明一實施例所繪示的嵌入式電子裝置的方塊圖。圖5是依照本發(fā)明一實施例所繪示的第二儲存單元的示意圖。圖6是依照本發(fā)明一實施例所繪示的NAND快閃記憶體的示意圖。主要元件符號說明400:嵌入式電子裝置410 處理單元420 第一儲存單元430:第二儲存單元510,610 系統(tǒng)分區(qū)520 設(shè)定檔分區(qū)530 資料分區(qū)600:與非門快閃記憶體611 =MIBIB612 QCSBL613 OEMSBL614 =AMSS620 =FOTA 分區(qū)630:FTL 分區(qū)S105 S130 本發(fā)明一實施例更新固件方法各步驟S205 S220 本發(fā)明一實施例寫入安裝資訊檔案與固件碼檔案的方法各步驟S305 S360 依照本發(fā)明一實施例固件寫入操作的方法各步驟
具體實施例方式針對以與非門快閃記憶體(NAND flash)為載體的嵌入式電子裝置,在進行更新的 環(huán)節(jié)上都無法做到斷電之類的中斷安全保護,因而往往在固件更新過程發(fā)生斷電或者人為 中止都會帶來無法彌補的設(shè)備癱瘓。據(jù)此,本發(fā)明提出一種嵌入式電子裝置及更新其固件 的方法,以實現(xiàn)重新開機后在原寫入進度的基礎(chǔ)上繼續(xù)更新的方法,進而增加固件的更新 成功率。
圖1是依照本發(fā)明一實施例所繪示的更新固件方法的流程圖。本實施例是以嵌 入式電子裝置為對象來進行固件的更新,嵌入式電子裝置包括第一儲存單元與第二儲存單 元,而上述第二儲存單元具有設(shè)定檔分區(qū)、資料分區(qū)以及系統(tǒng)分區(qū)。請參照圖1,首先,在步驟S105中,下載固件套件至第一儲存單元,其中固件套件 包括安裝資訊檔案(Setup Information file)以及多個固件碼檔案。在此,安裝資訊檔案 例如為INF檔案,其用以記錄各個固件碼檔案所欲對應(yīng)寫入的區(qū)段(section)位址等資訊, 藉以進行固件碼檔案的寫入。進一步地說,無線下載固件套件例如是透過使用者介面(User Interface, UI)來 完成。另外,在下載固件套件至第一儲存單元之后,還可透過使用者介面來驗證固件套件的 循環(huán)冗余檢查(Cycle Redundancy Check, CRC)碼,以確認(rèn)固件套件的完整。再者,倘若使 用者介面在下載固件套件之前檢測到第一儲存單元中已經(jīng)存在固件套件時,便會停止無線 下載請求,而進入下一個步驟。在本實施例中,第一儲存單元例如為可插拔TF(TransFlash)卡(即,微安全數(shù)位 (Micro SD)卡),其支持無線(0ver-the-Air,0TA)交換資料;而第二儲存單元例如NAND快 閃記憶體,以做為嵌入式電子裝置的載體。然,在此僅為舉例說明,并不以此為限。接著,在步驟SllO中,將安裝資訊檔案與固件碼檔案分別寫入至設(shè)定檔分區(qū)與資 料分區(qū)。詳細(xì)地說,在將第一儲存單元中的固件套件解析至第二儲存單元時,安裝資訊檔案 會以二進制方式記錄至設(shè)定檔分區(qū)。此時,將提示開始更新固件套件。之后,開始解析固件 套件的標(biāo)頭訊息,以依據(jù)標(biāo)頭訊息,把固件套件中的固件碼檔案擷取出來并寫入第二儲存 單元的資料區(qū)塊,而轉(zhuǎn)換為鏡像資料。也就是說,先將安裝資訊檔案與固件碼檔案轉(zhuǎn)換為可直接讀取的鏡像資料,而儲 存至第二儲存單元中,使得不支持檔案系統(tǒng)(file system)的啟動程序(bootloader)亦能 夠直接自第二儲存單元來讀取固件碼檔案。之后,在步驟S115中,重新啟動嵌入式電子裝置,并在重啟之后,執(zhí)行系統(tǒng)分區(qū)中 的啟動程序。然后,如步驟S120所示,透過啟動程序來執(zhí)行固件寫入操作。在此,固件寫入 操作包括步驟S125與步驟S130。在步驟S125中,依據(jù)設(shè)定檔分區(qū)中的安裝資訊檔案,依序自資料分區(qū)讀取各個固 件碼檔案,而將各個固件碼檔案寫入至系統(tǒng)分區(qū)。并在每次固件碼檔案寫入完成時,如步驟 S130所示,更新設(shè)定檔分區(qū)中的寫入進度。據(jù)此,在斷電重新啟動嵌入式電子裝置之后,啟 動程序可依據(jù)寫入進度繼續(xù)將余下的固件碼檔案寫入至系統(tǒng)分區(qū)。值得注意的是,在將固件碼檔案寫入系統(tǒng)分區(qū)之前,可先判斷欲寫入的一個固件 碼檔案的檔案大小是否超過預(yù)定大小(例如5MB)。若檔案大小超過5MB,則在每次寫入5MB 的固件碼檔案之后,即更新寫入進度。并且,在整個固件碼檔案寫入完成時,亦會再次更新 寫入進度。相反地,若檔案大小未超過5MB,則在每次固件碼檔案寫入完成時,再更新寫入進 度即可。例如,若固件碼檔案為8MB時,在寫入至5MB時即會記錄寫入進度,而在8MB全部 寫入完成時會再次記錄寫入進度。圖2是依照本發(fā)明一實施例所繪示的寫入安裝資訊檔案與固件碼檔案的方法流 程圖。請參照圖2,在下載固件檔案至第一儲存單元的步驟S105之后,寫入安裝資訊檔案與 固件碼檔案至第二儲存單元將詳述如下。在步驟S205中,檢查第一儲存單元的剩余容量是否滿足資料分區(qū)中的本機資料,也就是檢查第一儲存單元的剩余容量是否足夠儲存本機資 料。若第一儲存單元的剩余容量滿足本機資料時,如步驟S210所示,將資料分區(qū)中的本機 資料備份至第一儲存單元。之后,在步驟S215中,將資料分區(qū)的本機資料抹除。然后,如步 驟S220所示,將安裝資訊檔案與固件碼檔案分別寫入至設(shè)定檔分區(qū)及資料分區(qū),其詳細(xì)過 程如上述圖1的步驟SllO所述,在此不再詳述。相反地,若第一儲存單元的剩余容量不滿足本機資料時,如步驟S225所示,提示 固件套件備份失敗,并退出更新程序。圖3是依照本發(fā)明一實施例所繪示的固件寫入操作的方法流程圖。請參照圖3,在 執(zhí)行啟動程序的步驟S115之后,固件寫入操作的步驟將詳述如下。在步驟S305中,啟動程 序自設(shè)定檔分區(qū)讀取安裝資訊檔案,以如步驟S310所示,判斷安裝資訊檔案是否符合更新 條件,例如固件套件的版本是否為最新版。接著,在步驟S315中,啟動程序?qū)⒎謪^(qū)表解密并 初始化,而依據(jù)分區(qū)表來進行后續(xù)寫入動作。之后,在步驟S320中,啟動程序依據(jù)安裝資訊 檔以及寫入進度,自資料分區(qū)中依序讀取對應(yīng)的固件碼檔案以寫入至系統(tǒng)分區(qū),并在寫入 完成之后,更新寫入進度。在此,寫入進度是安裝資訊檔中其中一個欄位,而在其他實施例 中,寫入進度亦可為資料分區(qū)中不同于安裝資料檔的另一個檔案。在完成固件的更新之后,如步驟S330所示,重新啟動嵌入式電子裝置,而重復(fù)執(zhí) 行步驟S115。同樣地,如步驟S305、S310所示,啟動程序自設(shè)定檔分區(qū)中讀取安裝資訊檔 案并判斷其是否符合更新條件。倘若判定安裝資訊檔案并判斷其并不符合更新條件(例如 固件套件的版本并非為最新版),則如步驟S335所示,進一步判斷固件碼檔案是否已全部 寫入至系統(tǒng)分區(qū)中。若是,則表示固件碼檔案已全數(shù)更新完畢,據(jù)此,如步驟S340所示,藉 由啟動程序?qū)①Y料分區(qū)格式化,以抹除資料分區(qū)中的固件碼檔案。接著,在步驟S345中,啟 動程序?qū)浞萦诘谝粌Υ嫜b置的本機資料恢復(fù)至資料分區(qū)中。之后,如步驟S350所示,啟 動程序刪除設(shè)定檔分區(qū)的安裝資訊檔案。最后,如步驟S355所示,重新啟動嵌入式電子裝 置,并正常開機。另一方面,倘若設(shè)定檔分區(qū)中的安裝資訊檔案不符合更新條件,且固件碼檔案亦 尚未全部寫入至系統(tǒng)分區(qū)時,表示固件套件為不合法狀態(tài)或是固件套件下載不完全,因此 如步驟S360所示,關(guān)機,或者進入下載模式以重新下載固件套件。以下再舉一實施例來說明使用上述方法的嵌入式電子裝置。圖4是依照本發(fā)明一 實施例所繪示的嵌入式電子裝置的方塊圖。請參照圖4,嵌入式電子裝置400包括處理單元 410、第一儲存單元420以及第二儲存單元。其中,處理單元410耦接至儲存所載入固件套 件的第一儲存單元420以及做為載體的第二儲存單元430。上述第二儲存單元430具有設(shè)定檔分區(qū)、資料分區(qū)以及系統(tǒng)分區(qū)。舉例來說,圖5 是依照本發(fā)明一實施例所繪示的第二儲存單元430的示意圖。請參照圖5,第二儲存單元 430包括系統(tǒng)分區(qū)510、設(shè)定檔分區(qū)520以及資料分區(qū)530。其中,系統(tǒng)分區(qū)510中至少儲存 有嵌入式電子裝置的固件,而設(shè)定檔分區(qū)520用來儲存例如安裝資訊檔案(例如fw. inf) 等設(shè)定檔,資料分區(qū)530則是用來儲存本機資料。另外,處理單元410用以將固件套件下載至第一儲存單元420,之后,再自第一儲 存單元420取出安裝資訊檔案與固件碼檔案,以分別寫入至設(shè)定檔分區(qū)520與資料分區(qū) 530 ;之后,重新開機,并執(zhí)行系統(tǒng)分區(qū)510中的啟動程序,例如原來設(shè)備制造商二級啟動程
10Ιψ (Original Equipment Manufacturer Secondary BootLoader, OEMSBL),以^Ι^ Ι Κ牛寫 入操作。在此,固件寫入操作的方法已于上述步驟S120、S305 S360中詳細(xì)說明,故在此 不再贅述。以下即以與非門(NAND)快閃記憶體為例來說明固件的更新程序。圖6是依照本 發(fā)明一實施例所繪示的NAND快閃記憶體的示意圖。請參照圖6,NAND快閃記憶體600至 少包括系統(tǒng)分區(qū)610、無線更新固件(Firmware Over-the-Air, F0TA)分區(qū)620與快閃轉(zhuǎn) 譯層(Flash Translation Layer, FTL)分區(qū)630。其中,系統(tǒng)分區(qū)610包括分區(qū)表(例如 MIBIB)611、QC 二級啟動程序(Qualcomm Secondary BootLoader, QCSBL)612、OEMSBL 613 以及高等移動用戶軟件(Advanced MobileSubscriber Software, AMSS)614。而上述 FOTA 分區(qū)620及FTL分區(qū)630的功能分別與上述設(shè)定檔分區(qū)520及資料分區(qū)530相同,在此省 略不提。在本實施例中,第一儲存單元例如為TF卡,固件套件的安裝資訊檔案例如為 fw. inf。另外,fw. inf包括用以記錄寫入進度的fW_StatuS,其至少包括準(zhǔn)備開始進行固 件更新(FW_READY_T0_UPDATE)的狀態(tài)以及做為代表各固件碼檔案(FW_IN_PARTI_INIT、 Fff_IN_QCSBL、Fff_IN_0EMSBL、Fff_IN_AMSS),藉以表示目前的寫入進度。以下即搭配上述圖1的步驟S105 步驟S130來進一步描述。在如步驟S105所 示而將固件套件下載至TF卡時,fw. inf會在無線更新固件階段即生成于TF卡。之后,步驟 SllO的詳細(xì)描述如下解析TF卡中的固件套件至NAND快閃記憶體600中時,fw. inf是以 二進式的形式記錄于FOTA分區(qū)620的起始位置,其占用1個區(qū)塊(block),為32頁(page) 共16KB。此時,將會提示有新版本的固件套件欲進行更新。之后,再將固件套件的標(biāo)頭訊息 共256位元組連綴到TF卡中的fw. inf檔,以按照標(biāo)頭訊息,將固件套件中固件碼檔案擷取 出來并寫入至NAND快閃記憶體600 (從FTL分區(qū)630的第一個區(qū)塊開始寫入)。當(dāng)TF卡中的固件碼檔案全部寫入至FTL分區(qū)630之后,再對FTL分區(qū)630中的固 件碼檔案進行CRC校驗。校驗成功,則將FOTA分區(qū)620中的fw. inf中的fw_StatuS更新 為FW_READY_T0_UPDATE。上述fw. inf將寫入FOTA分區(qū)620 (壞塊順延),并且會另外對 fw. inf做一個備份寫在FOTA分區(qū)620的下一個區(qū)塊(壞塊順延)。值得注意的是,接下來如步驟S120所示的固件寫入操作是在OEMSBL 613下實現(xiàn)。 藉由OEMSBL 613來搜尋FOTA分區(qū)620,而得到fw_inf的資料結(jié)構(gòu),接著判斷fw_inf的fw_ status是否為FW_READY_T0_UPDATE,以確認(rèn)FTL分區(qū)630中固件碼檔案以及fw_inf標(biāo)頭 訊息均正常。相反地,倘若固件套件的寫入狀態(tài)fw_status并非為FW_READY_T0_UPDATE,則 確定目前的寫入進度,以繼續(xù)更新操作。而每當(dāng)更新完成一個固件碼檔案時,便會更新寫入進度fW_StatUS。例如,其中一 個固件碼檔案AMSS寫入完成之后,fW_StatuS即會更新為FW_IN_AMSS。然在此僅為舉例說 明,并不以此限制其范圍。另外,值得一提的是,對于較大的固件碼檔案(例如大于5MB),除了更新寫入進 度fw_status之外,另外更可以5MB為單位記錄至另一個例如為fw_process (其亦位于 fw. inf中)的欄位中,直到更新結(jié)束。如在更新過程中糟遇中途斷電,則在重新啟動后,參 照fw. inf中的fw_status以及fw_process便能夠繼續(xù)后續(xù)的更新。綜上所述,本發(fā)明是在檔案系統(tǒng)支持下獲得固件套件,并先將固件套件先轉(zhuǎn)換為可直接讀取的鏡像資料,以便使得不支持檔案系統(tǒng)的啟動程序能夠直接提取固件套件,進 而實現(xiàn)固件更新動作。并且在更新過程中記錄固件碼檔案的寫入進度,從而保證在寫入過 程的任何階段中,即便嵌入式電子裝置重啟,皆能夠繼續(xù)更新,而在前次寫入進度的基礎(chǔ)上 繼續(xù)更新余下的固件碼檔案,增加更新固件的成功率。 雖然本發(fā)明已以實施例揭示如上,然其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域 中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,故本發(fā)明 的保護范圍當(dāng)視后附的申請專利范圍所界定為準(zhǔn)。
權(quán)利要求
一種更新固件方法,適于一嵌入式電子裝置,其包括第一儲存單元及第二儲存單元,該第二儲存單元具有一設(shè)定檔分區(qū)、一資料分區(qū)以及一系統(tǒng)分區(qū),而該系統(tǒng)分區(qū)至少儲存該嵌入式電子裝置的一固件,該方法包括下載一固件套件至該第一儲存單元,其中該固件套件包括一安裝資訊檔案以及多個固件碼檔案;分別寫入該安裝資訊檔案與該些固件碼檔案至該設(shè)定檔分區(qū)與該資料分區(qū);以及重新啟動該嵌入式電子裝置,并執(zhí)行該系統(tǒng)分區(qū)中的一啟動程序以執(zhí)行一固件寫入操作,該固件寫入操作包括依據(jù)該設(shè)定檔分區(qū)中的安裝資訊檔案,依序自該資料分區(qū)讀取該些固件碼檔案,而將該些固件碼檔案寫入至該系統(tǒng)分區(qū);以及在每次各該些固件碼檔案寫入完成時,更新該設(shè)定檔分區(qū)中的一寫入進度,以在斷電重新啟動該嵌入式電子裝置之后,由該啟動程序依據(jù)該寫入進度繼續(xù)將余下的固件碼檔案寫入至該系統(tǒng)分區(qū)。
2.如權(quán)利要求1所述的更新固件方法,其特征在于,執(zhí)行該固件寫入操作的步驟還包括分別判斷該些固件碼檔案各自的檔案大小是否超過一預(yù)定大??; 若該檔案大小超過該預(yù)定大小,則在每次寫入該預(yù)定大小之后,即更新該寫入進度,并 在整個固件碼檔案寫入完成時,更新該寫入進度;以及若該檔案大小未超過該預(yù)定大小,則在每次各該些固件碼檔案寫入完成時,更新該寫 入進度。
3.如權(quán)利要求1所述的更新固件方法,其特征在于,在下載該固件套件至該第一儲存 單元的步驟之后,還包括檢查該第一儲存單元的剩余容量是否滿足該資料分區(qū)中的一本機資料; 當(dāng)該第一儲存單元的剩余容量滿足該本機資料時,將該資料分區(qū)中的該本機資料備份 至該第一儲存單元;以及自該資料分區(qū)抹除該本機資料。
4.如權(quán)利要求3所述的更新固件方法,其特征在于,執(zhí)行該啟動程序的步驟之后,還包括判斷該設(shè)定檔分區(qū)中的安裝資訊檔案是否符合一更新條件; 若符合該更新條件,則透過該啟動程序執(zhí)行該固件寫入操作;以及 若不符合該更新條件,則檢查該寫入進度,以判斷該些固件碼檔案是否已全部寫入至 該系統(tǒng)分區(qū)中。
5.如權(quán)利要求4所述的更新固件方法,其特征在于,當(dāng)判定該些固件碼檔案已全部寫 入至該系統(tǒng)分區(qū)時,還包括格式化該資料分區(qū);將備份于該第一儲存裝置的該本機資料,恢復(fù)至該資料分區(qū);以及 刪除該設(shè)定檔分區(qū)的安裝資訊檔案。
6.如權(quán)利要求4所述的更新固件方法,其特征在于,當(dāng)該設(shè)定檔分區(qū)中的安裝資訊檔 案不符合該更新條件,且判定該些固件碼檔案尚未全部寫入至該系統(tǒng)分區(qū)時,還包括關(guān)機,或者進入下載模式以重新下載該固件套件。
7.如權(quán)利要求1所述的更新固件方法,其特征在于,該固件寫入操作的步驟,還包括解密并初始化該系統(tǒng)分區(qū)中的一分區(qū)表。
8.如權(quán)利要求1所述的更新固件方法,其特征在于,分別寫入該安裝資訊檔案與該些 固件碼檔案至該設(shè)定檔分區(qū)與該資料分區(qū)的步驟包括以二進制方式記錄該安裝資訊檔案至該設(shè)定檔分區(qū);解析該固件套件的標(biāo)頭訊息;以及依據(jù)該標(biāo)頭訊息,利用該二進制方式將該些固件碼檔案寫入至該資料分區(qū),而將該些 固件碼檔案轉(zhuǎn)換為一鏡像資料。
9.如權(quán)利要求1所述的更新固件方法,其特征在于,在下載該固件套件至該第一儲存 單元的步驟之后,還包括驗證該固件套件的循環(huán)冗余檢查碼。
10.如權(quán)利要求1所述的更新固件方法,其特征在于,該第一儲存單元是微安全數(shù)位 卡,該第二儲存單元是與非門快閃記憶體。
11.如權(quán)利要求1所述的更新固件方法,其特征在于,該資料分區(qū)為快閃轉(zhuǎn)譯層分區(qū), 該設(shè)定檔分區(qū)為無線更新固件分區(qū)。
12.如權(quán)利要求1所述的更新固件方法,其特征在于,該啟動程序為原來設(shè)備制造商二 級啟動程序。
13.如權(quán)利要求12所述的更新固件方法,其特征在于,該系統(tǒng)分區(qū)用以儲存分區(qū)表、 0EMSBL、高等移動用戶軟件以及QC 二級啟動程序。
14.一種嵌入式電子裝置,包括第一儲存單元,用以儲存所載入的一固件套件,其中該固件套件包括安裝資訊檔案以 及多個固件碼檔案;第二儲存單元,具有一設(shè)定檔分區(qū)、一資料分區(qū)以及一系統(tǒng)分區(qū),該系統(tǒng)分區(qū)至少儲存 該嵌入式電子裝置的固件;以及一處理單元,耦接該第一儲存單元與該第二儲存單元,該處理單元用以下載該固件套 件至該第一儲存單元,并且自該第一儲存單元取出該安裝資訊檔案與該些固件碼檔案,以 分別寫入至該設(shè)定檔分區(qū)與該資料分區(qū);之后,重新開機,并執(zhí)行該系統(tǒng)分區(qū)中的一啟動程 序以執(zhí)行一固件寫入操作,該固件寫入操作包括依據(jù)該設(shè)定檔分區(qū)中的安裝資訊檔案,依序自該資料分區(qū)讀取該些固件碼檔案,而寫 入該些固件碼檔案至該系統(tǒng)分區(qū);以及在每次各該些固件碼檔案寫入完成時,更新該設(shè)定檔分區(qū)中的一寫入進度,以在斷電 重新啟動該嵌入式電子裝置之后,由該啟動程序依據(jù)該寫入進度繼續(xù)將余下的固件碼檔案 寫入至該系統(tǒng)分區(qū)。
15.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,執(zhí)行該固件寫入操作的步驟 還包括分別判斷該些固件碼檔案各自的檔案大小是否超過一預(yù)定大小;若該檔案大小超過該預(yù)定大小,則在每次寫入該預(yù)定大小之后,即更新該寫入進度,并 在整個固件碼檔案寫入完成時,更新該寫入進度;以及若該檔案大小未超過該預(yù)定大小,則在每次各該些固件碼檔案寫入完成時,更新該寫 入進度。
16.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,在下載該固件套件至該第一 儲存單元的步驟之后,還包括檢查該第一儲存單元的剩余容量是否滿足該資料分區(qū)中的一本機資料;當(dāng)該第一儲存單元的剩余容量滿足該本機資料時,將該資料分區(qū)中的該本機資料備份 至該第一儲存單元;以及自該資料分區(qū)抹除該本機資料。
17.如權(quán)利要求16所述的嵌入式電子裝置,其特征在于,執(zhí)行該啟動程序的步驟之后, 還包括判斷該設(shè)定檔分區(qū)中的安裝資訊檔案是否符合一更新條件;若符合該更新條件,則透過該啟動程序執(zhí)行該固件寫入操作;以及若不符合該更新條件,則檢查該寫入進度,以判斷該些固件碼檔案是否已全部寫入至 該系統(tǒng)分區(qū)中。
18.如權(quán)利要求17所述的嵌入式電子裝置,其特征在于,當(dāng)判定該些固件碼檔案已全 部寫入至該系統(tǒng)分區(qū)時,還包括格式化該資料分區(qū);將備份于該第一儲存裝置的該本機資料,恢復(fù)至該資料分區(qū);以及刪除該設(shè)定檔分區(qū)的安裝資訊檔案。
19.如權(quán)利要求17所述的嵌入式電子裝置,其特征在于,當(dāng)該設(shè)定檔分區(qū)中的安裝 資訊檔案不符合該更新條件,且判定該些固件碼檔案尚未全部寫入至該系統(tǒng)分區(qū)時,還包 括關(guān)機,或者進入下載模式以重新下載該固件套件。
20.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,該固件寫入操作的步驟,還包括解密并初始化該系統(tǒng)分區(qū)中的一分區(qū)表。
21.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,分別寫入該安裝資訊檔案與 該些固件碼檔案至該設(shè)定檔分區(qū)與該資料分區(qū)的步驟包括以二進制方式記錄該安裝資訊檔案至該設(shè)定檔分區(qū);解析該固件套件的標(biāo)頭訊息;以及依據(jù)該標(biāo)頭訊息,利用該二進制方式將該些固件碼檔案寫入至該資料分區(qū),而將該些 固件碼檔案轉(zhuǎn)換為一鏡像資料。
22.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,在下載該固件套件至該第一 儲存單元的步驟之后,還包括驗證該固件套件的循環(huán)冗余檢查碼。
23.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,該第一儲存單元是微安全數(shù) 位卡,該第二儲存單元是與非門快閃記憶體。
24.如權(quán)利要求14所述的嵌入式電子裝置,其特征在于,該資料分區(qū)為快閃轉(zhuǎn)譯層分 區(qū),該設(shè)定檔分區(qū)為無線更新固件分區(qū),該系統(tǒng)分區(qū)用以儲存分區(qū)表、原來設(shè)備制造商二級啟動程序、高等移動用戶軟件以及QC 二級啟動程序。
全文摘要
本發(fā)明涉及一種嵌入式電子裝置及更新其固件的方法。嵌入式電子裝置包括第一儲存單元及第二儲存單元,而第二儲存單元具有設(shè)定檔分區(qū)、資料分區(qū)以及系統(tǒng)分區(qū)。本方法首先下載固件套件至第一儲存單元,固件套件包括安裝資訊檔案與多個固件碼檔案。接著,將安裝資訊檔案與這些固件碼檔案分別寫入至設(shè)定檔分區(qū)與資料分區(qū)。之后,重新啟動嵌入式電子裝置,并執(zhí)行系統(tǒng)分區(qū)中的啟動程序以依據(jù)設(shè)定檔分區(qū)中的安裝資訊檔案,依序自資料分區(qū)讀取各固件碼檔案,以寫入至系統(tǒng)分區(qū)。并且,在每次各固件碼檔案寫入完成時,更新設(shè)定檔分區(qū)中的寫入進度。
文檔編號G06F9/445GK101923473SQ200910052898
公開日2010年12月22日 申請日期2009年6月11日 優(yōu)先權(quán)日2009年6月11日
發(fā)明者劉國棟 申請人:英華達(南京)科技有限公司