[嵌入式系统-77]:RT-Thread-快速上手:嵌入式系统调测工具大全

目录

1. JTAG 下载调试器:

2. J-Link 仿真器:

3. ICE(In-Circuit Emulator):

4. ROM监视器(ROM Monitor):

5. 终端仿真工具:

6. 总线抓取工具:

7. 静态代码分析工具:

8. 单元测试工具:

9. 示波器(Oscilloscope):

10. 调试探针:

11. 安全性测试工具:


嵌入式系统设计中涉及一些常用的调试工具,如下所示:

1. JTAG 下载调试器:

JTAG (Joint Test Action Group) 是一种国际标准测试协议(IEEE 1149.1),用于测试和维护复杂的集成电路,如微处理器、数字信号处理器(DSPs)、微控制器等。JTAG最初是为了在芯片制造过程中检测芯片内部的连接错误而设计的,但随着时间的推移,它已经被广泛应用于更广泛的领域,包括现场编程、调试、故障隔离和系统验证。

JTAG接口通常包括以下几个主要部分:

  1. TAP (Test Access Port):测试访问端口是JTAG接口的主要部分,它允许外部测试设备(如JTAG调试器)与芯片内部进行通信。TAP通常由四个引脚组成:TDI (Test Data In)、TDO (Test Data Out)、TMS (Test Mode Select) 和 TCK (Test Clock)。

    • TDI:测试数据输入,用于向芯片发送指令或数据。
    • TDO:测试数据输出,用于从芯片读取数据或响应。
    • TMS:测试模式选择,用于选择JTAG控制器的工作模式。
    • TCK:测试时钟,为JTAG操作提供时钟信号。
  2. DR (Device Register):设备寄存器是JTAG接口的一部分,用于存储和传输测试数据。它通常与芯片内部的各种测试和控制功能相连。

  3. IR (Instruction Register):指令寄存器用于存储JTAG指令,这些指令定义了JTAG接口应该如何工作。指令寄存器的内容决定了数据寄存器应该如何与芯片内部的不同部分进行交互。

JTAG的主要用途包括:

  • 边界扫描:通过边界扫描,可以测试和验证芯片引脚与其内部电路之间的连接。这对于发现制造过程中的错误非常有用。
  • 芯片内调试:JTAG可以用于在芯片内部设置断点、单步执行代码、读取和修改内存等,从而加速调试过程。
  • 固件更新:某些设备允许通过JTAG接口进行固件更新或现场编程。
  • 故障隔离:在发生故障时,JTAG可以用于隔离和诊断问题所在的位置,从而加速故障排除过程。

然而,JTAG接口也存在一些潜在的安全风险,因为它允许对芯片进行非常深入的访问。因此,在生产环境中,有时需要禁用JTAG接口以防止未经授权的访问。

2. J-Link 仿真器

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器

该仿真器可以与多种集成开发环境(如IAR EWAR、ADS、KEIL、WINARM、RealView等)无缝连接,支持ARM7/ARM9/ARM11、Cortex M0/M1/M3/M4、Cortex A5/A8/A9等内核芯片的仿真。

J-Link仿真器的主要特点包括:

  • 操作方便、连接方便、简单易学,是学习开发ARM的最好最实用的开发工具。
  • 支持多种ARM内核芯片和集成开发环境。
  • 高速下载,V9.3版本较V8.0版本进一步提升了下载速度,最大下载速度提升到1 MByte/s
  • 带有自动速度识别功能、监测所有JTAG信号和目标板电压的功能。
  • 支持通过USB电源供电(但不对目标板供电),支持多JTAG器件串行连接,并且带有J-Link TCP/IP server,允许通过TCP/IP网络使用J-Link。

此外,J-Link仿真器还有多个版本,如J-Link Plus、J-Link Ultra、J-Link Ultra+、J-Link Pro、J-Link EDU、J-Trace等,可以根据不同的需求来选择不同的产品。

在使用J-Link仿真器时,可以通过多种方式实现调试打印,如使用USB转TTL转换器、JLink仿真自带的虚拟串口、SWO(Serial Wire Output,串行线输出)以及JLink提供的RTT(Real-Time Trace,实时跟踪)功能等。

串行调试接口SWDSerial Wire Debug)和JTAG(Joint Test Action Group)都是嵌入式系统开发中常用的调试接口标准,但它们之间存在一些关键差异。

  1. 引脚数量:JTAG接口通常需要至少四根引脚,包括TCK(测试时钟)、TMS(测试模式选择)、TDI(测试数据输入)和TDO(测试数据输出)。而SWD接口则更为简化,只需要两根引脚,即SWDIO(数据和时钟)和SWDCLK(时钟),有时还包括SWDNRST(复位)引脚,但这不是必需的。
  2. 复杂性和速度:JTAG接口是一种并行接口,它使用状态机来控制操作序列,允许读取和写入寄存器、访问内存、执行操作指令等。虽然它提供了丰富的调试功能,但相对而言比较复杂。而SWD接口则是一种串行接口,使用更简单的状态机以串行方式传输数据。这使得SWD在通信速度上通常比JTAG更快,特别是在高速大数据传输时表现更为出色。
  3. 适用性和兼容性:JTAG接口最初是用于电路板测试的标准,后来被广泛应用于嵌入式系统调试。它支持多种处理器和微控制器,并且具有广泛的兼容性和灵活性。然而,由于SWD接口的设计初衷是为了简化调试接口的复杂性和提高通信速度,因此它通常只适用于ARM内核的单片机。这限制了SWD在一些非ARM平台上的应用
  4. 调试特性:JTAG接口支持边界扫描测试、系统内编程以及实时调试等功能,使得开发人员能够全面检查和操作处理器内部状态。而SWD接口虽然也具有调试功能,但相对于JTAG来说可能较为有限。然而,SWD的通信速度优势使得它在一些需要快速数据传输的调试场景中更为适用。
  5. 临时调试方案:在没有完善JTAG电路描述的情况下,SWD可以作为一种临时的调试方案。由于SWD引脚可以在一定条件下与JTAG引脚复用,这使得在硬件设计过程中可以更容易地实现调试接口的切换。

综上所述,SWD和JTAG在引脚数量、复杂性和速度、适用性和兼容性以及调试特性等方面存在差异。在选择使用哪种调试接口时,需要根据具体的应用场景和需求进行权衡和选择。

J-Link、ST-Link和DAP-Link都是在嵌入式系统开发中常用的调试和编程接口,但它们各自有一些特点和适用场景。

  1. J-Link
    • J-Link是由Segger公司开发的一款功能强大的ARM Cortex-M系列调试器。
    • 它以其高效、可靠和易用性而闻名,成为嵌入式开发人员的首选工具之一。
    • J-Link支持多种ARM Cortex-M系列处理器,并提供丰富的调试功能,如断点设置、单步执行、变量查看等。
    • J-Link还提供高速的Flash编程功能,可以快速地将程序下载到目标设备中。
    • J-Link支持多种集成开发环境(IDE),如IAR Embedded Workbench、Keil MDK等。
  2. ST-Link
    • ST-Link是STMicroelectronics公司推出的调试和编程接口,主要用于STM32系列微控制器的开发。
    • 它提供了调试、下载程序、烧录等功能,并且支持串口仿真,方便开发者进行串口通信的调试。
    • ST-Link价格相对较为亲民,因此在学校和初学者中较为流行。
    • ST-Link支持与多种IDE的集成,如STM32CubeIDE、Keil MDK等。
  3. DAP-Link
    • DAP-Link(之前称为CMSIS-DAP)是ARM官方推出的调试和编程接口协议。
    • 它是一种开源的调试与编程接口协议,旨在简化和统一开发人员与嵌入式设备之间的通信过程。
    • DAP-Link提供了标准化的方法,使得开发人员可以使用各种开发工具(如Keil MDK、IAR Embedded Workbench等)直接与目标设备进行调试和编程。
    • DAP-Link支持多种目标设备,并且具有高度的可定制性。

总结来说,这三种调试和编程接口各有特点。J-Link功能强大、可靠且易于使用,是嵌入式开发人员的首选工具之一;ST-Link价格亲民,特别适用于STM32系列微控制器的开发;DAP-Link则是一种开源的调试与编程接口协议,具有高度的可定制性和标准化。在选择使用哪种接口时,需要根据具体的开发需求和目标设备来决定。

3. ICE(In-Circuit Emulator)

ICE (In-Circuit Emulator),即在线仿真器,是嵌入式开发中的一种重要工具。ICE可以模拟CPU的功能,从而完全仿真ARM芯片或其他类型芯片的行为。这种仿真器运行起来与实际的目标处理器类似,但增加了其他功能,使得开发者能够通过桌面计算机或其他调试界面来观察MCU(微控制器)中的程序和数据,并控制MCU的运行。

ICE是一种仿真CPU核心的设备,它可以在不干扰运算器的正常运行情况下,实时地检测CPU的内部工作情况。ICE一般具有一个特殊的CPU,称为外合(bond-out)CPU,这种CPU的封装被打开,并且可以通过特殊的连接访问到CPU的内部信号

常见的ICE工具包括Atmel-ICE-PCBA AVR仿真器、ARM仿真器、ST-Link v2仿真调试下载器以及XDS510仿真器等。这些工具通常支持不同的开发环境和接口,如JTAG、SWD和SPI等。

然而,ICE也存在一些缺点。首先,它对硬件设备的要求比较高,通常需要在硬件稳定后才能进行应用软件的开发。其次,由于ICE会占用一定的系统资源,如内存和通信端口等,因此在一些严格的场合下可能不适合使用。此外,ICE的价格通常比较昂贵,这也在一定程度上限制了其普及。

在嵌入式开发中,ICE通常用于对MCU进行硬件仿真,与像PROTEUS这样的仿真软件进行软件仿真不同,ICE需要搭建好的电路和仿真器。通过ICE,开发者可以在没有实际硬件的情况下进行开发和调试,从而加速产品开发过程并降低开发成本。

4. ROM监视器(ROM Monitor)

  • ROM监视器是一个小程序,它驻留在嵌入系统的ROM中。通过串行的或网络的连接,它可以和运行在工作站上的调试软件通信。ROM监视器为开发者提供了一种从主机上控制和监视目标系统的手段。

5. 终端仿真工具

  • 如PuTTY、SecureCRT等,这些工具允许开发者通过串行端口、网络或其他接口与目标嵌入式系统进行通信。它们通常提供终端仿真功能,以便开发者可以输入命令并查看输出。

6. 总线抓取工具

  • 如Bus Hound等,这些工具可以捕获和分析嵌入式系统中的总线数据包。它们对于诊断总线相关的问题非常有用,如通信错误、数据冲突等。

7. 静态代码分析工具

  • 这些工具用于检查源代码中的潜在问题和错误,如内存泄漏、空指针引用等。它们可以帮助开发者在编译和测试之前识别并修复代码中的错误。

8. 单元测试工具

  • 这些工具用于对嵌入式系统中的单个模块或函数进行测试,以验证其功能和正确性。通过编写和执行单元测试,开发者可以确保代码的各个部分都按预期工作。

9. 示波器(Oscilloscope)

  • 虽然示波器主要用于电子工程领域,但在嵌入式系统设计中也扮演着重要角色。示波器用于观察信号波形,帮助开发者检测电路中的问题。

10. 调试探针

  • 调试探针是一种用于连接目标系统和调试工具的硬件设备。它们提供了从主机到目标系统的物理连接,并允许开发者通过调试器进行实时调试和监控。

11. 安全性测试工具

  • 对于需要处理敏感数据或执行关键任务的嵌入式系统,安全性测试工具至关重要。这些工具用于检测系统中的潜在安全漏洞,如密码破解、数据泄露等。

请注意,不同的嵌入式系统项目可能需要不同的调试工具集。因此,在选择调试工具时,请确保它们符合您的项目需求并适合您的开发环境。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【教学类-55-02】20240512图层顺序挑战(四格长条纸加黑色边框、4*4、7张 、43200张去掉非7色有23040张,去掉重复样式有几种?)

作品展示 背景需求: 之前的代码吗存在几个问题,最大的问题是不能生成“”长条黑边框”” 【教学类-55-01】20240511图层顺序挑战(四格长条纸)(4*4)和“手工纸自制参考图”-CSDN博客文章浏览阅读485次&…

2024第八季完美童模 【星光】品牌赛区 【直通】赛 完美收官

2024年5月1日,春风徐徐的【星光品牌赛区】热闹非凡,备受瞩目的第八季完美童模【星光品牌赛区】赛区【直通赛】在这一天正式拉开了帷幕。比赛现场,童模们身着华服,在舞台上演绎了“亚特兰蒂斯”的时尚主题赛。 参赛选手们身着带有海…

【优先级队列】Leetcode 最后一块石头的重量

题目讲解 1046. 最后一块石头的重量 算法讲解 根据题目的意思,为了寻找到本次数组中的最大的两个值,我们需要使用一个数据结构:堆,使用大堆,每一次出两个数据,这两个数据就是当前数组中的两个最大值&…

拉链表实现过程+案例

第一种 1.从ODS层获取增量数据(上一天新增和更新的数据) 2.拿着DWD原始拉链表数据 left join 增量数据 ,修改原始拉链中历史数据的结束时间 3.拿着left join 的结果集 union all 增量数据 4.把最新的拉链数据优先保存到DWD对应的临时表中 5.使用insertselect 方式把临时表中…

力扣75. 颜色分类

Problem: 75. 颜色分类 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 由于题目只提供0,1,2分别代表颜色红、白、蓝,并按此排序,那么我们可以遍历两次数组,第一次将0,全部放到数组前面一部分…

Python如何绘制直流电机开闭环特性曲线?matplotlib

import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [FangSong] # 指定默认字体 mpl.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题# 数据集1 n1 [1206, 1174, 1141, 1116, 1037, 986] Id1 [0.505, 0.55…

GEVernova推出GEV新能源平台,引领新能源未来

近日,全球领先的能源设备制造和服务公司 GE Vernova 宣布推出 GEV 新能源平台,这是一个将金融、科技和产业深度融合的全新投资平台。GEV 新能源平台旨在为用户提供一站式可持续新能源投资解决方案,助力全球新能源转型和可持续发展。 新能源已…

车载电子电器架构 —— UDS Service 11介绍

车载电子电器架构 —— UDS Service 11介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

Dev-C++的下载和安装教程(超详细图文,小白入门)

Dev-C(或者叫做Dev-Cpp)是Windows环境下的一个轻量级C/C集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。 Dev-C集合了功能强大的源码编辑器、MingW64/TDM-GCC编译器、GDB调试器和AStyle格式整理器等…

Linux 第二十九章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

k8s job

ReplicaSet 和 DaemonSet 会持续运行任务,永远达不到完成态。但在一个可完成的任务中,其进程终止后,不应该再重新启动。 Job 允许你运行一种 pod,该 pod 在内部进程成功结束时,不重启容器,一旦任务完成&…

【React】redux开发者工具redux-devtools-extension的安装和使用

前言 redux-devtools-extension: 是一个用于Redux的开发者工具扩展。适合用于需要调试和监控Redux应用的状态管理。特点是可以提供实时的状态查看、行动日志和错误检测等 安装 chrome安装redux-devtools-extension 项目中安装并引入redux-devtools-extension yarn add re…

【opencv】图像处理(二)

前文指引 一、使用到的图片 一、梯度计算 原始图片 img cv2.imread(circle.jpg)plt.imshow(img) plt.show()sobel算子 使用两个核 Gx [[-1,0,1], [-2,0,2], [-1,0,1]] Gy [[-1,-2,-1], [0,0,0], [1,2,1]] dst cv2.Sobel(src, ddepth, dx, dy, ksize) ddepth 深度 -1d…

爆款小红书免费流量体系课程(两周变现),小红书电商教程

课程下载:小红书电商教程-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载:关注我。 课程内容: 10-爆款标题(三段式取标题).mp3 11-爆款封面怎么作图.mp3 12-爆款内容的模板(三段式模板).mp3 13-小红书流量推荐背后的秘密(四大流…

【数据库原理及应用】期末复习汇总高校期末真题试卷11

试卷 一、填空题(每题 1 分,共10 分)    1. 数据库管理技术的发展经历了三个阶段:人工管理阶段,文件系统阶段和__________阶段。 2.实体完整性约束规定__________的取值不能为空值。 3. 计算机系统有三类安全性问题,即_____…

ARM据称将开发AI芯片,计划在2025年秋季开始量产

KlipC报道:软银集团下的芯片设计公司ARM将成立一个AI芯片部门,目标在2025年推出首批产品。 ARM是日本软银旗下的公司,成立34年,一直在科技行业中扮演着不可或缺的角色。此次,ARM将承担初期开发成本,预计将…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

Ubuntu22.04怎么安装cuda11.3

环境: WSL2 Ubuntu22.04 问题描述: Ubuntu22.04怎么安装cuda11.3 之前是11.5 解决方案: 在Ubuntu 22.04上安装CUDA 11.3需要一些步骤,因为CUDA 11.3不是为Ubuntu 22.04官方支持的版本。但是,您仍然可以通过以下步…

机器学习中表格数据预处理

目录 缺失值处理 在dataframe中进行填补 使用模型填补缺失值(随机森林) 异常值 数据无量纲化 中心化 数据归一化 数据标准化 缩放处理 转换数据类型 文本—>数值preprocessing.LabelEncoder:标签专用,能够将分类转换为…

使用Docker+Jar方式部署微服务工程(前后端分离)看着一篇就够了

本篇教程的使用到的技术有springboot、springcloud、Nacos、Docker、Nginx部署前后端分离访问的微服务。 部署一下Nacos 首先我们需要在服务器中(或者本地部署启动一下Nacos),这里我采用服务器的方式进行部署,这里有一点不一样的…