- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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页,每
您可能关注的文档
最近下载
- 庭院设计课件 第五章 功能布局与平面设计.pptx VIP
- 2021年Fall AMC 10B真题含答案.pdf VIP
- 2025年辽宁省地矿集团面向校园招聘80人考试备考试题【含答案解析】.pdf VIP
- 九一八事变(课件)小学生主题班会通用版(共22张PPT).pptx VIP
- 屋顶分布式光伏发电施工组织设计.docx VIP
- 小学三年级班主任工作计划安排.doc VIP
- 广州某1200吨超低温金枪鱼冷库制冷系统设计.docx VIP
- 2025年美丽中国全国国家版图知识竞赛题库(附答案).docx VIP
- 中医辩证施护课件.ppt VIP
- Mysql数据库及应用 广东开放大学考试题库答案.doc VIP
文档评论(0)