8.1.一般问题

8.1.1.CCS 是否仍然支持 32 位 Windows 系统?

支持 32 位 Windows 系统的最新版本为 CCSv8.3。

8.1.2.如何将 XDS510USB 调试探针与 CCS 一同使用?

支持 XDS510USB 调试探针的最新版本为 CCSv8.3。

8.1.3.CCS 是否不再包含仿真器?

支持仿真的最新版本为 CCSv5.5。

8.1.4.CCS 是否支持 C54x 器件?

支持 C54x 的最新版本为 CCSv5.5。

8.1.5.可以将 DSP/BIOS 与当前版本的 CCS 一同使用吗?

仍然可以将 DSP/BIOS 与当前版本的 CCS 搭配使用并编译工程。但请注意,DSP/BIOS 在支持方面已被大幅削弱,并且当前的 CCS 版本不再提供诸如 RTA 之类的许多高级功能。

8.1.6.CCS 支持哪些操作系统?

请参阅“概述”一章中的相关小节

8.1.7.如何修改 Eclipse 的最大 Java 堆容量?

有关堆和 Java 虚拟机 (JVM) 内存设置的信息,请参阅“疑难解答”一章中的相关小节

8.1.8.为什么要在路径中规避使用非字母数字 (Unicode) 字符?

带有非字母数字字符的路径可能会导致各种工程管理和编译问题。在某些情况下,编译可能会顺利进行,但点击 Debug 按钮可能无法启动调试器。或者转至 Project Properties → Debug 可能会导致 error: Error reading Debug Properties。使用带有非字母数字字符的路径时,任何这些问题症状都可能出现。

非字母数字字符的示例为 &!(# 等。建议避免在工程名称、源/头文件/文件夹、CCS 工作区文件夹名称、系统临时文件夹等中使用此类字符。下划线 _ 例外,下划线通常是可接受的。空格/空白字符虽然在大多数情况下是可以接受的,但可能会导致工程编译(尤其是 SYS/BIOS 工程)和 GUI Composer Runtime 出现问题。因此,建议也避免使用空格/空白字符。

请注意,许多 CCS 文件缓存在用户的主文件夹中。默认工作区位置也在主文件夹中。如果用户的用户名包含非字母数字字符,则会导致问题,因为用户主文件夹的路径通常是与用户名同名的文件夹。

8.1.9.查找错误的理想方式是什么?

请访问 TI 错误和增强系统。在右上角的搜索框中输入错误 ID。如果搜索失败,请将错误 ID 用“引号”括起来,然后重试。

请注意,TI 用于维护错误和增强功能报告的系统在 2020 年初进行了转变。较新条目的标识符都以 EXT 开头(例如:EXT_EP-9524)。较旧条目的标识符以其他内容开头。截至本文编写时,查找较旧的条目需要用“引号”将标识符括起来。

8.2.安装

8.2.1.如何解决 CCS 安装错误?

CCS 安装错误可能由多种原因引起。

如果上述建议无法帮助解决问题,请在 E2E 论坛上发布新问题。

8.2.2.可以在计算机上安装多个版本的 CCS 吗?

是的。同一台计算机上可以安装多个版本的 CCS,只要安装在不同的目录下即可。还建议不要在不同版本的 CCS 之间共享工作区。

8.2.3.网络安装程序与离线安装程序之间有何差异?

网络安装程序是轻量级安装程序。初始下载量很小,初始下载可以选择要安装的功能和器件支持项。完成选择后,安装程序将下载适当的软件包以完成所需的选择。

离线安装程序或完整安装程序则更大。下载包含所有可用的安装选项。该安装程序不需要连接互联网即可运行。当防火墙或防病毒软件阻止网络安装程序时,建议使用该安装程序。

8.2.4.用户名包含 Unicode 字符并且无法安装 CCS。如何解决此问题?

请参阅本常见问题解答

8.2.5.为什么 Linux 安装程序没有执行任何操作就退出了?

需要安装一些软件包才能运行安装程序。用户可能遗漏了这些软件包中的一个或多个。有关在 Linux 上安装的更多信息,请参阅 Linux 主机支持

8.2.6.为什么 Windows 安装程序没有执行任何操作就退出了?

有一些软件会设置 TCL_LIBRARY 环境变量,这会干扰 CCS 安装程序。在尝试安装之前,请暂时取消设置此变量。

8.2.7.在 Linux 上安装后,为什么无法打开 CCS?

双击桌面图标没有任何反应,如果从命令行启动,则会显示以下错误:

user@host:/opt/ti/ccsv6/eclipse$ ./ccstudioPermission denied If this continues, please run fsclean or set TI_APPDATA_DIR to directory you have permissions to access

在更新或安装相同 CCS 流的较新版本(例如 8.0.0 至 8.1.0)时,可能会发生这种情况。原因是,如果之前以 root 身份启动 CCS,则用户区中的临时目录可能已被污染,并且其所有权被设置为 root。换而言之,临时 CCS 目录类似于:

user@host:~/.ti$ ls -al total 20 drwxr-xr-x 3 root root 4096 Jan 24 2014 . drwxr-xr-x 135 user user 12288 Jan 26 11:25 .. drwxr-xr-x 3 root root 4096 Jan 24 2014 CCSv6 -rw-r--r-- 1 root root 0 Jan 24 2014 .lock

要解决此问题,请使用 chown 命令将所有目录和 .lock 文件的所有权更改回用户

user@host:~/.ti$ sudo chown -hR user:user * .lock

8.2.8.安装 CCS 后,某些功能(例如某些处理器系列或调试探针)缺失。是否有办法添加这些功能?

是的。只需重新运行安装程序可执行文件(在线或离线)。按照安装程序屏幕的提示进行操作,并选择与原始安装相同的目录。继续按照安装程序屏幕的提示进行操作,并选择缺少的组件。

某些功能(例如代码生成工具更新)可以从 CCS 内部安装(使用 Help → Install New Software 菜单),但此方法不能用于添加对其他处理器系列和调试探针的支持。用户需要重新运行安装程序以添加此支持。有关更多详细信息,请查看 CCS 更新页面。

8.2.9.安装 CCS 时,系统提示 An error occured: can’t read ”update“: no such variable。如何解决此问题?

确保将 CCS 安装至干净目录,该目录中无先前安装的版本。

8.2.10.在试图安装编译器工具时,提示 CCS 已经安装,但实际上并没有。如何解决?

如果先前尝试安装编译器工具未正确完成,则可能会发生这种情况。在这种情况下,Help → Installation Details → Installed Software 菜单将列出已安装的编译器工具版本,然而,这些文件实际上不会在文件系统中,编译器版本也不会出现在 Window → Preferences → Code Composer Studio → Build → Compilers 菜单下的“Discovered Tools”列表中。

若要解决此问题,请在文件夹 <ccs_install_dir>/ccsv[x]/eclipse/downloads 中查找编译器安装程序可执行文件。例如,其命名可能类似于 ti_cgt_tms470_5.0.11_windows_installer.exe。以管理员身份手动运行安装程序,并将其安装到 <ccs_install_dir>/ccsv[x]/tools/compiler/arm_<version> 目录。

8.2.11.如何进行静默或无人值守式 CCS 安装?

CCS 可以从命令行界面通过多个选项安装,包括无人值守式安装。有关更多详细信息,请参阅文章 CCS 安装程序使用

8.3.许可

8.3.1.CCS 的许可政策是什么?

CCS 无相关许可费用。用户无需购买许可证即可免费下载和安装 Code Composer Studio。

有关许可的更多详细信息,请参阅“许可”一章

8.4.更新

8.4.1.如何获得 CCS 的更新?

默认情况下,CCS 每次启动时都会自动检查更新。该更新检查将查找已安装功能的更新。例如,该检查将查找 CCS IDE、编译器错误修复版本和器件支持的更新。该检查不会查找新功能,包括编译器的新功能修订。有关更多详细信息,请参阅 CCS 更新页面。

8.4.2.如何搜索 CCS 的新功能?

可从“View”菜单访问的“CCS App Center”对于查找新功能非常有用。“CCS App Center”将突出显示与用户已安装的器件系列相关的一系列新功能。

还可以通过一些其他方法来查找和安装新的编译器工具。请参阅文章编译器更新中所述的过程。

8.4.3.安装 CCS 更新时,弹出了对话框,提示该功能未签名。有问题吗?

TI 发布的大多数更新都已签名,但并非所有更新都已签名。同样,来自合作伙伴的更新或功能可能没有数字签名。发生这种情况时,CCS 会发出警告,指出该功能尚未签名。一般来说,忽略警告是安全的,但最好在安装之前就知晓更新的来源。

8.5.常规 IDE

8.5.1.Linux 版的 CCS 中的某些视图(如“Getting Started”、“CCS App Center”和“Code Analysis”)是空白的。如何解决?

请参阅“疑难解答”一章中的相关小节

8.5.2.为什么在“SysConfig”、“Resource Explorer”或“ROV”视图中移动鼠标会导致 Linux 版的 CCS 画面快速抖动?

请参阅“疑难解答”一章中的相关小节

8.5.3.为什么“Stack Usage”视图中“Inclusive Size”列的数据是空白的?

请参阅“疑难解答”一章中的相关小节

8.6.工程

8.6.1.如何覆盖用于确定在 CCS 编译过程中放置临时文件的位置的 TEMP 和 TMP 环境变量?

在 CCS 编译过程中,gmake 在与用户的 TEMP 和 TMP 系统环境变量对应的目录中创建临时批处理文件。编译器还在编译期间使用此目录存放临时文件。CCS 可以让用户在 CCS 的范围内覆盖这些环境变量,因此不必修改全局系统变量。

在 CCS 中,打开 Window → Preferences → C/C++ → Build → Environment 菜单并使用“Add”按钮添加两个变量:

image0

将适用按钮设置为“Append”或“Replace”变量到本机环境。在 Windows 操作系统中,确保在路径中使用反斜杠(而不是正斜杠)。在运行编译之前,还要确保存在专为变量指定的目录。

8.6.2.是否可以将非 RTSC CCS 工程转换为 RTSC 工程以及进行相反的转换?

若要将非 RTSC 工程转换为 RTSC 工程,只需向工程添加 RTSC 配置 (.cfg) 文件。CCS 会询问您是否要为工程启用 RTSC 支持,如果您点击 Yes,则会将其转换为 RTSC 工程。

无法将 RTSC 工程转换为非 RTSC 工程。在这种情况下,用户需要通过创建一个新工程重新开始。

8.6.3.在工程编译期间,ccsLinker.opt 文件有时会传递给链接器,而不是目标文件列表。这个文件是什么以及何时使用?

ccsLinker.opt 文件由 CCS 生成,如果链接器命令行上的链接器选项和输入文件列表超过主机操作系统的命令行长度上限,则将其传递给链接器。具有大量目标文件 (.obj) 的工程可能会通过 ccsLinker.opt 文件而不是直接在命令行上将链接器选项和输入文件传递给链接器。

8.6.4.如何解决 build error #10234-D: unresolved symbols remain 错误?

本文章包含有关错误及其解决方法的更多信息。

总之,错误是由链接器在无法找到符号定义时产生的。如果未向链接器提供包含符号定义的目标文件或库,通常会发生这种情况。CCS 编译控制台中的编译输出应提供有关将哪些目标文件和库传递给链接器的信息。

若要解决该错误,请找到包含符号定义的源文件或库,并确保它是工程的一部分。

8.6.5.编译基于 TI-RTOS 的工程时出现 Project build error: xdc.cfg.SourceDir: Build of generated source libraries failed: exit status = 2: 错误,如何解决?

若干不同的原因可能会触发这种类型的错误。

编译工具引用的路径中的空格或非 ASCII 字符

已知旧版 SYS/BIOS 和 TI-RTOS 会发生这种情况。

为避免该错误,请确保所有软件包都安装在不含空格的路径中,并且工作区和工程名称也不含空格或非 ASCII 字符。

与 Cygwin 相关的错误

在上述诊断之前查看 CCS 编译控制台中是否有错误。如果错误来自 shell,则问题可能与 Cygwin(随 CCS 和 XDCtools 一同提供)有关。

可能发生的 shell 错误类型有:

unable to remap somedll to same address as parent

  • couldn’t allocate heap
  • can’t reserve memory for stack
  • died waiting for dll loading
  • child -1 - died waiting for longjmp before initialization
  • child state waiting for longjmp
  • STATUS_ACCESS_VIOLATION
  • Resource temporarily unavailable

为避免该错误,请尝试该 CCS 编译错误页面中所述的解决方案。

Cygwin 类型的错误也可能在自动库编译步骤中出现。在这种情况下,上述相同的解决方案也应该有所帮助。

8.6.6.可以将可执行工程转换为库工程吗?

仍然无法将工程类型从可执行文件更改为静态库。

但是,为了更轻松地移动设置,用户可以从现有工程复制整个选项列表并将它们粘贴到新工程中。

有关更多详细信息,请参阅该 E2E 论坛帖子

8.7.调试

8.7.1.加载程序时出现“数据验证”错误。这意味着什么?

请参阅该有关数据验证错误的文章。

8.7.2.出现调试器消息 Can’t find a source file atNo source available 意味着什么?

该消息表示调试器无法找到用于源级调试的指定源文件。这在调试器在库(例如 C 运行时库、driverlib 等)中停止时很常见。该消息本身是无害的,但请查看“调试”一章中的该相关小节,以了解有关该消息以及如何避免该消息的更多详细信息。

8.7.3.“Run”/“Resume”和“Free Run”按钮的区别是什么?

Free Run:在目标上执行代码之前禁用断点。从本质上讲,无需调试器即可运行。按下 Free Run 按钮执行自由运行时,不会看到任何视图或 printf 的更新。

8.7.4.如何在“Debug”视图中查看不可调试的器件和路由器?

Debug 视图默认隐藏不可调试的器件。如果用户想查看这些器件:

右键点击 Debug 视图,然后在上下文菜单中选择 Show All Cores。将会出现 Non Debuggable Devices 节点。点击该节点可查看器件。

还可以在给定的调试配置中设置此项,这样,每次使用该调试配置启动调试会话(无论是否有关联工程),设置都会生效。为此,请转至 CCS 菜单 Run → Debug Configurations 并启用 Non Debuggable DevicesRouters,从而获得所需调试配置。

image1

8.7.5.在多核器件中,CIO 控制台在每个输出字符后打印出 CPU 内核名称。是否有办法防止这种情况?

在 CCS 中,默认情况下所有 CIO 输出都发送到单个控制台,因此 CCS 会在前面插入 CPU 内核名称,以便判断它来自哪个内核。对于 assert() 语句,只要给定的 CPU 刷新其 CIO 缓冲器,就会添加 CPU 内核名称,从而使输出难以读取。

有一个选项可以控制这种情况。转至 Run → Debug Configurations 菜单,选择您的调试配置并取消选中 Use the same console for the CIO of all CPUs 选项。

image2

8.7.6.可以同时使用两个独立的仿真器来调试两块电路板吗?

可以,这是可以实现的。更多详细信息,请参阅该文章:利用多种调试探针进行调试

8.7.7.在缓存中调试程序时,为什么缓存行会失效?

对于涉及在 C6x 上设置软件断点(这也包括单步执行或运行到某个地址)的任何类型的操作,相应的缓存行将失效。这是预期行为,因为软件断点需要将断点操作码写入该地址处的程序存储器。

8.7.8.连接到目标并加载程序后,为什么目标执行(恢复、暂停、步进等)的菜单/图标不可用(显示为灰色)?

确保在调试会话期间没有无意中关闭 Debug 视图。如果该视图已关闭,可以转至 CCS 菜单 View → Debug 进行恢复。

8.7.9.启动调试会话时,出现“Could not fetch next record for SQL statement”错误,并且运行 fsclean 不起作用,如何解决?

请尝试按照“疑难解答”一章中的说明删除目标缓存文件。

8.7.10.如何解决错误 Cannot read System Setup data from XML file <file path/name>.ccxml.XML configuration file has no <configurations> root node

请尝试创建和使用新的目标配置文件。

8.7.11.Graphs 视图和属性是否可以从一个 CCS 会话转移到另一个会话,这样当 CCS 重新启动时,图形可再次出现?

当调试会话终止并重新启动时,CCS 会保存图形视图的排列和内容,但不会在 CCS 本身关闭和重新启动时保存。使用图形属性底部的 ExportImport 按钮可帮助简化图形属性输入。用户可以将图形属性导出到文件,然后在重新启动 CCS 时将其导回。

8.7.12.如何在启动 CCS 时解决这些“com/ti/dvt/energytrace”错误?

请参阅“疑难解答”一章中的相关小节

8.7.13.为什么在 CCS 中运行代码时 printf 不起作用?

两个常见的错误是堆用尽和栈用尽。有关导致 printf 失败的其他错误以及如何解决这些错误,请参阅文章使用 printf 的提示

8.7.15.如何使用 System Analyzer/RTOS Analyzer 来调试 TI-RTOS (SYS/BIOS) 应用?

请查看以下演示,了解使用 TI-RTOS 进行日志记录的实际细节。该演示展示了如何在连接到 CCS 和未连接时启用日志记录和调试异常(即,将日志记录保存到非易失性存储器,然后将保存的记录导入 CCS):

使用 System Analyzer 来调试 TI-RTOS 程序

以下是包含上述演示中讨论的 CCS 示例工程的 ZIP 文件:

TI-RTOS 异常日志记录示例