尧图精选

Win10安装CCS5.5实战:驱动签名、权限与仿真器连接避坑指南

🕒 发布时间:2026/10/2 5:16:16 📁 来源:尧图网络
1. 为什么Win10 CCS5.5这个组合天生就别扭如果你手里有一块几年前甚至十几年前的老 DSP 板子配套的例程、链接脚本、库文件全是围绕 CCS5.5 写的那你大概率会走到今天这条路在一台装着 Win10 的电脑上想办法把 DSP 开发环境搭起来。我在实验室和自用的机器上来回折腾过好几轮从一开始的装完打不开到后来的十分钟装好能连板子中间踩的坑足够写满一页 A4 纸。先把话说清楚CCS5.5 是德州仪器那一代基于 Eclipse 的集成开发环境配套 C2000、C5000、C6000 这些经典 DSP 家族能编译、能仿真、能烧写。它本身没问题问题是它出生的年代和 Win10 之间隔着好几道坎。这篇文章面向三类人手上有老工程必须用 5.5 的、实验课上被要求用这个版本的、以及装完之后被一堆报错卡住的。CCS5.5 在 Win10 上装不上去绝大多数时候不是安装包坏了而是系统层面的三个机制在拦你——驱动签名校验、用户账户控制、以及路径与权限。搞明白这三件事后面的报错就都能对号入座而不是见一个查一个。1.1 CCS5.5 是一套 2013 年的 32 位 Eclipse很多人没意识到的一点是CCS5.5 本体是 32 位程序内部自带一个 32 位 JRE界面是 Eclipse 那一套插件框架。这意味着它在 64 位 Win10 上跑的时候走的是 WoW64 兼容层。这本身不是问题32 位程序在 64 位系统上跑得好好的例子太多了但它带来两个后果。第一个后果是运行库依赖。老 Eclipse 和配套工具链依赖 Microsoft Visual C 2005/2008/2010 系列的 32 位运行库缺一个 dll 就直接弹框退出典型的报错是无法启动此程序因为计算机中丢失 msvcr100.dll或者0xc000007b。这两个错误看着吓人其实原因非常单调要么缺 32 位运行库要么系统里混了 64 位的同名 dll。第二个后果是对权限和路径的敏感。Eclipse 会在工作区目录里写大量临时文件、索引文件、.metadata配置如果这个目录在C:\Program Files下面或者路径里带中文和空格它会在编译和建索引的时候莫名其妙失败。安装程序也一样它要往注册表写东西、要装驱动、要在安装目录下建一堆子目录权限不够就回滚。所以我在装之前一定会先问自己一句这台机器上我打算把 CCS 装在哪个盘、哪个目录工作区放哪。这个问题回答清楚了装机成功率能立刻提高一大截。1.2 Win10 卡住它的三个机制驱动签名、UAC、实时防护驱动签名校验是第一道坎也是最硬的一道。CCS5.5 时代随包附带的 XDS100 系列仿真器驱动有一部分是没有做 Win10 要求的签名认证的。Win10 从某个版本开始对内核态驱动强制要求签名遇到没签名的驱动会直接拒绝加载表现就是设备管理器里看到带黄色感叹号的设备或者在 CCS 里连接目标时报驱动相关的错误。这不是 CCS 的锅也不是板子的锅是时间差的问题。用户账户控制是第二道坎。Win10 默认的 UAC 等级比 Win7 时代更严格安装程序请求管理员权限的时候如果你只是双击运行而不是右键以管理员身份运行安装到写注册表或者装驱动那一步就可能中途断掉日志里留下一句权限相关的报错界面直接回滚。很多人遇到装到 60% 突然什么都没了基本都是这个原因。实时防护是第三道坎而且它最隐蔽。安装过程中会生成大量小的 exe 和 dll实时扫描会拖慢安装速度更麻烦的是某些老安装器生成临时可执行文件的方式会被误判导致某个组件静默失败。安装正常结束后启动ccstudio.exe也可能因为同样的原因被拦一下表现为启动画面转两下就消失。1.3 先花两分钟判断你到底该不该硬上 5.5这是我最想劝人的一点。不是所有场景都值得在老版本上死磕先看这张表再决定。你的情况建议路线理由老工程是 CCS3.3/CCS5.x 建的链接脚本和库都在短期要出数据装 CCS5.5换版本重移植的时间成本通常远大于装机成本课程/实验指导书指定版本评分看截图装 CCS5.5按指导书走出问题也能和同学对齐只是学习 DSP 基础、外设编程没有历史包袱用较新的 CCS 版本新版对 Win10/Win11 支持完善驱动签名问题基本不存在板载 XDS100v1 且无法更换装 CCS5.5并准备处理驱动签名这是唯一会卡住你的点后面第 5 章专门讲一句话总结有历史工程就忠于 5.5纯学习就别给自己找麻烦。这个判断做完再往下看装机细节。2. 装机前的四件准备把后面 80% 的报错提前掐掉我见过太多人直接双击安装包然后一个个报错去查最后花了三个小时。正确做法是反过来装机前花二十分钟把环境摆正让安装程序没有机会出错。下面这四件事是我每次装老版本 CCS 都必做的。2.1 安装包和驱动包要成对准备别只准备一半安装包本身要确认完整最简单的方式是对一下文件大小和哈希或者看能不能正常解压如果是压缩包形式。我遇到过安装包下载过程中断掉的情况表现是安装到某个组件时提示解包失败这种坑最浪费时间。更重要的是驱动包和工具包一起准备好。你至少需要这几样东西CCS5.5 完整安装包注意是包含你要用的芯片家族支持的那个版本板子厂家提供的例程包和原理图尤其是仿真器部分的原理图如果板子用的是 XDS100 系列最好把厂家的驱动安装说明也找出来32 位 VC 运行库安装包2010 和 2008 两个版本都是 x86 版本把这几样放在同一个文件夹里装机过程一气呵成不需要中途停下来找东西。2.2 安装路径和工作区短、纯英文、无空格这条看起来是废话但它是老版本 Eclipse 类工具最容易犯的低级错误来源。我给自己定的规矩是安装路径用D:\ti\ccsv5这种形式或者直接接受默认的C:\ti\ccsv5工作区路径用D:\ccs_ws\ws_dsp这种形式两者都不带中文、不带空格、不带特殊符号层级尽量浅为什么这么在意因为 Eclipse 在建索引、生成 makefile、调用编译器的时候会把路径拼成命令行参数字符串。路径里的空格需要用引号包起来老版本的工具链在这个环节上处理得并不严谨中文路径则可能在日志输出、编码转换的环节出问题。典型的症状是编译时报gmake: *** No rule to make target但你去目录里翻那个文件明明在。这时候八成就是路径惹的祸。工作区我还有个习惯每个大工程单独一个工作区。CCS5.5 的工作区索引文件.metadata会随工程增长而变大多个不相关的工程放在同一个工作区里切换的时候容易卡出问题的时候也不好定位。分开之后某天工作区坏了删掉.metadata重建索引就行不影响其他工程。2.3 补齐 32 位运行库和系统组件这一步是在装 CCS 之前做的顺序很重要。我一般按这个顺序装Visual C 2008 Redistributablex86Visual C 2010 Redistributablex86Visual C 2013/2015 Redistributablex86 和 x64 都装注意关键词是x86。很多人看到自己系统是 64 位就只装了 x64 版本结果 CCS5.5 这种 32 位程序照样报缺 dll。判断方法很简单看报错的 dll 名字msvcr100.dll、msvcp100.dll属于 VC2010 的 32 位运行库msvcr90.dll属于 VC2008。另外Win10 默认没有打开 .NET Framework 3.5 这个旧组件而某些老安装器的界面部分依赖它。如果你的安装程序一打开就报错或者白屏去启用或关闭 Windows 功能里勾上 .NET Framework 3.5含 2.0 和 3.0装完再装 CCS。这个开关在某些 Win10 版本上需要联网下载组件装之前确保网络正常。2.4 临时放宽系统防护的正确姿势与操作边界安装老软件时防护确实会碍事但我不建议直接把安全中心整个关掉然后忘了开回来。我自己的做法是最小化、限时的处理注意以下操作只在你自己的开发机上、只在安装调试期间做装完立刻恢复。不要在工作用机、联网办公机上做这些操作。具体来说安装前临时把实时防护的相关开关暂停一段时间Win10 的安全中心里有病毒和威胁防护下的实时保护开关可以临时关闭通常一段时间后会自动恢复装完并确认 CCS 能正常启动后立刻打开。如果你的机器有第三方安全软件也把它临时退出因为某些安全软件会拦截安装器写驱动和服务的行为。我不推荐的做法是长期关闭防护、或者为了省事去改系统级的策略开关。这两种做法短期省事长期是给自己埋雷。UAC 的处理方式我建议保持默认等级不要去拉到底。取而代之的做法是安装程序一律右键以管理员身份运行。这样安装过程拿到的是提权后的上下文能写注册表、能装驱动装完 UAC 恢复正常状态什么都没有被永久改动。3. 安装逐步实录从 Setup 到第一次打开界面准备工作做完正式装机其实很快。这一章我把每个容易出岔子的环节都标出来你照着走一遍基本不会卡。3.1 以管理员身份加兼容模式启动安装程序找到安装包右键属性在兼容性选项卡里勾上以兼容模式运行这个程序选 Windows 7同时勾上以管理员身份运行此程序。然后再双击运行。为什么要加兼容模式因为 Win10 在某些界面渲染和文件对话框行为上和老安装器不兼容表现为安装界面控件显示不全、按钮点不动、或者选择路径的对话框打开就闪退。兼容模式能把这些界面层面的问题绕过去。安装程序启动后如果你看到它先解压出一堆临时文件这是正常流程。有些版本的安装器会先做一次环境自检报出缺少的组件这时候不要跳过缺什么补什么。3.2 组件勾选芯片家族与仿真器驱动怎么选这一步决定你后面能不能少装一次。安装器会让你选择安装哪些组件一般有这么几类IDE 本体必选没什么可说的芯片家族支持包C2000、C5500、C6000、C674x、ARM 等等按你实际用的板子勾仿真器支持XDS100、XDS510、XDS560 系列按你手里的仿真器勾示例工程和文档看你需要占空间但不影响功能编译器版本跟芯片家族绑定一般随家族支持包一起装我的建议是只勾你要用的但仿真器那栏多勾一点。理由是如果你现在用的是 XDS100将来换板子变成 XDS560多勾一个支持包的成本很低但少了它就得重新跑一次安装程序而重跑安装程序在老版本上是有风险的可能覆盖掉你之前调好的驱动配置。关于编译器版本这里有个容易忽略的点同一个芯片家族可能有多个编译器版本可选工程里指定的是哪个装的时候最好就带上那个。老工程在 CCS5.5 里打开时如果找不到工程指定的编译器版本会提示你换版本或者装对应版本换了版本之后编译结果可能就不一样了尤其是涉及浮点优化、内联展开的代码。3.3 安装中途卡住或者回滚怎么定位原因安装过程如果卡住超过十分钟没动静或者突然跳回上一步说失败先别急着重装。老安装器一般会写日志位置通常在安装包同级目录或者系统的临时目录下会生成类似install_logs这样的文件夹里面有按时间命名的日志文件。打开最新的那个日志直接拉到最末尾看。常见的几类结尾报错和对应原因日志里的关键词大概率原因处理方式access denied / permission权限不足或目标目录被占用用管理员身份重跑关掉杀软换个安装目录failed to register / registry注册表写入被拦退出安全软件确认 UAC 没有被完全关掉driver install failed驱动签名被拒见第 5 章的处理方式先装完本体再单独处理驱动磁盘空间不足目标盘空间不够全组件安装建议预留 15 GB 以上余量找不到某个用户目录环境变量被改过比如 TEMP 指向了不存在的路径检查 TEMP、TMP 环境变量我最常遇到的是第一类和第二类说出来很朴素但确实占了绝大多数。还有一类是安装到一半界面没反应但后台在写文件这时候不要手快关掉打开任务管理器看有没有安装进程还在活动磁盘有没有读写。3.4 首次启动工作区选择与卡在启动画面的处理安装完成后启动程序在安装目录下的eclipse子目录里可执行文件名一般是ccstudio.exe。第一次启动会弹一个对话框让你选工作区这里就是我前面说的关键决策点填一个短的英文路径。第一次启动会比较慢因为要初始化插件和建索引等一两分钟是正常的。但如果启动画面转完之后进程还在但界面不出来或者转两下直接消失按这个顺序排查右键ccstudio.exe属性里设置 Windows 7 兼容模式 管理员身份运行再试一次换一个全新的空工作区目录再启动排除工作区损坏用命令行带清理参数启动ccstudio.exe -clean让它重建插件缓存看安装目录下有没有日志文件一般在eclipse\configuration或者工作区的.metadata下里面通常有确切的失败原因第三步的-clean是我用得最多的一招。老 Eclipse 的插件缓存有时候会在异常退出后处于半损坏状态表现就是启动卡死或者界面空白-clean会让它重建缓存代价只是第一次启动更慢一点。4. 安装与启动阶段的报错对症表这一章把最常见的几类报错单独拎出来讲每一条都说明现象、根因、处理顺序。如果你的报错不在里面处理思路也通用先看报错文本里的 dll 名、路径名、权限词然后往对应的方向查。4.1 0xc000007b 和缺 dll永远先怀疑位数这两个报错经常一起出现根因高度一致。0xc000007b这个码的含义大致是应用程序无法正常启动在装老软件的场景里超过一半是32 位程序加载到了 64 位的 dll或者反过来。具体怎么查用系统自带的依赖查看工具或者更直接的办法是搜一下系统里同一个 dll 有几个副本。我处理过的一个典型案例是系统里同时存在 VC 运行库的 x86 和 x64 版本但 x86 那个的版本号偏老缺了某个导出函数于是 CCS 启动时加载失败。解决办法是把该运行库的 x86 版本升到最新卸载旧的而不是把 x64 版本删掉。还有一个隐蔽的坑有些显卡驱动或者输入法会往系统目录里塞自己的 dll恰好和老 Eclipse 需要的某个名字撞上。这种情况的特征是别的电脑上能启动就这台不行或者说重装系统后就好了。处理方式是找出冲突的 dll 来源把对应软件临时卸载验证。4.2 Java was started but returned exit code13这个报错在 Eclipse 系工具里非常经典含义是 JVM 启动失败。CCS5.5 自带 JRE正常情况下不会用到系统的 Java所以出现这个错通常是下面几种情况之一你手动改过启动参数或者环境变量指向了系统里的 Java系统里装了 64 位 Java 并且被提前加载位数不匹配自带的 JRE 目录被安全软件删掉或隔离了部分文件处理顺序我一般是这样先检查有没有设置过JAVA_HOME之类的环境变量如果有临时改掉或者删掉然后去安装目录下确认自带的 JRE 目录完整有没有bin\java.exe如果文件明显缺失说明安装时被杀软拦过重装一次本体并全程退出杀软最后再考虑改启动配置文件里的 JVM 路径。我踩过一次这个坑最后的根因是安装过程中杀软隔离了 JRE 里的某个文件重装时全程退出杀软就好了。所以这条报错如果出现第一件事是去核对文件是否完整而不是去下载新 Java。4.3 安装程序报权限错误、或者装到一半回滚这类问题的排查顺序我总结成四步确认是用管理员身份运行不是双击确认安装目录所在盘可写且目录没有被其他进程占用比如资源管理器停在里面确认安全软件全部退出不光是关闭界面要确认后台进程也退出了换一个更短、更干净的安装路径再试比如从D:\安装\新建文件夹换成D:\ti\ccsv5第四步听起来像玄学但它解决过我遇到的好几次疑难问题。老安装器在处理深层路径、带非 ASCII 字符的路径时确实会出问题换路径之后报错直接消失这种情况我碰到不止一次。4.4 工程能打开但编译报一堆莫名的错这一条严格说不是安装阶段的错但它经常在刚装完打开第一个工程的时候爆发让人误以为安装失败。典型症状是打开厂家例程编译报几十个错误说找不到头文件、找不到库。根因基本是两个头文件搜索路径没配全库搜索路径没配全。老例程往往依赖芯片支持库比如外设寄存器头文件、外设驱动库这些路径在工程属性里配置。如果你是从别的电脑拷过来的工程路径里可能还写着原电脑的绝对路径比如C:\ti\ccsv5\...和你现在的安装路径不一致自然找不到。处理方式打开工程属性找到编译器包含路径和链接器库路径两栏把里面的绝对路径改成你自己机器上的路径或者更稳妥的做法是改用相对路径加一个路径变量。这一步做一次后面拷来拷去就不容易坏了。5. Win10 下最难的一关仿真器驱动与目标连接如果你用的是 XDS100v1 这类老仿真器那么前面四章都过得很顺到了连板子这一步大概率会卡住。这不是你的问题也不是板子坏了而是那几年的驱动没有按现在的签名要求做。这一章我把可行的路线按代价从低到高排一遍。5.1 三条路线一次性免签名、测试模式、换仿真器路线一每次开机时选择禁用驱动签名强制校验。Win10 的高级启动里保留了这个入口设置里找到恢复相关的选项进入高级启动重启后在启动设置界面按提示选择禁用驱动程序强制签名的那一项。这个选择只在本次开机有效重启后恢复。适合偶尔连一次板子的场景代价是每次都要走一遍开机流程。路线二临时开启测试模式。用命令行以管理员身份执行开启测试模式的命令重启后系统允许加载未签名驱动桌面右下角会出现一个提示水印。装完驱动、确认能连上之后用对应的命令把它关掉再重启恢复。注意测试模式会降低系统的驱动校验强度属于调试期间的临时手段。用完必须关掉绝对不要在有重要数据、连接外部网络的机器上长期开着。路线三换仿真器或者换版本。我自己最后走的是这条。XDS100v2 及之后的仿真器驱动签名完善在新系统上基本即插即用XDS110 更省心。如果板子是插拔式的仿真器接口花点成本换一个省下来的时间远比折腾驱动划算。如果板子焊死了 XDS100v1那就只能接受路线一或者路线二。我的实际建议是先用路线一验证板子和 CCS 本身没问题确认整条链路能跑通再决定要不要长期用路线二或者换硬件。顺序反了会很痛苦因为你在驱动没搞定的时候分不清是驱动问题还是板子问题。5.2 FTDI 驱动冲突导致 -151 的完整清理重装流程XDS100 系列仿真器内部用的是 FTDI 的 USB 转串口芯片所以系统里会存在两套驱动Windows 自动装的通用 FTDI 驱动和 CCS 自带的专用驱动。两者打架的时候连接目标会报出这句One of the FTDI driver functions used during configuration returned an invalid status or an error code对应的错误码通常出现在提示的前面形如Error -151。处理流程我是这么走的打开设备管理器找到仿真器对应的设备可能显示为串口设备也可能在通用串行总线设备下右键卸载勾上删除此设备的驱动程序软件这一步关键不勾的话系统下次插上还会自动装回通用驱动拔掉仿真器重启电脑重启是为了清掉内核里残留的驱动实例如果需要禁用签名校验先按 5.1 的路线一处理进入当前这次会话插上仿真器如果系统自动装了通用驱动再去设备管理器里手动更新驱动指向 CCS 安装目录下的仿真器驱动目录选择从磁盘安装安装过程中如果弹出驱动发布者验证警告选择仍然安装装完后在设备管理器里确认设备名称变成了带 TI 或者 XDS 字样的设备没有黄色感叹号这个流程里第 2 步和第 3 步是最容易被跳过的也是决定成败的两步。我见过不少人在那里反复更新驱动结果每次都被系统自动装回通用驱动然后就一直报 -151。另外补充一个经验不同 CCS 版本里仿真器驱动所在的路径不完全一样一般在安装目录的ccs_base下面按common、uscif、emulation这些目录名去找带.inf文件的文件夹。找不到就用搜索功能在整个安装目录里搜*.inf数量不多一眼就能认出来。5.3 连接错误码速查与硬件端排查顺序驱动搞定之后剩下的报错就基本是硬件和配置层面的了。我把几个常见错误码和对应方向列一下错误码大致含义优先排查-151驱动函数返回异常驱动冲突、签名问题见 5.2-1015找不到仿真器设备USB 线、供电、设备管理器识别状态-180JTAG 扫描链异常排线接触、复位脚、TRST 上拉、板子供电-183扫描到链路但目标无响应目标是否上电、时钟是否起振、复位是否被拉住排查顺序我固定这么走先看板子电源指示灯再看设备管理器再看 CCS 的连接配置最后才去怀疑芯片。也就是说先排除最低层的问题。连接配置里有几个参数值要检查器件型号是否选对选错型号很多时候也能连上但下载和调试会出怪问题、仿真器类型是否和实际一致、JTAG 时钟频率是否过高老板子线长时钟降到较低档位往往一下子就好了。JTAG 时钟降频这一招我屡试不爽尤其是板子排线比较长、或者旁边有干扰源的时候。还有一类现象特别容易被误判连接时好时坏有时候能连有时候连不上。这种情况八成是接触问题重点检查排线插座有没有松动、板子上的 JTAG 引脚有没有虚焊、USB 线是不是太长或者质量太差。5.4 多版本 CCS 共存时驱动互相覆盖的坑如果你机器上还装着较新版本的 CCS这一条一定要看。较新版本在安装时会把自己带的仿真器驱动装进系统可能把 5.5 用的那套驱动覆盖掉。表现就是新版本用着好好的回头打开 5.5 连不上了。处理方式是确认 XDS 驱动的版本归属需要哪个版本就用哪个版本自带的驱动重新装一次。为了减少来回折腾我会把某一次调好的驱动目录整个备份下来比如把ccs_base下仿真器驱动那几个文件夹复制一份到别处下次被覆盖了直接用备份重装几分钟就恢复。另一个思路是把仿真器按版本分工老工程用老仿真器配 5.5新工程用 XDS110 配新版本。这样两个环境互不干扰虽然多占一个 USB 口但省下来的时间很值。6. 装好之后的第一件事用一个最小工程验证工具链环境能启动、仿真器能识别还不代表整条链路是通的。我习惯用一个最小工程把编译、下载、运行三个环节都验一遍然后再去打开真正的项目。这样万一后面出问题你能确定是工程本身的问题还是环境的问题。6.1 新建工程、器件型号与编译器版本新建一个空工程器件型号按你板子上的芯片选注意型号后缀不要选错同一系列里 RAM、Flash 容量和封装不同的型号器件支持文件是不一样的。编译器版本选安装包里带的那个先不要改。工程建好后先加一个空的主函数编译一次什么都不做只确认能过。这一步的意义是把工具链能不能跑和代码对不对分开。很多人一上来就把厂家例程全导进来编译报一堆错然后分不清是环境问题还是例程适配问题。编译通过之后配置调试目标选仿真器类型、选器件、设 JTAG 时钟然后点下载。下载成功说明链接脚本和 Flash 烧写算法都对。最后进调试界面全速运行看板子上有没有预期反应最简单的是看某个指示灯的初始状态变化。6.2 编译报错里最常见的两类路径问题这两类问题我可以说每次都能遇到列出来你直接对号入座。第一类是头文件找不到。报错形如cannot open source file xxx.h。原因是工程的包含路径没配全或者配的是别人电脑上的绝对路径。处理方式是打开工程属性在编译器包含路径里把芯片支持库的目录加进去注意顺序自己的头文件目录放前面库目录放后面避免同名的头文件被库里的覆盖。第二类是库找不到。报错形如cannot find -lrts2800_ml.libC2000 常见或者链接阶段报符号未定义。原因是链接器的库搜索路径没配上或者库文件名写错。注意链接器里指定库的写法在不同工具链上不太一样有的是-l加库名有的是直接给路径看你的工具链文档。还有一个隐蔽的编码问题老编译器对源文件编码敏感。如果源文件里有中文注释而文件编码和工具链期望的不一致可能出现注释乱码甚至编译报错。稳妥的做法是源文件统一用 UTF-8 保存并在工程属性里显式设置编码或者干脆把注释写成英文这在多人协作的老工程里其实挺常见。6.3 从闪灯到外设分阶段验证的顺序最小工程跑通之后验证顺序我建议这样排每一步都只引入一个新变量普通 IO 翻转确认下载、运行、断点都正常这一步只考验工具链定时器中断确认中断向量表、中断使能链路正确这一步开始考验工程配置PWM 输出确认外设寄存器配置正确可以用示波器或者逻辑分析仪看波形ADC 采样先用软件触发确认采样值合理再换成 PWM 触发第四步里 PWM 触发 ADC 是个很典型的应用场景触发源通常挂在 PWM 模块的特定事件上比如计数器的零点或者峰值配置的时候要同时关注两件事触发源有没有选对、采样保持窗口够不够长。窗口太短采样值会偏小或者跳变触发事件和采样时刻没对齐采到的就不是你想要的那个点。再往后如果涉及通信外设比如 CAN有一个特别容易踩的坑初始化时中断标志没有清干净导致使能中断后进了一次就再也不进了。这类问题的特征是第一次能进中断后面没反应处理方式是在使能中断之前把相关的中断标志位逐个读一遍、清一遍再打开使能。6.4 外扩 Flash 之前必须想清楚的一件事EMIF 的位宽如果你后面要给系统加一块外扩 Flash或者要在老工程上改存储方案那有一个概念现在就得搞清楚不然等到调试读写出错的时候会绕很大的圈子EMIF 接口的数据位宽寄存器里配的值必须和硬件实际接的位宽一致。硬件上的区别很直观Flash 的 8 位数据线接到 EMIF 的高 8 位还是低 8 位还是 16 位全接这决定了你在寄存器里该把宽度字段配成 8 位还是 16 位也决定了你访问时的地址对齐方式。配错之后的症状通常是读回来的数据整体错位比如你想读低字节结果读到的是高字节或者奇偶地址读到的值互换。这种错误不会报编译错也不会报运行错就是数据不对很难查。我的做法是接线之前先把原理图和 Flash 数据手册的数据线连接方式画出来和 EMIF 的时序寄存器的位宽字段逐一对应写成一页笔记贴在旁边。同时把片选空间的时序参数留一点余量建立时间、保持时间、选通宽度老 Flash 的访问速度慢时序卡得太紧在温度变化或者线长变化的时候就容易出错。7. 长期维护上的几条经验装好一次只是开始这套环境躺在机器上是要用几年的我在维护上攒了几条经验分享出来。7.1 该备份的三样东西第一样是安装包本身。这类老版本的安装包隔两年可能就不好找了或者找到的版本和你当初用的一致却不是同一个。占几百兆到一两个 G 的空间放在移动硬盘上比将来满网找包省事得多。第二样是调好的驱动目录。就是前面说的ccs_base下那几个仿真器驱动文件夹。拷贝一份出来遇到驱动被覆盖、系统重装直接拿回来重装几分钟搞定。第三样是工作区和工程配置。尤其是那些你花了很多时间配置好的包含路径、库路径、编译选项可以把工程导出成归档包保存。同时也养成习惯把工程放在工作区之外的位置工作区只放索引。这样万一需要删掉.metadata重建工程本身一点都不受影响。7.2 实验室批量装机的一点偷懒思路如果你要给一批机器装同样的环境别一台一台装。我的做法是在一台机器上完整走通流程包括驱动和验证工程把安装目录、工作区模板、驱动备份、安装包整理到一个统一的目录结构里用系统镜像的方式批量部署或者至少把这套目录结构原样拷贝到每台机器每台机器只需要做两件事装运行库、装驱动驱动往往和机器无关可以脚本化需要注意的是安装目录的绝对路径在所有机器上保持一致否则工程里的路径配置会失效。所以统一用D:\ti\ccsv5这种固定路径别有的机器用 C 盘有的用 D 盘。7.3 什么时候该果断放弃 5.5最后说一个我自己的判断标准。如果满足下面任意两条我就会考虑花时间把工程往新版本迁移而不是继续在 5.5 上打补丁驱动签名问题反复出现每次开机都要走一遍特殊流程新板子、新仿真器在 5.5 上完全没有支持需要用的新外设或者新芯片型号5.5 的器件支持包里没有团队里其他人都已经切到新版本只有你这边对不上迁移本身的工作量主要集中在链接脚本、编译器选项和少量编译器行为差异上工程源码本身的改动往往比想象中小。判断的依据不是哪个版本更好而是哪条路的未来维护成本更低。老环境能稳定跑就留着一旦开始反复出问题就该认真评估迁移了。这套流程我在几台不同配置的 Win10 机器上都跑过包括原版系统、长期未更新的系统和装了各种开发工具的系统按上面的顺序走顺利的情况下半小时能装完并连上板子最慢的一次卡在驱动上也不过多花了一个小时。真正费时间的从来不是安装本身而是不知道问题出在哪一层。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →