当前位置: 首页 > 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)为单

相关文章:

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

请阅读【嵌入式开发学习必备专栏】 文章目录 JTAG Transport使用场景配置示例JTAG Speed配置示例初始化过程中的速度调整自适应时钟选择合适的速度Low Level JTAG Commandsdrscanflush_countirscanpathmoveruntestverify_ircaptureverify_jtagJTAG Transport OpenOCD 是一个强…...

开源许可协议

何同学推动了开源协议的认识,功不可没,第一次对开源有了清晰的认识,最宽松的MIT开源协议 源自OSC开源社区:何同学使用开源软件“翻车”,都别吵了!扯什么违反MIT...

241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]

CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…...

跟千里马学框架 遇到的坑

在编译 aosp 的 所有的东西都是和他一样的, 但是出现了这个问题 emulator: command not found 明明所有的都是一样的但是出现了这个问题 , 啥情况 。 首先你的 ubuntu 要开启虚拟机 。 这个自己百度去 重新进行这些步骤 1、 . build/envsetup.s…...

Swift从0开始学习 协议和扩展 day5

协议:定义行为的契约 协议类似于其他语言中的接口。它们定义了一组方法、属性或其他需求,供结构体、类、枚举等类型去遵循和实现。协议并不实现这些需求,而是作为一种约定或合同,确保实现协议的类型会遵循特定的行为。 协议的定义和遵循 在 Swift 中,使用 protocol 关键…...

javaScript交互案例

1、模态框(弹出框) (1)、需求: 点击弹出层,会弹出模态框,并且显示灰色半透明的遮挡层点击关闭按钮,可以关闭模态框,并且同时关闭半透明遮挡层鼠标放在模态框最上面一行,可以按住鼠…...

【自动驾驶】数据集合集!

本文将为您介绍经典、热门的数据集,希望对您在选择适合的数据集时有所帮助。 1 Automatic-driving-Test 更新时间:2024-07-26 访问地址: GitHub 描述: 该模型使用 ultralytics yolo v8 和 deepsort 方法来检测车道与车轮的碰撞并跟踪车辆。…...

el-table表头前几列固定,后面几列根据接口返回的值不同展示不同

在使用 Element UI 的 el-table 组件时,如果想要实现表头的前几列固定,而后面的列根据接口返回的数据动态展示,可以通过以下步骤来实现: 1. 固定表头前几列 在 el-table-column 中使用 fixed 属性来固定表头的前几列。例如&…...

【Redis】redis缓存击穿,缓存雪崩,缓存穿透

一、什么是缓存? 缓存就是与数据交互中的缓冲区,它一般存储在内存中且读写效率高,提高响应时间提高并发性能,如果访问数据的话可以先访问缓存,避免数据查询直接操作数据库,造成后端压力过大。 但是可能会面…...

HBase Flink操作

Apache Flink 是一个开源的分布式流处理框架,能够高效地处理和分析实时数据流以及批数据。HBase 是一个分布式、面向列的开源数据库,是 Hadoop 项目的子项目,适合非结构化数据结构的存储,并提供实时读写能力。以下是关于 Flink 对…...

C# .Net Core通过StreamLoad向Doris写入CSV数据

以下代码可以只关注StreamLoad具体实现。 1.创建StreamLoad返回值Model public class StreamLoadResponse {public long TxnId { get; set; }public string Label { get; set; }public string Comment { get; set; }public string TwoPhaseCommit { get; set; }public string…...

React-自定义Hook与逻辑共享

#题引:我认为跟着官方文档学习不会走歪路 在 React 中,自定义 Hook 是一种复用逻辑的方式。自定义 Hook 是一个 JavaScript 函数,名称以 use 开头,可以调用其他的 Hook, 可以返回任意值。 创建自定义Hook 假设你正在开发一款重…...

蓝桥杯每日真题 - 第17天

题目:(最大数字) 题目描述(13届 C&C B组D题) 题目分析: 操作规则: 1号操作:将数字加1(如果该数字为9,变为0)。 2号操作:将数字…...

游戏开发实现简易实用的ui框架

游戏开发实现简易实用的ui框架 本文使用cocos引擎实现,框架代码本质上不依赖某一个引擎,稍作修改也能作为其他引擎的实现 1.1 UI管理框架的核心需求剖析 分层与类型管理 对不同类型UI需要进行分层管理。不同层级的UI需要有不同的父节点,保证渲…...

vue3的attr透传属性详解和使用法方式。以及在css样式的伪元素中实现

在 Vue 3 和 TypeScript 中,属性透传(attr pass-through)是指将组件的属性传递到其根元素或某个子元素中。这个概念在开发可复用的组件时非常有用,尤其是当你希望将父组件的属性动态地传递给子组件的某个 DOM 元素时。 在 Vue 3 …...

【仿真建模-MESA】框架简介

1. 简介 Mesa是一个基于Python3的开源项目,旨在提供一个现代、易用的多智能体仿真环境。它借鉴了NetLogo、Repast和MASON等多智能体仿真框架的优点,并结合Python语言的强大功能,为用户提供了丰富的建模和仿真工具。 《官方文档》 2. 核心组件…...

Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)

目录 Linux软件包管理器 - yum Linux下安装软件包的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 批量化注释 vim的简单配置 Linux编译器 - gcc/g gcc/g的作用 gcc/g语…...

VSCode 间距太小

setting->font family 使用:Consolas, Courier New, monospace 字体...

【K8S系列】imagePullSecrets配置正确,但docker pull仍然失败,进一步排查详细步骤

如果 imagePullSecrets 配置正确,但在执行 docker pull 命令时仍然失败,可能存在以下几种原因。以下是详细的排查步骤和解决方案。 1. 检查 Docker 登录凭证 确保你使用的是与 imagePullSecrets 中相同的凭证进行 Docker 登录: 1.1 直接登录 在命令行中,执行以下命令: …...

【ARM Coresight OpenOCD 系列 5.1 -- OpenOCD 无法识别CPUID 问题: xxx is unrecognized】

请阅读【嵌入式开发学习必备专栏】 文章目录 OpenOCD 无法识别CPUID 问题ARM CPUIDCPUID 特性CPUID 寄存器字段OpenOCD 无法识别CPUID 问题 在使用OpenOCD 进行CPU debug的过程中有时会报出 无法识别CPUID的问题,本文将会介绍如何解决这个问题。首先我们来学习下什么是CPUID,…...

如何快速掌握Ender-3 3D打印机:新手必看的完整配置指南

如何快速掌握Ender-3 3D打印机:新手必看的完整配置指南 【免费下载链接】Ender-3 The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget. 项目地址: https://gitcode.com/gh_mirrors/en/Ender-3 Ender-3 3D打印机是一…...

告别应用层延时!在迅为RK3568开发板上,将RS485收发切换彻底交给Linux内核驱动

告别应用层延时!在迅为RK3568开发板上将RS485收发切换彻底交给Linux内核驱动 工业自动化领域对通信实时性的要求近乎苛刻,当RS485总线上挂载的多个设备响应时间参差不齐时,应用层手动控制的收发切换就像用机械表校准原子钟——看似可行实则漏…...

STM32F103C6T6模拟SPI驱动ADS1220:从硬件连接到代码调试的完整避坑指南

STM32F103C6T6模拟SPI驱动ADS1220:从硬件连接到代码调试的完整避坑指南 在嵌入式开发领域,高精度数据采集一直是工程师们面临的挑战之一。TI公司的ADS1220作为一款24位Δ-Σ模数转换器,以其出色的噪声性能和灵活的配置选项,成为许…...

科研创作提质增效|依托 PaperXie 智能写作,高效完成期刊论文全流程创作

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 一、引言 学术研究领域中,期刊论文是展现科研成果、完成学业考核、学术成果发表的核心载体。…...

VHS Pro深度解析:Unity中模拟录像带失真的物理建模与工业应用

1. 为什么今天还有人执着于“坏掉的画质”?——VHS Pro 不是怀旧装饰,而是视觉叙事新工具你有没有在剪辑软件里拖动一个“胶片颗粒”滑块,看着画面突然蒙上一层灰蒙蒙的噪点,然后心里咯噔一下:这玩意儿真能用&#xff…...

5分钟搞定RK3588开发板Ubuntu系统:从零到完美的终极配置指南

5分钟搞定RK3588开发板Ubuntu系统:从零到完美的终极配置指南 【免费下载链接】ubuntu-rockchip Ubuntu for Rockchip RK35XX Devices 项目地址: https://gitcode.com/gh_mirrors/ub/ubuntu-rockchip 还在为RK3588开发板的系统安装头疼吗?别担心&a…...

如何用My-TODOs打造高效跨平台待办清单:免费开源桌面应用终极指南

如何用My-TODOs打造高效跨平台待办清单:免费开源桌面应用终极指南 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 在现代快节奏的工作生活中,高效…...

TrollInstallerX终极指南:iOS 14.0-16.6.1一键安装TrollStore的完整教程

TrollInstallerX终极指南:iOS 14.0-16.6.1一键安装TrollStore的完整教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否厌倦了iOS系统的种种限制&…...

AI Agent 工具调用系统设计:让大模型掌控世界

AI Agent 工具调用系统设计:让大模型掌控世界 前言 工具调用(Tool Use / Function Calling)是 AI Agent 实现复杂任务的关键能力。通过工具调用,大模型可以与外部世界交互,执行计算、查询数据库、调用 API,…...

如何用Seraphine智能游戏助手5分钟提升排位赛胜率:免费英雄联盟战绩查询工具完整指南

如何用Seraphine智能游戏助手5分钟提升排位赛胜率:免费英雄联盟战绩查询工具完整指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 还在为排位赛的BP阶段手忙脚乱吗?每次选英雄时都担…...