TWI819826B - 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 - Google Patents
具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 Download PDFInfo
- Publication number
- TWI819826B TWI819826B TW111137363A TW111137363A TWI819826B TW I819826 B TWI819826 B TW I819826B TW 111137363 A TW111137363 A TW 111137363A TW 111137363 A TW111137363 A TW 111137363A TW I819826 B TWI819826 B TW I819826B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- data
- terminal
- test
- comparison result
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000007246 mechanism Effects 0.000 title claims abstract description 14
- 238000013024 troubleshooting Methods 0.000 title abstract 2
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000012360 testing method Methods 0.000 claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000010998 test method Methods 0.000 claims description 20
- 230000008030 elimination Effects 0.000 claims description 12
- 238000003379 elimination reaction Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 11
- 230000007423 decrease Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一種具有韌體更新錯誤排除機制的韌體更新方法,應用於電子系統中,包含:以韌體資料的部分資料做為測試資料進行測試程序,以傳送測試資料至處理端,並透過處理端的控制介面根據存取參數的設定將測試資料寫入至韌體儲存端後,透過控制介面自韌體儲存端進行讀取以與測試資料進行比對產生比對結果;在比對結果為不相符時,進行參數調整程序;再次進行測試程序,並在比對結果仍為不相符時再次進行參數調整程序;以及在比對結果為相符時,傳送韌體資料至處理端,並透過控制介面根據經由參數調整程序調整後的存取參數將韌體資料寫入韌體儲存端。
Description
本發明是關於韌體更新技術,尤其是關於一種具有韌體更新錯誤排除機制的電子系統及其韌體更新方法。
處理器在啟動流程中,是透過控制介面讀取外部儲存裝置內的韌體資料,以運行韌體資料來進行後續的啟動流程。
然而,當印刷電路板存在有迴路設計不良、佈局阻抗不匹配或是製程誤差時,會降低控制介面的電氣訊號品質,使控制介面讀寫外部儲存裝置的正確性降低。當處理器所執行的啟動流程是根據錯誤的韌體資料進行,啟動流程就會失敗而無法正常工作,更無法執行各種應用。
鑑於先前技術的問題,本發明之一目的在於提供一種具有韌體更新錯誤排除機制的電子系統及其韌體更新方法,以改善先前技術。
本發明包含一種具有韌體更新錯誤排除機制的韌體更新方法,應用於電子系統中,包含:由控制端以韌體資料的部分資料做為測試資料進行測試程序,以傳送測試資料至處理端,並透過處理端的控制介面根據複數存取參數的設定將測試資料寫入至韌體儲存端後,透過控制介面自韌體儲存端進行讀取以與測試資料進行比對產生比對結果;由控制端在比對結果為不相符時,對存取參數至少其中之一進行參數調整程序;由控制端在參數調整程序結束後以部分資料再次進行測試程序,並在比對結果仍為不相符時再次進行參數調整程序;以及由控制端在比對結果為相符時,由控制端傳送韌體資料至處理端,並透過控制介面根據經由參數調整程序調整後的存取參數將韌體資料寫入韌體儲存端。
本發明更包含一種具有韌體更新錯誤排除機制的電子系統,包含:韌體儲存端、處理端以及控制端。處理端包含控制介面。控制端配置以執行燒錄程式,以執行韌體更新方法,包含:以韌體資料的部分資料做為測試資料進行測試程序,以傳送測試資料至處理端,並透過處理端的控制介面根據複數存取參數的設定將測試資料寫入至韌體儲存端後,透過控制介面自韌體儲存端進行讀取以與測試資料進行比對產生比對結果;在比對結果為不相符時,對存取參數至少其中之一進行參數調整程序;在參數調整程序結束後以部分資料再次進行測試程序,並在比對結果仍為不相符時再次進行參數調整程序;以及在比對結果為相符時,傳送韌體資料至處理端,並透過控制介面根據經由參數調整程序調整後的存取參數將韌體資料寫入韌體儲存端。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本發明之一目的在於提供一種具有韌體更新錯誤排除機制的電子系統及其韌體更新方法,針對設置在不同品質的電路板上的處理端以及韌體儲存端進行測試,以獲得最佳的存取參數,提高韌體儲存端所儲存的韌體資料的正確性,並使處理端得以正確地自韌體儲存端讀取韌體資料。
請參照圖1。圖1顯示本發明之一實施例中,一種具有韌體更新錯誤排除機制的電子系統100的方塊圖。電子系統100包含:韌體儲存端110、處理端120以及控制端130。
韌體儲存端110為例如,但不限於快閃記憶體或可程式化唯讀記憶體(erasable programmable read only memory;EPROM),配置以進行與韌體相關的資料儲存。
處理端120可與韌體儲存端110形成於同一印刷電路板上而整合為一個電子裝置。處理端120包含控制介面140、存取暫存器150、參數儲存電路160以及資料儲存電路170。
控制介面140為例如,但不限於序列周邊介面(serial peripheral interface;SPI)或I
2C介面,配置以存取韌體儲存端110。
存取暫存器150與控制介面140相關,配置以設定控制介面140存取韌體儲存端110的方式。更詳細的說,處理端120可將複數存取參數AP寫入至存取暫存器150,以設定控制介面140而使控制介面140據以存取韌體儲存端110。
存取參數AP是用以設定控制介面140的存取能力。於一實施例中,存取參數AP包含例如,但不限於迴轉率(slew rate)、驅動力(driving ability)以及時脈頻率。其中,迴轉率為控制介面140產生的電性訊號的電壓上升量相對時間的斜率,驅動力為控制介面140產生的電性訊號的電流大小,時脈頻率則為控制介面140據以運作產生電性訊號的頻率。
須注意的是,在上述實施例中,存取暫存器150在圖1是以一個繪示。然而實際上,存取暫存器150可依不同的存取參數AP的數量設置不同數目的暫存器進行儲存。並且,存取參數AP的數目與類型可視實際需求而不同。本發明並不限於此。
參數儲存電路160配置以儲存存取參數AP,以由處理端120讀取後據以寫入至存取暫存器150來對控制介面140進行設定。於一實施例中,參數儲存電路160為一次性燒錄記憶體(one-time programming memory;OTP ROM)或電子熔絲記憶體(eFuse)。
資料儲存電路170配置以儲存控制介面140要寫入至韌體儲存端110的資料。更詳細的說,資料儲存電路170配置以儲存與韌體相關的資料,以由處理端120透過控制介面140寫入至韌體儲存端110。於一實施例中,資料儲存電路170為隨機存取記憶體(random access memory;RAM)。
須注意的是,處理端120可更包含例如處理電路、匯流排或其他用以在上述各電路之間進行控制、協調與資料傳輸的元件(未繪示於圖中)。處理端120可藉由此些元件的控制,使控制介面140、存取暫存器150、參數儲存電路160以及資料儲存電路170得以進行以下所述的運作。
控制端130配置以執行燒錄程式BP,以控制處理端120,並透過控制介面140對韌體儲存端110進行韌體更新。於一實施例中,控制端130可為獨立於處理端120以及韌體儲存端110外的遠端電子裝置(未繪示於圖中)上所運行的作業系統,或處理端120中的處理器上所運行的作業系統,以執行燒錄程式BP。本發明並不限於此。
請同時參照圖2。圖2顯示本發明一實施例中,一種具有韌體更新錯誤排除機制的韌體更新方法200的流程圖。
除前述裝置外,本發明另揭露一種韌體更新方法200,應用於例如,但不限於圖1的電子系統100中。更詳細的說,控制端130可藉由執行燒錄程式BP來執行韌體更新方法200,以透過處理端120對韌體儲存端110進行韌體更新。韌體更新方法200的一實施例如圖2所示,包含下列步驟。
於步驟S210,由控制端130以韌體資料FD的部分資料PD做為測試資料進行測試程序,以傳送測試資料至處理端120,並透過處理端120的控制介面140根據存取參數AP的設定將測試資料寫入至韌體儲存端110後,透過控制介面140自韌體儲存端110進行讀取以與測試資料進行比對產生比對結果。
部分資料PD為韌體資料FD的一部份。於一實施例中,部分資料PD的大小可為例如,但不限於4千位元組(Kilobyte;KB)。然而本發明並不限於此。
於一實施例中,控制端130在第一次進行測試程序時,是以預設的存取參數AP設定控制介面140來存取韌體儲存端110。舉例而言,控制端130可預設使控制介面140的迴轉率為最大迴轉率、驅動力為最小驅動力以及時脈頻率為最大時脈頻率,以使控制介面140據以存取韌體儲存端110。
以下將對測試程序更詳細的實施方式進行說明。
請同時參照圖3。圖3顯示本發明一實施例中,測試程序300的流程圖。測試程序300的一實施例如圖3所示,包含下列步驟。
於步驟S310,由控制端130透過控制介面140將韌體儲存端110進行資料抹除。
於步驟S320,由控制端130將測試資料載入至處理端120的資料儲存電路170。於一實施例中,控制端130可透過例如,但不限於有線形式(如通用序列匯流排)亦或無線形式如(如藍牙或WiFi),將測試資料載入至處理端120的資料儲存電路170。
於步驟S330,由控制端130透過控制介面140將測試資料自資料儲存電路170寫入至韌體儲存端110。
於步驟S340,由控制端130透過控制介面140對韌體儲存端110進行讀取以與測試資料進行比對產生比對結果。
在測試程序結束後,圖2的流程將繼續進行。
於步驟S220,由控制端130判斷比對結果是否相符。
於步驟S230,由控制端130在比對結果為不相符時,由控制端130對存取參數AP至少其中之一進行參數調整程序。
於一實施例中,控制端130在參數調整程序至少進行迴轉率的調降、驅動力的調升以及時脈頻率的調降其中之一。
控制端130在參數調整程序結束後,將以部分資料PD再次進行測試程序。因此,流程將回至步驟S210進行測試程序,並於步驟S220進行比對。在部分資料比對結果仍為不相符時,流程將再次執行步驟S230進行參數調整程序。
於一實施例中,控制端130依序在不同的參數調整程序中,針對不同的存取參數AP依序分階段進行調整。
舉例而言,控制端130依序在不同的參數調整程序中優先階段性調降迴轉率,在迴轉率調降至最小迴轉率時階段性調升驅動力,並在驅動力調升至最大驅動力時階段性調降時脈頻率。然而在其他實施例中,控制端130亦可能同時調整一個以上的存取參數,或是對於存取參數的調整幅度有不同的設定。本發明並不限於此。
於步驟S240,由控制端130在比對結果為相符時,傳送韌體資料FD至處理端120,並透過控制介面140根據存取參數AP將韌體資料FD寫入韌體儲存端110。
於一實施例中,控制端130可在將韌體資料FD寫入韌體儲存端110後即完成並終止燒錄的程序。然而,為確保韌體資料FD的正確性,控制端130可選擇性地進一步以韌體資料FD做為測試資料進行如圖3所示的測試程序,以根據經過調整的存取參數AP將韌體資料FD寫入韌體儲存端110後,自韌體儲存端110進行讀取以與測試資料進行比對產生相對應的比對結果。
控制端130可在比對結果為不相符時,對存取參數AP至少其中之一進行參數調整程序,並在參數調整程序結束後以韌體資料FD做為測試資料再次進行測試程序,並在比對結果仍為不相符時再次進行參數調整程序。
於一實施例中,在上述參數調整程序中,控制端130在判斷存取參數AP已無法再被調整時,將進一步判斷韌體資料FD無法更新至韌體儲存端110。更詳細的說,在存取參數AP已無法再被調整時,控制端130將判斷控制介面140受到印刷電路板迴路設計不良、佈局阻抗不匹配或是製程誤差而影響到訊號電氣特性,使韌體資料FD無法更新至韌體儲存端110。
另一方面,控制端130可在比對結果為相符時,將調整後的存取參數AP儲存至處理端120更包含的參數儲存電路160,以使處理端120可在執行其所在的電子裝置的啟動流程時,自參數儲存電路160讀取存取參數AP並設定控制介面140,進而透過控制介面140自韌體儲存端110讀取韌體資料FD來據以執行後續的啟動流程。
請參照圖4。圖4顯示本發明另一實施例中,韌體更新方法400的流程圖。韌體更新方法400包含在一個使用情境下,用以執行上述韌體更新方法200的詳細步驟以及為確保韌體資料FD的正確性所進行的後續步驟。韌體更新方法400的一實施例如圖4所示,包含下列步驟。
於步驟S401,由控制端130以韌體資料FD的部分資料PD做為測試資料進行測試程序,以傳送測試資料至處理端120,並透過處理端120的控制介面140根據存取參數AP的設定將測試資料寫入至韌體儲存端110後,透過控制介面140自韌體儲存端110進行讀取以與測試資料進行比對產生比對結果。
如先前所述,在控制端130在第一次進行測試程序時,是預設使迴轉率為最大迴轉率、驅動力為最小驅動力以及時脈頻率為最大時脈頻率,以使控制介面140據以存取韌體儲存端110。
於步驟S402,由控制端130判斷比對結果是否相符。
於步驟S403,由控制端130在比對結果為不相符時,判斷迴轉率是否已調降至最小迴轉率。
於步驟S404,由控制端130在判斷迴轉率尚未調降至最小迴轉率時,階段性調降迴轉率。其中,每一階段的迴轉率調整量可視實際需求而設定為固定值或是不同的數值。
流程將回至步驟S401以再次進行測試程序並產生比對結果,並於步驟S402判斷比對結果是否相符。如比對結果持續不相符且迴轉率尚未調降至最小迴轉率,則流程將反覆在步驟S401~S404間進行,直到迴轉率已調降至最小迴轉率。
於步驟S405,由控制端130在判斷迴轉率已調降至最小迴轉率時,判斷驅動力是否已調升至最大驅動力。
於步驟S406,由控制端130在判斷驅動力尚未調升至最大驅動力時,階段性調升驅動力。其中,每一階段的驅動力調整量可視實際需求而設定為固定值或是不同的數值。
流程將回至步驟S401以再次進行測試程序並產生比對結果,並於步驟S402判斷比對結果是否相符。如比對結果持續不相符且驅動力尚未調升至最大驅動力,則流程將反覆在步驟S401~S403以及S405~S406間進行,直到驅動力已調升至最大驅動力。
於步驟S407,由控制端130在判斷驅動力已調升至最大驅動力時,判斷時脈頻率是否已調降至最小時脈頻率。
於步驟S408,由控制端130在判斷時脈頻率尚未調降至最小時脈頻率時,階段性調降時脈頻率。其中,每一階段的時脈頻率調整量可視實際需求而設定為固定值或是不同的數值。
流程將回至步驟S401以再次進行測試程序並產生比對結果,並於步驟S402判斷比對結果是否相符。如比對結果持續不相符且時脈頻率尚未調降至最小時脈頻率,則流程將反覆在步驟S401~S403、S405以及S407~S408間進行,直到時脈頻率已調降至最小時脈頻率。
於步驟S409,由控制端130在比對結果為相符時,以韌體資料FD做為測試資料進行測試程序,以將韌體資料FD寫入韌體儲存端110後自韌體儲存端110進行讀取以與測試資料進行比對產生相對應的比對結果。
此時,控制端130是根據使控制介面140可正確存取韌體儲存端110的部分資料PD的存取參數AP,來將韌體資料FD寫入韌體儲存端110。
於步驟S410,由控制端130判斷比對結果是否相符。
於步驟S411,由控制端130在比對結果為不相符時,判斷時脈頻率是否已調降至最小時脈頻率。
於步驟S412,由控制端130在判斷時脈頻率尚未調降至最小時脈頻率時,階段性調降時脈頻率。
流程將回至步驟S409以再次進行測試程序並產生比對結果,並於步驟S410判斷比對結果是否相符。如比對結果持續不相符且時脈頻率尚未調降至最小時脈頻率,則流程將反覆在步驟S409~S412間進行,直到時脈頻率已調降至最小時脈頻率。
於步驟S413,由控制端130在步驟S410判斷比對結果為相符時,進而判斷已成功將韌體資料FD寫入至韌體儲存端110,並儲存存取參數AP至處理端120更包含的參數儲存電路160。
於步驟S414,由控制端130在步驟S407或步驟S411判斷時脈頻率已調降至最小時脈頻率時,判斷存取參數已無法再被調整,進而判斷韌體資料FD無法更新至韌體儲存端110。
須注意的是,在本實施例中,對應步驟S409的測試程序產生的比對結果不相符時,參數調整程序僅進行時脈頻率的調整。然而於其他實施例中,參數調整程序亦可進行其他存取參數的調整。本發明並不限於此。
於一實施例中,在完成前述流程後,控制端130可進一步對測試程序與參數調整程序的執行進行分析,以推斷印刷電路板存在的問題。
舉例而言,當調降迴轉率可以改善測試程序產生的比對結果時,藉由比對資料的正確性即可得知印刷電路板可能存在有過衝(overshoot)或下衝(undershoot)的問題,並可進一步推知印刷電路板上控制介面140用以傳送資料的傳輸路徑上可能有阻抗不匹配的問題。
另一方面,當調升驅動力可以改善測試程序產生的比對結果時,藉由比對資料的正確性即可得知訊號可能存在有上升時間(rising time)與下降時間(falling time)過大,影響建立時間(setup time)與保持時間(hold time)而導致資料擷取錯誤,並可進一步推知印刷電路板上控制介面140用以傳送資料的傳輸路徑上可能有等效電阻或等效電容的寄生效應過大,造成傳輸延遲問題。
藉由上述的分析,將可使印刷電路板在後續設計上的改進得以根據印刷電路板上存在的問題進行對策。
於一實施例中,在完成圖2的韌體更新方法200或是圖4的韌體更新方法400後,處理端120可據以進行其所在的電子裝置的啟動程序。更詳細的說,控制端130可將調整後的存取參數AP儲存至處理端120更包含的參數儲存電路160。處理端120可執行啟動程序,以自參數儲存電路160讀取存取參數AP設定控制介面140,並透過控制介面140根據存取參數AP自韌體儲存端110讀取韌體資料FD,據以繼續進行處理端120的啟動程序,啟動程序藉由運行韌體資料FD來完成程序。
以下將對於處理端120的啟動程序進行更詳細的說明。
請參照圖5。圖5顯示本發明一實施例中,處理端120的啟動程序500的流程圖。啟動程序500的一實施例如圖4所示,包含下列步驟。
於步驟S510,處理端120接收電源而啟動。
於步驟S520,判斷參數儲存電路160是否具有存取參數AP。
於步驟S530,當參數儲存電路160具有存取參數AP時,處理端120根據存取參數AP設定控制介面140,並自韌體儲存端110讀取韌體資料FD,據以進行處理端120的啟動程序。
於步驟S540,當參數儲存電路160不具有存取參數AP時,處理端120根據預設參數(未繪示於圖中)設定控制介面140,並自韌體儲存端110讀取韌體資料FD,據以進行處理端120的啟動程序。
在上述實施例中,參數儲存電路160是以設置於處理端120中為例進行說明。然而於其他實施例中,參數儲存電路160亦可設置為韌體儲存端110的一部份,而非設置於處理端120中。在這樣的狀況下,處理端120需要先自韌體儲存端110的參數儲存電路160讀取存取參數AP設定控制介面140,再根據存取參數AP自韌體儲存端110讀取韌體資料FD,據以進行處理端120的啟動程序。
需注意的是,上述的實施方式僅為一範例。於其他實施例中,本領域的通常知識者當可在不違背本發明的精神下進行更動。
綜合上述,本發明中具有韌體更新錯誤排除機制的電子系統及其韌體更新方法可針對設置在不同品質的電路板上的處理端以及韌體儲存端進行測試,以獲得最佳的存取參數,提高韌體儲存端所儲存的韌體資料的正確性,並使處理端得以正確地自韌體儲存端讀取韌體資料。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100:電子系統
110:韌體儲存端
120:處理端
130:控制端
140:控制介面
150:存取暫存器
160:參數儲存電路
170:資料儲存電路
200:韌體更新方法
S210~S240:步驟
300:測試程序
S310~S340:步驟
400:韌體更新方法
S401~S414:步驟
500:啟動程序
S510~S540:步驟
AP:存取參數
BP:燒錄程式
FD:韌體資料
PD:部分資料
[圖1]顯示本發明之一實施例中,一種具有韌體更新錯誤排除機制的電子系統的方塊圖;
[圖2]顯示本發明一實施例中,一種具有韌體更新錯誤排除機制的韌體更新方法的流程圖;
[圖3]顯示本發明一實施例中,測試程序的流程圖;
[圖4]顯示本發明另一實施例中,韌體更新方法的流程圖;以及
[圖5]顯示本發明一實施例中,處理端的啟動程序的流程圖。
200:韌體更新方法
S210~S240:步驟
Claims (10)
- 一種具有韌體更新錯誤排除機制的韌體更新方法,應用於一電子系統中,包含: 由一控制端以一韌體資料的一部分資料做為一測試資料進行一測試程序,以傳送該測試資料至一處理端,並透過該處理端的一控制介面根據複數存取參數的設定將該測試資料寫入至一韌體儲存端後,透過該控制介面自該韌體儲存端進行讀取以與該測試資料進行比對產生一比對結果; 由該控制端在該比對結果為不相符時,對該等存取參數至少其中之一進行一參數調整程序; 由該控制端在該參數調整程序結束後以該部分資料再次進行該測試程序,並在該比對結果仍為不相符時再次進行該參數調整程序; 以及 由該控制端在該比對結果為相符時由該控制端傳送該韌體資料至該處理端,並透過該控制介面根據經由該參數調整程序調整後的該等存取參數將該韌體資料寫入該韌體儲存端。
- 如請求項1所述之韌體更新方法,其中該等存取參數至少包含一迴轉率(slew rate)、一驅動力(driving ability)以及一時脈頻率,該韌體更新方法更包含: 由該控制端在第一次進行該測試程序時設定該迴轉率為一最大迴轉率、該驅動力為一最小驅動力以及該時派頻率為一最大時脈頻率;以及 由該控制端在該參數調整程序至少進行該迴轉率的調降、該驅動力的調升以及該時脈頻率的調降其中之一。
- 如請求項2所述之韌體更新方法,更包含: 由該控制端依序在不同的該參數調整程序中,優先階段性調降該迴轉率,在該迴轉率調降至該最小迴轉率時階段性調升該驅動力,在該驅動力調升至一最大驅動力時階段性調降該時脈頻率,以及在該時脈頻率調降至一最小時脈頻率時判斷該等存取參數已無法再被調整。
- 如請求項1所述之韌體更新方法,更包含: 由該控制端在以該部分資料做為該測試資料進行該測試程序所產生的該比對結果為相符時,以該韌體資料做為該測試資料進行該測試程序,以產生該比對結果; 由該控制端在該比對結果為不相符時,對該等存取參數至少其中之一進行該參數調整程序; 由該控制端在該參數調整程序結束後以該韌體資料做為該測試資料進行該測試程序,並在該比對結果仍為不相符時再次進行該參數調整程序;以及 由該控制端在該比對結果為相符時,儲存該等存取參數至一參數儲存電路。
- 如請求項4所述之韌體更新方法,更包含: 由該控制端在判斷該等存取參數已無法再被調整時,判斷該韌體資料無法更新至該韌體儲存端。
- 如請求項4所述之韌體更新方法,更包含: 由該處理端執行一啟動程序,以自該參數儲存電路讀取該等存取參數設定該控制介面,並透過該控制介面根據該等存取參數,自該韌體儲存端讀取該等韌體資料,據以繼續進行該啟動程序。
- 如請求項4所述之韌體更新方法,其中該參數儲存電路為該處理端包含的一一次性燒錄記憶體(one-time programming memory;OTP ROM)或一電子熔絲記憶體(eFuse),或設置為該韌體儲存端的一部份。
- 如請求項1所述之韌體更新方法,更包含: 由該處理端將該等存取參數寫入至與該控制介面相關的複數存取暫存器,以設定該控制介面據以存取該韌體儲存端。
- 如請求項1所述之韌體更新方法,其中該測試程序更包含: 由該控制端透過該控制介面將該韌體儲存端進行資料抹除; 由該控制端將該測試資料載入至該處理端更包含的一資料儲存電路; 由該控制端透過該控制介面將該測試資料自該資料儲存電路寫入至該韌體儲存端;以及 由該控制端透過該控制介面對該韌體儲存端進行讀取以與該測試資料進行比對產生該比對結果。
- 一種具有韌體更新錯誤排除機制的電子系統,包含: 一韌體儲存端; 一處理端,包含一控制介面; 一控制端,配置以執行一燒錄程式,以執行一韌體更新方法,包含: 以一韌體資料的一部分資料做為一測試資料進行一測試程序,以傳送該測試資料至一處理端,並透過該處理端的該控制介面根據複數存取參數的設定將該測試資料寫入至一韌體儲存端後,透過該控制介面自該韌體儲存端進行讀取以與該測試資料進行比對產生一比對結果; 在該比對結果為不相符時,對該等存取參數至少其中之一進行一參數調整程序; 在該參數調整程序結束後以該部分資料再次進行該測試程序,並在該比對結果仍為不相符時再次進行該參數調整程序;以及 在該比對結果為相符時,由該控制端傳送該韌體資料至該處理端,並透過該控制介面經由該參數調整程序調整後的該等存取參數將該韌體資料寫入該韌體儲存端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111137363A TWI819826B (zh) | 2022-09-30 | 2022-09-30 | 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 |
US18/372,717 US20240111663A1 (en) | 2022-09-30 | 2023-09-26 | Electronic system and firmware update method having firmware update troubleshooting mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111137363A TWI819826B (zh) | 2022-09-30 | 2022-09-30 | 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI819826B true TWI819826B (zh) | 2023-10-21 |
TW202416117A TW202416117A (zh) | 2024-04-16 |
Family
ID=89857613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111137363A TWI819826B (zh) | 2022-09-30 | 2022-09-30 | 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240111663A1 (zh) |
TW (1) | TWI819826B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200636446A (en) * | 2005-04-13 | 2006-10-16 | Via Tech Inc | A method for debugging a firmware program and a debugging microprocessor |
TW201222240A (en) * | 2010-11-22 | 2012-06-01 | Elitegroup Computer Sys Co Ltd | Testing method for automatically rebooting a motherboard and recording related debug information and rebooting device thereof |
TWI774391B (zh) * | 2021-04-16 | 2022-08-11 | 瑞昱半導體股份有限公司 | 實時配置韌體數據的方法與除錯裝置 |
-
2022
- 2022-09-30 TW TW111137363A patent/TWI819826B/zh active
-
2023
- 2023-09-26 US US18/372,717 patent/US20240111663A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200636446A (en) * | 2005-04-13 | 2006-10-16 | Via Tech Inc | A method for debugging a firmware program and a debugging microprocessor |
TW201222240A (en) * | 2010-11-22 | 2012-06-01 | Elitegroup Computer Sys Co Ltd | Testing method for automatically rebooting a motherboard and recording related debug information and rebooting device thereof |
TWI774391B (zh) * | 2021-04-16 | 2022-08-11 | 瑞昱半導體股份有限公司 | 實時配置韌體數據的方法與除錯裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202416117A (zh) | 2024-04-16 |
US20240111663A1 (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11121714B2 (en) | Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance | |
US9214232B2 (en) | Methods and apparatuses for calibrating data sampling points | |
TWI819826B (zh) | 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 | |
US9292391B2 (en) | Interface calibration using configurable on-die terminations | |
TWI387973B (zh) | 資料儲存裝置、資料儲存控制器及相關自動化測試的方法 | |
CN116185133B (zh) | 芯片时钟校准方法、装置、芯片、电子设备及存储介质 | |
CN110209517B (zh) | 一种固态硬盘工作方法、系统、电子设备及存储介质 | |
CN117931222A (zh) | 具有固件更新错误排除机制的电子系统及其固件更新方法 | |
CN115662492A (zh) | 一种数据存储设备的量产测试方法及装置 | |
CN111710354B (zh) | 一种ddr3的cmd延时补偿方法、装置、设备及介质 | |
TWI765188B (zh) | 觸控顯示面板及其自動韌體燒錄方法 | |
TW201433901A (zh) | 參考頻率設定方法、記憶體控制器及記憶體儲存裝置 | |
KR101470158B1 (ko) | 캘리브레이션 장치 및 그 방법 | |
CN107957969B (zh) | 判定设备连接状态及设备类型的方法 | |
WO2023206634A1 (zh) | 一种校准控制电路、电子设备和校准控制方法 | |
CN115458022B (zh) | 一种NANDFlash ZQ校准方法 | |
US20220310150A1 (en) | Electronic apparatus | |
WO2022062490A1 (zh) | 参数设置方法、装置、系统以及存储介质 | |
US11854643B2 (en) | Signal processing system capable of performing voltage and frequency calibration | |
CN114138701B (zh) | 一种i2c信号调整方法、装置、设备及可读存储介质 | |
WO2023206749A1 (zh) | 一种校准控制电路、电子设备和校准控制方法 | |
CN107544931B (zh) | 具有pci-e增强器的电脑系统,及其pci-e增强器的设定方法 | |
JP2019046531A (ja) | シリアルフラッシュメモリのリセット制御装置 | |
JP2019050501A (ja) | 汎用バス制御方法、汎用バス制御装置、および汎用バス制御プログラム |