本發(fā)明涉及一種調(diào)試單元,具體是一種微控制器芯片中的調(diào)試單元。
背景技術(shù):
MCU調(diào)試器是用戶在開發(fā)基于MCU芯片的應用程序的時候,用來調(diào)試應用程序的工具。MCU調(diào)試器使程序能夠根據(jù)用戶的意愿來運行,如單步運行,全速運行,或者在指定的某行指令暫停運行(斷點)。也可以通過調(diào)試器來查看MCU芯片在運行時的相關(guān)信息,比如查看堆棧、程序指針、累加器、狀態(tài)寄存器、SRAM存儲空間或者其它特殊功能寄存器等。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種微控制器芯片中的調(diào)試單元,以解決上述背景技術(shù)中提出的問題。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種微控制器芯片中的調(diào)試單元,微控制器芯片內(nèi)部包括IO控制單元IO_CTRL、串行通信調(diào)試接口模塊SC_INTF、調(diào)試模式控制模塊DEBUG_CTRL、程序存儲器PMEM以及微控制器內(nèi)核MCU_CORE,微控制器芯片通過串行通信調(diào)試接口模塊SC_INTF與芯片外部進行串行通信,串行通信調(diào)試接口模塊SC_INTF內(nèi)部包括串行接收單元RXC以及串行發(fā)送單元TXC,串行接收單元RXC負責完成串行通信調(diào)試的接收過程,串行發(fā)送單元RXC負責完成串行通信調(diào)試的發(fā)送過程,串行通信調(diào)試接口模塊SC_INTF與芯片外部上位機通過調(diào)試通信數(shù)據(jù)端口DDA進行串行通信,當調(diào)試通信數(shù)據(jù)端口DDA為輸入狀態(tài)時,IO控制單元IO_CTRL通過接收數(shù)據(jù)信號rxd將芯片外部的數(shù)據(jù)傳送至串行接收單元RXC進行處理,當微控制器芯片需要傳送數(shù)據(jù)至芯片外部的上位機時,調(diào)試通信數(shù)據(jù)端口DDA為輸出狀態(tài),串行發(fā)送單元TXC通過發(fā)送數(shù)據(jù)信號txd將數(shù)據(jù)傳送至IO控制單元IO_CTRL。
作為本發(fā)明再進一步的方案:所述調(diào)試通信數(shù)據(jù)端口DDA是一個雙向端口。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明采用串行通信調(diào)試接口只需要1個雙向端口即可以完成微控制器芯片與芯片外部上位機的通信,實現(xiàn)上位機對微控制器芯片的調(diào)試。本方案與需要2個端口進行通信的普通調(diào)試方案相比,節(jié)省了1個端口,從而節(jié)省芯片的生產(chǎn)成本。本方案中采用的串行通信調(diào)試接口中物理層協(xié)議定義的通信起始位、通信結(jié)束位、比特0、比特1、字節(jié)分界位的相互之間的差異較大,即使在工作時鐘頻率存在較大偏差的情況下,依然能夠保證數(shù)據(jù)的正常通信。調(diào)試方案中實現(xiàn)上位機對微控制器芯片內(nèi)部數(shù)據(jù)存儲器空間或者特殊功能寄存器的讀寫時,無需增加過多的邏輯資源,而是使用替代程序存儲器指令碼的方式,利用微控制器芯片內(nèi)核的邏輯資源即可以實現(xiàn),從而節(jié)省芯片的面積、節(jié)約生產(chǎn)成本。
附圖說明
圖1為本發(fā)明中微控制器芯片的原理框圖。
圖2為本發(fā)明中串行通信調(diào)試接口數(shù)據(jù)格式。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
請參閱圖1~2,本發(fā)明實施例中,一種微控制器芯片中的調(diào)試單元,微控制器芯片包括IO控制單元IO_CTRL、串行通信調(diào)試接口模塊SC_INTF、調(diào)試模式控制模塊DEBUG_CTRL、程序存儲器PMEM以及微控制器內(nèi)核MCU_CORE。
在本方案中,微控制器芯片通過串行通信調(diào)試接口模塊SC_INTF與芯片外部進行串行通信。串行通信調(diào)試接口模塊SC_INTF內(nèi)部包括串行接收單元RXC以及串行發(fā)送單元TXC。串行接收單元RXC負責完成串行通信調(diào)試的接收過程。串行發(fā)送單元RXC負責完成串行通信調(diào)試的發(fā)送過程。調(diào)試通信數(shù)據(jù)端口DDA是一個雙向端口,微控制器芯片通過串行通信調(diào)試接口模塊SC_INTF與芯片外部上位機進行串行通信時只需要這1根信號線就可以完成。串行通信調(diào)試接口的數(shù)據(jù)通訊格式中的通信起始位、通信結(jié)束位、比特0、比特1、字節(jié)分界位的定義如圖 2所示。通信起始位或者通信結(jié)束位皆為14個單位時間Tu的低電平;比特0為8個單位時間的低電平接著2個單位時間的高電平;比特1為3個單位時間的低電平接著7個單位時間的高電平;字節(jié)分界位為連接2個字節(jié)之間的分界,它的格式為12個單位時間的高電平。本方案中采用的串行通信調(diào)試接口中物理層協(xié)議定義的通信起始位、通信結(jié)束位、比特0、比特1、字節(jié)分界位的相互之間的差異較大,即使在工作時鐘頻率存在較大偏差的情況下,依然能夠保證數(shù)據(jù)的正常通信。當調(diào)試通信數(shù)據(jù)端口DDA為輸入狀態(tài)時,IO控制單元IO_CTRL通過接收數(shù)據(jù)信號rxd將芯片外部的數(shù)據(jù)傳送至串行接收單元(RXC)進行處理。當微控制器芯片需要傳送數(shù)據(jù)至芯片外部的上位機時,調(diào)試通信數(shù)據(jù)端口DDA為輸出狀態(tài),串行發(fā)送單元TXC通過發(fā)送數(shù)據(jù)信號txd將數(shù)據(jù)傳送至IO控制單元IO_CTRL。
在微控制器芯片進入調(diào)試模式后,芯片外部的上位機將調(diào)試指令單步、斷點、全速等通過串行通信數(shù)據(jù)輸送至芯片內(nèi)部,串行通信調(diào)試接口模塊SC_INTF將串行通信數(shù)據(jù)進行并行化處理,然后通過并行通信總線bus_pc與調(diào)試模式控制模塊DEBUG_CTRL進行數(shù)據(jù)交互。調(diào)試模式控制模塊DEBUG_CTRL內(nèi)部對并行通信總線bus_pc送過來的數(shù)據(jù)進行譯碼,然后通過調(diào)試控制信號ctrl_dbg輸送至微控制器內(nèi)核MCU_CORE,微控制器內(nèi)核根據(jù)調(diào)試控制信號作出相應的操作。在調(diào)試模式下,芯片外部的上位機也可以通過串行通信讀取到微控制器芯片運行的實時狀態(tài)。這些實時狀態(tài)包括堆棧、程序指針、累加器、狀態(tài)寄存器等信息。除了上述的實時狀態(tài)信息之外,在調(diào)試模式下,用戶還可以獲得微控制器芯片內(nèi)部數(shù)據(jù)存儲器空間和所有特殊功能寄存器的值,從而使用戶可以較為全面地獲知芯片執(zhí)行程序時的情況。
在調(diào)試模式下,上位機獲得數(shù)據(jù)存儲器空間或者特殊功能寄存器的值的原理如圖 1所示。當微控制器芯片正常運行時,調(diào)試模式控制模塊DEBUG_CTRL輸出的調(diào)試模式標志信號mode_dbg為低電平有效狀態(tài),指令碼選擇器MUX選擇程序存儲器PMEM中的指令碼輸送至微控制器內(nèi)核,微控制器內(nèi)核將根據(jù)此指令碼執(zhí)行相應的操作。芯片處于調(diào)試模式時,調(diào)試模式控制模塊DEBUG_CTRL輸出的調(diào)試模式標志信號mode_dbg為高電平有效狀態(tài)。當需要獲得數(shù)據(jù)存儲器空間或者特殊功能寄存器的值時,外部上位機需要先將累加器、狀態(tài)寄存器進行備份,然后調(diào)試模式控制模塊DEBUG_CTRL將通過調(diào)試指令碼信號instr_dbg輸出一組特定的指令碼。當選擇器MUX檢測到調(diào)試模式標志信號mode_dbg為高電平有效狀態(tài)時,指令碼選擇器MUX選擇調(diào)試指令碼信號instr_dbg上的替代指令碼輸送至微控制器內(nèi)核。然后調(diào)試模式控制模塊DEBUG_CTRL將驅(qū)動微控制器內(nèi)核執(zhí)行一條指令,并且在控制微控制器內(nèi)核在執(zhí)行完此指令后立即停止。此特定的指令碼與微控制器芯片正常運行時的“MOV ACC,R”一樣,即執(zhí)行完此指令碼后,需要獲得的數(shù)據(jù)存儲器空間或者特殊功能寄存器的值被復制至累加器中,此后,上位機再請求芯片通過串行通信調(diào)試接口將累加器的值送至上位機。通過上述過程,上位機可以獲取一個地址單元的值,待上位機將所有地址單元的值讀出后,需要再將累加器和狀態(tài)寄存器恢復為最被的備份值。在調(diào)試模式下,上位機還可以通過上述的替換指令機制,改寫芯片內(nèi)部的狀態(tài)值、數(shù)據(jù)存儲器空間或者特殊功能寄存器的值。此過程的原理與讀數(shù)據(jù)存儲器空間或者特殊功能寄存器的過程相似。調(diào)試方案中實現(xiàn)上位機對微控制器芯片內(nèi)部數(shù)據(jù)存儲器空間或者特殊功能寄存器的讀寫時,無需增加過多的邏輯資源,而是使用替代程序存儲器指令碼的方式,利用微控制器芯片內(nèi)核的邏輯資源即可以實現(xiàn),從而節(jié)省芯片的面積、節(jié)約生產(chǎn)成本。
對于本領域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實施例的細節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應將權(quán)利要求中的任何附圖標記視為限制所涉及的權(quán)利要求。
此外,應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術(shù)人員應當將說明書作為一個整體,各實施例中的技術(shù)方案也可以經(jīng)適當組合,形成本領域技術(shù)人員可以理解的其他實施方式。