运行cmm脚本后如何从T32获得反馈?

时间:2017-01-12 01:00:49

标签: python trace32 lauterbach

我正在通过命令行运行T32 CMM脚本(放入python包装器)但是我想知道T32的状态是否脚本已成功运行或是否有错误,我该如何反馈来自T32?

cd C:\T32\bin\windows64

Config.t32:

RCL=NETASSIST
PORT=20000
PACKLEN=1024

; Environment variables
OS=
ID=T32
TMP=C:\Users\jhigh\AppData\Local\Temp
SYS=C:\T32


PBI=
USB

; Printer settings 
PRINTER=WINDOWS

用法: -

t32marm.exe -s c:\Temp\vi_chip_cmd_line.cmm \\Filerlocation\data\files

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

用于远程控制和JTAG访问的TRACE32“API”允许您与正在运行的TRACE32应用程序进行通信。

要为TRACE32应用程序启用API,只需将以下两行添加到TRACE32启动配置文件(“config.t32”)即可。两行之前和之后的空行是必需的。

RCL=NETASSIST
PORT=20000

PDF api_remote.pdf中描述了API的用法,该文件位于TRACE32安装的PDF文件夹中,您也可以从http://www.lauterbach.com/manual.html下载

您可以在http://www.lauterbach.com/scripts.html找到有关如何使用Python的远程API的示例(只需在页面中搜索“Python”)

要检查您的PRACTICE脚本(“vi_chip_cmd_line.cmm”)是否仍在运行,请使用API​​函数 T32_GetPracticeState();

我还建议使用Var.NEWGLOBAL int \state在脚本的开头创建一个人工变量。在脚本测试期间,将变量“\ state”设置为使用Var.Set \state=42增加的值。通过TRACE32命令EVAL Var.VALUE(\state)和API调用 T32_EvalGet(),您可以获得变量“\ state”的当前值,通过这样做,您可以检查脚本是否已达到最终状态状态。

另一种方法是使用TRACE32命令APPEND从PRACTICE脚本(“vi_chip_cmd_line.cmm”)编写一个日志文件,并从Python脚本中读取日志文件。

答案 1 :(得分:1)

请检查您的T32安装以获取有关如何使用T32 API(demo / api / python)的演示。请记住,没有有效的许可证,它将无法运行。同样重要的是,如果在64位主机上使用32位cygwin内的Python,则需要加载32位DLL。

配置:

RCL=NETASSIST
PORT=20000
PACKLEN=1024

Python脚本:

import platform
import ctypes

# Adjust the path / name to the DLL
t32api = ctypes.CDLL("./t32api64.dll")

t32api.T32_Config(b"NODE=",b"localhost")
t32api.T32_Config(b"PORT=",b"20000")
t32api.T32_Config(b"PACKLEN=",b"1024")

t32api.T32_Init()
t32api.T32_Attach(1)
t32api.T32_Ping()

t32api.T32_Cmd(b"AREA")

t32api.T32_Exit()

然后您可以使用Holger建议的命令/技术:

T32_GetPracticeState()

获取当前的PRACTICE运行状态。和/或在脚本中设置变量

Var.Assign \state=1
Var.Assign \state=2
....

然后使用 T32_ReadVariableValue()

进行轮询