C2000开发笔记-环境搭建与仿真器驱动

又到了喜闻乐见的点灯环节。主要参考官方入门教程1

1. CCS与C2000Ware

1.1. CCS安装与配置

CCS(Code Composer Studio),TI官方的IDE,约等于单片机开发中Keil角色,支持编译、调试等功能。在Eclipse上魔改的。

步骤:

  1. 官网即可下载,需要注册和登录。
  2. 下载完成后一路next即可。
  3. 因为主要用TMS320F28x系列,所以选组件的时候勾C2000 real-time MCUs,其他根据需要自行选择。

1.2. 仿真器驱动

C2000支持XDS或JLINK,通常不需要单独下载,安装CCS时就会一并安装XDS和JLINK的驱动。

1.3. C2000Ware

C2000Ware,这是TI的官方SDK,TI官网搜索C2000Ware下载离线包,next即可。

重要部分大致如下:

C2000Ware_26_00_00_00/
├── device_support/         # 例程和驱动库(常用)
│ └── f2803x/
│  ├── examples/            # 官方例程
│  └── common/              # 头文件、源文件
├── docs/                   # 文档(硬件手册、迁移指南)
└── libraries/              # 数字电源、电机控制等算法库

2. 点灯

步骤:

  1. 选择 你的c2000安装目录\C2000Ware_26_00_00_00\device_support\f2803x\examples\c28
    • 这里例程里还可以看到cla文件夹,包含一些算法例程,c28主处理器,CAL是协助处理器,可并行。
  2. Project → Import CCS Projects
  3. 先勾选复制到工作目录(“Copy projects into workspace”)后导入,不建议在直接在例程中修改。
  4. 导入成功后编译即可通过。这里也不建议在文件管理器里直接复制整个文件夹,因为工程配置(.project 文件)里可能包含绝对路径,直接复制过来依赖仍然找不到。正确做法:用CCS的Import CCS Projects功能,浏览到官方例程目录,勾选 Copy projects into workspace。这样CCS会自动把配置、依赖路径都同步到当前工作空间,不需要手动改任何配置。同样,也不建议新建空工程,因为C2000工程需要大量依赖文件(启动代码、寄存器定义、链接文件等),手动添加非常麻烦且容易出错。已经替大家试过了。。
  5. 最后在新工程改改就能尝试驱动GPIO了。

3. 烧录

3.1. CCS使用.out文件烧录

步骤:

  1. 连接JTAG/排线(仿真器 → 目标板);
  2. 确保目标板供电;
  3. 连接仿真器USB到电脑;
  4. 给目标板上电(单独供电),先连接JTAG,再给目标板上电,避免热插拔JTAG导致IO口损坏;
  5. 打开CCS软件,随便创建或打开一个工作区;
  6. File → New → Target Configuration File;
  7. 创建一个,输入文件名(如 TMS320F28035.ccxml):
    • Connection:Texas Instruments XDS100v3 USB Debug Probe(根据实际仿真器选择);
    • Device:TMS320F28035;
    • 点击Save;
    • 点击Test Connection,确认返回succeeded。如果出现错误码,根据错误码指示解决。
  8. 在Target Configurations窗口中,右键 .ccxml → Launch Selected Configuration;
  9. 进入Debug视图后,选 C28xx → 右键Connect Targe;
  10. Run → Load → Load Program → 选择.out文件 → OK;
  11. 等待烧录结束即可。

注意:在烧录时如果选择Load Symbols Only是仅调试功能,会烧到RAM里面,下电程序就没。

3.2. UniFlash

3.2.1. UniFlash安装

UniFlash,是TI芯片的专用烧录器,支持大部分TI芯片,比如C2000、MSP系列。对芯片的片Flash进行编程,将编译好的程序或数据写入芯片。它不仅支持写入,也常用于芯片的擦除、验证等操作。

下载完成后一路next即可。

3.2.2. UniFlash使用.out文件烧录

步骤:

  1. 连接JTAG/排线(仿真器 → 目标板);
  2. 确保目标板供电;
  3. 连接仿真器USB到电脑,先连接JTAG,再给目标板上电,避免热插拔JTAG导致IO口损坏;
  4. 给目标板上电(单独供电);
  5. 打开UniFlash软件,进入界面:
    • 正常的话会自动识别连接设备,如果上次使用过相同配置,会自动进入上次的Session,并显示”Configured Device”;
    • 如果没有识别,则在New Configuration中选择待烧录芯片类型、烧录器类型,Start即可;
  6. 选择完成进入烧录界面Program → Select and Load Images,在该页浏览选择Image文件(烧录文件);
  7. 点击Load Image等待烧录结束即可,观察命令行窗口输出信息,等待显示烧录完成提示或错误指示;

注意:Load前建议检查Settings & Utilities:

  • 确认”Erase, Program, Verify” 已选中(确保完整烧录)。
  • 确认”Erase Sector Selection” 中所需扇区已勾选,直接全选(或按需选择)。
  • 确认”Clock Configuration”:保持默认(只要烧录不报错),报错则修改为芯片实际时钟配置。
  • 确认”Code Security Password”:保持FFFF(除非明确要加密)。

如果烧录后芯片不运行:检查是否勾选了”Run Target After Program Load”

3.2.3. UniFlash自动生成烧录包,执行.bat烧录

UniFlash提供了命令行烧录包生成功能,可将当前图形界面中配置好的烧录参数(芯片型号、仿真器类型、固件路径、擦除模式、扇区选择等)打包成一个独立的命令行工具包。该功能主要用于产线批量烧录或CI/CD自动化集成,将复杂的烧录流程简化为双击执行.bat文件,无需打开UniFlash图形界面,普通操作人员即可完成烧录。

步骤:

  1. 在UniFlash主界面中,进入已配置好的Session(确保已正确选择芯片型号、仿真器类型,并已加载待烧录的.out文件);
  2. 点击界面中的 “Generate Standalone Command Line Package” 选项,进入打包配置页面;
  3. 确认配置信息芯片、烧录文件等,点击 “Generate Package” 按钮,生成并下载对应的.zip压缩包;
  4. 将生成的.zip压缩包复制到目标电脑上,解压到本地文件夹;
  5. 首次使用需执行环境配置:双击运行解压后文件夹中的 one_time_setup.bat,该脚本会安装目标芯片所需的驱动程序和依赖文件,每台电脑仅需执行一次;
  6. 连接硬件(参照第4节步骤1-4:断电连接JTAG → 连接仿真器USB → 给目标板上电);
  7. 双击运行dslite.bat,脚本将自动执行烧录流程;
    • 双击的话窗口会直接消失,无法确认是否烧录成功及报错,建议当前路径cmd → 输入dslite.bat → 回车。
  8. 观察命令行窗口输出信息,等待显示烧录完成提示或错误指示;

常见问题

CCS烧录F28035时报Data Verification Error

芯片:TMS320F28035 烧录器:XDS100v3

C28xx: Loader: One or more sections of your program falls into a memory region that is not writable.
C28xx: File Loader: Verification failed: Values at address 0x3EB927@Program do not match
C28xx: GEL: File: xxx.out: a data verification error occurred, file load failed.

本来怀疑是否是我编译出来的.out是否有问题,因为看错误提示是指向.out文件本身。但是拿同事的电脑,却烧录成功了,用的同一个烧录文件、同一个仿真器、同一个板子、同样的步骤。那问题就明确指向CCS环境了。

沟通后发现,别人是全量安装,我只勾选了C2000 real-time MCUs,怀疑是缺少关键组件。

卸载了CCS之后我也全量安装,烧录成功。目前不清楚是哪个组件影响,本来就只用C2000,其他的好像都是不相关,为什么Load就报错?

Test Connection失败

  • SC_ERR_FTDI_OPEN(-151),USB未识别,后面发现是转接线断掉了,重新焊了就好了;
  • SC_ERR_CTL_NO_TRG_POWER(-180),目标板没上电。

相关笔记

C2000开发笔记(总索引)

参考资料

results matching ""

    No results matching ""