记录DSP学习中的一些笔记。本文记录TI有关CCSV11的用户界面介绍。
打开CCS11之后,最右边的Project Explorer用于显示项目文件。请注意,并非视图中出现的所有文件都将存在于文件系统中,反之亦然。链接文件将出现在视图中,但因为它们是引用而不是实际副本,它们不会出现在实际文件系统中。出现在 Project Explorer 视图中的“Binaries”和“Includes”文件夹也只是参考。“Binaries”文件夹指向您的活动构建配置子文件夹中的可执行文件(例如,“Debug”)。可以仔细查阅TI提供的图片例子:
虚拟文件夹是仅存在于 CCS 工作区树中的文件夹,没有文件系统位置。通过使用虚拟文件夹,文件和文件夹可以组织在一个项目层次结构中,该层次结构独立于它们在文件系统中的位置。也就是说你可以按照你自己的理解对文件进行归纳和总结但是不会影响文件在实际文件夹中的位置。
CCS 支持两种将源文件和/或文件夹添加到项目的方法。您可以添加文件或链接文件(add files or link files)。
当您将文件/文件夹添加到项目时,它会物理复制到项目目录的根位置。
当您将文件/文件夹链接到项目时,项目将在文件系统中创建对该文件/文件夹的引用,而不是将其复制到项目目录中。 链接文件显示在 CCS 项目浏览器视图中,带有一个特殊图标,如下所示。
除非明确排除,否则项目中包含的所有文件(复制或链接)都将包含在项目构建中。
从Build中排除文件:默认情况下,CCS 项目文件夹中的所有文件和文件夹都被假定为项目构建的一部分。要从 CCS 项目构建中排除文件或文件夹,请右键单击文件或文件夹然后点击Exclude from Build。如果文件没有在Project Explorer中显示,则检查Filters中是否将该种文件隐藏。
比创建新项目更常见的场景是使用现有项目。这可以是您自己的开发项目,也可以是 TI 提供的示例项目。在这种情况下,您必须先将项目导入 CCS。
CCS 可以导入使用相同版本或更早版本的 CCS 创建的项目,包括旧版 CCSv3 项目。但是,请记住,用于创建项目的 CCS 版本与用于导入项目的版本之间的差异越大,导入过程就越容易出错。
根据项目的类型和来源,有几种不同的导入项目的方法,TI推荐从资源浏览器中导入TI示例项目,所以也只介绍这点。
PS: 对于CCS中的出现的一些Projects导入错误以及构建(Build)错误,TI进行了一定的整理:https://softwaredl.ti.com/ccs/esd/documents/sdto_ccs_build-errors.html
需要时可以查阅。
右击项目名,在出现的菜单重选择Properties,打开如下界面。
点击CCS General,打开如下界面:
首先最上面的 Configuration 选项。在 CCS 中创建新项目时,默认会创建两个构建配置:Debug 还有 Release 。Debug构建配置通常没有优化并启用完整的符号调试(symbolic debug),以便于调试。Release构建配置通常会启用优化并禁用符号调试,以使您的代码尽可能小或尽可能快,而无需进行源代码级调试。这些只是通常为默认构建配置设置的选项,对于不同的设备系列可能会有所不同,因此最好检查为每个构建配置设置的默认选项并根据需要进行调整(请注意,TI 提供的一些示例项目可能具有除 Debug 和 Release 之外的自定义配置名称。例如,C2000Ware 中的项目可能具有 RAM 和 Flash 配置,其中一个设置为从 RAM 运行,另一个设置为从 Flash 运行。)。当创建新项目或将现有项目导入 CCS 时,第一个配置(按字母顺序)在工作区中设置为活动状态。
接下来介绍 Connection 。Connection中选择的是调试探针(如下图所示),根据自己需要选择合适的选项。这个选项一般在创建项目工程时已有涉及。
下面的几个选项介绍一般情况下无需更改。不感兴趣的读者可以略过。
接下来介绍 Output format 选项。
Output format确定可执行文件 (.out) 的格式。可执行文件 (.out) 是可以在目标设备上加载和执行的文件,要更改可执行文件的名称或位置,请转到Project Properties → Build → Linker → Basic Options,然后更改–output_file选项。可执行文件的格式是 COFF 或 ELF。ELF:Executable and Linking Format,ELF 是除 C2000 之外的所有 TI 工具集的默认(或唯一)目标文件格式。COFF:Common Object File Format,TI 工具集使用的第一个目标文件格式称为 COFF,它代表通用目标文件格式。COFF 最早出现在早期的 Unix 系统中。虽然COFF 不是行业标准,但TI 采用了 Unix 的 COFF,然后开始对其进行定制(其他文件类型还有Object Files, Hex Files, System Memory Image)。
从 CCSv8 开始,新项目默认为基于 C66x、MSP430 和 ARM/Cortex 的设备的 ELF 格式。 C2000 和 C5500 仍默认为 COFF。 链接在一起的所有目标文件和库应该具有相同的格式。例如,如果您正在使用 ELF,则链接到项目的所有库也应该是 ELF 格式。否则,链接时会出错,并且不会创建可执行文件。
最后介绍 Linker Command Files 和 Runtime Support Library 。
创建新的非 RTSC 项目时,通常会将链接器命令文件 (.cmd) 和源文件(取决于所选模板)添加到项目中。链接器命令文件是根据为项目选择的器件选择的默认文件。如果在新建项目时,下面的选项设置为automatic,则将选择默认文件。
链接器命令文件是一个 ASCII 文件,它使用两个链接器指令 MEMORY 和 SECTIONS 将段分配到特定的内存区域。MEMORY 指令定义目标内存配置。SECTIONS 指令控制节的构建和分配方式。此外,链接器命令文件还可以包括输入文件名和链接器选项。
链接器命令文件在嵌入式程序中发挥着重要作用,因为它们指定了代码和数据部分分配到目标存储器的位置。 如果没有这个文件,链接器将不知道目标内存配置以及如何正确分配节。分配代码段时,它将使用默认属性。在将代码加载到目标时,这可能会导致数据验证错误或写入内存块类型的错误。在某些情况下,它仍然可以正常加载(例如,如果加载到某些模拟器),但这绝不是一种好的做法,并且通常会导致程序在目标设备上运行时无法按预期工作。因此,为您的目标使用正确的链接器命令文件非常重要。随着应用程序要求变得更加严格,可以根据需要自定义链接器命令文件。
Runtime Support Library:一个 ANSI C/C++ 标准库,它负责系统启动,为字符串处理、输入/输出处理和内存分配等提供支持功能。由于这些事情是由运行时支持库(Runtime Support Library)处理的,CCS 项目应该链接到这个库中。
在一些情况下,点击CCS General中的Products,还会出现以下界面。
Products中包括:用于项目使用的一系列Products.对于基于 RTSC/TI-RTOS 的项目,它还包含:
其中Target会根据在Project选项卡中选择的Device Variant自动填充;Platform 可由用户根据目标板进行选择。
在Bulid下还有三个子目录:
Compiler, Linker and Hex Utility是用于配置和设置代码生成工具的选项(XDCtools 用于配置 RTSC/TI-RTOS 项目,SysConfig 用于配置 SysConfig 项目)。涉及的是编译器/链接器。Hex Utility 可以作为 CCS 构建的一部分启用和调用。默认情况下,新 CCS 项目禁用 Hex Utility。
CCS 项目使用 Eclipse 管理的 make 系统,其中自动生成 makefile 并负责管理工具链和构建细节。创建新的 CCS 项目时,会在项目文件夹中创建以下项目元数据文件和文件夹:
《CCS11用户界面介绍1》主要介绍了Projects and Build相关内容。
《CCS11用户界面介绍2》将介绍CCS的Debug有关内容。