TW201643888A - 具除錯控制器的系統單晶片及其操作方法 - Google Patents
具除錯控制器的系統單晶片及其操作方法 Download PDFInfo
- Publication number
- TW201643888A TW201643888A TW104132571A TW104132571A TW201643888A TW 201643888 A TW201643888 A TW 201643888A TW 104132571 A TW104132571 A TW 104132571A TW 104132571 A TW104132571 A TW 104132571A TW 201643888 A TW201643888 A TW 201643888A
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- uart
- debug
- command
- debug command
- Prior art date
Links
Classifications
-
- 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
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- 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
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- 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
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Abstract
本發明揭露一種系統單晶片,包含一第一UART控制器、一第二UART控制器、一除錯控制器、一處理器、一UART埠、一第一多工器以及一第二多工器。該第一UART控制器及該第二UART控制器具有不同的鮑率,而該UART埠具一RXD接腳耦接至該第二UART控制器的RXD接腳。在接通電源或硬體重置後,該除錯控制器產生具第一狀態的控制訊號與檢查從該第二UART控制器接收到的資料是否等於一關鍵字。當從該第二UART控制器接收到的資料等於該關鍵字時,該除錯控制器產生具第二狀態的控制訊號及開始分析與執行由該第二UART控制器接收到的至少一除錯命令。
Description
本發明係有關於系統單晶片(System on Chip,以下簡稱SOC),尤有關於具除錯控制器的系統單晶片及其操作方法。
第1圖顯示一傳統SOC 100的示例方塊圖。請參考第1圖,一SOC 100包含一處理器110、一通用非同步收發傳輸器(Universal asynchronous receiver/transmitter,以下簡稱UART)控制器120、一靜態隨機存取記憶體(SRAM)170、一動態隨機存取記憶體(DRAM)控制器180以及一快閃記憶體控制器(flash controller)190。一般而言,SOC 100會與一獨立的DRAM 181及一快閃記憶體191一起運作,而該SOC 100通常具有二個介面用來對其本身的嵌入式系統進行除錯(debug),例如:一聯合測試工作組(joint test action group,JTAG)介面,用以連接至一線上仿真器(in-circuit emulator,以下簡稱ICE)160,以及一UART介面,用以連接至一主控台(console)150。舉例而言,一系統開發者通常透過JTAG埠140來使用ICE 160,以將程式載入該嵌入式系統、執行程式、緩慢地單步執行(step through)、設立執行斷點(breakpoint)、
並檢視與改變系統軟體使用的資料。然而,搭配JTAG介面的ICE 160並不容易使用。
若要進行軟體除錯,一部簡單的文字(text)輸入/輸出主控台150通常就足夠使用。利用簡單的UART接線131連接SOC 100的UART埠130與主控台150(如一台PC)的UART埠(未顯示)就能完成,所以系統開發者可利用一終端/主控台應用程式就能顯示文字訊息與輸入資料。然而,如其他電腦系統,SOC會有崩潰(crash)問題及被不同週邊次系統的其他特色支配的問題。當處理器崩潰時,處理器110無法正常運作,故系統開發者不可能透過UART接線131及處理器110收集有關嵌入式系統的運作狀態的資料。為了解決上述問題,因此提出本發明。
有鑒於上述問題,本發明的目的之一是提供一種具除錯控制器的系統單晶片,因此,當處理器崩潰時,系統單晶片的除錯控制器可透過一UART埠對其嵌入式系統進行除錯。
本發明的一實施例係提供一種系統單晶片。該系統單晶片包含一第一UART控制器、一第二UART控制器、一除錯控制器、一UART埠、一第一多工器以及一第二多工器。該第一UART控制器及該第二UART控制器具有不同的鮑率。該除錯控制器耦接至該第二UART控制器與一系統匯流
排,用以在接通電源或硬體重置後,產生具第一狀態的控制訊號及檢查從該第二UART控制器接收到的資料是否等於一關鍵字。該UART埠,包含一RXD接腳以及一TXD接腳,其中該UART埠的RXD接腳係耦接至該第二UART控制器的RXD接腳。該第一多工器,用以回應該控制訊號的第一狀態,而將該UART埠的RXD接腳耦接至該第一UART控制器的RXD接腳,以及回應該控制訊號的第二狀態,而將一電壓接頭耦接至該第一UART控制器的RXD接腳,其中該電壓接頭被施加一UART閒置訊號。該第二多工器,用以回應該控制訊號的第一狀態,而將該第一UART控制器的TXD接腳耦接至該UART埠的TXD接腳,以及回應該控制訊號的第二狀態,而將該第二UART控制器的TXD接腳耦接至該UART埠的TXD接腳。其中,當該第二UART控制器接收到的資料等於該關鍵字時,該除錯控制器產生具第二狀態的控制訊號及開始分析與執行由該第二UART控制器接收到的至少一除錯命令。
本發明的另一實施例係提供一種系統單晶片的操作方法。該系統單晶片包含一第一UART控制器、一第二UART控制器、一除錯控制器以及一UART埠,其中該除錯控制器耦接至該第二UART控制器與一系統匯流排,而且該UART埠的RXD接腳係耦接至該第二UART控制器的RXD接腳。該操作方法包含:將該第一UART控制器的第一鮑率及
一第二UART控制器的第二鮑率設定為不同值;將該第一UART控制器的RXD接腳耦接至該UART埠的RXD接腳;將該第一UART控制器的TXD接腳耦接至該UART埠的TXD接腳;由該除錯控制器檢查從該第二UART控制器接收到的資料是否等於一關鍵字;以及,當該接收到的資料等於該關鍵字時,施加一UART閒置訊號至該第一UART控制器的RXD接腳、將該第二UART控制器的TXD接腳耦接至該UART埠的TXD接腳以及由該除錯控制器開始分析與執行由該第二UART控制器接收到的至少一除錯命令。
100、200‧‧‧SOC
110‧‧‧處理器
120、210、220‧‧‧UART控制器
130‧‧‧UART埠
131‧‧‧UART連線
140‧‧‧JTAG埠
150‧‧‧主控台
160‧‧‧線上仿真器
170‧‧‧SRAM
180‧‧‧DRAM控制器
181‧‧‧DRAM
190‧‧‧快閃記憶體控制器
191‧‧‧快閃記憶體
231、232‧‧‧多工器
240‧‧‧除錯控制器
第1圖顯示一傳統SOC 100的示例方塊圖。
第2圖係根據本發明的一實施例,顯示SOC之方塊圖。
第3圖為SOC 200記憶體空間配置的一個例子。
第4A與4B圖係根據本發明一實施例,顯示SOC 200的操作方法的流程圖。
第5圖係根據本發明另一實施例,顯示位在SOC 200外部的快閃記憶體191的更新方法的流程圖。
在通篇說明書及後續的請求項當中所提及的
「一」及「該」等單數形式的用語,都同時包含單數及複數的涵義,除非本說明書中另有特別指明。
本發明的特色之一是將一除錯控制器併入具有一處理器的SOC。因此,當處理器崩潰時,SOC的除錯控制器可透過一UART埠對其嵌入式系統進行除錯。而且,在沒有任何崩潰問題時,SOC的除錯控制器可透過該UART埠及一快閃記憶體控制器更新其快閃記憶體。
第2圖係根據本發明的一實施例,顯示SOC之方塊圖。參考第2圖,本發明SOC 200包含一處理器110、一除錯控制器240、二個UART控制器210、220、二個多工器231、232以及一UART埠130。請注意,在本實施例中,SRAM170、DRAM控制器180、獨立的DRAM 181、快閃記憶體控制器190以及獨立的快閃記憶體191並非必要元件,可根據不同的系統需求而設置,故僅以虛線標示。二個UART控制器210、220共用同一個UART埠130,而該SOC 200共用同一個UART埠130有利於減少通訊埠的數目與維持一個小尺寸規格(form factor)。
在接通電源(power-up)或硬體重置(reset)後,該處理器100先執行一重置程序,再依據一正常流程執行指令。此時,該除錯控制器240並不分析(parse)與執行任何除錯命令,而是將一控制訊號CS設為無效(de-assert)或產生具第一狀態(例如具邏輯值0)的控制訊號CS。在系統初始化之
後,UART控制器210、220的鮑率(baud rate)分別被設為不同的值(單位:kbps),例如:分別被設為R1與R2。每一多工器(231、232)具二個輸入端與一輸出端。多工器231的第一輸入端連接至UART埠130的資料接收接腳(pin)RXD、第二輸入端永遠被施加一UART閒置(idle)訊號(為高電壓或被提供電力的(powered))、以及輸出端連接至UART控制器210的RXD接腳(pin)。多工器232的第一輸入端連接至UART控制器210的TXD接腳、第二輸入端連接至UART控制器220的TXD接腳、以及輸出端連接至UART埠130的資料傳輸接腳TXD。根據控制訊號CS的狀態,每一多工器(231、232)選擇性地連接其二個輸入端之其一至其輸出端。例如:每一多工器(231、232)接收到具第一狀態(或邏輯值0)的控制訊號CS(或被設為無效的控制訊號CS)後,將其第一輸入端連接至其輸出端;具體而言,透過多工器231,UART埠130的RXD接腳耦接至UART控制器210的RXD接腳,而透過多工器232,UART埠130的TXD接腳耦接至UART控制器210的TXD接腳。因此,該處理器110可存取UART控制器210的接收與傳送位移暫存器。請注意,如第2圖所示,UART埠130的RXD接腳亦耦接至UART控制器220的RXD接腳,以便”窺探(snooping)”(將於後面詳述)。因此,該除錯控制器240也可存取UART控制器220的接收位移暫存器。
此時,在設定完一外部裝置(如主控台150)之
UART控制器的鮑率等於R1後,系統開發者可利用一UART纜線(cable)131連接該主控台150與該SOC的UART埠130,以便維修、監控或進行資料傳輸。若UART控制器210與該主控台150之UART控制器二者間具有相同參數設定,就開啟了二者間的序列傳輸。該參數設定包含但不限於:鮑率、資料位元、結束位元(stop bit)、同位檢查(parity)以及流量控制(flow control)。因為UART埠130的資料接收接腳RXD亦耦接至UART控制器220的RXD接腳,在UART控制器210與該主控台150之UART控制器二者間進行序列傳輸時,UART控制器220可同時從其本身的RXD接腳接收資料(於本說明書中稱之為”窺探”)。同時,該除錯控制器240由UART控制器220的接收位移暫存器讀取接收資料後,會接著檢查該接收資料是否等於一預設關鍵字(keyword)。
當發生處理器崩潰時,系統開發者可先將該主控台150之UART控制器的鮑率設定等於R2,再傳送該預設關鍵字至該SOC 200。一旦該除錯控制器240確認UART控制器220已收到該預設關鍵字後,該除錯控制器240將該控制訊號CS設為有效(assert)或產生具有一第二狀態(如邏輯值1)的控制訊號CS,並開始分析與執行除錯命令。根據控制訊號CS的第二狀態,每一多工器(231、232)將其第二輸入端連接至其輸出端;具體而言,透過多工器231,UART閒置訊號(其電壓位準被維持始終大於0)被施加至UART控制器210的RXD
接腳,而透過多工器232,UART埠130的TXD接腳耦接至UART控制器220的TXD接腳,因而開啟了UART控制器220與該主控台150之UART控制器二者間新的序列傳輸。而且,因為該UART閒置訊號被施加至該UART控制器210的RXD接腳,該UART控制器210的資料接收接腳RXD就被迫中止(或被閘控(gated)、或被遮罩(masked))。根據本發明,該預設關鍵字是一隨機字串,且字串越長越佳。例如:該預設關鍵字可被設定為“gYjs15$6d7bat&j#”。一較佳實施例中,R2大於R1。當由該UART控制器210傳送資料出來且由該UART控制器210接收資料(即該控制訊號CS具有第一狀態)時,R2大於R1可避免關鍵字混疊(alias)。舉例而言,當R1=38400(kbps)與R2=115200(kbps)時,該UART控制器210(每26μs就改變一次信號)就不可能和該UART控制器220(每8.7μs就改變一次信號)有相同的波型(waveform)。
回應該控制訊號CS的第一狀態,多工器232的第一輸入端(耦接至該UART控制器210的TXD接腳)連接至其輸出端、且多工器231的第一輸入端(耦接至該UART控制器210的RXD接腳)連接至其輸出端,故該UART控制器210可與該主控台150之UART控制器進行溝通;因此,處理器110可存取UART控制器210的接收與傳送位移暫存器。相對而言,回應該控制訊號CS的第二狀態,多工器232的第二輸入端(耦接至該UART控制器220的TXD接腳)連接至其輸出端、且UART
埠130的RXD接腳亦耦接至UART控制器220的RXD接腳,故該UART控制器220可與該主控台150之UART控制器進行溝通,因此,除錯控制器240可存取UART控制器220的接收與傳送位移暫存器。根據本發明,除錯控制器240可以任何控制器或處理器或CPU來實施,只要其至少具備一分析命令功能與一執行命令功能。
表一係根據本發明一實施例,顯示一除錯命令集示例。參考表一,系統開發者利用一主控台應用程式將該除錯命令集由該主控台150透過UART接線131傳送至該除錯控制器240,再由除錯控制器240分析與執行該除錯命令集。該除錯命令集通常是由供應商定義(vendor-define),僅為本發明之一實施例,而非本發明之限制。
第3圖為SOC 200記憶體空間配置的一個例子。在第3圖的實施例中,在系統記憶體空間中,快閃記憶體191的位址區是配置在0x00000000至0x1FFFFFFF的位址範圍
內、SRAM 170的位址區是配置在0x20000000至0x2FFFFFFF的位址範圍內、控制器(180、190、210、220)的暫存器位址區是配置在0x30000000至0x3FFFFFFF的位址範圍內、DRAM 181的位址區是配置在0x40000000至0xFFFFFFFF的位址範圍內。上述記憶體空間配置的四個位址區的大小與位址範圍,僅為本發明之一實施例,而非本發明之限制。對系統匯流排存取的所有位址都落在SOC記憶體空間內。
當發生處理器崩潰時,處理器110無法正常工作。此時,系統開發者可從主控台150透過UART接線131傳送不同的除錯命令至該除錯控制器240,致使該除錯控制器240將系統匯流排上的相對應存取命令(access command)設為有效,以傳送至SOC記憶體空間。例如,系統開發者可發出”寫入”除錯命令(如w 30000000 00000060),使該除錯控制器240將系統匯流排上具有一特定位址(0x30000000)與一特定資料(0x00000060)的”寫入”存取命令設為有效,以將該特定資料(0x00000060)寫入該特定位址(0x30000000)。在另一例中,系統開發者可發出”讀出”除錯命令(如r 30000004),使該除錯控制器240將系統匯流排上具有一特定位址(0x30000004)的”讀出”存取命令設為有效,以讀出儲存在該特定位址(0x30000000)的資料,並回傳至UART控制器220。在另一例中,系統開發者可發出”傾印(dump)”除錯命令(如d 30000000 100),使該除錯控制器240將系統匯流排上
具有不同特定位址(從0x30000000至0x30000100)的256個”讀出”存取命令設為有效,以讀出儲存在該位址範圍(從0x30000000至0x30000100)的256筆資料;依此方式,該除錯控制器240可透過系統匯流排存取儲存在該位址範圍(從0x30000000至0x30000100)的記憶體傾印資料,然後,透過UART控制器220/UART接線131將該記憶體傾印資料回傳至主控台150,再由系統開發者進行與該處理器崩潰有關的問題分析與修正。最後,當記憶體傾印資料完成時,系統開發者可發出”停止(quit)”除錯命令(如q),使該除錯控制器240停止分析與執行任何除錯命令、產生具有第一狀態的控制訊號CS,及開始檢查從UART控制器220接收到的資料是否等於該預設關鍵字。利用上述方式,當崩潰發生時,該除錯控制器240可幫助系統開發者分辨及修復系統中的程式錯誤。
第4A與4B圖係根據本發明一實施例,顯示SOC 200的操作方法的流程圖。以下,請參考第2、3、4A與4B圖,說明SOC 200的操作方法。
步驟S402:接通電源且將SOC 200的重置訊號設為無效。
步驟S404:將UART控制器210、220的鮑率設為不同的值(單位:kbps),例如:分別設為R1與R2。
步驟S406:產生具有第一狀態的控制訊號CS,以將多工器(231、232)的第一輸入端連接至輸出端。在系統
初始化之後,處理器110根據正常流程執行指令,並且,除錯控制器240將控制訊號CS設為無效或產生具有第一狀態(如具邏輯值0)的控制訊號CS,而無需分析及執行任何除錯命令。根據具有第一狀態的控制訊號CS,各多工器(231、232)連接其第一輸入端至輸出端。因此,透過多工器231,UART埠130的RXD接腳耦接至UART控制器210的RXD接腳,而透過多工器232,UART埠130的TXD接腳耦接至UART控制器210的TXD接腳。
步驟S408:UART控制器220透過其RXD接腳持續窺探RXD訊號。如第2圖所示,由於UART控制器220的RXD接腳也耦接至UART埠130的RXD接腳的緣故,所以UART控制器220透過其RXD接腳持續窺探輸入資料。當發生處理器崩潰時,如前所述,系統開發者可先將該主控台150之UART控制器的鮑率設定等於R2,再透過UART埠130傳送該預設關鍵字至該UART控制器220的RXD接腳。
步驟S410:檢查一輸入字串是否等於該預設關鍵字“gYjs15$6d7bat&j#”。除錯控制器240從UART控制器220的接收位移暫存器讀取該輸入字串後,檢查該輸入字串是否等於該預設關鍵字“gYjs15$6d7bat&j#”。若是,跳到步驟S420,否則持續執行本步驟。
步驟S420:除錯控制器240將控制訊號CS設為有效或產生具有第二狀態(如具邏輯值1)的控制訊號CS,以將
多工器(231、232)的第二輸入端連接至輸出端。因此,透過多工器231,施加一UART閒置訊號至UART控制器210的RXD接腳,而透過多工器232,UART埠130的TXD接腳耦接至UART控制器220的TXD接腳。之後,該UART控制器210的資料接收接腳RXD就被迫中止(或被閘控、或被遮罩),且啟動了UART控制器220與該主控台150之UART控制器二者間新的序列傳輸,因此除錯控制器240可透過UART控制器220接收一除錯命令。
步驟S422:除錯控制器240等待從主控台150輸入之除錯命令。
步驟S424:除錯控制器240分析該輸入除錯命令。
步驟S426:除錯控制器240決定該輸入除錯命令是否為一”停止”除錯命令。若是,跳到步驟S432,否則跳到步驟S428。
步驟S428:除錯控制器240決定該輸入除錯命令是否為一有效除錯命令。若是,跳到步驟S430,否則跳到步驟S422。
步驟S430:該除錯控制器240執行該除錯命令,係藉由將系統匯流排上的相對應存取命令設為有效以傳送至SOC記憶體空間。之後,跳到步驟S422。
步驟S432:除錯控制器240停止分析與執行該輸
入除錯命令。之後,跳到步驟S406。
另一方面,在除錯控制器240產生具有第二狀態的控制訊號CS及開始分析與執行除錯訊號後,本發明SOC 200可利用除錯控制器240、快閃記憶體控制器190及UART連線131來更新該快閃記憶體191。
第5圖係根據本發明另一實施例,顯示位在SOC 200外部的快閃記憶體191的更新方法的流程圖。以下,請參考表一與第2、3、4A、4B、5圖,說明位在SOC 200外部的快閃記憶體191的更新方法。為方便解釋,快閃記憶體控制器190為一SPI快閃記憶體控制器,且快閃記憶體191為一SPI快閃記憶體。請注意,該SPI快閃記憶體控制器與該SPI快閃記憶體僅為本發明之一實施例,而非本發明之限制。再者,為方便解釋,關於該SPI快閃記憶體控制器,以下假設(1)為致能(enable)一晶片抹除(chip erase)功能,需將資料0x00000060寫入該SPI快閃記憶體控制器的暫存器位址0x30000000;(2)為致能一寫入致能功能,需將資料0x00000004寫入該SPI快閃記憶體控制器的暫存器位址0x30000000;(3)為致能一開始頁程式化(start page program)功能,需將資料0x??????02寫入該SPI快閃記憶體控制器的暫存器位址0x30000000,其中數字”??????”代表程式化資料的起始位址;(4)為致能一頁程式化資料(page program data)功能,將總共256個位元組的資料依序寫入該SPI快閃記憶體控制器的
暫存器位址0x30000000。為方便解釋,關於該處理器100,以下假設(1)為致能一暫停(halting)功能,需將資料0x00000001寫入該處理器100的暫存器位址0x30000100;(2)為致能一重新啟動(rebooting)功能,需將資料0x00000000寫入該處理器100的暫存器位址0x30000100。請注意,在除錯控制器240產生具有第二狀態的控制訊號CS及開始分析與執行除錯訊號後(例如步驟S430之後),才能開始進行本發明位在SOC 200外部的快閃記憶體191的更新(程式及/或資料)方法。
步驟S502:暫停處理器110。例如,系統開發者可透過UART控制器220,發出”寫入”除錯命令(如w 30000100 00000001)至該除錯控制器240,以執行暫停處理器110。暫停處理器110的目的是為了避免處理器110在該SPI快閃記憶體的更新期間內,會存取該SPI快閃記憶體。
步驟S504:抹除該SPI快閃記憶體。例如,系統開發者可透過UART控制器220,發出”寫入”除錯命令(如w 30000000 00000060)至該除錯控制器240,以執行抹除該SPI快閃記憶體。
步驟S506:開始程式化該SPI快閃記憶體。例如,系統開發者可透過UART控制器220,依序發出二個”寫入”除錯命令(如w 30000000 00000004及w 30000000 00010002)至該除錯控制器240,以分別致能該SPI快閃記憶體控制器的寫入致能功能與開始頁程式化功能。
步驟S508:將資料寫入該SPI快閃記憶體。例如,系統開發者可透過UART控制器220,依序發出256個”寫入”除錯命令(如w 30000000 data-0;…;w 30000000 data-255)至該除錯控制器240,以執行將256個位元組資料依序寫入該SPI快閃記憶體。
步驟S510:檢查該程式化是否已完成。若是,跳到步驟S512;否則跳到步驟S506以進行下一頁程式化。
步驟S512:重新啟動(reboot)處理器110。例如,系統開發者可透過UART控制器220,發出”寫入”除錯命令(如w 30000100 00000000)至該除錯控制器240,以執行重新啟動處理器110。
步驟S514:停止更新該該SPI快閃記憶體。例如,系統開發者可透過UART控制器220,發出”停止”除錯命令至該除錯控制器240,使得該除錯控制器240停止分析與執行任何除錯命令、產生具第一狀態的控制訊號CS以及檢查從UART控制器220接收到的資料是否等於該預設關鍵字(例如,流程跳到圖4B的步驟S432)。
上述僅為本發明之較佳實施例而已,而並非用以限定本發明的申請專利範圍;凡其他未脫離本發明所揭示之精神下所完成的等效改變或修飾,均應包含在下述申請專利範圍內。
200‧‧‧SOC
110‧‧‧處理器
210、220‧‧‧UART控制器
130‧‧‧UART埠
131‧‧‧UART連線
150‧‧‧主控台
170‧‧‧SRAM
180‧‧‧DRAM控制器
181‧‧‧DRAM
190‧‧‧快閃記憶體控制器
191‧‧‧快閃記憶體
231、232‧‧‧多工器
240‧‧‧除錯控制器
Claims (24)
- 一種系統單晶片,包含:一第一UART控制器及一第二UART控制器,具有不同的鮑率;一除錯控制器,耦接至該第二UART控制器與一系統匯流排,用以在接通電源或硬體重置後,產生具第一狀態的控制訊號及檢查從該第二UART控制器接收到的資料是否等於一關鍵字;一UART埠,包含一RXD接腳以及一TXD接腳,其中該UART埠的RXD接腳係耦接至該第二UART控制器的RXD接腳;一第一多工器,用以回應該控制訊號的第一狀態,而將該UART埠的RXD接腳耦接至該第一UART控制器的RXD接腳,以及回應該控制訊號的第二狀態,而將一電壓接頭耦接至該第一UART控制器的RXD接腳,其中該電壓接頭被施加一UART閒置訊號;一第二多工器,用以回應該控制訊號的第一狀態,而將該第一UART控制器的TXD接腳耦接至該UART埠的TXD接腳,以及回應該控制訊號的第二狀態,而將該第二UART控制器的TXD接腳耦接至該UART埠的TXD接腳;其中,當該第二UART控制器接收到的資料等於該關鍵字 時,該除錯控制器產生具第二狀態的控制訊號及開始分析與執行由該第二UART控制器接收到的至少一除錯命令。
- 如申請專利範圍第1項所記載之系統單晶片,其中該第一UART控制器的鮑率小於該第二UART控制器的鮑率。
- 如申請專利範圍第1項所記載之系統單晶片,其中一外部主控台係耦接至該UART埠。
- 如申請專利範圍第3項所記載之系統單晶片,其中當該外部主控台想要使該除錯控制器開始分析與執行該除錯命令時,該外部主控台將其本身UART控制器的鮑率設定等於該第二UART控制器的鮑率,並傳送該關鍵字至該第二UART控制器。
- 如申請專利範圍第4項所記載之系統單晶片,其中再送出該關鍵字後,該外部主控台再傳送該除錯命令至該第二UART控制器。
- 如申請專利範圍第1項所記載之系統單晶片,其中該除錯命令係一寫入除錯命令、一讀出除錯命令、一傾印除錯命令以及一停止除錯命令其中之一。
- 如申請專利範圍第6項所記載之系統單晶片,更包含:一處理器,透過該系統匯流排耦接至該第一UART控制器。
- 如申請專利範圍第7項所記載之系統單晶片,更包含:一快閃記憶體控制器,耦接至該系統匯流排及一獨立的 快閃記憶體;其中,當該第二UART控制器接收到的資料等於該關鍵字時,根據具複數個特定位址的複數個寫入除錯命令,該除錯控制器透過該快閃記憶體控制器將該處理器暫停及更新該快閃記憶體。
- 如申請專利範圍第6項所記載之系統單晶片,其中當該除錯命令為該讀出除錯命令時,該除錯控制器將該系統匯流排上具有一特定位址的讀出存取命令設為有效、從該特定位址讀出資料以及將該讀出資料回傳給該第二UART控制器。
- 如申請專利範圍第6項所記載之系統單晶片,其中當該除錯命令為該寫入除錯命令時,該除錯控制器將該系統匯流排上具有一特定位址與一特定資料的寫入存取命令設為有效,以將該特定資料寫入該特定位址。
- 如申請專利範圍第6項所記載之系統單晶片,其中當該除錯命令為該傾印除錯命令時,該除錯控制器將該系統匯流排上具有連續特定位址的複數個讀出存取命令設為有效、從該連續特定位址讀出資料串以及將該讀出資料串回傳給該第二UART控制器。。
- 如申請專利範圍第6項所記載之系統單晶片,其中當該除錯命令為該停止除錯命令時,該除錯控制器停止分析與執行任何除錯命令、產生具第一狀態的控制訊號以及檢查從 該第二UART控制器接收到的資料是否等於該關鍵字。
- 如申請專利範圍第1項所記載之系統單晶片,其中該UART閒置訊號的電壓被維持在大於0伏特。
- 一種系統單晶片的操作方法,該系統單晶片包含一第一UART控制器、一第二UART控制器、一除錯控制器以及一UART埠,其中該除錯控制器耦接至該第二UART控制器與一系統匯流排,而且該UART埠的RXD接腳係耦接至該第二UART控制器的RXD接腳,該操作方法包含:將該第一UART控制器的第一鮑率及一第二UART控制器的第二鮑率設定為不同值;將該第一UART控制器的RXD接腳耦接至該UART埠的RXD接腳;將該第一UART控制器的TXD接腳耦接至該UART埠的TXD接腳;由該除錯控制器檢查從該第二UART控制器接收到的資料是否等於一關鍵字;以及當該接收到的資料等於該關鍵字時,施加一UART閒置訊號至該第一UART控制器的RXD接腳、將該第二UART控制器的TXD接腳耦接至該UART埠的TXD接腳以及由該除錯控制器開始分析與執行由該第二UART控制器接收到的至少一除錯命令。
- 如申請專利範圍第14項所記載之操作方法,其中該第二鮑率大於該第一鮑率。
- 如申請專利範圍第14項所記載之操作方法,更包含:首先,將該UART埠耦接至一外部主控台;接著,將該外部主控台本身UART控制器的鮑率設定等於該第二UART控制器的鮑率;接著,由該外部主控台傳送該關鍵字至該第二UART控制器;以及接著,該外部主控台傳送該除錯命令至該第二UART控制器。
- 如申請專利範圍第14項所記載之操作方法,其中該除錯命令係一寫入除錯命令、一讀出除錯命令、一傾印除錯命令以及一停止除錯命令其中之一。
- 如申請專利範圍第17項所記載之操作方法,其中該系統單晶片更包含一處理器,係透過該系統匯流排耦接至該第一UART控制器。
- 如申請專利範圍第18項所記載之操作方法,更包含:首先,根據具第一特定位址與第一特定資料的寫入除錯命令,由該除錯控制器暫停該處理器;接著,根據具第二特定位址與第二特定資料的寫入除錯命令,由該除錯控制器透過一快閃記憶體控制器抹除一獨立的快閃記憶體; 接著,根據具第二特定位址與第三特定資料的寫入除錯命令,由該除錯控制器透過該快閃記憶體控制器,開始程式化該獨立的快閃記憶體;接著,根據具第二特定位址的至少一寫入除錯命令,由該除錯控制器透過該快閃記憶體控制器,將一資料串寫入該獨立的快閃記憶體;接著,根據具第一特定位址的寫入除錯命令,由該除錯控制器重新啟動該處理器;以及接著,根據該停止除錯命令,由該除錯控制器停止分析與執行任何除錯命令、產生具第一狀態的控制訊號以及檢查從該第二UART控制器接收到的資料是否等於該關鍵字;其中,該系統單晶片更包含該快閃記憶體控制器。
- 如申請專利範圍第17項所記載之操作方法,其中該由該除錯控制器開始分析與執行由該第二UART控制器接收到的至少一除錯命令的步驟更包含:當該除錯命令為該讀出除錯命令時,由該除錯控制器將該系統匯流排上具有一特定位址的讀出存取命令設為有效、從該特定位址讀出資料以及將該讀出資料回傳給該第二UART控制器。。
- 如申請專利範圍第17項所記載之操作方法,其中該由該除錯控制器開始分析與執行由該第二UART控制器接收到 的至少一除錯命令的步驟更包含:當該除錯命令為該寫入除錯命令時,由該除錯控制器將該系統匯流排上具有一特定位址與一特定資料的寫入存取命令設為有效,以將該特定資料寫入該特定位址。
- 如申請專利範圍第17項所記載之操作方法,其中該由該除錯控制器開始分析與執行由該第二UART控制器接收到的至少一除錯命令的步驟更包含:當該除錯命令為該傾印除錯命令時,由該除錯控制器將該系統匯流排上具有連續特定位址的複數個讀出存取命令設為有效、從該連續特定位址讀出資料串以及將該讀出資料串回傳給該第二UART控制器。
- 如申請專利範圍第17項所記載之操作方法,其中該由該除錯控制器開始分析與執行由該第二UART控制器接收到的至少一除錯命令的步驟更包含:其中當該除錯命令為該停止除錯命令時,由該除錯控制器停止分析與執行任何除錯命令、產生具第一狀態的控制訊號以及檢查從該第二UART控制器接收到的資料是否等於該關鍵字。
- 如申請專利範圍第14項所記載之操作方法,其中該UART閒置訊號的電壓被維持在大於0伏特。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/728,557 US9558086B2 (en) | 2015-06-02 | 2015-06-02 | System on chip with debug controller and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201643888A true TW201643888A (zh) | 2016-12-16 |
TWI588837B TWI588837B (zh) | 2017-06-21 |
Family
ID=57451127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104132571A TWI588837B (zh) | 2015-06-02 | 2015-10-02 | 具除錯控制器的系統單晶片及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9558086B2 (zh) |
TW (1) | TWI588837B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861903A (zh) * | 2017-11-06 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种嵌入式单板及其串口通信电路 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9983833B2 (en) * | 2015-12-23 | 2018-05-29 | Toshiba Memory Corporation | Solid state drive with holding file for atomic updates |
CN107066412B (zh) * | 2017-05-27 | 2023-05-02 | 梦孚(上海)教育科技有限公司 | 一种通信电路及其方法 |
CN107392320A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种使用机器学习预测硬盘故障的方法 |
KR102417980B1 (ko) * | 2017-11-07 | 2022-07-07 | 에스케이하이닉스 주식회사 | 범용 비동기 송수신 부 및 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
DE102018101028B3 (de) * | 2018-01-18 | 2019-05-29 | Infineon Technologies Austria Ag | Mikrocontrollersystem mit schaltungsinternem Debugger |
CN111289885B (zh) * | 2020-03-06 | 2022-06-03 | 湖南国科微电子股份有限公司 | 一种芯片上电死机的调试系统及方法 |
CN111966005B (zh) * | 2020-07-01 | 2022-12-20 | 武汉科技大学 | 一种多平台驱动调试装置 |
CN115454517B (zh) * | 2022-11-11 | 2023-03-10 | 山东云海国创云计算装备产业创新中心有限公司 | 多介质安全启动的方法、系统、存储介质、设备及芯片 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6125448A (en) * | 1997-05-02 | 2000-09-26 | 3Com Corporation | Power subsystem for a communication network containing a power bus |
US6219697B1 (en) * | 1997-05-02 | 2001-04-17 | 3Com Corporation | Method and apparatus for operating the internet protocol over a high-speed serial bus |
US20030212878A1 (en) * | 2002-05-07 | 2003-11-13 | Chen-Hanson Ting | Scaleable microprocessor architecture |
US20060245533A1 (en) * | 2005-04-28 | 2006-11-02 | Arad Rostampour | Virtualizing UART interfaces |
US20060248391A1 (en) * | 2005-05-02 | 2006-11-02 | Glover Jeffrey C | State machine-based command line debugger |
US7904631B2 (en) * | 2006-11-02 | 2011-03-08 | Honeywell International Inc. | Protocol independent bridge |
TWI614613B (zh) * | 2014-09-11 | 2018-02-11 | 廣達電腦股份有限公司 | 伺服器系統與其相關的控制方法 |
-
2015
- 2015-06-02 US US14/728,557 patent/US9558086B2/en active Active
- 2015-10-02 TW TW104132571A patent/TWI588837B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861903A (zh) * | 2017-11-06 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种嵌入式单板及其串口通信电路 |
Also Published As
Publication number | Publication date |
---|---|
TWI588837B (zh) | 2017-06-21 |
US20160357651A1 (en) | 2016-12-08 |
US9558086B2 (en) | 2017-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI588837B (zh) | 具除錯控制器的系統單晶片及其操作方法 | |
JP6790325B2 (ja) | ターゲットデバイス、方法、プログラム、および非一時的なコンピュータ可読記憶媒体 | |
US8566644B1 (en) | System and method for debugging a target computer using SMBus | |
US9158661B2 (en) | Enhanced debugging for embedded devices | |
WO2016106935A1 (zh) | 一种闪存控制器和闪存控制器的控制方法 | |
WO2018018978A1 (zh) | 一种通用串行总线控制器验证方法、系统及设备 | |
US20160231376A1 (en) | System And Method For Generating Cross-Core Breakpoints In A Multi-Core Microcontroller | |
TWI546660B (zh) | 除錯系統與方法 | |
US8700807B2 (en) | High speed baseboard management controller and transmission method thereof | |
TW201732635A (zh) | 資料傳輸方法及伺服器 | |
US20080126632A1 (en) | Stimulating and receiving test/debug data from a system under test via a drone card pci bus | |
US9032252B2 (en) | Debug barrier transactions | |
WO2011109971A1 (zh) | 微控制器在线调试电路及方法、微控制器 | |
TWI739853B (zh) | 運算裝置與運作方法 | |
US10754743B2 (en) | Apparatus and method using debug status storage element | |
TWI794996B (zh) | 為固態硬碟裝置除錯的裝置及系統 | |
CN112534414A (zh) | 软件跟踪消息接收器外围设备 | |
TWI815725B (zh) | 電腦系統 | |
TWI748241B (zh) | 基本輸入輸出系統的除錯訊息自動提供方法 | |
US8341301B2 (en) | Device and method for testing a direct memory access controller | |
TW202236092A (zh) | 儲存除錯資訊的系統及方法 | |
JP2012221461A (ja) | 半導体集積回路 | |
JPH09138758A (ja) | インテリ型アダプタ装置 |