CCS是TI公司推出的用于开发DSP芯片的集成开发环境。在Windows操作系统下,采用图形接口界面,提供环境配置、源程序编辑、程序调试、跟踪和分析等工具,使用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作,能够加快开发进程,提高工作效率。
CCS有两种工作模式:软件仿真和硬件在线编程。软件仿真模式可以脱离DSP芯片,在计算机上模拟DSP芯片的指令集和工作机制,主要用于前期算法实现和调试;硬件在线编程可以实时运行在DSP芯片上,与硬件开发板结合进行在线编程和应用程序调试。CCS有不同的版本,目前最新的版本为CCSv9,不同版本和不同型号之间差异不是很大,一种型号的CCS只适用于一种系列的DSP芯片,用户需要在CCS配置程序中设定DSP芯片的类型和开发平台的类型。
CCS的开发系统主要由以下组件构成:
1)代码产生工具。用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。主要包括汇编器、链接器、C/C++编译器和建库工具等。
2)CCS集成开发环境。集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。包括编辑工具、工程管理工具和调试工具等。
3)DSP/BIOS实时内核插件及其应用程序接口。主要为实时信号处理应用而设计。包括DSP/BIOS的配置工具、实时分析工具等。
4)实时数据交换的RTDX插件及其应用程序接口。可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。
5)应用模块插件由TI公司以外的第三方提供的各种应用模块插件。
CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程,其主要功能如下:
1)具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等。
2)含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑编译、链接和调试等诸多功能集成到一个软件环境中。
3)高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误。
4)工程项目管理工具可对用户程序实行项目管理,在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理。
5)基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试。
6)断点工具能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置。
7)探测点工具可用于算法的仿真、数据的实时监视等。
8)分析工具包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟。
9)数据的图形显示工具可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新。
10)提供GEL工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量、配置参数等。
11)支持多DSP的调试。
12)支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换。
13)提供DSP/BIOS工具,增强对代码的实时分析能力。
官网下载地址:http://processors.wiki.ti.com/index.php/Download_CCS,根据DSP的型号选择合适的版本下载完成后,安装即可。
操作步骤:在CCS_edit界面,在菜单栏选择Project→New CCS Project→按照图2-8填写→Finish,建立一个新的工程。
图2-8 CCS中新建工程
1)将controlSUITE \ device _ support \ f2833 x \ v142中的“DSP2833x _ common”和“DSP2833x_headers”两个文件夹复制到新建的工程。
2)将controlSUITE\ libs\ math中的“FPUfastRTS”和“IQmath”两个文件夹复制到新建工程,如图2-9所示。
1)删除28335_RAM_lnk.cmd。
2)DSP2833x_common的配置。
①展开DSP2833x_common,如图2-10所示。
②展开cmd。
a)只保留DSP2833x_common\ cmd下的28335_RAM_lnk.cmd和F28335.cmd文件。注意:28335_RAM_lnk.cmd是烧录到RAM,F28335.cmd烧录到Flash。
b)屏蔽F28335.cmd:右键单击F28335.cmd,选择Resouce Configurations→Exclude from Build→Select All→OK。
③展开gel\ ccsv4,只保留f28335.gel文件。
图2-9 复制controlSUITE中的底层文件到工程
④展开source,屏蔽DSP2833x_SWPrioritizedDefaultIsr.c和DSP2833x_SWPrioritizedPieVect.c。
3)DSP2833x_headers的配置,如图2-11所示。
图2-10 文件的删除/禁用
图2-11 DSP2833x_headers的配置
①展开DSP2833x_headers。
②展开cmd,屏蔽DSP2833x_Headers_BIOS.cmd。
4)FPUfastRTS的配置,如图2-12所示。
①展开FPUfastRTS\V100。
②只保留“include”“lib”和“source”三个文件夹。
5)IQmath的配置,如图2-13所示。
图2-12 FPUfastRTS的配置
图2-13 IQmath的配置
①展开IQMath,只保留v160文件夹。
②展开v160,只保留“include”“lib”和“source”三个文件夹。
6)在test工程下,新建一个文件夹,命名为APPS,用来存放我们自己写的程序,如图2-14所示。
鼠标放置test处然后单击右键,在弹出的对话框中依次单击New→Floder,在Floder name处填写APPS。
至此,各个文件夹配置完成了。
图2-14 在工程中如何添加文件夹
1)Build→C2000 Compiler→Include Options→Add dir to #include search path,如图2-15所示。
图2-15 索引配置步骤1
添加:
2)Build→C2000 Linker→File Search Path。
① Add dir to library search path添加:
② Include library file or command file as input添加:
勾选如图2-16所示界面中的两个复选框。
图2-16 索引配置步骤2
main.c添加下面代码:
屏蔽28335_RAM_lnk.cmd,而不是F28335.cmd,在main函数中添加下面代码:
1)打开CCS,单击Project→Import CCS Project。
2)在弹出的窗口单击Browser,选择工程所在路径,勾选目标工程,单击Finish,如图2-17所示。注意:路径中不能含有中文。
图2-17 导入工程配置
1)单击View→Target Configurations,在右侧会弹出窗口。
2)若在User Defined中没有文件,则鼠标右键选择Target Configuration,并单击OK;如果有,单击下一步。
3)双击User Defined里的文件(NewTargetConfiguration),在Connection中选择仿真器型号,在Board or Device中选择TMS320F28335,单击Save。此时需要为DSP上电,单击Test Connection测试仿真器是否连接成功,若成功,在弹出来的窗口末尾会有succeed,如图2-18所示。
图2-18 重新连接仿真器
4)右键单击NewTargetConfiguration→Link File to Project→选择目标工程。
导入工程时,出现了Project Import Summary窗口,单击Details,将滑动条拉到最后,可以看到“Error:Import failed for project′xxxxx′because its compiler definition is not available.Please install the C2000vx.y compiler before importing this project.”,如图2-19所示。
图2-19 提示的错误界面
解决方法:
1)访问http://software-dl.ti.com/codegen/non-esd/downloads/download.htm,下载对应版本的compiler编译器,本例中应下载v17.9版本。
2)将下载下来的文件移动到CCS安装路径目录\ ccsv6\ tools\ compiler安装。
3)重新导入工程。
在编写用户代码之前,首先要将必要的系统源文件、头文件添加到工程中去,组成最小DSP软件系统。这些系统文件可以在TI官网上下载sprc530.zip并安装后获得(安装后为V131文件夹)。系统文件主要有:
(1).h文件
这些头文件主要是片内各外设寄存器对应的结构体、联合体类型的声明及变量类型、全局变量的宏定义,如DSP2833x_Device.h、DSP2833x_Adc.h等。还有公用函数的声明,如DSP2833x_DefaultIsr.h等。
(2).c文件
比较重要的是寄存器变量的定义及空间映射文件DSP2833x_GlobalVariableDefs.c,还有一些通用的系统或者外设初始化源代码文件,如DSP2833x_SysCtrl.c里主要包含了系统时钟配置、看门狗配置等函数;DSP2833x_DefaultIsr.c里定义了系统所有默认的中断服务函数;DSP2833x_PieVect.c、DSP2833x_PieCtrl.c里主要包含PIE中断向量表的初始化。其他的外设.c文件,如DSP2833x_CpuTimers.c等,可根据需要添加。
(3).asm文件
汇编文件中,主要需要包含片上ADC模块校准文件DSP2833x_ADC_cal.asm,程序代码启动跳转文件DSP2833x_CodeStartBranch.asm及微秒延时文件DSP2833x_usDelay.asm。在Flash烧写时,如果需烧写密码,还可以添加DSP2833x_CSMPasswords.asm文件。
(4).cmd文件
F28335工程一般需要包含两个cmd文件,其中一个是DSP2833x_Headers_non-BIOS.cmd,里面主要是片上寄存器的空间映射。对于另一个cmd文件,如果软件工程为RAM工程,则需添加28335_RAM_Ink.cmd,该文件主要定义划分了目标板上RAM空间的资源分配及软件程序在RAM空间上的映射;如果软件工程为Flash工程,则需添加F28335.cmd文件,该文件定义了目标板上存储空间的资源分配(包括RAM及Flash),并对软件程序在空间上的映射进行划分。对于F28332、F28334型号DSP芯片,操作类似。
(5).lib文件
实时运行库文件,如rts2800_ml_eh.lib。
(6).gel文件
对于F28335,应添加F28335.gel文件。GEL(General Extension Language)文件在配置目标板链接文件时设置,其可用来配置CCS开发环境并可初始化CPU,如在DSP板连接上CCS后,可通过菜单“Scripts-Set PLL Ratio”配置PLL分频系数。在某些场合,gel文件不可缺少。例如,如果系统通过XINTF接口外扩了RAM,且软件程序中将一些初始化变量或常量映射至外部RAM空间,则在加载程序时,需要使用gel文件预先使能XINTF接口,否则程序加载出错。对于F28332,F28334型号DSP芯片,需添加各自的.gel文件。
这些系统文件可通过“Add Files”的方式添加到工程中去,而在CCSv5中,这些文件也可以直接复制到当前工程所在的文件夹内,CCSv5会自动将其添加到工程中。
这里选择后者,并新建文件夹对这些文件进行归类。添加完系统文件夹后的“Project Explorer”窗口如图2-20所示。其中,cmd文件夹下为.cmd文件,include文件夹下为系统.h文件,source文件夹下为系统.c及.asm文件。
图2-20 导入文件后的工程