1

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

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

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

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

4

1 回答 1

1

我假设您正在谈论来自 Lauterbach 的 TRACE32 调试器的 PRACTICE 脚本语言。

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

例如:如果您想val从数组的第三个元素访问,reg您可以使用 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++
) 
于 2017-04-28T09:39:27.017 回答