Stm32F103R6之調試支持

概述

Cortex™-M3內核含硬件調試模塊,支持複雜的調試操作。硬件調試模塊允許內核在取指(指令斷點)或訪問數據(數據斷點)時停止。內核停止時,內核的內部狀態和系統的外部狀態都是可以查詢的。完成查詢後,內核和外設可以被複原,程序將繼續執行。

當STM32F10x微控制器連接到調試器並開始調試時,調試器將使用內核的硬件調試模塊進行調試操作。

支持兩種調試接口:

● 串行接口

● JTAG調試接口

Stm32F103R6之調試支持

圖 1調試框圖

SWJ調試端口(serial wire and JTAG)

STM32F10xxx內核集成了串行/JTAG調試接口(SWJ-DP)。這是標準的ARM CoreSight調試接口,包括JTAG-DP接口(5個引腳)和SW-DP接口(2個引腳)。

● JTAG調試接口(JTAG-DP)為AHP-AP模塊提供5針標準JTAG接口。

● 串行調試接口(SW-DP)為AHP-AP模塊提供2針(時鐘+數據)接口。

在SWJ-DP接口中,SW-DP接口的2個引腳和JTAG接口的5個引腳中的一些是複用的。

Stm32F103R6之調試支持

圖 2SWJ調試端口

JTAG調試接口是默認的調試接口。

如果調試器想要切換到SW-DP,必須在TMS/TCK上輸出一指定的JTAG序列(分別映射到SWDIO和SWCLK),該序列禁止JTAG-DP,並激活SW-DP。該方法可以只通過SWCLK和SWDIO兩個引腳來激活SW-DP接口。

指定的序列是:

1. 輸出超過50個TCK週期的TMS(SWDIO)= 1信號

2. 輸出16個TMS(SWDIO)信號 0111100111100111 (MSB)

3. 輸出超過50個TCK週期的TMS(SWDIO)= 1信號

Stm32F103R6之調試支持

圖 3SWJ調試端口引腳

利用串行接口並釋放不用的調試腳作為普通I/O

為了利用串行調試接口來釋放一些普通I/O口,用戶軟件必須在復位後設置SWJ_CFG=010,從而釋放PA15,PB3和PB4用做普通I/O口。

在調試時,調試器進行以下操作:

● 在系統復位時,所有SWJ引腳被分配為專用引腳(JTAG-DP + SW-DP)。

● 在系統復位狀態下,調試器發送指定JTAG序列,從JTAG-DP切換到SW-DP。

● 仍然在系統復位狀態下,調試器在復位地址處設置斷點

● 釋放復位信號,內核停止在復位地址處。

● 從這裡開始,所有的調試通信將使用SW-DP接口,其他JTAG引腳可以由用戶代碼改配為普通I/O口


分享到:


相關文章: