專利名稱:通訊裝置及其固件更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),尤其涉及一種通訊裝置的固件更新。
背景技術(shù):
路由器(router)、個人數(shù)字助理(personal digital assistant,簡稱PDA)、或手機等 通訊裝置其主要的執(zhí)行程序如開機程序、及硬件配置設(shè)定數(shù)據(jù)等皆包含在其固件,它的功 能及效率影響了裝置的整體表現(xiàn)。因此,軟件工程盡相當大的努力在固件的開發(fā)與除錯。
在一種產(chǎn)品上市后的一段時間,軟件工程師通常仍會持續(xù)地對固件做修改。此修改通常 包括執(zhí)行效率的改進、程序代碼的除錯、新功能的加入、及針對客戶需求所做的更動。 一旦 固件改變量達到一定的程度,軟件工程師就會發(fā)行一套新版的固件,讓使用者更新其裝置。 更新時先取得新版固件,然后將此新固件燒錄到裝置的閃存上。由于閃存的特性,此燒錄過 程不可被中斷, 一旦中斷了,整區(qū)的數(shù)據(jù)將無法使用。
然而在實際應(yīng)用中,燒錄過程及有可能被各種因素打斷,如突然的停電、插頭被踢掉、 或裝置莫名的死機等。倘若只有一份固件在閃存上,且復(fù)寫過程被中斷,將導(dǎo)致此裝置無法 再次開機。此裝置因此就須送修,維修人員必須卸下閃存,用專門的燒錄器做重?zé)难a救動 作。如此將造成使用者的不便,及維修成本的增加。
美國專利公開號20040068334,標題為"Method for updating firmware of computer device" 的專利文件及美國專利號6, 023, 620,標題為"Method for downloading control software to a cellular tel印hone"的專利各提出了不同的固件更新中斷的問題的解決方 法。但是這些方法仍有一些固件更新時的問題未克服。20040068334的方法多了一個固件備 份的工作,實為多余、耗時、沒有效率。另外,即使運用了這些方法,如果不慎裝置被升級 的固件版本有問題,導(dǎo)致裝置在開機過程會死機,仍然會使此裝置無法使用。
發(fā)明內(nèi)容
為了改善裝置的固件的更新作業(yè),本發(fā)明提供一種固件更新方法及使用所述方法的通訊 裝置。
一種通訊裝置的實施方式包括非揮發(fā)性內(nèi)存、更新模塊、加載模塊及原固件。上述非 揮發(fā)性內(nèi)存包含第一旗標用以指定所述通訊裝置開機用的固件,第二旗標用以指定是否要進 行開機能力測試,以及第一區(qū)域用以儲存所述通訊裝置的原固件。上述更新模塊取得新固件,并儲存所述新固件于所述非揮發(fā)性內(nèi)存中的第二區(qū)域。當完成儲存所述新固件時,上述更 新模塊利用所述第一旗標用以指定所述開機用的固件為所述新固件,并利用所述第二旗標致 能所述開機能力測試。上述加載模塊在判定所述新固件是否能順利運行以前,利用所述第一 旗標以指定開機用的固件為所述新固件以外的另一固件,并且響應(yīng)所述裝置的開機動作,加 載并運行所述新固件。其中,若所述新固件能運行,使所述裝置符合條件,則所述通訊裝置 判定所述新固件通過所述開機能力測試,更動所述第一旗標的值,以指定所述新固件為開機 用的固件。若所述新固件未通過所述開機能力測試,則所述通訊裝置維持所述第一旗標的值
一種固件更新方法的實施方式執(zhí)行于具有非揮發(fā)性內(nèi)存的通訊裝置。所述非揮發(fā)性內(nèi)存 包含第一旗標用以指定所述通訊裝置開機用的固件、第二旗標用以指定是否要進行開機能力 測試、以及第一區(qū)域用以儲存所述通訊裝置的原固件。首先,取得新固件,并儲存所述新固 件于所述非揮發(fā)性內(nèi)存中的第二區(qū)域。當完成儲存所述新固件時,利用所述第一旗標用以指 定所述開機用的固件為所述新固件,并利用所述第二旗標致能所述開機能力測試。在判定所 述新固件是否能通過所述開機能力測試以前,利用所述第一旗標以指定開機用的固件為所述 新固件以外的另一固件。響應(yīng)所述裝置的開機動作,加載并運行所述新固件。其中,若所述 新固件能運行,使所述裝置符合條件,則所述通訊裝置判定所述新固件通過所述開機能力測 試,更動所述第一旗標的值,以指定所述新固件為開機用的固件。若所述新固件未通過所述 開機能力測試,則所述通訊裝置不更動所述第一旗標的值。
另一種固件更新方法的實施方式執(zhí)行于具有非揮發(fā)性內(nèi)存的裝置中。所述裝置的原固件 儲存于所述非揮發(fā)性內(nèi)存中的第一區(qū)域。首先,取得新固件,并儲存所述固件于所述非揮發(fā) 性內(nèi)存中的第二區(qū)域。當完成儲存所述新固件時,進行開機能力測試。所述開機能力測試還 包含在判定所述新固件是否能通過所述開機能力測試以前,利用旗標,以指定所述新固件 以外的另一固件為所述裝置開機用的固件;響應(yīng)所述裝置的開機動作,加載并運行所述新固 件;若所述新固件能運行,使所述裝置符合條件,則判定所述新固件通過所述開機能力測試 ,并更動所述旗標的值,以指定所述新固件為所述開機用的固件;以及若所述新固件未通過 所述開機能力測試,則維持所述旗標的值。
利用所述的固件更新方法可以避免固件版本或設(shè)計錯誤所造成的開機問題。
圖1A為本發(fā)明通訊裝置的實施方式的結(jié)構(gòu)方塊圖。
圖1B為本發(fā)明通訊裝置的另一實施方式的結(jié)構(gòu)方塊圖,其更新模塊整合于加載模塊。圖1C為本發(fā)明通訊裝置的另一實施方式的結(jié)構(gòu)方塊圖,其更新模塊整合于固件中。 圖1D為本發(fā)明通訊裝置的另一實施方式的結(jié)構(gòu)方塊圖,其更新模塊單獨存在于通訊裝置中。
圖2為本發(fā)明通訊裝置與服務(wù)器的示意圖。 圖3為本發(fā)明通訊裝置的固件更新的實施方式流程圖。 圖4為本發(fā)明通訊裝置之中切換「主區(qū)」及「備區(qū)」的實施方式流程圖。 圖5為本發(fā)明通訊裝置之中加載模塊的操作流程圖。
圖6為本發(fā)明通訊裝置成功完成開機之后的「主區(qū)」及「備區(qū)」切換的操作流程圖。 圖7為本發(fā)明通訊裝置未成功完成開機之前,為了避免意外重新開機的錯誤的「主區(qū)」 及「備區(qū)」切換的操作流程圖。
具體實施例方式
以下說明中的各模塊可以是計算機可執(zhí)行的程序或電路。
圖1A為本發(fā)明通訊裝置100的實施方式的結(jié)構(gòu)方塊圖。在本實施方式中,通訊裝置100包 括處理器l、非揮發(fā)性內(nèi)存2、通訊單元3、輸入單元4及主存儲器5。
非揮發(fā)性內(nèi)存2可以是閃存(flash memory)或電子可抹除可程序化只讀存儲器 (Electrically Erasable Programmable ROM,簡稱EEPR0M)。圖1A中的非揮發(fā)性內(nèi)存2是簡化 的示意圖,而非揮發(fā)性內(nèi)存2實際上可以由單個或多個的內(nèi)存芯片構(gòu)成。
通訊單元3用來傳送及接收數(shù)據(jù)。輸入單元4可以包含用來啟動及關(guān)閉通訊裝置100的電 源的開關(guān)。通訊裝置100的固件可以包含其操作系統(tǒng)、應(yīng)用程序、設(shè)定參數(shù)及其它信息。
所述通訊裝置100的加載模塊(Loader)10儲存于所述非揮發(fā)性內(nèi)存2中的區(qū)域20,原固件 11儲存于所述非揮發(fā)性內(nèi)存2中的區(qū)域21。區(qū)域22可以用來儲存新的固件。非揮發(fā)性內(nèi)存2包 含二個旗標BF及BC。旗標BF用以指定要供所述通訊裝置開機用的固件,旗標BC用以指定是否 要進行開機能力測試。開機用的固件所在區(qū)域可以稱為「主區(qū)」,用來儲存新固件的區(qū)域可 以稱為「備區(qū)」。旗標BF可用以指定非揮發(fā)性內(nèi)存中的「主區(qū)」。舉例來說,目前區(qū)域21為 「主區(qū)」,而區(qū)域22為「備區(qū)」。需要了解的是,在上述通訊裝置的其它實施方式中,其非 揮發(fā)性內(nèi)存可以有二個或更多的「備區(qū)」。
舉例來說,區(qū)域21與22分別為非揮發(fā)性內(nèi)存2的二個分割區(qū)(partition),且分別以分割 區(qū)識別碼"0"及"1"代表。旗標BF可以用一位(bit)記錄分割區(qū)識別碼"0"或"1"以指 示用來開機的「主區(qū)」。在其它的實施方式中區(qū)域21與22何者為「主區(qū)」可以用儲存于旗標 BF中的內(nèi)存位置或其它信息來識別。上述內(nèi)存位置可以是區(qū)域21或22的開始地址或固件的所
8在地址。旗標BF及旗標BC可以各包含一比特(bit),但非限定于此。
通訊裝置100具有更新模塊13,用來從通訊裝置100的外部取得新固件,并儲存所述新固 件于非揮發(fā)性內(nèi)存2中的「備區(qū)」。當「備區(qū)」中有舊版的固件時,上述的新固件可以覆寫 上述舊版的固件。上述更新模塊13可以被包含在加載模塊10或任一固件(如固件11)中,或單 獨儲存于非揮發(fā)性內(nèi)存2中的一個位置。圖1B至圖1D中的通訊裝置100B、 IOOC及IOOD各為通 訊裝置100的實施方式。更新模塊13B、 13C及13D為更新模塊13的實施方式。圖1B中的更新模 塊13B整合于加載模塊10;圖1C中的更新模塊13C整合于固件11;圖1D中的更新模塊13D單獨 存在于通訊裝置100中。當更新模塊13完成儲存所述新固件時,上述更新模塊13利用所述旗 標BF用以指定所述開機用的固件為所述新固件,利用所述旗標BC指定是否要進行所述開機能 力測試。
加載模塊10在通訊裝置100啟動(開機)時加載旗標BF所指定的用來使通訊裝置100開機的 固件。
通訊裝置100可以包含各種客戶端設(shè)備(consumer premise equipment),例如機上盒 (set-top box)、數(shù)字用戶線(Digital Subscriber Line,簡稱DSL)調(diào)制解調(diào)器或有線電視 調(diào)制解調(diào)器(cable modem)等整合式存取裝置(Integrated access device)。通訊裝置IOO可 與另一裝置通訊并從特定的服務(wù)器下載固件。參照圖2,通訊裝置100通過網(wǎng)絡(luò)101通訊連接 服務(wù)器120。服務(wù)器120儲存多個固件于數(shù)據(jù)庫121。通訊裝置100可從服務(wù)器120下載新的固 件。以下說明通訊裝置100的固件更新流程。
假設(shè)旗標BF在目前記錄O,意指區(qū)域21為「主區(qū)」。參照圖3,通訊裝置100中的上述更 新模塊13首先從服務(wù)器120取得新固件12(步驟S300),判斷旗標BF中的「主區(qū)」為分割區(qū)O或 1(步驟S302)。若「主區(qū)」為分割區(qū)O,即區(qū)域21,則上述更新模塊13儲存固件12于「備區(qū)」 分割區(qū)l,即區(qū)域22(步驟S304)。若「主區(qū)」為分割區(qū)l,即區(qū)域22,則上述更新模塊13儲存 固件12于「備區(qū)」分割區(qū)O,即區(qū)域21(步驟S314)。
在步驟S306中,上述更新模塊13判別上述新固件12的儲存動作是否成功(步驟S306)。如 否,上述更新模塊13標示「備區(qū)」的固件更新失敗(步驟S308)。如是,上述更新模塊13利用 旗標BF以切換「主區(qū)」及「備區(qū)」(步驟S310),并利用旗標BC指定要進行所述開機能力測試 (步驟S312)。舉例來說,在本實施方式中旗標BC的值為1表示開機能力測試的致能狀態(tài) (enabled);值為O表示開機能力測試的禁能狀態(tài)(disabled)。然而,旗標BC可以利用不同的 信息指示是否要進行所述開機能力測試。最后由上述更新模塊13結(jié)束固件更新動作。
在步驟S316中,上述更新模塊13判別上述新固件12的儲存動作是否成功(步驟S316)。如否,上述更新模塊13標示「備區(qū)」的固件更新失敗(步驟S318)。如是,則執(zhí)行步驟S310及 S312。
步驟S310中切換「主區(qū)」及「備區(qū)」的實施方式顯示于圖4。首先,判別旗標BF的值(步 驟S400)。當旗標BF的值為O時,將旗標BF的值變更為1(步驟S404)。當旗標BF的值為1時,將 旗標BF的值變更為0(步驟S402)。
通過輸入單元4的操作,通訊裝置100重新開機。請參照圖5及圖6。通訊裝置100開機時 ,處理器I執(zhí)行加載模塊IO以進行以下各步驟(步驟S500)。加載模塊10判別旗標BF以辨識開 機用的固件。在步驟S502中,加載模塊10以一個變量(以下稱為BF—TEMP)記錄旗標BF的值( 步驟S502),并判別旗標BC以判斷是否要進行開機能力測試。在本實施方式中,BF—TEMP目前 記錄的分割區(qū)為l,即區(qū)域22。在步驟S504中,加載模塊10判別旗標BC是否在致能狀態(tài)(BC等 于l)(步驟S504)。如否,加載模塊10直接執(zhí)行步驟S508。如是,加載模塊10切換「主區(qū)」 及「備區(qū)」(步驟S506),并接著執(zhí)行步驟S508。步驟S508中,加載模塊10加載并執(zhí)行所述變 量BF—TEMP所記錄的區(qū)域中的固件以進行后續(xù)的開機程序(步驟S508)。在本實施方式中,此 時被加載并執(zhí)行的為固件12。判別執(zhí)行的固件是否成功完成開機程序(步驟S510)。如是,則 所述固件繼續(xù)執(zhí)行圖6中開機成功的后續(xù)步驟(步驟S512)。如否,所述固件造成開機失敗(步 驟S514),可以通過輸入單元4的操作,讓通訊裝置100重新開機。
若在步驟S514之后,通訊裝置100重新開機,由于在步驟S506已切換「主區(qū)」及「備區(qū) 」,所以處理器l會加載并執(zhí)行原固件ll,而非新固件12。
圖5的步驟S510中,若所述新固件12能運行,使通訊裝置100符合預(yù)定條件,則通訊裝置 IOO判定所述新固件能順利運行。舉例來說,上述預(yù)定條件包含多個特定的任務(wù)(task),處 理器1執(zhí)行固件12時,判別上述多個特定的任務(wù)是否已加載至通訊裝置100的主存儲器5,如 是,則判定通訊裝置100通過開機能力測試,成功完成開機。上述多個特定的任務(wù)為多個軟 件模塊或程序,當執(zhí)行時通訊裝置100提供特定功能,例如命令行(command line)、超文件 傳送協(xié)議(HyperText Transfer Protocol,簡稱HTTP)、動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol,簡稱DHCP )、 telnet、系統(tǒng)記錄(System Log)、網(wǎng)絡(luò)地址變換 (Network Address Translation, NAT )、 通用隨插艮卩用(Universal Plug and Play, UPnP)協(xié)議的處理功能。通訊裝置IOO可以接收遠程服務(wù)器的請求讓所述遠程服務(wù)器設(shè)置通訊 裝置100的設(shè)定值。上述任務(wù)提供的功能更可以包含與所述遠程服務(wù)器的互動的功能,例如 用戶認證、數(shù)據(jù)傳輸及加解密等。
圖6中,所述固件成功的完成開機程序后繼續(xù)執(zhí)行(步驟S600)并判別開機能力測試是否仍在致能狀態(tài)。在步驟S602中,判別旗標BC的值是否等于0(步驟S602)。如是,則不需修改 旗標BC(步驟S610)。如否,則變更旗標BC的值為O,將開機能力測試從致能狀態(tài)切換為禁能 狀態(tài)(步驟S606),并再次執(zhí)行「主區(qū)」及「備區(qū)」的切換(步驟S608)。
在本實施方式中,如果新固件12成功的完成開機程序,在步驟S608中,固件12所在的區(qū) 域22會再次被切換為「主區(qū)」。若在步驟S608之后,通訊裝置100重新開機,由于在步驟 S608已切換「主區(qū)」及「備區(qū)」,所以處理器1會加載并執(zhí)行新固件12,而非原固件ll。若 所述新固件12不能順利運行,則不會執(zhí)行步驟S608,因此通訊裝置100維持所述旗標BF的值 為0,固件11所在的區(qū)域21仍然為「主區(qū)」。
由上述說明可知,加載模塊10在判定所述新固件12是否能順利運行以前,利用所述旗標 BF以指定開機用的固件為所述新固件以外的原固件ll,或另一固件,并且響應(yīng)所述裝置的開 機動作,加載并運行所述新固件12。若非揮發(fā)性內(nèi)存2具有三個或三個以上的固件,加載模 塊10在判定所述新固件12是否能順利運行以前,利用所述旗標BF以指定開機用的固件為所述 新固件12以外的任一固件,并且響應(yīng)所述裝置的開機動作,加載并運行所述新固件12。
為了避免新固件12運行過程中,未完成圖6中的步驟S608以前,輸入單元4觸發(fā)通訊裝置 IOO重新開機而產(chǎn)生錯誤,處理器1可以偵測輸入單元4以執(zhí)行圖7的程序。在圖7中,處理器 1可以偵測通訊裝置100是否被觸發(fā)重新開機或關(guān)機(步驟S700)。如是,處理器l響應(yīng)所述觸 發(fā)事件以執(zhí)行下列步驟。處理器l判別開機能力測試是否仍在致能狀態(tài)。在步驟S702中,判 別旗標BC的值是否等于0(步驟S702)。如是,表示開機能力測試被禁能,則不需修改旗標BF( 步驟S708)。如否,表示開機能力測試被致能,則維持旗標BC的值為1 (步驟S704),并再次 修改旗標BF以執(zhí)行切換「主區(qū)」及「備區(qū)」(步驟S706)。最后,通訊裝置100關(guān)機或重新開 機(步驟S710)。這樣,通訊裝置100重新開機后,新固件12能夠再被測試一次。
步驟S700中可能由輸入單元4觸發(fā)通訊裝置100重新開機或關(guān)機,或由停電或其它的意外 事故造成的。通訊裝置100可以具有備用電源,使處理器1在測得通訊裝置100將要被重新開 機或關(guān)機之后,仍然可以執(zhí)行圖7中的步驟。通訊裝置100的備用電源可以由電容或電池構(gòu)成
在某些實施方式中,圖3至圖7可以由加載模塊10執(zhí)行。在某些實施方式中,圖3、 4、 6 及7可以由固件12執(zhí)行。
由上述說明可知,上述通訊裝置在運行新固件以判定新固件是否能順利運行以前,就利 用旗標BF以指定開機用的固件為所述新固件以外的舊版固件。因此,即使新固件有問題造成 所述通訊裝置無法動作時,重新開機后的所述通訊裝置會直接以旗標BF指定的舊版固件開機
11,無需另外的操作來改變通訊裝置的開機設(shè)定。
權(quán)利要求
1.一種通訊裝置,其特征在于,包括非揮發(fā)性內(nèi)存,包含第一旗標用以指定所述通訊裝置開機用的固件,第二旗標用以指定是否要進行開機能力測試,以及第一區(qū)域用以儲存所述通訊裝置的原固件;更新模塊,用于取得新固件,并儲存所述新固件于所述非揮發(fā)性內(nèi)存中的第二區(qū)域,當完成儲存所述新固件時,利用所述第一旗標用以指定所述開機用的固件為所述新固件,并利用所述第二旗標致能所述開機能力測試;以及加載模塊,用于在判定所述新固件是否能順利運行以前,利用所述第一旗標指定開機用的固件為所述新固件以外的另一固件,并且響應(yīng)所述裝置的開機動作,加載并運行所述新固件;其中,若所述新固件能運行,使所述裝置符合條件,則所述通訊裝置判定所述新固件通過所述開機能力測試,更動所述第一旗標的值,以指定所述新固件為開機用的固件;以及若所述新固件未通過所述開機能力測試,則所述通訊裝置維持所述第一旗標的值。
2.如權(quán)利要求l所述的通訊裝置,其特征在于,所述第一及第二區(qū)域為所述非揮發(fā)性內(nèi)存的不同分割區(qū)。
3.如權(quán)利要求l所述的通訊裝置,其特征在于,所述裝置是否符合所述條件的判別方式即所述通訊裝置判別所述新固件是否已啟動多個預(yù)定的軟件程序,如是,則判定所述通訊裝置符合所述條件,如否,則判定所述通訊裝置不符合所述條件。
4.如權(quán)利要求3所述的通訊裝置,其特征在于,所述多個預(yù)定的軟件程序包含處理至少下列功能的其中一者的軟件程序命令行、超文件傳送協(xié)議、動態(tài)主機配置協(xié)議、telnet、系統(tǒng)記錄、網(wǎng)絡(luò)地址變換及通用隨插即用協(xié)議的處理功能。
5.如權(quán)利要求3所述的通訊裝置,其特征在于,所述多個預(yù)定的軟件程序的其中一者用來接收遠程服務(wù)器的請求,讓所述遠程服務(wù)器設(shè)置所述通訊裝置的設(shè)定值
6.如權(quán)利要求l所述的通訊裝置,其特征在于,若所述新固件通過所述開機能力測試,修改所述第二旗標以禁能所述開機能力測試。
7.如權(quán)利要求6所述的通訊裝置,其特征在于,所述通訊裝置偵測所述是否被觸發(fā)重新開機或關(guān)機,如是,判別所述開機能力測試是否已被致能,如開機能力測試已被致能,則在所述通訊裝置重新開機或開機以前,修改所述第一旗標以指定所述新固件為所述開機用的固件,如開機能力測試已被禁能,則在所述通訊裝置重新開機或開機以前,維持所述第一旗標。
8.如權(quán)利要求7所述的通訊裝置,其特征在于,所述通訊裝置還包含備用電源,用于提供所述通訊裝置執(zhí)行偵測到上述重新開機或關(guān)機的觸發(fā)之后的動作
9.如權(quán)利要求l所述的通訊裝置,其特征在于,所述非揮發(fā)性內(nèi)存為閃存。
10.如權(quán)利要求l所述的通訊裝置,其特征在于,所述通訊裝置為網(wǎng)絡(luò)通訊裝置。
11.如權(quán)利要求l所述的通訊裝置,其特征在于,所述新固件以外的另一固件為所述原固件。
12.一種固件更新方法,執(zhí)行于具有非揮發(fā)性內(nèi)存的通訊裝置,所述非揮發(fā)性內(nèi)存包含第一旗標用以指定所述通訊裝置開機用的固件、第二旗標用以指定是否要進行開機能力測試、以及第一區(qū)域用以儲存所述通訊裝置的原固件,其特征在于,所述的固件更新方法包括取得新固件,并儲存所述新固件于所述非揮發(fā)性內(nèi)存中的第二區(qū)域;當完成儲存所述新固件時,利用所述第一旗標用以指定所述開機用的固件為所述新固件,并利用所述第二旗標致能所述開機能力測試;以及在判定所述新固件是否能通過所述開機能力測試以前,利用所述第一旗標以指定開機用的固件為所述新固件以外的另一固件;響應(yīng)所述裝置的開機動作,加載并運行所述新固件;其中,若所述新固件能運行,使所述裝置符合條件,則所述通訊裝置判定所述新固件通過所述開機能力測試,更動所述第一旗標的值,以指定所述新固件為開機用的固件;以及若所述新固件未通過所述開機能力測試,則所述通訊裝置不更動所述第一旗標的值。
13.如權(quán)利要求12項所述的固件更新方法,其特征在于,所述裝置是否符合所述條件的判別方式包含判別所述新固件是否已啟動多個預(yù)定的軟件程序;如是,則判定所述通訊裝置符合所述條件;以及如否,則判定所述通訊裝置不符合所述條件。
14 如權(quán)利要求13項所述的固件更新方法,其特征在于,所述多個預(yù) 定的軟件程序包含處理至少下列功能的其中一者的軟件程序命令行、超文件傳送協(xié)議、動 態(tài)主機配置協(xié)議、telnet、系統(tǒng)記錄、網(wǎng)絡(luò)地址變換及通用隨插即用協(xié)議的處理功能。
15 如權(quán)利要求13項所述的固件更新方法,其特征在于,所述多個預(yù) 定的軟件程序的其中一者用來接收遠程服務(wù)器的請求,讓所述遠程服務(wù)器設(shè)置所述通訊裝置 的設(shè)定值。
16 如權(quán)利要求12項所述的固件更新方法,其特征在于,所述的固件 更新方法還包含若所述新固件通過所述開機能力測試,修改所述第二旗標以禁能所述開機能力測試。
17 如權(quán)利要求16項所述的固件更新方法,其特征在于,所述的固件 更新方法還包含其中所述通訊裝置偵測所述是否被觸發(fā)重新開機或關(guān)機; 如是,判別所述開機能力測試是否已被致能;如開機能力測試已被致能,則在所述通訊裝置重新開機或開機以前,修改所述第一旗 標以指定所述新固件為所述開機用的固件;如開機能力測試已被禁能,則在所述通訊裝置重 新開機或開機以前,維持所述第一旗標。
18 如權(quán)利要求17項所述的固件更新方法,其特征在于,所述的固件 更新方法還包含利用所述通訊裝置的備用電源以提供所述通訊裝置執(zhí)行偵測到上述重新開機或關(guān)機的 觸發(fā)之后的動作。
19 如權(quán)利要求12項所述的固件更新方法,其特征在于,所述新固件 以外的另一固件為所述原固件。
20 一種固件更新方法,執(zhí)行于具有非揮發(fā)性內(nèi)存的裝置中,所述裝 置的原固件儲存于所述非揮發(fā)性內(nèi)存中的第一區(qū)域,其特征在于,所述的固件更新方法包括 下列步驟取得新固件,并儲存所述固件于所述非揮發(fā)性內(nèi)存中的第二區(qū)域;當完成儲存所述新固件時,進行開機能力測試; 所述開機能力測試還包含在判定所述新固件是否能通過所述開機能力測試以前,利用旗標,以指定所述新固件以外的另一固件為所述裝置開機用的固件;響應(yīng)所述裝置的開機動作,加載并運行所述新固件;若所述新固件能運行,使所述裝置符合條件,則判定所述新固件通過所述開機能力測 試,并更動所述旗標的值,以指定所述新固件為所述開機用的固件;以及若所述新固件未通過所述開機能力測試,則維持所述旗標的值。
21.如權(quán)利要求20所述的固件更新方法,其特征在于,所述的固件更 新方法還包含當完成儲存所述新固件時,指定所述新固件為所述裝置的開機用的固件。
全文摘要
一種固件更新方法,執(zhí)行于具有非揮發(fā)性內(nèi)存的裝置。所述裝置的原固件儲存于所述內(nèi)存中的第一區(qū)域。首先,取得并儲存新固件于所述內(nèi)存中的第二區(qū)域。當完成固件儲存時,測試開機能力。所述開機能力測試還包含在判定所述新固件是否能通過所述測試以前,利用旗標以指定所述新固件以外的另一固件為所述裝置開機用的固件;響應(yīng)所述裝置的開機動作,加載并運行所述新固件;若新固件能運行,使所述裝置符合預(yù)設(shè)的條件,則判定所述新固件通過所述開機能力測試,并更動所述旗標值,指定新固件供下次開機用;以及若所述新固件未通過所述開機能力測試,則維持所述旗標值。利用所述的固件更新方法可以避免固件版本或設(shè)計錯誤所造成的開機問題。
文檔編號H04N5/00GK101526903SQ20081030049
公開日2009年9月9日 申請日期2008年3月7日 優(yōu)先權(quán)日2008年3月7日
發(fā)明者陳建華 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司