常用的ARM调试器介绍(系统的学习调试器看这一篇就够了)
目录
2. ST-Link(STMicroelectronics)
2. IAR Embedded Workbench Debugger
(2) JTAG(Joint Test Action Group)
前言:
现在的硬件调试器集成了很多功能,在学习嵌入式应用方面时发现有时候实现某个功能很容易,实际上其中就有调试器的功劳。
比如现在的开发板要实现串口的发送和接收就非常容易,主要是因为调试器中有虚拟串口,不再需要串口硬件模块了。
一.ARM调试器整体介绍:
a)ARM调试器概念:
ARM 调试器是用于开发和调试基于 ARM 架构的嵌入式系统的工具。它通过硬件和软件的结合,帮助开发者控制目标设备的运行状态、查看和修改寄存器/内存、设置断点、单步执行代码等
b)ARM调试器的大致组成
首先是ARM或者其它厂商规定的协议,然后由这些协议进行设计硬件调试器,但光有硬件调试器没有输入输出的媒介也不行,由此在上位机运行的软件调试工具就诞生了。
综上ARM调试器主要是由硬件调试器和软件调试工具组成,当然其中用到的协议也不能小看。下面会进一步介绍硬件调试器、软件调试工具、协议。
c)硬件调试器的分类
1. J-Link(SEGGER)
-
特点:
-
高性能调试器,支持全系列 ARM Cortex 芯片。
-
支持 SWD/JTAG 接口,提供 RTT(实时传输)和 ETM/ITM 跟踪功能。
-
兼容 Keil、IAR、GDB 等多种软件工具。
-
-
适用场景:企业级开发、复杂调试需求。
2. ST-Link(STMicroelectronics)
-
特点:
-
专为 STM32 设计,支持 SWD/JTAG 接口。
-
集成虚拟串口(VCP),支持拖放烧录。
-
低成本,常见于 STM32 开发板(如 Nucleo 板)。
-
-
适用场景:STM32 开发首选,适合学生和爱好者。
3. ULINK(Keil)
-
特点:
-
Keil 官方调试器,深度集成 Keil MDK 开发环境。
-
支持 SWD/JTAG 接口,提供高性能调试和 Flash 编程。
-
-
适用场景:Keil MDK 用户优先选择。
4. DAPLink/CMSIS-DAP
-
特点:
-
开源调试器,支持 SWD/JTAG 接口。
-
集成虚拟串口和拖放烧录功能。
-
硬件成本低(基于 STM32F4/LPC11U35 等 MCU)。
-
-
适用场景:开源项目、教育用途(如树莓派 Pico 调试)。
d)软件调试工具的分类
1. Keil µVision Debugger
-
特点:
-
Keil MDK 集成开发环境的一部分。
-
支持断点、单步执行、寄存器/内存查看等功能。
-
兼容 ULINK、J-Link、ST-Link 等多种硬件调试器。
-
-
适用场景:STM32、NXP LPC 等 Cortex-M 芯片开发。
2. IAR Embedded Workbench Debugger
-
特点:
-
IAR 开发环境内置调试工具。
-
支持高级调试功能(如代码覆盖率分析、性能分析)。
-
兼容 J-Link、ST-Link 等硬件调试器。
-
-
适用场景:企业级开发,尤其是对调试功能要求较高的项目。
3.VS Code + Cortex-Debug
(1) Visual Studio Code(VS Code)
-
特点:
-
微软开发的免费、开源的代码编辑器。
-
支持多种编程语言和插件扩展。
-
跨平台(Windows、Linux、macOS)。
-
-
适用场景:嵌入式开发、Web 开发、脚本编写等。
(2) Cortex-Debug 插件
-
特点:
-
专为 ARM Cortex-M 微控制器设计的调试插件。
-
支持多种调试器(如 J-Link、ST-Link、DAPLink、OpenOCD、PyOCD)。
-
提供断点、单步执行、寄存器查看、内存查看等调试功能。
-
-
适用场景:ARM Cortex-M 嵌入式开发。
e)协议的分类
(1) SWD(Serial Wire Debug)
-
特点:
-
2 线制接口(SWDIO + SWCLK),占用引脚少。
-
支持调试控制(如断点、寄存器访问)和 Flash 编程。
-
适用于资源受限的 Cortex-M 系列芯片。
-
-
支持的调试器:
-
DAPLink
-
ST-Link
-
J-Link
-
ULINK
-
(2) JTAG(Joint Test Action Group)
-
特点:
-
多线制接口(TDI、TDO、TCK、TMS 等),兼容性更广。
-
支持复杂调试功能(如边界扫描)。
-
适用于 Cortex-A/R/M 系列芯片。
-
-
支持的调试器:
-
J-Link
-
ULINK
-
ST-Link
-
(3) CMSIS-DAP
-
特点:
-
ARM 开源的调试协议,基于 USB HID 类实现。
-
支持 SWD 和 JTAG 接口。
-
主要用于低成本调试器(如 DAPLink)。
-
-
支持的调试器:
-
DAPLink
-
部分开源调试器(如 Black Magic Probe)
-
(4) 厂商专用协议
-
特点:
-
针对特定厂商的芯片优化,提供额外功能(如高速 Flash 编程)。
-
通常不开放协议细节。
-
-
支持的调试器:
-
ST-Link(STMicroelectronics)
-
J-Link(SEGGER)
-
TI XDS(Texas Instruments)
-
二.ARM调试器的功能
a) ARM 调试器的主要调试功能包括:
-
程序控制:
1.启动、暂停、复位目标设备。
2.单步执行、跳过函数、运行到指定位置。
2.断点设置:
1.在代码中设置断点,使程序在特定位置暂停。
2.支持硬件断点和软件断点。
b)ARM调试器的其它功能
ARM 调试器 不仅仅是用于调试代码的工具,它还提供了许多其他功能,帮助开发者在嵌入式系统开发中更高效地完成任务。以下是 ARM 调试器除了调试功能之外的其他主要功能:
1. Flash 编程
-
功能描述:
-
将编译后的二进制文件(如
.hex、.bin、.elf)烧录到目标设备的 Flash 存储器中。 -
支持擦除、编程、校验等操作。
-
-
应用场景:
-
固件更新。
-
批量生产中的设备编程。
-
2. 内存访问
-
功能描述:
-
查看和修改目标设备的内存数据(如 RAM、Flash、外设寄存器)。
-
支持批量读取和写入。
-
-
应用场景:
-
调试时查看变量值。
-
修改外设寄存器以测试硬件功能。
-
3. 外设寄存器查看与修改
-
功能描述:
-
通过 SVD(System View Description)文件查看和修改外设寄存器。
-
提供外设寄存器的位域描述和实时更新。
-
-
应用场景:
-
调试外设驱动(如 GPIO、UART、SPI)。
-
验证硬件配置。
-
4. 实时传输(RTT)
-
功能描述:
-
通过调试接口实时传输数据(如日志、变量值)。
-
无需额外硬件(如串口)。
-
-
应用场景:
-
实时监控程序运行状态。
-
输出调试日志。
-
5. 跟踪功能
-
功能描述:
-
通过 SWO(Serial Wire Output)或 ETM(Embedded Trace Macrocell)接口捕获程序执行轨迹。
-
支持指令跟踪(ITM)和数据跟踪(ETM)。
-
-
应用场景:
-
分析程序执行流程。
-
诊断性能瓶颈。
-
6. 性能分析
-
功能描述:
-
统计代码执行时间、函数调用次数、代码覆盖率等。
-
提供性能分析报告。
-
-
应用场景:
-
优化代码性能。
-
验证代码覆盖率。
-
7. 脚本化调试
-
功能描述:
-
支持通过脚本自动化调试任务(如批量测试、自动化烧录)。
-
提供脚本接口(如 Python、TCL)。
-
-
应用场景:
-
自动化测试。
-
批量生产中的设备编程。
-
8. 多核调试
-
功能描述:
-
支持同时调试多个 CPU 核心(如 Cortex-A 系列的多核处理器)。
-
提供核心间的同步和通信调试功能。
-
-
应用场景:
-
调试多核系统(如 SoC)。
-
分析核心间的任务分配和通信。
-
9. 虚拟串口(VCP)
-
功能描述:
-
通过调试器提供虚拟串口功能,用于串口通信。
-
无需额外硬件(如 USB 转串口模块)。
-
-
应用场景:
-
输出调试日志。
-
与目标设备进行串口通信。
-
10. 固件更新
-
功能描述:
-
支持调试器固件的更新。
-
提供固件更新工具和接口。
-
-
应用场景:
-
修复调试器固件中的问题。
-
添加新功能或支持新芯片。
-
11. 边界扫描(Boundary Scan)
-
功能描述:
-
通过 JTAG 接口测试 PCB 上的连接和元件。
-
支持检测开路、短路和元件故障。
-
-
应用场景:
-
PCB 生产和测试。
-
硬件故障诊断。
-
12. 电源管理
-
功能描述:
-
监控目标设备的电源状态(如电压、电流)。
-
支持电源控制(如复位、断电)。
-
-
应用场景:
-
调试低功耗应用。
-
验证电源管理功能。
-
13. 数据可视化
-
功能描述:
-
将调试数据(如变量值、寄存器状态)以图形化方式展示。
-
支持实时更新和历史数据查看。
-
-
应用场景:
-
分析传感器数据。
-
监控系统状态。
-
14. 调试器配置与管理
-
功能描述:
-
配置调试器的参数(如时钟频率、接口类型)。
-
管理调试器的连接和目标设备。
-
-
应用场景:
-
适配不同的目标设备。
-
优化调试性能。
-
总结
ARM 调试器不仅提供了强大的调试功能,还支持 Flash 编程、虚拟串口、内存访问、外设寄存器查看、实时传输、跟踪功能、性能分析 等多种功能。这些功能帮助开发者在嵌入式系统开发中更高效地完成任务,从硬件验证到软件优化,覆盖了开发的各个环节。选择调试器时,可以根据项目需求选择支持相应功能的工具。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)