DSP技术(CHAP4).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP的程序编写 臧春艳 一、 相关概念 二、 DSP汇编的工作原理 EVM with Debugger XDS Emulator with Debugger Simulator TI为其TMS320系列DSP提供了C优化编译器,将标准C源文件编译成为相应片种的汇编语言源代码文件,进而汇编和连接,产生可执行的目标文件。这些C编译器符合ANSI C标准,有运行支持库,一个外壳程序(Shell Program)可以将C源代码一步翻译成TMS320的目标代码。 通用优化 改变表达式,字符简化,常数合并 (较少指令、较少寄存器) (a+b)-(c+d) →((a+b)-c)-d) 数据流优化 使用较少代价的表达式,检测出并去除不必要的赋值,避免再计算已经计算过的值。 优化转移/简化控制流 分析程序的转移情况,重新安排操作顺序,消去转移或多余的条件。 通用优化 优化循环相关变量 例如:用计数器控制的循环写成块循环,或使用高效的增/减量转移指令。在循环中总是计算同样值的表达式,移到循环外面。 针对特定片种的专门优化 例如:将地址寄存器作为指针来使用。当数组下标结构成为循环变量时,这种优化特别有效。 汇编语言工具 TMS320的汇编语言工具包括: 汇编器 连接器 归档器 交叉引用列表器 十六进制转换公用程序 汇编器(Assembler) 将汇编语言的源程序文件汇编成为机器语言的目标程序文件,其格式为COFF(公用目标文件格式)。汇编语言源程序可以包括汇编语言指令(instruction)、汇编指令(assembler directives)和宏指令(macro directives)。 连接器(Linker) 连接器的基本任务是将目标文件连接在一起,产生可执行模块。连接器可以接受的输入文件包括汇编器产生的COFF目标文件、命令文件、库文件,以及已部分连接好了的文件。它所产生的可执行COFF目标模块可以装入各种开发工具,或由TMS320器件来执行。 归档器(Archiver) 归档器允许用户将一组文件归入一个档案文件(库)。例如,将若干个宏归入一个宏库,汇编器将搜索这个库,并调用源文件中所使用的宏;也可以用归档器将一组目标文件收入一组目标文件库,连接器将连接库内的成员,并解决外部引用。 交叉引用列表器 (Cross-Reference Lister) 交叉引用列表器是一个查错的工具。它接受已连接好的目标文件作为输入,产生一个交叉引用列表作为输出。它列出符号、符号的定义,以及它们在已经连接的源文件中的引用。 十六进制转换公用程序 (Hex Conversion Utility) 将COFF目标文件转换成为若干种标准的文件格式: ASCII-十六进制 Extended Tektronix Intel MCS-86 Motorola Exorciser TI SDSMAC COFF文件格式:Common Object File Format 使用汇编器可以将汇编语言源程序汇编成为目标文件,用连接器将若干个目标文件连接成一个可以被TMS320C1X/C2000/C5X芯片执行的可执行文件。这些目标文件的格式称为通用目标文件格式COFF。 COFF文件总包括3个默认的段: 文本段(.text):通常包括可执行代码。 数据段(.data):通常包括已初始化的数据。 预留段(.bss):通常保留用于未初始化变量的空间。 三、 伪指令的功能 伪指令的功能包括: 1.把代码和数据汇编到指定的段。 2.为未定义的变量保存空间。 3.控制列表文件。 4.分配存储器。 5.汇编条件块。 6.定义全局变量。 7.指定汇编器能得到的宏。 8.检查符号调试信息。 四、伪指令的分类 1.定义段的伪指令:把汇编程序的各个部分与适当的段(数据块或程序块)联系起来。 .asect, .bss, .sect, .text, .usect; 2.初始化常数伪指令:在当前段中汇编数值。 .bes, .byte, .field, .float, .bfloat .int, .word, .long, .blong, .string; 3.段程序计数器排列伪指令:使段程序计数器SPC指向预定的位置(例如页边界)。 .align, .even; 4.引用其他文件伪指令:提供或者获取文件的信息。 .copy, .include, .def, .global, .ref; 5.条件汇编伪指令: .if, .elseif, .else, .endif, .loop, .break, .endloop; 6.汇编时的符号伪指令:把自定义

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档