请阅读【嵌入式开发学习必备专栏】
文章目录
-
- JTAG Transport
-
- 使用场景
- 配置示例
- JTAG Speed
-
- 配置示例
-
- 初始化过程中的速度调整
- 自适应时钟
- 选择合适的速度
- Low Level JTAG Commands
-
- drscan
- flush_count
-
- irscan
- pathmove
- runtest
- verify_ircapture
- verify_jtag
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
。
- 对于高层适配器接口(HLA),使用
- 使用
使用场景
- 调试:
- 通过 JTAG,开发者可以实现对嵌入式设备的调试,包括设置断点、单步执行、读取/写入寄存器和内存等操作。
- 边界扫描测试:
- 利用 JTAG 的边界扫描能力,工程师可以验证电路板的连接性,无需在没有实际引出点的情况下进行物理探测。
- 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)为单