我正在尝试访问这样的结构数组(C等效)
Struct register
{
int addr;
int val;
}reg[100];
for(i=0;i<100;i++)
Print reg[i].addr
如何用Jtag脚本语言实现这一目标?
答案 0 :(得分:1)
我假设您正在讨论Lauterbach的TRACE32调试器的PRACTICE脚本语言。
在PRACTICE脚本语言中,您可以通过函数Var.VALUE(<hll-expression>)
访问任何C / C ++语言构造,其中&lt; hll-expression&gt; 是任何有效的C / C ++表达式返回单个值。 (hll-expression基本上是你可以在调试器监视窗口(Var.Watch
)中显示的所有内容。)
例如:如果您想要从数组val
的第3个元素访问reg
,您可以在C中使用表达式reg[2].val
。因此,在实践中,您可以&#39 ;我会这样做:
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++
)