简介:《劳特巴赫TRACE32快速入门》是一份面向嵌入式调试初学者及需要熟悉劳特巴赫调试器使用流程的工程师的入门手册,围绕TRACE32上位机安装准备、调试硬件环境搭建与软件启动三条主线展开,帮助读者建立从工具部署到目标板联调的基础认知。压缩包内为1个PDF文件,大小约6.17MB,篇幅精炼,适合作为随查随用的入门读物。手册以ARM、Tricore、PowerPC等常见平台为背景,除基础流程外,还附有PowerView通过网络连接LA-3505、CPU列表中找不到目标芯片的排查思路,以及通过命令行启动TRACE32等补充内容;正文亦涉及断点设置、内存查看、寄存器操作与数据跟踪等调试功能,便于读者后续按目录索引深入查阅。目前已有6473人学习,可作为嵌入式调试入门阶段的参考资料。
1. 从一台新机器装 TRACE32:先别急着点 setup.bat
见过太多次这种场面:新领的调试器,安装包解压,双击 setup.bat,一路 Next,装完插上 USB,打开设备管理器——TRACE32 Devices 那一栏根本没有出现。劳特巴赫 TRACE32 调试器的坑从来不在软件本身,而在于软件安装、驱动安装、平台勾选、上下电顺序这四件事必须按同一个节奏走,顺序错一步,后面全是玄学问题。这份快速入门手册覆盖 ARM、Tricore、PowerPC 三个常用平台,从安装、硬件连接一直到用 PowerView 连上目标板,正好是第一次接手 TRACE32 的人要走的完整路径。如果你刚拿到 LA-3505 或者 μTRACE,准备在一台干净机器上从零搭环境,下面的顺序可以照着抄。
2. 安装包获取:完整包、增量包与版本号怎么定
装之前先决定两件事:拿哪种包,装哪个版本。这两件事定错了,后面第三章一路点 Next 都是白点。
2.1 四条获取路径的取舍
手册列了四种来源,它们的定位完全不同,不是随便挑一个就行。
第一种是随产品附赠的光盘,做的是完整安装,好处是版本和这台调试器出厂时匹配,坏处是版本通常偏旧。第二种是官网完整安装包,只提供最新版本,第一次下载需要注册,注册时要填调试头序列号,填完后续有新版本发布会邮件提醒——这个邮件提醒对长期维护多个项目的团队挺有用,能省掉手动查版本的功夫。第三种是网盘上的完整安装包,适合内网机器多、一台一台去官网注册太慢的场景。第四种是官网的增量升级包,同样只提供最新版本,但它面向的是电脑上已经装了旧版 TRACE32 的情况,下载后不需要运行安装程序,解压后把文件全部复制到原 T32 目录覆盖旧文件即可。
| 来源 | 是否完整安装 | 版本新鲜度 | 是否需要注册 | 典型场景 |
|---|---|---|---|---|
| 随产品光盘 | 是 | 出厂版本,偏旧 | 否 | 新调试器第一次装机、要和固件对齐 |
| 官网完整包 | 是 | 只提供最新版 | 是,需填调试头序列号 | 单机干净安装、想收版本更新邮件 |
| 网盘完整包 | 是 | 取决于上传时间 | 否 | 多台机器批量部署、内网环境 |
| 官网增量包 | 否,覆盖式 | 只提供最新版 | 是 | 机器上已有旧版,只做小版本升级 |
我的习惯是:新机器一律走完整安装,哪怕版本旧一点;只有已经跑起来、脚本都调通的环境,才考虑用增量包往上顶一个小版本。原因是增量包不校验你原来装的是哪个版本,跨大版本覆盖容易把平台目录和驱动文件搅成半新半旧的状态。
2.2 版本号不是越新越好:R.2020.09 与 R.2022.02 的差异
手册里给了两个具体例子:Windows 10 64 位装 R.2022.02,Ubuntu 64 位装 R.2020.09。这两个版本号不是随手写的,背后有一条明确的分界线——R.2021.09。
R.2021.09 之前的版本,ARM32 和 ARM64 是两个分开的入口,快捷方式、平台勾选项、启动方式都要按芯片实际位宽自己判断,选错了 PowerView 起得来但连不上核。R.2021.09 及以后的版本把两个入口合并了,不再需要区分。所以如果你手头是 R.2020.09 这类老版本,装完在开始菜单里看到 ARM32、ARM64 两个快捷方式属于正常现象,不是装重了;如果是 R.2022.02,只看到一个 ARM 入口也不要以为少装了东西。
版本选择的实际取舍是这样的:老项目、老调试头、已经维护了好几年的 cmm 脚本,跟着原来的版本走,别为了尝鲜升到最新;新板子、新内核、CPU 列表里翻不到型号的,才需要往新版走。CPU 列表里找不到想调试的芯片,最常见的原因就是版本太老,安装时的平台清单里压根没有这颗核(手册附录 B 专门写了这个排查)。
2.3 增量升级包的覆盖边界与备份动作
增量包的操作是「解压 + 覆盖」,没有卸载、没有回滚提示,覆盖完原目录里哪些文件被替换掉,事后很难还原。所以在覆盖之前先做一次整目录快照,是我这边的固定动作。
# 升级前给整个 TRACE32 安装目录做一份带时间戳的快照 # 假设安装路径是 /opt/t32,Windows 下换成对应的安装盘符即可 cd /opt/t32 # 只打包会被覆盖影响的几个关键目录,体积可控,回滚也快 tar -czf ~/t32_backup_$(date +%Y%m%d_%H%M).tar.gz \ ./bin \ ./demo \ ./pdf \ ./config.t32这段命令的逻辑很直白:bin下放的是可执行文件和files/bin/<操作系统>/drivers里的驱动,demo和自带的 Practice 脚本示例会被新版本替换,pdf是随版本走的文档目录,config.t32是根目录下的全局配置文件。tar -czf的三个参数分别是创建归档、gzip 压缩、指定输出文件名,$(date +%Y%m%d_%H%M)让每次备份都带分钟级时间戳,避免连续升级两次把上一份备份覆盖掉。
覆盖完成之后不要直接开软件,先确认两件事:一是pdf目录下的文档是不是跟着更新了(新版本功能对应新文档),二是原来自己改过的config.t32有没有被替换回默认值。这两条都过了,再进下一步安装验证。
3. Windows 与 Linux 双平台安装:从 setup.bat 到 setup_linux.sh
安装程序本身不复杂,复杂的是中间那几个必须做选择的界面。这一章按 Windows 和 Linux 两条线走,每条线都落到具体点哪里、勾什么。
3.1 Windows 10 64 位装 R.2022.02 的六步
以下载好的完整安装包为例,在 Windows 10 64 位环境下装 R.2022.02:
- 解压安装包,运行根目录下的
setup.bat启动安装程序。注意是 bat 而不是某个 exe,双击错文件会没有任何反应。 - 前面几个界面保持默认,直接 Next。
- 安装类型界面选Typical Installation(典型安装)。这里不要选自定义精简,典型安装会把平台支持、示例脚本、PDF 文档一起装上,后面排查问题时这些文档就是黑匣子里的记录。
- 平台选择界面,勾选你要调试的架构。这一步是全文最容易出错的地方,下一节单独展开。
- 驱动安装界面,让安装程序把设备驱动一起装上。如果这一步跳过了,后面插上调试头设备管理器里就是空的。
- 最后一步询问是否注册,按实际情况选。注册后能收到版本更新提醒,不注册不影响使用。
整个流程里真正需要动脑的只有第 4 步和第 5 步,其余保持默认即可。
3.2 平台勾选对照:想调的芯片对应哪个勾
手册给了一张对照关系,我按「芯片/内核 → 勾选项」重新整理了一遍,装的时候对着这张表找,比在安装界面里逐个猜快得多。
| 想调试的芯片/内核 | 安装时勾选 |
|---|---|
| Cortex-M(如 S32K144、HSM) | Cortex-M |
| Cortex-A9(如 I.MX6) | Cortex-A9 |
| Cortex-A53 / A72 / A73 | 对应 Cortex-A5x/A7x 项 |
| Tricore(如 TC234、TC397) | Tricore |
| Tricore + HSM | Tricore 与 HSM 两项 |
| MPC5XXX、S32R274、MPC8XXX、QorIQ | 对应 PowerPC 系列项 |
几个判断要点:带 HSM 的芯片要把 HSM 单独勾上,只勾主核,后面连 HSM 核时会发现没有对应入口;R.2021.09 之前的版本,ARM32 和 ARM64 是两个分开的入口,得按芯片实际位宽自己选,选错了 PowerView 能起来但连目标会失败;拿不准的时候宁可多勾一个平台,多占一点磁盘,也别事后重新跑一遍安装程序补勾——补勾虽然可行,但会重走一遍驱动安装,中间任何一步点错都可能把已有环境弄乱。
3.3 Ubuntu 装 R.2020.09:依赖与 setup_linux.sh
Linux 下装 TRACE32,第一步不是运行安装脚本,是补 Qt 依赖。以 Ubuntu 64 位装 R.2020.09 为例:
# 先补 Qt5 运行库,TRACE32 的 PowerView 界面依赖这两个包 sudo apt-get update sudo apt-get install -y libqt5gui5 libqt5printsupport5 # 进入安装包目录,给安装脚本执行权限后运行 cd /media/cdrom # 光盘或解压后的安装包目录 sudo ./setup_linux.sh # 安装设备驱动需要管理员权限,加 sudo 更稳libqt5gui5提供 Qt 的图形界面基础库,libqt5printsupport5提供打印支持组件,PowerView 启动时会动态链接这两个库,缺任何一个都会在终端里报error while loading shared libraries然后直接退出——这种报错信息很短,第一次见容易以为是安装包坏了。手册明确说了「包括但不限于上面两个」,意思是不同发行版、不同桌面环境还会缺别的包,Debian 系和 RedHat 系的包名也不一样,实际做法是先跑一次,看它缺哪个.so再补哪个。
setup_linux.sh前面的sudo不能省,安装设备驱动这一步需要管理员权限,用普通用户跑会在驱动环节静默失败,装完看着是成功了,插上调试头lsusb里什么都没有。
3.4 驱动单独重装:files/bin 下那条固定路径
驱动不用重装整个软件。安装程序把驱动单独放在安装目录里,路径是(DVD 或安装包)\files\bin\<操作系统>\drivers,官网也有单独的驱动下载入口。Windows 下设备管理器出现黄色感叹号、Linux 下lsusb看不到设备,都可以先试重装驱动。
# 在 Linux 安装目录下定位驱动文件,确认目录结构 ls -l /opt/t32/files/bin/linux/drivers/ # 如果驱动是独立安装脚本,直接执行;如果是 .rules 文件,复制到 udev 规则目录后重载 sudo cp /opt/t32/files/bin/linux/drivers/*.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm triggerudevadm control --reload-rules让 udev 重新读取规则文件,udevadm trigger触发一次设备事件重扫,两步都做完再拔插一次调试头,规则才会生效到新插入的设备上。Windows 那边更简单,在设备管理器里对着带感叹号的 TRACE32 设备选「更新驱动程序」,手动指向files\bin\windows\drivers目录即可。
4. 硬件环境搭建:主模块、调试头与上下电顺序
软件装完只是上半场。硬件这一侧接错口、上错电,表现和软件没装好几乎一模一样,都是「连不上」。
4.1 四种主模块的连接方式
不同的主模块,上位机的连接方式完全不同,而且没有转换余地。
| 主模块型号 | 与上位机连接方式 | 备注 |
|---|---|---|
| LA-3500 / LA-3503 | 只能 USB 2.0 / 3.0 | 没有网络口,别去找网线 |
| LA-3505 | USB 或网络二选一 | 走网络需提前指定 IP,见手册附录 A |
| μTRACE LA-3204 | 只能 USB | 用于 Cortex-M |
| μTRACE LA-3202 | 只能 USB | 用于 RISC-V 32bit |
LA-3505 是这批里唯一支持网络连接的,用网络方式接上位机之前必须先把主模块的 IP 指定好,具体步骤在手册附录 A 里,配完再从 PowerView 侧发起连接。网络连接的好处是一台主模块可以被多台机器共用,做多用户协作或者把调试器放在实验室固定位置时很实用。
一套完整链路是这样的:PC 通过 USB 或网络接到 LA-3505 主模块(PowerDebug Pro),主模块再通过 Debug Cable 接到目标板的调试口,主模块本身还需要一路调试器电源。任何一段没接好,PowerView 都会停在欢迎界面连不下去。
4.2 上下电顺序:为什么先连线上电这一步不能省
手册给了一组明确的上电和下电顺序,上电按这个来:
- 目标板上电;
- 将 Debug Cable 和目标板的调试口连接;
- 打开 TRACE32 PowerView 软件,出现欢迎界面;
- TRACE32 主模块上电;
- 用 USB 或网络连接 TRACE32 主模块和 PC 机。
下电是完全相反的顺序:TRACE32 主模块断电 → 关闭 TRACE32 软件 → 断开 Debug Cable 和目标板的连接 → 目标板下电。
这套顺序的核心目的是让调试器始终跟在一个已经稳定的目标电平后面,避免热插拔调试线时目标板还带着电。我自己的习惯会再往前挪一步:在目标板断电的状态下先把 Debug Cable 接好,再按上面的 1 到 5 走一遍。这样既不会在带电状态下插拔调试口,也不违背手册的主干顺序。反过来做——先给主模块上电、软件也开着,再去接目标板——很容易在 PowerView 里看到一个连不上的目标,而且不会报出明确原因。
4.3 确认环境:设备管理器、dmesg 与 lsusb
在新 PC 上第一次用,装完软件、插好 USB、主模块上电之后,先确认系统认没认到这台设备,再去开 PowerView。
Windows 下打开设备管理器,看TRACE32 Devices这一项的状态,设备正常列出就说明驱动和 USB 链路都通了。
Linux 下用两条命令交叉验证:
# 从内核日志里看 USB 枚举过程,Lauterbach 的 USB Vendor ID 是 0x897 dmesg | tail -50 | grep -i -E "897|lauterbach" # 直接列 USB 设备树,确认设备节点存在 lsusb | grep -i "897"dmesg看的是内核枚举时的原始日志,能看到设备插入、描述符读取、驱动绑定这几步有没有报错,比lsusb信息更全;lsusb看的是当前挂载结果,快但只有一行。两条都对上了,再去开 PowerView。Vendor ID0x897是固定的,grep里带上它比按厂商名匹配更可靠,因为日志里未必出现完整品牌名。
如果这时两条命令都没有输出,先怀疑 USB3.0。部分主板或者虚拟机(比如 VMware)的 USB3.0 驱动和调试器存在兼容问题,会直接识别不到设备,做法是换一根 USB2.0 线插到 USB2.0 口上复测。2022 年开始部分型号不再随附 USB2.0 数据线,需要自己备一根——这根线不贵,但关键时刻能省掉半天排查。
5. 避坑与排查:五条装完连不上的血泪经验
下面五条是按「现象 → 原因 → 解决」整理的,都是环境已经装完、但就是连不上的情况,按出现频率排。
第一条:设备管理器里根本没有 TRACE32 Devices
现象是装完软件插上调试头,设备管理器里既没有正常设备,也没有带感叹号的未知设备,等于什么都没发生。原因是驱动没装上,最常见于安装过程中跳过了驱动界面,或者安装时用了普通用户权限导致驱动注册失败。解决方式是重装驱动:Windows 下手动指定到files\bin\windows\drivers;Linux 下把files\bin\linux\drivers里的规则文件复制到/etc/udev/rules.d/后重载 udev,再拔插一次设备。
第二条:USB3.0 口识别不到,换 USB2.0 线就好了
现象是插上没反应,lsusb空,但换一根线换一个口就正常。原因是电脑主板或者虚拟机层的 USB3.0 驱动兼容问题,不是调试器坏了。解决办法就是拿一根 USB2.0 数据线做交叉验证,能识别就说明硬件完好,问题在主机侧。虚拟机环境下还要检查 USB 控制器是不是被设置成了 3.0 直通模式。
第三条:CPU 列表里找不到想调试的芯片名字
现象是 PowerView 起来了,选 CPU 的时候翻遍列表没有目标芯片。原因基本是两个:安装时平台没勾选,或者版本太老,这个版本的平台清单里压根没有这颗核。解决方式是重新运行安装程序补勾对应架构——补勾会重走一遍驱动安装,记得别在这一步跳过驱动;如果补勾后依然没有,就是版本问题,按手册附录 B 的思路升到支持该内核的版本。
第四条:快捷方式启动改不了配置,改了根目录配置文件影响所有实例
现象是想配多核、改字体、加自启动脚本,发现从开始菜单快捷方式起来的实例带不上这些设置;手动去改 T32 根目录下的配置文件,改完之后所有 TRACE32 实例的行为都变了,某天配置被改坏,全部实例一起翻车。原因是快捷方式启动方式本身不支持自定义配置,而根目录配置文件是全局生效的。解决方式是改用命令行启动(手册附录 C),把每个项目要用的配置和 cmm 脚本写在启动参数里,互不干扰。
第五条:Linux 装完起不来,报 error while loading shared libraries
现象是setup_linux.sh跑完没报错,执行启动脚本时终端吐一行 shared libraries 错误就退出。原因是 Qt 依赖没装全,手册里点名的两个包只是保底,不同发行版和桌面环境还会缺别的组件。解决方式是逐个补齐:先用ldd看启动程序缺哪些.so,再按发行版的包管理器补对应包,Debian 系用apt-get,RedHat 系用yum或dnf,包名不一定和 Qt 官方名一致。
6. 启动与验证:快捷方式、命令行和一条能复现的自检线
装完不等于跑通,最后这一步是把「装好了」变成「验证过了」。
Windows 下最省事的启动方式是开始菜单里的快捷方式,TRACE32 目录下按架构分了入口:调 Tricore 平台点TRACE32 ICD Tricore USB,调 MPC5xxx 点TRACE32 ICD PPC USB,调 Cortex-R8 / Cortex-M / Cortex-A9 点TRACE32 ICD ARM32 USB,调 Cortex-A53 点TRACE32 ICD ARM64 USB。R.2021.09 及以后的版本 ARM32 和 ARM64 入口已经合并,不用再区分。快捷方式的优点是快,缺点是仅限 Windows,而且带不上自定义配置——多核设置、字体、自启动脚本都没法通过它传进去,根目录配置文件一旦被改坏会影响所有实例。
真正稳定的验证入口是命令行启动,把配置和脚本显式传进去,每次启动的环境都是确定的:
# 命令行启动 PowerView,显式指定配置文件与自启动脚本 # -c 指定本次实例使用的配置文件,避免动到根目录的全局 config.t32 # -s 指定启动后自动执行的 Practice 脚本,用来做连接自检 /opt/t32/bin/pc_linux64/t32marm -c /home/dev/t32_proj/my_config.t32 -s /home/dev/t32_proj/check.cmm-c把配置隔离到项目目录,多人共用一台机器时不会互相覆盖;-s让 PowerView 起来后立刻跑一段自检脚本,连没连上、核认没认到,一次就能看出来,不用手动点菜单。
自检脚本不用写复杂,下面这几行就够确认链路是不是通的:
; check.cmm —— 最小连接自检,按执行顺序看输出 PRINT "--- TRACE32 self check start ---" SYStem.CPU ; 打印当前选定的 CPU,确认平台勾对了 SYStem.Up ; 尝试连接目标,失败会在这里报错 Register.Set PC ; 读一次 PC 寄存器,能读到值说明核已经可控 Data.Long(0x0) ; 读一个地址,验证内存访问通道正常 PRINT "--- TRACE32 self check done ---"判断标准可以照着这张表对:
| 验证项 | 对应动作 | 通过的表现 |
|---|---|---|
| 设备识别 | Windows 设备管理器 /lsusb | TRACE32 Devices 正常列出,无感叹号 |
| 软件启动 | 快捷方式或命令行 | PowerView 出现欢迎界面,不闪退 |
| 平台匹配 | SYStem.CPU | 打印出的核型号与目标板一致 |
| 目标连接 | SYStem.Up | 无报错,状态栏显示已连接 |
| 核可控 | 读 PC 寄存器 | 读到的地址落在目标程序区间内 |
| 内存通道 | 读一个已知地址 | 返回值与预期一致,不是全 F 或全 0 |
六项全过,这套环境才算真的装完。任何一项卡住,回到第 5 章按现象对一遍,八成能定位到是驱动、平台勾选还是上下电顺序的问题。
从那以后我每次在新机器上装完 TRACE32,都会强制走一遍这条自检线:先看一眼lsusb,再命令行带-s起 PowerView 跑 check.cmm,六项全绿才把机器交给用的人。这套动作多花不到五分钟,但能把「装是装完了,能不能用不知道」这种模糊状态彻底消掉。希望帮到你。
本文还有配套的精品资源,点击获取