一種新的嵌入式處理器在線調(diào)試方法
4. 3 實(shí)際驗(yàn)證和使用情況
在應(yīng)用UDM 之前,首先通過NC - verilog 對(duì)其進(jìn)行了仿真,部分仿真波形如圖3 所示。圖中反映的是當(dāng)作為DI 的信號(hào)pdm_ int 產(chǎn)生了之后,PicoBlaze怎樣轉(zhuǎn)入執(zhí)行DR 的,限于篇幅,驗(yàn)證其他各種功能的仿真波形不在此贅述。
圖3 UDM 的部分仿真波形
為了進(jìn)一步對(duì)UDM 的功能和性能進(jìn)行完備的檢驗(yàn),在FPGA 中建立了如下簡(jiǎn)單的PicoBlaze 處理器系統(tǒng)。PicoBlaze 外部只接一塊252X8bit 的RAM和UDM,PicoBlaze 上的目標(biāo)程序流程為如下的死循環(huán): 將s0 ~ sb 依次置入0 ~ 11,再反過來依次置入11 ~ 0; 將64byte 的RAM 依次寫入0 ~ 63,再反過來寫入63 ~ 0; 將外部的RAM 依次寫入0 ~ 251,再反過來寫入255 ~ 4。這樣的一種簡(jiǎn)單設(shè)計(jì),可以保證從輸出的調(diào)試信息直接看出處理器在哪行代碼處響應(yīng)了斷點(diǎn)。
如圖4 所示為在調(diào)試主機(jī)上進(jìn)行調(diào)試控制的界面。偏移地址0x184 處的1040 表明在38 與44 兩行代碼處設(shè)置了斷點(diǎn),事實(shí)上從地址0x180 ~ 0x1ff處都可以設(shè)置斷點(diǎn)。地址0x200 處為當(dāng)前的PC 值,通過向地址0x208 處寫1 可使其更新; 地址0x202處為UDM 的使能位,當(dāng)其為1 時(shí)UDM 才被使能; 地址0x204 為調(diào)試命令寄存器,向其寫1 使處理器從斷點(diǎn)退出,寫2 使處理器刷新調(diào)試信息,寫3 使處理器強(qiáng)制進(jìn)入DR 輸出調(diào)試信息; 地址0x206 處表示調(diào)試狀態(tài),當(dāng)其為3 時(shí)表明處理器在運(yùn)行DR,并且調(diào)試信息已經(jīng)輸出完畢。
圖4 使用UDM 調(diào)試的控制界面
顯示調(diào)試信息的界面如圖5 所示,地址0x00 ~0x0b 顯示寄存器s0 ~ sb 的數(shù)據(jù),地址0x0c ~ 0x3b顯示內(nèi)部64byte 存儲(chǔ)器的數(shù)據(jù),地址0x4c ~ 0x14b顯示PicoBlaze 外部Memory 空間的數(shù)據(jù)。由于圖5中斷點(diǎn)正好設(shè)置在完成依次向PicoBlaze 的Memory空間依次寫0 ~ 251 之后,因此顯示的數(shù)據(jù)是遞增的。當(dāng)斷點(diǎn)正好設(shè)置在完成依次向Pico Blaze 的Memory 空間依次寫255 ~ 4 之后,所顯示的數(shù)據(jù)就變?yōu)檫f減。在很多其他斷點(diǎn)處顯示的調(diào)試信息與斷點(diǎn)設(shè)置的位置也符合預(yù)期的情況,因此UDM 完全可以正確而高效地工作。
圖5 在第44 行斷點(diǎn)處顯示的調(diào)試信息
在開發(fā)一款信號(hào)處理芯片的FPGA 原型設(shè)計(jì)中,跟蹤處理、電文處理、整體流程控制分別由一個(gè)PicoBlaze 完成,并且由于FPGA 資源的限制采用大型處理器來替代上述處理器幾乎不可能。由于輸入PicoBlaze 的數(shù)據(jù)和控制信號(hào)復(fù)雜,仿真驗(yàn)證不能很好地覆蓋各種實(shí)際的使用情形。通過使用這里的基于PicoBlaze 處理器設(shè)計(jì)的UDM,方便地實(shí)現(xiàn)了對(duì)上述3 個(gè)PicoBlaze 的在線調(diào)試,對(duì)提高開發(fā)效率發(fā)揮了重要作用。在其他使用PicoBlaze 的工程應(yīng)用中,上述UDM 也得到了很好的推廣。
5 結(jié)束語
設(shè)計(jì)了一種通用調(diào)試模塊,用于輔助無調(diào)試接口的處理器建立標(biāo)準(zhǔn)的調(diào)試機(jī)制。通過該模塊的使用,提出了一種通用、標(biāo)準(zhǔn)、方便的調(diào)試方法,很好地滿足了在SOPC 系統(tǒng)中對(duì)多個(gè)沒有調(diào)試接口的小巧型處理器實(shí)現(xiàn)在線調(diào)試的迫切需求。新方法通過產(chǎn)生調(diào)試中斷使處理器跳轉(zhuǎn)到調(diào)試服務(wù)程序中的方式實(shí)現(xiàn)處理器的掛起,通過基于雙端口RAM 中一種巧妙的地址映射機(jī)制實(shí)現(xiàn)同時(shí)對(duì)多行代碼設(shè)置斷點(diǎn)的功能,通過調(diào)試服務(wù)程序?qū)崿F(xiàn)數(shù)據(jù)搬移等調(diào)試命令。新方法還具有易于擴(kuò)展,可以同時(shí)調(diào)試多個(gè)嵌入式處理器的優(yōu)點(diǎn)。新的調(diào)試方法在工程實(shí)踐中對(duì)提高調(diào)試效率發(fā)揮了重要作用,是一種普適的,應(yīng)用價(jià)值明顯的調(diào)試方法。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論