一種片內(nèi)硬件調(diào)試支持單元設計
調(diào)試單元的設計初衷,不僅是要能夠控制整個系統(tǒng)接受調(diào)試控制,同樣也需要用戶能夠?qū)λ衅洗鎯卧M行訪問。整個片上存儲單元可分為3類:一是兩大Trace Buffer,包括AHB和指令追蹤緩存;二是DSU內(nèi)部寄存器,除前所述的四大關鍵寄存器,還包括用于記錄時間值的時間索引寄存器,用于控制AHBTrace Buffer內(nèi)部地址的AHB Trace Buffer地址索引寄存器,用于存儲精確斷點地址的AHB斷點寄存器和與其配套的掩碼寄存器;三是微處理器內(nèi)部寄存器,包括cache,IU寄存器堆,SPR,PSR,F(xiàn)SR,窗口寄存器,PC和NPC指針,陷阱寄存器等。為了能對如此多的寄存器和存儲器進行準確定位,必須有一套完整的尋址機制,所以在DSU設計過程中設計了一套多級譯碼體體系,將片上所有存儲部件地址映射入此體系中?;谝陨蠈SU功能的設計考慮,其具體的結(jié)構(gòu)組成如圖4所示。本文引用地址:http://www.ex-cimer.com/article/150984.htm
當DSU被AHB總線譯碼器選中后,DSU內(nèi)部的第一級譯碼器將對地址總線訪問地址進行譯碼,它將判斷當前訪問的對象屬于三類存儲單元中的哪一類,如果是第二類即DSU內(nèi)部寄存器,那么將繼續(xù)進行第二級地址譯碼,譯碼的結(jié)果將決定當前調(diào)試主機將訪問哪一個功能寄存器;如果是第一類存儲部件,由于它們?nèi)萘枯^大,并需要其128 b的位寬能與總線位寬相兼容,所以需要在這些循環(huán)存儲體內(nèi)設計一個獨立的譯碼器,能夠?qū)HB索引寄存器或一級譯碼送出的地址再譯碼;對于第三類存儲部件,由于此類存儲部件位于DSU外部,所以除了需要DSU內(nèi)部的第一、二級譯碼外,在處理器內(nèi)部仍然需要更深層次的輔助譯碼,因此在實際工作中,訪問此類存儲單元所需的時鐘周期要多于其他幾類存儲單元。在圖4中,左邊5個寄存器將共同決定AHB Trace Buffer的工作情況,斷點判別邏輯根據(jù)控制、斷點和屏蔽寄存器的內(nèi)容共同決定AHB TraceBuffer記錄值來源于總線還是調(diào)試主機;時間索引寄存器值將隨時鐘周期自增加,同時也作為記錄內(nèi)容的一部分方便以后查詢;而索引寄存器也將隨時鐘周期自增,為正常通信數(shù)據(jù)提供地址,而在調(diào)試模式下,將由一級譯碼器直接提供訪問地址;右邊3個寄存器將共同控制
微處理器的工作狀態(tài),在DSU外部使能信號下處理器進入調(diào)試模式后,處理器將程序指針入棧保護,同時輸出信號指示當前調(diào)試狀態(tài)并將定時器凍結(jié)。當DSU控制寄存器中的BN位被清零時,則處理器定時器解凍,程序指針恢復,退出調(diào)試狀態(tài)。
1.4 調(diào)試通信鏈路
在圖1中就已經(jīng)提到在本系統(tǒng)設計中需要一個調(diào)試接口,該接口將連接調(diào)試主機與AHB總線,它包含一個連接在AHB總線上的專用UART。該系統(tǒng)為此設計了一個簡單的通信協(xié)議,它支持數(shù)據(jù)在串口和AHB接口之間的格式轉(zhuǎn)換。通過這個通信鏈路,一個讀或?qū)憘鬏斂梢栽谌我獾腁HB地址上產(chǎn)生,其結(jié)構(gòu)如圖5所示。
該系統(tǒng)設計的UART包含一個波特率發(fā)生器,它利用一個18位寬的自減計數(shù)器產(chǎn)生所需的波特率,在時鐘的驅(qū)動下,每當計數(shù)器下溢,則產(chǎn)生一個脈沖信號,同時將一個重載寄存器的預定值重新載入計數(shù)器,最終產(chǎn)生的UART脈沖頻率將是所需波特率的8倍。
調(diào)試機的串口支持的數(shù)據(jù)幀結(jié)構(gòu)為10位,包括1位起始位、8位數(shù)據(jù)位和1位停止位(高電平)。當進行的是讀傳輸時,除了將讀地址按照規(guī)定的幀格式進行拆分外,在開始階段需另加1個控制幀,其中包含指明當前傳輸?shù)念愋鸵约斑B續(xù)傳輸?shù)膲K數(shù);若進行的是寫傳輸,那么在地址發(fā)送完后,還需要按照幀結(jié)構(gòu)發(fā)送調(diào)試數(shù)據(jù)。每次進行連續(xù)傳輸時,只需要發(fā)出1個首地址,以后地址將按照控制幀中指定的塊數(shù)按字自增。
通過本接口,調(diào)試機的串行數(shù)據(jù)將能被此接口封裝成符合AHB總線協(xié)議的傳輸格式,同樣在讀傳輸時,調(diào)試輸出數(shù)據(jù)也能被此接口分解為單bit數(shù)據(jù)返回到調(diào)試串口。
2 結(jié)語
當今業(yè)界已經(jīng)出現(xiàn)了較為成熟的硬件調(diào)試系統(tǒng),如ARM公司的基于JTAG的Embeded ICE宏單元和Multi-ICE協(xié)議轉(zhuǎn)換器,它通過擴展JTFAG測試端來實現(xiàn)通信,利用掃描鏈插入技術訪問寄存器并向處理器施加指令來訪問處理器及系統(tǒng)的狀態(tài)。但是由于安全和商業(yè)因素的原因,ARM及其調(diào)試工具提供商都沒有公開它們的細節(jié),并且其高昂的價格也使得很多用戶對其望而卻步。本文所提出的一種硬件調(diào)試單元完全自主實
現(xiàn),且順利通過Modelsim的功能仿真,所以它不但能夠有效的完成對片上處理器的診斷與調(diào)試,而且其擁有的跟蹤技術也能對程序的運轉(zhuǎn)以及片內(nèi)的通信狀況進行實時監(jiān)控,同時專用的硬件協(xié)議轉(zhuǎn)換模塊在片內(nèi)就實現(xiàn)了遠程調(diào)試連接,能夠方便的與調(diào)試機進行通信。
評論