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