STM32笔记 (六)利用ST-Link进行Debug调试

简介

STM32支持连接调试器进行在线Debug调试,可以用于一步步的排查程序的错误
STM32F1系列的Cortex-M3 支持两种调试主机接口(debug host interface ) :

  • 第一个是广为使用的JTAG 接口
  • 另一个是新的“串行线(Serial Wire, SW)调试接口”,也就是SWD调试接口

SWD和JTAG两种调试接口仿真的区别

  • 两者的区别主要在于使用引脚的多少,STM32F1单片机往往没有很富裕的管脚资源,而 JTAG协议需要使用 4 根脚,而 SW 则只需要两根
  • 在大数据较大的情况下面使用JTAG 下载程序可能会失败,而用SWD下载程序下载失败的概率会大大降低
  • 使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的,例如ST-Link就支持同一个调试器使用两种仿真接口进行下载,主要取决于下载器是否支持
  • 由于SWD只占用用两个接口,JTAG占用4个,较少的接口可以降低PCB布线的难度以及缩小PCB板的体积

硬件接线图

JTAG:
在这里插入图片描述

SWD:
在这里插入图片描述

Cortex-M3的两种调试模式

  1. 停机模式
  • 指令执行被停止
  • SysTick 定时器停止
  • 支持单步操作
  • 中断可以在这期间悬起,并且可以在单步执行时响应。也可以掩蔽它们,使得单步
    时不受干扰
  1. 调试监视器模式
  • 处理器执行调试监视器异常的服务例程(异常号: 12)
  • SysTick 定时器继续运行
  • 新来的中断按普通执行时的原则来抢占
  • 执行单步操作
  • 存储器的内容(如堆栈内存)会在调试监视器的响应前后更新,因为有自动入栈和出栈的动作

一般用的比较多的是停机模式

keil5中对ST-Link调试器进行配置(SWD)

  1. 首先需要下载ST-link v2的驱动程序
  2. 打开Keil5,点击魔术棒
    在这里插入图片描述
  3. 在debug选项卡中选则ST-Link调试器
    在这里插入图片描述
  4. 点击Settings,选择SW模式以及速率在这里插入图片描述
  5. 选择Reset and Run,核对所选择芯片的内存
    在这里插入图片描述
  6. 单片机连接上ST-Link接口并在Keil5中点击Start/Stop Debug Session 即可开始使用ST-Link仿真
    在这里插入图片描述
原创文章 12 获赞 0 访问量 1104

猜你喜欢

转载自blog.csdn.net/zcy_cyril/article/details/105906183