Bootstrap

【ARM Coresight OpenOCD 系列 6.1 -- JTAG Commands】


请阅读【嵌入式开发学习必备专栏】


JTAG Transport

OpenOCD 是一个强大的开源工具,支持多种调试和编程接口,JTAG(Joint Test Action Group)作为其最初支持的传输协议之一,广泛用于嵌入式开发中。jtag transport 相关命令在 OpenOCD 中用于选择和配置 JTAG 作为调试和编程的传输方式。

  • 基本功能:

    • JTAG 是一种用于测试电路板连接和芯片内部逻辑的标准协议。它通过一个或多个测试访问端口(TAP,Test Access Points)组成的链与设备交互。
    • 支持调试和边界扫描测试,以及在调试支持基础上的 Flash 编程。
  • 命令选择:

    • 使用 transport select jtag 来选择 JTAG 传输方式。
    • 某些适配器可能需要特定的命令:
      • 对于高层适配器接口(HLA),使用 transport select hla_jtag
      • 对于 ST-Link DAP 接口,使用 transport select dapdirect_jtag

使用场景

  1. 调试:
    • 通过 JTAG,开发者可以实现对嵌入式设备的调试,包括设置断点、单步执行、读取/写入寄存器和内存等操作。
  2. 边界扫描测试:
    • 利用 JTAG 的边界扫描能力,工程师可以验证电路板的连接性,无需在没有实际引出点的情况下进行物理探测。
  3. Flash 编程:
    • 基于 JTAG 的调试支持,OpenOCD 提供了 Flash 编程的能力,可以方便地将程序烧录到目标设备的 Flash 存储器中。

配置示例

以下是一个基本的 OpenOCD 配置示例,展示如何选择 JTAG 作为传输方式:

# 选择调试器接口类型
interface jlink
# 选择 JTAG 传输
transport select jtag
# 设置目标设备
set CHIPNAME my_target
jtag newtap $CHIPNAME cpu -irlen 4
# 创建目标
target create $CHIPNAME.cpu cortex_m -chain-position $CHIPNAME.cpu
# 初始化
init
reset init

JTAG Speed

在 OpenOCD 中,jtag speed 是一个关键的配置选项,用于设置 JTAG 调试过程中的时钟速度。这一设置对于确保调试过程的稳定性和性能至关重要。

  • 基本功能:
    • jtag speed 命令设置 JTAG 接口的时钟速度,以千赫兹(kHz)为单
;