新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種片內(nèi)硬件調(diào)試支持單元設(shè)計

一種片內(nèi)硬件調(diào)試支持單元設(shè)計

作者: 時間:2011-03-07 來源:網(wǎng)絡(luò) 收藏

調(diào)試單元的設(shè)計初衷,不僅是要能夠控制整個系統(tǒng)接受調(diào)試控制,同樣也需要用戶能夠?qū)λ衅洗鎯卧M(jìn)行訪問。整個片上存儲單元可分為3類:一是兩大Trace Buffer,包括AHB和指令追蹤緩存;二是DSU內(nèi)部寄存器,除前所述的四大關(guān)鍵寄存器,還包括用于記錄時間值的時間索引寄存器,用于控制AHBTrace Buffer內(nèi)部地址的AHB Trace Buffer地址索引寄存器,用于存儲精確斷點(diǎn)地址的AHB斷點(diǎn)寄存器和與其配套的掩碼寄存器;三是微處理器內(nèi)部寄存器,包括cache,IU寄存器堆,SPR,PSR,F(xiàn)SR,窗口寄存器,PC和NPC指針,陷阱寄存器等。為了能對如此多的寄存器和存儲器進(jìn)行準(zhǔn)確定位,必須有一套完整的尋址機(jī)制,所以在DSU設(shè)計過程中設(shè)計了一套多級譯碼體體系,將片上所有存儲部件地址映射入此體系中。基于以上對DSU功能的設(shè)計考慮,其具體的結(jié)構(gòu)組成如圖4所示。

本文引用地址:http://m.butianyuan.cn/article/150984.htm

e.JPG


當(dāng)DSU被AHB總線譯碼器選中后,DSU內(nèi)部的第一級譯碼器將對地址總線訪問地址進(jìn)行譯碼,它將判斷當(dāng)前訪問的對象屬于三類存儲單元中的哪一類,如果是第二類即DSU內(nèi)部寄存器,那么將繼續(xù)進(jìn)行第二級地址譯碼,譯碼的結(jié)果將決定當(dāng)前調(diào)試主機(jī)將訪問哪一個功能寄存器;如果是第一類存儲部件,由于它們?nèi)萘枯^大,并需要其128 b的位寬能與總線位寬相兼容,所以需要在這些循環(huán)存儲體內(nèi)設(shè)計一個獨(dú)立的譯碼器,能夠?qū)HB索引寄存器或一級譯碼送出的地址再譯碼;對于第三類存儲部件,由于此類存儲部件位于DSU外部,所以除了需要DSU內(nèi)部的第一、二級譯碼外,在處理器內(nèi)部仍然需要更深層次的輔助譯碼,因此在實(shí)際工作中,訪問此類存儲單元所需的時鐘周期要多于其他幾類存儲單元。在圖4中,左邊5個寄存器將共同決定AHB Trace Buffer的工作情況,斷點(diǎn)判別邏輯根據(jù)控制、斷點(diǎn)和屏蔽寄存器的內(nèi)容共同決定AHB TraceBuffer記錄值來源于總線還是調(diào)試主機(jī);時間索引寄存器值將隨時鐘周期自增加,同時也作為記錄內(nèi)容的一部分方便以后查詢;而索引寄存器也將隨時鐘周期自增,為正常通信數(shù)據(jù)提供地址,而在調(diào)試模式下,將由一級譯碼器直接提供訪問地址;右邊3個寄存器將共同控制
微處理器的工作狀態(tài),在DSU外部使能信號下處理器進(jìn)入調(diào)試模式后,處理器將程序指針入棧保護(hù),同時輸出信號指示當(dāng)前調(diào)試狀態(tài)并將定時器凍結(jié)。當(dāng)DSU控制寄存器中的BN位被清零時,則處理器定時器解凍,程序指針恢復(fù),退出調(diào)試狀態(tài)。
1.4 調(diào)試通信鏈路
在圖1中就已經(jīng)提到在本系統(tǒng)設(shè)計中需要一個調(diào)試接口,該接口將連接調(diào)試主機(jī)與AHB總線,它包含一個連接在AHB總線上的專用UART。該系統(tǒng)為此設(shè)計了一個簡單的通信協(xié)議,它支持?jǐn)?shù)據(jù)在串口和AHB接口之間的格式轉(zhuǎn)換。通過這個通信鏈路,一個讀或?qū)憘鬏斂梢栽谌我獾腁HB地址上產(chǎn)生,其結(jié)構(gòu)如圖5所示。

f.JPG
該系統(tǒng)設(shè)計的UART包含一個波特率發(fā)生器,它利用一個18位寬的自減計數(shù)器產(chǎn)生所需的波特率,在時鐘的驅(qū)動下,每當(dāng)計數(shù)器下溢,則產(chǎn)生一個脈沖信號,同時將一個重載寄存器的預(yù)定值重新載入計數(shù)器,最終產(chǎn)生的UART脈沖頻率將是所需波特率的8倍。
調(diào)試機(jī)的串口支持的數(shù)據(jù)幀結(jié)構(gòu)為10位,包括1位起始位、8位數(shù)據(jù)位和1位停止位(高電平)。當(dāng)進(jìn)行的是讀傳輸時,除了將讀地址按照規(guī)定的幀格式進(jìn)行拆分外,在開始階段需另加1個控制幀,其中包含指明當(dāng)前傳輸?shù)念愋鸵约斑B續(xù)傳輸?shù)膲K數(shù);若進(jìn)行的是寫傳輸,那么在地址發(fā)送完后,還需要按照幀結(jié)構(gòu)發(fā)送調(diào)試數(shù)據(jù)。每次進(jìn)行連續(xù)傳輸時,只需要發(fā)出1個首地址,以后地址將按照控制幀中指定的塊數(shù)按字自增。
通過本接口,調(diào)試機(jī)的串行數(shù)據(jù)將能被此接口封裝成符合AHB總線協(xié)議的傳輸格式,同樣在讀傳輸時,調(diào)試輸出數(shù)據(jù)也能被此接口分解為單bit數(shù)據(jù)返回到調(diào)試串口。

2 結(jié)語
當(dāng)今業(yè)界已經(jīng)出現(xiàn)了較為成熟的硬件調(diào)試系統(tǒng),如ARM公司的基于JTAG的Embeded ICE宏單元和Multi-ICE協(xié)議轉(zhuǎn)換器,它通過擴(kuò)展JTFAG測試端來實(shí)現(xiàn)通信,利用掃描鏈插入技術(shù)訪問寄存器并向處理器施加指令來訪問處理器及系統(tǒng)的狀態(tài)。但是由于安全和商業(yè)因素的原因,ARM及其調(diào)試工具提供商都沒有公開它們的細(xì)節(jié),并且其高昂的價格也使得很多用戶對其望而卻步。本文所提出的一種硬件調(diào)試單元完全自主實(shí)
現(xiàn),且順利通過Modelsim的功能仿真,所以它不但能夠有效的完成對片上處理器的診斷與調(diào)試,而且其擁有的跟蹤技術(shù)也能對程序的運(yùn)轉(zhuǎn)以及片內(nèi)的通信狀況進(jìn)行實(shí)時監(jiān)控,同時專用的硬件協(xié)議轉(zhuǎn)換模塊在片內(nèi)就實(shí)現(xiàn)了遠(yuǎn)程調(diào)試連接,能夠方便的與調(diào)試機(jī)進(jìn)行通信。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

關(guān)鍵詞: 嵌入式

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉