SUPER TRACE支持
SUPER TRACE支持





电话(总机):0755-82518678
传真:0755-82518678转8008
咨询:0755-28709777
技术支持:0755-28716000

手机:13715175345
E-mail:mobile_wei@126.com
邮编:518000
地址:深圳福田区雷圳大厦
 
T32使用之基本语句和关键字

首先介绍一下Trace32脚本概貌:

Trace32提供了强大的脚本控制功能,可以做到所有的GUI的工作,还包括GUI无法完成的工作。
正因为其脚本提供的功能过于强大,导致很多功能在Trace32软件上你找不到,这部分得用脚本来驱动使用。更多的trace32使用请参考http://www.jtag1000.com/
Trace32使用的脚本类似于pascal语法,但又有些C语言的感觉,采用扩展名为.cmm的文件,其实就是文本文件,
也可以用记事本打开进行编辑。
好了,下面进入正题,Trace32的脚本基本语法:

一、先来个输出Hello World!实例

1、新建一个文本文件,改扩展名为.cmm文件如:test.cmm
2、打开Trace32软件,选择第二个,Edit file,并打开test.cmm文件
3、在文件中输入print "Hello World!",点击上面的Save保存按钮,或点击Save&Run也行,即运行了第一个Trace32程序。
4、输出的内容在左下角,可以看到Hello World!字样。

二、脚本变量申明


1、本地变量申明:
 LOCAL &a &b &c//关健字为LOCAL,变量以“&”开头
 ENTRY &a &b
 &c=&a*&b
 RETURN &c
2、全局变量申明:
 GLOBAL &State &Level//关健字为GLOBAL,变量以“&”开头


三、Trace32使用的基本控制语句


1、条件控制最基本的IF-ELSE(注意Trace32关健字不区分大小写,也可以是if else)
 如下:
 IF "a"=="a"
 (
  PRINT "true"
 )
 ELSE IF "a"=="b"
 (
  PRINT "false"
 )
 ELSE
 (
  PRINT "这里不会运行(test)"
 )
 解释一下,Trace32里面没有then关健字,多行语句请使用括号"()"括起来。
2、循环语句while和RePeaT
 &true=0!=1
 &count=1
 WHILE &true
 (
  DO mem_test
  PRINT "MEMTEST " &count
  &count=&count+1
 )
 ENDDO
 
 -------------
 RePeaT [<count>]
  <block>
 [WHILE [<condition>]]
 or
 RePeaT <count> <command>
3、GOTO跳转语句
 GOTO endloop//关健字为GOTO,endloop为标号,如:
  endloop:
   print "这里为GOTO执行地"
 GOTO 102.//102.为行号

四、Trace32使用的其它执行命令


1、执行其它脚本文件
 DO <filename> [<parlist>]
 比如有二个文件:
 a.cmm
 b.cmm
 a.cmm内容为:do b
 b.cmm内容为: print "a call b"

 运行a.cmm文件

2、调用子函数
 GOSUB subr1 0x100 10. "abc"//调用子函数,关健字GOSUB, subr1为子函数标号,后面为调用的参数0x100 10. "abc"
 subr1://这里是子函数,以变量名加冒号,标号形式。
  ENTRY &address &len &string
  Data.Set &address++(&len-1) &string
  RETURN
3、ENTER和ENTRY语句
 enter &x
 print "x=&x"


 ENTRY &address
 GOSUB func1 &address 1.
 ENTRY &result
 PRINT “Result=” &result
 ENDDO

 func1:
  LOCAL &addr &size
  ENTRY &addr &size
  Data.Set &addr++&size 0x0
  &retval=Data.Byte(&addr)
  RETURN &retval
4、INKEY字符输入
 INKEY
 INKEY &key
 IF &key==0x0d
  print "正确的输入"
 else
  print "错误的字符"


未完待续www.jtag1000.com

Trace32使用之基本函数