DSP教程5.集成开发环境.docx
集成开发环境环境第一节 CCS概述1.1 what is CCS TI的集成开发系统叫做CCS Code Composer Studio1.2 the function of CCS1. 用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序2. 集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体3. 包括编辑工具、工程管理工具和调试工具等本章主要是介绍这个工具的用法,目的是要同学们学会应用而并非死记硬背。所以我们不打算按照书本很教条的方式进行,我们换一种方式来进行。1.3 The development of the CCsCCS的发展速度是伴随着DSP,速度很迅猛。之前的CCS2.1系列已经发展到现在的CCS5.5左右了。目前我们能见到的大约分成两派。CCS4作为分水岭,之后的版本采用了映像技术,即TI自己退出来的eclipse,他弱化了之前的工程的概念。除此之外在操作习惯、界面的引导、每个功能模块下的愤怒泪都有重新的分布,连烧录程序的页面都会有很多不同。在CCS3,3转到CCS5的过程中,会有一段时间来熟悉和习惯他信的方式。但是他基本的设置还是与之前一致。CCS5系列更强大的一点是不需要安装复杂的升级包、仿真器的驱动程序,并且能够兼容XP和win7系统,当你用上了CCS5的时候,你会发现其简便程度超过你的想象。正是因为他的日新月异的变化,同样作为一个操作工具,我不想按照书上那样很教条的讲述,换一种新的方式。第二节 CCS软件及驱动的安装2.1 Code Composer Studio的安装1. 双击目录CCS3.3下的开始安装,出现如下界面:2. 点next,检测OK3. 点next,询问license 4. 点同意,next,询问安装方式5. 我们选择自定义安装,即“Typical Install”,在出现下面的界面后,建议按装在默认路径“C:CCStudio_v3.3” 6. 点击“Next”后,进行安装;点击“Next”,进行安装,安装完后出现下面的图标。7. 中间若遇到错误 点击ignore直至完成。如图所示8. 点击确定9. 插件安装10. 先安装82.13,然后安装灰色的,灰色的安装顺序任意。插件内容全部选择default2.2 安装DSP仿真器TDS510 驱动1. 双击“ccs3.3开发系统驱动”内“anghaiver33setup.exe”所有安装完后重启退出。2.3 CCS的设置1.打开Setup CCStudio v3.32. 选择如下仿真器3. 点击右键出现如下对话框,选择Auto-generate4. 选择config文件 目录CCStudio_v3.3/cc/bin/anghaiver35. 点击next出现一下界面finish的退出6. 点击system configuration下的5000_0选择gel文件 5509 然后保存退出7. 打开SD_configuration出现以下界面,配置参数8. 仿真器与电脑相连,安装仿真器驱动程序9. 打开电源打开CCS即可工作第三节 CCS的常用功能3.1 CCS的界面3.2 CCS的菜单简介3.3 工程项目的创建、关闭和打开1.创建一个新的工程项目1) 选择菜单“Project -> New”,打开“Project Creation”对话框2) 在“Project”填入工程名,在“Location”中会自动补全存储路径,也可以自由选择存储路径3) 在“Project Type”中选择“Executable(.out)”,这表示生成一个.out类型的可执行的文件4) 在“Target”中填入平台名称2.工程项目的关闭选择菜单“Project -> Close”即可关闭当前工程项目。3.工程项目的打开1) 选择项目菜单“Project”中的“Open”命令,弹出“Project Open”对话框2) 在对话框中,选择要打开的工程项目文件,单击“打开”按钮。3.4 工程中文件的添加或删除1. 向工程中添加文件单击“Project ->Add File to Projects”,选择添加的文件或在项目管理器(Project View)中单击右键或将文件拖进项目管理器的窗口中来完成添加文件任务2.从工程中删除文件在工程项目清单中,用右键单击所要删除的文件,弹出关联菜单,选择“Remove from Project”选项即可删除该文件3.5 工程项目的构建:对工程有关文件进行编译链接,生成可执行文件。CCS的构建工程项目提供了4种操作,即编译文件、增加性构建、全部重新构建、停止构建。1. 编译文件1) 仅完成对当前源文件的编译,不进行链接。2) 在菜单“Project”中选择“Compile File”,或单击项目工具条中的编译文件按钮,对打开的文件进行编译2. 增加性构建1) 仅对修改过的源文件进行编译,先前编译过、没有修改的文件不再进行编译2) 选择项目菜单“Project”中“Build”命令或单击项目工具条中增加性构建按钮3. 全部重新构建1) 对当前工程项目中的所有文件进行重新编译、重新链接,形成输出文件2) 选择“Project”菜单中的“RebuildAll”4. 停止构建1) 选择“Project”菜单中的“Stop Build”2) 或单击项目工具条中的停止构建按钮3.6程序的运行控制1. 加载程序在进行程序运行之前,需将.out目标文件装入目标系统选择菜单“File->Load Program”,弹出“Load Program”对话框中,选择所要装载的.out文件,即可将程序加载到目标系统2. 复位目标处理器1) Reset CPU在“Debug”调试菜单中,选择“Reset CPU”该命令是将目标处理器CPU恢复到上电初始状态,初始化所有寄存器的内容,并停止当前所执行的用户程序。程序停在复位程序入口地址出2) Restart在“Debug”调试菜单中,选择“Restart”该命令是将CCS的程序指针PC恢复到用户程序的入口地址,但不能开始执行程序Cint_00处3) Go Main 该命令用于调试C语言用户程序。其功能是将一个临时断点设置在用户程序关键字main处,并从此处开始执行用户程序,直到遇到用户设置的断点或执行“Halt”命令时,停止执行程序,撤销临时断点。Cint_00用于初始化C语言环境、为程序开辟堆栈空间、将cinit定义的初始化段的数据拷贝进入bss段中。3.6 断点1. 断点的作用暂停程序的运行,以便观察程序的状态,检查或修正变量,查看调用的堆栈、存储器和寄存器的内容;断点可以设置在编辑窗口中源代码行上,也可以设置在反汇编窗口中的反汇编指令上2. 设置断点时应当避免以下两种情形将断点设置在属于分支或调用的语句上;将断点设置在块重复操作的倒数第一或第二条语句上3.7 反汇编窗口1. 当程序装入目标处理器或仿真器后,CCS会自动打开反汇编窗口2. 用户可以使用“View”菜单中的“Dis-Assembly”选项,或调试工具条中的观察反汇编按钮,打开多个反汇编窗口【注】:单击某个指令或寄存器,再按“F1”键,将出现关于这个指令和寄存器的详细解释。这是一个学习汇编语言的好方法。3.8 存储器的观测存储器窗口可以直接显示存储器的内容。在调试程序的过程中,可直接观察存储器的内容来判断程序的正确性点击调试工具条中的观察存储器按钮,或选择“View”菜单中的“Memory”选项,可以打开“Memory Window Options”对话框。3.9 启动寄存器窗口点击调试工具条中的观察寄存器按钮,或选择菜单“View”中的“Registers -> CPU Registers”选项,可以打开寄存器窗口。3.10 Watch Window观测变量观察窗口的使用观察窗口(Watch Window)用于实时地观察和修改局部变量和全局变量的值。3.11 图形显示工具CCS开发环境提供了多种强大功能的图形显示工具,可以将内存中的数据以各种图形的方式显示给用户,帮助用户直观了解数据的意义。在菜单“View”中选择“Graph”选项,即可进入图形显示功能子菜单。第四节 CCS中建立一个Hello World第五节 揭秘GEL文件5.1 什么事GEL文件打开CCS中,在工程文件窗口的时候,在GEL files中会发现有一个GEL文件。因为在CCS SETUP时候我们已经将GEL文件配置进去了。同时也说明,GEL文件并非是CCS工程文件中所必须具备的。CCS的菜单栏中有GEL一栏,打开看Watch ADC Register,点击后会出现ADC相关的寄存器都会显示在窗口中。此时我们把GEL文件移除掉,我们再重复操作,发现之前看到的GEL菜单栏下的内容都不见了。GEL其实是扩展了CCS的功能.1. GEL:General Extend Language 通用扩展语言它是扩展了CCS功能的扩展语言。GEL语法是类似于C的解释性的语法,通过GEL语法来建立GEL函数,扩展了CCS的功能,就像刚才看到我们可以观测ADC Register的例子。通过GEL文件扩展了CCS的功能为我们的调试项目的时候带来极大的便利。5.2 GEL的语法GEL 是C语言的一个子集,也就是说它支持C语言的部分功能和函数。它所支持的功能如下:1. 支持GEL函数的定义和调用2. 支持Return 语句(返回语句)3. 支持if-else 语句(判断语句)4. 支持while语句(循环语句)5. 具备GEL注释语句6. 支持预处理语句需要和大家说明的是:在写DSP的时候,你所需要的变量都需要定义;但是在GEL函数中的变量和函数,不需要再DSP定义。因为GEL文件中的内容与DSP没有多大的关系,他的功能是为了扩展CCS功能使用的。1. GEL函数的定义funname(Parameter1,Parameter2,)Statements1) 函数的命名和函数中的参数;2) 大括号中是GEL函数的主体,是有效的GEL语句;3) GEL函数的定义与C语言有相同点:函数定义不能嵌套;4) GEL函数的定义与C语言有不同点:C语言需要给他的函数返回值定义类型(int或long或void);函数的参数也需要定义类型。但在GEL的函数的返回值(funname前面为空)和参数的类型没有定义,在运行的过程中根据其中的数值直接定义,无需用用户定义。【例】:定义平方函数Square(a)a*a;1) 函数名Square2) 变量为a3) 可以看到没有制定函数square返回值的类型,也没指定函数参数的类型;2. 定义初始化对话框函数dialog Init(filename “File to be loaded”,cpuname”cpuname”,initvalue”Initialization Value”)GEL_Load(filename,cpuname);a= initvalue;1) Dialog不是我们函数的返回值而是GEL函数的关键字;这个表明这个函数是对话框函数,在运行的时候会弹出对话框;2) Init是函数名,这个函数有三个参数文件名,CPU名和初始化值3) 参数后面的字符串的含义这也是GEL区别C的一个特点,它允许在参数的后面加上字符串来描述这个参数的含义。4) 函数的本体中他调用了GEL的自定义函数(是将这个文件装载到CPU中)将初始化值赋给了a;5)这个a我们需要在DSP工程中定义(比如在EvaRegs.T1PR就是a),那么这个初始化的值赋给了周期寄存器。【例】Init(“C;CCS3.3MyprojectsGPIODebugGPIO.out”,“CPU_a”,0)函数的含义是将C盘下的GPIO.out文件装载到CPU_a中,并将周期寄存器的值清零。5.3 GEL函数的参数(只允许这三种量)1. DSP目标板实际存在的量:比如寄存器或者任意在DSP中实际存在的量2. 数字(量表达式、常数):3. 字符串常量【例】:Initialize(a,filename,b)targVar = b;a = 0;GEL_Load(filename)Return b*b;Initialize(EvaRegs.T1PR;”C:.gpio.out”;28*4+252)1) 有三个参数a,filename,b2) targVar必须是DSP工程文件中存在的变量3) 在整个的函数的定义过程中变量类型无须定义,在函数的传递过程中直接给定出其类型4) 若在其他文件中定义了targVar为int, b是long型,但是传递过程中只传递低16位数据;5.4 GEL语句1.返回语句Return expression2.条件语句If(expression)Statement1ElseStatement23.循环语句While(expression)statement4. 注释语句/*/5. 预定义语句只支持#define 5.5 GEL 函数的关键字Menuitem:为GEL选项中增加下拉菜单(下面三个关键字都能为这个下拉菜单增加选项)Hotmenu:Dialog:Slider:1. Hotmenu:将GEL函数添加到GEL的菜单中,hotmenu通常定义的函数没有参数。Hotmenu funcnameStatements【例】我们建议一个My Function的GEL菜单栏,每个菜单栏中有两个选项,使用hotmenu函数进行构造。编译加入后会在GEL的菜单栏中发现这两个选项。2. 关键字dialogDialog Function(Param1”Param1 definition”,Param2”Param2 definition2”,)Statement;【例】我增加一个GEL的下拉菜单增加dialog选项。3. Slider (滑动条)Dialog param definition (minval,maxval,increment,pageincrement,paraname)Statement;参数含义:滑动条最小值,最大值,每次滑动的增量,每滑动一页的数值,后面的参数是将每滑动一次的数值赋给这个参数【例】音量的滑动运行GEL菜单栏中的这个选项发现如下图所示5.5 CCS自带的GEL函数CCS自带的GEL函数特别多,我们直介绍一些常用的函数,如之后遇到新的函数只需要查询数据手册就可以。GEL_ 比如GEL_Load