☰
CCS安装与配置全流程详解:从下载到调试的实用指南
2026/10/2 15:53:35 网站建设 项目流程

搞TI芯片的人,基本绕不开CCS,也就是Code Composer Studio。它是TI官方的集成开发环境,负责从写代码、编译,到烧录、调试的完整流程。相比Keil那种“装完就能用”的体验,CCS初次安装和配置会显得稍微麻烦一点:组件要自己选,仿真器驱动要单独确认,工程导入还可能遇到编译器版本不匹配的问题。这篇博文就是围绕CCS安装及配置的完整流程来写的,把从下载安装包、选组件、设工作区,到导入工程、烧录调试,以及我踩过的各种坑都梳理一遍。适合刚接触TI平台、或者从别的IDE转过来了想要快速上手CCS的开发者。

1. 安装前的准备:版本、系统和下载

1.1 先分清CCS版本,别下错安装包

CCS的版本迭代挺多的,早期有CCS 5.x、6.x,后来是CCS 7、CCS 8,现在主流已经到CCS 12.x甚至更新的版本。很多老工程师的电脑里还躺着CCS 6.x,专门用来伺候一些老器件,比如MSP430F149、TMS320F28335这类老熟人。

不同版本对器件支持差异很大,安装前要对自己手上那颗芯片有数:

  • CCS 6.x / 7.x:老版本,适合MSP430、老C2000系列,对新器件比如MSPM0、CC26xx的支持不完整。
  • CCS 8.x / 9.x:中间过渡版本,用于老工程维护比较常见。
  • CCS 12.x:目前主力版本,基本覆盖TI所有新老器件,也是官方持续更新的LTS版本。
  • CCS 20.x等新版本:界面和底层架构有变化,适合新项目,但老工程迁移偶尔会出幺蛾子。

我个人的建议是,除非你明确知道自己要维护的是一个老工程、老编译器版本,否则新装机直接上CCS 12.x LTS版本,省心。MSPM0这种新系列芯片,官方SDK普遍支持CCS 12.x以上,老版本根本编译不过。

1.2 安装包下载与系统需求

CCS下载要到TI官网的Software & Tools页面搜索“CCStudio”,下载时有两个选择:在线安装器(Online Installer)和离线安装包(Offline Installer)。

在线安装器体积小,但安装过程等于边下载边装,中间一旦网络波动就很容易卡死,而且公司内网代理环境下经常会遇到下载到一半就报错的情况。离线包虽然单文件有1GB多,但下载完事就是完整的安装包,本地解压安装就行,强烈推荐。

下载前需要注册一个TI账号并登录,这是TI官方的正常流程,账号免费。系统方面,Windows 10/11 x64支持最好,Linux和macOS也能装,但驱动、仿真器相关的配置会比Windows多一道坎,新手不建议一上来就挑战。

1.3 安装前必做的三件事

正式双击安装之前,有几件小事最好提前处理,不然容易中途翻车:

  1. 关闭杀毒软件或Windows Defender实时防护。CCS安装包体积大、文件多,有时会被杀毒软件误判,导致安装到一半组件丢失。
  2. 准备一个纯英文安装路径。比如D:\ti\ccs12xx,不要带中文和特殊符号。虽然CCS对路径要求没某些编译器那么苛刻,但后续工程里一旦牵扯到命令行构建、脚本调用,中文路径会带来一堆莫名其妙的坑。
  3. 确保磁盘剩余空间至少在15GB以上。CCS本体加上器件支持包、SDK、编译工具链,装完轻松超过10GB,这还不算你后面要安装的SDK和例程。

注意:用户名如果是中文,也会影响部分工具链的工作,这是Windows平台的老问题。如果条件允许,最好用英文用户名。

2. 安装过程详解

2.1 选择安装模式:离线包更省心

双击离线安装包后,程序会先解压临时文件,这个阶段看起来像卡住了,其实是在后台释放文件。我在老电脑上装过一次,解压过程接近十分钟,界面一动不动,一度以为死机了。这时候不要强杀进程,耐心等,或者开着任务管理器看一眼CPU和磁盘活动,确实是满负荷工作。

解压完成后进入正式安装向导。第一屏是许可协议,接受之后就是选择安装类型。如果是在线安装器,会让你选择安装哪些组件;如果是离线包,组件选择界面的逻辑是一样的,只是所有文件都在本地。

2.2 组件选择:别贪多,选匹配的

组件选择这一步是整个安装过程里最核心的。CCS把不同器件族的支持包分得很细,理论上你只需要勾选和实际项目相关的组件,可以少装很多没用的东西。

以我常用的组合为例:

组件说明是否建议勾选
MSPM0 / MSP432TI新一代Cortex-M0+系列用MSPM0必选
MSP430经典的超低功耗MCU根据实际使用勾选
C2000实时控制MCU/DSP做电机、电源控制才需要
SimpleLink CC13xx/CC26xx无线连接MCU做BLE、Sub-1G才需要
XDS110 USB Debug Probe仿真器驱动组件强烈建议勾选,几乎所有LaunchPad开发板都带XDS110
ARM Compiler Tools编译工具链默认勾选,别动
SysConfig图形化引脚和外设配置工具强烈建议勾选,新工程基本离不开它

提示:组件选得越多,安装时间越长。很多人装了一堆用不到的器件支持包,不仅占空间,还拖慢启动速度。建议按需勾选,后期真需要时可以通过“Modify/Add”功能再补装。

2.3 安装目录设置

组件选完之后,安装程序会让你确认安装目录。CCS默认装在C:\ti\下,我习惯改成D盘,原理和1.3节说的一样,避免路径有中文和权限问题。注意CCS安装目录和工程工作区(Workspace)是可以分开的,工作区放在数据盘也是个好习惯,后续升级CCS版本时不会误删工程。

安装过程中,进度条会分成几个阶段:组件复制、SDK解压、驱动安装(Windows可能会弹数次设备驱动安装提示,选择允许)。如果安装过程中突然报错,最省事的方法是把安装日志路径记下来,常见在C:\ti\ccs12xx\ccs\install_logs下,装完还能回溯排查。

2.4 安装完成后的检查

安装完成后桌面会生成CCS启动图标。第一次启动时,程序会初始化工作空间并可能提示安装额外的SDK组件,建议先不要急着批量装,直接启动进入主界面。

一个非常容易忽略的检查点:XDS110仿真器驱动是否安装成功。把LaunchPad开发板插上电脑,打开设备管理器,如果能看到“TI XDS110 Debug Probe”或者“XDS110 Class Debug Probe”之类的设备,且没有黄色感叹号,说明驱动正常。如果显示未知设备,那就是驱动没装上,后面第6节会讲怎么修。

3. 首次启动与基础配置

3.1 工作区(Workspace)设置

CCS基于Eclipse,所以一上来就会让你选择Workspace路径。工作区是用来存放工程元数据(.metadata)以及默认工程的地方,它和CCS安装目录是两码事。

首次启动时弹窗里填的路径,我建议不要用默认的C:\Users\用户名\workspace_v12这种,因为里面带着用户名,中文系统下极容易出现编码问题。建议建一个专门的目录,比如D:\workspace\ccs_workspace,所有工程都堆在这里,并勾选“Use this as the default and do not ask again”。

工作区千万别放到U盘、网盘同步目录里。CCS会持续读写.metadata里的索引文件,同步工具和虚拟磁盘会导致文件锁冲突,轻则启动变慢,重则工程索引直接损坏。

3.2 许可证和登录

总有新同学问:CCS是收费的吗?CCS本身对开发者是免费的,首次启动时它会要求登录TI账号,或者选择“Continue with a free account”,离线使用时也可以跳过登录,不影响编译和调试。某些组件(比如部分老编译器的license)会有单独的限制,不过正常开发场景基本碰不到。

3.3 确认目标配置:Debug Configurations 和 Target Configuration

进入主界面后,不用急着写代码,先确认CCS能不能认到开发板。在菜单栏选择View -> Target Configurations,面板里通常会有系统预设的User Defined列表。如果没有也没关系,右键新建一个Target Configuration:

  1. 选择Connection类型,常见的是Texas Instruments XDS110 USB Debug Probe。
  2. 选择设备型号,比如MSPM0G3507、CC2642R1F、TMS320F28379D等。
  3. 保存后点击Test Connection,能够看到“The target is connected”的绿色提示,说明CCS和板的链路是通的。

这一步是很多人装完CCS后忽略的瓶颈。很多人认为装好软件就能点Debug,结果一上来就报“Error connecting to the target”,多半是Target Configuration没建对或驱动有问题。

3.4 配置SDK和SysConfig

新版本CCS启动后会有一个“Resource Explorer”窗口,里面是TI官方SDK、例程、文档的快捷入口。如果没有,可以在View -> Resource Explorer里打开。利用它可以一键安装/导入对应芯片的SDK,比如MSPM0 SDK,导入后会有完整的驱动库、例程和文档,省得自己去官网打包下载。

SysConfig是TI的图形化配置工具,类似STM32CubeMX的角色。安装CCS时勾选了这项组件,新建工程时才能选带SysConfig的模板。我在开发MSPM0时经常都是先在SysConfig里点选引脚和配置UART、I2C外设,再生成初始化代码,效率高很多,强烈推荐摸索一下。

4. 创建工程与导入已有工程

4.1 从零新建一个CCS工程

很多新手装完CCS第一件事就是新建工程,结果被各种选项绕晕。菜单File -> New -> CCS Project,弹出对话框逐项填:

  1. Target:选择芯片型号,搜索框可以输入具体型号,比如MSPM0G3507。
  2. Connection:选仿真器,开发板板载通常是XDS110。
  3. Project name和Location:工程名建议英文,路径默认会在工作区下,也可以勾选“Use default location”之外的自定义路径。
  4. Compiler:比如TI Arm Clang Compiler,或TI ARM Compiler Tools,新版CCS默认就行。
  5. Project template:建议直接选“Empty Project with main.c”,或者带SysConfig的模板,避免自己手动补main函数和头文件路径。

创建完工程,打开main.c,可以先用一个最简单的点灯程序验证工具链。以MSPM0G3507为例,初始化后翻转LED引脚,编译烧录并确认灯能亮,这代表CCS安装和配置已经基本通了。

#include "ti_msp_dl_config.h" int main(void) { SYSCFG_DL_init(); while (1) { DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN); delay_cycles(32000000 / 4); } }

4.2 导入已有工程:老工程和例程的导入方法

再说导入工程,这是实际开发里最常用到的功能,也是问题最多的环节。

  • 如果是同事发过来的完整工程文件夹,菜单File -> Import -> Code Composer Studio -> CCS Projects,然后在“Select search directory”里指向工程根目录,CCS会自动解析.ccsproject和.projectspec文件,列出可导入的工程。这一步有个选项“Copy projects into workspace”,我建议默认勾选,这样CCS会把工程复制到工作区里,对原工程不会有任何影响。反之,如果不勾选,CCS会直接在原目录编译,可能会污染别人发来的原始代码。
  • 如果是从CCS 6/7这种老版本导过来的工程,导入后大概率会提示工具链版本变化,编译会出现各种语法错误和选项警告。解决办法是右键工程选Properties -> General -> Tool-chain Version,切换成当前CCS自带的新编译器,然后Project -> Clean,清理后重新全量编译。
  • SDK例程的导入更简单,通过Resource Explorer打开对应例程,点右上角的“Import”按钮,CCS会自动把例程导入工作区。注意保持SDK版本一致,比如MSPM0 SDK从1.0升级到2.0后,旧例程直接导入新SDK环境偶尔会出现驱动API不兼容。

4.3 头文件、库文件路径配置

刚导入的工程如果编译报错“Cannot open source file xxx.h”,往往就是头文件搜索路径没配置。右键工程Properties -> Build -> Arm Compiler -> Include Options,在这里把SDK的driverlib目录、工程自己的inc目录加进去。

同理,链接阶段报“Cannot find xxx.lib”或者“Unresolved symbol”,就要看Arm Linker -> File Search Path里的库文件路径是否指对了。比如MSPM0的SDK会生成ti_msp_dl_config.c和对应的库文件,如果路径缺失,所有调用driverlib的API都会变成未定义符号。

心得:新工程我习惯先通过“Import”官方例程,然后在此基础上改,而不从空工程挨个配路径。官方例程的include路径、链接配置都是验证过的,能少踩90%的坑。

4.4 宏定义和编译优化

有些例程依赖预定义的宏,比如MSPM0G3507、DEBUG等。在Properties -> Build -> Arm Compiler -> Predefined Symbols里能添加。遇到“符号未定义”时不要只怀疑代码,先看看预处理宏是不是少配置了。

5. 编译、烧录与调试实操

5.1 编译配置:Debug和Release,还有增量构建

CCS的构建配置默认有Debug和Release两种。Debug版带调试符号、优化等级低,程序量大,适合调试;Release版开优化,比如-O2、-O3,适合发布。切换位置在工程名右侧的下拉框。

构建快捷键是Ctrl+B,左侧工具栏上的“锤子”图标也有构建按钮。首次构建会用蛮长时间,因为SDK库文件都要编译。之后再构建就是增量编译,只编译改动的文件,速度会快很多。

构建成功后,Debug目录下会生成.out文件(TI的ELF格式)、.hex和.bin,烧录文件都在这里。构建失败时,Console窗口会输出具体错误,双击错误行能直接跳到对应源码。如果报错信息特别长,优先看最上面的几行,“error #”开头的才是问题根源,下面一串“warning”和“note”很多是连带错误的噪声。

5.2 烧录和调试:Debug按钮背后的逻辑

编译通过后,直接点工具栏的“绿色虫子”图标(Debug)。CCS会读Target Configuration,然后连上XDS110,把程序下载到Flash,并停在main函数的入口处。

如果这个过程中报错,逐项排查:

  1. Target Configuration里的Connection和Device是否匹配。
  2. 开发板是否上电、USB线是否数据线(很多USB线只能充电不能传数据)。
  3. 开发板驱动是否正常。
  4. 接线是否是标准JTAG/SWD或cJTAG。

调试界面里,最常用的几个窗口是Variables(局部变量)、Expressions(表达式)、Registers(寄存器)、Memory(内存)和Breakpoints(断点)。在代码行号前双击可以设置断点,然后点“Resume”运行到断点,再单步、单步跳入、跳出。老手还会用“Watch”窗口直接输入GPIOA->DOUT这类寄存器表达式观察引脚输出,调试效率比一遍遍用示波器打点高很多。

5.3 命令行构建和与VS Code协同

如果你习惯用VS Code写代码,也可以用CCS的命令行功能来做编译和构建,这样整个流程能接入自动化脚本甚至CI系统。

和安装目录相关的命令大致的思路是:通过eclipsec.exe加-noSplash参数,指定workspace路径和application构建选项,对指定工程执行clean、build等操作。

cd <CCS_INSTALL_DIR>\ccs\eclipse eclipsec.exe -noSplash -data D:\workspace\ccs_workspace -application com.ti.ccstudio.apps.projectBuild -ccs.projects MyProject -ccs.configuration Debug

这个命令执行时不需要打开CCS界面,很适合在脚本里调用。VS Code搭配CCS的使用方式,则是把VS Code当纯编辑器,写好代码后切回CCS编译调试,或者配合CCS的编译命令在VS Code终端里触发构建。实测下来,只要工程的include路径配置正确,两边协同工作没有大问题。

6. 常见问题与排查技巧实录

6.1 设备管理器里看不到XDS110

默认情况下,LaunchPad插USB后会自动装驱动。如果没装好,最典型的特征是设备管理器里有个带黄色感叹号的“XDS110”或“Unknown Device”。

排查步骤:换一个USB口(优先主板后置口,不要用机箱前置面板甚至USB Hub),拔插之后看系统是否识别。还不行就手动更新驱动,右键未知设备选“更新驱动程序 -> 浏览我的电脑 -> 让我从计算机上的可用驱动程序列表中选取”,然后指向CCS安装目录里的ti\ccs12xx\ccs\ccs_base\emulation\windows\xds110,一般这步就能捡回来。

注意:驱动安装完成后最好拔插一次USB,让系统重新枚举设备,有时候不重新枚举,CCS依然认不到设备。

6.2 编译报“unresolved symbol”是怎么回事

这类问题出现过无数次,尤其是导入SDK例程时。常见原因有三个:

  • 使用了driverlib的API,但没有把对应的库文件或源文件加入工程。
  • include路径对,但预定义符号缺失,导致头文件条件编译没走到。
  • SDK版本不对,旧代码调用的API在新SDK里改名了。

排查方法:右键工程查看Properties -> Build -> Arm Linker -> File Search Path,在“Include library file or command file”里看看有没有库文件路径。然后全工程搜索报错符号名,确认它的定义文件是否存在且被工程包含。如果是case-sensitive的大小写问题,C语言里大小写敏感,SDK库里和代码里不一致也会报未定义。

6.3 导入老版本工程后,工程名带个感叹号

工程从别人那里拷过来,导入CCS后项目上有个黄色感叹号,但编译正常。这种通常是因为工程引用了一个不存在的路径,或者SDK组件版本不匹配。右键工程选Properties -> Resource -> Linked Resources,检查有没有指向旧机器绝对路径的链接。如果没有引用问题,就试试Project -> Clean和重新Build,感叹号大概率会消失。

如果工程里带的是红叉,多半是编译器版本不支持当前的.cmd文件或者链接脚本语法。老工程从CCS 6.x迁移到CCS 12.x,常常会遇到cmd文件里某些内存段定义不适用新芯片的问题,需要手动核对内存映射。

6.4 Debug时提示“Error connecting to the target”

这个报错比“无法找到设备”看起来更专业一些,但其实非常多见。除了驱动问题,更常见的是开发板处于死锁状态,或者硬件看门狗生效,复位脚被拉住。

处理办法:按住开发板上的复位键,点CCS的Debug,等连接开始后再松开复位键,也就是所谓的“connect under reset”。CCS里可以在Debug Configuration中设置连接选项,比如“Enable cJTAG”或者“JTAG/SWD模式”。另外把Target Configuration里的时钟频率调低一点,比如从100MHz降到1MHz,有时候也能连上。

6.5 安装程序卡住或被杀毒软件误报

安装CCS卡住,最多的情况是在“Installing device support”阶段长时间不动。这不是死机,它可能在后台编译数据库或者写注册表。可以等10分钟以上再看,同时观察磁盘、CPU占用。如果确认彻底没动静,那就关掉安装进程,重新运行离线安装包,安装程序一般会断点续装,不会从头再来。

杀毒软件误报时,优先把CCS安装目录加白名单,尤其是C:\ti\这个路径,否则后续装SDK或升级组件也会有各种诡异问题。

6.6 提升CCS使用效率的几个小技巧

最后一个实用话题,说说我日常用下来的几个提升效率的习惯:

  • 善用索引搜索:Ctrl+H打开搜索,可以用文件搜索在全工程内找函数定义;Ctrl+Shift+R快速打开文件。
  • 避免全量编译:修改头文件会触发大量文件重编译,尽量把稳定的驱动封装成库,减少头文件变更。
  • 定期清理Debug目录和生成的中间文件:工程长时间使用后会积累巨量.o、.d文件,偶尔一次“Clean”能解决很多莫名其妙的编译问题。
  • 用SysConfig给工程加注释:SysConfig生成的代码里会带有配置的注释,后续翻阅工程时能快速想起每个引脚是干什么的。
  • 善用Snapshot和工程模板:把团队常用的外设组合存成模板,新项目直接套用,能省下大量初始化时间。

7. 写在最后的几点实操体会

这几年代码从MSP430、C2000到MSPM0都接触过,CCS给我的感觉是:它不像某些IDE一样追求“开箱即用”的零门槛,而更像一套需要按着正确姿势伺候的工程套件。安装时少装了组件,导入工程时没勾Copy,调试时Target Configuration搞错,都会让你卡上一阵子。但反过来,一旦把安装、SDK、目标配置这些基础打牢,后面开发十六位MCU和新的Cortex-M0+,整个过程会非常顺。

我自己在第一次用CCS导入MSPM0例程的时候,就因为找不到驱动库路径浪费了一晚上,后来发现只是File Search Path少了一条SDK路径。所以这篇文章看起来在讲“安装及配置”,其实更多是想帮大家把那些配置路径、驱动机制这类“隐形的知识”先打通。以后要是遇到CCS装完但连不上板、编译报错、导入工程有问题这类情况,不用慌,按着第6节的排查表逐条过,多半能解决。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询