《DSP2数据存储器和程序存储器实验(共5页).doc》由会员分享,可在线阅读,更多相关《DSP2数据存储器和程序存储器实验(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据存储器和程序存储器实验电子073 高*27一、实验目的 了解DSP内部数据存储器和程序存储器的结构。 了解DSP指令的几种寻址方式。二、实验要求 主要是对外扩数据存储器和程序存储器金星数据的存储和移动。该实验所需要的硬件主要是DSP、CPLD和DRAM。实验过程是:让学生通过CCSC5000的DSP仿真器对DSP进行仿真、向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCSC5000仿真器界面进行观察或通过发光二极管观察其正确性。三、实验程序 .title ex2.global reset,_main.mmregs.def _mainDAT0.
2、set00HDAT1.set01HDAT2.set02HDAT3.set03HDDAT0.set2004HDDAT1.set2005HDDAT2.set2006HDDAT3.set2007HPDAT0.set1f00HPDAT1.set1f01HPDAT2.set1f02HPDAT3.set1f03H.sect .vectors ;中断向量表reset:B _main ;复位向量NOPNOP.space 4*126circle .usect circle, 4 .bss y,8 .datatable .word 1,2,3,4.textDELAY.macro COUNTSTM COUNT,BR
3、CRPTB delay?NOPNOPNOPNOPdelay?:NOP.endm_main:LD #40h,DP ;置数据页为2000h207FhSTM #3000h,SP ;置堆栈指针SSBX INTM ;禁止中断STM #07FFFh,SWWSR ;置外部等待时间bk0:SSBX XF ;置XF以实现二极管闪烁D3(EXPIII+)DELAY #0FFFFh RSBX XFDELAY #0FFFFhSSBX XFDELAY #0FFFFh ;B bk0bk1:ST #1234h,DAT0 ;立即数寻址,D(2000H)=1234H,ST #5678h,*(DDAT1) ; D(2005H)=
4、5678HNOPNOPNOPbk2:MVDK DAT0,DDAT0 ;绝对地址(dmad)寻址MVKD DDAT1,DAT1 ; D(2004H)= D(2004H)=1234HNOP ; D(2005H)= D(2001H)=5678HNOPNOPbk3:MVDP DAT0,PDAT0 ;绝对地址(pmad)寻址MVDP DAT1,PDAT1 ; D(1f00H)= D(2000H)=1234HNOP ; D(1f00H)= D(2001H)=5678HNOPNOPbk4:LD #PDAT1,A ;累加器寻址 A=1f01HREADA DAT2 ; D(1f01H)= D(2002H)=56
5、78HNOPNOPNOPbk5:ST #3210h,DAT3 ;直接寻址(DP指针) ;D(2003H)= 3210HNOPNOPNOPbk6:SSBX CPL ;置位CPL=1 NOP NOPNOPST #9876h,DAT3 ;直接寻址(SP指针)NOPNOPNOPRSBX CPL ;复位 CPL=0NOPNOPNOPbk7:STM #DDAT3,AR0 ;间接寻址 ST #9876h,*AR0 ; AR0=2007HNOP ; D(2007H)= 9876HNOPNOPbk8:STM #8888h,T ;存储器映射寄存器寻址 T=8888HNOPNOPNOPbk9:PSHM T ;堆栈寻
6、址 POPM TNOPNOPNOPbk10:NOP STM 1000h,ar1 ;设置访问数据空间的地址,AR1寄存器间接寻址 RPT #07h ;下面的指令重复执行 0x07h+1次 ST 0aaaah,*ar1+ ;将数据0AAAAH存放到以地址1000H1007H的八个存储单元中 NOP;- STM 7h,ar3 ;AR3=0x07h STM 1000h,ar1 ;设置访问数据空间的地址,AR1寄存器间接寻址 STM 1008h,ar2 ;设置访问数据空间的地址,AR2寄存器间接寻址 loop: ;循环的将1000H1007H的八个单元中的数据复制到1008H100F的 ;八个存储单元中
7、,用T寄存器暂存 LD*ar1+,t ;*AR1-T ,AR1=AR1+1 STt,*ar2+ ;T-*AR2 ,AR2=AR2+1 BANZloop,*ar3- ;AR3=AR3-1 ,AR3=0? NOP bk11: STM #1,AR0STM #table ,AR4STM #circle,AR2 STM #4,BKSTM #y, AR3 RPT #3MVDD *AR4+,*AR2+0% ;间接寻址(双操作数寻址、循环寻址)RPT #7MVDD *AR2+0%,*AR3+ ;间接寻址(双操作数寻址、循环寻址)bk12:STM #8,AR0 ;程序存储器到数据存储器的复制STM #4000h
8、,AR5RPT #15 MVPD 1000H,*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节“CCS C5000使用及DSP指令”实验的步骤
9、设置断点,观察方法也基本相同。下面仅对各个小段程序进行简要说明:Bk0 通过对XF引脚的置位和复位实现发光二极管的闪烁Bk1 立即数寻址方式Bk2 绝对地址寻址方式数据存储器地址寻址Bk3 绝对地址寻址方式程序存储器地址寻址Bk4 累加器寻址方式Bk5 直接寻址方式(DP为基准)Bk6 直接寻址方式(SP为基准)Bk7 间接寻址方式Bk8 存储器映射寄存器寻址方式Bk9 堆栈寻址方式Bk10 将程序存储器0x1000为起始处的0x100个字复制到数据存储器的0x4000为骑士地址的空间中Bk11 间接寻址,循环器首地址0x1000Bk12 间接寻址,将程序存储器0x1000为起始处的0x010个字复制到数据存储器的0x3500为骑士地址的空间中,位倒叙寻址,步长为8。五、实验心得专心-专注-专业