DSP

TI DSP集成开发环境CCS的使用

2019-07-13 10:05发布

CCSTI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。   一、CCS的简介  CCS是一种针对TMS320系列DSP的集成开发环境,Windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具。 CCS有两种工作模式: 1、软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。 2、硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 本次实验主要采用软件仿真器模式。 二、CCS系统配置   采用标准配置文件进行系统配置的步骤: 步骤1:启动CCS配置程序。双击桌面上的Setup CCS快捷图标,弹出对话框。 步骤2:清除以前定义的配置。 步骤3:选择与目标系统相匹配的配置文件。 步骤4:将所选中的配置文件加入到系统配置中。 步骤5:安装驱动程序。点击“Intall a Device Driver”,弹出选择器件驱动程序对话框。 步骤6:保存系统配置。打开“File”菜单,单击“Save”按钮,将系统配置保存在系统寄存器中,完成CCS的系统配置。 三、CCS中常用文件名和应用界面 1、常用文件名  *.cmd —— 链接命令文件; *.obj —— 由源文件编译或汇编后所生成的目标文件; *.out —— 完成编译、汇编、链接后所形成的可执行文件,可在CCS监控下调试和执行。 2、应用界面 四、实验举例 1. 创建新工程 利用CCS创建一个新工程,然后向该工程中添加源代码文件和库文件。 1) CCS的安装目录为c: i,首先在文件夹c: imyprojects下建立一个新的文件夹,命名为volume1 2) c: i utorial arget(sim54xxdsk5402)volume1文件夹中的内容拷贝到该新建的文件夹中。 3) 启动CCS。如果需要的话,对CCS进行配置,使其工作在C54x simulator模式下。 4) CCSProject菜单下选择子菜单New。将出现Project Creation对话框。在对话框中“Project Name”处输入volume1,“Location”处用浏览方式选入在第一步中所建立的文件夹volume1的位置,在“Project Type”处选择Executable.out)类型,在“Target”中选择CCS所配置的目标DSP类型。最后单击“Finish”完成。 5) 通过上述步骤Code Composer Studio就建立了一个工程文件,名为volume1.pjt,该工程文件用于存储工程配置以及在工程中所用到的若干文件。可在“工程项目观察窗口(Project view)”处看到。 2. 向工程中添加文件 一个工程项目包括源程序、库文件、链接命令文件和头文件等。 1) CCS中选择菜单Project® Add Files to Project,然后选文件volume.c,并单击Open。(也可在工程图标处单击鼠标右键在快捷菜单中选Add Files to Project,或将文件拖入工程视图窗口的文件夹中。) 2) CCS中选择菜单Project® Add Files to Project,并在文件类型选框中选汇编源文件(*.a*, *.s*),然后选vectors.asm 和 load.asm 这两个文件并单击Open。这些文件中包含了设置复位RESET中断到程序的C入口c_int00的一些汇编指令。(对于更加复杂的程序,可在vectors.asm 文件中定义更多的中断向量。也可利用DSP/BIOS来自动定义所有的中断向量。) 3) CCS中选择菜单Project® Add Files to Project,并在文件类型选框中选择链接命令文件(*.cmd),然后选volume.cmd并单击Open,该命令文件将汇编程序的段映射到DSP的存储空间中。 4) CCS中选择菜单Project® Add Files to Project,进入编译库文件夹(c: ic5400cgtoolslib),在文件类型选框中选择目标文件类型和库文件类型(*.o*, *.lib),为所配置的目标DSPrts.lib文件并单击Open。该库文件为目标DSP提供了运行时间(runtime)支持。(对于一些目标DSP,运行时间库可以是一个更特殊的文件名,如rts_ext.lib 。) 5) 在工程视图窗口,用鼠标右键单击工程文件volume.pjt 并在快捷菜单中选择 Scan All Dependencies。这时volume.h应出现于工程视图窗口中的库(Libraries)文件夹中。 6) 单击Project左边的小加号+,将展开工程列表:volume1.pjtLibraries,以及 Source。该列表即为工程视图。
无需手工向工程中加入include文件,因为CCS将会在编译过程中自动找到这些文件。编译之后在工程视图中将出现这些include文件.
如果要从工程中移出一个文件,只要在相应文件处单击鼠标右键在弹出的快捷菜单中选Remove from project 即可。
编译时CCS在以下路径依次查找工程文件:包含有源文件的文件夹;在compiler 或 assembler 选项中从左到右依次列出的文件夹。 3. 察看源代码 在工程视图中volume.c上双击,就可在CCS右边窗口中察看源代码。 请注意该程序中的以下部分: Ÿ 在进入main函数后打印出一条消息,并进入死循环。循环体中程序调用了dataIO以及其他一些过程函数。 Ÿ 在过程函数中,将输入缓冲区(input buffer)中的每一个数值乘以增益(gain),并将结果放入输出缓冲区(output buffer)。程序也将调用汇编载入例程,该例程按照传递给它的processingLoad取值来消耗指令周期。 Ÿ 本例中dataIO函数除了返回之外不做其他任何动作。我们在这里不使用C代码来完成I/O,而是利用CCS中的一个探针Probe Point 来从主机的文件中读入数据并放入inp_buffer区域。 4. 编译并运行程序 编译并运行程序的步骤: 1) Project®Rebuild All 或单击工具按钮      (Rebuild All)。CCS重新编译,并链接工程中的全部文件。编译过程信息显示在CCS下部的窗口中。 2) 在默认情况下,将当前工程目录下的debug子目录中生成.out文件。通过CCS工具条可改变生成文件的存放位置。 3) File®Load Program,并在对话框中选刚刚编译生成的文件volume1.out,单击Open打开。(默认在目录c: imyprojectsvolume1Debug 文件夹下)这样CCS就将程序载入目标DSP,并打开一个反汇编窗口,显示出相应的反汇编指令。CCS也将在窗口底部自动打开一个标签区域来显示程序送往stdout的输出。 4) View®Mixed Source/ASM,将同时看到c源代码和汇编结果代码。 5) 在混合模式窗口中单击一条汇编伪指令本身,并按F1键,CCS将搜索该条指令的帮助。 6) Debug®Go Main开始从main 函数处执行程序。程序暂停在main处,并用黄 {MOD}的箭头标识。 7) Debug®Run或单击工具按钮    (Run)来运行程序。 8) Debug®Halt来暂停程序执行。 9) 从菜单View中选Mixed Source/ASM。将看到不带相应汇编的c代码。从而可以方便地进行下一个任务:修改程序选项,修正语法错误。 5. 修改并运行程序 在前面的介绍中,预处理命令(#ifdef and endif)包围的程序部分不会被执行,因为没有定义FILEIO。在这一部分将在CCS中设置一个预处理选项。 1) Project®Build Options 2) Build Options窗口的Compiler标签下,从列表栏选择Processor, 在Define Symbols域键入FILEIO,然后按Tab键。
(注:窗口上部的编译命令中含有了选项-d。再次编译时程序中的#ifdef FILEIO之后的语句将被包含。根据所使用的DSP板的不同其他选项也将发生变化。) 3) 单击OK保存新的选项设置。 4) Project®Rebuild All 或单击工具按钮     (Rebuild All)。只要改变了工程选项,就必须重新编译所有的文件。 5) File®Load Program并选择文件volume1.out。(也可以在编译之后自动装入,选择Option®Customize,并单击Program Load Options标签,然后选中Load Program After Build Option 6) Debug®Go Main开始从main 函数处执行程序。程序暂停在main处,并用黄 {MOD}的箭头标识。 7) Debug®Run或单击工具按钮    (Run)来运行程序。 8) Debug®Halt来暂停程序执行。 6. 使用断点以及变量观察窗口 在开发测试程序的过程中,经常需要在程序执行中察看变量的取值,将利用断点以及变量观察窗口来达到此目的。在达到断点后,使用单步执行命令。 1) File®Reload Program 2) 在工程视图中双击文件volume.c,打开代码窗口。将光标置于下面的语句行:
dataIO 3) 单击工具按钮  (Toggle Breakpoint)或按F9。选择边区(编辑区左边的灰 {MOD}竖条部分)标示出断点已经设置(红 {MOD}点图标)。如果选择边区无效(用Option®Costomize®Editor Properties 来设置),择行显示用粉红 {MOD}高亮显示。(用Option®Costomize®Color可改变颜 {MOD}。) 4) View®Watch Window,在CCS的右下角将出现一个分离区域,程序运行时该区域显示观察变量的取值。默认时选中局部观察标签Watch Locals,显示当前执行的函数中的局部变量。 5) 如果程序没有停留在main处,选Debug®Go Main 6) Debug®Run,或按F5,或图标      。 7) Watch1标签。在Name栏单击并键入dataIO ,即键入要观察的变量名称。 8) 单击watch window 的白 {MOD}区域来保存。这时变量取值将立即显示出来。 9) 单击工具按钮     (Step Over)或按F10数次,将跳到调用dataIO()处。 10) 单击      (Remove All Breakpoints)。 7. 为文件I/O添加探针(测试点) 利用探针来从计算机中的文件读取数据,对于算法开发来说是很有用的。探针的用途: Ÿ 将主机文件中的数据(如利用Matlab产生)传输到目标DSP板的缓冲区中,供相应算法使用。 Ÿ 将计算输出从目标板的缓冲区中取出并存放到主机的文件中,以便分析。 Ÿ 用来利用数据更新某窗口,如图形显示窗口。 本部分利用探针将主机文件数据传送到目标板作为测试数据,另外,当到达探针位置时,利用断点来更新所有打开的窗口。 1) File®Load Program,选择volume1.out,并单击Open 2) 双击工程视图文件volume.c 3) 将光标置于main函数中的语句处:dataIO();
此处dataIO()函数作为一个占位符(无任何功能的函数)。现在该函数是一个方便的位置来设置探针,以便从主机传入数据。 4) 单击工具按钮 Toggle Probe Point),选择边区标出一个菱形小蓝点,标示探针已经设置。若选择边区无效,可以使用Option®Customize®Editor Properties来设置,在该行用蓝 {MOD}高亮来显示,用Option®Customize®Color来改变颜 {MOD}。 5) File菜单选择File I/OFile I/O对话框出现以便选择输入、输出文件。 6) File Input 标签下,单击Add File 7) 浏览到建立的volume1工程文件夹并选择sine.dat单击Open。(可在文件类型项目下选择数据文件格式。sine.dat文件包含了一个正弦波形的16进制数值)
接着出现了sine.dat的控制窗口。当执行程序时,可利用该控制窗口来在数据文件中作开始、停止、回卷、快进操作。 8) File/IO对话框中,改变Addressinp_buffer,修改Length100,并选中Wrap Around 框。 Ÿ Address域定义了来自文件的数据应放到哪里。inp_buffer是在volume.c中声明的大小为BUFSIZE的一个整型数组(BUFSIZE 是定义于volume.h的一个常量。) Ÿ Length域定义了每次探针点能从数据文件中读取多少样本。由于在volume.h中定义了常量BUFSIZE为(0x64),所以这里设置Length域为100 Ÿ Wrap Around选项使得当CCS读取数据到文件末尾时能够再次从文件头开始读取。这就允许数据文件可以被视为一个连续数据流,尽管该文件中只包含1000各数据,而探针每次读取100个数据值。 9) 单击Add Probe Point,使得Break/Probe Points对话框中的Probe Points标签出现。 10) Probe Point列表中,单击VOLUME.C line 61® No Connection行使之高亮。 11) 在 Connect To域,单击下拉箭头并从列表中文件选择sine.dat  12) 单击Replace,这样Probe Point列表将显示为探针与文件sine.dat已经连接。单击OK,那么现在File I/O对话框就将显示文件与探针相连。单击OK关闭File I/O对话框。 8. 显示图形 如果现在运行程序,那么程序的运行结果将无法显示出来。通过设置观察变量来观察与inp_bufferout_buffer数组相关联的地址中的数据。但是需要观察许多数据,并且显示的只是数据,而不是数据相应的曲线图(波形图)。 CCS提供了多种方式来将程序处理的数据可视化。 1) 选菜单View® Graph® Time/Frequency 2) Graph Property对话框中,修改Graph Title 为 InputStart Addressinp_bufferAcquisition Buffer Size 100Display Data Size100DSP Data Type为 16-bit signed integerAutoscale为 OffMaximum Y-value1000 3) 单击OK,显示 Input Buffer 的一个 Input图形窗口就出现了。 4) Input graph 窗口单击鼠标右键并在弹出菜单中选择Clear Display 5) 再次选菜单View® Graph® Time/Frequency。将Graph Title修改为Output,并将Start Address修改为out_buffer,其余值默认。 6) 单击OK,显示Output图形窗口。在该窗口中单击鼠标右键,从弹出菜单中选择Clear Display 五、实验操作 同学按上述讲解步骤完成实验的操作并熟悉CCS的使用。