TI_DSP软件开发工具CCS的使用.ppt_第1页
TI_DSP软件开发工具CCS的使用.ppt_第2页
TI_DSP软件开发工具CCS的使用.ppt_第3页
TI_DSP软件开发工具CCS的使用.ppt_第4页
TI_DSP软件开发工具CCS的使用.ppt_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

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

文档简介

1 数字信号处理器 digital signal processor ti dsp软件开发工具 ccs(code composer studio)的使用 2 1 ccs集成环境ide (integrated development environment) n不仅仅是代码生成工具 具备基本调试功能,还具备实时分析的能力 支持整个软件开发过程: 设计 代码生成(项目建立,源程序编写,配置文件) 调试(语法检查,探测点,日志log功能) 实时分析(实时调试,实时状态显示,任务切换跟踪) 实时(real time)是dsp的灵魂 3 1.1 ccs集成环境ide 4 1.1 ccs集成环境ide的组成 5 1.1 ccs集成环境ide的组成 n包括主机和目标系统两部分 nccs 首先是作为代码生成工具,作为代码生成工具有 这样一些输入:配置工具产生的配置文件,dsp/bios api的库函数。自己的程序文件.c,.h,生成可执行文 件 n主机方:最低层是jtag,上面是调试器,再上面是ccs 的各种插件,包括dsp/bios插件(实时调试),还用 rtdx(实时数据交换) n目标系统一方:最底层是硬件和jtag,向上是 dsp/bios实时操作系统(这是可选的也可以没有操作 系统,完全自己管理),再向上是应用程序. 6 1.2 ccs代码生成工具流图 7 1.2 ccs代码生成工具流图 n每个白色框代表一种代码生成工具,条纹框是它的输入文件 类型 n比如:c编译器(c程序),汇编优化器(线性汇编程序), 汇编器(汇编),建库工具,连接器 n最后可执行文件由调试器加载目标系统以上的工具时常用和 通用的. n其它的工具 nhex conversion utility 16进制转换工具,把coff 转换为其 它格式文件写到eprom中 ncross-reference lister 产生交叉参考列表, 它列出定义 的symbol, 定义symbol的行, 以及用到symbol的位置(行),还 有symbol的类型, 编译和连接时分配给symbol的值. nabsolute lister, 产生连接后的coff文件的绝对地址列表 narchiver: 文档管理工具打包. 8 ccs代码生 成工具流图 9 1.3 ccs软件 nti公司耗资近2亿美元 nccs2.0 for c5000系列 nccs2.0 for c6000系列 nccs2.0 for dsk (developer start kit,初学者开发套件) nccs2.1升级包 3 10 1.3.1 ccs2.0界面(1) 11 1.3.1 ccs2.0界面(1) nccs提供一个类似vc的集成开发环境,使用比较方便 n有菜单,工具条,左边是项目窗口,右边是代码编辑窗口(和 图形显示窗口),下边是编译器编译结果,和变量显示窗口, 和寄存器观察窗口. nproject 工具条: 编译,连接,设置三种点:断点、探点( probe)、时间分析点(profile) n调试工具条:程序step运行(4种),连续运行(2种),查 看变量、寄存器、存储器,调用堆栈,反汇编窗口 nstandard工具条:新建,保存,打开,查找,剪贴, find in files功能比较好用 n编辑工具条:mark(大小括号)查找,缩进(outdent),书 签 12 1.3.1 ccs2.0界面(2) nccs提供一些类似vc的代码编辑功能 语法高亮显示,自动缩近,文字查找等等 原程序和反汇编 同时显示(逐条 语句对应,但优化 后是模块对应) 13 1.3.2 ccs2.0项目管理 n应用程序按项 目来管理,按 层次以图形化 的方式显示 项目文件(.mak) cmd文件 .h头文件 .lib库文件 .c源程序 14 1.3.3 ccs2.0图形化设置 n各种编译选 项(汇编器 选项,连接 器选项等) 通过图形化 方式来设置 ,不需要手 工添加选项 15 1.3.3 ccs2.0图形化设置 16 1.3.4 ccs2.0调试功能(1) n断点设置:多种step方法: single step(step into); step over; step out; run to cursor n运行到断点处自动更新窗口 n观察和编辑变量、寄存器和存储器 n调用堆栈(call stack),显示函数调用层次关系. 补充上 电时的工作:$asm$(simulator, 硬件上电复位reset中断服 务程序)c_int00_auto_init(c变量初始化)返回后 c_int00调main()函数. main()完成后,c_int00调exit(1), 做一些清楚工作,如关闭打开的文件.exit在调abort,无限循 环 n利用探点(probe point)流入流出(stream in and out)存储 器数据 17 1.3.4 ccs2.0调试功能(2) n图形化显示数据 n一维数据,二维图象,眼图等 n代码剖析(profile) n计算代码运行时间 18 1.3.4 ccs2.0调试功能(3) 19 1.3.5 ccs2.0 dsp/bios操作系统 ndsp/bios是一个实时操作系统rtos n提供通常的rtos的功能(任务调度,任务间通讯) n提供驱动程序模型,层次化地设计应用程序 ndsp/bios以ccs插件的形式提供一些实时分析工具 n程序跟踪:观察任务的调度、切换 n性能监视:观察cpu的负载 n状态统计:对事件做统计 n提供rtdx(实时数据交换),不打断dsp运行的情况下实现主机 和dsp的数据交换 20 1.3.6 ccs2.0 rtdx(1) nrtdx,即real-time data exchange n提供了一种实时,连续的观测手段,不打断dsp 运行(数据可连续观测,也可传回来存储后观测 ) n不打断dsp运行的情况下,主机和dsp间传递数据 n回传到主机的数据可以在“ole自动化客户”中显 示 21 1.3.6 ccs2.0 rtdx(2) n包括host方和target方 ntarget方编程接口 rtdx target api nhost方编程接口 rtdx com api(组件对象模型com是windows 下一种编程技术) 22 1.3.7 ccs2.0界面(2) n主机方的rtdx库是和ccs集成在一起的 n主机一方有一个函数接口,目标方dsp上也有一个 函数接口 n主机应用程序通过com api发送数据到dsp,或接收 数据,应用程序可以按自己的方式来显示数据, nrtdx可以脱离dsp/bios使用,给用户灵活性 n下一张图是一个例子,用labview作一个显示界面 ,labview调用rtdx api得到dsp传来的数据 23 1.3.7 ccs2.0界面(2) 这是一个fir滤波的例子. host原始数据(显示,左上方 )(rtdx)dspfilter (rtdx)host(显示,左下方) 左上方: 原始的数据 左下方: 滤波后数据 右上方: dsp的fir滤波后的 信号(左下方显示)的功率谱 右下方: labview对原始信号 进行fir滤波后的信号的功率 谱(对比) 24 1.3.8 ccs2.0的文件与环境变量 n.mak .lib .obj .out .wks (.wks 保存当前ccs中的设置:打开的变量窗口, 显示的图形。方便,快捷。) n可编辑文件:.c .asm .h .cmd (.sa) n三个环境变量:c6x_a_dir,c6x_c_dir,path 25 ccs小结 nccs不仅仅是代码生成工具,对软件开发的各个阶 段都有支持 n提供底层实时操作系统dsp/bios n提供rtdx新的实时调试手段,与ccs集成,不需要 自己添加额外的用于调试的硬件(但是速率比较低 ) 26 2 简单程序开发流程(1)建立项目 nprojectnew 选择一个目录,生成一个项目文件 test.mak 27 2 简单程序开发流程(2)添加文件 nprojectadd files to project添加文件(.c, .lib,.cmd,.sa,.asm) 1)vectors.asm 包含汇编指 令处理reset中断服务程序, 跳转到c c的入口.c_int00. 2)扫描dependence: .h 28 2 简单程序开发流程(3)代码编辑 n双击项目窗口的文件名,开始编辑源程序 29 2 简单程序开发流程(4)设置编译选项 nprojectoptions 30 2 简单程序开发流程(4)设置编译选项 31 2 简单程序开发流程(4)设置编译选项 32 2 简单程序开发流程(5)build,debug nprojectbuild 33 2 简单程序开发流程(6)debug n加载程序fileload program n设置断点,通过watch window观察变量 n单步执行 黄色条代表当 前执行到那条 语句 紫色条代表断 点位置 34 2简单程序开发流程(7)profile(剖析) nprofileenable clock 设置profile point(绿 色条) 每个绿色条在窗口中对 应有一行统计数字,用 来统计profile point( 绿色条)之间的时钟数 调试器内部有时钟计数 , 最后查看每一个观测点 的运行时间 35 2简单程序开发流程(7)总结 n按项目管理 n图形化的编译选项设置 n提供各种调试功能,断点方式,profile方式 下面介绍一个例子,将学习到probe point(用 于从文件读入数据),图形显示,animation等 调试方法 36 3 算法测试和文件io(1)探点 nprobe(探点) 1)适合于算法的开发,功能验证 2)可以完成这样的功能 n从一个文件中读入数据到一个dsp的缓冲区 n将一个dsp的缓冲区写到文件中 3)探点类似于断点,又不同于断点 n运行到probe point,dsp会停顿下来 n完成一些动作后(读写文件),程序继续运行 4)文件输入输出的设置:filefile i/o 5) probe的设置:类似断点的设置(用工具条) 37 3 算法测试和文件io(1)探点 38 3算法测试和文件io(2)图形 nccs支持一维图形,二维图象(标准的数据格式),眼 图等显示方式 n有放大、缩小等功能 n可以方便直观地判断算法执行的效果 39 3算法测试和文件io(3)gel ngelgeneral extension language n一种类似c的解释型语言,可实现循环等程序结构 n提供基本的程序控制命令,类似以前emulator提供的 命令,gel_go(),gel_reset()等等 n可以制作菜单(可以加入到ccs主菜单),对话框,滑 动条 40 4基于dsp/bios程序的调试(1) ndsp/bios提供“虚拟仪器”的调试方法 n以图形化的方式观察程序执行的流向,任务如何调 度、切换的 n以图形化的方式观看cpu load(cpu负荷),了解 cpu还有多大的运算能力 n应用程序必须是基于dsp/bios的程序, dsp/bios提供 图形化的界面设置各个模块的参数 41 4 基于dsp/bios程序的调试(1) 42 4 基于dsp/bios程序的调试(2) n通过rta设置观看的内容 n通过execution graph观察任务切换 n通过cpu load graph观察cpu负荷 n用过sts观察事件的统计 n都是dsp/bios提供的功能 43 4基于dsp/bios程序的调试(2) 44 5 基于rtdx的实时调试(1) n可以实时地对dsp进行调试,不打断dsp的运行 n可以在不打断dsp运行的情况下,在host和dsp之间传 递数据 n是一个双向数据通道,既可以用来为主机收集目标系 统的数据,也可以用来调整目标系统的参数 n可以和主机的应用程序集成,实现自己的用户界面( 而不是在ccs环境中 45 5 基于rtdx的实时调试(2) nrtdx包括host和target两部分 n主机应用程序通过com api与rtdx 库通讯,目标系统上也有rtdx的 函数接口 n主机库支持两种接收数据模式: 连续、非连续 n连续模式下,rtdx库只是缓冲数 据,适合只显示、不存储的应用 程序 n非连续模式下,接收的数据被写 入一个日志( log )文件中,适 合需要存储数据的应用程序 46 6 一些调试经验(1) n1)一次新增的调试代码不能过长. n2)防御式编程: 如通信中的等待时间不能过长 n3)对感兴趣的事件做记录: 中断发生次数, 等待超时计 数 n4)ccs的运行中添加断点和运行前添加断点 n5)窗口刷新的影响: 大量的数据更新回影响底层的时序 n6)随时关系程序运行时间, 过长会影响时序,设置计算 器. 47 6 一些调试经验(2) n7)注意数组的越界和指针的使用: 也是其它编程通常的错误, 这 个错误可能其它部分修改, 尤其对硬件计数器的修改导致各种错

温馨提示

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

评论

0/150

提交评论