STM32之调试支持(DBG)

        STM32F10xxx使用Cortex™-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。

       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针(时钟+数据)接口。

       JTAG调试接口是默认的调试接口。
       如果调试器想要切换到SW-DP,必须在TMS/TCK上输出一指定的JTAG序列(分别映射到SWDIO和SWCLK),该序列禁止JTAG-DP,并激活SW-DP。该方法可以只通过SWCLK和SWDIO两个引脚来激活SW-DP接口。  



 灵活的SWJ-DP脚分配

 3个控制位用来配置SWJ-DP接口的引脚,这3个位在系统复位时复位。
● AFIO_MAPR(STM32F10xxx微控制器中的地址是0x40010004)
─ 读:APB,无等待状态
─ 写:APB,如果AHB-APB桥的写缓冲器满了,则一个等待状态
位26:24=SWJ_CFG[2:0] 由软件置位和复位 这3位用来设置分配给SWJ调试接口的专用引脚数目,目的是在使用不同的调试接口时能释放尽可能多的引脚用作普通I/O口。 复位后的初始值是000(所有引脚都设置为JTAG-DP接口专用引脚),同时只能置位3个位中的一个(禁止同时设置一个以上的位)。


你可能感兴趣的:(STM32)