TMS320LF240x系列DSP课件-第4章程序编写和调试环境简介.ppt_第1页
TMS320LF240x系列DSP课件-第4章程序编写和调试环境简介.ppt_第2页
TMS320LF240x系列DSP课件-第4章程序编写和调试环境简介.ppt_第3页
TMS320LF240x系列DSP课件-第4章程序编写和调试环境简介.ppt_第4页
TMS320LF240x系列DSP课件-第4章程序编写和调试环境简介.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

周鹏 安徽工程大学电气工程学院,第4章: 程序编写和调试环境简介,4.1 调试环境代码编译器ccs简介(教材p103) 4.2 程序的编写(教材p108) 4.3 ccs工程组成(教材p111-p126) 4.4 调试一个程序的简单步骤(教材p126) 4.5 c程序和汇编程序混合编程(教材p131),周鹏 安徽工程大学电气工程学院,4.1 调试环境代码编译器ccs简介,本节要求: 了解ccs开发环境具有的功能,能够操作ccs的窗口、菜单和工具条。掌握ccs工程管理的概念,能够完成简单程序的编辑、汇编、连接和调试。 ccs是ti公司dsp软件的集成开发环境(ide),本节以ccs2000为参照讲述。,周鹏 安徽工程大学电气工程学院,ccs集成开发环境简介 windows下工作,类似于vc+的集成开发环境; 采用图形接口界面,有编辑工具和工程管理工具; 它将汇编器、链接器、c/c+编译器、建库工具等集成在一个统一的开发平台中; ccs所集成的代码调试工具具有各种调试功能,能对tms320系列dsp进行指令级的仿真和可视化的实时数据分析。 丰富的输入/出库函数和信号处理库函数。,周鹏 安徽工程大学电气工程学院,周鹏 安徽工程大学电气工程学院,ccs 2000系统的安装 用来对该编译器的运行环境进行配置。 程序调试仿真环境。,周鹏 安徽工程大学电气工程学院,系统配置 原因:为使ccs ide能工作在不同的硬件或仿真目标上。 步骤: 双击桌面上的setup ccs 2(c 2000)图标,启动ccs设置。 在弹出对话框中单击“clear”按钮,清除以前定义的配置。 从列出的可供选择的配置文件中,选择能与使用的目标系统相匹配的配置文件。 单击加入系统配置按钮,将所选中的配置文件输入到ccs设置窗口当前正在创建的系统配置中。 单击“filesave(保存)”按钮,将配置保存在系统寄存器中。 当完成ccs配置后,单击“fileexit”按钮,退出ccs setup。,周鹏 安徽工程大学电气工程学院,1.ccs的窗口 双击桌面上ccs 2(c 2000)图标,启动ccs ide显示ccs主界面。,用来组织用户的若干程序并由此构成一个项目,用户可以从工程列表中选中需要编辑和调试的特定程序。,帮助用户查看机器指令,查找错误,用户既可以编辑程序,又可以设置断点和探针,并调试程序。,可以根据用户需要显示数据。,查看、编辑内存和寄存器。,查看、编辑内存和寄存器。,显示对工程进行编译,汇编和连接时的一些状态信息,如果在编译、汇编和连接过程中发现错误,则该窗口显示出错误类型和错误位置。,主菜单:用户可以通过条目来管理各窗口。,周鹏 安徽工程大学电气工程学院,2、ccs的菜单 file(文件):文件管理,载入执行程序、符号及数据,文件输入输出等 edit(编辑):文件及变量编辑,如剪贴、撤消、字符串查找等 view(查看):工具条显示设置,内存、寄存器和图形显示等 project(工程):工程管理(新建、打开、关闭及添加文件等)、编译、构建工程等 debug(调试):断点、探针设置,单步执行、复位等 profiler(性能):性能菜单,包括时钟和性能断点设置等,周鹏 安徽工程大学电气工程学院,gel(扩展功能):利用通用扩展语言设置扩展功能 option(选项):选项设置,设置字体、颜色、键盘属性、动画速度、内存映射等 tools(工具):包括引脚连接、端口连接、命令窗口、连接设置等 dsp/bios(实时分析工具):用来辅助ccs环境实现程序实时调试 windows(窗口):窗口管理,包括窗口排列、窗口列表等 help(帮助):ccs在线帮助菜单,包括用户手册、入门指南等,周鹏 安徽工程大学电气工程学院,project菜单(工程文件被存盘为*.pjt文件 ) new 新建一个工程,将该工程保存至新建工程的文件夹里。 add files to project 工程中支持c源文件(*.c)、汇编源文件(*.asm)、库文件(*.obj、*.lib)和链接命令文件(*.cmd) 。工程管理会自动加入头文件和include引用的文件,不允许添入其他类型的文件。 compile file 对c或汇编源文件进行编译。 biuld 对工程进行编译、汇编和连接,生成可执行文件.out。 rebuiled all 对工程中所有文件重新编译并链接生成输出文件。 stop build 停止对工程的编译、汇编和连接。 biuld options 用来设定编译器、汇编器和链接器的参数,通常采用默认设置。 recent project files 显示最近打开过的工程。,周鹏 安徽工程大学电气工程学院,view菜单 dis-assembly 观察汇编程序窗口;可在此窗口中对汇编程序进行修改。 memory 观察存储窗口;可选择观察的存储器类型和存储器的起始地址。 cpu registers 考察调试过程中cpu寄存器的和各个状态位的变化情况。 watch window 观察调试过程中的变量,c表达式,地址和寄存器的值。 mixed source and asm 在调试过程中即观察c程序又观察汇编程序。,周鹏 安徽工程大学电气工程学院,debug菜单 breakpoints 将光标放在要设置断点的程序处可在程序中设置断点;程序运行到断点处自动停止。 probe points 在程序中设置探测点。 stepinto 单步执行程序并进入调用的子程序。 stepover单步执行程序但不进入调用的子程序或中断服务程序。 stepout 跳出子程序。 run 执行程序到断点、探测点或用户中断。 halt 用来停止程序的执行。 reset dsp 对处理器进行复位。 restart 将程序指针指向程序的起始地址,从程序最开始处执行程序。 提示:善用ccs的help,周鹏 安徽工程大学电气工程学院,3、ccs的工具栏 standard toolbar:包括新建、打开、保存、剪切、复制、粘贴、取消、恢复、查找、打印和帮助等 project toolbar:包括选择当前工程、编译文件、设置和移去断点/probe point等功能。 edit toolbar:提供一些常用的查找和设置标签命令。 gel toolbar:提供了执行gel函数的一种快捷方法。 asm/source stepping toolbar:提供了单步调试c或汇编源程序的方法 target control toolbar:提供了目标程序控制的一些工具 debug window toolbar:提供了调试窗口工具,周鹏 安徽工程大学电气工程学院,4.2 程序的编写,汇编伪指令分成7类(根据功能): 定义段的伪指令; 初始化常数的伪指令; 调准段程序计数器的伪指令; 引用其他文件的伪指令; 条件汇编伪指令; 在汇编时定义符号的伪指令; 执行其他功能的伪指令。,周鹏 安徽工程大学电气工程学院,1. 段定义伪指令 作用:把汇编语言程序的各个部分划分在适当的段中。 .asect 创建具有绝对地址的初始化命名段; .bss 为未初始化的变量保留空间; .sect 定义已初始化的带命名段,其后的数据存入该段; .text 该段包含了可执行的代码; .usect 在一个未初始化的有命名的段中为变量保留空间。 .data 通常包含了初始化的数据; 段是通过叠加方式来建立的。例如在汇编器第一次遇到.data伪指令时,data指令后面的语句都被汇编在.data段中(直到汇编器遇到.text和.sect伪指令为止)。如果后来又在其他的段中遇到.data指令,其后的语句继续加到.data段中。这样虽然程序中是多个.data段分散在各处,但汇编器只创建一个.data段,它可以连续地被分配到内存中。,周鹏 安徽工程大学电气工程学院,2.常数初始化伪指令 .float和.bfloat 计算以ieee格式表示的单精度(32位)浮点数,并存放在当前段的连续字中,高位先存。.float能自动按域的边界排列,.bfloat不能。 .int和.word 把一个或多个16位数存放到当前段的连续字中。.int为无符号整型量,.word为带符号整型量。 .long和.blong 把32位数存放到当前段连续的两个字中,高位字先存。.long能自动按长字的边界排列,.blong 却不能。 .string 把8位的字符从一个或多个字符串中传送到当前段中。,周鹏 安徽工程大学电气工程学院,3. 引用其他文件的伪指令 .copy/.include 伪指令告诉汇编器开始从其他文件中读源语句。 .def 确认一个在当前模块中定义的且能被其他模块使用的符号。 .ref 确认一个在当前模块中使用但在其他段中定义的符号。 .global 表明一个外部符号,使其他模块在连接时可以使用。如果在当前段定义了该符号,那么该符号就可以被其他模块使用,与.def功能相同;如果在当前段没有定义该符号,则使用了其他模块定义的符号,与.ref功能相同。一个未定义的全局符号只有当它在程序中使用的时候,链接器才对其进行处理。,周鹏 安徽工程大学电气工程学院,4. 控制条件汇编的伪指令 .if/.elseif/.else/.endif 这些指令告诉汇编器,根据表达式的值条件汇编一块代码。.if 表示一个条件块的开始,如果条件为真就汇编紧接着的代码;.elseif是表示如果.if的条件为假,而.elseif的条件为真,就汇编紧接着的代码;.endif结束该条件块。 .loop/.break/.endloop 告诉汇编器按照表达式的值循环汇编一块代码。.loop标注一块循环代码的开始;.break告诉汇编器当表达式为假时,继续循环汇编,当表达式为真时,立刻转到.endloop后的代码去执行;.endloop标注一个可循环块的末尾。,周鹏 安徽工程大学电气工程学院,4个基本的文件: c语言文件:后缀为.c,实现dsp要完成的功能。 汇编语言文件 后缀为.asm,书写该文件所用指令为lf2407支持的汇编语言指令。该程序中实现dsp要完成的功能。通常在该文件的最开始写上.include“f2407regs.h”,表明包含了f2407regs.h头文件里定义的一些寄存器。 头文件 后缀为.h,定义dsp系统用到的一些寄存器映射地址和用户用到的常量和用户自定义的寄存器。头文件必须放在源程序的开始,并使用“#include” 语句声明和添加。 命令文件(.cmd) 后缀为.cmd,实现对程序存储器空间和数据存储器空间的分配。该文件常用的伪指令:memory和sections。,周鹏 安徽工程大学电气工程学院,4.3 ccs工程组成,(1).pjt文件 ccs工程文件。在cc中,工程文件的扩 展名为.mak。 (2).lib文件 ccs运行支持库(rts2xx.lib) 。 (3).h文件 头文件(.h) 。 (4).c文件 c源文件(.c) 。 (5).asm文件 汇编语言源文件。 (6).cmd文件 链接命令文件(.cmd) 。 (7)中断向量文件 vectors.asm (8).obj文件 目标文件,coff格式。 (9).out文件 可执行文件,coff格式。,周鹏 安徽工程大学电气工程学院,头文件 ccs工程中的头文件与其它基于c语言的开发环境中的头文件基本相同,主要是用来定义工程中的常量和数据结构。为了提高开发效率,开发人员往往会将dsp片内的控制寄存器定义写成一个头文件,这样在各个基于相同型号dsp的开发中,可以共享这个定义控制寄存器的头文件。,周鹏 安徽工程大学电气工程学院,中断向量定义 与传统的单片机类似,dsp的中断也可以采用查询和回调两种方式来处理。如果采用回调方式处理,其实现方式是在中断向量地址处放置一个跳转语句,跳转到相应的中断处理函数。在ccs中,需要编写一个.asm文件,定义所有的中断向量。,周鹏 安徽工程大学电气工程学院,链接命令文件 链接器命令文件主要包含以下3部分内容: (1)输入文件名。就是链接的目标文件和文档库文件或者是其他的命令文件,可以没有。 (2)链接器选项。如-l、-stack、-o等,这些选项可以用在链接命令行,也可以用在命令文件中。 (3)memory和sections都是链接命令,memory命令定义目标存储器的配置,sections命令定义逻辑段与目标存储器的对应关系,周鹏 安徽工程大学电气工程学院,memory伪指令 用来标示实际存在目标系统中且可被使用的存储器范围,每个存储器范围具有名字、起始地址和长度。语法如下: memory page0:namel(attr): origin=constant, length=constant; pagen:namen(attr): origin=constant, length=constant; page 标示存储器空间。用户规定可以多达255页,通常page0规 定程序存储器,page1规定数据存储器。 name 命名存储器。 attr 规定与已命名范围有关的14个属性。 r可读;w可写;x可执行;i可初始化 origin 规定存储器范围的起始地址。 length 规定存储器范围的长度。,周鹏 安徽工程大学电气工程学院,sections伪指令 描述输入段这样被组合到输出段内;在可执行程序内定义输出段;规定在存储器内何处放置输出段;允许重命名输出段。语法如下: sections name:property, property, property, name:property, property, property, 每一个以name开始的段的规格说明定义了一个输出段。在段名后是特性列表,定义段的内容及分配方式。可能具有的特性如下: 装载位置规定段将被装载到存储器何处; 运行位置段将在存储器何处运行; 输入段组成输出段的输入段; 段类型特定段类型的标志; 填充值用于填充未初始化空位的数值,周鹏 安徽工程大学电气工程学院,常用的几个伪指令 .cinit 标示部分存放已明确初始化的全局变量和静态 变量; .const 标示部分存放已明确初始化的字符串常量、全 局常量和静态常量; .switch 标示部分存放大型switch语句的跳转表; .text 标示部分存放可执行代码和浮点数常量; .bss 标示部分用于存放没有初始化的全局变量和静 态变量; .stack 定义软件堆栈。,周鹏 安徽工程大学电气工程学院,周鹏 安徽工程大学电气工程学院,.cmd文件同.asm文件必须对应,否则,即使asm程序代码语法完全正确编译也不会通过。 在配置.cmd文件时,用户必须对dsp的数据存储空间、程序存储空间和汇编伪指令十分熟悉。 所有的空间分配都必须建立在dsp的物理结构基础上,用户不能通过.cmd文件虚拟出dsp在物理结构上不存在或不合法的空间。,周鹏 安徽工程大学电气工程学院,4.4 调试一个程序的简单步骤,ccs的工程管理 ccs对程序采用工程(project)的集成管理方法。工程保持并跟踪在生成目标程序或库过程中的所有信息。 典型工程文件记录的信息 源程序文件名和目标库; 编译器、汇编器和链接器选项; 头文件; 创建和管理工程 工程的创建、打开和关闭(projectnew/open/close) 使用工程观察窗口(单击工程文件夹、工程名(*.pjt)和各个文件夹上的“+/”号即可 ) 添加文件到工程 (projectadd files to project ) 从工程中删除文件(remove from project ),周鹏 安徽工程大学电气工程学院,调试 (1)装载可执行程序 fileload program (2)复位(ccs提供4种方法) reset dsp: debugreset dsp命令初始化所有r并停止运行程序。 load kernel: lode kernel 命令重新装入dsp核 restart: debug restart 命令将pc恢复到当前载入程序的入口地址,但不执行当前程序。 go main: debug go main命令提供了一种快速运行用户应用程序的方法。,周鹏 安徽工程大学电气工程学院,(3)程序执行方式 单步执行操作 单步进入:debugstep into: 每操作一次,执行一条指令; 单步执行:debugstep over: 每操作一次,执行一条指令(函数,子程序看作一条); 单步调出:debugstep out: 从子程序跳出; 执行到光标处:debug run to cursor:程序运行到光标所在语句。 连续运行操作(实时运行) 运行程序:debugrun:从当前pc所指位置开始执行到结束或断点; 停止程序:debug halt:暂停程序的执行; 自由运行:debug run free:全速执行用户程序,忽略所有断点。,周鹏 安徽工程大学电气工程学院,断点运行程序(动画) 在执行各个命令前应当预先设置好程序断点,每按一次按钮,从当前程序位置执行到所有遇到的第一个断点,。 命令:debug animate; 断点设置:使用对话框;采用工程工具条“设置断点”按钮 探针(probe)断点:ccs在源程序某条语句上设置的一种断点。每个探针断点都有相应的属性(用户设置)用来与一个文件的读/写相关联。用户程序运行到探针断点所在语句时,自动读入数据或将计算结果输出到某个文件中。,周鹏 安徽工程大学电气工程学院,(4)存储器、寄存器、变量的操作 存储器:拷贝数据块/填充数据块/察看/编辑内存 寄存器:显示寄存器/编辑寄存器 变量:用观察窗口查看变量/编辑变量 (5)数据输入/输出 利用数据读入/写出功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论