【ARM Coresight OpenOCD 系列 2 -- OpenOCD 脚本语法详细介绍】

这篇具有很好参考价值的文章主要介绍了【ARM Coresight OpenOCD 系列 2 -- OpenOCD 脚本语法详细介绍】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】

1.1 swj-dp.tcl 介绍

介绍之前我们先了解下什么是 SWJ-DP, SWJ-DP (Serial Wire JTAG Debug Port) 是 ARM CoreSight 架构中的一个重要部分,它提供了一个调试端口,允许调试工具通过 JTAG 或 SWD (Serial Wire Debug) 接口访问目标设备。

SWJ-DP 有以下主要特性:

  • 可以通过 JTAG 或 SWD 接口进行访问,可以在这两种接口之间动态切换。这使得 SWJ-DP 可以在支持传统 JTAG 调试以及更简单、更省电的 SWD 调试之间进行选择。
  • 集成了 DP (Debug Port) 和 AP (Access Port) 的功能。DP 用于管理调试会话和处理调试请求,AP 用于访问目标系统的内存和寄存器。这使得 SWJ-DP 可以提供对目标系统的全面调试控制。
  • 支持多种类型的 AP,包括 MEM-AP(用于内存访问)和 JTAG-AP(用于 JTAG 链访问)等等。这使得 SWJ-DP 可以访问目标系统中的各种不同类型的资源。

在 OpenOCD 中,可以使用 jtag newtap 命令创建一个 SWJ-DP TAP:

jtag newtap <chip_name> <tap_name> -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id <id>

然后,可以使用 dap create 命令创建一个 SWJ-DP DAP:

dap create <dap_name> -chain-position <tap_name>

在这些命令中,<chip_name><tap_name> 是你自己选择的名称,<id> 是 SWJ-DP 的 ID 码,通常可以从目标设备的数据手册中找到。

1.1.1 source [find target/swj-dp.tcl]

source and find commands,命令格式:

source [find FILENAME]

使用的规则:

  • find 命令和参数FILENAME是放在[]中,命令返回的是该文件的完整路径(文件名不要用‘#’,‘#’是TCL的关键字)
  • source 命令使用find到的文件,并以把这个文件作为脚本执行。

1.1.2 调试传输协议选择 transport selec

OpenOCD 的 transport select 命令用于选择一个调试传输协议。在OpenOCD中,"transport"指的是用于连接调试器和目标设备进行调试会话的协议。

transport select 的一般格式如下:

transport select <protocol>

其中,<protocol> 是你希望使用的调试传输协议。OpenOCD 支持多种不同的协议,包括 JTAGSWD (Serial Wire Debug) 和 cJTAG (Compact JTAG)。你应该根据你的调试硬件和目标设备选择合适的协议。

例如,以下命令将选择 SWD 协议:

transport select swd

你应该在指定任何目标配置(如 target create 或 jtag newtap)之前执行 transport select 命令。如果不指定 transport select 命令,OpenOCD 将使用默认的协议,这通常是 JTAG。

在文件 tcl/target/swj-dp.tcl 可以看到 它的使用方法:

if [catch {
   transport select}] {
   
  echo "Error: unable to select a session transport. Can't continue."
  shutdown
}

这句是 tcl 命令,不是 OpenOCD 的命令。

catch是一个错误捕捉器。有 1 到 2 个参数:

  • 第一个参数是“要执行的代码”
  • 第二个(可选)是错误消息的放置位置。

CATCH 成功时返回 0,失败时返回 1

1.1.3 newtap 命令介绍

这段命令的含义是判断文章来源地址https://www.toymoban.com/news/detail-827966.html

到了这里,关于【ARM Coresight OpenOCD 系列 2 -- OpenOCD 脚本语法详细介绍】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM Coresight 系列文章 3 -- DAP(Debug Access Port) 使用详细介绍】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】

    2024年02月03日
    浏览(27)
  • gdb openocd jlink arm-a9调试

    连接关系是这样的:gdb — openocd —(这里需要 两个xx.cfg配置文件 ) jlink — arm-a9板子 具体流程是这样的: 给jlink(硬件调试器)安装驱动,用USB Driver Tool这个软件,原因:openocd操控jlink只能通过libusb-winusb这个驱动,而ozone等调试端软件却只能通过原本的驱动,而USB Driver T

    2024年02月10日
    浏览(26)
  • RISC-V/ARM mcu OpenOCD 调试架构解析

    最近有使用到risc-v的单片机,所以了解了下risc-v单片机的编译与调试环境的搭建,面试时问到risc-v的调试可参看以下内容。 risc-v根据官方的推荐,调试器服务是选择OpenOCD,DopenOCD(开放片上调试器)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫

    2024年04月28日
    浏览(23)
  • 用bash脚本实现openocd一次性烧录

    有的时候eide扩展烧录莫名奇妙就会失灵,弹出\\\"upload busy\\\"的错误,网上也查不到是怎么回事,只好手动打指令,奈何openocd烧录指令又太过麻烦,于是多方查找整了个适合自己的脚本供自己实验,这里把脚本分享出来,方便自己在公司的时候就能在网上找到,也方便各位开发,

    2024年02月07日
    浏览(28)
  • 【ARM Coresight 系列文章 2 - ARM Coresight 介绍】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】

    2024年02月12日
    浏览(27)
  • HUAWEI 擎云L420 折腾记 (搭建arm gcc、openocd 雅特力 MCU开发环境)

    心血来潮,能不能在纯国产的笔记本、系统上进行开发, 划拉了一下市面上能买到的设备,也就华为擎云L410 、L420 还能买得起,用的上,因此小黄鱼2xxx 买了一部99新的擎云L420 开始尝试是否能搭建起来工作环境。 wq退出保存 之后 java -verison java 环境ok 安装十分顺利,默认版

    2024年02月17日
    浏览(34)
  • 【ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用】

    上篇文章:ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用 下篇文章:ARM Coresight 系列文章 10.2 - ARM Coresight STM Trace packets STM 支持两种类型的软件的数据,一种是 guaranteed的,另一种是 invariant 的, 对于 guaranteed 类型的数据传输,当STM 无法接收 AXI总线发过来的数据时,会通

    2024年02月16日
    浏览(29)
  • 搭建 Makefile+OpenOCD+CMSIS-DAP+Vscode arm-none-eabi-gcc 工程模板

    Arm-none-eabi-gcc + Makefile+OpenOCD+CMSIS-DAP+Vscode工程模板 一、本次环境搭建所用的软硬件 1)Windows or Linux (本文以Windows为主) 2)JLink、Daplink、Wch-Link烧录器 3)GNU Arm Embedded Toolchain交叉编译器 4)Mingw-w64 GCC for Windows 64 5)Debug 调试工具 openocd 6)Visual Studio Code 二、软件安装配置 GNU Arm

    2024年02月03日
    浏览(34)
  • 【ARM Coresight 系列文章 10.3 - ARM Coresight STM 寄存器介绍 及STM DMA 传输介绍】

    上篇文章:ARM Coresight 系列文章 10.2 - ARM Coresight STM Trace packets STM 的寄存器主要可以分为以下几类: STM DMA 相关的; STM HW Trigger 相关的; 系统控制及状态寄存器; 只读寄存器。 STM DMA 相关的寄存器

    2024年02月15日
    浏览(27)
  • 【ARM 嵌入式 编译系列 7.3 -- GCC 链接脚本中 NOLOAD 和 GROUP 的详细介绍】

    请阅读 【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 在使用 arm-none-eabi-gcc 工具链中的链接器脚本时,链接脚本使用链接器命令语言来描述如何生成最终的可执行文件。其中, noload 和 group 是两个用于控制链接过程的。 NOLOAD NOLOAD 用于指示链接器在输

    2024年01月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包