STM32的keil debug调试(JTAG/SW)

目录

一、JTAG/SWD调试原理概述

二、配置JTAG/SWD引脚

三、基础执行控制按钮介绍

3.1调试与断点按钮

3.2 查看程序段/函数执行时间

3.3 结束仿真报错

四、工具栏常用窗口按钮介绍

五、仿真时需要注意的点


一、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调试与断点按钮

</

### Keil MDK5 中 JTAG 接口的配置 在嵌入式系统开发过程中,JTAG(Joint Test Action Group)接口用于调试和编程微控制器。对于使用 Keil MDK5 开发环境的情况,正确配置 JTAG 对于实现高效的硬件调试至关重要。 #### 1. 安装必要的驱动程序和支持包 为了使计算机能够通过 JTAG 进行通信,在安装 Keil MDK5 后还需要额外安装目标板所使用的调试适配器对应的驱动程序[^1]。这通常由硬件供应商提供,并应按照其说明完成设置过程。 #### 2. 创建新工程并选择设备 启动 Keil μVision IDE 并创建一个新的项目文件。当被提示选择目标器件时,请确保选择了与实际使用的 MCU 型号相匹配的一项。这一操作会自动加载相应的支持库以及默认配置选项。 #### 3. 设置调试连接方式 进入 **Project → Options for Target 'Target 1'...** 菜单项下的 Debug 页面来指定如何连接到目标板: - 如果采用的是 CMSIS-DAP 或 ST-LINK 类型的调试探针,则可以直接在此处选取; - 若是其他类型的 JTAG/SWD 探头,则需先确认已成功安装对应厂商提供的驱动之后再做相应设定; 此外还需注意检查 SWO Trace 功能是否开启,这对于性能分析非常有用。 #### 4. 验证连接状态 保存所做的更改后回到主界面,点击工具栏上的红色虫子图标尝试建立链接。如果一切正常的话应该可以看到底部的状态栏显示 Connected 字样表示已经成功建立了物理层面上的数据交换通道。 ```c // 示例代码片段展示简单的 LED 测试程序 #include "stm32f4xx_hal.h" int main(void){ HAL_Init(); __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); HAL_Delay(500); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值