我正在尝试访问这样的结构的数组(C等效)
Struct register
{
int addr;
int val;
}reg[100];
for(i=0;i<100;i++)
Print reg[i].addr
这在 Jtag 脚本语言中如何实现?
我假设您正在谈论来自 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++
)