核心分界线:v12.x 是最后一代基于 Eclipse 的传统 CCS;v20 开始切换为 Theia 架构(类似 VS Code 界面),重大架构重构;当前最新正式版:**CCS v21.0.1(2026-08 发布)**德州仪器
版本时间线(2015 → 2026)
表格
| 版本 | 大致年份 | 核心特点 |
|---|---|---|
| CCS v6.x | 2014--2016 | 2015 主流版本,Eclipse4.5 内核;开始原生 64 位 Linux;支持 CC26xx/CC13xx SimpleLink 无线 MCU,XDS110 仿真器;2015 年很多 C2000、MSP430 项目在用 v6.1/v6.2 |
| CCS v7.x | 2016--2018 | Eclipse 升级;编译器升级,新增更多 Sitara、C66x DSP 支持;SysConfig 开始引入早期版本 |
| CCS v8.x | 2018--2019 | Eclipse 更新;增强 EnergyTrace 功耗分析;编译器版本更新,修复大量 C2000 调试 bug |
| CCS v9.x | 2019--2020 | 完善 SysConfig 图形化配置工具;大量新增器件支持;Eclipse 平台维护更新 |
| CCS v10.x | 2020--2021 | 改进调试器性能,XDS 仿真器固件升级;完善 RTOS(TI-RTOS)集成 |
| CCS v11.x | 2021--2022 | 增强 Clang 编译器支持;对 AM62x 等新 SOC 支持;Eclipse 体系末期版本 |
| CCS v12.x | 2022--2024 | 最后一代 Eclipse 版 CCS,最高 v12.8.1;之后不再给 v12 加新功能,只做 bug 维护;大量存量项目(C2000、MSP430)至今还在用 v12.7/v12.8 |
| CCS v20.x | 2024--2026 | 架构大改版,基于 Theia IDE(不再是 Eclipse);界面风格接近 VSCode;v20.0~v20.5.1;支持 ARM Clang 编译器;Energia 被移除;老工程迁移需要适配,很多老脚本 / CCXML 要调整 |
| CCS v21.x | 2026 | 最新一代 Theia 架构;v21.0.0 /v21.0.1;增加 AI 助手、Python 脚本增强,更新器件支持,提升大工程编译速度德州仪器 |
重要知识点(嵌入式开发选型参考,你做 C2000/STM32、OTA、电机控制会用到)
- Eclipse 系列:v6 ~ v12
- 优点:生态成熟,网上大量旧例程、GEL 脚本、CCXML 配置;老 C2000 工程兼容性极好
- 缺点:Eclipse 笨重,启动慢;新芯片支持到 v12 后停止新增
- 推荐稳定版:v12.7 / v12.8.1,目前工业项目最常用
- Theia 新系列:v20、v21
- 优点:轻量化,界面像 VSCode,启动更快;原生支持 TI ARM Clang,新器件优先在 v20/v21 支持
- 缺点:老工程迁移坑多;部分旧 GEL 脚本、第三方插件不兼容;调试插件还在持续完善
- 编译器和 CCS 版本不是强绑定:CCS 里可以单独安装不同版本 TI-CGT/Clang 编译器,比如 v12 也能使用新版 Clang。
选型建议
- 维护老 C2000/MSP430 存量项目:CCS v12.8.1(Eclipse 末代稳定版)
- 新项目,新 SOC(AM26、CC27xx、F29H 等):CCS v20.5.1 或 v21.0.1
注意:CCS 版本 ≠ 编译器版本,很多人混淆。IDE 是 CCS,编译工具链是独立的 CGT/Clang。
CCXML 和 GEL 一句话区分
CCXML:JTAG 调试会话的「硬件连接配置文件」(XML,静态描述)
GEL:CCS 调试器里执行的「解释型脚本语言」(.gel,动态操作芯片 / 寄存器)
两者搭配:CCXML 里可以指定加载哪一份 GEL 脚本,这也是 C2000、Sitara、DSP 调试最经典组合德州仪器
一、CCXML(Target Configuration File,目标配置文件)后缀.ccxml
作用:告诉 CCS,JTAG 链路怎么连、用哪个仿真器、什么芯片 / 多核、JTAG 参数,是启动 Debug 会话的入口文件德州仪器
核心内容
- 仿真器类型:XDS100/XDS110/XDS200/XDS300、模拟器 Simulator
- 目标芯片型号:F28335/F28035、AM5728、C6678 等;多核 SOC 会列出所有核心
- JTAG 通信参数:JTAG 时钟频率、TCK 延迟、JTAG/CJTAG 模式
- 可选配置:关联 GEL 脚本路径(Advanced 选项卡里设置)
- 多核拓扑:多核心 JTAG 链结构,多个核分别独立复位、连接
什么时候需要 CCXML
- 点击「Launch Debug」启动 JTAG 调试,CCS 加载 ccxml,按里面配置去打开仿真器、扫描 JTAG 链
- 一个工程可以多份 ccxml:比如一份 XDS110、一份模拟器;不同版本硬件用不同 ccxml
- 多核心 DSP/SoC(C6678、AM57)必须靠 ccxml 描述多核 JTAG 拓扑
注意:ccxml 是描述文件 ,不会直接写寄存器;只是配置 JTAG 链路。
CCS v12(Eclipse)大量使用;新版 CCS v20 Theia 架构仍然保留 ccxml,但 GEL 支持有变化
二、GEL 脚本 General Extension Language(通用扩展语言,.gel)
GEL 是类 C 的解释脚本,运行在 CCS 调试器内部 ,不是下载到芯片上运行的固件代码,仅在 JTAG 在线调试阶段生效,芯片脱离仿真器独立运行时完全不会执行 GEL
GEL 核心能力(C2000 开发最常用)
- 连接目标时自动初始化硬件(最重要)
JTAG 连上芯片瞬间自动执行:配置 PLL 时钟、开启 DDR、设置内存映射、解锁 CSM 代码安全模块、关闭看门狗。
很多 DSP 上电后 DDR 没初始化,JTAG 连上无法访问 DDR 内存,必须靠 GEL 提前初始化 DDR,否则无法下载程序。 - 读写寄存器 / 内存
直接操作外设寄存器、查看 / 修改任意地址内存,调试时一键配置外设。 - 自定义 CCS 菜单(hotmenu)
在 CCS 的 Scripts 菜单生成自定义按钮,一键执行函数,例如一键解锁 CSM、关闭看门狗、设置内存映射。 - 断点触发自动执行
断点命中时自动跑一段 GEL 脚本,自动化测试、采集变量。 - 内存映射配置
GEL_MapAdd():告诉 CCS 哪些地址是合法可访问的存储区域,防止调试器误读非法地址报错
典型 GEL 执行时机(内置回调函数)
OnTargetConnect():JTAG 成功连接芯片时自动执行(最常用,放初始化代码)OnReset():芯片复位后执行OnPreLoad():下载程序之前执行OnPostLoad():程序下载完成之后执行
重要误区(很多人踩坑)
✅ GEL = 仿真器侧调试脚本 ,不烧录进 Flash ,板子脱离 JTAG 仿真器上电运行,完全不会跑 GEL。
✅ 芯片真正上电初始化时钟、DDR,最终必须写在工程 C 代码启动文件 里面;GEL 只是调试辅助。
❌ 不能把产品初始化逻辑完全依赖 GEL,量产代码不能依赖 GEL。
三、CCXML + GEL 完整工作流程(CCS Debug 启动)
1. 右键ccxml → Launch Selected Configuration
↓
2. CCS读取CCXML:加载仿真器、芯片型号、JTAG参数,打开XDS仿真器,扫描JTAG链
↓
3. CCXML里配置的GEL文件自动加载,执行 OnTargetConnect()
→ 配置PLL、DDR、关闭看门狗、解锁CSM
↓
4. 硬件初始化完成,CCS可以访问芯片内存,下载.out程序、断点调试
四、CCS 新旧版本差异(你前面关心 v12 /v20)
- CCS v6~v12(Eclipse 版):GEL 完全成熟,工业 C2000 项目广泛使用 GEL,CCXML+GEL 是标配。
- CCS v20/v21(Theia 新版) :CCXML 保留用于目标配置;GEL 功能被逐步弱化,推荐改用新的 CCS JS Scripting 替代 GEL。老工程迁移到 v20 时,部分旧 GEL 脚本会出现兼容性问题。
五、对比表
表格
| 项目 | CCXML | GEL 脚本 |
|---|---|---|
| 后缀 | .ccxml | .gel |
| 语言 | XML | 类 C 解释脚本 |
| 角色 | JTAG 连接的静态配置文件 | 调试器执行的动态操作脚本 |
| 运行位置 | CCS IDE 解析,不跑在芯片 | CCS 调试引擎执行,不在芯片上运行 |
| 核心用途 | 选择仿真器、芯片、JTAG 参数 | 上电自动初始化 DDR / 时钟、读写寄存器、自定义调试菜单 |
| 工程是否必需 | JTAG 在线调试必需;软件仿真也需要 | 非必需,简单小芯片(MSP430 简单工程)可以不加载 GEL |
| 量产依赖 | 不依赖 | 严禁依赖,仅调试辅助 |
六、常见坑(C2000/DSP 调试高频)
- 没有加载正确 GEL → JTAG 连上后无法访问 DDR / 外部 RAM,下载程序失败。
- GEL 只在 JTAG 连接时生效,拔掉仿真器,板子独立跑,GEL 完全无效。
- 迁移到 CCS v20 时,老 GEL 脚本可能失效,要改用 JS 脚本。
- 修改 GEL 之后,需要重新 Launch Debug 会话,不会自动重新加载。
- CCXML 不要手动直接改源码,尽量使用 CCS 图形界面修改,XML 手写容易损坏配置。