T32脚本使用
T32 script usage
我是 T32 脚本的新手,有一个关于脚本的问题。
查看我们项目的脚本,我发现如下代码:
A.cmm
=======================================================
....
if (&AAA==TRUE())
(
do B.cmm F=test1
entry &detect
)
.....
=======================================================
B.cmm
=======================================================
.......
test1:
........
return TRUE()
=======================================================
有几个问题:
1.入口函数是用来接收test1子程序的return值,放到"detect"宏中的吗?
2. "F="有什么意义?我们不能只在 do 命令后面使用 test1 吗?
谢谢!
DO <filename> [<parameter_list>]
这意味着 F=test1 是一个应该在 B.cmm 中计算的参数。 B.cmm好像是用F=function来决定B.cmm[=34=里面是哪个函数] 叫做。 B.cmm:
里面大概有类似这样的代码
LOCAL &ARGS &ARG_FUNCTION
ENTRY %LINE &ARGS
&ARG_FUNCTION=STRing.SCANAndExtract("&ARGS","F=","")
IF "&ARG_FUNCTION"!=""
(
PRIVATE &rval
GOSUB &ARG_FUNCTION
ENTRY &rval
ENDDO &rval
)
ENDDO
ENTRY用于获取参数以及获取return值。 entry &detect 从对 B.cmm 的调用中获取 return 值并将其保存到 &detect.
在较新版本的 TRACE32 中,您还可以使用 PARAMETERS 和 RETURNVALUES 而不是 ENTRY .然而,对于 PARAMETERS/RETURNVALUES,所有参数都必须在 double-quotes 中传递(例如 DO B.cmm "F=test1"
)。上面的示例将如下所示:
LOCAL &ARGS &ARG_FUNCTION
PARAMETERS &ARGS
&ARG_FUNCTION=STRing.SCANAndExtract("&ARGS","F=","")
IF "&function"!=""
(
PRIVATE &rval
GOSUB &function "&args"
RETURNVALUES &rval
ENDDO "&rval"
)
ENDDO
我是 T32 脚本的新手,有一个关于脚本的问题。 查看我们项目的脚本,我发现如下代码:
A.cmm
=======================================================
....
if (&AAA==TRUE())
(
do B.cmm F=test1
entry &detect
)
.....
=======================================================
B.cmm
=======================================================
.......
test1:
........
return TRUE()
=======================================================
有几个问题: 1.入口函数是用来接收test1子程序的return值,放到"detect"宏中的吗? 2. "F="有什么意义?我们不能只在 do 命令后面使用 test1 吗? 谢谢!
DO <filename> [<parameter_list>]
这意味着 F=test1 是一个应该在 B.cmm 中计算的参数。 B.cmm好像是用F=function来决定B.cmm[=34=里面是哪个函数] 叫做。 B.cmm:
里面大概有类似这样的代码LOCAL &ARGS &ARG_FUNCTION
ENTRY %LINE &ARGS
&ARG_FUNCTION=STRing.SCANAndExtract("&ARGS","F=","")
IF "&ARG_FUNCTION"!=""
(
PRIVATE &rval
GOSUB &ARG_FUNCTION
ENTRY &rval
ENDDO &rval
)
ENDDO
ENTRY用于获取参数以及获取return值。 entry &detect 从对 B.cmm 的调用中获取 return 值并将其保存到 &detect.
在较新版本的 TRACE32 中,您还可以使用 PARAMETERS 和 RETURNVALUES 而不是 ENTRY .然而,对于 PARAMETERS/RETURNVALUES,所有参数都必须在 double-quotes 中传递(例如 DO B.cmm "F=test1"
)。上面的示例将如下所示:
LOCAL &ARGS &ARG_FUNCTION
PARAMETERS &ARGS
&ARG_FUNCTION=STRing.SCANAndExtract("&ARGS","F=","")
IF "&function"!=""
(
PRIVATE &rval
GOSUB &function "&args"
RETURNVALUES &rval
ENDDO "&rval"
)
ENDDO