第四章 DSP软件系统结构与设计.docVIP

  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的软件系统结构与设计 主要内容: 概述 C54X DSP指令系统 公共目标文件格式(COFF) 汇编语言程序设计 C语言程序设计 汇编和C语言混和编程 §4.1 概述 C54x软件设计有3种方法: 用C语言开发 全汇编语言开发 C和汇编语言混合编程开发(主流) 采用C和汇编语言混合编程必须遵循一些有关的规则。 §4.1.1 汇编软件开发过程 §4.1.2 C语言软件开发过程 §4.2 指令系统及汇编程序编写 汇编语言软件结构 指令系统 汇编语言程序编写实例 §4.2.1 汇编语言软件结构 若用户要建立一个汇编项目,项目必须包括以下文件(以建一个项目example为例): vectors.asm ;定义复位、中断矢量源文件 example.asm ;主体源程序。 c5402.cmd ;根据用户选用的C54X具体型号定 义存储空间,并为用户段分配空间。 c5402.h ;定义C549内部控制及状态寄存器。 汇编源程序结构 由各种段组成: .bss 未初始化段,为变量保留空间 .text 已初始化段,用户程序代码 .data 已初始化段,为某段存储空间初始化数据 自定义段:用.usect或.sect建立的用户自定义段 例4.1:计算 STM #x,AR1 ST #1,*AR1+ ST #2,*AR1+ ST #3,*AR1+ ST #4,*AR1+ ST #5,*AR1 STM #x,AR1 STM #4,AR2 LD #0,A LOOP: ADD *AR1+,A BANZ LOOP,*AR2- STL A,y here b here .end §4.2.2 指令系统 汇编指令语法格式: 标号:助记符 源操作数,目的操作数 ;注释 例: Start:LD #9,DP ;9→DP §4.2.2.1 寻址方式 立即寻址 绝对寻址 累加器寻址 直接寻址 间接寻址 存储器映象寄存器寻址 堆栈寻址 指令部分寻址缩略语说明 见书P74表3.1.1 立即寻址 就是在指令字中包括立即操作数。 短立即数寻址(单字指令) 就是包含的立即数是3、5、8或9位。 例如: RPT #99 ;将下一条指令循环100次 LD #0h,DP ;将0装入数据页指针 ADD #0ffh,A ;将0ffh加给AccA 编码为单字: 长立即数寻址(双字指令) 就是包含的立即数是16位。 例: ADD #1234h,A ;将#1234h加给AccA 绝对寻址 就是在指令中包含所要寻址的存储单 元的16位地址,16位地址可以用其所 在单元的地址标号或16位符号常数来 表示。 绝对寻址 例如: 数据存储器地址寻址: MVKD sample,*AR5 ;将数据存储器 Sample地址单元中的数据传送到由AR5寄 存器所指向的数据存储器单元中。 这里的sample是一个符号常数,代表一个 数据存储单元的地址。 绝对寻址 程序存储器地址寻址: MVPD table,*AR5 ;将程序存储器标 号为table地址单元中的数据传送到由AR5 所指向的数据存储器单元中。 这里的table是一个地址标号,代表一个程 序存储器单元的地址。 绝对寻址 端口地址寻址: PORTR PA, Smem ;从PA端口读入一个 数据,将其存放在数据存储器Smem单元。 PORTW Smem, PA ;将数据存储器Smem 单元中的数据写到PA端口。 这里的PA是I/O端口地址的标号。 绝对寻址 *(lk)寻址: 用一个符号或一个常数来确定数据存储器 中的一个地址。 LD *(BUFFER),A 把地址为BUFFER的数据单元中的数据装 到AccA中,BUFFER是个符号常数。 累加器寻址 就是利用累加器的数值作为地址来读写程序存储器。只有两条指令: READA Smem WRITA Smem READA,把累加器A所确定的程序存储器单元中的一个字,传送到数据存储器单元Smem中。 WRITA,把数据单元Smem中的一个字,传送到累加器A确定的程序存储器单元。 直接寻址 就是指令中包含数据存储器地址的低7位。 这7位地址作为偏移地址值,与基地址值 (数据页指针DP或堆栈指针SP)一起构成 16位数据存储器地址。 优点:可以在不改变DP或SP的情况下,随 机地寻址128个存储单元。 直接寻址:DP指针直接寻址 TMS320C54的数据存储器分为512页,每

文档评论(0)

xpb395 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档