This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

使用CCSV5的命令行工具建立工程

Other Parts Discussed in Thread: CCSTUDIO

Code Composer Studio提供了几个命令行工具,用户可以使用这些工具创建工程,编译工程,导入工程文件到本地工作空间。使用这些工具,用户可以在不启动CCS图形界面的情况下对工程进行操作,简化工程文件的版本维护,方便自动化测试等。

这三个命令行工具是通过com.ti.ccstudio.apps这个eclipse的java plugin实现的,在运行的时候需要调用eclipse和对应的插件应用。调用格式如下,
eclipse -noSplash -data "<workspace_dir>" -application com.ti.ccstudio.apps.$application [options, -ccs.help]
-noSplash 设置eclipse启动时不启动splash window,也就是启动时的TI ccstudio跳出窗口。
-data “workspace” 是用户制定的工作空间的路径,在windows/linux上使用各自的路径格式。需要注意的是如果使用cygwin/MinGW的脚本来调用ccs命令行工具,这里的路径必须使用windows格式的路径。
-application 指定使用的工具应用。工程创建使用com.ti.ccstudio.apps.projectCreate,编译工程使用com.ti.ccstudio.apps.projectBuild,工程导入使用com.ti.ccstudio.apps.projectImport。
三个工具应用有一些公用命令参数和各自的参数,帮助信息可以通过参数-ccs.help得到。option中的参数都可以通过-ccs.args <file>通过加载文件的方式来载入。

下面以CCS5.1版本为例,具体介绍创建工程工具的参数及使用方法。
eclipse -noSplash -data "<workspace_dir>"
-application com.ti.ccstudio.apps.projectCreate [options]

-ccs.name <name> 创建的工程名
-ccs.location <dir> 创建工程的路径,如果工程不是在workspace中创立
-ccs.outputType (executable | staticLibrary) 编译目的是库还是执行文件,缺省配置是执行文件
-ccs.device <id> 工程对应的芯片ID,例如C66x是com.ti.ccstudio.deviceModel.C6000.GenericC66xxDevice。如果提供的ID不正确,eclipse会打印出所安装软件支持的芯片ID。在我的系统中,只安装了c6000和ARM,eclipse打印了c6000相关的芯片ID
-ccs.endianness <name> (big | little) 工程的大小端配置
-ccs.cgtVersion <version> 使用的编译器版本,默认是最新版本。所使用的工具版本必须在ccstudio可以搜索的范围内。如果工具都是正常安装,应该不会有什么问题。
-ccs.outputFormat (COFF | ELF) 输出的格式,COFF或者是ELF
-ccs.cmd <file> 指定工程使用的linker cmd文件
-ccs.rts <file> 指定runtime library的设置
-ccs.configurations <name1>[ <name2>]* 可以在工程中设置不同的配置选项,例如debug或者是release
-ccs.references <name1>[ <name2>]* 可设置工程相关定义
-ccs.artifactName <name> 指定编译输出的文件名称(optional)
-ccs.artifactExtension <ext> 指定编译输出文件的扩展名(optional)
-ccs.listBuildOptions 打印支持的buildOptions,这些option可以通过后面的setCompilerOptions,setLinkOptions,setAssemblerOptions来配置。应该包括了所有cl6x支持的编译选项(没有一一检查过 ;))
-ccs.setCompilerOptions "<options>" [@prepend] [@configurations <name1>[ <name2>]*]
-ccs.setLinkerOptions "<options>" [@prepend] [@configurations <name1>[ <name2>]*]
设置编译,链接选项。选项用双引号括起来,如果options里包含双引号,在双引号前加\。@prepend可以让包含的选项在排在已有选项的前面。@configurations可以对于不同的前面定义的configurations设置不同的编译选项。下面的例子中Release configuration中不包含调试信息,使用o3优化,Debug configuration编译选项包含调试信息,使用o0优化选项。
-ccs.setPreBuildStep "<command>" [@configurations <name1>[ <name2>]*]
-ccs.setPostBuildStep "<command>" [@configurations <name1>[ <name2>]*]
设置编译预/后处理,根据不同的configuration可以有不同的预/后处理步骤。
-ccs.copyFile <file> [@dir <dir>] [@configurations [<name> ]*]
把指定的文件拷贝到工作空间中。不同的配置可以拷贝不同的文件。可以通过@dir来指定拷贝文件的目的目录地址。
-ccs.linkFile <file> [@dir <dir>] [@configurations [<name> ]*]
命令格式和copyFile一致,但是不直接拷贝文件,只是把文件链接到工程文件中
-ccs.definePathVariable <name> <value> [@scope (global|project)]
用来定义工程或者是全局的路径变量。可以自定义路径变量,但不能是已有的缺省变量,例如CG_TOOLS_DIR。
-ccs.defineBuildVariable <name> <value> [@type (string|dir|file)] [@scope (global|project|configuration)] [@configurations [<name> ]*]
定义编译变量
-ccs.autoGenerateMakefiles (true|false)
是否生成make文件。缺省是true

-ccs.buildLocation <path>
指定编译路径,只有在autoGenerateMakefiles是false时有效。
-ccs.buildCommand <path>
设置编译命令路径,缺省使用CCS提供的gmake工具。
-ccs.buildCommandFlags "<flags>"
设置编译命令的flag,例如gmake -k -j等,可以用来使能多核编译,或者分布式编译。
-ccs.buildTarget <name>
设置编译目标名
-ccs.cleanTarget <name>
设置make clean的目标名
-ccs.overwrite (full | keep)
如果工作空间已经有一个同名的工程文件,是否保留该工程。是有full,则覆盖已有的工程文件
DSP/BIOSv5.x support:
-rtsc.biosVersion <version> 设置使用的BIOS版本。
RTSC support:
-rtsc.enableRtsc 使能RTSC
-rtsc.xdcVersion <version> 设置xdc版本。缺省使用最新的版本。
-rtsc.target <id> 设置RTSC目标名
-rtsc.platform <id> 设置RTSC使用的平台名。
-rtsc.buildProfile <profile> 使用的RTSC配置文件
-rtsc.configurationOnly 只生成一个RTSC配置工程