TWI774391B - 實時配置韌體數據的方法與除錯裝置 - Google Patents

實時配置韌體數據的方法與除錯裝置 Download PDF

Info

Publication number
TWI774391B
TWI774391B TW110119008A TW110119008A TWI774391B TW I774391 B TWI774391 B TW I774391B TW 110119008 A TW110119008 A TW 110119008A TW 110119008 A TW110119008 A TW 110119008A TW I774391 B TWI774391 B TW I774391B
Authority
TW
Taiwan
Prior art keywords
debug
programmable logic
firmware
computer system
target processor
Prior art date
Application number
TW110119008A
Other languages
English (en)
Other versions
TW202242642A (zh
Inventor
陳月峰
方冬
高國棟
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Application granted granted Critical
Publication of TWI774391B publication Critical patent/TWI774391B/zh
Publication of TW202242642A publication Critical patent/TW202242642A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31721Power aspects, e.g. power supplies for test circuits, power saving during test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種實時配置韌體數據的方法與除錯裝置,當產生對一目標處理器執行更新或除錯的需求時,在實時配置韌體數據的方法中,電腦系統產生一韌體除錯請求,韌體除錯請求附帶包括特定除錯功能的韌體數據,電腦系統載入韌體數據至一除錯裝置內的可編程邏輯單元,完成配置後,由電腦系統產生除錯指令,經可編程邏輯單元解析指令後得出至少一除錯動作,傳送至目標處理器使目標處理器執行至少一除錯動作,於除錯完成後,回傳一除錯結果。

Description

實時配置韌體數據的方法與除錯裝置
說明書提出一種更新韌體的方法,特別是指一種可以實時載入韌體數據至一除錯裝置以實時除錯一目標處理器韌體的方法。
在一電子裝置中,當其中的處理器需要進行更新與除錯時,需要通過一個具備除錯功能的除錯程式(可稱除錯器)進行除錯。其中方法之一是將此裝置連接一電腦裝置,利用一除錯程式進行除錯而顯示發生錯誤的程式碼位置,並可進一步進行修正。
在很多情況下,為了獲得更多更新的功能,使用者必須按照裝置之廠家說明的步驟對除錯程式的韌體數據進行升級。然而,韌體升級的成功與否也會受到很多因素的影響,例如網路環境、操作者的熟練程度等。韌體的升級頻率一般較低,這導致傳統的除錯程式在功能上有比較長的時間是無法改變的,使得傳統的除錯程式較難適用於新型的電子裝置。
習知技術針對上述情況,提供一種帶有追蹤(Trace)功能的除錯器,但該些除錯器價格較高且僅適用特定的處理器架構,導致其通用性不佳。
現有電腦系統針對特定裝置中目標處理器除錯的韌體數據升級不易,或是功能強大的除錯器卻又僅適用特定處理器架構。而由於單晶片多處理器核心架構已成為主流,並需要以較低成本滿足多樣的追蹤需求的除錯器,本發明提出一種實時配置韌體數據的方法與除錯裝置,使得電腦系統可以通過除錯裝置實時以最新的韌體數據對目標處理器進行除錯,能滿足多樣需求。
根據至少一實施例,在實時配置韌體數據的方法中,先由一電腦系統產生韌體除錯請求,韌體除錯請求附帶一包括特定除錯功能的韌體數據,之後通過連接介面傳送至一除錯裝置的連接介面單元,接著自連接介面單元載入韌體數據至除錯裝置中的一可編程邏輯單元。當電腦系統判斷韌體數據成功載入可編程邏輯單元時,產生一除錯指令,並經連接介面單元發送至可編程邏輯單元,由可編程邏輯單元解析該除錯指令,得出至少一除錯動作,並傳送除錯指令到目標處理器的一除錯介面上,使目標處理器執行,該至少一除錯動作,完成除錯後回傳一除錯結果。
優選地,當韌體數據成功載入至可編程邏輯單元時,可編程邏輯單元即回饋訊號給連接介面單元,再經連接介面單元將此完成韌體配置成功的資訊回饋給電腦系統。
優選地,在除錯裝置中的一採樣電路用以獲得目標處理器的電壓訊號,成為傳送至電腦系統的電壓訊息,此電壓訊息讓電腦系統可以產生讓除錯裝置中的一電源控制電路能匹配目標處理器的電壓的電壓參數,並接著產生除錯指令。
在至少一實施例中,除錯指令包括設定目標處理器的中斷點、單步執行以及/或讀寫目標處理器的記憶體,亦包括目標處理器全速運行、訪問處理器內部及外設資源、對目標處理器進行性能追蹤,以及/或即時監測處理器內部的狀態。
根據除錯裝置的至少一實施例,除錯裝置主要包括連接介面單元,用以連接電腦系統;可編程邏輯單元,電腦系統通過所述連接介面單元將韌體數據傳輸到可編程邏輯單元中;以及週邊電路單元,其中包括電源控制電路、採樣電路與驅動保護電路,用以檢測外部訊號電壓參數和設定除錯裝置訊號的電壓和驅動力。當有除錯需求時,由除錯裝置運行所述實時配置韌體數據的方法。
進一步地,在除錯裝置中,可編程邏輯單元與週邊電路單元之間設有一除錯匯流排,將連接介面單元傳過來的並行資料轉換成除錯匯流排的格式,再經過驅動保護電路送到目標處理器。除錯裝置還包括一高速並行介面,用於對具有追蹤埠的目標處理器進行即時追蹤。
進一步地,在除錯裝置中以一隨機存取記憶體實現一數據儲存單元,用於資料緩衝,有利於提高對連接介面單元傳輸頻寬的利用率。
進一步地,電腦系統通過連接介面單元傳送至可編程邏輯單元的資料包括所述可編程邏輯單元的配置資料,使其實現特定的組合邏輯和時序邏輯,以及使目標處理器執行不同除錯動作的資料包。
進一步地,以一場域可程式化邏輯閘陣列實現所述可編程邏輯單元,可編程邏輯單元採用一具有靜態隨機存取記憶體的查閱資料表結構。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者訊號,但這些元件或者訊號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一訊號與另一訊號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
本發明涉及除錯(或稱除錯)程序(debugging),例如提出一電腦系統,其中運行一作業系統,運用其中電腦程序除錯一目標處理器(可以為一電子裝置中的微處理器、中央處理器等),執行除錯的過程中,電腦系統以特定連接介面(如通用序列匯流排(USB))連接一除錯裝置,先將包括除錯功能的韌體數據載入此裝置,以對目標處理器執行韌體除錯程序,執行韌體除錯的位置主要是在所提出的除錯裝置中。當除錯裝置通過連接介面連接電腦系統時,電腦系統會對除錯裝置進行初始化,並識別除錯裝置,再發出除錯指令,包括追蹤除錯裝置狀態,於初始化後即對目標處理器執行韌體除錯程序,執行韌體除錯或更新。在此一提的是,韌體除錯程序可包括利用目標處理器的開發廠商提供的工具程式,以單步執行(single-stepping)與中斷點(breakpoint)等方式得出發生錯誤的程式碼,還包括追蹤模式與其他診斷程序,除了得出問題所在之外,還可以進一步進行修正。
本發明提出一種實時配置韌體數據的方法與除錯裝置,這是一種讓電腦系統可以迅速且即時地配置(configuration)韌體數據的方法,其主要技術概念是,當每次進行一電子裝置中韌體除錯,如針對其中處理器(稱目標處理器)韌體進行更新、除錯與診斷,可以即時將具有特定除錯功能的韌體數據載入除錯裝置中,韌體數據之取得可自一線上伺服器(其中為廠商提供的網站服務)下載包括特定更新或除錯功能的韌體數據,下載並配置至除錯裝置中,即開始更新目標處理器韌體的程序。當完成韌體更新後,即可關閉或重新啟動其電子裝置,這時在除錯裝置中的韌體數據即被刪除。這個過程可能僅在毫秒級,可以滿足各種更新需求。
圖1繪示根據本發明一些實施例的實時配置韌體數據方法的裝置示意圖。圖1顯示有一電腦系統160以及一個除錯裝置100。當有任一目標處理器150中有韌體更新、診斷、除錯需求時,電腦系統160可以通過一特定連接介面(連接介面單元110)連接除錯裝置100,連接介面常見的如通用序列匯流排(USB),之後由電腦系統160發動韌體除錯程序,產生韌體除錯請求與所附帶特定除錯功能的韌體數據傳送至除錯裝置100,完成載入韌體數據後,除錯裝置100可對目標處理器150進行韌體除錯。
在一些實施例中,目標處理器150就是被除錯的目標。除錯裝置100中的主要元件包括連接介面單元110、可編程邏輯單元(programmable logic unit)120、週邊電路單元(peripheral circuit unit)130和數據儲存單元(data storage unit)140。其中連接介面單元110可工作在一種高速傳輸模式,如USB2.0/3.0等傳輸模式,能夠滿足大多數目標處理器150對除錯與更新速度的要求。除錯裝置100除了具有一般韌體除錯用的序列介面(如JTAG(Joint Test Action Group)、SWD(Serial Wire Debug))等除錯匯流排外,還可包括一高速並行介面(如MICTOR38),可用於對具有一個追蹤埠(Trace port)的目標處理器150進行即時追蹤(Trace),用於追蹤目標處理器150的性能。即時追蹤可包括執行除錯時的狀態數據以及通過除錯匯流排151讀出目標處理器150內的狀態數據,以供分析性能。
在一些實施例中,可編程邏輯單元120可根據具體除錯的需求取得韌體數據,包括可通過網路連線(如通過電腦系統160連線外部伺服器)彈性地更新韌體數據。數據儲存單元140電性連接可編程邏輯單元120,其係為除錯裝置100中的可選單元,一般可以隨機存取記憶體(Random-Access Memory, RAM)實現。數據儲存單元140可用於資料緩衝(Data Buffer),有利於提高對連接介面單元110傳輸頻寬的利用率,進而提升除錯速度。圖中顯示的週邊電路單元130包括電源控制電路131、採樣電路132與驅動保護電路133,具有檢測外部訊號電壓參數和設定除錯裝置100訊號的電壓和驅動力(driving force)的功能。
從除錯裝置100具體實現來說,連接介面單元110部分包括介面晶片(如USB晶片)及其週邊電路,舉例來說,連接介面單元110可以USB2.0高速模式運行,理論速度可達到480Mbps。連接介面單元110在除錯裝置100中承擔三種任務,第一種:正常資料傳輸任務,將電腦系統160傳過來的除錯指令轉發以並行(parallel)方式傳送到下一級(如目標處理器150);或者是接收下一級(如目標處理器150)的除錯資料,再回傳給電腦系統160。第二種:負責可編程邏輯單元120的配置,這一過程稱之為韌體升級,升級過後即可實現特定的用於除錯的邏輯功能。第三種,監測讀取目標處理器150的電壓參數,然後上傳給電腦系統160進一步處理。
根據以上除錯裝置100的實施例,電腦系統可通過除錯裝置100的連接介面單元110(如USB)將兩種類型的韌體數據傳輸到其中的可編程邏輯單元120,第一種資料類型是:可編程邏輯單元120的配置資料(configuration data),使其實現特定的組合邏輯和時序邏輯功能;第二種類型是使目標處理器150執行不同除錯動作的資料包,形成韌體除錯請求,包括但不限於:設定處理器中斷點(Breakpoint)、處理器單步執行(Step)、處理器全速運行(Free running)、訪問處理器內部及外設資源;或者是對目標處理器150進行性能追蹤(Performance Trace or PC Sample),即時監測處理器內部的狀態,如匯流排上的資料、某些如跳轉等指令的監測等。
在一些實施例中,可編程邏輯單元120可以一場域可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)實現,其可以靜態隨機存取記憶體(Static Random Access Memory,SRAM)的查閱資料表結構(Look Up Table, LUT)實現,將連接介面單元110傳過來的並行資料根據需要暫存到數據儲存單元140,或者直接轉換成某一匯流排(即除錯匯流排151)的格式,經過驅動保護電路133送到目標處理器150。反方向的資料流程可依此類推。
在一些實施例中,週邊電路單元130主要包括電源控制電路131、採樣電路132以及驅動保護電路133三個電路,其包括三種功能,第一種:通過採樣電路132檢測外部除錯介面上的電壓,然後將結果通過連接介面單元110送回電腦系統160。第二種:提高訊號驅動的能力、電路元件的過電流保護。第三種:經連接介面單元110從電腦系統150傳來的電壓參數直接被送到電源控制電路131,使電源控制電路131輸出正確的電壓給可編程邏輯單元120和驅動保護電路133,以達到和目標處理器150電壓值匹配的目的。
圖2繪示根據本發明一些實施例的實時配置韌體數據方法的流程圖,並可配合圖3所示的施例。圖3亦繪示根據本發明一些實施例的除錯裝置執行實時配置韌體數據方法的流程圖。例如,除錯裝置100的連接介面單元110、可編程邏輯單元120、數據儲存單元140與週邊電路單元130之間的協作,以及對目標處理器150執行實時除錯的運作流程。
進行實時配置韌體數據的方法流程之初,可在電腦系統160中預先設置好能滿足目標處理器150韌體除錯需求的一或多個韌體數據,其為事先通過驗證或由特定來源取得。這些韌體數據主要儲存於電腦系統160的儲存裝置中,其中運行的軟體程序,如驅動除錯裝置100的驅動程式,可根據需求隨時被存取並進行韌體除錯程序。當有特定目標處理器150有除錯需求時,即可執行以下實施例描述的流程。
在圖2的流程中,開始於目標處理器150有韌體除錯的需求(步驟S201),以除錯裝置100通過特定連接介面連接電腦系統160,以通用序列匯流排為例,可以電腦系統160供電給除錯裝置100,並用於數據傳輸(步驟S203),接著由電腦系統160中的軟體程序產生一韌體除錯請求,其中可為一韌體升級的請求,並附帶本次除錯所需的韌體數據,發送至連接介面單元110(步驟S205)。連接介面單元110檢測到新的除錯需求後,可將接收到的韌體除錯請求與附帶的韌體數據下載到可編程邏輯單元120(步驟S207)。下載成功後,可編程邏輯單元120即回饋訊號給連接介面單元110(步驟S209),再經連接介面單元110將此有關完成韌體配置成功等資訊回饋給電腦系統160(步驟S209’)。反之,若載入可編程邏輯單元120失敗,回饋失敗訊息至電腦系統160,後續將可據此對實時配置韌體數據的方法進行調整。
此時,電腦系統160所執行的軟體程序可判斷韌體數據是否成功地載入至可編程邏輯單元120(步驟S211)。當判斷並未成功載入韌體數據(否),運行於電腦系統160中的軟體程序將繼續嘗試是否有韌體除錯的需求與相關資料,或是判斷為退出此程序(步驟S213),並結束流程(步驟S215)。反之,若判斷成功載入韌體程序(是),即繼續流程,進入韌體除錯的模式。
接著,除錯裝置100通過採樣電路(如圖1所示的採樣電路132)獲得目標處理器150的電壓訊號並將此電壓訊息傳送至電腦系統160(圖2的步驟S217以及圖3的步驟S217’),電腦系統160即根據此電壓訊息設定電壓參數(步驟S219),提供給電源控制電路(如圖1所示的電源控制電路131)。這個電壓參數是能讓除錯裝置100中電源控制電路匹配目標處理器150的電壓,最終與目標處理器150完成電壓匹配,以執行後續除錯步驟。
完成以上初始化步驟後,電腦系統160發送除錯指令,其中包括設定中斷點、單步執行或讀寫目標處理器150的記憶體等步驟(步驟S221),以執行後續S231~S239等步驟。由於除錯程序是針對多種項目進行至少一個除錯動作,並需反覆除錯,因此過程中將判斷是否除錯結束(步驟S223)。若本次除錯已經結束,即結束本次除錯程序(步驟S225),同時讓除錯裝置100拋棄本次完成除錯使用的韌體數據(步驟S227),結束後可將除錯裝置100與電腦系統160斷線(步驟S229)。
在除錯過程中,當除錯裝置100的連接介面單元110接收到除錯指令,將接收的除錯指令轉換為並行資料(parallel)發送至可編程邏輯單元120(步驟S231),可編程邏輯單元120按照下載的韌體數據對傳來的資料進行進一步解析,可得出至少一個除錯動作,然後將除錯指令轉換為執行硬體除錯或轉換為除錯匯流排(如圖1所示的除錯匯流排151)對應協議的格式(步驟S233),再以除錯匯流排的格式發送到週邊電路單元130,週邊電路單元130對得到的數據進行調整後,傳送到目標處理器150的除錯介面上(步驟S235),使得目標處理器150也接收除錯指令,並據此執行除錯程序,即執行解析得出至少一個除錯動作(步驟S237),目標處理器150完成除錯後回傳除錯結果(步驟S237’),並等待下一個除錯指令(步驟S239),流程回到步驟S221。
執行除錯程序時的寫入指令範例可參考圖4,圖4繪示根據本發明一些實施例的實時配置韌體數據方法的寫入指令流程圖。
開始韌體除錯程序(步驟S401),以對目標處理器(如圖1所示的目標處理器150)寫入指令為例,電腦系統(如圖1所示的電腦系統160)合成一寫入指令幀,可參考圖5所示的根據本發明一些實施例的傳遞除錯指令幀的格式示意圖,寫入指令幀記載有一寫入幀標頭51、位址53、長度55以及數據內容57。接著通過連接介面單元110傳送此寫入指令幀至連接此電腦系統160的除錯裝置100(步驟S403),在除錯裝置100中,將寫入指令幀傳送到可編程邏輯單元120(步驟S405),可編程邏輯單元即解析指令幀(步驟S407),此例為取得寫入指令與數據內容57,再將相關數據寫入(暫存)數據儲存單元140(步驟S409)。
之後,可編程邏輯單元120繼續從數據儲存單元140中讀出寫入指令幀的數據內容57,合成除錯用的介面指令,即合成一系列的符合除錯裝置100中除錯匯流排151協議的格式,如符合JTAG的指令暫存區(IR)與資料暫存區(DR)的格式(步驟S411),之後傳送除錯指令至目標處理器150的除錯介面(步驟S413),目標處理器150即可根據指令執行韌體除錯程序。
完成以上動作後,可編程邏輯單元120可將結果通過連接介面單元110回饋給電腦系統160(步驟S415),結束本次寫入流程(步驟S417),此後電腦系統160可再發出新的指令。
在電腦系統160中設置有各種除錯功能的韌體數據時,為能支援各種目標裝置的除錯需求,所述方法可以自外部系統取得經過驗證的韌體數據,如圖6繪示根據本發明一些實施例的實時配置韌體數據方法的系統的示意圖。
在一些實施例中,伺服器61中可儲存各種目標裝置(如圖1所示的目標處理器150)廠商提供包括各種除錯功能的韌體數據,以能通過網路60支援各端的除錯需求,設於終端的各電腦系統601、603,可以隨時通過除錯裝置602、604除錯目標處理器611、612,並能在除錯程序之前確認電腦系統601、603內是否具備除錯需求的韌體數據,若有需求,即通過網路60連線伺服器61下載所需的韌體數據。
綜上所述,根據以上實時配置韌體數據的方法與除錯裝置的實施例,所提出的方法為提出一除錯裝置,連接讓使用者操作除錯的電腦系統,使得可通過此除錯裝置對目標處理器執行除錯,能通過電腦系統實時載入包括特定除錯功能的韌體數據至此除錯裝置,再對目標處理器進行韌體除錯,所述方法能夠滿足各種變化的除錯需求。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包括於本發明的申請專利範圍內。
100:除錯裝置 160:電腦系統 110:連接介面單元 120:可編程邏輯單元 140:數據儲存單元 130:週邊電路單元 131:電源控制電路 132:採樣電路 133:驅動保護電路 150:目標處理器 151:除錯匯流排 153:採樣通道 51:寫入幀標頭 53:位址 55:長度 57:數據內容 60:網路 61:伺服器 601, 603:電腦系統 602, 604:除錯裝置 611, 612:目標處理器 步驟S201~S239:實時配置韌體數據的流程 步驟S401~S417:實時配置韌體數據的流程
圖1繪示根據本發明一些實施例的實時配置韌體數據方法的除錯裝置示意圖;
圖2繪示根據本發明一些實施例的實時配置韌體數據方法的流程圖;
圖3繪示根據本發明一些實施例的除錯裝置執行實時配置韌體數據方法的流程圖;
圖4繪示根據本發明一些實施例的實時配置韌體數據方法的寫入指令流程圖;
圖5繪示根據本發明一些實施例的傳遞除錯指令幀的格式示意圖;以及
圖6繪示根據本發明一些實施例的實時配置韌體數據方法的系統的示意圖。
100:除錯裝置
160:電腦系統
110:連接介面單元
120:可編程邏輯單元
140:數據儲存單元
130:週邊電路單元
131:電源控制電路
132:採樣電路
133:驅動保護電路
150:目標處理器
151:除錯匯流排
153:採樣通道

Claims (10)

  1. 一種實時配置韌體數據的方法,包括: 一電腦系統產生一韌體除錯請求,通過一連接介面傳送至一除錯裝置之一連接介面單元,其中該韌體除錯請求附帶包括特定除錯功能的一韌體數據; 自該連接介面單元載入該韌體數據至該除錯裝置中的一可編程邏輯單元; 於該電腦系統判斷該韌體數據成功載入該可編程邏輯單元時,產生一除錯指令; 經該連接介面單元發送該除錯指令至該可編程邏輯單元; 該可編程邏輯單元解析該除錯指令,得出至少一除錯動作;以及 傳送該除錯指令到一目標處理器的一除錯介面上,使該目標處理器執行該至少一除錯動作,完成除錯後回傳一除錯結果。
  2. 如請求項1所述的實時配置韌體數據的方法,其中該除錯裝置通過一通用序列匯流排連接該電腦系統,使該電腦系統供電給該除錯裝置,並用於數據傳輸。
  3. 如請求項1所述的實時配置韌體數據的方法,其中,經確認成功載入該韌體數據至該可編程邏輯單元後,該可編程邏輯單元回饋訊號給該連接介面單元,再經該連接介面單元將此完成韌體配置成功的資訊回饋給該電腦系統。
  4. 如請求項1所述的實時配置韌體數據的方法,其中,該除錯裝置通過其中的一採樣電路獲得該目標處理器的電壓訊號,成為傳送至該電腦系統的電壓訊息。
  5. 如請求項4所述的實時配置韌體數據的方法,其中,該電腦系統根據該目標處理器的電壓訊息設定一電壓參數,使得該除錯裝置中的一電源控制電路能匹配該目標處理器的電壓,接著產生該除錯指令。
  6. 如請求項5所述的實時配置韌體數據的方法,其中該除錯指令包括設定該目標處理器的中斷點、單步執行以及/或讀寫該目標處理器記憶體。
  7. 如請求項6所述的實時配置韌體數據的方法,其中該除錯指令還包括該目標處理器全速運行、訪問處理器內部及外設資源、對該目標處理器進行性能追蹤,以及/或即時監測處理器內部的狀態。
  8. 如請求項1至7中任一項所述的實時配置韌體數據的方法,其中,於完成該除錯程序後,該可編程邏輯單元拋棄本次除錯的該韌體數據。
  9. 一種除錯裝置,包括: 一連接介面單元,該除錯裝置通過該連接介面單元連接一電腦系統; 一可編程邏輯單元,一電腦系統通過該連接介面單元將韌體數據傳輸到該可編程邏輯單元中;以及 一週邊電路單元,其中包括一電源控制電路、一採樣電路與一驅動保護電路,用以檢測外部訊號電壓參數和設定該除錯裝置訊號的電壓和驅動力; 其中該除錯裝置運行一實時配置韌體數據的方法,包括: 該電腦系統產生一韌體除錯請求,通過一連接介面傳送至該連接介面單元,其中該韌體除錯請求附帶一韌體數據; 自該連接介面單元載入該韌體數據至該除錯裝置中的該可編程邏輯單元; 於該電腦系統判斷該韌體數據成功載入該可編程邏輯單元時,根據一目標處理器的電壓訊息設定一電壓參數,使得該電源控制電路能匹配該目標處理器的電壓,接著產生一除錯指令; 經該連接介面單元發送該除錯指令至該可編程邏輯單元; 該可編程邏輯單元解析該除錯指令,得出至少一除錯動作;以及 傳送該除錯指令到該目標處理器的一除錯介面上,使該目標處理器執行該至少一除錯動作,完成除錯後回傳一除錯結果。
  10. 如請求項9所述的除錯裝置,其中於該可編程邏輯單元與該週邊電路單元之間設有一除錯匯流排,將該連接介面單元傳過來的並行資料轉換成該除錯匯流排的格式,再經過該驅動保護電路送到該目標處理器。
TW110119008A 2021-04-16 2021-05-26 實時配置韌體數據的方法與除錯裝置 TWI774391B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110409754.2 2021-04-16
CN202110409754.2A CN115220769A (zh) 2021-04-16 2021-04-16 实时配置固件数据的方法与调试装置

Publications (2)

Publication Number Publication Date
TWI774391B true TWI774391B (zh) 2022-08-11
TW202242642A TW202242642A (zh) 2022-11-01

Family

ID=83602458

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110119008A TWI774391B (zh) 2021-04-16 2021-05-26 實時配置韌體數據的方法與除錯裝置

Country Status (3)

Country Link
US (1) US11585850B2 (zh)
CN (1) CN115220769A (zh)
TW (1) TWI774391B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI819826B (zh) * 2022-09-30 2023-10-21 瑞昱半導體股份有限公司 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115220769A (zh) * 2021-04-16 2022-10-21 瑞昱半导体股份有限公司 实时配置固件数据的方法与调试装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160274187A1 (en) * 2015-03-17 2016-09-22 Intel Corporation Method, apparatus and system for dynamic bandwidth management in systems
US9606175B2 (en) * 2014-12-26 2017-03-28 Intel Corporation Reprogramming a port controller via its own external port
US20170357564A1 (en) * 2016-06-14 2017-12-14 Sony Mobile Communications Inc. Measurement coordination by monitoring of program code execution
US20180285241A1 (en) * 2017-03-28 2018-10-04 Carnegie Mellon University Energy-interference-free debugger for intermittent energy-harvesting systems
CN111934931A (zh) * 2020-08-10 2020-11-13 中国科学院高能物理研究所 基于xvc协议的服务器及fpga固件更新调试方法
CN112506727A (zh) * 2020-12-16 2021-03-16 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0869434A3 (en) 1997-03-31 1999-09-15 Hewlett-Packard Company Method for outputting trace information of a microprocessor
TWI480731B (zh) * 2010-06-30 2015-04-11 Insyde Software Corp 轉接裝置及經由該轉接裝置之除錯方法
CN103748562B (zh) 2010-12-23 2019-03-29 英特尔公司 测试、验证和调试架构
US9203408B1 (en) * 2014-04-04 2015-12-01 Altera Corporation Reconfigurable logic analyzer circuitry
US10054636B2 (en) 2015-10-23 2018-08-21 Intel IP Corporation Device, system and method to support communication of test, debug or trace information with an external input/output interface
CN105607998B (zh) 2015-12-11 2018-10-12 成都新兴信息技术研究所 一种通过在线方式进行嵌入软件调试的系统与方法
US10789153B2 (en) * 2018-04-03 2020-09-29 Xilinx, Inc. Debug controller circuit
US10992298B1 (en) * 2019-10-18 2021-04-27 Gowin Semiconductor Corporation Method and system for providing wireless FPGA programming download via a wireless communication block
US11280829B1 (en) * 2019-12-19 2022-03-22 Xlnx, Inc. System-on-chip having secure debug mode
US20210365591A1 (en) * 2020-05-22 2021-11-25 Intel Corporation Secure debug of fpga design
US11782089B2 (en) * 2020-07-01 2023-10-10 Dell Products, L.P. Detecting and remediating unauthorized debug sessions
CN115220769A (zh) * 2021-04-16 2022-10-21 瑞昱半导体股份有限公司 实时配置固件数据的方法与调试装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606175B2 (en) * 2014-12-26 2017-03-28 Intel Corporation Reprogramming a port controller via its own external port
US20160274187A1 (en) * 2015-03-17 2016-09-22 Intel Corporation Method, apparatus and system for dynamic bandwidth management in systems
US20170357564A1 (en) * 2016-06-14 2017-12-14 Sony Mobile Communications Inc. Measurement coordination by monitoring of program code execution
US20180285241A1 (en) * 2017-03-28 2018-10-04 Carnegie Mellon University Energy-interference-free debugger for intermittent energy-harvesting systems
CN111934931A (zh) * 2020-08-10 2020-11-13 中国科学院高能物理研究所 基于xvc协议的服务器及fpga固件更新调试方法
CN112506727A (zh) * 2020-12-16 2021-03-16 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI819826B (zh) * 2022-09-30 2023-10-21 瑞昱半導體股份有限公司 具有韌體更新錯誤排除機制的電子系統及其韌體更新方法

Also Published As

Publication number Publication date
US20220334179A1 (en) 2022-10-20
CN115220769A (zh) 2022-10-21
TW202242642A (zh) 2022-11-01
US11585850B2 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
US8589881B2 (en) Web-based software debugging apparatus and method for remote debugging
TWI774391B (zh) 實時配置韌體數據的方法與除錯裝置
US7185321B1 (en) Method and system for debugging through supervisory operating codes and self modifying codes
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
US9111033B2 (en) Compiling source code for debugging with user preferred snapshot locations
US8752024B2 (en) Resuming a prior debug session
US9852038B2 (en) Debugging system and debugging method of multi-core processor
US20140236914A1 (en) Controller, information processing apparatus, and recording medium
CN113900693B (zh) 一种固件升级方法、装置、系统、电子设备及存储介质
US9552277B2 (en) Synchronized java debugger
KR100607023B1 (ko) 프로그램 처리 장치
CN113364747B (zh) 调试方法、装置、系统及数据集生成方法、装置
CN112685066B (zh) 一种异构平台的mcu软件代理模式开发方法
KR100768396B1 (ko) 프로그램 처리 장치
CN116955181A (zh) 芯片测试系统、方法、计算机设备及存储介质
WO2020000949A1 (zh) 一种pcie链路的驱动系统及驱动调试系统
JP2006323726A (ja) モニタプログラムおよびリアルタイムトレースシステム
CN118093446B (zh) 一种异构程序调试方法、系统、装置、电子设备及存储介质
CN113608935B (zh) 一种测试网卡的方法、系统、设备及介质
KR20050063023A (ko) 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법
CN116562203B (zh) 一种调试系统中数据的处理方法、装置、设备及存储介质
CN109491826B (zh) 远程硬件诊断系统与诊断方法
CN114996172B (zh) 基于ssd访问主机内存的方法及系统
CN118069382A (zh) 一种嵌入式余度计算机软件同步调试系统和方法
CN116185822A (zh) 软件测试bug的获取方法、装置、计算机设备及存储介质