欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第5章 TMS320C54xTM_DSP应用系统的软硬件设计.ppt

    • 资源ID:2648255       资源大小:1.55MB        全文页数:126页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章 TMS320C54xTM_DSP应用系统的软硬件设计.ppt

    第5章TMS320C54xTM DSP应用系统的软硬件设计,5.1 C54x DSP应用系统的软硬件开发工具 5.2 CCS的安装和使用简介 5.3 CCS集成开发环境的使用 5.4 C54x DSP应用系统的软件设计与调试 5.5 C54x DSP应用系统的硬件设计与调试 习 题,5.1 C54x DSP应用系统的软硬件开发工具,TI公司和第三方为DSP软硬件开发提供了许多工具,常见的DSP开发工具包括代码生成工具和代码调试工具两大类,但这些开发工具未实现完全的集成化,需要输入较复杂的命令,调试程序效率不高。1999年TI公司推出了Code Composer Studio开发工具,简称CCS,这是一种功能强大的全面集成的开发环境(IDE),它支持TI的TMS320C6000TM、TMS320C5000TM、TMS320C2000TMDSP平台和TMS320C3XTM DSP系列。CCS集代码生成工具和代码调试工具于一体,可完成应用开发过程每一步骤所需要的众多功能。并且CCS具有开放式的架构,使TI和第三方能通过无缝插入附加专用工具扩展IDE功能。目前CCS已经历V1.0、V1.2、V2.0、V2.1等版本。,CCS的主要特性有:*开发环境,可将所有工具紧密集成到单个简便易用的应用中;*实时分析工具,在不影响处理器性能的情况下可实现监控程序交互作用;*支持TI的高性能C64xTM DSP与低功率C55xTM DSP;*在业界领先的C编译程序;*可扩展的实时核心(DSP/BIOSTM核心);*Profile-Based Compiler(C6000TM DSP),用于优化代码长度与性能;*Visual Linker,用于在内存中以图形化的方式安排程序代码与数据;,*数据显示,用于以多种图形格式显示信号;*开放式的插入式架构,使你能够集成专用的第三方工具;*利用仿真器对TI DSP进行基于JTAG扫描的实时仿真;*可轻松管理大型的多用户、多站点以及多处理器的项目;*快速模拟器可提供深度视图,能迅速而准确地解决问题;*分析套件利用新的工具提高性能并简化烦琐的判断工作;*增强的流水线分析工具可提供详细的流水线视图。,5.2 CCS的安装和使用简介,5.2.1 CCS的安装与设置 1.Code Composer Studion的安装 CCS是一个开放的环境,通过设置不同的驱动可完成对不同的环境支持,下面以C54x DSP开发系统为例说明CCS的安装。完整地安装CCS软件包括以下两个步骤:(1)将CCS安装光盘放入到光盘驱动器中,运行CCS安装程序setup.exe。安装完成后,在桌面上会有“CCS 2 C5000”和“SETUP CCS 2 C5000”两个快捷方式图标,分别对应CCS应用程序和CCS配置程序。,(2)运行CCS配置程序,配置驱动程序。如果CCS是在硬件目标板上运行,则要先安装目标板驱动系统,然后运行“CCS 2 SETUP”配置驱动程序,最后执行CCS应用程序。除非用户改变CCS应用平台类型,否则只需运行一次CCS配置程序。,2.CCS软件的设置 根据购买的开发器的类型选择安装不同的设备驱动程序。配置好相应的资源,并保存好设置即可。,3.硬件仿真系统的安装 第一步:对于安装CCS软件,并正确设置CCS软件。第二步:对于PCI接口DSP开发系统,关闭PC电源,将PCI卡插入PCI插槽中,注意固定好。对于ISA接口DSP开发系统,关闭PC电源,将ISA卡插入ISA插槽中,注意固定好。对于EPP接口DSP开发系统,关闭PC电源,将仿真盒通过并口电缆接在PC机的并口上。对于USB接口DSP开发系统,将仿真盒通过电缆接在PC机的USB口上。,第三步:将JTAG仿真电缆正确连接在实验箱的JTAG仿真口上,启动CCS软件,如果一切正常,则CCS能正确启动,如果报错,请检查CCS安装和设置以及实验箱的电源、电缆接线是否正确。,5.2.2 CCS文件名介绍在使用CCS软件之前,应该先了解以下软件的文件名约定:*project.pjt(CCS 1.2 版本该文件名为project.mak)工程文件*program.c C语言源文件*program.asm 汇编语言源文件*filename.h C语言头文件*filename.lib 库文件*project.cmd 链接命令文件*program.obj 编译后的目标文件*program.out 在目标硬件(实验箱)上加载、调试、执行的文件,这一部分将要介绍如何在CCS下面新建一个程序,及如何编译、链接、下载、调试程序,我们将新建一个简单的程序,在窗口显示“Hello World!”。,5.2.3 新建一个工程(1)如果你的 CCS安装在 C:ti目录下,请在C:timyproject 目录下新建一个目录,名为hello1;(2)将C:tic5400tutorialhello1下的所有文件拷贝到新目录中;(3)运行CCS程序;(4)选择Project/New 菜单,输入新建工程名称为myhello,点击完成。,5.2.4 往工程加入文件(1)选择Project/Add Files to Project,选择hello.c,加入文件;(2)按(1)方式分别往工程里加入vector.asm、hello.cmd以及C:tic5400cgtoolslib目录下的rts.lib文件;(3)这个时候就可以点击工作窗口工程视图中myhello.pjt旁的+号,展开工程查看或编辑工程中的文件了;注意:C语言文件的头文件会自动加入到工程里。,5.2.5 编译执行程序(1)选择Project/Rebuild All 或工具条中相应的快捷按钮;(2)编译成功后,选择File/Load Program,选择刚编译的可执行程序myhello.out;(3)选择Debug/Run或工具条中相应的快捷按钮;(4)运行程序后,在标准输出窗口中会出现“Hello World!”。,5.2.6 程序的跟踪、调试(1)选择Debug/Restart或重新装载“.out”文件;(2)可以选择View/Mixed Source/ASM 对照观察C语言程序和汇编语言程序;(3)不全速运行,而是选择 Debug/StepInto 或按F8,单步执行;(4)单步执行程序的同时,选择View/CPU Registers观察主要寄存器的变化;(5)对不熟悉的指令,可查找相应的说明。,5.2.7 可能出现问题的处理 在编译链接过程中的问题可以通过提示,寻找问题出现的原因并解决问题。如果是语法出错,需要查阅相关语法资料,如果是环境参数设置上有问题,一般应在Project/Build Options 中进行相应的修改(新安装程序的默认设置,不熟悉的用户最好不要随意改动)。如果装载程序时出问题,可以尝试Debug/Reset 或重新运行CCS软件或重新加电等办法。,习题,习题,习题,5.3 CCS集成开发环境的使用,在CCS中,Simulator(软件模拟器)与Emulator(硬件仿真器)使用的是相同的集成开发环境,在对应用系统进行硬件调试前,设计者可使用Simulator在没有目标板的情况下模拟DSP程序的运行。,如果系统中同时安装了Simulator和Emulator的驱动程序,则运行CCS时将启动并行调试管理器(Parallel Debug Manager)的运行,对于TI的仿真器(如图5.1所示),此时需从菜单中选择OpenC54xx Simulator以启动Simulator的运行,出现与图5.2类似的窗口;对于第三方的仿真器如SEED仿真器(如图5.3所示),从菜单中选择OpenC54x Simulator以启动Simulator的运行,出现与图5.4类似的窗口。,图5.1 TI仿真器并行调试管理器,图5.2 TI仿真器 CCS运行主窗口,图5.3 SEED仿真器并行调试管理器,图5.4 SEED仿真器CCS运行主窗口,在CCS集成开发环境中,除Edit窗口外,其余所有窗口和所有的工具栏都是可定位(Allow Docking)的,也就是说可将这些窗口和工具栏拖至屏幕的任何位置(包括移至主窗体之外)。在CCS中,所有的窗口都支持内容相关菜单(Context Menu)。在窗口内单击鼠标右键即可弹出内容相关菜单,菜单中包含有与该窗口相关的选项和命令。,5.3.1 菜单 在CCS集成开发环境中共有11项菜单,现在就对其中较为重要的菜单功能加以介绍。1.File菜单 File菜单提供了与文件操作有关的命令。除Open/Save/Print/Exit等常见的命令外,File菜单还列出了以下几种文件操作命令,如表5.1所示。,表5.1 File菜单,表5.1 File菜单,2.Edit菜单 Edit菜单提供的是与编辑有关的命令。除去Undo/Redo/Delete/Select All/Find/Replace等常用的文件编辑命令外,CCS还支持以下几种编辑命令,如表5.2所示。,表5.2 Edit菜单,3.View菜单 在View菜单中,可以选择是否显示Standard工具栏、GEL工具栏、Project工具栏、Debug工具栏、Editor工具栏和状态栏(Status bar)。此外View菜单中还包括如表5.3所示的显示命令。在View菜单中,Graph是一个很有用的功能,它可以逼真地显示信号波形。在Graph窗口中使用了两个缓冲器:获取缓冲和显示缓冲。获取缓冲驻留在实际或仿真的目标板上,它保存有你感兴趣的数据。当图形更新时,获取缓冲从实际或仿真的目标板读取数据并更新显示缓冲。显示缓冲则驻留在主机存储器中,它记录了历史数据。波形图则是根据显示缓冲的数据绘制的。,当输入所需的参数并确认后,Graph窗口从获取缓冲中接收指定长度(由Acquisition Buffer Size定义)和指定起始地址(由Start Address定义)的DSP数据。,表5.3 View菜单,表5.3 View菜单,表5.3 View菜单,4.Project菜单 CCS使用工程来管理设计文档。CCS不允许直接对汇编或C源文件Build生成DSP应用程序,只有在建立工程文件的情况下,Project工具栏上的Build按钮才会有效。工程文件被存盘为.mak文件。在Project菜单中包括一些常见的命令如New/Open/Close等,此外还包括如表5.4所示的菜单命令。,表5.4 Project菜单,5Debug菜单,表5.5 Debug菜单,表5.5 Debug菜单,表5.5 Debug菜单,6Profiler菜单 剖切(Profiling)是CCS的一个重要功能。它可提供程序代码特定区域的执行统计,从而使开发设计人员能检查程序的性能,对源程序进行优化设置。使用剖切功能可以观察DSP算法占用了多少CPU时间,还可以用它来剖切处理器的其他事件,如分支数、子程序调用次数及中断发生次数等。该菜单如表5.6所示。,表5.6 Profiler菜单,表5.6 Profiler菜单,图5.5 剖切统计数据,图5.6 时钟设置,7.Option菜单 Option菜单提供CCS的一些设置选项,如颜色、字体和键盘等。表5.7列出了几种较为重要的Option菜单命令。,表5.7 Option菜单,表5.7 Option菜单,在Option菜单中,存储器映射(Memory Map)是一个重要的概念,有必要对其作详细说明。1)添加一个新的存储器映射范围(1)选择OptionMemory Map,将弹出Memory Map对话框。(2)在对话框中选中Enable Memory Mapping,以使能存储器映射。第一次运行CCS时,存储器映射即呈禁用状态(未选中Enable Memory Mapping),也就是说,CCS调试器可存取目标板上所有可寻址的存储器(RAM)。当使能存储器映射后,CCS调试器将根据存储器映射设置检查其可以访问的存储器。如果要存取的是未定义或保护区数据,则调试器将显示默认值而不是存取目标板上的数据。(3)选择需修改的页面(Program、Data或IO)。如果程序只使用一个存储器页面,则可以跳过这一步。,(4)按照命令文件的存储器定义,在Starting address域键入起始地址,在Length域键入存储器长度,在Attributes域选择存储器的读/写属性,再点击Add按钮即添加一个新的存储器映射范围。CCS调试器允许添加一个与已有的存储器范围有所重叠的新的存储器范围,此时重叠区域的读/写属性会作相应修改。当定义好一个新的存储器范围后,如果想更改其读/写属性,则可以定义一个新的存储器范围(与该存储器具有相同起始地址和相同范围),并单击Add按钮加入,则可将原存储器属性更改为新定义的存储器属性。,2)删除一个新的存储器映射范围 将一个已有的存储器映射属性设置为None-No Memory/Protected,可将该存储器范围删除。另一个删除存储器范围的方法是在Memory Map列表框内,选中需删除的存储器范围,按Delete按钮可将其删除。,3)存取一个不合法的存储地址 当设计人员想读取一个被存储器映射保护的存储空间时,调试器将不从目标板读取数据,而是读取一个保护数据,通常为0。因此一个非法的存储地址值通常显示为0。也可在Protected Value域输入另外一个值,如0XDEAD,这样当试图读取一个非法存储地址时将清楚地给予提示。在判断一个存储地址是否合法时,CCS调试器并不根据硬件结构作出比较结果。因此,调试器不能防止程序存取一个不存在的存储地址。定义一个非法的存储器映射范围最好的方法是使用GEL嵌入函数,在运行CCS时自动执行。,8GEL菜单 C5000 CCS软件本身提供C54x和C55x的GEL函数,它们在c5000.gel文件中定义。表5.8列出了c5000.gel文件中定义的GEL函数。用户还可将常用的GEL函数添加到GEL菜单中,此时需使用menuitem关键词在GEL菜单下建立一个新的下拉菜单项。此外还可使用dialog和slider关键词建立对话框和滑动条对象。,表5.8 GEL 菜 单,9.Tools菜单,表5.9 Tools 菜 单,续表,5.3.2 工具栏 CCS集成开发环境提供五种工具栏,分别为Standard Toolbar、GEL Toolbar、Project Toolbar、Debug Toolbar和Edit Toolbar。这五种工具栏可在View菜单下选择是否显示。1.Standard Toolbar 如图5.7所示,标准工具栏包括以下常用工具:,图5.7 Standard工具栏,*New:新建一个文档;*Open:打开一个已存在的文档;*Save:保存一个文档,如尚未命名,则打开Save As对话框;*Cut:剪切;*Copy:拷贝;*Paste:粘贴;*Undo:取消上一次编辑操作;*Redo:恢复上一次编辑操作;*Find Next:查找下一个;*Find Previous:查找上一个;*Search Word:查找指定的文本;*Find in Files:在多个文件中查找;*Print:打印;*Help:获取特定对象的帮助。,2.GEL Toolbar GEL工具栏提供了执行GEL函数的一种快捷方法。如图5.8所示,在工具栏的左侧文本输入框中键入GEL函数名,再点击右侧的执行按钮即可执行相应的函数。如果不使用GEL工具栏,也可以使用Edit菜单下的Edit Command Line命令执行GEL函数。,图5.8 GEL工具栏,3.Project Toolbar Project工具栏提供了与工程和断点设置有关的命令。如图5.9所示,工程工具栏提供了以下命令:,图5.9 Project工具栏,*Compile File:编译文件;*Incremental Build:对所有修改过的文件重新编译,再链接生成可执行程序;*Build All:全部重新编译链接生成可执行程序;*Stop Build:停止Build操作;*Toggle Breakpoint:设置断点;*Remove All Breakpoints:移去所有的断点;*Toggle Probe Point:设置Probe Point;*Remove All Probe Points:移去所有的Probe Point;*Toggle Profile Point:设置剖切点;*Remove All Profile Points:移去所有的剖切点。,4.Debug Toolbar如图5.10所示,Debug工具栏提供以下常用的调试命令:,图5.10 Debug工具栏,*Single Step:与Debug菜单中的Step Into命令一致,单步执行;*Step Over:与Debug菜单中Step Over命令一致;*Step Out:与Debug菜单中Step Out命令一致;*Run to Cursor:运行到光标处;*Run:运行程序;*Halt:中止程序运行;*Animate:与Debug菜单中Animate命令一致;,*Quick Watch:打开Quick Watch窗口观察或修改变量,还可方便地将变量加入Watch窗口;*Watch Window:打开Watch窗口观察或修改变量;*Register Windows:观察或编辑CPU寄存器或外设寄存器值;*View Memory:查看存储器指定地址的值;*View Stack:查看堆栈值;*View Disassembly:查看反汇编窗口。,5.Edit Toolbar如图5.11所示,Edit菜单提供了一些常用的编辑命令及书签命令。,图5.11 Edit工具栏,*Mark To:将光标放在括号前面,再点击此命令,则将标记此括号内所有文本;*Mark Next:查找下一个括号对,并标记其中的文本;,*Find Match:将光标放在括号前面,再点击此命令,则光标将跳至与之配对的括号处;*Find Next Open:将光标跳至下一个括号处(左括号);*Outdent Marked Text:将所选择文本向左移一个TAB宽度;*Indent Marked Text:将所选择文本向右移一个TAB宽度;*Edit:Toggle Bookmark:设置一个标签;*Edit:Next Bookmark:查找下一个标签;*Edit:Previous Bookmark:查找上一个标签;*Edit Bookmarks:打开标签对话框。,5.4 C54x DSP应用系统的软件设计与调试,一个C54x DSP应用软件的标准开发流程如图5.12所示。由图可见,软件的开发过程中将涉及到C编译器、汇编器、链接器等开发工具。C编译器输出的是满足C54x DSP的汇编程序,因为C54x DSP的C编程的效率较低,所以它的C编译器输出的是汇编程序,用户可以对该汇编程序进行优化,以提高程序效率。,图5.12 C54x DSP应用软件的标准开发流程图,初始学习可以从汇编程序开始,编制一个汇编程序,需经历下列步骤:(1)用文本编辑器编辑满足C54x DSP汇编器格式要求的汇编源程序;(2)调用汇编器汇编该源文件;(3)汇编后生成COFF(公共目标文件格式)目标文件;(4)调用链接器链接目标文件,如果包含了运行支持库和目标文件库,链接器还会到所包含的库中搜索所需的成员;(5)链接后生成可执行的COFF执行文件“.out”;(6)将可执行的COFF文件下载到实验箱中执行,也可以使用CCS软件跟踪调试、优化。,5.4.1 汇编源文件(.asm)格式 C54x DSP汇编源文件以段(Section)为基本单元构成,一个程序文件由若干段构成,每一段由若干语句(Statement)构成。C54x DSP的程序段分为初始化段(Initialized)和未初始化段(Uninitialized)两大类。初始化段可以是程序代码,也可以是程序中用到的常量、数据表等。初始化段就是下载程序时往程序空间写数据(代码或数据)的段。未初始化段为变量,在下载时,这些变量是没有值的,只需留出一段空间以便在运行时存放变量的值。,段的名称和属性可以由用户自定义,如果用户不定义,C54x DSP汇编器将产生三个默认的名称的段:“.text”、“.data”、“.bss”。其中,“.text”为程序代码段,“.data”为数据段,“.bss”为未初始化段。用户可以使用“.sect”和“.usect”两个汇编指示符来定义初始化段和未初始化段。使用方法如下:symbol.sect“section_name”symbol.usect“section_name”,length,5.4.2 汇编器 汇编器把汇编语言源文件(或C语言源程序编译后得到的汇编文件)汇编成COFF目标文件。汇编器可完成如下工作:(1)处理汇编语言源文件中的源语句,生成一个可重新定位的目标文件;(2)根据要求,产生源程序列表文件,并提供对源程序列表文件的控制;(3)将代码分成段,并为每个目标代码段设置一个段程序计数器,并把代码和数据汇编到指定的段中,在存储器中为未初始化段留出空间;,(4)定义(.def)和引用(.ref)全局符号(global symbol),根据要求,将交叉参考列表加到源程序列表中;(5)汇编条件段;(6)支持宏调用,允许在程序中或在库中定义宏。常用的汇编命令如表5.10所示。,表5.10 常用的汇编命令,表5.10 常用的汇编命令,5.4.3 COFF目标文件 C54x DSP的汇编器和链接器都会生成公共目标文件格式(COFF)的目标文件,汇编器生成的文件称为COFF的目标文件,链接器生成的文件称为COFF的执行文件。COFF目标文件格式已被广泛使用,因为它支持模块化(段)的编程,提供了有效灵活的管理代码段和目标系统存储空间的方法。,COFF文件结构如下:(1)一个文件头 长度为22字节,包含COFF文件结构的版本号、段头的数量、创建日期、符号表起始地址和入口数量、可选文件头的长度等信息。(2)可选的文件头信息 由链接器生成,包含执行代码的长度(字节)和起始地址、初始化数据的长度和起始地址、未初始化段的长度、程序入口地址等信息,以便在下载时进行重定位。(3)各个段的头信息列表 每个段都有一个头,用于定义各段在COFF文件中的起始地址位置。段头包含段的名称、物理地址、虚拟地址、长度、原始数据长度等信息。,(4)每个初始化段的原始数据 包含每个初始化段的原始数据,即需要写入程序存储空间的代码和初始化数据。(5)每个初始化段的重定位信息 汇编器自动生成每个初始化段的重定位入口信息,链接时再由链接器读取该入口信息并结合用户对存储空间的分配进行重定位。(6)每个初始化段的行号入口 主要用于C语言程序的符号调试。因为C程序先被翻译为汇编程序,这样,汇编器就会在汇编代码前生成一个行号,并将该行号映射到C 源程序里相应的行上,便于调试程序。,(7)一个符号表 用于存放程序中定义的符号的入口,以便调试。(8)一个字符串表 表中直接使用符号名称,当符号名称超过8个字符时,就在符号表中使用指针,该指针指向字符串表中对应的符号名称。,5.4.4 链接器 汇编器生成COFF目标文件后,就可以调用链接器进行链接了,链接器把COFF目标文件链接生成可执行文件(.out)(COFF目标模块)和存储器映像文件(.map),它允许用户自行配置目标系统的存储空间,也就是为程序中的各段分配存储空间。链接器能根据用户的配置,将各段重定位到指定的区域,包括各段的起始地址、符号的相对偏移等。因为汇编器并不关心用户的定义,而是直接将“.text”的起始地址设为000000h,后面接着是“.data”和用户自定义段。如果用户不配置存储空间,链接器也将按同样的方式定位各段。,C54x DSP的链接器能够接受多个COFF目标文件(.obj),这些文件可以是直接输入的,也可以是目标文件库中包含的。在多个目标文件的情况下,链接器将会把各个文件中的相同的段组合在一起,生成COFF可执行文件。链接器链接目标文件时,主要完成下列任务:(1)将各段定位到目标系统的存储器中;(2)为符号和各段指定最终的地址;(3)定位输入文件之间未定义的外部应用。,用户可以编写链接器命令文件(.cmd),自行配置目标系统的存储空间的分配,并为各段指定地址。常用的命令指示符有MEMORY和SECTIONS两个,利用它们可以完成下列功能:(1)为各段指定存储区域;(2)组合各目标文件中的段;(3)在链接时定义或重新定义全局符号。,用命令文件调用链接器的格式为Ink500 command_ filename,其中,command_ filename指命令文件名。链接器按所遇的顺序处理输入文件。命令文件的书写都分大小写。MEMORY命令就是用来规定目标存储器的模型。通过这条命令,可以定义系统中所包含的各种形式的存储器,以及它们占据的地址范围。C54x DSP芯片的型号不同,其存储器配置也完全不相同。通过MEMORY命令,可以进行各种各样的存储器配置,在此基础上再用SECTIONS命令将各输出段分配到指定的存储器范围内。,MEMORY伪指令的一般语法为:MEMORY PAGE 0:name 1(attr):origin=constant,length=constant PAGE n:name n(attr):origin=constant,length=constant,MEMORY伪指令在命令文件中的书写方式为:以大写MEMORY开始,后面跟着由大括号括起来的一系列存储器区间说明。每一个存储器区间具有一个名称、起始地址以及存储器的长度。(1)PAGE指定存储器空间页面,最多255页。通常PAGE 0用于程序存储器,PAGE 1用于数据存储器。若不指定PAGE,则链接器默认指定PAGE 0。(2)name是存储器区间的名称。名称可由164个字符组成。,(3)attr指定所命名的存储器区间的属性。属性为选项,限制将输出段分配到一定的存储器区间。可指定14种属性,在使用时需用括号括起来。它们是:*R 指定该存储器只能读;*W 指定该存储器可以写;*X 指定该存储器可以包含可执行代码;*I 指定该存储器可被初始化。,在不给存储器指定任何属性情况下,则默认该区间的存储器具有上述四种属性。(4)origin可以简写为org或o,指定存储器区间的起始地址,其值以字为单位。(5)length可以简写为len或l,指定存储器区间的长度,其值以字为单位。(6)fill可以简写为f,指定存储器区间的填充字符。填充为选项,该值为两个字节的整型常数。,SECTION伪指令的一般语法为:SECTIONSname:property,property,property.name:property,property,property.name:property,property,property.,它以大写SECTIONS开始,后面为大括号,括号内为一系列输出段的说明语句。每段说明语句的开始为定义输出段的段名(输出段指在输出文件中的段)。段名的后面列出该段的属性,定义该段的属性、内容和如何分配存储器等。各属性可用逗号分开,段属性包括以下内容:(1)装入存储器分配(Load allocation)。定义段装入时存储器地址,语法为:load=allocation(这里allocation指地址)或allocation或 allocation,(2)运行存储器分配(Run allocation)。定义段运行时的存储器地址,语法为:run=allocation或run allocation(3)输入段(Input sections)。定义组成输出段的输入段,语法为:input_sections(4)段的类型(Section type)。定义特殊的标志,语法为:type=COPYtype=DSECT或type=NOLOAD,(5)填充值(fill value)。定义用来填充没有初始化的空间的值,语法为:fill=value或name:.=value举例:链接命令文件(.CMD文件):Vectors.obj int00.obj-m int00.map-o int00.out-e start,MEMORY/*TMS320C54x microprocessor mode memory map*/PAGE 0:PROG1:origin=0 x2000,length=0 x200 PROG2:origin=0 x2200,length=0 x0d00 PAGE 1:DARAM1:origin=0 x3000,length=0 x1000/*data buffer,8064 words*/PAGE 2:FLASHRAM:origin=0 x8000,length=0 xffff,SECTIONS.Vectors:load=PROG1 page 0/*interrupt vector table*/.text:load=PROG2 page 0/*executable code*/.cinit:load=PROG2 page 0/*tables for initializing variables and constants*/.stack:load=DARAM1 page 1/*C system stack*/.const:load=DARAM1 page 1/*data defined as C qualifier const*/.bss:load=DARAM1 page 1/*global and static variables*/*WAB 3/19/90*/.data:DARAM1 page 1/*.data files*/,5.4.5 C编译器 C编译器包含三个功能模块:语法分析、代码优化和代码产生,如图5.13所示。,图5.13 C编译器功能模块图,语法分析(Parser)完成C语法检查和分析;代码优化(Optimizer)对程序进行优化,以便提高效率;代码产生(Code Generator)将C程序转换成C54x DSP的汇编程序。利用CCS集成开发环境,用户可以完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节。使用CCS的一般步骤为:(1)打开或创建一个工程文件。工程文件包括源程序(C或汇编)、目标文件、库文件、链接命令文件和包含文件。(2)使用CCS集成编辑环境,编辑各类文件。(3)对工程进行编译。如果有语法错误,将在构建窗口中显示出来,用户可以根据显示的信息定位错误、修改错误。CCS同时还提供了探针、图形显示、性能测试等工具来分析数据、评估性能。,5.4.6 建立工程文件 与Visual Basic、Visual C和Delphi等集成开发环境一样,CCS也采用工程文件来集中管理一个工程。一个工程包括源程序、库文件、链接命令文件和头文件等。工程构建(编译链接)完成后生成可执行文件。工程视窗显示了工程的整个内容。1.创建、打开、关闭文件 命令Project/New用于创建一个新的工程文件(后缀为“.pjt”),接着就可以编辑源程序、链接命令文件和头文件等。然后加入到工程中,工程编译链接后产生可执行文件“.out”。命令Project/Open用于打开一个已经存在的工程,打开工程文件时,工程中包含的各项信息都被载入。Project/Close用于关闭一个工程文件。,2.在工程中添加、删除文件 命令Project/Add Files to Project.、Source源文件、Libraries库文件以及命令文件需要用户指定加入,头文件通过扫描相关性自动加入到工程中。在工程视图中右键单击某文件,从关联菜单中选择“Remove from Project”,则可以从工程中删除此文件。,3.编辑源文件 CCS集成编辑环境可以编辑任何文本文件,对C程序和汇编程序,还可以彩色高亮显示关键字、注释和字符串。CCS内嵌编辑器支持下述功能:(1)语法高亮显示 关键字、注释、字符串和汇编指令用不同的颜色显示相互区分。(2)查找和替换 可以在一个文件和一组文件中查找替换字符串。(3)针对内容的帮助 在源程序内,可以调用针对高亮显示字的帮助。这对获得汇编指令帮助特别有用。,(4)多窗口显示 可以打开多个窗口或对同一文件打开多个窗口。(5)可以利用标准工具条和编辑工具条帮助用户快速使用编辑功能。(6)作为C语言编辑器,可以判别圆括号或大括号是否匹配,排除语法错误。,5.4.7 构建工程 工程所需文件编辑完成后,可以对该工程进行编译链接,产生可执行文件,为调试做准备。CCS提供了四条命令构建工程:(1)编译文件 命令Project-Compile或单击工程工具条“编译当前文件”按钮,仅编译当前文件,不进行链接。(2)增量构建 单击工程工具条“增量构建”按钮,则只编译那些自上次构建后修改过的文件。增量构建只对修改过的源程序进行编译,先前编译过、没有修改的程序不再编译。,(3)重新构建 命令Project/Rebuild 或单击工程工具条“重新构建”按钮重新编译链接当前工程。(4)停止构建 命令Project/Stop Build或单击工程工具条“停止构建”按钮停止当前的构建,CCS集成开发环境本身并不包含编译器、链接器,而是通过调用软件开发工具(C编译器、汇编器和链接器)来编译链接用户程序。编译器等所用的参数可以通过工程选项设置。Project/Options弹出一个对话框,在此对话框中可以设置编译器、汇编器和链接器选项。,5.4.8 调试 CCS提供了非常丰富的调试手段。在程序执行控制上,CCS提供了四种单步执行方式。从数据流角度上,用户可以对内存单元和寄存器进行查看和编辑,载入/输出外部数据。一般的调试步骤为:调入构建好的可执行程序,先在感兴趣的程序段设置断点,然后执行程序停留在断点处,查看寄存器的值或内存单元的值,对中间数据进行在线分析。(1)载入可执行程序 命令File/Load Program载入编译链接好的可执行程序。,(2)使用反汇编工具 在某些时候(例如调试C语言关键代码),用户可能需要深入到汇编指令一级。可以利用CCS的反汇编工具。用户的执行程序(C程序或是汇编程序)载入到目标板时,CCS自动打开一个反汇编窗口。除在反汇编窗口可以显示反汇编代码外,CCS允许用户在调试窗口中混合实现C和汇编语句。用户可以选择View/Mixed Source/Asm。(3)程序的执行控制 在调试程序时,用户会经常用到复位、执行、单步执行等命令。我们统称为程序执行控制。,1.CCS提供的复位目标板(1)Debug-Reset DSP命令初始化所有的寄存器内容并暂停运行中的程序。(2)Debug-Restart命令将PC恢复到当前载入程序的入口地址,此命令不执行当前程序。(3)Debug-GoMain命令在主程序入口处设置一临时断点,然后开始执行。当程序被暂停或遇到一个断点时,临时断点被删除。此命令提供了一种快速方法来运行用户应用程序。,2.CCS提供的程序执行控制(1)Debug-Run命令,程序运行到遇见断点为止。(2)Debug-Halt命令,程序暂停执行。(3)Debug-Animate命令,用户可以反复运行执行程序,直到遇到断点为止。(4)Debug-Run Free命令,此命令禁止所有断点,然后运行程序。在自由运行中对目标处理器的任何访问都将恢复断点。,3.CCS提供的单步执行操作(1)Debug-Step Into,当调试语句不是最基本的汇编指令时,此操作将进入语句内部(子程序或软件中断)调试。(2)Debug-Step Over,此命令将函数或子程序当作一条语句执行,不进入其内部调试。(3)Debug-Step Out,此命令将从子程序中跳出。(4)Debug-Runto Cursor,此命令使程序运行到光标所在的语句。,4.断点设置 断点的作用在于暂停程序的运行,以便观察/修改中间变量或寄存器数值。CCS提供了两类断点。设置断点应当

    注意事项

    本文(第5章 TMS320C54xTM_DSP应用系统的软硬件设计.ppt)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开