【填坑记录】完美解决 CCS 连接 XDS100v2 仿真器报错 -151 (系统找不到指定的文件)
作为一名电气专业的大学本科生,最近在做项目调板子时,被 TI 的 Code Composer Studio (CCS) 和 XDS100v2 仿真器结结实实地折磨了一把。
在设备管理器中,仿真器带有黄色感叹号。每次尝试在 CCS 中连接目标板,都会无情地弹出 Error -151 报错。本以为只是个简单的驱动问题,但无论我是用图形界面手动指定驱动目录,还是使用“从磁盘安装”,Windows 都会极其误导地弹出一个错误提示:“系统找不到指定的文件”。
经过查阅底层日志和反复折腾,我终于扒出了这个 Windows 驱动玄学 Bug 的老底,并成功总结出了一套“终极拔草方案”。特此记录,希望能帮到同样在这个坑里抓狂的硬件开发者们。
一、 深度剖析:为什么会提示“找不到文件”?
很多人(包括我)一开始会怀疑是不是下载的 CCS 安装包损坏了。但实际上,如果你去查看 Windows 系统隐藏的驱动安装日志(路径:C:\Windows\INF\setupapi.dev.log),你会发现真正的罪魁祸首是 TI 的安装脚本硬编码缺陷与 Windows 的严格检查机制发生了冲突。
在日志的最底部,记录了这样一段致命报错:
! flq: SourceFile - '...\ftdi_drivers\i386\ftd2xx.dll'
!!! cpy: Failed to copy file... Error 2: The system cannot find the file specified.
真相大白:TI 编写的 ti_ftdi_debug.inf 脚本中有一条硬编码规则,要求在安装时必须同时拷贝 64 位 (amd64) 和 32 位 (i386) 的驱动文件。然而,在新版本的 CCS(如我使用的 12.8.x 版本)中,官方安装包可能出于精简目的,直接移除了 i386 这个文件夹。Windows 找不到这个 32 位的占位文件,于是严格按照脚本逻辑,粗暴地终止了整个 64 位驱动的安装流程。
二、 终极解决步骤
既然知道了是由于缺少 32 位文件导致的连锁反应,并且 Windows 的图形界面安装已经被缓存卡死,我们需要用“偷梁换柱”加“命令行强注”的组合拳来解决。
步骤 1:彻底清理错误的驱动残骸
- 保持仿真器插在电脑上,打开设备管理器。
- 找到带有黄色感叹号的
Texas Instruments Inc.XDS100 Ver 2.0。 - 右键选择 卸载设备,【极其重要】务必勾选“尝试删除此设备的驱动程序”。
- 将仿真器的 USB 线拔下。
步骤 2:修复 Windows 注册表环境
部分老旧的 INF 脚本在执行拷贝时依赖特定的注册表项,如果系统缺失会导致安装静默失败。
- 按
Win + R打开运行窗口,输入regedit回车,打开注册表编辑器。 - 导航到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion - 检查是否有
RunOnce文件夹。如果没有,右键点击CurrentVersion-> 新建 -> 项 (Key),命名为RunOnce(注意大小写)。
步骤 3:“偷梁换柱”补全 32 位文件 (核心操作)
因为我们用的是 64 位系统,根本不需要运行 32 位驱动,我们只需要随便伪造一个文件骗过 INF 脚本的点名检查即可。
- 打开文件资源管理器,进入你的 CCS 驱动目录(请根据你的实际盘符替换):
D:\CCS\ccs\ccs_base\emulation\windows\ftdi_drivers - 在该目录下,新建一个文件夹,命名为
i386。 - 进入旁边的
amd64文件夹,复制里面的ftd2xx64.dll文件。 - 退回到刚刚新建的
i386文件夹,将文件粘贴进去。 - **将这个文件重命名为:
ftd2xx.dll**(也就是去掉名字里的 64)。
步骤 4:命令行强制注入驱动
图形界面容易受缓存干扰,我们直接使用底层的 PnPUtil 工具强行注入。
- 右键点击 Windows 开始按钮,选择 Windows PowerShell (管理员) 或 终端 (管理员)。
- 输入以下命令并回车执行(注意将路径替换为你自己的实际路径):
pnputil /add-driver D:\CCS\ccs\ccs_base\emulation\windows\ftdi_drivers\*.inf /install
- 终端会输出两段信息,如果都提示 “已成功添加驱动程序包”,说明底层注入完美成功!
三、 见证奇迹
完成上述步骤后,重新将 XDS100v2 仿真器插上电脑的 USB 口。
此时打开设备管理器,展开“通用串行总线控制器”,你会看到那两个烦人的问号彻底消失了,取而代之的是稳定识别的 TI XDS100 Channel A 和 TI XDS100 Channel B。
回到 CCS 中再次点击调试,Error -151 终于灰飞烟灭。祝各位 Debug 顺利,永不烧板子!
浙公网安备 33010602011771号