OBG在單片機(jī)中的解釋STM32單片機(jī)的內(nèi)核(Cortex-M3)含有硬件調(diào)試模塊,支持多種復(fù)雜的調(diào)試操作,硬件調(diào)試模塊允許內(nèi)核在取地址或者訪問數(shù)據(jù)時(shí)停止-這就是我們在單片機(jī)開發(fā)和過程中可以在線仿真的保障。內(nèi)核在停止時(shí),其內(nèi)部的狀態(tài)與外部狀態(tài)都是可以進(jìn)行查詢的,- 在單片機(jī)仿真調(diào)試中受到中斷,通常為人為設(shè)置的斷點(diǎn),此時(shí)單片機(jī)中所有的變量,以及程序指針,CP,等地址指針都可以查詢到狀態(tài)。在調(diào)試過程中,設(shè)置了斷點(diǎn),當(dāng)程序停止運(yùn)行時(shí),我們可以接著進(jìn)行單步執(zhí)行,跳出函數(shù),進(jìn)入函數(shù)等操作。還可以進(jìn)行復(fù)位,使寄存器都回歸到初始復(fù)位狀態(tài)。
OBG調(diào)試接口
串行接口
JTAG調(diào)試接口
OBG調(diào)試框圖
SWJ(serial wire and JTAG)調(diào)試端口
JTAG調(diào)試接口(JTAG-DP)為AHP-AP模塊提供5針標(biāo)準(zhǔn)JTAG口串行調(diào)試接口(SW-DP)為兩針接口(時(shí)鐘+數(shù)據(jù))接口在swj-dp接口中,SW-DP接口的2個(gè)引腳和JTAG標(biāo)準(zhǔn)接口的5個(gè)引腳中的一些是復(fù)用的。
SWJ調(diào)試端口
JTAG-DP與SW-DP切換的機(jī)制 JTAG調(diào)試接口是默認(rèn)的調(diào)試接口如果想換到SW-DP,必須在TMS/TCK上輸出一指定的JTAG序列(SWCLK SWDIO),該序列禁止JTAG-DP,并激活SW-DP,該方法只能通過SWCLK與SWDIO兩個(gè)引腳來激活。
指定序列是:
輸出超過50個(gè)SWCLK的周期=1信號(hào)
輸出16個(gè)SWDIO信號(hào)0111100111100111(MSB)
輸出超過50個(gè)SWCLK周期的=1信號(hào)
注:如果在調(diào)試過程中,使用到了SW-DP模式,可以對(duì)SWDIO與SWCLK信號(hào)進(jìn)行觀察,不出意外可以觀察到上面的信號(hào)。
SWJ調(diào)試端口腳
注:下圖中的所有引腳在所有STM32系列單片機(jī)中都存在SWJ端口對(duì)應(yīng)
在系統(tǒng)復(fù)位后(SYSRESETn或PORESETn)以后,屬于SWJ-DP的所有5個(gè)腳都立即被初始化為可被調(diào)試器調(diào)用的專用引腳。然而STM32控制器可以復(fù)用重映射和調(diào)試IO配置寄存器(AFIO_MARR)寄存器來禁止SWJ-DP接口的部分或者全部引腳功能,被釋放為普通IO口,此寄存器被映射到Cortex-M3系統(tǒng)總線的APB橋上,對(duì)此寄存器的配置將由用戶進(jìn)行配置。
注:在單片機(jī)開發(fā)中基本上以及絕對(duì)不會(huì)用到占用調(diào)試接口的情況。大家松口氣JTAG腳上的內(nèi)部上拉與下拉保證JTAG的輸入引腳不是懸空的是非常必要的,因?yàn)樗麄冎苯舆B接到D觸發(fā)器控制著調(diào)試模式。必須特別注意SWCLK/TCK引腳,因?yàn)樗麄冎苯舆B接到一些D觸發(fā)器的時(shí)鐘端。
為了避免任何未受控制的I/O電平, STM32F10xxx在JTAG輸入腳上嵌入了內(nèi)部上拉和下拉●JINTRST:內(nèi)部上拉
● JTDI:內(nèi)部上拉
● JTMS/SWDIO:內(nèi)部上拉
● TCK/SWCLK:內(nèi)部下拉
一旦JTAG I/O被用戶代碼釋放, GPIO控制器再次取得控制。這些I/O口的狀態(tài)將恢復(fù)到復(fù)位時(shí)的狀態(tài)。
● JNTRST:帶上拉的輸入
● JTDI:帶上拉的輸入
● JTMS/SWDIO:帶上拉的輸入
● JICK/SWCLK:帶下拉的輸入
● JTDO:浮動(dòng)輸入
軟件可以把這些I/O口作為普通的I/O口使用。
注意: JTAG IEEE標(biāo)準(zhǔn)建議對(duì)TDI, TMS和nTRST上拉,而對(duì)TCK沒有特別的建議。但在STM32F10xxx中, JTCK引腳帶有下拉。
內(nèi)嵌的上拉和下拉使芯片不再需要外加外部電阻利用串行接口并釋放不用的調(diào)試腳作為普通I/O口為了利用串行調(diào)試接口來釋放一些普通I/O口,用戶軟件必須在復(fù)位后設(shè)置SWJ_CFG=010,從而釋放PA15, PB3和PB4用做普通I/O口。
責(zé)任編輯:gt
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634614 -
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151014 -
仿真
+關(guān)注
關(guān)注
50文章
4070瀏覽量
133552
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論