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