【发布时间】: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
我正在尝试访问这样的结构的数组(C 等效)
Struct register
{
int addr;
int val;
}reg[100];
for(i=0;i<100;i++)
Print reg[i].addr
在 Jtag 脚本语言中如何实现?
【问题讨论】:
标签: scripting command jtag trace32
我假设您说的是来自 Lauterbach 的 TRACE32 调试器的 PRACTICE 脚本语言。
在 PRACTICE 脚本语言中,您可以通过函数 Var.VALUE(<hll-expression>) 访问任何 C/C++ 语言结构,其中 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++
)
【讨论】: