问题现象
在使用 miniWiggler + UDE 调试英飞凌 TC3XX 系列芯片时,我已经成功刷写了程序,但在 UDE 中直接点击 Start Program 运行后,程序会卡在某一行,主核无法继续执行。
此时表现为:
- 主核看起来“跑不起来”
- HSM 相关功能始终无法工作
- 程序并没有直接报错,但就是停在那里

一开始很容易误以为是 代码问题或 HSM 初始化配置错误。
问题原因分析
后来查阅英飞凌官方资料并结合调试现象,才发现这是一个典型但不太直观的调试器相关问题。
原因是:
当调试器处于连接状态下对芯片进行复位,并且 UCB 中已经启用了 HSM 时,Boot 过程会在 HSM 的首条指令处自动设置断点。

结果就是:
- HSM 核在启动阶段被断点停住
- HSM 实际上并没有真正运行
- 主核在等待 HSM 初始化或响应
- 最终表现为程序卡死
这个行为是 Boot ROM 的调试保护机制,并不是用户代码的问题。
解决方法(关键点)
解决思路其实很简单:
👉 让 HSM 核越过这个自动断点,真正跑起来
具体做法是借助 DAS(Device Access Server),手动让 HSM 继续执行,使:
- 主核(TriCore)
- HSM 核
能够同步运行 / 停止,从而建立正常的核间通信。
实际操作步骤
我的操作流程如下:
- 保持调试器(miniWiggler)连接状态
- 打开 DAS 调试界面
- 对 HSM 核执行一次 Run / Go
- 目的是让 HSM 越过 Boot 阶段自动设置的断点
- 确认 HSM 核状态从 Halt → Running
- 回到 UDE 调试界面
- 点击 Reset

结果验证
完成上述操作后:
- 主程序可以正常运行
- HSM 能够正确启动
- 主核与 HSM 的通信恢复正常
- 串口或调试窗口的输出也符合预期
问题至此解决。
总结
这个问题的坑点在于:
- 不是代码问题
- 不是 HSM 配置写错
- 而是 调试器连接 + UCB 启用 HSM 时的 Boot 行为
如果你在调试 TC3XX + HSM 时遇到:
“程序刷进去了,但一运行就卡住”
非常值得优先检查一下 HSM 是否被停在 Boot 断点上。