STM32调试功能

news2024/12/23 1:52:03

文章目录

    • STM32调试功能
      • 1.硬件接口图
      • 2.调试原理
      • 3.引脚分配
      • 4.调试接口使用方式
      • 5.芯片配置

STM32调试功能

1.硬件接口图

image-20230530171910713

2.调试原理

Cortex-M内核(M0/M3/M4/M7等)包含用于高级调试功能的硬件。利用这些调试功能,可以在取指(指令断点)或访问数据(数据断点)时停止内核。内核停止时,可以查询内核的内部状态和系统的外部状态。查询完成之后,将恢复内核和系统并恢复程序执行。

Cortex-M内核(MO/M3/M4/M7等)集成了串行SWD/JTAG调试接口(SWJ-DP),包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。

  • JTAG调试接口(JTAG-DP)为5针标准JTAG接口。
  • 串口调试接口(SW-DP)为2针串行调试(时钟+数据)接口。

SW-DP的2个引脚和JTAG的5个引脚中部分引脚复用。

3.引脚分配

在这里插入图片描述

复位后,MCU会将用于SWJ-DP的全部5个引脚指定为专用引脚(AFO),可供调试工具立即使用。但是MCU可以禁止部分或者全部SWJ-DP端口,进而释放相关引脚以用作GPIO口。
在这里插入图片描述

如果引脚我们想作为其他复用功能使用,那么跟其他I0口复用映射配置方法是一致的。

我们目前只有1301和2001有JTAG功能,其他芯片只支持SWD
1301只支持JTAG、2001支持两种协议切换

4.调试接口使用方式

image-20230109151636576

1.使用Jlink连接

Jlink驱动:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace

pylink文档:PyLink — PyLink

2.读取内存地址

3.获取内存地址的默认值 register.py

5.芯片配置

环境搭建

1.按章Jlink 驱动, 安装位置:D:\Program Files\SEGGER\ Jlink

2.pycharm 下载并安装jlink支持的pylink_sqrare-0.14.1-py2.py3-none-any.whl, 内网放在C:\Anaconda3 \Lib\site-packages下, 用命令python setup.exe install 安装这个库,python 命令不识别添加环境变量:

C:\Anaconda3 C:\ Anaconda3\Scripts C:\ Anaconda3\Libary\bin

3.使keil能是被到芯片的型号配置:

下载并解压: Jlink HT device-FLASH 下载.rar

包含:HT 和 JLinkDevices.xml

  • 配置jlink: 将JLinkDevices.xml 复制到 Jlink 安装目录下:D:\Program Files\SEGGER\ Jlink \

    ​ 将HT 复制到 D:\Program Files\SEGGER\ Jlink \ Devices

  • 配置user: 将JLink安装目录下的 Devices 、 JlinkDevices.xml 、 Jlink_x64.dll 直接复制到 D:Users\kxdeng\AppData\Local\Temp

  • 配置 keil: 将HT 中的所有文件 复制到 keil 的安装目录下: D:\keil_v5\ARM\Flash 中

参考文档:

1.首页 | Read the Docs

2.Installation — PyLink

3.https://blog.csdn.net/jf_52001760/article/details/122382671

4.https://pypi.org/project/pylink-square/0.14.3/#files

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式之~命令模式

定义: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 为什么需要命令模式? 在我们的软件开发系统中…

100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 用…

Web的基本漏洞--SSRF漏洞

目录 一、SSRF漏洞介绍 1.SSRF漏洞原理 2.SSRF漏洞经常存在的位置 3.攻击方式 4.SSRF漏洞危害 5.SSRF漏洞的防范 一、SSRF漏洞介绍 1.SSRF漏洞原理 SSRF(服务器端请求伪造)漏洞,出现的原因:是因为服务器与服务器之间有一个服务器内网&…

CVPR2023高质量论文 | Consistent-Teacher:半监督目标检测超强SOTA

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文地址:https://arxiv.org/abs/2209.01589 计算机视觉研究院专栏 作者:Edison_G 《Consistent-Teacher: Towards Reducing …

【C语言】sizeof和strlen的区别【详解】

目录 一.sizeof和strlen的主要区别 二.sizeof和strlen分别讲解(含例题和详解) 1.sizeof 在计算字符型数组时(例题讲解) 计算整型数组(例题讲解) 2.strlen 例子一(讲解)&#…

运维监控Grafana部署

运维监控Grafana部署 简介 安装 部署形式 Grafana支持两种部署形式 自行部署, 可以部署在操作系统之上. 自行提供服务器, 域名等.Grafana官方托管. 无需安装, 在线注册即可得到一个专属于自己的Grafana, 但是要花钱的. 是一种SaaS服务 我们课程选择方式1 安装 Grafana支…

0531最后的挣扎结束于传说中的段错误

部署训练后的缺陷检测模型 Linux Ubuntu18.04双机尝试 报错,Linux内核或是编译器版本不匹配,多次尝试更改18.04的gcc,g,gcc-arm-linux,garm-linux的代码,尝试在Makefile文件里更改编译器路径、添加LInux内…

智慧工厂主题 Meetup 线下报名+福利开启!IoTDB X EMQ 构建数据平台赋能智能制造...

随着全球制造业的竞争日益激烈,智慧工厂成为当今制造业的重要趋势之一。智慧工厂采用了先进的物联网、大数据等科技手段,以期通过智能化、数字化管理和生产,实现高度自动化和高效生产。因此,如何通过计算分析挖掘生产数据价值&…

【Android定制】修改BUILD_AGO_GMS = no 和 BUILD_GMS=no属性

文章目录 概要名词解释细节小结 概要 在安卓底层源码中,有这样的两个属性,这两个第一眼看上去都像是带不带谷歌,BUILD_AGO_GMS no和BUILD_GMSno有什么区别?? 如果带了谷歌,那么这个设备就差不多是国外定…

SQL数据库的整体结构、索引、MVCC、锁、日志、查询优化,三大范式等

关系型数据库和非关系型数据库 SQL:关系型数据库指的是使用关系模型(二维表格模型)来组织数据的数据库。(mysql,sqlserver,sqllite,oracle) 关系数据库的优点: 容易理解,符合正常思维方式;都是用表格形式,格…

大数据:Hadoop HDFS,基础架构,去中心化,中心化模式,HDFS基础架构,虚拟机和云服务器部署HDFS

大数据:Hadoop HDFS,基础架构,去中心化,中心化模式,HDFS基础架构,虚拟机和云服务器部署HDFS 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算…

美颜SDK的市场需求与技术策略:商业化落地的关键因素

随着人们对于美的追求不断加强,美颜技术也在不断进步,其中美颜SDK的出现极大地方便了开发者,使得美颜技术能够更加便捷地应用于各种应用中。那么,美颜SDK市场需求和技术策略是什么?商业化落地的关键因素又是什么呢&…

【C++】C++11 线程库

文章目录 一、thread 线程库二、mutex 锁三、atomic 原子性操作四、RAII 管理锁资源五、condition_variable 条件变量 一、thread 线程库 在 C11 之前,由于 C 没有对各平台的线程接口进行封装,所以当涉及到多线程编程时,编写出来的代码都是和…

ChatGPT赋能Scrum实践

对于Scrum实践者来说,以ChatGPT为代表的的大语言模型是很有效的工具,但要用好这个工具需要一些技巧,本文介绍了60个适用于Scrum实践的提示,可以帮助ChatGPT有效输出适用于Scrum实践的内容。原文: 60 ChatGPT Prompts Plus Prompt …

chatgpt赋能python:Python中的SEO

Python 中的 SEO 搜索引擎优化(SEO)是指通过改进网站的结构和内容,使其在搜索引擎中的排名更高,从而吸引更多的访问者。Python是一种流行的编程语言,其在SEO中也占有重要的地位。 Python 中的关键词密度 搜索引擎通常会关注网页中的关键词…

.Net Core——用代码写代码?

想要用代码写代码,肯定是绕不开反射的。反射的概念相比都不陌生,只是应用多少就因人而异,今天分享一个代码生成器的思路,仅供参考,不要过分依赖哦。 思路分析 众所周知,利用反射可以在程序运行时获取到任…

【赏】java:编写一个SortedList接口

下面是SortedList接口的示例代码:import java.util.List;public interface SortedList<T extends Comparable<T>> extends List<T> {List<T> sort(List<T> list);int binarySearch(T value); }下面是对于SortedList接口的一个实现示例:import …

如何系统地学习IT技术

从基础技术到高级应用&#xff0c;IT技术发展迅速&#xff0c;我们需要建立系统性的学习方法&#xff0c;才能跟上它的速度。接下来&#xff0c;我将分享我的个人经验&#xff0c;介绍如何系统地学习IT技术&#xff0c;以及如何在快速学习过程中确保自己的技术水平越来越高。 …

加湿助眠仪语音IC芯片 白噪音语音方案 WTN6040F-8S

近年来&#xff0c;随着人们健康意识的不断增强&#xff0c;助眠仪逐渐成为了一种备受欢迎的家居健康设备。随着科技的不断升级&#xff0c;助眠仪也在不断地进行改进&#xff0c;以满足用户需求。其中&#xff0c;一种值得注意的改进就是助眠仪音乐播报芯片的应用。加湿助眠仪…

c++ 11标准模板(STL) std::map(九)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…