TWI661305B - 系統,更新器,控制系統之方法,及控制更新器之方法 - Google Patents

系統,更新器,控制系統之方法,及控制更新器之方法 Download PDF

Info

Publication number
TWI661305B
TWI661305B TW103135698A TW103135698A TWI661305B TW I661305 B TWI661305 B TW I661305B TW 103135698 A TW103135698 A TW 103135698A TW 103135698 A TW103135698 A TW 103135698A TW I661305 B TWI661305 B TW I661305B
Authority
TW
Taiwan
Prior art keywords
boot loader
mode
firmware
interface
memory
Prior art date
Application number
TW103135698A
Other languages
English (en)
Other versions
TW201523259A (zh
Inventor
東尼 卡薩諾
平 何
漢奇查米科 古納瓦
Original Assignee
雷蛇(亞太)私人有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 雷蛇(亞太)私人有限公司 filed Critical 雷蛇(亞太)私人有限公司
Publication of TW201523259A publication Critical patent/TW201523259A/zh
Application granted granted Critical
Publication of TWI661305B publication Critical patent/TWI661305B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

一種裝置、更新器、控制裝置之方法、及控制更新器之方法。根據各種實施例,可提供裝置。該裝置可包括一啟動載入器;一記憶體,其組配來儲存用於控制該裝置的韌體資料;一處理器,其組配來以一裝置操作模式或以一啟動載入器模式操作;以及一介面。該裝置操作模式可為其中該處理器控制該啟動載入器以載入儲存於該記憶體中之該韌體資料的一模式。該啟動載入器模式可為其中該處理器控制該啟動載入器以使用該介面發送該裝置之一識別符,使用該介面接收韌體資料且將該韌體資料儲存於該記憶體中的一模式。

Description

系統,更新器,控制系統之方法,及控制更新器之方法
本發明大體上係關於裝置,更新器,控制裝置之方法,及控制更新器之方法。
裝置可需要韌體以便控制其操作。可需要此韌體獲更新。
根據各種實施例,可提供裝置。該裝置可包括啟動載入器;記憶體,其組配來儲存用於控制裝置的韌體資料;處理器,其組配來以裝置操作模式或以啟動載入器模式操作;以及介面。裝置操作模式可為其中處理器控制啟動載入器以載入儲存於記憶體中之韌體資料的模式。啟動載入器模式可為其中處理器控制啟動載入器以使用介面發送裝置之識別符,使用介面接收韌體資料且將韌體資料儲存於記憶體中的模式。
根據各種實施例,可提供更新器。該更新器可包括:接收器,其組配來自啟動載入器模式中之裝置接 收該裝置之識別符;以及發送器,其組配來基於所接收的識別符將韌體資料發送至裝置。
根據各種實施例,可提供控制裝置之方法。該方法可包括:控制啟動載入器;控制記憶體以儲存用於控制裝置之韌體資料;控制處理器來以裝置操作模式或以啟動載入器模式操作;以及控制介面。裝置操作模式可為其中處理器控制啟動載入器以載入儲存於記憶體中之韌體資料的模式。啟動載入器模式可為其中處理器控制啟動載入器以使用介面發送裝置之識別符,使用介面接收韌體資料且將韌體資料儲存於記憶體中的模式。
根據各種實施例,可提供控制更新器之方法。該方法可包括:控制接收器以自啟動載入器模式中之裝置接收該裝置之識別符;以及控制發送器以基於所接收的識別符將韌體資料發送至裝置。
100‧‧‧系統
102‧‧‧裝置
104‧‧‧更新器
106‧‧‧連接
200‧‧‧裝置
202‧‧‧啟動載入器
204‧‧‧記憶體
206‧‧‧處理器
208‧‧‧介面
210‧‧‧連接
300‧‧‧裝置
302‧‧‧接收器
304‧‧‧有效性檢驗器
306‧‧‧模式變換器
308‧‧‧連接
400‧‧‧更新器
402‧‧‧接收器
404‧‧‧發送器
406‧‧‧連接
500‧‧‧流程圖
600‧‧‧流程圖
700‧‧‧流程圖
800‧‧‧流程圖
900‧‧‧記憶體映像
1000‧‧‧資料儲存
1100‧‧‧記憶體映像
在圖式中,在全部不同視圖中,相同元件符號大體上係指相同部件。圖式未必按比例繪製,相反,重點通常是關注對本發明原理的例示。各種特徵或元件之尺寸可出於清晰度任意地擴展或縮減。在以下描述中,本發明之各種實施例係參考隨附圖式來描述,圖式中:圖1展示根據實施例的裝置及更新器之系統;圖2展示根據實施例的裝置;圖3展示根據實施例的裝置; 圖4展示根據實施例的更新器;圖5展示例示根據實施例的控制裝置之方法的流程圖;圖6展示例示根據實施例的控制更新器之方法的流程圖;圖7展示例示根據實施例的控制裝置之方法的流程圖;圖8展示例示根據實施例的控制更新器之方法的流程圖;圖9展示根據實施例的記憶體映象;圖10展示根據實施例的資料儲存;以及圖11展示根據實施例的記憶體映像。
以下詳細描述涉及藉助於圖解來展示可實踐本發明之特定細節及實施例的隨附圖式。足夠詳細地描述此等實施例以允許熟習此項技術者實踐本發明。可利用其他實施例,並且可進行結構及邏輯改變而不脫離本發明之範疇。各種實施例未必互相排斥,如一些實施例可與一或多個其他實施例組合以形成新的實施例。
為使本發明可易於理解且獲得實際效果,將以舉例且非限制之方式並參考圖式來描述特定實施例。
裝置可包括記憶體,該記憶體係例如用於藉由裝置進行的處理。更新器可包括記憶體,該記憶體係例如用於藉由更新器進行的處理。用於實施例中之記憶體可 為依電性記憶體,例如DRAM(動態隨機存取記憶體)或非依電性記憶體,例如PROM(可程式化唯讀記憶體)、EPROM(可抹除PROM)、EEPROM(電子可抹除PROM),或快閃記憶體,例如浮閘記憶體、電荷捕集記憶體、MRAM(磁電阻隨機存取記憶體)或PCRAM(相變隨機存取記憶體)。
在一實施例中,「電路」可理解為任何種類的 邏輯實行實體,該邏輯實行實體可為執行儲存於記憶體之中軟體、韌體或其任何組合的專用電路或處理器。因此,在一實施例中,「電路」可為硬連線邏輯電路或可程式化邏輯電路,諸如可程式化處理器,例如微處理器(例如複雜指令集電腦(CISC)處理器或精簡指令集電腦(RISC)處理器)。「電路」亦可為執行軟體的處理器,該軟體例如任何種類的電腦程式,例如使用虛擬機代碼(諸如例如Java)之電腦程式。將在以下更詳細地描述的各別功能之任何其他種類的實行方案亦可根據替代實施例理解為「電路」。將理解的是,本文以不同名稱(例如「電路A」及「電路B」)描述為電路的內容亦可提供於如以上所述的一個實體電路中。
提供裝置之各種實施例,且提供方法之各種 實施例。將理解的是,裝置之基本性質亦適用於方法,且反之亦然。因此,為簡潔起見,可省略對此等性質之重複描述。
將理解的是,本文對特定裝置描述的任何性 質亦可適用於本文所述的任何裝置。將理解的是,本文對特定方法描述的任何性質亦可適用於本文所述的任何方法。此外,將理解的是,對於本文所述的任何裝置或方法而言,所描述的所有組件或步驟未必必須納入裝置或方法中,而可僅僅納入一些(但非所有)組件或步驟。
裝置可需要韌體以便控制其操作。可需要此韌體獲更新。
圖1展示根據實施例的裝置102及更新器104之系統100。裝置102可包括可用於操作該裝置之韌體資料。裝置102可需要接收更新的韌體資料。裝置102可經由連接106自更新器104接收更新的韌體資料。
圖2展示根據實施例的裝置200。裝置200可包括啟動載入器202(例如啟動載入器電路)。裝置200可進一步包括記憶體204,該記憶體204組配來儲存用於控制裝置200之韌體資料。裝置200可進一步包括處理器206,該處理器206組配來以裝置操作模式或以啟動載入器模式操作。裝置200可進一步包括介面208(例如,與如將在以下描述的更新器,例如圖4之更新器400介接的介面),例如介面電路。裝置操作模式可為其中處理器206控制啟動載入器202以載入儲存於記憶體204中之韌體資料的模式。啟動載入器模式可為其中處理器206控制啟動載入器202以使用介面208發送裝置200之識別符(例如發送至更新器),使用介面208接收韌體資料(例如自更新器接收)且將韌體資料儲存於記憶體204中的模式。啟動載入器 202、記憶體204、處理器206及介面208可經由連接210(或複數個獨立連接)來連接,該連接210例如電氣連接或光學連接,例如任何種類的電纜或匯流排。
裝置200可包括或可為輸入裝置及/或輸出裝置。
韌體資料可包括或可為用於控制輸入裝置及/或輸出裝置之資料。
啟動載入器模式可為其中處理器206不控制啟動載入器202以載入儲存於記憶體204中之韌體資料的模式。
介面208可包括或可為以下至少一者:通用串列匯流排(USB)介面、火線介面、PS/2介面、霹靂介面、區域網路(LAN)介面、藍芽介面、紅外線介面、無線區域網路(WLAN)介面或行動無線電通訊介面。
啟動載入器可使用儲存於記憶體之固定部分中的資料。
圖3展示根據實施例的裝置300。類似於圖2之裝置200,裝置300可包括啟動載入器202。類似於圖2之裝置200,裝置300可進一步包括記憶體204。類似於圖2之裝置200,裝置300可進一步包括處理器206。類似於圖2之裝置200,裝置300可進一步包括介面208。裝置300可進一步包括接收器302(例如接收器電路),如將在以下描述。裝置300可進一步包括有效性檢驗器304(例如有效性校驗電路),如將在以下描述。裝置300可進一步包括 模式變換器306(例如模式變換電路),如將在以下描述。啟動載入器202、記憶體204、處理器206、介面208、接收器302、有效性檢驗器304及模式變換器306可經由連接308(或複數個獨立連接)來連接,該連接308例如電氣連接或光學連接,例如任何種類的電纜或匯流排。
接收器302可組配來接收自裝置操作模式變換至啟動載入器模式之指令。接收器302可組配來使用介面208接收指令。
接收器302可組配來接收自啟動載入器模式變換至裝置操作模式之指令。接收器302可組配來使用介面208接收指令。
有效性檢驗器304可組配來校驗儲存於記憶體204中之韌體資料是否有效。模式變換器306可組配來在判定儲存於記憶體204中之韌體資料無效時自裝置操作模式變換至啟動載入器模式。
裝置300可進一步組配來判定在啟動裝置300時以何種模式操作。
圖4展示根據實施例的更新器400。更新器400可包括接收器402(例如,接收器電路),該接收器402組配來自啟動載入器模式中之裝置(例如,自圖2之裝置200或圖3之裝置300)接收裝置之識別符。更新器400可進一步包括發送器404(例如,發送器電路),該發送器404組配來基於所接收的識別符將韌體資料發送至裝置。接收器402及發送器404可經由連接406(或複數個獨立連接) 來連接,該連接406例如電氣連接或光學連接,例如任何種類的電纜或匯流排。
發送器404可進一步組配來將用於變換至啟動載入器模式之指令發送至不在啟動載入器模式中之裝置。
發送器404可進一步組配來將用於變換至裝置操作模式之指令發送至在啟動載入器模式中之裝置。
圖5展示例示根據實施例的控制裝置之方法的流程圖500。在502,可控制啟動載入器。在504,可控制記憶體以儲存用於控制裝置之韌體資料。在506,可控制處理器來以裝置操作模式或以啟動載入器模式操作。在508,可控制介面。裝置操作模式可為其中處理器控制啟動載入器以載入儲存於記憶體中之韌體資料的模式。啟動載入器模式可為其中處理器控制啟動載入器以使用介面發送裝置之識別符,使用介面接收韌體資料且將韌體資料儲存於記憶體中的模式。
裝置可包括或可為輸入裝置及/或輸出裝置。
韌體資料可包括或可為用於控制輸入裝置及/或輸出裝置之資料。
啟動載入器模式可為其中處理器不控制啟動載入器以載入儲存於記憶體中之韌體資料的模式。
介面可包括或可為以下至少一者:通用串列匯流排介面、火線介面、PS/2介面、霹靂介面、區域網路介面、藍芽介面、紅外線介面、無線區域網路介面或行動 無線電通訊介面。
啟動載入器可使用儲存於記憶體之固定部分中的資料。
該方法可進一步包括控制接收器以接收自裝置操作模式變換至啟動載入器模式之指令。
接收器可使用介面接收指令。
該方法可進一步包括控制接收器以接收自啟動載入器模式變換至裝置操作模式之指令。
接收器可使用介面接收指令。
該方法可進一步包括:控制有效性檢驗器以校驗儲存於記憶體中之韌體資料是否有效;以及控制模式變換器以在判定儲存於記憶體中之韌體資料無效時自裝置操作模式變換至啟動載入器模式。
裝置可判定在啟動裝置時以何種模式操作。
圖6展示例示根據實施例的控制更新器之方法的流程圖600。在602,可控制接收器來自啟動載入器模式中之裝置接收裝置之識別符。在604,可控制發送器來基於所接收的識別符將韌體資料發送至裝置。
發送器可將用於變換至啟動載入器模式之指令發送至不在啟動載入器模式中之裝置。
發送器可將用於變換至裝置操作模式之指令發送至在啟動載入器模式中之裝置。
根據各種實施例,可提供韌體啟動載入器及更新器。
根據各種實施例,可提供機制來判定遭遇韌 體更新失敗之裝置之識別碼(identity)且使該等裝置自動地復活(revive)。
常用更新器可為通用的且可能用錯誤的韌體 快閃儲存於裝置中。此外,韌體更新失敗可致使裝置不可用。
根據各種實施例,可提供啟動載入器以便韌 體失敗可使裝置自身展示為啟動載入器裝置。根據各種實施例,目標硬體ID(識別符)可經由啟動載入器而顯露。根據各種實施例,可包括軟體的監視器裝置(其可稱為更新器)可經構建以偵測在啟動載入器模式中之裝置且自動地用匹配韌體對該等裝置快閃儲存。
一旦啟動載入器係設計來自身顯露且宣告何 者為目標PID(產品ID),監視器裝置(亦即更新器)即可能夠偵測韌體更新失敗且自動地以適用於彼裝置之韌體(換言之:韌體資料)來快閃儲存。在正常操作期間,更新器現可判定在啟動載入器模式中之裝置之識別碼,且因此可確保僅匹配韌體快閃儲存於裝置中。
根據各種實施例,可提供更新器來使匹配韌體自動地快閃儲存於裝置中。
在先前使用的啟動載入器中,可能不可判定在啟動載入器模式中之裝置之識別碼為何。可判定出存在需要更新的裝置,但不可判定實體上為何種裝置。可必須依賴於使用者來為其裝置選取正確的韌體更新器。一旦韌 體更新失敗發生,即需要使用者請求再一次人工地運作韌體更新器。
根據各種實施例,可不需要此使用者介入,且裝置可自動地復活。
在下文,將描述裝置與作業系統(OS)之間的通訊。
根據各種實施例,各種裝置可具有若干啟動區塊及啟動載入器要求。術語『啟動區塊』可係指受保護韌體,其可包括經執行直至啟動區塊預備將控制移交至非保護韌體的正好第一段代碼。術語『啟動載入器』可涉及更新非保護韌體之功能,該啟動載入器可完全含於啟動區塊中。
自韌體觀點而言,啟動載入器設計可在產品與產品之間有所不同,例如因裝置MCU(微控制器單元)而不同,但亦支援裝置具有的特殊儲存要求。啟動載入器可於韌體更新事件期間保護製造資料、可變儲存、巨集資料及啟動區塊自身。
自軟體觀點而言,啟動載入器特徵、命令及功能可在產品與產品之間相同。
以下將參考Freescale及NXP設計來描述啟動載入器實行方案細節。
例如,根據各種實施例的韌體更新可提供以下:-自重置向量至裝置韌體交遞之受保護韌體 執行;-在更新程序中之任何點處自減損功率恢復;-無使用者介入的情況下進入啟動載入器模式;-驗證裝置在啟動載入器模式中;-防止裝置用錯誤的韌體程式化;-即使在裝置用錯誤的韌體程式化時加以恢復;-在更新之後自動地斷開裝置之啟動載入器;-驗證裝置在正常模式中;-製造資料保護(序列號、校準資料等);-可變儲存保護(設定檔、設定檔Idx、照明、雲端控制等);以及-巨集資訊保護(巨集目錄及巨集資料結構)。
在下文中,將描述韌體更新事件。
在下文中,將描述韌體更新器(可為或可包括專用裝置或基於PC之應用程式)及啟動載入器(可為或可包括受保護韌體)如何一起工作來允許裝置韌體(「裝置韌體」或「韌體資料」可係指執行產品之主要功能的韌體;例如,滑鼠韌體可處置所有按鈕及移動事件)在欄位中更新。
根據各種實施例的啟動載入器設計之基本前提為確保無論在韌體更新期間發生何種情況,皆不存使得裝置功能永久損失的方式所有可能的錯誤條件及電力中斷 條件皆可恢復。
圖7展示例示根據實施例的控制裝置之方法 的流程圖700。在啟動載入器韌體至裝置韌體流程圖700中,將描述啟動載入器韌體(其亦可稱為啟動載入器)及裝置韌體(其亦可稱為韌體資料)之處理。
圖7展示啟動載入器及裝置韌體加電流程。 啟動載入器韌體可受保護且不變化,且裝置韌體可在處於啟動載入器模式中時為更新之目標。
在啟動時(例如,在加電之後),MCU(微控制 器單元)重置可在702執行,且在704啟動載入器可檢查使用者強制啟動載入器模式,或在706檢查無效裝置韌體簽章。若此等條件中之任一者存在,則加電流程可前往在720枚舉的啟動載入器裝置,而替代在714枚舉的目標裝置。 自系統之觀點而言,可存在為附接啟動載入器(無滑鼠、鍵盤、耳機等)的非HID裝置。
更詳細地,在704,可校驗使用者是否正強 制啟動載入器模式。若是,則處理可在718進行;若否,則處理可在706進行。在706,可校驗韌體是否有效,例如,校驗韌體簽章是否有效。若否,則處理可在718進行;若是,則處理可在708進行。在708,處理可跳躍至裝置韌體。在718,可執行USB初始化。
一旦在啟動載入器模式中,裝置即可等待來 自韌體更新器(FWU)應用程式(其亦可稱為更新器)之快閃儲存命令。在732,FWU可抹除、程式化及驗證快閃區塊。 更詳細地,在主迴路722,可在724校驗資料區塊是否就緒。若是,則處理可在732進行;若否,則處理可在726進行。在726,可校驗是否退出啟動載入器。若是,則處理可在728進行;若否,則處理可在722進行。啟動載入器可保護對韌體更新器應用程式通透的所需區域。換言之,FWU應用程式可請求自位址0開始抹除記憶體區塊,且啟動載入器可取決於哪個區域受保護來允許或阻斷彼活動。
一旦對FWU確保裝置韌體已成功獲程式 化,僅此後FWU方才發出退出啟動載入器命令,藉以在728啟動載入器韌體最終化目標裝置韌體更新核對和及簽章,且隨後其可在730強制MCU重置,從而可觸發加電起動流程圖。若韌體更新成功,則裝置可啟動且枚舉為具有相關聯功能性之目標裝置。啟動載入器組態隨後可完全受抑制。
在710,可在裝置韌體中執行MCU初始化。在712,裝置可加以初始化。在716可執行主迴路。
圖8展示例示根據實施例的控制更新器之方法的流程圖800。在韌體更新器流程圖800中,展示韌體更新事件之處理,其可涉及韌體更新器應用程式及目標裝置之韌體。為完成,亦可存在用於協定(其可用於傳達至裝置)及用於啟動載入器(可用於傳達至啟動載入器)二者的驅動程式。韌體更新器可作為獨立應用程式或作為「雲端」引擎支援之部分來啟用。
當啟用韌體更新器時,其始終具有指定 VID/PID(供應商識別符/產品識別符),因為其具有之韌體可僅與特定裝置韌體相關聯。在程式於802初始化之後,一旦VID/PID獲驗證,即擷取韌體版本號且在804校驗以查看韌體是否已更新至相同程度,或若裝置韌體實際上比欲程式化的韌體更新則對使用者預警。
經由協定,裝置可在808置於啟動載入器模 式,從而可在812強制裝置重置且在814重新枚舉(例如,藉由作業系統,例如藉由視窗來重新枚舉)為啟動載入器裝置。此外,MCU可在810清除韌體簽章。在816,可判定是否存在正確的裝置PID。若是,則處理可在818進行;若否,則處理可在806進行。FWU可等待直至啟動載入器裝置已在繼續之前獲偵測。FWU隨後可在818讀取新韌體檔案,且可程式化裝置以進行匹配(例如在820抹除,在822程式化且在824驗證),且一旦完成,其即可在826發出「退出啟動載入器」命令。退出啟動載入器命令可完成韌體更新過程,且可強制另一次重置且在828重新枚舉,以允許裝置再一次藉由作業系統(例如視窗)偵測為具有相關聯功能性之目標裝置。在830,可驗證目標裝置。若是,可在832顯示成功操作之指示。若否,可在806進行處理。 在806,可顯示失敗之指示。在806或832之後,可退出FWU。
在下文中,將描述啟動載入器設計細節。
啟動區塊可為小的但完全功能性的USB裝 置,其可枚舉為具有如表1所示的USB描述符之「未知裝置」。
此USB描述符可包括目標裝置之 DEVICE_PID,其可在即使裝置已在啟動載入器模式中時允許對裝置之驗證。
USB串描述符可重新改換目標以將關於記憶 體映像之類型或啟動載入器意圖就如何繼續進行更新來傳達的其他特殊變化的一些資訊給予韌體更新器。
表2展示啟動區塊USB串描述符。
僅可存在少量啟動載入器裝置回應的標準USB命令,因為韌體空間極為有限。可存在另一同樣小的命令集以處置韌體更新、驗證及切換回正常裝置操作模式。
在下文中,將描述根據各種實施例的快閃資料儲存。
可需要裝置管理及保護最少三個不同的快閃區域:製造資料、可變儲存、啟動區塊,及視需要巨集資訊。
製造資料可為可僅在工廠更新且可需要維持於裝置之壽命期的區塊。製造資料可包括諸如以下之資訊:序列號、鍵盤佈局、三色LED校準值等。在Freescale設計中,製造資料可只是另一快閃頁(Flash page),因此,其可置放於任何處。
圖9展示根據實施例的記憶體映像900,例如MC9S08JM60記憶體映像。
圖10展示根據實施例的資料儲存1000,例如NXP製造資料儲存。
圖11展示根據實施例的記憶體映像1100,例如NXP LPC1343記憶體映像。
在圖11所示的實例中,製造資料可已附注於部分頁之0x1960-0x1A00中。因為可存在不多的待儲存之製造資料,所以此可為以Freescale JM60設計來處置製造資料之有效方法。該圖中亦例示位於0x2A00-0x5A00位址之間的巨集儲存。儲存巨集及一個以上的設定檔可為產品選項。根據各種實施例的各種裝置及方法可依賴於雲端服務來在「雲端」儲存巨集及其他設定檔,且因此可不需要此額外的啟動載入器快閃保護。
然而,對其中所有快閃頁均可為4K大小的NXP設計而言,此可為實行製造資料儲存之極為浪費的方式。因此,可替代地將製造資料儲存於啟動區塊之未使用部分中,如圖10所示。不同於Freescale方法,該實行方案可僅更新一段有限時間。如上所示,製造資料區塊可寫入啟動區塊之未程式化後端中,且隨後當寫入新的版本之資料時予以作廢。此可持續直至除最後一個區塊外所有區塊已作廢,該最後一個區塊可允許例如約20次更新。
可變儲存可作為一組連續快閃頁(至最近頁)實行於兩個處理器上。在Freescale設計中,由於快閃效率之原因,可變儲存可不儲存在記憶體映像之頂部,因為存在如中斷向量的無法移動的Freescale結構。如上所示,可 見0x10B0-0x17FF之間的快閃區塊為用於可變儲存之理想空間。同樣在NXP設計中,中斷向量可在底部,且因此記憶體映像之頂部可為儲存可變儲存之最為有效之處,可自展示NXP記憶體映像之圖式中看到相同情況。
巨集資訊可遵循可變儲存思路,例外之處在於其可為較大快閃區塊。只保持80個巨集之目錄資訊條目就可需要4K快閃區。巨集目錄條目可包括巨集ID、巨集資料開始及結束位址,及巨集名稱(20個萬國碼字符,NULL終止):
此可允許巨集資料在任何位元組上開始及結束而與快閃頁邊界無關。然而,管理此類型的巨集目錄結構可需要所有巨集資料在每次巨集刪除之後分解片段。此將留下可用於巨集資料儲存之最大未使用部分。所有未使用的巨集儲存可予以抹除而非程式化,從而允許巨集資料在來自協定命令時直接寫入至快閃區。
在下文中,將描述向啟動載入器模式之切換。
根據各種實施例的用於NXP處理器及 Freescale處理器兩者的各種裝置及方法可向啟動載入器模式切換及返回,而不涉及製造資料或可變儲存。此隔離可為所要的,因為裝置之欄位將陷入啟動載入器模式中,例如因為在可變儲存更新事件期間電力遭移除。可變儲存更新事件可隱密地執行,以使得使用者可不得而知當下為拔下裝置或將系統關機之不佳時間。
啟動載入器之基本要求可仍為能夠在電力中 斷發生時且在韌體更新器程序期間之任何點恢復。為滿足此要求,可存在快閃旗標,該快閃旗標在每次啟動時獲校驗以判定裝置是否應重新進入啟動載入器模式。
根據各種實施例,裝置碼之最後位元組可為啟動載入器狀態旗標。兩個處理器之間的實行方案可由於不同的快閃能力而稍有改變。NXP快閃可能夠將『1』位元與『0』位元進行與運算(AND)以產生不同變數而不抹除完整頁:#定義DFU_SIGNATURE 0x12305670 //輸入DFU模式簽章值
#定義STD_SIGNATURE 0x12345678 //標準裝置簽章值
NXP裝置韌體中之最後變數(正好在可變儲存之下-參見如上所述的NXP LPC1343記憶體映像)可設置成STD_SIGNATURE,裝置碼將STD_SIGNATURE與DFU_SIGNATURE進行與運算以切換至啟動載入器模式。在韌體更新過程期間,STD_SIGNATURE可抹除至 0xFFFFFFFF,但下一次啟動可直至0xFFFFFFFF重新程式化至STD_SIGNATURE時才可去往裝置韌體。
Freescale快閃設計可僅允許任何快閃位置在一旦抹除快閃頁事件之後即獲重新程式化。此可由於變數可採取的兩個值而提出額外的挑戰,該等值之一為0xFF,其可在抹除快閃頁事件發生之後為精確相同值:#定義DFU_SIGNATURE 0xF8 //輸入DFU模式簽章值
#定義STD_SIGNATURE 0xFF //標準裝置簽章值
因此,STD_SIGNATURE可藉由STD_SIGNATURE變數之相同快閃頁中的另一個變數來限定,該另一變數始終藉由韌體定義為0xAA。標準模式可僅在限定變數為0xAA且STD_SIGNATURE為0xFF時有效。又,此可保證啟動旗標設置成BOOTLOADER_MODE直至韌體之最後位元組獲程式化。
在下文中,將描述儲存更新。
作為此增強過程之部分,不同儲存類型中每一者之更新可為邏輯上隔離。此舉可有助於保證在狀態偶然變化的情況下,狀態可為正確的,因為更新之意圖得以保存。單發定時器可用於允許多個協定變化在單次快閃更新事件中集中到一起,替代相繼發出的許多命令中之每一者具有相應的快閃更新事件。此外,可變儲存之更新可不發生,除非正被寫入的資料實際上不同於當前儲存於快閃 區中之資料。可常常要求裝置儲存與在上一次啟動時要求該等裝置儲存之資料相同的資料。
在下文中,將描述freescale快閃更新注解。 當位址自.S19檔案轉換至要抹除之快閃頁時,通常可使用以0xFE00進行與運算的開始位址以判定要抹除之快閃頁。Freescale JM60部分可具有兩個感興趣部分快閃頁,該等部分快閃頁可在指定要抹除之頁面時需要管理(care)。第一部分快閃頁可為頁面中自0x10B0至0x11FF,其可允許頁面以0x1000位址抹除,從而配合用於判定抹除位址之以上方案。第二部分快閃頁可為頁面中自0x1960至0x19FF,其可僅允許0x1960之位址對其抹除(以0xFE00進行與運算=0x1800的0x1960之位址將不可用)。應注意,對Freescale韌體而言,裝置韌體之最後位元組可保持未定義,從而強制中斷直接在啟動區塊之前的.S19輸出檔案。 韌體可不支援跨於未受保護及受保護快閃區域之區塊程式。
在下文中,將描述NXP快閃更新注解。因為可存在更多一些可用於啟動區塊中之碼空間來支援NXP處理器上之啟動載入器,所以該代碼可將Freescale類型的程式化轉化成匹配NXP處理器之需要的支援。例如,NXP可需要一次性最少寫入256個位元組。亦可需要256個位元組寫入於256位元組邊界上。
Freescale類型的程式化可認為快閃頁為每一512位元組位址,而不是每一4096位元組位址,因此NXP 碼可校驗頁面是否已抹除且可跳過後續請求。Freescale類型的程式化可設法每次程式化8位元組。NXP碼可將所有寫入內容對準至256位元組邊界,且可緩衝資料直至最小量之資料可用於寫入。
若未達成此等仿真增強,則韌體更新器將載送用於各處理器的不同程式化算法。
在下文中,將描述32位元啟動載入器支援。
各種裝置可不再限於64K的位址空間,且因此16位元位址可不再足以允許韌體獲適當更新。根據各種實施例,可提供32位元格式,其向後與16位元啟動載入器相容,因此跨於所有裝置僅需要使用一個韌體更新器應用程式。
第一變換可為:USB串描述符『bType』值可設置成0x05,指示32位元位址空間連同4K抹除扇區之大小、256位元組程式對準要求及256個位元組之程式化區塊大小。當前,0x04之『bType』值可為16位元位址空間、4K抹除扇區、對準的256位元組及大小程式化區段中之256位元組。如以下更詳細所述,命令可加以變換以在16位元及32位元啟動載入器兩者上工作,且此等命令事實上可在先前版本的啟動載入器上工作,無需任何變換。然而,仍可存在一個原因使得FWU應用程式必須讀取此USB串描述符『bType』值,且可知曉繼續將裝置程式化進行至何種程度(尤其在輸入為二進制檔案的情況下如此,其中在一些狀況下,若碼影像藉由編譯/鏈接過程外部的一些工具操 縱,則必定如此)。
32位元增強可能夠向後相容,因為USB設置標頭封包可呈小端讀取格式(Little-Endian format),且結束位址值可從未使用。
表3展示16位元啟動載入器USB設置標頭。
在下文中,將描述根據各種實施例的啟動載入器裝置。當裝置置於啟動載入器模式時,可重新枚舉為啟動載入器裝置。此啟動載入器裝置可在其功能上受限制,且可僅支援最小命令集通過USB枚舉且隨後處置韌體更新。此裝置可不再為支援增強協定之裝置。
一旦已發出進入啟動載入器模式之協定命令且已過去適當量之時間以允許裝置經歷重置及重新枚舉,韌體更新器即可使用VID及PID來驗證裝置在啟動載入器模式(例如0x1532、0x110D)中。因為多個裝置可在任何一個的時間附接至系統(且所有裝置可在啟動載入器模式中,此情況不見得存在但卻有可能),所以韌體更新器可讀取啟動載入器裝置描述符中之原始DEVICE_PID值且可將其與所要目標裝置相比較。
作為啟動載入器裝置,可支援以下最小USB命令集:-GET_STATUS(0x00); -SET_ADDRESS(0x05);-GET_DESCRIPTOR(0x06);-GET_CONFIRURATION(0x08);以及-SET_CONFIGURATION(0x09)。
韌體更新器應用程式可使用USB控制轉移來發出啟動載入器裝置命令。
表4展示啟動載入器USB設置標頭。
如表4所示,USB設置標頭用法可已改變來以極地要求方式發出32位元相容啟動載入器命令(參見以上表3)。受支援的啟動載入器命令可如下:-PROGRAM(0x81)-開始位址、長度及資料;-ERASE_PAGE(0x82)-頁面位址;-EXIT_BOOTLOADER(0x84)-執行USB &裝置重置;-VERIFY(0x87)-開始位址、長度及資料;以及-GET_RESULT(0x8F)-0x01=成功,0xFF=錯誤。
如先前注解,NXP啟動載入器支援可更為複 雜一些,且可仿效更受約束的Freescale啟動載入器支援。Freescale啟動載入器支援可需要:ERASE_PAGE命令始終處於快閃頁邊界(快閃大小為0x0200個位元組),其中有兩個例外情況下。參看以上Freescale MC9S08JM60之記憶體映像,可見由於暫存器/RAM之Freescale置放而存在兩個部分快閃頁。此等快閃頁可在0x10B0-0x11FF及0x1960-0x19FF處,且可需要藉由給予彼等頁面之開始位址(0x10B0及0x1960)來抹除。所有其他抹除可開始於快閃邊界(示例性抹除序列可為:0x10B0、0x1200、0x1400、0x1600、0x1960、0x1A00、0x1C00、......0xFE00)。
抹除序列可包括:ERASE_PAGE(start_address),接著GET_RESULT命令,其可返回成功(0x01)或失敗(0xFF)。以下ERASE_PAGE實例如表5所示可抹除2M位元組部分之最後4K區塊(0x001FF000)。表6展示GET_RESULT命令。
程式化及驗證循環可在相同位址處同等地取用相同資料,從而在各個命令之後獲得結果。程式資料可不跨距於未受保護及受保護區域(藉由啟動載入器保護且在抹除及程式化循環期間保存);因此,.S19或.HEX檔案可為藉由發送16個位元組之線路的剖析線。因為線路之大 小,所以可不益於發送較大資料塊。.S19及.HEX檔案可經構建以便受保護快閃頁與不受保護快閃頁之間始終存在線路中斷。
程式化序列可包括:16個位元組資料之 PROGRAM(start_address)封包、返回成功(0x01)或失敗(0xFF)之GET_RESULT。以下PROGRAM(表7)及VERIFY(表8)實例可作用於2M位元組部分之最後16個位元組(0x001FFFF0)。
欲發出的最後命令可為EXIT_BOOTLOADER命令(例如,如以下表9所示),其可引起裝置再一次重新枚舉,以再一次作為在裝置操作模式中之裝置呈現。
可存在快閃旗標,該快閃旗標可指示裝置在啟動載入器模式中。此旗標可僅在獲成功地程式化之後才清除。可在每一次裝置啟動時校驗此旗標,且若設置該旗標,則裝置可進入啟動載入器模式。此機制可允許在任何 時間移除(包括在抹除循環之後立即移除)電力,且允許裝置藉由辨識出裝置在啟動載入器模式中且隨後校驗原始DEVICE_PID而得以恢復。
亦可存在使用者恢復機制。若錯誤的韌體已成功地程式化於裝置中且其不再回應協定命令,則使用者可拔下裝置,可在將裝置回插時保持按下一些鍵/按鈕組合(例如對滑鼠而言:左、中、右按鈕;例如對鍵盤而言=Fn鍵或其他特殊鍵)。韌體更新器應用程式可如上所述使用原始DEVICE_PID值來偵測哪個裝置附接且需要韌體更新。
雖然已參考特定實施例來特定地展示且描述本發明,但是熟習此項技術者應理解,可在不脫離如隨附申請專利範圍所定義之本發明之精神及範疇的情況下對該等實施例進行形式及細節方面的各種改變。本發明之範疇由附加申請專利範圍指示,且因此落入申請專利範圍之等效物的含義及範圍內之所有改變均欲受涵蓋。

Claims (29)

  1. 一種系統,包含:一更新器;即將更新的複數個裝置;其中該複數個裝置中的各個裝置包括:一啟動載入器;一記憶體,係組配來儲存用於控制該裝置之韌體資料;一處理器,係組配來以一裝置操作模式或以一啟動載入器模式操作;以及一介面;其中該裝置操作模式為其中該處理器控制該啟動載入器以載入儲存於該記憶體中之該韌體資料的一模式;且其中該啟動載入器模式為其中該處理器控制該啟動載入器以使用該介面發送該裝置之一識別符,使用該介面從該更新器接收該韌體資料且將該韌體資料儲存於該記憶體中的一模式;其中該啟動載入器係組配來當該處理器操作在該啟動載入器模式時由該啟動載入器設置一快閃旗標;其中該快閃旗標是只有在所儲存的該韌體資料獲得驗證之後才會被清除;其中該裝置係組配來在檢測該快閃旗標被設置時該裝置操作在該啟動載入器模式;其中該更新器係組配來偵測該複數個裝置且從該複數個裝置判定至少一裝置在該啟動載入器模式中,且自動地用一匹配韌體對在該啟動載入器模式中的該至少一裝置快閃儲存;其中該啟動載入器係組配來在藉由該更新器快閃儲存該匹配韌體期間保護製造資料;以及其中該製造資料包括三色燈光校準值。
  2. 如請求項1所述之系統,其中,該各個裝置包含一輸入裝置及一輸出裝置中之至少一者。
  3. 如請求項2所述之系統,其中,該韌體資料包含用於控制該輸入裝置及該輸出裝置中之該至少一者的資料。
  4. 如請求項1所述之系統,其中,該啟動載入器模式為其中該處理器不控制該啟動載入器以載入儲存於該記憶體中之該韌體資料的一模式。
  5. 如請求項1所述之系統,其中,該介面包含以下至少一者:一通用串列匯流排介面、一火線介面、一PS/2介面、一霹靂介面、一區域網路介面、一藍芽介面、一紅外線介面、一無線區域網路介面及一行動無線電通訊介面。
  6. 如請求項1所述之系統,其中,該啟動載入器使用儲存於該記憶體之一固定部分中的資料。
  7. 如請求項1所述之系統,其中,該各個裝置進一步包含一接收器,係組配來接收自該裝置操作模式變換至該啟動載入器模式之一指令。
  8. 如請求項7所述之系統,其中,該接收器組配來使用該介面接收該指令。
  9. 如請求項1所述之系統,其中,該各個裝置進一步包含一接收器,係組配來接收自該啟動載入器模式變換至該裝置操作模式之一指令。
  10. 如請求項9所述之系統,其中,該接收器組配來使用該介面接收該指令。
  11. 如請求項1所述之系統,其中,該各個裝置進一步包含:一有效性檢驗器,係組配來校驗儲存於該記憶體中之該韌體資料是否有效;以及一模式變換器,係組配來在判定儲存於該記憶體中之該韌體資料無效時自該裝置操作模式變換至該啟動載入器模式。
  12. 如請求項1所述之系統,其中,該各個裝置進一步組配來判定在啟動該裝置時以何種模式操作。
  13. 一種更新器,包含:一接收器,係組配來自在一啟動載入器模式中之至少一裝置接收該至少一裝置之一識別符;以及一發送器,係組配來以基於所接收的識別符將韌體資料發送至該至少一裝置;其中該至少一裝置係組配來當該至少一裝置操作在該啟動載入器模式時由該至少一裝置設置一快閃旗標;其中該快閃旗標是只有在所儲存的該韌體資料獲得驗證之後才會被清除;其中該至少一裝置係組配來在檢測該快閃旗標被設置時該至少一裝置操作在該啟動載入器模式;且其中該更新器係組配來偵測即將更新的複數個裝置且從該複數個裝置判定至少一裝置在該啟動載入器模式中,且自動地用一匹配韌體對在該啟動載入器模式中的該至少一裝置快閃儲存;其中該發送器係進一步組配來將用於變換至一裝置操作模式之一指令發送至在該啟動載入器模式中之該至少一裝置;其中該裝置操作模式係該至少一裝置之一處理器控制該至少一裝置之一啟動載入器以載入儲存於該記憶體中之韌體資料的一模式;其中該啟動載入器係組配來在藉由該更新器快閃儲存一匹配韌體期間保護製造資料;以及其中該製造資料包括三色燈光校準值。
  14. 如請求項13所述之更新器,其中,該發送器進一步組配來將用於變換至該啟動載入器模式之一指令發送至不在該啟動載入器模式中之至少一裝置。
  15. 一種控制系統之方法,該方法包含以下步驟:控制在該系統內即將更新的複數個裝置中之至少一裝置的一啟動載入器;控制該至少一裝置的一記憶體以儲存用於控制該至少一裝置之韌體資料;控制該至少一裝置的一處理器來以一裝置操作模式或以一啟動載入器模式操作;控制該至少一裝置的一介面;以及控制一更新器來偵測即將更新的該複數個裝置且從該複數個裝置判定至少一裝置在該啟動載入器模式中,且自動地用一匹配韌體對在該啟動載入器模式中的該至少一裝置快閃儲存;其中該裝置操作模式為其中該處理器控制該啟動載入器以載入儲存於該記憶體中之該韌體資料的一模式;且其中該啟動載入器模式為其中該處理器控制該啟動載入器以使用該介面發送該至少一裝置之一識別符,使用該介面從該更新器接收該韌體資料且將該韌體資料儲存於該記憶體中的一模式;其中該啟動載入器係組配來當該處理器操作在該啟動載入器模式時由該啟動載入器設置一快閃旗標;其中該快閃旗標是只有在所儲存的該韌體資料獲得驗證之後才會被清除;其中該至少一裝置係組配來在檢測該快閃旗標被設置時該至少一裝置操作在該啟動載入器模式;其中該啟動載入器係組配來在藉由該更新器快閃儲存一匹配韌體期間保護製造資料;以及其中該製造資料包括三色燈光校準值。
  16. 如請求項15所述之方法,其中,該複數個裝置中的各個裝置包含一輸入裝置及一輸出裝置中之至少一者。
  17. 如請求項15所述之方法,其中,該韌體資料包含用於控制該輸入裝置及該輸出裝置中之該至少一者的資料。
  18. 如請求項15所述之方法,其中,該啟動載入器模式為其中該處理器不控制該啟動載入器以載入儲存於該記憶體中之該韌體資料的一模式。
  19. 如請求項15所述之方法,其中,該介面包含以下至少一者:一通用串列匯流排介面、一火線介面、一PS/2介面、一霹靂介面、一區域網路介面、一藍芽介面、一紅外線介面、一無線區域網路介面及一行動無線電通訊介面。
  20. 如請求項15所述之方法,其中,該啟動載入器使用儲存於該記憶體之一固定部分中的資料。
  21. 如請求項15所述之方法,其進一步包含:控制該至少一裝置的一接收器以接收自該裝置操作模式變換至該啟動載入器模式之一指令。
  22. 如請求項21所述之方法,其中,該接收器使用該介面接收該指令。
  23. 如請求項15所述之方法,其進一步包含:控制該至少一裝置的一接收器以接收自該啟動載入器模式變換至該裝置操作模式之一指令。
  24. 如請求項23所述之方法,其中,該接收器使用該介面接收該指令。
  25. 如請求項15所述之方法,其進一步包含:控制該至少一裝置的一有效性檢驗器以校驗儲存於該記憶體中之該韌體資料是否有效;以及控制該至少一裝置的一模式變換器以在判定儲存於該記憶體中之該韌體資料無效時自該裝置操作模式變換至該啟動載入器模式。
  26. 如請求項15所述之方法,其中,該複數個裝置中的各個裝置判定在啟動該裝置時以何種模式操作。
  27. 一種控制更新器之方法,該方法包含以下步驟:控制一接收器以自在一啟動載入器模式中之至少一裝置接收該至少一裝置之一識別符;以及控制一發送器以基於所接收的識別符將韌體資料發送至該至少一裝置;其中該至少一裝置係組配來當該裝置操作在該啟動載入器模式時由該至少一裝置設置一快閃旗標;其中該快閃旗標是只有在所儲存的該韌體資料獲得驗證之後才會被清除;其中該至少一裝置係組配來在檢測該快閃旗標被設置時該裝置操作在該啟動載入器模式;其中該更新器係組配來偵測即將更新的複數個裝置且從該複數個裝置判定至少一裝置在該啟動載入器模式中,且自動地用一匹配韌體對在該啟動載入器模式中的該至少一裝置快閃儲存;其中該啟動載入器係組配來在藉由該更新器快閃儲存該匹配韌體期間保護製造資料;以及其中該製造資料包括三色燈光校準值。
  28. 如請求項27所述之方法,其中,該發送器將用於變換至該啟動載入器模式之一指令發送至不在該啟動載入器模式中之至少一裝置。
  29. 如請求項27所述之方法,其中,該發送器將用於變換至一裝置操作模式之一指令發送至在該啟動載入器模式中之該至少一裝置。
TW103135698A 2013-12-13 2014-10-15 系統,更新器,控制系統之方法,及控制更新器之方法 TWI661305B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??PCT/US2013/074848 2013-12-13
PCT/US2013/074848 WO2015088544A1 (en) 2013-12-13 2013-12-13 Devices, updaters, methods for controlling a device, and methods for controlling an updater

Publications (2)

Publication Number Publication Date
TW201523259A TW201523259A (zh) 2015-06-16
TWI661305B true TWI661305B (zh) 2019-06-01

Family

ID=53371636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103135698A TWI661305B (zh) 2013-12-13 2014-10-15 系統,更新器,控制系統之方法,及控制更新器之方法

Country Status (6)

Country Link
US (1) US10209999B2 (zh)
EP (1) EP3080693B1 (zh)
CN (1) CN106030526B (zh)
AU (1) AU2013407292B2 (zh)
TW (1) TWI661305B (zh)
WO (1) WO2015088544A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015174285A1 (ja) * 2014-05-16 2015-11-19 ソニー株式会社 情報処理装置、情報処理方法、および電子機器
US10331459B2 (en) * 2015-03-30 2019-06-25 Sony Corporation Apparatus and method
CN108369566B (zh) 2015-11-23 2021-11-05 惠普发展公司,有限责任合伙企业 校准数据标识
CN109923528B (zh) * 2017-09-25 2021-04-09 华为技术有限公司 一种数据访问的方法和装置
US11157613B2 (en) * 2018-05-17 2021-10-26 Arm Ip Limited Systems and methods for monitoring power consumption
KR20200087557A (ko) * 2019-01-11 2020-07-21 주식회사 엘지화학 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
CN109918124A (zh) * 2019-03-15 2019-06-21 盛科网络(苏州)有限公司 SOC启动早期载入用户配置的方法及系统、Bootloader镜像配置方法
US11321451B2 (en) * 2019-05-15 2022-05-03 Blackberry Limited Method and system for detection of post compilation modification of binary images
CN111142907B (zh) * 2019-12-25 2022-07-29 声耕智能科技(西安)研究院有限公司 离线关键词识别系统分区升级方法
CN111796848A (zh) * 2020-07-08 2020-10-20 中国第一汽车股份有限公司 Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
CN113971146A (zh) * 2020-07-22 2022-01-25 旺玖科技股份有限公司 具自动更新固件功能的usb集线装置及具有该usb集线装置的主机系统
TWI749658B (zh) * 2020-07-22 2021-12-11 旺玖科技股份有限公司 具自動更新韌體功能的usb集線裝置及具有該usb集線裝置的主機系統
US11467822B2 (en) 2021-03-15 2022-10-11 Google Llc Methods for optics module firmware in-field upgrade
CN113590143B (zh) * 2021-08-03 2023-11-17 北京北航天宇长鹰无人机科技有限公司 基于usb的mcu程序下载方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314455B1 (en) * 1999-02-24 2001-11-06 International Business Machines Corporation Data processing system and method for permitting a server to remotely initiate a client's boot block recovery
US20080027587A1 (en) * 2003-12-23 2008-01-31 Rain Bird Corporation Code replacement for irrigation controllers
US20080086652A1 (en) * 2006-10-10 2008-04-10 Ken Krieger Updating a power supply microcontroller
US20090037717A1 (en) * 2007-07-30 2009-02-05 Hanes David H Firmware retrieval across a network
TW201030605A (en) * 2009-02-04 2010-08-16 Novatek Microelectronics Corp Method of safe and recoverable firmware update and device the same

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030106052A1 (en) * 2001-12-03 2003-06-05 Morrison John A. System and method for high availability firmware load
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7197634B2 (en) 2004-01-16 2007-03-27 Dell Products L.P. System and method for updating device firmware
US7809836B2 (en) * 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
US20050262337A1 (en) * 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
US7487343B1 (en) * 2005-03-04 2009-02-03 Netapp, Inc. Method and apparatus for boot image selection and recovery via a remote management module
US20080002758A1 (en) * 2006-06-28 2008-01-03 Infineon Technologies Ag Communications device and method for changing utilization data
US8007771B2 (en) * 2006-07-07 2011-08-30 The Procter & Gamble Company Flavors for oral compositions
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
CN100456246C (zh) * 2007-01-23 2009-01-28 北京映翰通网络技术有限公司 一种固件程序升级的方法与装置
CN101447015B (zh) * 2008-12-30 2011-12-28 飞天诚信科技股份有限公司 对ccid设备固件程序进行二次开发的方法及装置
CN101674267B (zh) * 2009-06-30 2012-05-30 中兴通讯股份有限公司 一种家庭网关及其实现usb设备驱动的方法
US9152492B2 (en) * 2009-10-07 2015-10-06 Hewlett-Packard Development Company, L.P. Performing recovery of a headless computer
US9292277B2 (en) 2009-12-18 2016-03-22 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
US8769525B2 (en) * 2011-01-31 2014-07-01 Digi International Inc. Remote firmware upgrade device mapping
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US8819661B2 (en) * 2011-11-28 2014-08-26 Echostar Technologies L.L.C. Systems and methods for determining times to perform software updates on receiving devices
CN102681871A (zh) * 2012-04-25 2012-09-19 广州致远电子股份有限公司 一种基于通信接口的固件升级系统
US9110754B2 (en) * 2012-05-31 2015-08-18 Microsoft Technology Licensing, Llc Computing device update control
CN102945177B (zh) * 2012-11-16 2015-09-02 深圳市汇川控制技术有限公司 Plc固件升级系统及方法
US9389873B2 (en) * 2013-05-13 2016-07-12 Google Inc. Kiosk application mode for operating system
US9667074B2 (en) * 2014-03-28 2017-05-30 Symbol Technologies, Llc Apparatus and method for updating remote standalone firmware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314455B1 (en) * 1999-02-24 2001-11-06 International Business Machines Corporation Data processing system and method for permitting a server to remotely initiate a client's boot block recovery
US20080027587A1 (en) * 2003-12-23 2008-01-31 Rain Bird Corporation Code replacement for irrigation controllers
US20080086652A1 (en) * 2006-10-10 2008-04-10 Ken Krieger Updating a power supply microcontroller
US20090037717A1 (en) * 2007-07-30 2009-02-05 Hanes David H Firmware retrieval across a network
TW201030605A (en) * 2009-02-04 2010-08-16 Novatek Microelectronics Corp Method of safe and recoverable firmware update and device the same

Also Published As

Publication number Publication date
WO2015088544A1 (en) 2015-06-18
CN106030526B (zh) 2019-01-18
EP3080693A4 (en) 2017-11-01
US10209999B2 (en) 2019-02-19
US20170024221A1 (en) 2017-01-26
TW201523259A (zh) 2015-06-16
AU2013407292B2 (en) 2016-10-27
CN106030526A (zh) 2016-10-12
EP3080693A1 (en) 2016-10-19
AU2013407292A1 (en) 2016-06-23
EP3080693B1 (en) 2019-07-24

Similar Documents

Publication Publication Date Title
TWI661305B (zh) 系統,更新器,控制系統之方法,及控制更新器之方法
TWI515660B (zh) 韌體變量更新方法
US20140331034A1 (en) Embedded system boot from a storage device
US7761653B2 (en) Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
EP2972809B1 (en) Boot sequencing for multi boot devices
US20090113196A1 (en) Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
CN103246536B (zh) 物联定位系统的固件无线升级方法
KR101640207B1 (ko) 부트로더 및 임베디드 시스템 업그레이드 방법
KR100801014B1 (ko) Dos 부트 프로그램을 내장한 디스크를 구비하는 하드 디스크 드라이브와 그를 포함하는 컴퓨터 시스템, 상기 하드 디스크 드라이브의 펌웨어 다운로드 방법 및 그를 포함하는 기록 매체
WO2017186089A1 (zh) 一种车载解码器软件升级文件的方法
CN203324968U (zh) 更新系统固件或参数的装置及其电脑系统
TWI442321B (zh) 電子裝置開機加速方法以及相關之電子裝置
US20100095044A1 (en) Motherboard system, storage device for booting up thereof and connector
US9411605B2 (en) Device-less and system agnostic unified extensible firmware interface (UEFI) driver
US20130346650A1 (en) Controller, electronic equipment unit, and usb device control method
US10635450B2 (en) Electronic device performing booting operation based on boot-up instruction provided from endpoint device
TW200935301A (en) Enhanced microprocessor or microcontroller
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
WO2012155439A1 (zh) 一种bios启动系统和方法
US20140317391A1 (en) Method for changing a system program and processing device utilizing the same
WO2017121077A1 (zh) 一种双引导文件的切换方法及装置
CN105204896A (zh) 一种数字存储示波器的BootLoader设计方法
TWI726524B (zh) 電子處理裝置及記憶體控制方法
JP5489278B2 (ja) 情報処理装置及びその起動方法
Dice Quick boot: a guide for embedded firmware developers