STM32的ST-link调试下载,各种调试接口硬件介绍

news/2024/11/19 1:25:15/

调试原理

  • STM32F-10X使用M3内核,该内核支持复杂的同i傲视操作,硬件调试模块允许在取指令(指令单步运行)或访问数据(数据断电时)使得内核停止。在内核停止时,内核状态都可被查询,完成查询后内核和外设被复原
  • 支持两种操作接口: 串行接口 JTAG调试接口
  • 在这里插入图片描述
  • 参考:https://www.cnblogs.com/neverguveip/p/9457261.html,https://www.cnblogs.com/neverguveip/p/9457262.html
    JTAG
    用的计算机的并口,JTAG也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。但在满足该协议的实际硬件中,添加了电源接口或接地,一般是20引脚、14引脚和10引脚
    在这里插入图片描述
    SWD接口
    串行调试(Serial Wire Debug),需要引脚少,与JTAG相比,SWD只需要两根线,分别为:SWCLK和SWDIO。SWDIO–串行数据线,用于数据的读出和写入;SWDCLK–串行时钟线,提供所需要的时钟信号;一般来说,大多数单片机的JTAG接口和SWDIO接口是复用的,SWD也是用J-Link工具来实现的。半导体的ST-Link也是支持SWD模式的
    RDI接口
    远程调试接口(Remote Debug Interface),是ARM公司提出的标准调试接口
    J-Link
    是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒。JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的
    ULINK
    是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持
    ST-Link仿真器
    是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:
  • 编程功能:可烧写FLASH ROM、EEPROM、AFR等;
  • 仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;
  • 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;
  • 编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

进入debug窗口

需要注意硬件连接,一定先使用ST-Link连接好硬件,设置好配置**
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

实时调试过程中的按钮作用

在这里插入图片描述
在线调试按钮功能讲解

按钮名称功能
复位程序重新开始执行
执行到断点执行到程序添加断点的地方
停止运行使得程序和硬件同步停止,可以进入一步一步调试,
执行进去,执行过去,执行出去三个都是针对函数执行来说的
执行到光标处有点儿像断点,但光标只能有一个
汇编窗口显示汇编窗口
堆栈局部变量窗口查看局部变量变化,方便分析
观察窗口可单独搜索自己想要查看的变量
内存查看窗口可以用来查看内存中某个地址中数值变化,对状态控制时查看情况很好用
串口打印窗口出现一个类似串口打印的窗口,显示从串口打印的东西
逻辑分析窗口查看IO的电平变化
系统查看窗口各种外设寄存器查看窗口

在这里插入图片描述

一个查看GPIOB_PE5的例子

首先,连接好硬件,keil5的电源debug打开,
在这里插入图片描述
按照上图步骤打开GPIOE的监视窗口
在这里插入图片描述
在这里插入图片描述
从表中可以看出PE5的输出模式是0011,也就是50MHZ的推挽输出模式,ODR寄存器的读取也是1高电平。
在这里插入图片描述


http://www.ppmy.cn/news/5613.html

相关文章

数理统计期末复习笔记(一)

数理统计期末复习笔记 主要内容: 数据压缩,点估计,假设检验,区间检验 Reference: Statistical Inference, Casella&Berger Chapter 6 Data Reduction(数据压缩) 随机样本: 无限样本&…

记录我の秋招之旅【23届 CV算法岗】

文章目录碎碎念春招实习华为实习魔幻秋招尘埃落定碎碎念 今年(2022年)的秋招不能说"非常困难"吧,只能说是"地狱难度",相信参与或者从侧面了解过的同学们也能感同身受。从今年的三月份开始着手秋招,期间也一直忙着实验室…

机器学习100天(十六):016 逻辑回归损失函数

机器学习 100 天,今天讲的是:逻辑回归损失函数。 一、如何找到最佳分类直线 讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢? 如图中所示,如何判断这三条直线哪个更好?线性回归里,我们可以用均方误差作为损失函数,选择均…

MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 × 51 USING SPARSITY

论文链接: https://arxiv.org/pdf/2207.03620.pdf code: https://github.com/VITA-Group/SLaKlink MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 51 USING SPARSITY一、引言(二)、大内核注意力(二)、卷积中的大…

python帮我省下了这笔冤枉钱

背景 今天不得不说一说我这个电脑的事情。我这个电脑是2年前买的,屏幕非常大,是16寸的。 基本上没什么缺点,就是每隔一年,就要处理一下储存问题。 为什么呢,因为我的这台电脑的储存是512G的。所以不是太大。 但是今天…

数据人PK也无人,为什么业务部门的数据需求都是急活?

**导读:**你是不是经常听到数据开发吐槽业务部门:我可以理解业务部门数据需求多,但为什么经常要得这么急呢? 作为一个数据开发者,可以回想一下,当初是怎么进入数据行业的。 是不是也是听一些大V忽悠&…

BEPU物理引擎碰撞系统的架构与设计

前面我们讲解了如何监听物理引擎的碰撞事件, 在物理引擎内核中如何架构与设计碰撞规则,使得物理Entity与周围的物理环境产生碰撞时,如何灵活的控制物理碰撞,本节給大家详细的讲解BEPUphysicsint 物理引擎内部是如何管理与控制碰撞规则的。本文主要讲解3个…

【gitlab wiki】git首次上传本地文档操作步骤

1.在gitLab中创建一个项目 2.进入本地电脑中的你要上传文件的文件目录,右击鼠标选择“ Git Bash Here” git命令窗口(本机电脑要安装好git) 3.在远程git项目中,复制出项目http地址。 4.在“ Git Bash Here” git命令窗口输入命令:git clone h…