TWI829096B - 用於驅動線上燒錄的方法及微控制器 - Google Patents
用於驅動線上燒錄的方法及微控制器 Download PDFInfo
- Publication number
- TWI829096B TWI829096B TW111105526A TW111105526A TWI829096B TW I829096 B TWI829096 B TW I829096B TW 111105526 A TW111105526 A TW 111105526A TW 111105526 A TW111105526 A TW 111105526A TW I829096 B TWI829096 B TW I829096B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- driver
- flag
- matches
- online
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 77
- 238000004891 communication Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/0426—Programming the control sequence
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23146—Programmable, reconfigurable via microprocessor or coding switches
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Microcomputers (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
一種用於驅動線上燒錄的方法,包括:接收一組驅動碼;依據驅動碼,設置一線上燒錄旗標;在線上燒錄旗標設置完成後,執行一系統重置;在系統重置完成後,偵測是否有線上燒錄旗標;以及當偵測到線上燒錄旗標,執行一線上燒錄程序。
Description
本發明係有關於線上燒錄的方法,特別是有關於用於驅動線上燒錄的方法及微控制器。
現有的啟動線上燒錄(In-system programming:ISP)的方法包括:方法一,使用特定的輸入輸出腳位的高準位或低準位來決定是否啟動ISP;方法二,使用非揮發性記憶體中所記錄的開機選項來決定是否啟動ISP;以及方法三,偵測是否有收到連線要求,並搭配超時機制決定是否啟動ISP。
然而,現有的方法一需要據此設計額外的按鍵、跳線或測試點。現有的方法二對於是否執行ISP的更改並不容易,且無法隨時更改。在現有的方法三中,為了偵測是否有ISP的連線需求,需要額外的等待與偵測時間,造成開機延遲。
依據本發明實施例之用於驅動線上燒錄(In-system programming:ISP)的方法,包括:接收一組驅動碼;依據驅動碼,設置一線上燒錄旗標;在線上燒錄旗標設置完成後,執行一系統重置;在系統重置完成後,偵測是否有線上燒錄旗標;以及當偵測到線上燒錄旗標,執行一線上燒錄程序。
如上所述之方法,更包括:當沒有偵測到線上燒錄旗標,執行一正常開機程序。
如上所述之方法,其中,依據驅動碼,設置線上燒錄旗標的步驟,包括:檢查所接收的驅動碼是否與至少一驗證碼相匹配;以及當所接收的驅動碼有與該至少一驗證碼相匹配,則設置線上燒錄旗標。
如上所述之方法,其中,依據驅動碼、第二驅動碼,以及第三驅動碼,設置線上燒錄旗標的步驟,包括:檢查所接收的組驅動碼是否與至少一驗證碼相匹配;當所接收的驅動碼有與至少一驗證碼相匹配,則將一計數值加一;檢查所接收的第二驅動碼是否與至少一驗證碼相匹配;當所接收的第二驅動碼有與至少一驗證碼相匹配,則將計數值加一;檢查所接收的第三驅動碼是否與至少一驗證碼相匹配;當所接收的第三驅動碼有與至少一驗證碼相匹配,則將計數值加一;以及當計數值等於一預設值,則設置線上燒錄旗標。
如上所述之方法,更包括:在線上燒錄旗標設置完成後,設置一重置延時時間;以及等待重置延時時間後,再執行系統重置。
一種微控制器,用於驅動線上燒錄,包括:一通訊處理單元。通訊處理單元包括一緩衝器、一重置電路,以及一執行單元。緩衝器接收一組驅動碼。重置電路用以執行包括:依據驅動碼,設置一線上燒錄旗標;在線上燒錄旗標設置完成後,執行微控制器的重置。執行單元用以執行包括:在微控制器重置完成後,偵測是否有線上燒錄旗標;以及當偵測到線上燒錄旗標,執行一線上燒錄程序。
如上所述之微控制器,其中,當執行單元沒有偵測到線上燒錄旗標,執行單元執行一正常開機程序。
如上所述之微控制器,其中,重置電路檢查所接收的驅動碼是否與至少一驗證碼相匹配;以及當所接收的驅動碼有與至少一驗證碼相匹配,則重置電路設置線上燒錄旗標。
如上所述之微控制器,其中,通訊處理單元更包括一匹配計數器,用以儲存一計數值。
如上所述之微控制器,其中,重置電路檢查所接收的驅動碼是否與至少一驗證碼相匹配;當所接收的驅動碼有與至少一驗證碼相匹配,則匹配計數器將一計數值加一;重置電路檢查所接收的第二驅動碼是否與該至少一驗證碼相匹配;當所接收的第二驅動碼有與至少一驗證碼相匹配,則匹配計數器將計數值加一;重置電路檢查所接收的第三驅動碼是否與至少一驗證碼相匹配;當所接收的第三驅動碼有與至少一驗證碼相匹配,則匹配計數器將計數值加一;以及當匹配計數器的計數值等於一預設值,則重置電路設置線上燒錄旗標。
如上所述之微控制器,其中,在線上燒錄旗標設置完成後,重置電路設置一重置延時時間;以及等待重置延時時間後,重置電路再執行微控制器的重置。
本發明係參照所附圖式進行描述,其中遍及圖式上的相同參考數字標示了相似或相同的元件。上述圖式並沒有依照實際比例大小描繪,其僅僅提供對本發明的說明。一些發明的型態描述於下方作為圖解示範應用的參考。這意味著許多特殊的細節,關係及方法被闡述來對這個發明提供完整的了解。無論如何,擁有相關領域通常知識的人將認識到若沒有一個或更多的特殊細節或用其他方法,此發明仍然可以被實現。
以其他例子來說,眾所皆知的結構或操作並沒有詳細列出以避免對這發明的混淆。本發明並沒有被闡述的行為或事件順序所侷限,如有些行為可能發生在不同的順序亦或同時發生在其他行為或事件之下。此外,並非所有闡述的行為或事件都需要被執行在與現有發明相同的方法之中。
第1圖為本發明實施例之用於驅動線上燒錄的方法的流程圖。如第1圖所示,本發明的驅動線上燒錄的方法包括:接收一組驅動碼(步驟S100);依據驅動碼,設置一線上燒錄旗標(步驟S102);在線上燒錄旗標設置完成後,執行一系統重置(步驟S104);在系統重置完成後,偵測是否有線上燒錄旗標(步驟S106);以及當偵測到線上燒錄旗標,執行一線上燒錄程序(步驟S108)。在一些實施例中,當在步驟S106中沒有偵測到線上燒錄旗標,本發明的驅動線上燒錄的方法則執行步驟S110,亦即執行一正常開機程序。若在正常開機程序中,本發明的驅動線上燒錄的方法再次接收另一組驅動碼,則本發明的方法才會回到步驟S100,並且依序執行步驟S102~S106。
在步驟S100中,驅動碼可例如為具有16位元組的一驅動碼,例如驅動碼為(a2 d3 09 46 dc 4c ad 66),但本發明不限於此。在一些實施例中,本發明的方法於步驟S100中透過一通訊協定接收驅動碼。通訊協定包括通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter:UART)協定、內部積體電路(Inter-Integrated Circuit:I
2C)協定、序列周邊介面(Serial Peripheral Interface Bus:SPI)協定,以及控制器區域網路(Controller Area Network:CAN)協定,但本發明不限於此。
在步驟S102中,本發明的驅動線上燒錄的方法首先檢查所接收的驅動碼是否與至少一驗證碼相匹配。當所接收的驅動碼有與至少一驗證碼相匹配,則設置線上燒錄旗標。舉例來說,假設本發明的方法的所有驗證碼中包括一組16位元組的碼(a2 d3 09 46 dc 4c ad 66),該組16位元組的碼是與步驟S100中所接收的驅動碼相同,因此本發明的方法因此設置線上燒錄旗標。在一些實施例中,線上燒錄旗標是被設置於一暫存器(register)中。舉例來說,當本發明的方法尚未設置線上燒錄旗標,則在暫存器的資料為0。當本發明的方法已經設置線上燒錄旗標,則暫存器中的資料為1。本發明僅以1位元的暫存器作為示例,但本發明不限定暫存器的位元數。
在一些實施例中,本發明的方法於步驟S100中接收不只一組驅動碼。例如,本發明的方法依序接收到驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a)。因此,本發明的方法於步驟S102中會依據驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a),設置線上燒錄旗標。詳細來說,當本發明的方法接收到驅動碼(a2 d3 09 46 dc 4c ad 66),本發明的方法首先檢查所接收的驅動碼(a2 d3 09 46 dc 4c ad 66)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(a2 d3 09 46 dc 4c ad 66)相匹配,則本發明的方法將一計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(a2 d3 09 46 dc 4c ad 66)相匹配,則本發明的方法將計數值歸零。在一些實施例中,計數值是儲存於一計數器中,但本發明不限於此。
接著,當本發明的方法接收到驅動碼(7e 95 c2 e8 9e 06 44 09),本發明的方法再次檢查所接收的驅動碼(7e 95 c2 e8 9e 06 44 09)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(7e 95 c2 e8 9e 06 44 09)相匹配,則本發明的方法將計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(7e 95 c2 e8 9e 06 44 09)相匹配,則本發明的方法將計數值歸零。相同地,當本發明的方法接收到驅動碼(74 4f 51 a5 26 91 b4 0a),本發明的方法再次檢查所接收的驅動碼(74 4f 51 a5 26 91 b4 0a)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(74 4f 51 a5 26 91 b4 0a)相匹配,則本發明的方法將計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(74 4f 51 a5 26 91 b4 0a)相匹配,則本發明的方法將計數值歸零。
在一些實施例中,當計數值等於一預設值(例如計數值等於3),則本發明的方法才設置線上燒錄旗標。簡單來說,本發明的方法於步驟S100中必須連續接收三筆能與驗證碼相匹配的驅動碼,才會於步驟S102中設置線上燒錄旗標。相反地,當本發明的方法沒有連續接收三筆能與驗證碼相匹配的驅動碼時,則本發明的方法將計數值歸零,而不會於步驟S102中設置線上燒錄旗標。舉例來說,雖然本發明的方法連續接收驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a),但其中的驅動碼(74 4f 51 a5 26 91 b4 0a)並沒有與驗證碼相匹配,因此本發明的方法不會於步驟S102中設置線上燒錄旗標,直到又連續收到三筆能與驗證碼相匹配的驅動碼為止。
在步驟S104中,在一些實施例中,本發明的方法在線上燒錄旗標設置完成後,更會設置一重置延時時間。等待重置延時時間後,本發明的方法才執行系統重置。舉例來說,本發明的方法可於步驟S104中設置3秒鐘的重置延時時間。因此,當本發明的方法完成線上燒錄旗標的設置後,會先等待3秒鐘的重置延時時間,之後才會執行系統重置。
在步驟S106中,當本發明的方法偵測到系統重置前所設置的線上燒錄旗標時,則本發明的方法於步驟S108中執行一線上燒錄程序。在一些實施例中,在線上燒錄程序中,本發明的方法可透過通訊協定的傳輸,將欲燒錄的程式碼寫入一通訊處理單元中,通訊處理單元可對應地執行程式碼,而完成線上燒錄的程序。在步驟S106中,當本發明的方法沒有偵測到系統重置前所設置的線上燒錄旗標時,則本發明的方法於步驟S110中執行一正常開機程序。在正常開機程序中,本發明的方法唯有再次收到驅動碼才會回到步驟S100,並且對應地執行步驟S102~S106,否則本發明的方法會一直維持在步驟S110的正常開機程序中。在一些實施例中,本發明的方法會於正常開機程序中執行系統的唯讀記憶體中的程式碼。當本發明的方法正在執行系統的唯讀記憶體中的程式碼時,本發明的方法可對線上燒錄旗標進行偵測。
第2圖為本發明實施例之微控制器200的方塊圖。如第2圖所示,微控制器200包括一通訊處理單元202,以及一線上燒錄驅動電路204。在一些實施例中,通訊處理單元202支援多個通訊協定中的至少一個。舉例來說,多個通訊協定可包括UART、I
2C、SPI,以及CAN,但本發明不限於此。通訊處理單元202包括一緩衝器206、一重置電路208,以及一執行單元210。在一些實施例中,緩衝器206從線上燒錄驅動電路204接收一組驅動碼。緩衝器206可例如為一先進先出(First in, First out)緩衝器,但本發明不限於此。在一些實施例中,緩衝器206透過一通訊協定線路212從接收線上燒錄驅動電路204接收一組驅動碼。通訊協定線路212所支援的通訊協定是與通訊處理單元202所支援的通訊協定相同,例如為UART、I
2C、SPI,以及CAN…等。
重置電路208依據驅動碼,設置一線上燒錄旗標。在線上燒錄旗標設置完成後,重置電路208執行微控制器200的重置。詳細來說,重置電路208檢查所接收的驅動碼是否與至少一驗證碼相匹配。當所接收的驅動碼有與至少一驗證碼相匹配時,則重置電路208設置線上燒錄旗標。在一些實施例中,重置電路208將線上燒錄旗標設置於一暫存器(未圖示)中,但本發明不限於此。在一些實施例中,重置電路208完成線上燒錄旗標的設置後,重置電路208可設置一重置延時時間。重置電路208在等待重置延時時間後,才執行微控制器200的重置。
在微控制器200重置完成後,執行單元210接著偵測是否有線上燒錄旗標。當偵測到線上燒錄旗標時,執行單元210則執行一線上燒錄程序。在線上燒錄程序中,線上燒錄驅動電路204可透過通訊協定線路212的傳輸,將欲燒錄的程式碼寫入通訊處理單元202中,通訊處理單元202的執行單元210可對應地執行程式碼,而完成線上燒錄的程序。在一些實施例中,當執行單元210並沒有偵測到線上燒錄旗標時,執行單元210執行一正常開機程序。在正常開機程序中,除非緩衝器206接收到另一驅動碼,否則執行單元210會一直維持在正常開機程序中。在一些實施例中,執行單元210會於正常開機程序中執行微控制器200的唯讀記憶體(未圖示)中的程式碼。當執行單元210正在微控制器200的唯讀記憶體中的程式碼時,執行單元210可對線上燒錄旗標進行偵測。
第3圖為本發明實施例之微控制器300的方塊圖。如第3圖所示,微控制器300包括一通訊處理單元302,以及一線上燒錄驅動電路304。在一些實施例中,通訊處理單元302支援多個通訊協定中的至少一個。舉例來說,多個通訊協定可包括UART、I
2C、SPI,以及CAN,但本發明不限於此。通訊處理單元302包括一緩衝器306、一重置電路308、一執行單元310,以及一匹配計數器314。在一些實施例中,緩衝器306從線上燒錄驅動電路304接收多組驅動碼。緩衝器306可例如為一先進先出緩衝器,但本發明不限於此。在一些實施例中,緩衝器306透過一通訊協定線路312從接收線上燒錄驅動電路204接收多組驅動碼。通訊協定線路312所支援的通訊協定是與通訊處理單元302所支援的通訊協定相同,例如為UART、I
2C、SPI,以及CAN…等。
舉例來說,緩衝器306接收到驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a)。因此,重置電路308會依據驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a),設置線上燒錄旗標。詳細來說,當緩衝器306接收到驅動碼(a2 d3 09 46 dc 4c ad 66),重置電路308首先檢查所接收的驅動碼(a2 d3 09 46 dc 4c ad 66)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(a2 d3 09 46 dc 4c ad 66)相匹配,則匹配計數器314將一計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(a2 d3 09 46 dc 4c ad 66)相匹配,則匹配計數器314將計數值歸零。
接著,當緩衝器306接收到驅動碼(7e 95 c2 e8 9e 06 44 09),重置電路308再次檢查所接收的驅動碼(7e 95 c2 e8 9e 06 44 09)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(7e 95 c2 e8 9e 06 44 09)相匹配,則匹配計數器314將計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(7e 95 c2 e8 9e 06 44 09)相匹配,則匹配計數器314將計數值歸零。相同地,當緩衝器306接收到驅動碼(74 4f 51 a5 26 91 b4 0a),重置電路308再次檢查所接收的驅動碼(74 4f 51 a5 26 91 b4 0a)是否與至少一驗證碼相匹配。若所有驗證碼中有至少一組驗證碼與驅動碼(74 4f 51 a5 26 91 b4 0a)相匹配,則匹配計數器314將計數值加一。若所有驗證碼中沒有至少一組驗證碼與驅動碼(74 4f 51 a5 26 91 b4 0a)相匹配,則匹配計數器314將計數值歸零。
在一些實施例中,當匹配計數器314中的計數值等於一預設值(例如計數值等於3),則重置電路308才設置線上燒錄旗標。簡單來說,緩衝器306必須連續接收三筆能與驗證碼相匹配的驅動碼,重置電路308才會設置線上燒錄旗標。相反地,當緩衝器306沒有連續接收三筆能與驗證碼相匹配的驅動碼時,則匹配計數器314將計數值歸零,使得重置電路308不會設置線上燒錄旗標。舉例來說,雖然緩衝器306連續接收驅動碼(a2 d3 09 46 dc 4c ad 66)、驅動碼(7e 95 c2 e8 9e 06 44 09),以及驅動碼(74 4f 51 a5 26 91 b4 0a),但其中的驅動碼(74 4f 51 a5 26 91 b4 0a)並沒有與驗證碼相匹配,因此重置電路308不會設置線上燒錄旗標,直到緩衝器306又連續收到三筆能與驗證碼相匹配的驅動碼為止。
第3圖緩衝器306、重置電路308,以及執行單元310所執行的動作是相同於第2圖緩衝器206、重置電路208,以及執行單元210所執行的動作,因此不再贅述。在一些實施例中,執行單元310會於正常開機程序中執行微控制器300的唯讀記憶體(未圖示)中的程式碼。當執行單元310正在微控制器300的唯讀記憶體中的程式碼時,執行單元310可持續對線上燒錄旗標進行偵測。在一些實施例中,執行單元310通常為微控制器300中的線上燒錄(ISP)功能方塊(未圖示)及通用非同步收發傳輸器(UART)協定功能方塊(未圖示),但本發明不限於此。
在偵測線上燒錄旗標的機制中,可透過軟體監控或硬體監控的方式執行。例如,系統所有接收到的資料,都必須經過偵測軟體後,才能交給系統處理,或將所接收到的資料同時傳遞給偵測軟體與系統。在硬體偵測方面,本發明可隨時偵測接收周邊裝置的接收緩存,若有符合規則的資料出現,則可直接觸發ISP重置。本發明的用於驅動線上燒錄的方法及微控制器提供一個不影響開機時間、不須額外電路,也不會影響用戶功能操作的ISP功能啟動方法。
雖然本發明的實施例如上述所描述,我們應該明白上述所呈現的只是範例,而不是限制。依據本實施例上述示範實施例的許多改變是可以在沒有違反發明精神及範圍下被執行。因此,本發明的廣度及範圍不該被上述所描述的實施例所限制。更確切地說,本發明的範圍應該要以以下的申請專利範圍及其相等物來定義。
儘管上述發明已被一或多個相關的執行來圖例說明及描繪,等效的變更及修改將被依據上述規格及附圖且熟悉這領域的其他人所想到。此外,儘管本發明實施例的一特別特徵已被相關的多個執行之一所示範,上述特徵可能由一或多個其他特徵所結合,以致於可能有需求及有助於任何已知或特別的應用。
除非有不同的定義,所有本文所使用的用詞(包含技術或科學用詞)是可以被屬於上述發明的技術中擁有一般技術的人士做一般地了解。我們應該更加了解到上述用詞,如被定義在眾所使用的字典內的用詞,在相關技術的上下文中應該被解釋為相同的意思。除非有明確地在本文中定義,上述用詞並不會被解釋成理想化或過度正式的意思。
S100,S102,S104:步驟
S106,S108,S110:步驟
200:微控制器
202:通訊處理單元
204:線上燒錄驅動電路
206:緩衝器
208:重置電路
210:執行單元
212:通訊協定線路
300:微控制器
302:通訊處理單元
304:線上燒錄驅動電路
306:緩衝器
308:重置電路
310:執行單元
312:通訊協定線路
314:匹配計數器
第1圖為本發明實施例之用於驅動線上燒錄的方法的流程圖。
第2圖為本發明實施例之微控制器200的方塊圖。
第3圖為本發明實施例之微控制器300的方塊圖。
S100,S102,S104,S106,S108,S110:步驟
Claims (9)
- 一種用於驅動線上燒錄(In-system programming:ISP)的方法,包括:接收一組驅動碼;對該組驅動碼及後續接收的另一組驅動碼執行先進先出的操作;依據該組驅動碼,設置一線上燒錄旗標;其中,該線上燒錄旗標是關聯於該組驅動碼;在該線上燒錄旗標設置完成後,執行一系統重置(reset);在該系統重置完成後,偵測是否有該線上燒錄旗標;當偵測到該線上燒錄旗標,執行一線上燒錄程序;以及當沒有偵測到該線上燒錄旗標,執行一正常開機程序。
- 如請求項1之方法,其中,依據該組驅動碼,設置該線上燒錄旗標的步驟,包括:檢查所接收的該組驅動碼是否與至少一驗證碼相匹配;以及當所接收的該組驅動碼有與該至少一驗證碼相匹配,則設置該線上燒錄旗標。
- 如請求項1之方法,其中,依據該組驅動碼、一第二驅動碼,以及一第三驅動碼,設置該線上燒錄旗標的步驟,包括:檢查所接收的該組驅動碼是否與至少一驗證碼相匹配;當所接收的該組驅動碼有與該至少一驗證碼相匹配,則將一計 數值加一;檢查所接收的該第二驅動碼是否與該至少一驗證碼相匹配;當所接收的該第二驅動碼有與該至少一驗證碼相匹配,則將該計數值加一;檢查所接收的該第三驅動碼是否與該至少一驗證碼相匹配;當所接收的該第三驅動碼有與該至少一驗證碼相匹配,則將該計數值加一;以及當該計數值等於一預設值,則設置該線上燒錄旗標。
- 如請求項1之方法,更包括:在該線上燒錄旗標設置完成後,設置一重置延時時間;以及等待該重置延時時間後,再執行該系統重置。
- 一種微控制器,用於驅動線上燒錄,包括:一通訊處理單元,包括:一緩衝器,接收一組驅動碼,且對該組驅動碼及後續接收的另一組驅動碼執行先進先出的操作;一重置電路,用以執行包括:依據該組驅動碼,設置一線上燒錄旗標,其中,該線上燒錄旗標是關聯於該組驅動碼;在該線上燒錄旗標設置完成後,執行該微控制器的重置;以及一執行單元,用以執行包括:在該微控制器重置完成後,偵測是否有該線上燒錄旗標;當偵測到該線上燒錄旗標,執行一線上燒錄程序;以及當該執行單元沒有偵測到該線上燒錄旗標,該執行單元執行一正常開機程序。
- 如請求項5之微控制器,其中;該重置電路檢查所接收的該組驅動碼是否與至少一驗證碼相匹配;以及當所接收的該組驅動碼有與該至少一驗證碼相匹配,則該重置電路設置該線上燒錄旗標。
- 如請求項5之微控制器,其中,該通訊處理單元更包括一匹配計數器,用以儲存一計數值。
- 如請求項7之微控制器,其中;該重置電路檢查所接收的該組驅動碼是否與至少一驗證碼相匹配;當所接收的該組驅動碼有與該至少一驗證碼相匹配,則該匹配計數器將該計數值加一;該重置電路檢查所接收的一第二驅動碼是否與該至少一驗證碼相匹配;當所接收的該第二驅動碼有與該至少一驗證碼相匹配,則該匹配計數器將該計數值加一;該重置電路檢查所接收的一第三驅動碼是否與該至少一驗證碼相匹配;當所接收的該第三驅動碼有與該至少一驗證碼相匹配,則該匹配計數器將該計數值加一;以及當該匹配計數器的該計數值等於一預設值,則該重置電路設置該線上燒錄旗標。
- 如請求項5之微控制器,其中;在該線上燒錄旗標設置完成後,該重置電路設置一重置延時時間;以及等待該重置延時時間後,該重置電路再執行該微控制器的重置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111105526A TWI829096B (zh) | 2022-02-16 | 2022-02-16 | 用於驅動線上燒錄的方法及微控制器 |
CN202210534994.XA CN116643510A (zh) | 2022-02-16 | 2022-05-17 | 用于驱动在系统编程的方法及微控制器 |
US17/828,555 US20230259369A1 (en) | 2022-02-16 | 2022-05-31 | Method and microcontroller for driving in-system-programming |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111105526A TWI829096B (zh) | 2022-02-16 | 2022-02-16 | 用於驅動線上燒錄的方法及微控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202334829A TW202334829A (zh) | 2023-09-01 |
TWI829096B true TWI829096B (zh) | 2024-01-11 |
Family
ID=87558545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111105526A TWI829096B (zh) | 2022-02-16 | 2022-02-16 | 用於驅動線上燒錄的方法及微控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230259369A1 (zh) |
CN (1) | CN116643510A (zh) |
TW (1) | TWI829096B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW501061B (en) * | 1998-01-07 | 2002-09-01 | Macronix Int Co Ltd | In-circuit programming process device and method of integrated circuit |
US20140258729A1 (en) * | 2013-03-07 | 2014-09-11 | Atmel Corporation | Stored Authorization Status for Cryptographic Operations |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5248900A (en) * | 1991-12-24 | 1993-09-28 | Intel Corporation | Time-sliced modular pulse-width modulation circuit |
US5841867A (en) * | 1996-11-01 | 1998-11-24 | Xilinx, Inc. | On-chip programming verification system for PLDs |
US20070169086A1 (en) * | 2005-12-30 | 2007-07-19 | Siliconmotion Inc. | System and method for updating in-system program |
US7886141B2 (en) * | 2007-10-27 | 2011-02-08 | Asix Electronics Corporation | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
US11283994B2 (en) * | 2020-04-27 | 2022-03-22 | Qualcomm Incorporated | Synchronization mechanism for image capture and processing systems |
US11379307B2 (en) * | 2020-12-09 | 2022-07-05 | Nxp Usa, Inc. | Error rate reduction in a non-volatile memory (NVM), including magneto-resistive random access memories (MRAMs) |
-
2022
- 2022-02-16 TW TW111105526A patent/TWI829096B/zh active
- 2022-05-17 CN CN202210534994.XA patent/CN116643510A/zh active Pending
- 2022-05-31 US US17/828,555 patent/US20230259369A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW501061B (en) * | 1998-01-07 | 2002-09-01 | Macronix Int Co Ltd | In-circuit programming process device and method of integrated circuit |
US20140258729A1 (en) * | 2013-03-07 | 2014-09-11 | Atmel Corporation | Stored Authorization Status for Cryptographic Operations |
Also Published As
Publication number | Publication date |
---|---|
US20230259369A1 (en) | 2023-08-17 |
TW202334829A (zh) | 2023-09-01 |
CN116643510A (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7840796B2 (en) | Booting to a recovery/maintenance environment | |
US10019253B2 (en) | Systems and methods of updating hot-pluggable devices | |
CN103412769B (zh) | 外接卡参数配置方法、设备以及系统 | |
US6314455B1 (en) | Data processing system and method for permitting a server to remotely initiate a client's boot block recovery | |
US7913258B2 (en) | Information processing device and process control method | |
US20150082056A1 (en) | Computer device and method for converting working mode of universal serial bus connector of the computer device | |
WO2021056393A1 (zh) | 一种测试方法、电子设备和计算机可读存储介质 | |
TW202046093A (zh) | 韌體更新裝置以及韌體更新方法 | |
TW201117094A (en) | Basic input/output system capable of supporting multi-platforms and constructing method thereof | |
TWI829096B (zh) | 用於驅動線上燒錄的方法及微控制器 | |
WO2024120169A1 (zh) | 一种服务器及其资产信息获取方法、提供方法和装置 | |
TW202022610A (zh) | 伺服器的檢測方法 | |
US20020103611A1 (en) | System and method for receiving information from a test apparatus | |
US20020104040A1 (en) | System and method for initiating a manufacturing mode | |
US8930904B2 (en) | Verification of hardware configuration | |
TWI764648B (zh) | 主機板、主機板的外接裝置以及主機板的開機方法 | |
TW202223652A (zh) | 電子裝置及其開機方法 | |
JP2011215889A (ja) | 情報処理装置及びその起動方法 | |
CN111274179A (zh) | 一种USB Hub及控制方法 | |
JPS6218939B2 (zh) | ||
TWI731562B (zh) | 主機板擴充插槽的配置設置方法、系統、裝置及電腦可讀取媒體 | |
TWI220705B (en) | Method and system for error detecting | |
US12001556B2 (en) | Anti-virus chip and anti-virus method | |
US8027826B2 (en) | Evaluation device consisting of a logic simulator and a simulation result table | |
TWI812521B (zh) | 基於硬碟類型的開機方法 |