TW201349114A - 嵌入式控制器的韌體管理方法及系統 - Google Patents

嵌入式控制器的韌體管理方法及系統 Download PDF

Info

Publication number
TW201349114A
TW201349114A TW101118149A TW101118149A TW201349114A TW 201349114 A TW201349114 A TW 201349114A TW 101118149 A TW101118149 A TW 101118149A TW 101118149 A TW101118149 A TW 101118149A TW 201349114 A TW201349114 A TW 201349114A
Authority
TW
Taiwan
Prior art keywords
area
work area
firmware
embedded controller
code
Prior art date
Application number
TW101118149A
Other languages
English (en)
Inventor
Chen-Yang Wu
Chih-Hsiung Hsieh
Original Assignee
Hon Hai Prec Ind Co Ltd
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 Hon Hai Prec Ind Co Ltd filed Critical Hon Hai Prec Ind Co Ltd
Priority to TW101118149A priority Critical patent/TW201349114A/zh
Priority to US13/795,564 priority patent/US20130318394A1/en
Publication of TW201349114A publication Critical patent/TW201349114A/zh

Links

Classifications

    • 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/1417Boot up procedures

Abstract

一種嵌入式控制器的韌體管理方法,所述方法包括:從Flash ROM的保護區獲取工作區的位置;檢查工作區是否損壞,若是,則從工作區中讀取並執行韌體代碼,若否,則從Flash ROM的保護區獲取備份區的位置,並從備份區將韌體代碼恢復至工作區。本發明還公開了一種嵌入式控制器的韌體管理系統。根據本發明的技術方案,可以在對嵌入式控制器的韌體刷新或升級失敗後,自動恢復備份的韌體,避免嵌入式控制器因使用者不當或者不慎的操作致使其韌體損壞而無法正常工作。

Description

嵌入式控制器的韌體管理方法及系統
本發明涉及韌體管理領域,尤指一種嵌入式控制器的韌體管理方法及系統。
筆記型電腦因其良好的攜帶性及移動性,越來越來普及。嵌入式控制器(Embedded Controller)在筆記型電腦中有著相當重要的作用,用於控制主要I/O(輸入輸出)的周邊設備,例如:鍵盤、滑鼠、觸控板等,嵌入式控制器中一般內建某種型號的微處理器(如8032),可以讓筆記型電腦完成各種複雜的ACPI電源管理(包括風扇控制管理)等等。嵌入式控制器除了本身硬體之外,還需要韌體(Firmware,又稱微代碼),這個部分主要由嵌入式控制器廠商和幾大BIOS生產公司(如Phonix等)配合開發完成。
筆記型電腦在設計調試階段或者出廠後,嵌入式控制器廠商或BIOS生產公司需要通過更新嵌入式控制器的韌體來修正或添加一些系統上的功能,所以會在網路上發佈有關嵌入式控制器的最新版本韌體,讓使設計研發人員或消費使用者自行下載並更新嵌入式控制器的韌體。但大部分的消費使用者都非專業人士,所以常常在自行更新嵌入式控制器的韌體時因為不小心操作錯誤或沒注意到更新的環境而導致韌體被破壞,最後導致系統無法再開機。在筆記型電腦的設計調試過程中,也常常發生因為嵌入式控制器燒入過程中發生錯誤而導致筆記型電腦無法正常開機的狀況,這時就需要額外的人力來拆除機器,並透過專門的燒入工具來重新燒入韌體。
鑒於以上內容,有必要提供一種安全可靠、簡單易用的嵌入式控制器的韌體管理方法及系統。
一種嵌入式控制器的韌體管理方法,所述方法包括:
從Flash ROM的保護區獲取工作區的位置;
檢查工作區是否損壞,若是,則從工作區中讀取並執行韌體代碼,若否,則從Flash ROM的保護區獲取備份區的位置,並從備份區將韌體代碼恢復至工作區。
優選地,所述檢查工作區是否損壞的步驟包括:檢查工作區中是否包含一預定義代碼,若是,則確定工作區沒有損壞,若否,則確定工作區損壞。
優選地,所述方法還包括:從備份區將韌體代碼恢復至工作區後,在工作區裡寫入所述預定義代碼。
優選地,所述方法還包括:啟動嵌入式控制器後,將Flash ROM中的保護區和備份區設置為防寫。
優選地,所述方法在從備份區將韌體代碼恢復至工作區之前還包括:從備份區讀取一壓縮包,對該壓縮包進行解壓後獲得韌體代碼。
一種嵌入式控制器的韌體管理系統,所述系統包括:
工作區獲取模組,用於從Flash ROM的保護區獲取工作區的位置;
工作區檢查模組,用於檢查工作區是否損壞,
韌體執行模組,用於當工作區沒有損壞時,從工作區中讀取並執行韌體代碼;
備份區獲取模組,用於當工作區損壞若時,從Flash ROM的保護區獲取備份區的位置;及
韌體恢復模組,用於當工作區損壞時,從備份區將韌體代碼恢復至工作區。
優選地,所述工作區檢查模組,用於檢查工作區中是否包含一預定義代碼,若是,則確定工作區沒有損壞,若否,則確定工作區損壞。
優選地,所述系統還包括預定義代碼寫入模組,用於從備份區將韌體代碼恢復至工作區後,在工作區裡寫入所述預定義代碼。
優選地,所述系統還包括防寫模組,用於在嵌入式控制器啟動後,將Flash ROM中的保護區和備份區設置為防寫。
優選地,所述系統還包括解壓縮模組,用於在從備份區將韌體代碼恢復至工作區之前,從備份區讀取一壓縮包,對該壓縮包進行解壓後獲得韌體代碼。
與習知技術相比,上述韌體管理方法及系統,藉由從Flash ROM的保護區獲取工作區的位置,再檢查工作區是否損壞,若是,則從工作區中讀取並執行韌體代碼,若否,則從Flash ROM的保護區獲取備份區的位置,並從備份區將韌體代碼恢復至工作區,這樣,即使是使用者因操作不當使所述工作區被嚴重損壞,導致韌體代碼無法正常工作,也可以自動從備份區將韌體代碼恢復至工作區,使嵌入式控制器可以應對惡劣的韌體刷新環境。
請參閱圖1,圖中示意性的示出了根據本發明一種實施方式的用於筆記型電腦中的一嵌入式控制器10和一Flash ROM(閃速記憶體)20,所述嵌入式控制器10用於控制筆記型電腦的主要I/O的周邊設備,所述Flash ROM 20用於存儲所述嵌入式控制器10的韌體代碼,所述韌體代碼用於指令所述嵌入式控制器10執行和完成多項操作。
在圖1所示的Flash ROM 20中,建立了三個區塊,分別為保護區22、工作區24和備份區26。
所述保護區22用於存儲所述工作區24和所述備份區26的位置,這裡所講的位置是指區塊的起始位址和結束位址。所述保護區22設定為嚴格保護的區域,所述嵌入式控制器10每次被啟動後,所述保護區22都立即被鎖定為防寫,這樣可以避免使用者因不當的操作將所述保護區22內的資料抹除,從而使得即時在非常惡劣的環境下(比如使用者刷新韌體失敗),也可以從所述保護區22讀取到存儲於該區塊的完整資料。考慮到只是存儲所述工作區24和所述備份區26的位置以及所述Flash ROM 20自身並不充裕的存儲空間,在一實施方式中,所述保護區22的大小設定為16千位元組。
所述工作區24用於存儲所述嵌入式控制器10的韌體代碼,還可用於作為所述嵌入式控制器10運行時的存儲空間。所述工作區24作為所述嵌入式控制器10的韌體存放位置,因此所述工作區24是在對所述嵌入式控制器10的韌體進行刷新升級時的直接操作物件,也因此是最易被損壞的區塊,一旦使用者在刷新或升級韌體時出現錯誤操作,所述工作區24內的資料就會被破壞,使得所述嵌入式控制器10無法正常工作。在一實施方式中,在所述工作區24內預設一段預定義代碼,用以指示所述工作區24是否完整,如果所述工作區24內可以正確讀取到所述預定義代碼,則表明所述工作區24沒有損壞,其中存儲的韌體代碼也可以正常使用,如果所述工作區24內無法找到所述預定義代碼,則表明所述工作區24已經因某些操作被損壞,其中存儲的韌體代碼已經變得不可靠或者不可用。在向所述工作區24刷入韌體時,一般都是從所述工作區24的起始位址開始的,所以為了更好的指示所述工作區24在刷入韌體時沒有出現錯誤,在本實施方式中,所述預定義代碼存放於所述工作區24的最前面區域,也就是靠近所述工作區24起始位址的區域。這樣,刷新韌體的操作輔一開始,所述預定義代碼就被抹除掉,當刷新韌體的操作完全成功之後,再向所述工作區24寫入所述預定義代碼,如果刷新韌體的操作已經開始但沒有成功完成,則所述預定義代碼不會被寫入到所述工作區24,進而,所述嵌入式控制器10在所述工作區24中找不到所述預定代碼,就會認定所述工作區24已損壞,其中的韌體代碼不可靠或不可用。
所述備份區26用於存儲韌體代碼的備份,當所述工作區24損壞無法提供正確完整的韌體代碼時,可以將存儲於所述備份區26中的韌體代碼恢復至所述工作區24。為減小韌體代碼的備份所佔空間,韌體代碼的備份被壓縮後以壓縮包的形式存儲於所述備份區26,當需要從所述備份區26恢復韌體代碼時,先將該壓縮包解壓縮從中獲得韌體代碼。當所述韌體代碼被成功恢復至所述工作區24後,再向所述工作區24寫入所述預定義代碼,指示所述工作區24已經恢復正常工作。所述備份區26設定為嚴格保護的區域,所述嵌入式控制器10每次被啟動後,所述備份區26都立即被鎖定為防寫,這樣可以避免使用者因不當的操作將所述備份區26內的資料抹除,從而使得即時在非常惡劣的環境下(比如使用者刷新韌體失敗),也可以從所述備份區26讀取到存儲於該區塊的完整資料。
請參閱圖2,圖中示意性的示出了根據本發明一種實施方式的用於管理所述嵌入式控制器10的韌體的方法流程圖,所述方法包括以下步驟:
步驟S201,啟動所述嵌入式控制器10,並初始化所述嵌入式控制器10,包括所述嵌入式控制器10的上電和自檢。
步驟S202,設置所述保護區22為防寫,防止對所述保護區22進行寫操作。
步驟S203,從所述保護區22獲取所述工作區24和所述備份區26的位置。
步驟S204,設置所述備份區26為防寫,防止對所述備份區26進行寫操作。
步驟S205,檢查所述工作區24中是否包含所述預定義代碼,若是,則進入步驟S206,若否,則進入不收S207。
步驟S206,從所述工作區24中讀取韌體代碼,並執行該韌體代碼。
步驟S207,將所述備份區26中的壓縮包解壓縮,獲得韌體代碼。
步驟S208,將從所述備份區26獲得的韌體代碼恢復至所述工作區24。
步驟S209,向所述工作區24寫入所述預定義代碼,然後返回步驟S201,重新開機所述嵌入式控制器10。
本領域的普通技術人員可以理解,實現上述方法實施例中的全部或部分步驟是可以通過程式來指令相關的硬體完成,相應的程式可以存儲於一種電腦可讀存儲介質中,上述提到的存儲介質可以是ROM(唯讀記憶體)、RAM(隨機訪存記憶體)、磁片或光碟等。
請參閱圖3,圖中示意性的示出了根據本發明一種實施方式中的用於管理所述嵌入式控制器10的韌體的韌體管理系統30的功能框圖,所述韌體管理系統30包括初始化模組301、防寫模組302、工作區獲取模組303、工作區檢查模組304、韌體執行模組305、備份區獲取模組306、解壓縮模組307、韌體恢復模組308及預定義代碼寫入模組309。
所述初始化模組301,用於啟動所述嵌入式控制器10,並初始化所述嵌入式控制器10,包括所述嵌入式控制器10的上電和自檢。
所述防寫模組302,用於在所述嵌入式控制器10啟動後,將所述保護區22和所述備份區26設置為防寫,防止對所述保護區22和所述備份區26進行寫操作。
所述工作區獲取模組303,用於從所述保護區22獲取所述工作區24的位置。
所述工作區檢查模組304,用於檢查所述工作區24中是否包含所述預定義代碼,若是,則所述工作區24確定為沒有損壞,若否,則所述工作區24確定為損壞。
所述韌體執行模組305,用於當所述工作區24沒有損壞時,從所述工作區24中讀取韌體代碼,並執行該韌體代碼。
所述備份區獲取模組306,用於當所述工作區24損壞時,從所述保護區22獲取所述備份區26的位置。
所述解壓縮模組307,用於當所述工作區24損壞時,將所述備份區26中的壓縮包解壓縮,獲得韌體代碼。
所述韌體恢復模組308,用於當所述工作區24損壞時,將從所述備份區26獲得的韌體代碼恢復至所述工作區24。
所述預定義代碼寫入模組309,用於當韌體代碼從所述備份區26恢復至所述工作區24後,向所述工作區24寫入所述預定義代碼。
以上所述韌體管理系統30可以集成設置於一電腦設備或工具中,也可以設置成單獨的功能實體,和所述電腦設備或工具連接以向所述電腦設備或工具提供所述韌體管理系統30的功能。
值得注意的是,上述裝置實施例中所包含的各個模組只是按照功能邏輯進行劃分的,但並不局限於上述的劃分,只要能夠實現相應的功能即可。另外,各功能模組的具體名稱也只是為了便於相互區分,並不用於限制本發明的保護範圍。
與現有技術相比,上述韌體管理方法及系統,藉由從Flash ROM的保護區獲取工作區的位置,再檢查工作區是否損壞,若是,則從工作區中讀取並執行韌體代碼,若否,則從Flash ROM的保護區獲取備份區的位置,並從備份區將韌體代碼恢復至工作區,這樣,即使是使用者因操作不當使所述工作區被嚴重損壞,導致韌體代碼無法正常工作,也可以自動從備份區將韌體代碼恢復至工作區,使嵌入式控制器可以應對惡劣的韌體刷新環境。
綜上所述,本發明確已符合發明專利要求,爰依法提出專利申請。惟,以上所述者僅為本發明之較佳實施方式,舉凡熟悉本發明技藝之人士,爰依本發明之精神所作之等效修飾或變化,皆應涵蓋於以下之申請專利範圍內。
10...嵌入式控制器
20...Flash ROM
22...保護區
24...工作區
26...備份區
30...韌體管理系統
301...初始化模組
302...防寫模組
303...工作區獲取模組
304...工作區檢查模組
305...韌體執行模組
306...備份區獲取模組
307...解壓縮模組
308...韌體恢復模組
309...預定義代碼寫入模組
圖1為本發明一種實施方式中的用於筆記型電腦中的嵌入式控制器和Flash ROM。
圖2為本發明一種實施方式中的用於管理嵌入式控制器的韌體的方法流程圖。
圖3為本發明一種實施方式中的嵌入式控制器的韌體管理系統的功能框圖。
30...韌體管理系統
301...初始化模組
302...防寫模組
303...工作區獲取模組
304...工作區檢查模組
305...韌體執行模組
306...備份區獲取模組
307...解壓縮模組
308...韌體恢復模組
309...預定義代碼寫入模組

Claims (10)

  1. 一種嵌入式控制器的韌體管理方法,所述方法包括:
    從Flash ROM的保護區獲取工作區的位置;
    檢查工作區是否損壞,若是,則從工作區中讀取並執行韌體代碼,若否,則從Flash ROM的保護區獲取備份區的位置,並從備份區將韌體代碼恢復至工作區。
  2. 如申請專利範圍第1項所述之嵌入式控制器的韌體管理方法,其中所述檢查工作區是否損壞的步驟包括:檢查工作區中是否包含一預定義代碼,若是,則確定工作區沒有損壞,若否,則確定工作區損壞。
  3. 如申請專利範圍第2項所述之嵌入式控制器的韌體管理方法,其中所述方法還包括:從備份區將韌體代碼恢復至工作區後,在工作區裡寫入所述預定義代碼。
  4. 如申請專利範圍第1項所述之嵌入式控制器的韌體管理方法,其中所述方法還包括:啟動嵌入式控制器後,將Flash ROM中的保護區和備份區設置為防寫。
  5. 如申請專利範圍第1項所述之嵌入式控制器的韌體管理方法,其中所述方法在從備份區將韌體代碼恢復至工作區之前還包括:從備份區讀取一壓縮包,對該壓縮包進行解壓後獲得韌體代碼。
  6. 一種嵌入式控制器的韌體管理系統,所述系統包括:
    工作區獲取模組,用於從Flash ROM的保護區獲取工作區的位置;
    工作區檢查模組,用於檢查工作區是否損壞,
    韌體執行模組,用於當工作區沒有損壞時,從工作區中讀取並執行韌體代碼;
    備份區獲取模組,用於當工作區損壞若時,從Flash ROM的保護區獲取備份區的位置;及
    韌體恢復模組,用於當工作區損壞時,從備份區將韌體代碼恢復至工作區。
  7. 如申請專利範圍第6項所述之嵌入式控制器的韌體管理系統,其中所述工作區檢查模組,用於檢查工作區中是否包含一預定義代碼,若是,則確定工作區沒有損壞,若否,則確定工作區損壞。
  8. 如申請專利範圍第7項所述之嵌入式控制器的韌體管理系統,其中所述系統還包括預定義代碼寫入模組,用於從備份區將韌體代碼恢復至工作區後,在工作區裡寫入所述預定義代碼。
  9. 如申請專利範圍第6項所述之嵌入式控制器的韌體管理系統,其中所述系統還包括防寫模組,用於在嵌入式控制器啟動後,將Flash ROM中的保護區和備份區設置為防寫。
  10. 如申請專利範圍第6項所述之嵌入式控制器的韌體管理系統,其中所述系統還包括解壓縮模組,用於在從備份區將韌體代碼恢復至工作區之前,從備份區讀取一壓縮包,對該壓縮包進行解壓後獲得韌體代碼。
TW101118149A 2012-05-22 2012-05-22 嵌入式控制器的韌體管理方法及系統 TW201349114A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101118149A TW201349114A (zh) 2012-05-22 2012-05-22 嵌入式控制器的韌體管理方法及系統
US13/795,564 US20130318394A1 (en) 2012-05-22 2013-03-12 Embedded controller firmware management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101118149A TW201349114A (zh) 2012-05-22 2012-05-22 嵌入式控制器的韌體管理方法及系統

Publications (1)

Publication Number Publication Date
TW201349114A true TW201349114A (zh) 2013-12-01

Family

ID=49622534

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101118149A TW201349114A (zh) 2012-05-22 2012-05-22 嵌入式控制器的韌體管理方法及系統

Country Status (2)

Country Link
US (1) US20130318394A1 (zh)
TW (1) TW201349114A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI793998B (zh) * 2022-01-27 2023-02-21 飛捷科技股份有限公司 用於控制系統的韌體架構及開機方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462400A (zh) 2014-07-02 2017-02-22 惠普发展公司,有限责任合伙企业 固件更新
US20160180095A1 (en) * 2014-12-23 2016-06-23 Nitin V. Sarangdhar Measured boot capability
KR102612842B1 (ko) * 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185191B2 (en) * 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
US7730326B2 (en) * 2004-11-12 2010-06-01 Apple Inc. Method and system for updating firmware stored in non-volatile memory
US8332839B2 (en) * 2008-08-15 2012-12-11 Lsi Corporation Method and system for modifying firmware image settings within data storage device controllers
KR20110026578A (ko) * 2009-09-08 2011-03-16 엘지전자 주식회사 시스템 메모리의 에러 보정 장치 및 방법
US8132055B2 (en) * 2009-11-20 2012-03-06 International Business Machines Corporation Operating system-firmware interface update recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI793998B (zh) * 2022-01-27 2023-02-21 飛捷科技股份有限公司 用於控制系統的韌體架構及開機方法

Also Published As

Publication number Publication date
US20130318394A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
TWI501253B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
TWI515660B (zh) 韌體變量更新方法
TWI722361B (zh) 系統開機碼記憶體管理方法、記憶體裝置與應用其之電子系統
US9164756B2 (en) Software updating process for an embedded device
US8601255B2 (en) Approaches for updating bios
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
JP5077726B1 (ja) コンピュータ、その制御方法及びプログラム
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
TW201818253A (zh) 檢測系統及檢測方法
TW201349114A (zh) 嵌入式控制器的韌體管理方法及系統
JP2008504628A (ja) 安全なフラッシング
CN103425549A (zh) 嵌入式控制器的固件管理方法及系统
CN105786545B (zh) 基于异构混合内存的断点恢复方法和系统
WO2015184732A1 (zh) 引导程序的存储方法、故障恢复方法及设备、计算机存储介质
WO2018049798A1 (zh) 一种缓存分区重构的方法和装置
TW201516654A (zh) 電腦bios恢復系統及方法
CN105630523A (zh) 计算机bios资料恢复系统及方法
TWI650646B (zh) 纜線數據機及其操作方法
TWI754221B (zh) 軟體存留性關閉技術
JP2006338610A (ja) レジストリ情報の修復方法および情報処理装置
TW201508768A (zh) 電子設備
TW201701154A (zh) 開機系統與開機方法
JP6396874B2 (ja) 情報処理装置、情報処理装置起動方法、及び情報処理装置起動プログラム
TW201530434A (zh) 電子裝置與其非揮發性儲存裝置中開機程式的恢復方法
JP2022126549A (ja) 情報処理装置