本發明涉及一種微控制器芯片,具體是一種實現微控制器芯片的用戶debug模式的方法。
背景技術:
對于芯片設計來說,在設計目標上往往存在沖突,即它們的功能要足夠全面,同時要求芯片面積盡量小。芯片用戶開發應用程序時,支持用戶debug模式的微控制器芯片能夠帶來非常大的便利。微控制器芯片的用戶debug模式是相對于芯片正常工作模式之處的一種額外的模式,需要增加額外的邏輯資源才能實現,所以會使微控制器芯片的面積增大,從而使生產成本上升。
技術實現要素:
本發明的目的在于提供一種實現微控制器芯片的用戶debug模式的方法,以解決上述背景技術中提出的問題。
為實現上述目的,本發明提供如下技術方法:
一種實現微控制器芯片的用戶debug模式的方法,微控制器芯片內部包括芯片代碼選項模塊option、程序存儲器pmem、數據存儲器dmem、外設模塊per、用戶debug模式控制模塊dbg_ctrl、微控制器內核core,外設模塊per是包含mcu所有外設的集合,spi模塊是包含于外設集合中的一個子模塊,微控制器芯片通過spi模塊與芯片外部進行串行通信,spi模塊內部包括串行接收控制邏輯以及串行發送控制邏輯,串行接收控制邏輯負責完成串行通信調試的接收過程,串行發送控制邏輯負責完成串行通信調試的發送過程,使用微控制器芯片的用戶debug模式時,復用spi通信的3個單向通信端口,spi模塊通過miso輸出端口將芯片的數據輸出至芯片外部的上位機,spi模塊通過mosi輸入端口接收芯片外部的上位機輸入的信息。
作為本發明進一步的方法:芯片代碼選項模塊option負責整個微控制器芯片中全局性的配置。
作為本發明進一步的方法:能夠通過芯片的代碼選項中的用戶debug模式使能信號dbg_en使能或者關閉芯片的用戶debug模式。
作為本發明進一步的方法:當debug模式使能信號dbg_en被配置為高電平狀態時,spi模塊才被復用來實現用戶debug模式。
作為本發明再進一步的方法:芯片外部的上位機與spi模塊進行串行通信,spi模塊將mosi信號端口上的串行通信數據進行并行化處理,然后通過并行通信總線pc_bus與用戶debug模式控制模塊dbg_ctrl進行數據交互。
與現有技術相比,本發明的有益效果是:本發明通過復用微控制器芯片中的spi模塊的邏輯資源和通信端口,而不需要增加過多額外的邏輯資源、額外的通信接口以及通信端口即可以實現微控制器芯片的用戶調試功能,節省了用于實現用戶debug模式的大部分邏輯資源,降低微控制器芯片的生產成本。
附圖說明
圖1為復用spi模塊實現微控制器芯片的用戶debug模式的原理框圖。
圖2為用戶debug模式控制模塊的原理框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方法進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明復用spi模塊實現微控制器芯片的用戶debug模式的方法原理如圖1所示。微控制器芯片內部包括芯片代碼選項模塊option、程序存儲器pmem、數據存儲器dmem、外設模塊per、用戶debug模式控制模塊dbg_ctrl、微控制器內核core。外設模塊per是包含mcu所有外設的集合。spi模塊是包含于外設集合中的一個子模塊,本方法通過復用spi模塊可以實現微控制器芯片的用戶debug模式。
在本方法中,微控制器芯片通過spi模塊與芯片外部進行串行通信。spi模塊內部包括串行接收控制邏輯以及串行發送控制邏輯。串行接收控制邏輯負責完成串行通信調試的接收過程。串行發送控制邏輯負責完成串行通信調試的發送過程。使用微控制器芯片的用戶debug模式時,需要復用spi通信的3個單向通信端口。spi模塊通過miso輸出端口將芯片的數據輸出至芯片外部的上位機。spi模塊通過mosi輸入端口接收芯片外部的上位機輸入的信息。sclk為spi通信提供同步的時鐘。
芯片代碼選項模塊option負責整個微控制器芯片中全局性的配置,在本方法中,可以通過芯片的代碼選項中的用戶debug模式使能信號dbg_en使能或者關閉芯片的用戶debug模式。只有當debug模式使能信號dbg_en被配置為高電平狀態時,spi模塊才被復用來實現用戶debug模式。芯片外部的上位機與spi模塊進行串行通信,spi模塊將mosi信號端口上的串行通信數據進行并行化處理,然后通過并行通信總線pc_bus與用戶debug模式控制模塊dbg_ctrl進行數據交互。用戶debug模式控制模塊的原理如圖2所示。在用戶debug模式控制模塊中,通過比較器c1,將spi模塊輸送過來的并行通信總線pc_bus與用戶debug模式入口校對碼deg_entry進入比較,當兩者相同時,將觸發用戶debug模式寄存器dbg_mode置位,微控制器芯片進入用戶debug模式。
在微控制器芯片進入用戶debug模式后,上位機將調試指令單步、斷點、全速等通過串行通信將數據輸送至芯片內部,spi模塊將串行通信數據進行并行化處理,然后通過并行通信總線pc_bus輸入至用戶debug模式控制模塊dbg_ctrl。用戶debug模式控制模塊dbg_ctrl內部的用戶debug模式接口控制邏輯dbg_intf對并行通信總線pc_bus送過來的數據進行譯碼,然后通過調試指令信號發送至微控制器內核core。微控制器內核根據調試指令信號做出相應的操作。在用戶debug模式中,芯片外部的上位機也可以通過串行通信讀取到微控制器芯片運行的實時狀態。這些實時狀態包括堆棧、程序指針、累加器、狀態寄存器等信息。當微控制器芯片正常工作時,微控制器內核通過特殊功能總線sfr_bus對外設模塊中的特殊功能寄存器進行讀寫操作。當微控制器芯片處于用戶debug模式,上位機需要獲取芯片內特殊功能寄存器的值時,用戶debug模式接口控制邏輯dbg_intf通過調試指令信號通知微控制器內核,然后微控制器內核逐一將所有特殊功耗寄存器的值通過狀態反饋信號傳送至用戶debug模式接口控制邏輯dbg_intf,用戶debug模式接口控制邏輯dbg_intf再將反饋的數據輸送至spi模塊。最后,spi模塊通過其內部的串行發送控制邏輯與芯片外部的上位機進行串行通信,將反饋的數據輸送至上位機。微控制器芯片處于用戶debug模式中時,上位機也獲取數據存儲器dmem中的存儲值。
為了方便用戶使用微控制器芯片對應用程序進行調試,上位機可以通過串行通信將操作請求發送至用戶debug模式控制模塊dbg_ctrl,用戶debug模式接口控制邏輯dbg_intf通過程序存儲器直接存取總線dma_pmem將程序指令碼寫入程序存儲器中。
當用戶完成調試后,需要退出用戶debug模式時,上位機將通過串行信號將退出用戶debug模式請求發送至spi模塊。spi模塊將接收到的串行數據并行化,然后輸入至用戶debug模式控制模塊中,通過比較器c2,將spi模塊輸送過來的并行通信總線pc_bus與用戶debug模式出口校對碼exit_code進入比較,當兩者相同時,將觸發用戶debug模式寄存器dbg_mode清零,微控制器芯片退出用戶debug模式。
對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化囊括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
此外,應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方法,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方法也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。