DSP2数据存储器和程序存储器实验.doc
- 文档编号:230324
- 上传时间:2022-10-07
- 格式:DOC
- 页数:5
- 大小:28KB
DSP2数据存储器和程序存储器实验.doc
《DSP2数据存储器和程序存储器实验.doc》由会员分享,可在线阅读,更多相关《DSP2数据存储器和程序存储器实验.doc(5页珍藏版)》请在冰豆网上搜索。
数据存储器和程序存储器实验
电子073高******27
一、实验目的
了解DSP内部数据存储器和程序存储器的结构。
了解DSP指令的几种寻址方式。
二、实验要求
主要是对外扩数据存储器和程序存储器金星数据的存储和移动。
该实验所需要的硬件主要是DSP、CPLD和DRAM。
实验过程是:
让学生通过CCSC5000的DSP仿真器对DSP进行仿真、向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCSC5000
仿真器界面进行观察或通过发光二极管观察其正确性。
三、实验程序
.title "ex2"
.globalreset,_main
.mmregs
.def_main
DAT0 .set 00H
DAT1 .set 01H
DAT2 .set 02H
DAT3 .set 03H
DDAT0 .set 2004H
DDAT1 .set 2005H
DDAT2 .set 2006H
DDAT3 .set 2007H
PDAT0 .set 1f00H
PDAT1 .set 1f01H
PDAT2 .set 1f02H
PDAT3 .set 1f03H
.sect".vectors" ;中断向量表
reset:
B_main ;复位向量
NOP
NOP
.space4*126
circle.usect"circle",4
.bssy,8
.data
table.word1,2,3,4
.text
DELAY .macroCOUNT
STMCOUNT,BRC
RPTBdelay?
NOP
NOP
NOP
NOP
delay?
:
NOP
.endm
_main:
LD#40h,DP ;置数据页为2000h~207Fh
STM#3000h,SP ;置堆栈指针
SSBXINTM ;禁止中断
STM#07FFFh,SWWSR ;置外部等待时间
bk0:
SSBXXF ;置XF以实现二极管闪烁D3(EXPIII+)
DELAY#0FFFFh
RSBXXF
DELAY#0FFFFh
SSBXXF
DELAY#0FFFFh
;Bbk0
bk1:
ST#1234h,DAT0 ;立即数寻址,D(2000H)=1234H,
ST#5678h,*(DDAT1);D(2005H)=5678H
NOP
NOP
NOP
bk2:
MVDKDAT0,DDAT0 ;绝对地址(dmad)寻址
MVKDDDAT1,DAT1;D(2004H)=D(2004H)=1234H
NOP;D(2005H)=D(2001H)=5678H
NOP
NOP
bk3:
MVDPDAT0,PDAT0 ;绝对地址(pmad)寻址
MVDPDAT1,PDAT1;D(1f00H)=D(2000H)=1234H
NOP;D(1f00H)=D(2001H)=5678H
NOP
NOP
bk4:
LD#PDAT1,A ;累加器寻址A=1f01H
READADAT2;D(1f01H)=D(2002H)=5678H
NOP
NOP
NOP
bk5:
ST#3210h,DAT3 ;直接寻址(DP指针);D(2003H)=3210H
NOP
NOP
NOP
bk6:
SSBXCPL;置位CPL=1
NOP
NOP
NOP
ST#9876h,DAT3 ;直接寻址(SP指针)
NOP
NOP
NOP
RSBXCPL;复位CPL=0
NOP
NOP
NOP
bk7:
STM#DDAT3,AR0 ;间接寻址
ST#9876h,*AR0;AR0=2007H
NOP;D(2007H)=9876H
NOP
NOP
bk8:
STM#8888h,T ;存储器映射寄存器寻址T=8888H
NOP
NOP
NOP
bk9:
PSHMT ;堆栈寻址
POPMT
NOP
NOP
NOP
bk10:
NOP
STM1000h,ar1;设置访问数据空间的地址,AR1寄存器间接寻址
RPT #07h;下面的指令重复执行0x07h+1次
ST 0aaaah,*ar1+;将数据"0AAAAH"存放到以地址1000H~1007H的八个存储单元中
NOP
;---------------------------------------------------------------
STM7h,ar3;AR3=0x07h
STM 1000h,ar1;设置访问数据空间的地址,AR1寄存器间接寻址
STM1008h,ar2;设置访问数据空间的地址,AR2寄存器间接寻址
loop:
;循环的将1000H~1007H的八个单元中的数据复制到1008H~100F的
;八个存储单元中,用T寄存器暂存
LD *ar1+,t;*AR1-->T,AR1=AR1+1
ST t,*ar2+;T-->*AR2,AR2=AR2+1
BANZ loop,*ar3-;AR3=AR3-1,AR3=0?
NOP
bk11:
STM#1,AR0
STM#table,AR4
STM#circle,AR2
STM#4,BK
STM#y,AR3
RPT#3
MVDD*AR4+,*AR2+0%;间接寻址(双操作数寻址、循环寻址)
RPT#7
MVDD*AR2+0%,*AR3+;间接寻址(双操作数寻址、循环寻址)
bk12:
STM#8,AR0 ;程序存储器到数据存储器的复制
STM#4000h,AR5
RPT#15
MVPD1000H,*AR5+0B;绝对地址(pmad)寻址、间接寻址(位倒序)
NOP;p(1000H)—p(100FH)存到D(3500H)—D(350FH)倒叙排列单元中
bk13:
B_main
.end
四、实验步骤
(1)以simulator方式启动CCS,打开项目文件,编译程序和加载目标代码文件。
(2)本实验需要打开6个内存窗口:
Data页的0x1000起始处、0x2000起始处、Data页的0x3000起始处、0x4000起始处,Program页的0x1f00起始处和0x1000起始处。
(3)按照9.3节“CCSC5000使用及DSP指令”实验的步骤设置断点,观察方法也基本相同。
下面仅对各个小段程序进行简要说明:
Bk0通过对XF引脚的置位和复位实现发光二极管的闪烁
Bk1立即数寻址方式
Bk2绝对地址寻址方式——数据存储器地址寻址
Bk3绝对地址寻址方式——程序存储器地址寻址
Bk4累加器寻址方式
Bk5直接寻址方式(DP为基准)
Bk6直接寻址方式(SP为基准)
Bk7间接寻址方式
Bk8存储器映射寄存器寻址方式
Bk9堆栈寻址方式
Bk10将程序存储器0x1000为起始处的0x100个字复制到数据存储器的0x4000为骑士地址的空间中
Bk11间接寻址,循环器首地址0x1000
Bk12间接寻址,将程序存储器0x1000为起始处的0x010个字复制到数据存储器的0x3500为骑士地址的空间中,位倒叙寻址,步长为8。
五、实验心得
5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP2 数据 存储器 程序 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)