MXT0106處理器調(diào)試環(huán)境的設(shè)計與實現(xiàn)
引言
隨著軟件開發(fā)規(guī)模的不斷擴大,調(diào)試工具在軟件開發(fā)中的作用顯得越來越重要。針對嵌入式處理器的調(diào)試環(huán)境的搭建有很多的方法,包括在線仿真器、ROM(只讀存儲器)仿真器及類似于調(diào)試支持單元(Debug Support Unit,簡稱DSU)的硬件調(diào)試,而GDB(GNU的軟件調(diào)試器)完全是通過軟件方式實現(xiàn)調(diào)試。
本文針對國產(chǎn)SPARC v8處理器,設(shè)計實現(xiàn)了其基于處理器硬件調(diào)試機制的GDB調(diào)試環(huán)境。
調(diào)試環(huán)境的硬件基礎(chǔ)
MXT0106是北京時代民芯公司設(shè)計的一款SPARC V8體系結(jié)構(gòu)的嵌入式處理器,具有非常豐富的外設(shè)接口,只需加上存儲器和應(yīng)用相關(guān)的外圍電路,就可以構(gòu)成完整的單板計算機系統(tǒng)。
它具有片內(nèi)硬件調(diào)試功能,可以輔助軟件在目標硬件上進行調(diào)試。該部分功能包括兩個模塊:調(diào)試支持單元(DSU)和調(diào)試通訊連接模塊(如圖1所示)。對這兩個模塊的理解和使用,是開發(fā)調(diào)試環(huán)境的基礎(chǔ)。
調(diào)試支持單元
調(diào)試支持單元(DSU)可以通過任何在內(nèi)部總線上的主設(shè)備來調(diào)試處理器。通過DSU將處理器置于調(diào)試模式(進入調(diào)試模式時流水線凍結(jié)),允許從外部調(diào)試處理器。DSU主設(shè)備在內(nèi)部總線上占有一個地址空間,通過這個地址空間,可以訪問處理器的寄存器和跟蹤緩沖區(qū)的內(nèi)容,CPU內(nèi)部的所有寄存器、cache(緩存)在總線上都有映射的空間,調(diào)試時直接由DSU按地址訪問。用戶也可以調(diào)試和/或從中斷的位置重新執(zhí)行。
DSU還有兩個斷點寄存器來匹配任何內(nèi)部的總線地址或者執(zhí)行的指令。
DSU通訊連接
DSU通訊連接包含一個串口,該串口在內(nèi)部總線上作為一個主設(shè)備。該串口支持簡單的通信協(xié)議傳輸訪問參數(shù)和數(shù)據(jù)。連接命令由一個控制字節(jié)、32位地址和可選的寫入數(shù)據(jù)組成。數(shù)據(jù)以8位為基礎(chǔ)進行發(fā)送:包括一個起始位、8位數(shù)據(jù)位和一個停止位。
通過通訊鏈路,可以對內(nèi)部總線上任何地址進行讀/寫操作。通過設(shè)置長度字段為n-1(其中n標明傳輸字的長度),可以進行塊傳輸。其協(xié)議格式如圖2。
評論