【问题标题】:How to start and close Trace32 instances from t32start command line interface?如何从 t32start 命令行界面启动和关闭 Trace32 实例?
【发布时间】:2018-01-19 19:06:28
【问题描述】:

我发现 Lauterbach Trace32 允许从命令行启动 Trace32 实例。

我有一个 ts2 文件。我正在尝试使用 t32start.exe 来启动和关闭 Trace32 实例。我大致尝试了以下方法:

t32start ts2_file_path -RUNITEM core_item_from_tree

但是,我无法使用相同的方法关闭 Trace32 实例。谁能告诉我他打开和关闭 Trace32 实例的正确方法?

更新

有时,GUI 可能必须在目标仍在运行时强制关闭。 (可能是因为挂起或者 DAP 配置失败)。

在这些情况下,重新启动 GUI 时会出现以下弹出窗口:

这会阻止使用 Trace32,因为此后的远程访问总是返回通信失败。有没有办法通过将标志传递给 trace32.exe 命令或其他方式来自动重置目标(按“是”)?

【问题讨论】:

  • 在没有 T32start 的情况下从命令行启动和退出 TRACE32 也可以吗?
  • 可以,只要我能从配置树中指定ts2文件和core即可。这是为了一些自动化,我们希望通过触发 shell 上的命令来自动打开和关闭窗口。
  • 如果我可以从命令行启动/关闭来自 podbus 设备链的所有核心,这也会很有用。
  • 您的“更新”实际上是一个新问题,询问“如何强制连接到已在使用的 PowerDebug?” (顺便说一句,这不应该是必需的)请在 StackOverflow 中针对该问题打开一个新问题,我很乐意回答。
  • @Holger 当然,这是新问题:stackoverflow.com/questions/48447322/…

标签: command-line trace32 lauterbach


【解决方案1】:

从命令行启动 TRACE32:

T32Start 是一种工具,可帮助您生成 TRACE32 配置文件,然后使用临时生成的配置文件为您的目标架构系列启动实际的 TRACE32 应用程序。

所以要启动 TRACE32,您可以:

  • 使用您建议的命令行通过 T32Start 启动 TRACE32(仅适用于 Windows)
  • 生成一个永久配置文件并直接使用它启动 TRACE32。

TRACE32 安装的 PDF 子文件夹中的“installation.pdf”文档告诉您如何创建配置文件。您还可以使用 T32Start 创建一个永久配置文件,如下所示:

  1. 使用 T32Start 创建您需要的配置。确保为每个具有唯一端口的内核启用“高级 > 接口 > API 端口”,以便以后能够从命令行关闭 TRACE32。
  2. 然后右键单击一个核心(带有劳特巴赫徽标的节点)并从上下文菜单中选择“显示启动环境...”。
  3. 随后打开的窗口在右下角有一个“将批处理作业另存为...”按钮和一个用于“将配置另存为...”的按钮。使用这两个按钮保存两个文件。假设您已将配置保存在名称 myconfig.t32 下。
  4. 调整保存的批处理作业,以便调用 TRACE32 的命令行指向配置文件。最后,您应该有一行 t32m<cpu> -c <configfile.t32> -s <startscript.cmm>,其中 是您要调试的 CPU 体系结构系列的简称(如 ARM、PPC、RISCV - you'将在批处理文件中看到它)。例如。 c:\t32\bin\windows64\t32marm -c c:\t32\myconfig.t32 -s c:\t32\mytestcase.cmm
  5. 如果您有 AMP 多核设置,请对配置的所有内核重复第 2 到 4 步。
  6. 合并所有已保存的批处理文件并使用该批处理文件启动所有 TRACE32 实例。 (最好在启动第一个 TRACE32 GUI 后等待几秒钟)。

从命令行关闭 TRACE32:

确保在您要关闭的所有 TRACE32 GUI 上启用远程 API。 您会在“高级 > 接口 > API 端口”的每个核心节点的 T32Start 中找到该设置
最后,每个 TRACE32 GUI 的配置文件包含以下几行:

RCL=NETASSIST
PORT=20000

在该块之前和之后必须有一个空行(而该块也可能包含以 PACKLEN= 开头的行)
PORT= 之后的值定义了一个 UDP/IP 端口,并且对于每个 TRACE32 GUI 必须是唯一的。

如果您有一个启用了 API 端口的开放式 TRACE32 GUI,您可以通过 TRACE32 远程 API 向它发送命令。 (请参阅 TRACE32 安装中的 api_remote.pdf。)使用远程 API 向 TRACE32 实例发送简单命令的命令行工具是 t32rem.exe(您可以在您的 TRACE32 安装)。

使用 t32rem 如下:

t32rem localhost port=<myport> <command>

对于,请选择您在上面配置文件中PORT= 之后使用的端口号。对于 使用您想要发送的任何 TRAC32 命令。例如。命令QUIT 关闭TRACE32 GUI。

但是,如果您将QUIT 用于 TRACE32 命令,t32rem 将拼命等待一段时间以等待您刚刚关闭的 GUI 的响应。为避免这种情况,请创建一个测试文件“quit.cmm”并将以下几行放入该脚本中:

WAIT 800.ms
QUIT

然后通过命令行关闭GUI:

c:\t32\bin\windows64\t32rem.exe localhost port=20000 "DO ""c:\t32\quit.cmm"" "

(仅当路径包含空格时,CMM 文件路径周围的双引号才需要。)

【讨论】:

  • 非常感谢 Holger,请给我一些时间来审查和试验您的解决方案。如果我有更多疑问,我会回复。
  • 嗨@Holger,我已经用另一个相关查询更新了我的问题。如果您能将您的 cmets 添加到您的答案中,我将不胜感激。
猜你喜欢
  • 2018-03-09
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 2016-03-12
  • 2019-09-13
相关资源
最近更新 更多