TWI595361B - 電子裝置與其載入程式碼之方法 - Google Patents
電子裝置與其載入程式碼之方法 Download PDFInfo
- Publication number
- TWI595361B TWI595361B TW102146139A TW102146139A TWI595361B TW I595361 B TWI595361 B TW I595361B TW 102146139 A TW102146139 A TW 102146139A TW 102146139 A TW102146139 A TW 102146139A TW I595361 B TWI595361 B TW I595361B
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- code
- electronic device
- storage unit
- valid
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- General Engineering & Computer Science (AREA)
Description
本案是有關於一種電子裝置,且特別是有關於一種具有共用快閃記憶體之多個控制器的電子裝置。
在現有的消費性電子產品中,經常需要多個控制器組成控制系統,以共同完成大量的運算。多個控制器與處理器可以利用相同類型或不同功能的晶片組成。
一般而言,在具有多控制器的控制系統中,每一個控制器都需要應配置一個相對應的快閃記憶體,以存放資料與韌體。然而,隨著電子裝置所使用的控制器與快閃記憶體的數目越來越多,將造成整體所需佔用的空間越來越大,亦將造成硬體成本隨之上升。
本案之電子裝置包含第一控制器、第二控制器、快閃記憶體與傳輸介面。快閃記憶體電性連接第一控制器,並用以存放對應於第一控制器的第一程式碼與對應於第二
控制器的第二程式碼。傳輸介面電性連接於第一控制器與第二控制器之間。第一控制器經由傳輸介面與第二控制器進行連線,並驗證第二程式碼是否有效,當第二程式碼為有效時,第一控制器將第二程式碼載入至第二控制器,以使第二控制器執行第二程式碼。
本案之一種載入程式碼之方法,適用於一種電子裝置。電子裝置包含第一控制器、第二控制器、連結於第一控制器與第二控制器的一傳輸介面,以及用以儲存第一程式碼及第二程式碼的快閃記憶體。載入程式碼之方法包含下列步驟:藉由第一控制器執行第一啟動程式,並載入第一程式碼;藉由第一控制器執行第一程式碼;藉由第一控制器驗證第二程式碼是否有效;當第二程式碼為有效時,第一控制器對第二控制器發出一寫入請求,以將第二程式碼載入第二控制器,使第二控制器執行第二程式碼。
綜上所述,透過應用上述的實施例,電子裝置可藉由共享同一快閃記憶體以對多個控制器進行韌體更新。如此一來,具有多個控制器的電子裝置之電路面積與硬體成本得以縮減。
為讓本案之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附符號之說明如下:
100、400‧‧‧電子裝置
120‧‧‧主控制器
122、124、142、144‧‧‧儲存單元
126、146‧‧‧驗證電路
128、148‧‧‧資料緩衝器
140‧‧‧副控制器
160‧‧‧快閃記憶體
162、164‧‧‧資料區塊
180‧‧‧傳輸介面
300‧‧‧方法
S301、S302、S303、S304、S305、S306、S307、S308、
S309、S310‧‧‧步驟
CODE1、CODE2‧‧‧程式碼
為讓本案之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下:圖1為根據本案一實施例所繪示的電子裝置之示意圖;
圖2根據圖1之實施例中快閃記憶體的配置示意圖;圖3為根據本案一實施例所繪示的載入程式碼方法之流程圖;以及圖4根據本案之一實施例繪示一種電子裝置之示意圖。
以下將以圖式及詳細敘述清楚說明本揭示內容之精神,任何所屬技術領域中具有通常知識者在瞭解本揭示內容之較佳實施例後,當可由本揭示內容所教示之技術,加以改變及修飾,其並不脫離本揭示內容之精神與範圍。
圖1為根據本案一實施例所繪示的電子裝置100之示意圖。電子裝置100可為個人電腦、智慧型手機、平板電腦、智慧電視等多種電子產品。如圖1所示,電子裝置100包含主控制器120、副控制器140、快閃記憶體160與傳輸介面180。快閃記憶體160電性連接主控制器120。傳輸介面180電性連接於主控制器120與副控制器140之間。
如圖1所示,主控制器120包含儲存單元122與儲存單元124。副控制器包含儲存單元142與儲存單元144。具體而言,儲存單元122與儲存單元142可為一程式唯讀記憶體(program ROM),儲存單元122用以存放主控制器120的啟動程式,而儲存單元142用以存放副控制器140的啟動程式。此處所指之啟動程式可執行韌體的啟動載入
器(boot loader)、與其他副控制器(例如控制器140)建立連線或發出控制命令等多個功能。
儲存單元124與儲存單元144可為程式隨機存取記憶體(program RAM),儲存單元124用以自快閃記憶體160載入主控制器120的韌體(如後所述之程式碼CODE1),而儲存單元144可用以自快閃記憶體160載入副控制器140的韌體(如後所述之程式碼CODE2)。
在本案多個實施例中,主控制器120與副控制器140可為相同或不同功能類型的晶片,但不限於此。傳輸介面180包含串列周邊介面(Serial Peripheral Interface)匯流排、網路、序列先進技術附件(Serial advanced technology attachment,SATA)介面等等。
圖2根據圖1之實施例中快閃記憶體160的配置示意圖。為了方便說明,請一併參照圖1與圖2。如圖2所示,快閃記憶體160包含資料區塊162與資料區塊164。資料區塊162用以存放對應於主控制器120的程式碼CODE1。資料區塊164用以存放對應於副控制器140的程式碼CODE2。舉例而言,程式碼CODE1可為主控制器120之韌體,程式碼CODE2可為副控制器140之韌體,且程式碼CODE1與程式碼CODE2能夠以隨機存取記憶體代碼(RAM code)的形式儲存於快閃記憶體160中。
在本實施例中,主控制器120可經由傳輸介面180與副控制器140建立連線,並將程式碼CODE2經由快閃記憶體160載入至副控制器140的儲存單元144,以更新副控
制器140的韌體。
藉由上述的配置,副控制器140可在不具有額外的快閃記憶體的情況下,經由主控制器120來進行更新副控制器140的韌體。因此,電子裝置100的電路面積得以降低。
圖3為根據本案一實施例所繪示的載入程式碼的方法300之流程圖。載入程式碼的方法300可應用於圖1的電子裝置100上。請一併參照圖1至圖3,為了方便說明,圖1之電子裝置100之具體操作將與方法300一併說明。此外,下述之各個實施例之電子裝置100與方法300僅以兩個控制器為例,但本案並不以此為限。
在步驟S301中,當電子裝置100重置並開機後,主控制器120執行儲存單元122之啟動程式,而副控制器140執行儲存單元142之啟動程式。接著,主控制器120會經由快閃記憶體160載入程式碼CODE1(即主控制器120之韌體)至儲存單元124,並轉而執行程式碼CODE1。
在步驟S302中,主控制器120經由傳輸介面180對副控制器140發送連線請求,以對副控制器140建立連線。
在步驟S303中,主控制器120會讀取快閃記憶體160中的程式碼CODE2(亦即副控制器140之韌體),並確認此程式碼CODE2是否有效(valid),也就是確認程式碼CODE2是否可被副控制器140正確地執行。若快閃記憶體160中的程式碼CODE2為有效,執行步驟S304。反之,程
式碼CODE2不為有效,則執行步驟S310。
具體而言,在步驟S303中,主控制器120可利用循環冗餘檢測(Cyclic Redundancy Check,CRC)、韌體簽章(firmware signature)、檢查總和(checksum)等多種驗證機制來對程式碼CODE2進行驗證。在本案多個實施例中,上述多種驗證機制之具體實施方式可為軟體或硬體。舉例來說,若以設計彈性為首要考量,則前述之驗證機制可選用軟體實現,例如預先設計於前述之程式碼CODE1中。或者,若以執行速度及精確性為首要考量,前述之驗證機制可選用硬體實現,例如為後述圖4中之驗證電路126。
圖4根據本案之一實施例繪示一種電子裝置400之示意圖。相較於電子裝置100,電子裝置400中之控制器120更包含了驗證電路126與資料緩衝器128。驗證電路126包含運算處理器、用以執行驗證演算法之數位運算電路,或可為其它具備驗證功能的電路組合。資料緩衝器128可以從驗證電路126接收控制碼CODE2,並經由傳輸介面180傳送至副控制器140。
舉例而言,考量到資料緩衝器128的資料容量,主控制器120可將程式碼CODE2分段傳送至驗證電路126進行驗證。驗證電路126可利用如前述之CRC或checksum之驗證機制來驗證所傳送的程式碼CODE2是否為有效的。若程式碼CODE2為有效的,驗證電路126可分段傳送程式碼CODE2至資料緩衝器128,而資料緩衝器128可再分段傳送程式碼CODE2至副控制器140。
請再次參照圖1至圖3,在步驟304中,主控制器120對副控制器140發送狀態確認請求,以確認副控制器140是否正在執行儲存單元142之啟動程式。副控制器140在接收到前述的狀態確認請求後,會回覆本身之操作狀態至主控制器120,以確認副控制器140是否正在執行儲存單元142之啟動程式。若確認副控制器140在執行儲存單元142之啟動程式,則執行步驟S305。反之,則執行步驟S310。
在步驟S305中,主控制器120確認副控制器140正在執行儲存單元142之啟動程式,主控制器120會對副控制器140發出寫入請求,以將快閃記憶體160中的程式碼CODE2載入至副控制器140之儲存單元144。
透過前述的步驟S304,主控制器120可先確認副控制器140是否正在執行啟動程式並判斷是否進行載入程式碼CODE2至儲存單元144之操作(即步驟S305)。如此一來,可避免在副控制器140正在執行儲存單元144所原先儲存的程式碼時,主控制器120又對儲存單元144載入程式碼CODE2之情形。若主控制器120在副控制器140正在執行儲存單元144原先儲存的程式時,對儲存單元144覆寫程式碼CODE2,可能會讓儲存單元144原先儲存之程式出現錯誤,進而使副控制器140運作出現失效。
在步驟S306中,副控制器140會對傳送後的程式碼CODE2再次進行驗證,以確認的程式碼CODE2是否為有效,藉此確認程式碼CODE2在傳輸過程中沒有出現錯誤或漏傳等情形。
同樣的,副控制器140亦可利用前述之多個驗證機制來執行驗證的操作,且此處之實施方式亦可使用軟體或硬體。以軟體而言,驗證機制可預先設計於儲存單元142之啟動程式中。
或者,以硬體而言,如圖4所示,電子裝置400中之副控制器140更包含驗證電路146與資料緩衝器148。驗證電路146之架構可相同於前述之驗證電路126,但不限於此。舉例來說,資料緩衝器148可分段接收自快閃記憶體160載入的程式碼CODE2,並分段傳送至驗證電路146。驗證電路146分段接收程式碼CODE2,並逐一進行驗證,當程式碼CODE2為有效時,驗證電路146傳送程式碼CODE2至儲存單元144。
請再次參照圖1至圖3,在步驟S307中,在副控制器140確認程式碼CODE2為有效後,主控制器120對副控制器140發送重置請求,以使副控制器140重啟,並開始執行儲存單元144所儲存之程式碼CODE2。
在步驟S308中,副控制器140回覆主控制器120已重置成功,主控制器120會再次對副控制器140重新進行連線。
在步驟S309中,主控制器120對副控制器140發送狀態確認請求,以確認副控制器140是否正在執行儲存單元144中之程式碼CODE2。若副控制器140以正確執行程式碼CODE2,代表副控制器140載入新的程式碼CODE2之作業已經完成。反之,若連線逾時或是副控制器140並
未正確執行程式碼CODE2時,代表載入程式碼CODE2的作業出現錯誤,則執行步驟S310。
在步驟S310中,主控制器120會分別根據步驟S303、S304或S309所回傳之資訊而產生錯誤通知,以告知使用者對電子裝置100再次進行重置或相關之檢查。
雖然本案已以實施方式揭露如上,然其並非用以限定本案,任何熟習此技藝者,在不脫離本案之精神和範圍內,當可作各種之更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧電子裝置
120‧‧‧主控制器
122、124、142、144‧‧‧儲存單元
140‧‧‧副控制器
160‧‧‧快閃記憶體
180‧‧‧傳輸介面
Claims (9)
- 一種電子裝置,包含:一第一控制器;一第二控制器;一快閃記憶體,電性連接該第一控制器,並用以存放對應於該第一控制器的一第一程式碼與對應於該第二控制器的一第二程式碼:以及一傳輸介面,電性連接於該第一控制器與該第二控制器之間;其中該第一控制器經由該傳輸介面與該第二控制器進行連線,並驗證該第二程式碼是否有效,當該第二程式碼為有效,且該第一控制器確認該第二控制器正在執行第二啟動程式時,該第一控制器將該第二程式碼載入至該第二控制器,以使該第二控制器執行該第二程式碼。
- 如請求項1所述之電子裝置,其中該第一控制器包含:一第一儲存單元,用以存放一第一啟動程式;以及一第二儲存單元,其中當該電子裝置開機時,該第一控制器執行該第一啟動程式,並將該第一程式碼載入至該第二儲存單元。
- 如請求項1所述之電子裝置,其中該第二控制器包含一第三儲存單元,用以存放該第二啟動程式,其中當 該電子裝置開機時,該第二控制器執行該第二啟動程式。
- 如請求項3所述之電子裝置,其中該第二控制器更包含一第四儲存單元,其中當該第二控制器執行該第二啟動程式時,該第一控制器對該第二控制器發出一寫入請求,並將該第二程式碼載入至該第四儲存單元。
- 如請求項1所述之電子裝置,其中該第一控制器更包含:一第一驗證電路,用以驗證該第二程式碼是否有效;以及一第一資料緩衝器,用以自該快閃記憶體接收該第二程式碼,並傳送該第二程式碼至該第二控制器。
- 如請求項1所述之電子裝置,其中該第二控制器更包含:一第二資料緩衝器,用以自該第一控制器接收該第二程式碼;以及一第二驗證電路,用以驗證該第二資料緩衝器所接收的該第二程式碼是否有效,並傳送該第二程式碼至該第二資料緩衝器。
- 一種載入程式碼的方法,適用於一電子裝置,該電子裝置包含一第一控制器、一第二控制器、一傳輸介面 以及一快閃記憶體,其中該傳輸介面連結於該第一控制器與該第二控制器,該快閃記憶體儲存一第一程式碼及一第二程式碼,該方法包含:藉由該第一控制器執行一第一啟動程式,並載入該第一程式碼;藉由該第一控制器執行該第一程式碼;以及藉由該第一控制器驗證該第二程式碼是否有效,其中,當該第二程式碼為有效,且該第一控制器確認該第二控制器正在執行第二啟動程式時,該第一控制器對該第二控制器發出一寫入請求,以將該第二程式碼載入該第二控制器。
- 如請求項7所述之載入程式碼的方法,更包含:藉由該第二控制器確認所載入的該第二程式碼是否有效,並且當該第二程式碼為有效時,該第一控制器對該第二控制器發出一重置請求,以使該第二控制器執行該第二程式碼。
- 如請求項8所述之載入程式碼的方法,更包含:藉由該第一控制器經由該傳輸介面與該第二控制器重新建立連線,並經由該第一控制器對該第二控制器發送一狀態確認請求,以驗證該第二控制器是否已執行該第二程式碼。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102146139A TWI595361B (zh) | 2013-12-13 | 2013-12-13 | 電子裝置與其載入程式碼之方法 |
US14/561,195 US9880538B2 (en) | 2013-12-13 | 2014-12-04 | Electronic device and method for loading program code thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102146139A TWI595361B (zh) | 2013-12-13 | 2013-12-13 | 電子裝置與其載入程式碼之方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201523260A TW201523260A (zh) | 2015-06-16 |
TWI595361B true TWI595361B (zh) | 2017-08-11 |
Family
ID=53368323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102146139A TWI595361B (zh) | 2013-12-13 | 2013-12-13 | 電子裝置與其載入程式碼之方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9880538B2 (zh) |
TW (1) | TWI595361B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6953211B2 (ja) * | 2017-07-18 | 2021-10-27 | キヤノン株式会社 | 情報処理装置及び情報処理装置の制御方法 |
KR20210079601A (ko) * | 2019-12-20 | 2021-06-30 | 주식회사 실리콘웍스 | 펌웨어를 업데이트하는 터치 시스템 및 방법 |
EP4078421A4 (en) * | 2020-05-05 | 2023-12-27 | Blate, Alex | TERMINAL AND PROTOCOL FOR TRUSTED DIGITAL MANUFACTURING |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200741462A (en) * | 2006-04-12 | 2007-11-01 | Mediatek Inc | Non-volatile memory sharing system for multiple processors and memory sharing method thereof |
TW201037523A (en) * | 2009-04-15 | 2010-10-16 | Magima Digital Information Co Ltd | Nand flash control system and control method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370189B2 (en) * | 2004-09-30 | 2008-05-06 | Intel Corporation | Method and apparatus for establishing safe processor operating points in connection with a secure boot |
WO2006082985A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US7739517B2 (en) * | 2005-03-31 | 2010-06-15 | Intel Corporation | Hardware-based authentication of a software program |
JP2007206885A (ja) * | 2006-01-31 | 2007-08-16 | Toshiba Corp | コンピュータシステム及びシステム起動方法 |
CN101479718B (zh) * | 2006-06-27 | 2011-04-06 | 日本电气株式会社 | 多处理器系统以及使用它的便携式终端 |
US9866370B2 (en) * | 2007-12-05 | 2018-01-09 | Itt Manufacturing Enterprises, Llc | Configurable ASIC-embedded cryptographic processing engine |
CN101777038A (zh) | 2010-02-08 | 2010-07-14 | 华为终端有限公司 | 在处理器之间共享存储器的方法、多处理器设备 |
US20120179899A1 (en) * | 2011-01-07 | 2012-07-12 | International Business Machines Corporation | Upgradeable processor enabling hardware licensing |
CN102226895B (zh) | 2011-06-01 | 2013-05-01 | 展讯通信(上海)有限公司 | 协处理器和主处理器共享存储器的系统及访问方法 |
-
2013
- 2013-12-13 TW TW102146139A patent/TWI595361B/zh active
-
2014
- 2014-12-04 US US14/561,195 patent/US9880538B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200741462A (en) * | 2006-04-12 | 2007-11-01 | Mediatek Inc | Non-volatile memory sharing system for multiple processors and memory sharing method thereof |
TW201037523A (en) * | 2009-04-15 | 2010-10-16 | Magima Digital Information Co Ltd | Nand flash control system and control method |
Also Published As
Publication number | Publication date |
---|---|
US20150168934A1 (en) | 2015-06-18 |
TW201523260A (zh) | 2015-06-16 |
US9880538B2 (en) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018120213A1 (zh) | 一种固件更新方法及控制器 | |
US9846616B2 (en) | Boot recovery system | |
US20180322012A1 (en) | Systems and methods for detection of firmware image corruption and initiation of recovery | |
US20150254072A1 (en) | Peripheral device and method for updating firmware thereof | |
US10437580B2 (en) | Software updating methods and systems | |
KR102358470B1 (ko) | 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 | |
US20090094450A1 (en) | Firmware image update and management | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
US20100082955A1 (en) | Verification of chipset firmware updates | |
JP2007213292A (ja) | マルチプロセッサシステム及びスレーブシステムの起動方法 | |
TWI595361B (zh) | 電子裝置與其載入程式碼之方法 | |
JP2013164842A (ja) | Bmcファームウェアの修復機能を持つ電子装置及びその修復方法 | |
CN111857303B (zh) | 一种fpga复位方法、装置、系统和电子设备 | |
US20240295980A1 (en) | Memory system with accessible storage region to gateway | |
JP7298427B2 (ja) | プログラム更新システムおよびプログラム更新方法 | |
US20220391192A1 (en) | Ota master, center, system, method, non-transitory storage medium, and vehicle | |
US11461479B2 (en) | Computing device and method for operating same | |
JPWO2020158377A1 (ja) | 電子制御装置、電子制御装置のセキュリティ検証方法 | |
CN110990116A (zh) | 在智能网卡和虚拟机之间传输数据的方法、装置和系统 | |
CN104731577A (zh) | 多系统和启动所述多系统的方法 | |
JP2018132956A (ja) | 制御装置および制御プログラム更新方法 | |
US20140181496A1 (en) | Method, Apparatus and Processor for Reading Bios | |
JP2012212415A (ja) | 無線基地局装置 | |
JP2013041436A (ja) | マルチプロセッサシステム及び起動方法 | |
JP6898527B2 (ja) | 電子装置を介したオペレーティングシステムの修復 |