在 OpenOCD 中使用 MIPS EJTAG 功能

逆向工程 硬件 标签 米普
2021-06-12 09:05:35

我正在尝试使用BusBlasterOpenOCD功能来调试 MIPS 目标。但是,我的目标 MIPS 芯片似乎没有在示例目标芯片配置列表中定义 - 在我的 OpenOCD 目录中,版本 0.7.0,我正在查看文件夹。tcl/target

  1. OpenOCD 中的 MIPS EJTAG 功能有多成熟?我在变更日志中看到 MIPS EJTAG 支持已得到改进,但我无法在项目中找到有关此的详细信息,而且我还不熟悉 OpenOCD 或 EJTAG,无法了解src/target/mips_ejtag文件中可能缺少的内容。
  2. 设置 OpenOCD 以在新 MIPS EJTAG 目标上进行 JTAG 调试涉及哪些配置步骤?
1个回答

我将尝试回答我自己的问题,将来可能会使用有关 OpenOCD 的其他详细信息更新答案。

有些事情我不了解 Bus Blaster,有些事情我不了解 OpenOCD,在这两种情况下,更好地阅读文档都会有所帮助。我最终在 Ubuntu 下从源代码编译了 OpenOCD。

OpenOCD 网站上提供了OpenOCD的用户文档,此处提供了创建配置文件的说明配置文件分为三种类型:

  • 界面这是描述 OpenOCD 正在连接的设备的配置文件 - 在我的例子中是 Bus Blaster。配置文件busblaster.cfg位于openocd-0.7.0/tcl/interface/文件夹中。此外,有人在BusBlaster OpenOCD 指南上在线描述了配置文件OpenOCD 0.5.0 及更早版本不包含 Bus Blaster 的配置文件。
  • 这是一个配置文件,它描述了特定于您要连接的 PCB 的设置 - 例如,有关外部闪存的详细信息在此文件中。
  • 目标这些是关于目标处理器的详细信息,在我的例子中是 MIPS32 处理器。MIPS32 是 MIPS M4K 的变体。OpenOCD 支持这两者,并且文档说 MIPS32 是 MIPS M4K 唯一受支持的变体。如果您允许 OpenOCD 自动探测(如果没有指定目标,它会这样做),OpenOCD 将生成如下所示的行,描述可以创建的新 TAP。

Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x???????? ..." Warn : AUTO auto0.tap - use "... -irlen ?"

您可以使用自动探测的 TAP 行在openocd-0.7.0/tcl/target. 除了这些行之外,添加一行声明新目标(我从另一个目标配置中借用了这一点),指定在创建 TAP 时它是哪种架构和变体。