3. TRACE32软件环境安装与配置
TRACE32 的安装并不是“把安装包解压到硬盘上”这么简单。它由三部分共同构成:一套与主机操作系统匹配的软件树、一份决定功能边界的许可证、以及一组让调试器知道“去哪里找配置、去哪里放临时文件、用哪块硬件连目标”的环境变量。三者缺一,常见表现就是软件能启动但无法 attach 目标,或者能连上目标却提示功能受限。本节按“安装—许可—目录—环境变量—链路验证”的顺序展开,并给出可直接对照执行的示例。
一、安装前的准备与软件树结构
TRACE32 官方以压缩包形式发布,Windows 下通常是 t32_YYYYMMDD.zip 之类的命名,Linux 下为 .tar.gz。安装前先确认三件事:主机操作系统与位数、调试器硬件型号(如 PowerDebug USB / PowerDebug Ethernet / µTrace)、目标芯片架构。软件树中与本节最相关的是以下目录:
bin/<host_os>/:主机侧可执行文件,如t32marm.exe(ARM 架构调试器主程序)。config/:全局配置文件,包含config.t32模板与各类接口定义。demo/、pdf/:示例脚本与手册,排障时用于对照。
建议安装到不含空格与中文的路径,例如 Windows 下 D:\T32,Linux 下 /opt/t32。路径含空格会导致部分脚本解析失败,这是新手最常见的“莫名报错”来源之一。
二、许可证配置
TRACE32 的授权通过许可证文件或硬件加密狗实现。软件许可通常是一个 license.dat 或由厂商提供的 .lic 文件,其中包含授权的主机标识、功能模块(如 TRACE32-PowerView、Trace、MMU 支持)与有效期。配置方式有两种:
- 将许可文件放到软件树根目录,并在
config.t32中通过LICENSE=指向它; - 通过环境变量
T32LICENSE指定许可文件路径,适合多版本共存场景。
配置完成后启动调试器,在命令窗口执行 LICENSE.List,可看到已授权的功能项与到期时间。若显示 No license found,优先检查路径是否被引号包裹、文件是否被防火墙隔离。
三、工作目录与环境变量
工作目录用于存放用户脚本、临时文件与日志。推荐单独建立,例如 D:\T32Work,并在其中放置自己的 config.t32。关键环境变量如下表:
| 变量 | 作用 | 示例值 |
|---|---|---|
T32SYS | 指向 TRACE32 软件树根目录 | D:\T32 |
T32LICENSE | 指定许可证文件路径 | D:\T32\license.dat |
T32TMP | 临时文件目录 | D:\T32Work\tmp |
PATH | 追加 bin\windows64,便于命令行启动 | %T32SYS%\bin\windows64 |
设置完成后,在命令行执行 echo %T32SYS%(Windows)或 echo $T32SYS(Linux)确认生效。注意环境变量修改后需重启终端或调试器进程,否则读取的仍是旧值。
四、config.t32 关键配置与通信链路验证
config.t32 是调试器启动时读取的核心配置,决定使用哪种物理接口连接目标。以以太网调试器为例,典型片段如下:
PBI=
USB
; 或使用以太网
; ETH
; HOST=192.168.1.100
; PORT=20000
; PACKLEN=1024
; ETH
T32SYS=D:\T32
T32TMP=D:\T32Work\tmp
LICENSE=D:\T32\license.dat
配置完成后启动调试器,执行 SYStem.Up 尝试建立与目标的连接。若成功,命令窗口会返回目标 CPU 的识别信息;若失败,常见提示与排查方向如下:
connection failed:检查网线/USB 是否插好、IP 是否同网段、防火墙是否放行端口。no target power:确认目标板已上电,且调试接口(JTAG/SWD)电平匹配。license error:回到第二节检查许可文件路径与有效期。
链路验证的最终判据是:SYStem.Up 返回目标信息,且 SYStem.Mode 显示为 Up。此时可进一步执行 Register.View 查看寄存器,确认调试通道真正可用。
五、常见问题与收尾检查
安装配置完成后,建议按以下清单逐项确认:软件树路径无空格与中文;许可证文件可被当前用户读取;T32SYS、T32LICENSE、T32TMP 三个变量均已生效;config.t32 中的 PBI 与实际硬件一致;目标板已上电且调试口未被其他工具占用。若 SYStem.Up 仍失败,可先用 SYStem.CONFIG 查看当前接口参数,再对照硬件手册确认 JTAG/SWD 引脚定义与时钟频率。链路一旦建立,后续的断点、Trace、脚本自动化才有可靠的运行基础。