




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学要求: 了解CCS开发环境具有的功能,能够操作CCS的窗口、菜单和工具条。掌握CCS工程管理的概念,能够完成简单程序的编辑、汇编、连接和调试,并掌握探针和显示图形的使用。 CCS是TI公司DSP软件的集成开发环境(IDE),本章以CCS2.0为参照讲述。,5.1 CCS集成开发环境简介 Windows下工作,类似于VC+的集成开发环境; 采用图形接口界面,有编辑工具和工程管理工具; 它将汇编器、链接器、C/C+编译器、建库工具等集成在一个统一的开发平台中; CCS所集成的代码调试工具具有各种调试功能,能对TMS320系列DSP进行指令级的仿真和可视化的实时数据分析。 丰富的输入/出库函数和
2、信号处理库函数。 C5000 是专门为开发C5000系列DSP系统(C54x和C55x)。,5.1 CCS集成开发环境简介,5.1.1. CCS安装及设置 1. CCS 2.0系统的安装,5.1 CCS集成开发环境简介,CCS快捷图标,2. 系统配置 原因:为使CCS IDE能工作在不同的硬件或仿真目标上 步骤: 双击桌面上的Setup CCS 2(C 5000)图标,启动CCS设置。 在弹出对话框中单击“Clear”按钮,清除以前定义的配置。 从列出的可供选择的配置文件中,选择能与使用的目标系统相匹配的配置文件。 单击加入系统配置按钮,将所选中的配置文件输入到CCS设置窗口当前正在创建的系统
3、配置中。 单击“FileSave(保存)”按钮,将配置保存在系统寄存器中。 当完成CCS配置后,单击“FileExit”按钮,退出CCS Setup。,5.1 CCS集成开发环境简介,3. 系统启动 双击桌面上CCS 2(C 5000)图标,启动CCS IDE显示CCS主界面。,5.1 CCS集成开发环境简介,5.1.2 . CCS的窗口、菜单和工具条 1.CCS的窗口 工程窗口:用来组织用户的若干程序并由此构成一个项目,用户可以从工程列表中选中需要编辑和调试的特定程序。 原程序编辑窗口:用户既可以编辑程序,又可以设置断点和探针,并调试程序。 反汇编窗口:帮助用户查看机器指令,查找错误。 内存
4、和寄存器显示窗口:查看、编辑内存和寄存器。 图形显示窗口:可以根据用户需要显示数据。 主菜单:用户可以通过条目来管理各窗口。,5.1 CCS集成开发环境简介,5.1 CCS集成开发环境简介,5.1 CCS集成开发环境简介,2.CCS的菜单 File 菜单:提供了与文件相关的命令, New ,Load 等 Edit菜单:提供了与编辑有关的命令, Register等 View菜单:是否显示工具栏、窗口和各种对话框等Memory Project菜单:使用工程管理设计文档,Compile ,Biuld Debug菜单:提供常用调试命令,Breakpoints Probe Points Profiler
5、 菜单:剖切点是CCS在调试程序时,统计某一块程序执行所需要的CPU时钟周期数、子程序被调用数和中断发生次数等统计信息 Option菜单:提供CCS的一些设置选项 ,Font,5.1 CCS集成开发环境简介,Project菜单(工程文件被存盘为*.pjt文件 ) (1)Add Files to Project 工程中支持C源文件(*.c*)、汇编源文件(*.a*、*.s*)、 库文件(*.o*、*.lib)、头文件(*.h)和链接命令文件(*.cmd) (2)Compile 对C或汇编源文件进行编译。 (3)Biuld 重新编译和链接。 (4)Rebuiled All 对工程中所有文件重新编译
6、并链接生成输出文件。 (5)Stop Build 停止正在Build的进程。 (6)Biuld Options 用来设定编译器、汇编器和链接器的参数。,5.1 CCS集成开发环境简介,3.CCS的工具栏 Standard Toolbar:包括新建、打开、保存、剪切、复制、粘贴、取消、恢复、查找、打印和帮助等 Project Toolbar:包括选择当前工程、编译文件、设置和移去断点/Probe Point等功能。 Edit Toolbar:提供一些常用的查找和设置标签命令。 GEL Toolbar:提供了执行GEL函数的一种快捷方法。 ASM/Source Stepping Toolbar:提
7、供了单步调试C或汇编源程序的方法 Target Control Toolbar:提供了目标程序控制的一些工具 Debug Window Toolbar:提供了调试窗口工具,5.1 CCS集成开发环境简介,5.1.3 . CCS的工程管理 CCS对程序采用工程(Project)的集成管理方法。工程保持并跟踪在生成目标程序或库过程中的所有信息。 1.典型工程文件记录的信息 源程序文件名和目标库; 编译器、汇编器和链接器选项; 头文件; 2.创建和管理工程 工程的创建、打开和关闭(ProjectNew/Open/Close) 使用工程观察窗口(单击工程文件夹、工程名(*.pjt)和各个文件夹上的“+
8、/”号即可 ) 添加文件到工程 (ProjectAdd Files to Project ) 从工程中删除文件(Remove from Project ),5.1 CCS集成开发环境简介,5.1.4 .调试 (1)装载可执行程序 FileLoad Program (2)复位(CCS提供4种方法) Reset DSP: DebugReset DSP命令初始化所有R并停止运行程序。 Load Kernel: Lode Kernel 命令重新装入DSP核 Why ? 若用户使用一基于核的调试器(不是JTAG),则DSP核应负责主机的通信。如果DSP核被破坏,则设备驱动程序将无法与目标板通信。 Res
9、tart: Debug Restart 命令将PC恢复到当前载入程序的入口地址,但不执行当前程序。 Go main: Debug Go main命令提供了一种快速运行用户应用程序的方法。(在主程序入口处设置临时断点,然后开始执行。当程序被暂停或遇到一个断点时,临时断点被删除。),5.1 CCS集成开发环境简介,5.1.4 .调试(续) (3)程序执行方式 单步执行操作 单步进入:DebugStep Into: 每操作一次,执行一条指令; 单步执行:DebugStep Over: 每操作一次,执行一条指令(函数,子程序看作一条); 单步调出:DebugStep Out: 从子程序跳出; 执行到光
10、标处:Debug Run to Cursor:程序运行到光标所在语句。 连续运行操作(实时运行) 运行程序:DebugRun:从当前PC所指位置开始执行到结束或断点; 停止程序:Debug Halt:暂停程序的执行; 自由运行:Debug Run free:全速执行用户程序,忽略所有断点。,5.1 CCS集成开发环境简介,5.1.4 .调试(续) (3)程序执行方式(续) 断点运行程序(动画) 在执行各个命令前应当预先设置好程序断点,每按一次按钮,从当前程序位置执行到所有遇到的第一个断点,。 命令:Debug animate; 断点设置: 探针(probe)断点:CCS在源程序某条语句上设置的
11、一种断点。每个探针断点都有相应的属性(用户设置)用来与一个文件的读/写相关联。用户程序运行到探针断点所在语句时,自动读入数据或将计算结果输出到某个文件中。,5.1 CCS集成开发环境简介,5.1.4 .调试(续) (4)存储器、寄存器、变量的操作 存储器:拷贝数据块/填充数据块/察看/编辑内存 寄存器:显示寄存器/编辑寄存器 变量:用观察窗口查看变量/编辑变量 (5)数据输入/输出 利用数据读入/写出功能命令:FileData(Lode /Save) 用途:偶尔的手工读入/写出场合 利用探针功能:适用于自动调入和输出数据场合。,5.1 CCS集成开发环境简介,5.1.4 .调试(续) (6)图
12、形窗口分析数据 提供了四类9种显示功能:每种显示所需的设置参数各不相同。 时频图 星座图:信号的相位分布; 眼图:信号码间干扰情况; 图像显示:YUV或RGB;,5.1 CCS集成开发环境简介,5.1.5 .通用扩展语言GEL 通用扩展语言GEL(General Extension Language)是一种与C类似的解释性语言。 用途:利用GEL语言,用户可以访问实际/仿真目标板,设置GEL菜单选项,特别适合用于自动测试和自定义工作空间。 详细内容:参见TI公司的TMS320C54x Code Composer Studio Users Guide手册。,5.2 CCS 应用举例,5.2 CC
13、S 应用举例 通过本例要介绍的主要内容: 创建一个工程文件 向工程中添加源文件 浏览代码、编译和运行程序 修改Build选项并更正语法错误 使用断点和Watch 窗口 使用探针的方法 图形显示的方法。,5.2 CCS 应用举例,1. 创建一个工程 通过“ProjectNew”,在工程窗口的Project下面创建一个Volume工程。 2. 向工程中添加源文件 (1)通过“ProjectAdd Files to Project”,将Volume.c添加到工程中。 (2) 用同样方法将Vector.asm添加到工程中。(Vector.asm中包含的是将RESET中断指向C程序入口c_int00的汇
14、编指令和其他中断的入口指令。如果调试的程序较为复杂,则可在Vector.asm中定义更多的中断矢量) (3) 将Volume.cmd添加到工程文件中。(该文件的作用是将段(Sections)分配到存储器中) (4) 将load.asm添加到工程文件中。(该文件包含一个简单的汇编循环程序,被C程序调用。调用时带有一个参数(argument),执行此程序共需约1000argument个指令周期) (5) 将“C:tic5400cgtoolslib”下的rts.lib加入到工程文件中。(该文件是采用C语言开发DSP应用程序的运行支持库函数),5.2 CCS 应用举例,3. 浏览代码 #include
15、 #include “volume.h” /* Global declarations */ int inp_bufferBUFSIZE; /* processing data buffers */ int out_bufferBUFSIZE; int gain = MINGAIN; /* volume control variable */ unsigned int processingLoad = BASELOAD; /* processing routine load struct PARMS str = value */ 2934, 9432, 213, 9432, ,5.2 CCS
16、应用举例,3. 浏览代码(续) /* Functions */ extern void load(unsigned int loadValue); static int processing(int *input, int *output); 说明: processing函数将输入buffer中的数与增益相乘,并将结果输出给buffer,它调用汇编load例程的参数processingLoad的值计算指令周期的时间。 static void dataIO(void); 说明:dataIO函数不执行任何实质操作。它没有使用C代码执行I/O操作,而是通过CCS中的Probe Point工具,从PC
17、文件中读取数据到inp_buffer中,作为processing函数的输入参数。,5.2 CCS 应用举例,3. 浏览代码(续)/* = main = */ void main() int *input = ,5.2 CCS 应用举例,3. 浏览代码(续)/* = processing = * FUNCTION: apply signal processing transform to input signal. * * PARAMETERS: address of input and output buffers. * * RETURN VALUE: TRUE. */ static int
18、processing(int *input, int *output) int size = BUFSIZE; while(size-) *output+ = *input+ * gain; load(processingLoad); /* additional processing load */ return(TRUE); ,5.2 CCS 应用举例,3. 浏览代码(续) /* * = dataIO = * * FUNCTION: read input signal and write processed output signal. * * PARAMETERS: none. * * R
19、ETURN VALUE: none. */ static void dataIO() /* do data I/O */ return; ,5.2 CCS 应用举例,4. 编译和运行程序 “ProjectRebuild All”,对工程进行重新编译。 “FileLoad Program”,选volume.out并打开,将Build生成的程序加载到DSP。 “ViewMixed Source/ASM”。该设置使得C程序与其汇编结果同时显示。 “DebugGo Main”。使得程序从主程序开始执行。 “DebugRun”,可以在Output窗口看到“begin processing”信息。 “De
20、bug Halt,中止正在执行的程序。,5.2 CCS 应用举例,5. 使用断点和Watch 窗口 将光标放在“dataIO();”行。 单击鼠标右键,在弹出菜单上选Toggle breakpoint,设置断点。 选择“ViewWatch Window”,将出现Watch窗口。程序运行时Watch Window窗口将显示要查看的变量值。 选择Watch1栏。 在Watch1窗口单击图标,在name栏输入dataIO。 选择“DebugGo Main”。 选择“DebugRun”,运行程序,显示出dataIO是一个函数,该函数存放的首地址是0 x00001457。,5.2 CCS 应用举例,6.
21、 使用探针( Probe Point )的方法 Probe Point的用途:有用工具,可从PC文件中存取数据。即 将PC文件中数据传送到目标板上的buffer,供算法使用。 将目标板上buffer中的输出数据传送到PC文件中以供分析。 更新一个窗口,如由数据绘出的Graph窗口。 Probe Point与Breakpoints的异同点: 相同点:都能中断程序的运行 不同点:Probe Point只是暂时中断程序运行,当程序运行到Probe Point时会更新与之相连的窗口,然后自动继续运行程序 Breakpoints中断程序运行后,将更新所有打开的窗口,且只能用人工的方法恢复程序运行; Pr
22、obe Point可与FILEIO配合,在目标板与PC文件之间传送数据,Breakpoints则无此功能。,5.2 CCS 应用举例,Probe Point应用举例: 将PC上文件中的内容作为测试数据传送到目标板。同时使用一个断点以便在到达Probe Point时自动更新所有打开的窗口。 (1) 将光标放在主函数的dataIO()行上。 (2) 单击鼠标右键,在弹出菜单中选择“Toggle Probe Point”,添加Probe Point。 (3) 在File菜单选择“File I/O”,出现File I/O对话框,在对话框中选择输入/输出文件。 (4) 在“File Input”栏中,单
23、击Add File按钮。 (5) 在volume.c文件所在目录选择sina.dat,并单击打开按钮。此时将出现一个控制窗口,可以在运行程序时使用这个窗口来控制数据文件的开始、停止、前进、后退等操作。,5.2 CCS 应用举例,Probe Point应用举例(续): (6) 在File I/O对话框中,在Address域填入inp_buffer,在length域填入100,选中Wrap Around复选框(读取数据的循环特性) (7) 单击“Add Probe Point”按钮,将出现Break/Probe Points对话框,选中“Probe Points”栏。 (8) 在Probe Poi
24、nt列表中显示“VOLUME.C line 61 - No Connection”。表明该第61行已经设置Probe Point,但还没有和PC文件关联。 (9) 在Connect域,单击向下箭头并从列表中选sine.dat。 (10) 单击Replace按钮,Probe Point列表框表示Probe Point已与sine.dat文件相关联。 (11) 单击“确定”按钮,File I/O对话框指示文件连至一个Probe Point。 (12) 单击“确定”按钮,关闭File I/O对话框。,5.2 CCS 应用举例,7. 使用图形显示的方法 CCS提供很多方法将程序产生的数据图形显示,包括
25、时域/频域波形显示,星座图、眼图等。 下面使用时域/频域波形显示功能观察上例时域波形。 (1) 选择“ViewGraphTime/Frequency(显示图形时域/频域)”。弹出Graph Property对话框,如右图所示。,5.2 CCS 应用举例,7. 使用图形显示的方法(续) (2) 在Graph Property对话框中,更改Graph Title(图形标题)、Start Address(起始地址)、Acquisition BufferSize(采集缓冲区大小)、DSP Data Type(DSP数据类型)、Autoscale(自动伸缩属性)及Maximum Y-value(最大Y值
26、)。 (3) 单击OK按钮,出现一个显示inp_buffer波形的图形窗口。 (4) 在图形窗口中右击,从弹出菜单中选择Clear Display,清除已显示波形。 (5) 再次执行“ViewGraphTime/Frequency”。 (6) 将Graph Title修改为output buffer,Start Address修改为out_buffer,其他设置不变。 (7) 单击OK按钮,出现一个显示out_buffer波形的图形窗口,右击从菜单中选择Clear Display命令,清除已有显示波形。,5.2 CCS 应用举例,动态显示图形举例: 由于Probe Point不会更新图形显示内
27、容。本例将设置一个断点,使图形窗口自动更新。使用Animate命令,使程序到达断点时更新窗口后自动继续运行。 (1) 在volume.c窗口,将光标放在dataIO行上。 (2) 在该行同时设置一个断点和一个Probe Point,使程序中断时执行两个操作:传送数据和更新图形显示。 (3) 在Debug菜单单击Animate。此命令将运行程序,碰到断点后临时中断程序运行,更新窗口显示,然后继续执行程序(与Run不同的是,Animate会继续执行程序直到碰到下一个断点。只有人为干预时,程序才会真正中止运行。可以将Animate命令理解为一个“运行中断继续”的操作)。,5.2 CCS 应用举例,动
28、态显示图形举例(续): (5) 每次碰到Probe Point时,CCS将从sine.dat文件读取100个样值,并将其写至输入缓冲inp_buffer。由于sine.dat文件保存的是40个采样值的正弦波形数据,因此每个波形包括2.5个sin周期波形,如下图所示。 (6) 选择“DebugHalt(调试停止)”,停止程序运行。,5.2 CCS 应用举例,动态显示图形举例(续): (7)调节增益(使用Watch功能改变输出增益) output+=input+*gain 在Watch窗口右击,选择“Insert New Expression”。 输入Gain作为要观察的表达式,单击OK按钮。 在
29、Watch窗口双击Gain。 在变量编辑窗口将Gain值由1改为10,单击OK按钮。,5.3 CCS仿真,5.3 CCS仿真 TMS320软件仿真器是一个软件程序,使用主机的处理器和存储器来仿真TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。 在PC机上,典型的仿真速度为每秒几百条指令,5.3 CCS仿真,软仿真器的性能 在主机上执行用户的DSP程序 修改和检查寄存器/ 显示和修改数据及程序存储器 外设、CACHE、PIPELINE(流水线)的时序仿真 设置断点/单步执行/产生中断 跟踪ACC、PC、AR、表达式的值等 对非法操作码和无效数据输入等提供出错信息
30、 执行批处理文件中的命令 文件方式快速存储和调用仿真参数 反汇编 周期计数并显示,5.3 CCS仿真,1. 用Simulator仿真中断 C54x允许用户仿真外部中断信号INT0INT3,并选择中断发生的时钟周期。 方法:建立一个数据文件,并将其连接到4个中断引脚中的一个即INT0INT3,或BIO引脚。(注意:时间间隔用CPU时钟周期函数来表示,仿真从一个时钟周期开始) (1) 设置输入文件 用文本编辑器编辑一个输入文件,列出中断间隔。格式: clock clock,logic valuerpt n |EOS 其中:clock(时钟周期)是指希望中断发生时的CPU时钟周期 logic val
31、ue(逻辑值)只使用于BIO引脚。必须使用一个值去迫使信号在相应的时钟周期处置高位和置低位。 rpt n |EOS是一个可选参数,代表一个循环修正。,5.3 CCS仿真,(2) 软件仿真编程 建立输入文件后,可使用CCS提供的ToolsPin connect菜单 将输入文件与中断脚连接或断开。 在输入窗口的Command处根据需要选择输入如下命令。 pinc 命令格式:pinc引脚名,文件名。 功能:将输入文件和引脚相连。 pinl 命令格式:pinl。 功能:显示已连接的引脚名和文件的绝对路径名。 pind 命令格式:pind 引脚名。 功能:结束中断,将文件从引脚上脱开。,5.3 CCS仿
32、真,(3) 实例 例 Simulator仿真INT3中断,当中断信号到来时,中断处理子程序完成将一变量存储到数据存储区中,中断信号产生10次。 编写中断产生文件 设置输入文件,列出中断发生间隔。在文件zhongduan.txt 中写入100(+100)rpt 10之后存盘,此文件与中断的INT3引脚连接后,系统每隔100个时钟周期发生一次中断。 将输入文件zhongduan.txt连接到中断引脚 在命令行输入pinc INT3,zhongduan.txt,将INT3引脚与zhongduan.txt文件连接。,5.3 CCS仿真,(3) 实例(续) 用汇编语言仿真中断 a) 编写中断向量表 ;建
33、立中断向量 .sect “vectors” .space 93*16 ;按中断向量在表中预留一定空间 INT3 NOP ;外部中断INT3 NOP NOP GOTO NT3 NOP .space 28*16 ;68h7Fh保留区,5.3 CCS仿真, 用汇编语言仿真中断 b) 编写主程序(注意:对中断有关的寄存器进行初始化) .data a0 .word 0,0,0,0,0,0,0,0 .text .global _main _main:PMST = #01a0h ;初始化PMST寄存器 SP=#27FFh ;初始化SP寄存器 DP=#0 IMR=#100 ;初始化IMR寄存器 AR1=#a0
34、 a=#9611h INTM=0 ;开中断 w1: wait ;等待中断信号 NOP NOP GOTO w1,5.3 CCS仿真, 用汇编语言仿真中断 c)编写中断服务程序。 NT3: NOP NOP (*AR1+)=a; NOP NOP return_enable .end,5.3 CCS仿真,2.用Simulator仿真I/O接口 实现方法: 使用系统提供的ToolsPort Connect菜单来连接、脱开I/O接口; 选择调试命令。单击ToolsCommand Window,系统将弹出对话框,然后在Command处根据需要选择输入的命令。 实现步骤: 定义存储器映射方法; 连接I/O接口
35、; 脱开I/O接口。,5.3 CCS仿真,(1) 定义存储器映射方法(ma命令) 命令格式: ma address, page, length, type 说明: address 定义一个存储区域的起始地址,此参数可以是一个绝对地址、C表达式、函数名或汇编语言标号。 page 用来识别存储器类型,0代表程序存储器,1代表数据存储器,2代表I/O空间。 length 定义其长度,可以是任何C表达式。 type 说明该存储器的读写类型。,5.3 CCS仿真,(2) 连接I/O接口(mc命令) 命令格式: mc portaddress, page, length, flename, fileacce
36、ss 说明: portaddress I/O空间或数据存储器地址。此参数可以是一个绝对地址、C表达式、函数名或汇编语言标号。 Page 用来识别此存储器区域的内容。Page1,表示该页属于数据存储器。Page=2,表示该页属于I/O空间。 Length 定义此空间的范围,此参数可以是任何C表达式。 Filename 可以为任何文件名。从连接口或存储器空间读文件时,文件必须存在,否则mc命令会失败。 Fileaccess 识别I/O和数据存储器的访问特性(PR,PW等),,5.3 CCS仿真,(3) 脱开I/O端口(mi命令) 命令格式: mi portaddress,page,R|W|EX 说明: 使用md命令从存储器映射中消去一个端口之前,必须使用mi命令脱开该端口。mi(memory disconnect)将一个文件从一个I/O端口脱开。 命令中的端口地址和页是指要关闭的端口,read/write特性必须与端口连接时的参数 一致。,5.3 CCS仿真,(4) 实例 例 编写汇编语言源程序从文件ioread.txt中读取数据 定义I/O端口 ma 0 x100,2,0 x1,P|R ;定义地址0 x100为输入端口 ma 0 x102,2,0 x1,P|W ;定义地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论