TWI306191B - A method for debugging a firmware program and a debugging microprocessor - Google Patents
A method for debugging a firmware program and a debugging microprocessor Download PDFInfo
- Publication number
- TWI306191B TWI306191B TW95111940A TW95111940A TWI306191B TW I306191 B TWI306191 B TW I306191B TW 95111940 A TW95111940 A TW 95111940A TW 95111940 A TW95111940 A TW 95111940A TW I306191 B TWI306191 B TW I306191B
- Authority
- TW
- Taiwan
- Prior art keywords
- debugging
- variable
- microprocessor
- firmware
- data
- Prior art date
Links
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
1306191 九、發明說明: 【發明所屬之技術領域】 本發明係關於一種嵌入式韌體程式(embedded firmware program),且特別是關於一種嵌入式韌體程式之 除錯微處理器及方法。 【先前技#f】 φ 當利用一微處理器進行一韌體程式的除錯(debugging) 時,通常需審視微處理器内部的暫存器值。達成此目的的 方法之一是增加額外的硬體支援,以讓程式設計者能方便 查詢該等暫存器。一般内含此種除錯應用程式之電腦可以 稱之為除錯主機(debugging host)。有時除錯主機可以直接 與微處理器通訊’但通常會運用一通訊協定轉換器 (protocol converter)以將除錯主機之輸出訊號轉換為微處 理機的介面格式。通訊協定轉換器並負責依據除錯主機的 • 要求以設定微處理器的除錯暫存器之工作。 為了使勒體程式之除錯順利進行,程式設計者通常會 於除錯過程中設定程式斷點(breakpoint)、變數觀察點 (watchpoint)、以及硬體事件捕捉點(catchpoint)。程式斷點 是以指令流程為根據而設定的事件,例如當微處理器執行 了在一特定程式位址的某一指令’或是當微處理器執行了 一特定指令的運算碼(opcode)。變數觀察點則是以資料流程 為根據而設定的事件,例如當微處理器自一特定變數位址 存取某一變數,或是當微處理器存取了一特定資料值。硬
Client’s Docket No.:CRU04-00l6 TT’s Docket No:0008-A4068‘TW/Final/Yuan/2006-03-28 1306191 體事件捕捉點為程式設計者希望知道其發生 硬體相關事件,例如中斷(interrupt)、重開機等:先定義的 一般而言,微處理器中的除錯模組皆會勺八— 器’該組暫存器可被設^用來監測勃體=組暫存 斷點或變數觀察點之特定的位址或資料值。、…於程式 數目是有限的,僅僅增加暫存器的數 器的 模組設計複雜度的大量提升,因此該組 =成除錯 式斷點或變數觀察點共用。該組暫存器通常程 第一部分暫存器係用來監測記憶體位址,:γ P刀 用來則是用來監測資料。該組暫存器尚包括 器’其内賴存之值係絲選擇目前所要 行中的位址或是資料’若是位址(不論是指令二= 位址)則是與該第-部分暫存料比對,若是資 指令資料或是變數資料)則是與該第二部分暫存器作比^。 這種型態的暫存器於整個除錯系統中運用時會出現以 下的問題。一個變數觀察點可藉由兩種方式麻現,第一種 稱之為硬體變數觀察點,第二種稱之為軟^數觀察點。 於硬體變數祕點的情町,程式設計者可快速地進行除 錯,因為系統會運用一嵌入式電路内模擬器(embedded in-circuit emulator)模組中的該等暫存器來進行與匯流排上 的資料相比較的工作,以監控變數觀察點對應之事件,同 時微處理器可以依原有速度執行韌體程式。於軟體變數觀 察點的情況下,每當微處理器執行一指令,除錯主機便需 查詢微處理器一次,以便檢驗變數觀察點對應之資料值是
Client’s Docket N〇.:CRU04-0016 TT^ Docket No:0608-A40684-TW/Finaimlan/2006-03-28 7 1306191 否改變,因此在軟體變數觀察點的情況下,除錯進行的速 度變得报慢,並且幾乎無法在實際應用中實行。當程式設 計者不熟悉上述硬體變數觀察點與軟體變數觀察點的區 別’並且相信設定程式斷點與變數觀察點的先後順序不會 造成除錯進行的差別時,問題便發生了。 舉例來說,於一僅具一組暫存器用來進行除錯的除錯 系統中,程式設計者先設定程式斷點再設定變數觀察點。 當程式斷點先被設定時,通訊協定轉換器將暫存器與程式 斷點的關係設定完畢後,回報除錯主機程式斷點已被設定 成功。當接著進行變數觀察點的設定時,通訊協定轉換器 發現暫存器已先被程式斷點佔用了,不夠用來設定變數觀 察點。因此通訊協定轉換器回報除錯主機變數觀察點未設 定成功。此時大部分除錯主機只得選擇以軟體變數觀察點 的方式實現變數觀察點,因此微處理機每執行一步動體程 式程式,除錯主機便需查詢微處理器一次變數的變動情 形。問題便在於這種方式實在速度太慢,而#進行韌體程 式除錯的有效方式。 若變數觀察點先被設定,則當接著進行程式斷點的設 定時,通訊協定轉換器發現暫存器已先被變數觀察點佔用 了,不夠用來設定程式斷點。因此通訊協定轉換器回報除 錯主機程式斷點未設定成功。此時除錯主機只得向程式設 計者顯示程式斷點未設定成功的訊息,因此程式設計者可 決定是否他要繼續除錯工作的進行。此時若除錯繼續進 行,則變數觀察點將如程式設計者所預期的運作,但程式
Client's Docket N〇.:CRU04-0016 TT^ Docket No:0608-A40684-TW/Finaman/2006-03,28 8 1306191 -設計者就無法於除錯過程中使用程式斷點進行除錯。 • *於在此觀肖單—組暫存n進行程式斷點與變數觀 察點的除錯系統中,程式斷點與變數觀察點的先後設定』嗔 序不同會造成不同的執行狀態,此會使程式設計者感到十 分困惑。再者,程式設計者無法區別硬體與軟體變數觀察 點,因而會對軟體變數觀察點造成的除錯執行速度變慢感 到驚訝。此外,軟體變數觀察點僅能偵查到變數值的變化, _ 而不能偵查某一變數位址是否被讀取或寫入,當相同值被 寫入一變數位址時,軟體變數觀察點亦不能發現。但若增 加暫存器數目又會造成除錯模組設計複雜度的大量提升。 因此,習知技術之除錯系統的設計方式會造成程式設計者 相當大的不便。 【發明内容】 有鑑於此,為了避免習知技術所產生的問題,本發明 提供一種應用於韌體程式除錯之微處理器。該微處理器可 馨 受一除錯主機控制以對於該韌體程式進行除錯,該微處理 器包括一用以執行該韌體程式之核心模組,一耦接至該核 心模組之匯流排介面模組(bus interface module),係用以透 過一匯流排自該韌體程式中擷取核心模組所需之複數個指 令與存取所需之複數個變數,以及該微處理器包括一與該 核心模組與該匯流排介面模組耦接之嵌入式電路内模擬器 模組(embedded in-circuit emulator),係以分開且獨立的方 式儲存至少一第一除錯參數與至少一第二除錯參數,以及 在以下狀況產生時通知該核心模組,該些狀況包括當該核 Client’s Docket N〇.:CRU04-0016 TT's Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 „ 1306191 •=松組與該匯流排介面模組之間所傳輸的該等指令之相關 資訊與該等第一除錯參數中任一相符合時,或當該核心模 組與該匯流排介面模組之間所傳輸的該等變數之相關資訊 與該等第二除錯參數中任一相符合時。 本發明更提供一種應用於韌體程式除錯之方法。該韌 體程式係被一用於除錯之微處理器所執行,該微處理器透 過一匯流排擷取該韌體程式之複數個指令並存取該韌體程 _ 式之複數個變數。其中,應用於韌體程式除錯的方法包括: 在該微處理器中,以分開且獨立方式儲存至少一第一除錯 參數與至少一第二除錯參數。此時若被該微處理器擷取的 該等指令之相關資訊與該等第一除錯參數中有任一相符 時,中止該微處理器繼續執行該韌體程式並通知一除錯主 機。另外,若被該微處理器存取的該等變數之相關資訊與 該等第二除錯參數中有任一相符時,通知該除錯主機至少 有一弟一除錯參數已被更新。 _ 综合上述,本發明仍在同一組暫存器中以不增加暫存 器數1下設定各個暫存器内存值,但各個暫存器係各自對 應儲存不同的除錯參數,因此不會有暫存器先被程式斷點 或變數觀察點之除錯方法佔㈣統發生,也因此程式設 计師不需再因究竟是要先設定程式斷點或變數觀察點而倍 受困擾。 為了讓本發明之上述和其他目的、特徵、和優點能更 明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作 詳細說明如下:
Client’s Docket No. :CRU04-0016 TT’s Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 1306191 【實施方式】
第1圖為根據本發明之除錯系統100的方塊圖。除錯 系統100包括除錯主機(debugging host) 102、通訊協定轉換 器(protocol converter) 104 、以及微處理」 (microprocessor)106。除錯主機102係作為進行韌體程式^ 錯(debugging)之程式設計者的使用者介面,以控制整個= 體程式除錯過程。除錯主機102可為一用以儲存除錯應^ 程式之電腦系統,而程式設計者可以透過使用該應用程式 以控制除錯進度並更改除錯過程之詳細設定。微處理号 106係位於一電路板140上,並執行一韌體程式以控制電 路板140上的其他元件,其中整個除錯過程的目的便是欲 對執行中的韌體程式進行除錯。通訊協定轉換器1〇4係作 為除錯主機102與微處理器1〇6的溝通介面,將兩者溝通 的訊號轉換為彼此能了解的格式’以使兩者的溝通能順利 進行。 除了微處理器106之外’電路板140上所包含的其他 元件,包括用來儲存資料以及被微處理器1〇6執行之韌體 程式150的系統記憶體12〇、特定用途的晶片、以及其他 的電路元件。微處理器106經由匯流排130與這些元件相 搞接’以經由匯流排130控制這些電路板上的元件並接收 這些元件的回應。匯流排130中包含至少一位址匯流排132 與至少一資料匯流排134,兩者連接介於系統記憶體12〇 與匯流排介面模組之間。當微處理器1〇6欲擷取系統記憶 體120中儲存的韌體程式之指令時,先透過位址匯流排ι32
Client’s Docket N〇.:CRU04-0016 TT,s Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 11 1306191 向系統記憶體120指定韌體程式的指令位址;而系統記憶 體120收到被指定的指令位址後,經由資料匯流排134將 ' 韌體程式150之指令資料回傳至微處理器1〇6。另外,執 行韌體程式150後會產生許多變數160,亦儲存於系統記 憶體120中。當微處理器106欲擷取系統記憶體12〇中儲 存的變數160時,先透過位址匯流排132向系統記憶體12〇 指定變數160的變數位址;而系統記憶體120收到被指定 的變數位址後,經由資料匯流排134將變數160之變數資 I 料回傳至微處理器106。系統記憶體120亦可由儲存勃體 程式150的第一記憶體與儲存資料的第二記憶體組成,其 中第一記憶體可為唯讀記憶體(read only memory,ROM), 第二記憶體可為隨機存取記憶體(random access memory, RAM)。 微處理器106包括核心模組11〇、匯流排介面模組(bus interface module) 112、嵌入式電路内模擬器模組(embedded in-circuit emulator module) 114、以及聯合測試行動群組
(joint test action group,以下簡稱 JTAG)介面 116。JTAG 介面116為附加到微處理器1〇〇上的特殊之4或5接腳介 面,除錯主機102可透過連接到JTAG介面116的測試探 針與微處理器106相通訊。核心模組110為微處理器100 的核心,執行勒體程式的指令以控制電路板上的其他元 件。匯流排介面模組112可存取電路板14〇上的匯流排 130。因此,核心模組11〇可透過匯流排介面模組112存取 韌體程式150的指令、自系統記憶體120讀取變數、及將
Client’s Docket No·:CRU04-0016 λλ m TT's Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 1306191 變數寫入至系統記憶體。 當程式設計者利用除錯主機1〇2中的除錯應用程式對
電ίϊ刚均夠之勃體程式150進行除錯時’通常會預 先设定一些程•點(breakpoint)以阻止微處理器繼續執行 勃體程式。此時程式設計者便可在除錯主機的螢幕上觀察 ㈣程式的部分重要魏值,並檢查依_式_前的指 令執行後這些變數錢否正確變動。另外,被程式設計者 預先設定的重錢數值漏她察點(她hpQint)。若 程式設計者認為料魏值有部分是錯㈣,程式設計者 便可修正勃體程式,以測試是否這些變數值會正確地變 動反之若變數值皆為正確的,表示於程式斷點前 體程式的賴JE確’而*需任何修正。程式設計者接著 透過除錯域決定是否讓微處理器賴執行減程式。 嵌入式電路内模擬器模組114為除錯過程的核心。复 監測指令匯流排以_程式斷點的發生,並監測 ^ 排則貞測魏觀察㈣發生。當核心模組no執行儲存;: 系統記憶射__式時,核心餘則關持續自系 統記憶體中練勃體程式的指令。每當擷取-㈣程式ί 令,核心模組必須透過匯流排介面模組112向系統記^ 指定欲擷取的指令的指令位址,然後“記憶體會將= 於該位址的指令資料回傳予核心模組iig。因^ 路内模擬器模、组114可監測於核心模組m與匯流排2 模組U2間傳輸的指令位址_令資料等之 訊,則貞測程式斷點。當_到程式斷點時,嵌入式^
Client’s Docket N〇_:CRU04-0016 TT’s Docket No:0608-A40684-TW/Final/Yuan/200匕 〇3力 1306191
内模擬器模組114將會透過了TAG介面116通知除錯主機 102 ’並中止核心模組110的動作,此時程式設計者可撿杳 此1¾ 4又的執行結果是否正確以利後續程式修改,或 繼續接續7變數觀__除錯。 W 本發明之另—實施例係嵌入式電路内模擬器模組114 亦監测貝料匯流排以偵測變數觀察點的發生。當核心模組 10執行fej體&式時’被核d、组11G計算出的變數值桃 儲存於系統記憶體中。因此當執行勤體程式時,核心模^ 110必須持續自系統記憶體中讀取變數資料, = 數資料寫人至系統記憶體中。每當存取-變數,核 110必須透過匯流排介面模組112向系統記憶體指定^ 取的㈣的變數位址’然後系統記憶體會 子 的變數資料回傳予核心模組削。因此嵌人式電;: |§权組114可監測於核心模组11〇與匯流排介面模組' 間傳輸的變數位址或變數資料等之變數相關資訊, 變數觀察點。當偏u憎數觀察點時,嵌人式電路内根輕 器模組114將會透過JTAG介φ 116通知除錯主機1〇2 並將變數觀察狀值傳駐除錯线1G2。關地,此時 程式設計者可檢查此階段的執行結果是否正確以利後續程 式修改,或是選擇繼續接續的程式斷點進行除錯。 第2圖為依據本發明之嵌入式電路内模擬器模組2⑽ 的區塊圖。嵌入式電路内模擬器模組200對應於第1圖的 嵌入式電路内模擬器模組114。嵌入式電路内模擬器模紱 200監測於核心模組11〇與匯流排介面模組1丨2間傳輪的
Client's Docket N〇.:CRU04-0016 TT's Docket No:0608-A40684-TW/FinalAruan/2006-03-28 1306191 指令與變數相關資訊,並在指令相關資訊與程式斷點相符 ' 合或變數相關資訊與變數觀察點相符合時,透過JTAG介 • 面116通知除錯主機102。 每當核心模組110自儲存被執行之韌體程式的系統記 憶體中讀取一指令時,核心模組110必須透過匯流排介面 模組112輸出該指令之位址,然後該位址的指令資料才會 由系統記憶體回傳至核心模組110。同樣的,每當核心模 組110自儲存韌體程式之變數資料的系統記憶體中讀取一 > 變數時,或是當核心模組110將一變數值寫入系統記憶體 中時,核心模組110必須透過匯流排介面模組112輸出該 變數之位址,然後該位址的變數資料才會由系統記憶體回 傳至核心模組110,或寫入變數位址指定的系統記憶體中。 嵌入式電路内模擬器模組200包括一用以儲存程式斷 點之指令位址的指令位址暫存器202,一用以儲存程式斷 點之指令資料的指令資料暫存器204,一用以儲存變數觀 _ 察點之變數位址的變數位址暫存器206,以及一用以儲存 變數觀察點之變數資料的變數資料暫存器208。該4個暫 存器的儲存空間雖與習知暫存器組相同,但卻是專門用來 分別且獨立地儲存程式斷點與變數觀察點的位址與資料等 之相關資訊。由於嵌入式電路内模擬器模組200的資料暫 存器與位址暫存器並非由程式斷點與變數觀察點所共用, 因此不會發生習知因變數觀察點與程式斷點設定先後順序 的不同而造成除錯過程不同的影響的問題,而困擾程式設 計者。
Client’s Docket N〇.:CRU04-0016 TT's Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 15 1306191 每當核心模組110透過匯流排介面模組112向系統記 憶體指定一指令位址’比較器212便將該指令位址與儲存 於指令位址暫存器202中程式斷點的指令位址相比較,以 產生第一比較結果信號。若該指令位址與程式斷點的任一 指令位址相符合’則比較器212產生的第一比較結果信號 係呈現致能狀態。每當系統記憶體透過匯流排介面模組 112向核心模組11〇傳回一指令資料,比較器214便將該 指令貢料與儲存於指令資料暫存器2〇4中程式斷點的指令 資料相比較,以產生第二比較結果信號。若該指令資料與 程式斷點的任一指令資料相符合,則比較器214產生的第 二比較結果信號係呈現致能狀態。 每當核心模組110透過匯流排介面模組112向系統記 憶體指定一變數位址,比較器216便將該變數位址與儲存 於變數位址暫存器206中變數觀察點的變數位址相比較, 以產生第二比較結果信號。若該變數位址與變數觀察點的 任一變數位址相符合,則比較器216產生的第三比較結果 信號係呈現致能狀態。每當系統記憶體透過匯流排介面模 組112向核心模組110傳回—變數資料,比較器218便將 該變數資料與儲存於變數資料暫存器2〇8中變數觀察點的 變數資料相比較,以產生第四比較結果信號。若該變數資 料與變數觀察點的任一變數資料相符合,則比較器218產 生的第四比較結果信號係呈現致能狀態。 上述自比較器212至218輸出的4個比較結果信號由 OR閘220執行一 0R函數於其上以產生一輸出值。若該輸
Client’s Docket No.:CRU04-0016 TT^ Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 16 1306191 出值係呈現致能狀態,可能表示核心模組 體程式被程式設計者設定的程式斷點部分 =^丁勒 -錯主機將收到嵌入式電路内模擬器模組2〇〇的提除 並且核心模組110亦被嵌入式電路内模擬器模电=二 執餘體程式的動作。該輪出值呈現為致能狀離 ^ =::U°正在更改被程式設計者設定的;數觀:: ==通將收到嵌入式電路内‘ =、、且200的“通知’並且變數觀察點的新變 送至除錯主機,W切式設計者料除被傳 弟3圖為依據本發明之對㈣程式進行除 3〇〇之流程圖。首先,於微處 /日、法 儲存至少一第一除錯參數與至。第^分開並獨立地 302)。該第-除錯參數可為 錯參數(步驟 程式斷點,而該第二除錯參數為 數變數的變數觀察點。其中第一除鈣^ 程式之複 丨址,可藉由複數指令位址暫存器2〇2日而館對應的指令位 參數對應的指令資料,可#由複,而第一除錯 _,如和临, 可藉由複數變數位址暫存H 2。6來儲''之變數位址, 對應的變數資料,可藉由複數變數資暫:第二除錯參數 存,如同第2圖所示。 貝抖暫存器208來儲 接著,比對該微處理器擷取的該等 微處理器存取的該等複數變數。若該等 ^令’以及该 該第一除錯參數對應的指令位置相符人指令之位址與 13時,產生第一比較
Client’s Docket N〇.:CRU04-0016 TT's Docket No:0608-A40684-TW/Fmal/Yuan/2006-03-28 1306191 結果信號(㈣304)。賴等魏 參數對應的指令資料相符合時,產生該f:除錯 (步驟聊若該等複數變數之位址與該第二二= 的變數位置相符合時,產生一 > 數對應 释若該等複數變數之資料&^比==號(步驟 變數資料相符合時,產生_第四、的該 結果信號而產生-輪出值。(步驟312) ^ 此時若步驟312中之該輪出值為正(步驟 前有程式斷點或變數觀察點所對應的事件發生。若此= 二或第mb較結果信料正(㈣ 、苐 所對應的事件發生,被微處理)表4㈣觀察點 參數相符,因此通知該除錯主機該^的變數與第二除錯 被更新(步驟318)。否則,此時為第二除錯參數已 為正’表示為程式斷點所對應的事件^二比較結果信號 理器繼續執行該勃體程式並通知除錯該微處 组僅3 = 3址^技術中的嵌人式^路内模擬器模 ==::r,分別與自微處理器 之位==習知技術中的嵌入式電路内模擬器模組 暫存器的數目是有限的,若程式設計 ,,夕程式斷點,便沒有設定變數觀察點的空間。如 此-來,除錯域僅能在處㈣錢行—式
Client’s Docket N〇.:CRU04-0016 TT5sDocketNo:0608-A40684-TW/FmayYuan/2006-03-28 18 1306191 後便檢查一次變數觀察點之值,此稱之為軟體變數觀察 點,並會大大地降低韌體程式的執行速度。同樣地,若程 式設計者設定太多變數觀察點,便沒有設定程式斷點的空 間,由於程式設計者不一定了解嵌入式電路内模擬器模組 之内部設計細節,程式設計者可能會對因變數觀察點與程 式斷點設定先後順序的不同而造成除錯過程不同的影響感 到疑惑。 因此,本發明提供一種除錯系統,針對其中程式斷點 與變數觀察點有各自專屬的資料暫存器與位址暫存器。此 種設計大大簡化了設定程式斷點與變數觀察點的過程,並 且避免兩者共用資料暫存器與位址暫存器所導致的問題。 此種設計亦讓程式設計者於除錯時無論先設定程式斷點或 變數觀察點均會得到一致的結果,而避免程式設計者的困 惑。另外,由於變數觀察點有專屬的硬體支持,因此程式 設計者亦不會被突然由硬體變數觀察點轉變為軟體變數觀 察點而感到驚訝。 雖然本發明已以較佳實施例揭露如上,然其並非用以 限定本發明,任何熟習此項技術者,在不脫離本發明之精 神和範圍内,當可作些許之更動與潤飾,因此本發明之保 護範圍當視後附之申請專利範圍所界定者為準。 【圖式簡單說明】 第1圖為根據本發明之除錯系統的方塊圖; 第2圖為依據本發明之嵌入式電路内模擬器模組的區
Client’s Docket No· :CRU04-0016 TT's Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 19 1306191 塊圖;以及 ' 第3圖為依據本發明之對韌體程式進行除錯的方法之 " 流程圖。 【主要元件符號說明】 102〜除錯主機; 104〜通訊協定轉換器; 106〜微處理器; φ 110〜核心模組; 112〜匯流排介面模組; 132〜位址匯流排;134〜資料匯流排; 130〜匯流排;140〜電路板; 120〜系統記憶體; 150〜韌體程式;160〜變數; 114、200〜嵌入式電路内模擬器模組; 116〜JTAG介面; • 202〜指令位址暫存器; 204〜指令資料暫存器; 206〜變數位址暫存器; 208〜變數資料暫存器; 220〜OR閘; 212-218〜比較器。
Client's Docket N〇.:CRU04-0016 TT's Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 20
Claims (1)
1306191 十、申請專利範圍: - 1. 一種用於韌體程式除錯之微處理器,可受一除錯主 - 機控制以對於一韌體程式進行除錯,包括·· 一核心模組,用以執行該韋刃體程式; 一匯流排介面模組(bus interface module),耦接至該核 心模組,用以透過一匯流排為該核心模組擷取該韌體程式 之複數指令與存取該韌體程式之複數變數;以及 一飯入式電路内模擬器模組(embedded in-circuit I emulator),輕接至該核心模組與該匯流排介面模組,用以 分開並獨立地儲存至少一第一除錯參數與至少一第二除錯 參數,以及當於該核心模組與該匯流排介面模組所傳輸的 該等複數指令與該至少一第一除錯參數的任一相符合時, 或當於該核心模組與該匯流排介面模組所傳輸的該等複數 變數與該至少一第二除錯參數的任一相符合時,通知該核 心模組。 2. 如申請專利範圍第1項所述之用於韌體程式除錯之 > 微處理器,其中該至少一第一除錯參數與至少一第二除錯 參數可經由該除錯主機進行設定與修改。 3. 如申請專利範圍第1項所述之用於韌體程式除錯之 微處理器,其中該至少一第一除錯參數為用以中斷該韌體 程式之執行的至少一程式斷點(breakpoint)。 4. 如申請專利範圍第1項所述之用於韌體程式除錯之 微處理器,其中該至少一第二除錯參數為用以監測該韌體 程式之該等複數變數的至少一變數觀察點(watchpoint)。 Client’s Docket No.:CRU04-0016 TT5s Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 21 1306191 5. 如申請專利範圍第1項所述之用於韌體程式除錯之 微處理器,其中該韌體程式之該等複數指令儲存於一第一 記憶體,該韌體程式之該等複數變數儲存於一第二記憶 體,而該第一與第二記憶體皆經由該匯流排耦接至該微處 理器。 6. 如申請專利範圍第1項所述之用於韌體程式除錯之 微處理器,其中該嵌入式電路内模擬器模組包括: 複數指令位址暫存器,用以儲存由該除錯主機設定之 該至少一第一除錯參數的至少一指令位址; 複數指令資料暫存器,用以儲存由該除錯主機設定之 該至少一第一除錯參數的至少一指令資料; 複數變數位址暫存器,用以儲存由該除錯主機設定之 該至少一第二除錯參數的至少一變數位址;以及 複數變數資料暫存器,用以儲存由該除錯主機設定之 該至少一第二除錯參數的至少一變數資料。 7. 如申請專利範圍第6項所述之用於韌體程式除錯之 微處理器,其中該嵌入式電路内模擬器模組更包括: 一第一比較器,耦接至該核心模組與該等複數指令位 址暫存器,用以於該等複數指令之位址與該至少一第一除 錯參數的該至少一指令位置中的任一相符合時,產生一第 一比較結果信號,其中該核心模組輸出該等複數指令之位 址以便讓該匯流排介面模組擷取該等複數指令; 一第二比較器,耦接至該匯流排介面模組與該等複數 指令資料暫存器,用以於該等複數指令之資料與該至少一 Clienfs Docket No. :CRU04-0016 TT^ Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 Ϊ306191 第一除錯參數的該至少一指令資料中的任一相符合時,產 ' 生一第二比較結果信號,其中該匯流排介面模組擷取該等 複數指令之資料並將該等複數指令之資料回傳至該核心模 組; 一第三比較器,耦接至該核心模組與該等複數變數位 址暫存器,用以於該等複數變數之位址與該至少一第二除 錯參數的該至少一變數位置中的任一相符合時,產生一第 三比較結果信號,其中該核心模組指定該等複數變數之位 • 址以便讓該匯流排介面模組擷取該等複數變數; 一第四比較器,耦接至該匯流排介面模組與該等複數 變數資料暫存器,用以於該等複數變數之資料與該至少一 第二除錯參數的該至少一變數資料中的任一相符合時,產 生一第四比較結果信號,其中該匯流排介面模組擷取該等 複數變數之資料並將該等複數變數之資料回傳至該核心模 組;以及 一 OR閘,耦接至該第一、第二、第三與第四比較器, ® 用以執行一 OR函數於該第一、第二、第三與第四比較結 果信號而產生一輸出值; 其中若該輸出值係呈現致能狀態,該嵌入式電路内模 擬器模組便通知該除錯主機。 8. —種對韌體程式進行除錯的方法,該韌體程式被一 用於除錯之微處理器所執行,該微處理器擷取該韌體程式 之複數指令與存取該韌體程式之複數變數,該對韌體程式 進行除錯的方法包括下列步驟: Client’s Docket N〇.:CRU04-0016 TT’s Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 23 Ϊ306191 於該微處理器中,分開並獨立地儲存至少一第一除錯 參數與至少一第二除錯參數; 若被該微處理器擷取的該等複數指令與該至少一第一 除錯參數的任一相符時,中止該微處理器繼續執行該韌體 程式並通知一除錯主機;以及 若被該微處理器存取的該等複數變數與該至少一第二 除錯參數的任一相符時,通知該除錯主機該至少一第二除 錯參數已被更新。 9. 如申請專利範圍第8項所述之對韌體程式進行除錯 的方法,其中該至少一第一除錯參數為用以中斷該韌體程 式之執行的至少一程式斷點。 10. 如申請專利範圍第8項所述之對韌體程式進行除 錯的方法,其中該至少一第二除錯參數為用以監測該韌體 程式之該等複數變數的至少一變數觀察點。 11. 如申請專利範圍第8項所述之對韌體程式進行除 錯的方法,其中該儲存步驟包括下列步驟: 分開且獨立地儲存由該除錯主機設定之該至少一第一 除錯參數的至少一指令位址與至少一指令資料;以及 分開且獨立地儲存由該除錯主機設定之該至少一第二 除錯參數的至少一變數位址與至少一變數資料。 12. 如申請專利範圍第11項所述之對韌體程式進行除 錯的方法,更包括下列步驟: 若該等複數指令之位址與該至少一第一除錯參數的該 至少一指令位置中的任一相符合時,產生一第一比較結果 Client's Docket No. :CRU04-0016 TT’s Docket No:0608-A40684_TW/Final/Yuan/2006-03-28 24 1306191 m 信號,其中該微處理器指定該等複數指令之位址以便擷取 - 該等複數指令; * 若該等複數指令之資料與該至少一第一除錯參數的該 至少一指令資料中的任一相符合時,產生一第二比較結果 信號,其中該等複數指令之資料會被擷取並被回傳至該微 處理器; 若該等複數變數之位址與該至少一第二除錯參數的該 至少一變數位置中的任一相符合時,產生一第三比較結果 k 信號,其中該微處理器指定該等複數變數之位址以便擷取 該等複數變數; 若該等複數變數之資料與該至少一第二除錯參數的該 至少一變數資料中的任一相符合時,產生一第四比較結果 信號,其中該等複數變數之資料被擷取並被回傳至該微處 理器; 執行一 OR函數於該第一、第二、第三與第四比較結 果信號而產生一輸出值;以及 > 若該輸出值呈現致能狀態時,通知該除錯主機。 13.如申請專利範圍第8項所述之對韌體程式進行除 錯的方法,其中當該微處理器於該中止步驟中被中止執行 該韌體程式後,該除錯主機可命令該微處理器繼續執行該 韌體程式。 Client’s Docket No. :CRU04-0016 TT’s Docket No:0608-A40684-TW/Final/Yuan/2006-03-28 25
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67066505P | 2005-04-13 | 2005-04-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200636446A TW200636446A (en) | 2006-10-16 |
TWI306191B true TWI306191B (en) | 2009-02-11 |
Family
ID=36994097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW95111940A TWI306191B (en) | 2005-04-13 | 2006-04-04 | A method for debugging a firmware program and a debugging microprocessor |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100403275C (zh) |
TW (1) | TWI306191B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543870B2 (en) * | 2011-02-14 | 2013-09-24 | Nanya Technology Corporation | Circuit for detecting and recording chip fails and the method thereof |
CN112820341B (zh) * | 2021-03-03 | 2024-05-07 | 群联电子股份有限公司 | 存储器检查方法、存储器检查装置及存储器检查*** |
CN117413253A (zh) * | 2021-09-29 | 2024-01-16 | 英特尔公司 | 用于对固件代码执行单元测试的装置、设备、方法和计算机程序 |
TWI819826B (zh) * | 2022-09-30 | 2023-10-21 | 瑞昱半導體股份有限公司 | 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219828B1 (en) * | 1998-09-30 | 2001-04-17 | International Business Machines Corporation | Method for using two copies of open firmware for self debug capability |
CN1162780C (zh) * | 2001-01-05 | 2004-08-18 | 英业达股份有限公司 | 基本输入输出***的追踪除错方法 |
US7171653B2 (en) * | 2003-06-03 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing communication between a debugger and a hardware simulator |
JP2005018485A (ja) * | 2003-06-26 | 2005-01-20 | Nec Corp | ファームウェアデバッグ方法 |
-
2006
- 2006-04-04 TW TW95111940A patent/TWI306191B/zh active
- 2006-04-13 CN CNB2006100736504A patent/CN100403275C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1831785A (zh) | 2006-09-13 |
TW200636446A (en) | 2006-10-16 |
CN100403275C (zh) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4987182B2 (ja) | コンピュータシステム | |
US7010722B2 (en) | Embedded symmetric multiprocessor system debug | |
JP2651916B2 (ja) | インサーキット・エミュレータ | |
US6877114B2 (en) | On-chip instrumentation | |
JP4335999B2 (ja) | プロセッサ内蔵半導体集積回路装置 | |
US6175914B1 (en) | Processor including a combined parallel debug and trace port and a serial port | |
JP4847734B2 (ja) | 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。 | |
US6668339B1 (en) | Microprocessor having a debug interruption function | |
US9223677B2 (en) | Generation of trace data in a multi-processor system | |
US20030037225A1 (en) | Apparatus and method for microcontroller debugging | |
TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
CN104320308B (zh) | 一种服务器异常检测的方法及装置 | |
JPH011039A (ja) | インサーキット・エミュレータ | |
JP4865943B2 (ja) | コンピュータシステム | |
TWI270769B (en) | Trace, debug method and system for a processor | |
TWI306191B (en) | A method for debugging a firmware program and a debugging microprocessor | |
JP2001154876A (ja) | マイクロコンピュータデバッグアーキテクチャ及び方法 | |
JP2008507025A (ja) | 集積回路テスト用エミュレーション及びデバッグインターフェイス | |
US7313729B2 (en) | Low-cost debugging system with a ROM or RAM emulator | |
TWI314263B (zh) | ||
JP6981920B2 (ja) | 半導体装置、およびデバッグ方法 | |
TW200415461A (en) | Program debugging method | |
JP2003263339A (ja) | デバック機能内蔵型マイクロコンピュータ | |
US7231568B2 (en) | System debugging device and system debugging method | |
JP2011028308A (ja) | 半導体装置及びソフトウェア開発支援装置 |