【问题标题】:JTAG Scripting: How can we structure like variable be used in JTAG scripting languageJTAG 脚本:我们如何在 JTAG 脚本语言中使用类似变量的结构
【发布时间】:2017-04-27 20:15:34
【问题描述】:

我正在尝试访问这样的结构的数组(C 等效)

Struct register
{
  int addr;
  int val;
}reg[100];

for(i=0;i<100;i++)
   Print reg[i].addr

在 Jtag 脚本语言中如何实现?

【问题讨论】:

    标签: scripting command jtag trace32


    【解决方案1】:

    我假设您说的是来自 Lauterbach 的 TRACE32 调试器的 PRACTICE 脚本语言。

    在 PRACTICE 脚本语言中,您可以通过函数 Var.VALUE(&lt;hll-expression&gt;) 访问任何 C/C++ 语言结构,其中 是返回单个值的任何有效 C/C++ 表达式。 (hll 表达式基本上是您也可以在调试器监视窗口 (Var.Watch) 中显示的所有内容。

    例如:如果您想从数组 reg 的第三个元素访问 val,您可以在 C 中使用表达式 reg[2].val。因此在 PRACTICE 中您会这样做:

    PRVIATE &x                     // Create local macro on PRACTICE stack
    &x=Var.VALUE(reg[2].val)       // Get element 'val' from 3rd element of 'reg'`
    PRINT "Result: " %Decimal &x   // Print result to AREA window
    

    要打印整个数组的所有地址,可以这样写:

    Var.NEWLOCAL int \i=0  // Create artificial HLL variable on PRACTICE stack 
    Var.WHILE \i<(sizeof(reg)/sizeof(reg[0]))
    (
      PRINT %Decimal Var.VALUE(reg[\i].addr) 
      Var.ASSIGN \i++
    ) 
    

    【讨论】:

    • 谢谢。这就是我一直在寻找的。我会试试这个。
    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2014-10-05
    • 2018-07-09
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多