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 PDF

Info

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
Application number
TW95111940A
Other languages
English (en)
Other versions
TW200636446A (en
Inventor
Shuford Clark
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200636446A publication Critical patent/TW200636446A/zh
Application granted granted Critical
Publication of TWI306191B publication Critical patent/TWI306191B/zh

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
TW95111940A 2005-04-13 2006-04-04 A method for debugging a firmware program and a debugging microprocessor TWI306191B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ファームウェアデバッグ方法

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) 半導体装置及びソフトウェア開発支援装置