STM32 JTAG 模式和 SWD 模式的区别详解

news2024/11/19 23:33:03

在调试和编程 STM32 微控制器时,使用 JTAG(Joint Test Action Group)模式和 SWD(Serial Wire Debug)模式是两种常见的方法。它们在接口需求、调试能力、引脚数量、通信速度等方面各有特点。我们一般采用的的下载器如ST-LINK,两种模式均可使用,下文将详细介绍这两种模式的主要内容和区别。

1. 接口和引脚需求

JTAG 模式

  • 引脚数量:JTAG 模式通常需要 5 到 6 个引脚。
    • TDI(Test Data In):数据输入引脚,用于将测试数据输入到微控制器。
    • TDO(Test Data Out):数据输出引脚,用于将测试数据从微控制器输出。
    • TCK(Test Clock):测试时钟引脚,用于同步 JTAG 操作。
    • TMS(Test Mode Select):测试模式选择引脚,用于在不同的测试模式之间切换。
    • TRST(Test Reset,可选):测试复位引脚,用于复位 JTAG 状态机。
    • GND:接地引脚,用于提供电气地。
  • 功能:JTAG 提供了全面的调试接口,能够支持调试、编程以及边界扫描测试(Boundary Scan Test),适用于复杂的调试需求。
  • 复杂性:由于需要更多的引脚和复杂的连接,通常用于开发板和较大的嵌入式系统,调试功能强大但连接复杂。

SWD 模式

  • 引脚数量:SWD 模式仅需要 2 个主要引脚。
    • SWDIO(Serial Wire Debug I/O):双向数据输入输出引脚,用于传输调试数据。
    • SWCLK(Serial Wire Clock):串行时钟引脚,用于为 SWD 提供时钟信号。
    • GND:接地引脚,用于提供电气地。
  • 功能:SWD 是一种简化的调试接口,仅提供调试和编程功能,不支持 JTAG 的全部功能(如边界扫描),适合资源受限的应用或小型设备。
  • 简单性:由于仅需 2 根信号线,连接简单,占用的引脚少,布线更为简洁,适合在空间和引脚受限的应用中使用。

2. 连接和布线

        JTAG 模式:需要 5-6 根信号线,连接较复杂,占用更多的 PCB 布线资源。适合开发阶段复杂的调试需求,适用于原型开发和调试阶段。

        SWD 模式:只需要 2 根信号线,连接更简单,占用较少的 PCB 布线资源。适合在空间受限的应用中使用,适用于生产环境和简单的调试需求。

3. 调试和编程速度

        JTAG 模式:通常提供较高的调试和编程速度,适合大容量数据传输和复杂的调试操作。JTAG 接口的带宽较大,适合需要高效通信和实时数据监控的应用。

        SWD 模式:由于是串行接口,速度可能比 JTAG 略慢,但在许多应用中速度足够,现代 SWD 实现已经优化到接近 JTAG 的速度,满足大多数调试和编程需求。

4. 复杂性和成本

        JTAG 模式:由于需要更多的引脚和信号线,电路板设计更复杂,调试器的成本也可能更高。适合需要复杂调试功能的开发阶段和原型设计。

        SWD 模式:由于引脚和信号线较少,电路设计更简单,调试器的成本较低。适合批量生产和成本敏感的应用场景。

5. 功能支持

  • JTAG 模式
    • 边界扫描:支持边界扫描测试功能,用于硬件调试和测试,使得开发者可以测试板级连接。
    • 多核调试:支持多核调试(如果设备有多个内核),适合多核系统的调试需求。
    • 丰富的调试功能:支持复杂的断点设置、实时变量监控和系统状态分析等调试功能,适合全面调试需求。
  • SWD 模式
    • 调试和编程:主要用于代码调试和程序烧录,适合基本调试需求。
    • 实时监控:支持基本的实时监控功能,可以进行基础的断点设置和变量监控。
    • 简化的调试功能:功能上不如 JTAG 全面,但对于大多数调试需求已经足够,适合资源受限的应用。

6. 应用场景

        JTAG 模常用于开发阶段和复杂系统调试,适合需要全面调试功能的应用场景,如多核处理器、复杂板级调试等。在开发原型时,JTAG 提供了详细的调试信息和全面的功能支持。 SWD 常用于生产环境和空间受限的应用场景,适合简化调试和程序烧录的需求,如微控制器应用、小型嵌入式设备等。SWD 在小型设备和大规模生产中尤为适用。

本项专栏致力于单片机开发常见知识,期待您的后续关注!还请诸君多多点赞!

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

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

相关文章

Window常用的脚本有哪些?快来看看有哪些是你正在用的!(欢迎评论补充~)

前言 在日常开发中,如果能熟练掌握以下这些使用频率很高的脚本,那工作起来真的是手拿把攥,事半功倍,接下来给大家介绍一些我们日常使用率很高的一些脚本! 常用脚本(Batchfile & VBScript) 1.一键启动.bat 一次…

MySQL数据库笔记(二)

第一章 单行函数 1.1 什么是函数 函数的作用是把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中使用函数,极大地提高了用户对数据库的管理效率。 1.2 定义 操作数据对象。 接受参数返回一个结果。 只对一行进行…

性能工具之 JMeter 常用组件介绍(八)

文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 本文主要介绍JMeter命令行启动和脚本录制功能 一、Jmeter命令行启动 Jmeter有两种运行: 一种是采用的界面模式(GUI)启动,会占用不少系统资源;另一种是命令行模式(n…

力扣hot100:31. 下一个排列

LeetCode:31. 下一个排列 字典序的大小排序: 从前往后对比,如果先出现更小字符的,字典序更小,如果有个字符串结束了,则它更小。string s "112233"和string t "1122334",…

训练营第四十二天| 583. 两个字符串的删除操作72. 编辑距离647. 回文子串516.最长回文子序列

583. 两个字符串的删除操作 力扣题目链接(opens new window) 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: "sea", "eat"输出: …

71. UE5 RPG 实现敌人召唤技能

在这一篇文章中,我们要实现敌人的召唤师能够召唤自己的仆从进行作战。 要实现这个技能,我们首先创建新的敌人蓝图,用于召唤。接着,我们将实现一个召唤技能基类,在基类中实现在召唤师的周围获取到可以生成的位置点&…

数据结构与算法笔记:基础篇 - 分治算法:谈一谈大规模计算框架MapReduce中的分治思想

概述 MapReduce 是 Google 大数据处理的三姐马车之一,另外两个事 GFS 和 Bigtable。它在倒排索引、PageRank 计算、网页分析等搜索引擎相关的技术中都有大量的应用。 尽管开发一个 MapReduce 看起来很高深。实际上,万变不离其宗,它的本质就…

【nginx】 nginx核心功能

【nginx】 nginx核心功能 1.nginx核心功能 1. 反向代理 2. 负载均衡 3. 动静分离 4. nginx的高可用2. 反向代理 正向代理: 该服务器代理的是客户端,对于服务器来说,不知道真实客户端的ip。比如: 翻墙软件。 访问国外的服务器---使用了翻墙软件----对…

响应式高端网站模板源码图库素材 资源下载平台源码

源码介绍 亲测可用,可用于做娱乐网资源网,功能非常的齐全无任何加密也无任何后门!响应式高端网站模板源码图库素材 资源下载平台源码(可运营) 页面很美观,堪比大型网站的美工,而且页面做的也很…

GRIT论文阅读笔记

一篇试图统一生成任务和编码任务的工作,就是把只能完成生成任务的GPT改成既能生成又能encode。思路其实很简单,就是在输入的时候添加instruction tokens来指引模型做representation还是generation,然后各自算损失。representation任务用的是d…

【操作系统】操作系统实验02-生产者消费者程序改进

1. 说明文档中原有程序实现的功能、实现方法。(用语言、程序流程图、为原有程序添加注释等方式均可) 1.//const.h 2.//定义宏变量 3.#ifndef CONST_H 4.#define CONST_H 5. 6.#define TRUE 1 7.#define FALSE 0 8.#define ERROR 0 9.#define OVERFLOW -…

据阿谱尔APO Research调研显示,2023年全球水凝胶市场销售额约为14.2亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球水凝胶市场销售额约为14.2亿美元,预计在2024-2030年预测期内将以超过5.0%的CAGR(年复合增长率)增长。 水凝胶有多种应用,包括个人护理、制药、农业及其他…

界面组件Kendo UI for Angular 2024 Q2亮点 - 让应用程序界面拥有AI提示

随着最新的2024年第二季度发布,Kendo UI for Angular为应用程序开发设定了标准,包括生成式AI集成、增强的设计系统功能和可访问的数据可视化。新的2024年第二季度版本为应用程序界面提供了人工智能(AI)提示,从设计到代码的生产力增强、可访问…

卷积神经网络(CNN)理解

1、引言(卷积概念) 在介绍CNN中卷积概念之前,先介绍一个数字图像中“边缘检测edge detection”案例,以加深对卷积的认识。图中为大小8X8的灰度图片,图片中数值表示该像素的灰度值。像素值越大,颜色越亮&…

ByteTrack跟踪理解

1.ByteTrack 核心思路 (1)区分高置信度检测框与低置信度检测框,不同置信度检测框采取不同处理方式。 (2)保留低置信度检测框,在后续可能会重新确认为 confirm 状态。而不是像传统 MOT 算法选择删除。 2.…

视频行人搜索 (Person Search in Videos)

文章目录 视频行人搜索 (Person Search in Videos)图像行人搜索存在问题Video PS 定义MTA-PS数据集First person search dataset in videosComplicated ambient conditions and realistic monitoring scenariosPrivacy insensitivity 方法 视频行人搜索 (Person Search in Vide…

Nacos从入门到实战

一、Nacos介绍 1.什么是Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery)、服务配置(Nacos Config)和服务管理平台 集 注册中心配置中心服务管理 平台 注册中心:把所有的服务注册进去…

Redis变慢了?

Redis变慢了? 什么是Redis?测定Redis变慢?最大响应延迟平均响应延迟设置Redis慢日志 分析Redis变慢bigkeysbigkey的危害bigkey优化 写在最后 什么是Redis? 作为一个技术人员来说,大家用的最多的可能就是Redis了&#…

BottomSheet 半模态视图

先看效果图: 越来越多的app,使用半模态视图,弹窗从底部弹窗,手动滑动收起。交互流程丝滑,体验流畅。我这一研究才发现,官方出了一个控件叫 UISheetPresentationController,使用起来及其方便,只需要关注业务逻辑就可以,着急的朋友可以直接把demo拿去。BottomSheetDemo…

Java new HashMap 指定容量,代码怎么写? 学习源码小记

之前针对 创建map 指定容量&#xff0c;写过一篇吐槽教学文章&#xff1a;HashMap 使用的时候指定容量&#xff1f;你真的用明白了吗&#xff1f;&#xff08;值得一阅&#xff09;_new hashmap<>(4);-CSDN博客 因为我们经常要通过代码做一些数据的分组&#xff0c;比如查…