目录
一、JTAG/SWD调试原理概述
Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。
内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。
意思就是STM32里边包括外设和内核,内核里边有一个调试模块,有这个模块就可以仿真调试STM32,这个模块可以在指令断点或数据断电处停止,这里的停止指的是内核停止,内核停止就可以查看内核的内部状态和系统的外部状态。内核的内部状态就是内核那些R0、R1、PC这些,外部状态就是外设了,例如寄存器。
二、配置JTAG/SWD引脚
SWD:只需要两个引脚,一个是CLK时钟引脚,一个是SWDIO数据引脚。
JTAG:需要5个引脚,分别是JTMS、JTCK、JTDI、JTDO、JNTRST引脚。
由于SWD比JTAG少3个引脚,那么使用SWD模式,就可以将另外3个引脚释放。如何释放看下面表格。
1、在复位状态的时候,5个引脚都没有释放,图里边X表示没有释放。5个引脚都没有释放,那么也就是说在复位状态下两种模式都可以使用。
2、释放NJTRST引脚, 就可以把PB4当作普通的IO口,JATG和SWD都可以使用,但是JTAG不能复位了。
3、释放JTAG多余的三个引脚,只能使用SW模式了,不能使用JTAG模式。释放的三个引脚就可以当作普通IO口。
4、5个引脚全部释放,用于普通的IO口,只能使用串口下载程序。
F1系列可以通过AFIO_MAPR寄存器的SWJ_CFG[2:0位来释放部分或者全部SWJ-DP引脚。
F4/F7/H7系列默认全部SWJ-DP引脚为复用功能并映射到复用功能0(AF0)。这三个系列多了一个复用功能选择器。复位以后都是选择AF0。
三、基础执行控制按钮介绍
3.1调试与断点按钮
</