当前位置: 首页 > news >正文

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


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


文章目录

    • 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

使用场景

  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)为单
http://www.lryc.cn/news/489278.html

相关文章:

  • 开源许可协议
  • 241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]
  • 跟千里马学框架 遇到的坑
  • Swift从0开始学习 协议和扩展 day5
  • javaScript交互案例
  • 【自动驾驶】数据集合集!
  • el-table表头前几列固定,后面几列根据接口返回的值不同展示不同
  • 【Redis】redis缓存击穿,缓存雪崩,缓存穿透
  • HBase Flink操作
  • C# .Net Core通过StreamLoad向Doris写入CSV数据
  • React-自定义Hook与逻辑共享
  • 蓝桥杯每日真题 - 第17天
  • 游戏开发实现简易实用的ui框架
  • vue3的attr透传属性详解和使用法方式。以及在css样式的伪元素中实现
  • 【仿真建模-MESA】框架简介
  • Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
  • VSCode 间距太小
  • 【K8S系列】imagePullSecrets配置正确,但docker pull仍然失败,进一步排查详细步骤
  • 【ARM Coresight OpenOCD 系列 5.1 -- OpenOCD 无法识别CPUID 问题: xxx is unrecognized】
  • 如何实现点击目录跳转到指定位置?【vue】
  • SQL 通配符
  • ubuntu显示管理器_显示导航栏
  • 黑芝麻嵌入式面试题及参考答案
  • 使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
  • 系统性能优化方法论详解:从理解系统到验证迭代
  • 使用Tengine 对负载均衡进行状态检查(day028)
  • 网站推广实战案例:杭州翔胜科技有限公司如何为中小企业打开市场大门
  • 视频修复技术和实时在线处理
  • 文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
  • 如何使用本地大模型做数据分析