[资料分享] C5000实验测试程序 2存储器

Aguilera   2018-3-18 20:34 楼主
数据存储器和程序存储器实验
实验目的:
    了解DSP内部数据存储器和程序存储器的结构
    了解DSP指令的几种寻址方式
实验要求:
    主要是对外扩数据存储器进行数据的存储、移动。该实验所需要的硬件主要是DSP、CPLD、DRAM。实验过程是:让学生通过CCS  C5000的DSP仿真器对DSP进行仿真,向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCS5000仿真界面进行观察或通过发光二极管观察其正确性。
程序文件:ex2.asm
实验步骤:
经过了实验一以后,相信各位同学对于CCS的基本操作已经了解,故在此不再赘述。
1、以Emulator方式启动CCS,打开项目文件,编译程序,加载目标代码文件。
2、打开各个观察窗口,值得注意的是,本实验需要打开三个内存窗口:Data页的0x2000(.data段)起始处、Data页的0x3000(.stack段)起始处、以及Program页的0x1f00起始处
3、按照实验一的步骤设置断点,观察方法也基本相同,下面仅对各个小段程序进行简要说明:
bk0: 通过对XF引脚的置位和复位实现发光二极管的闪烁
bk1: 立即数寻址方式
bk2: 绝对地址寻址方式-数据存储器地址寻址
bk3: 绝对地址寻址方式-程序存储器地址寻址
bk4: 累加器寻址方式
bk5: 直接寻址方式(DP为基准)
bk6: 直接寻址方式(SP为基准)
bk7: 间接寻址方式
bk8: 存储器映射寄存器寻址方式
bk9: 堆栈寻址方式
bk10: 将程序存储器0x2000为起始地址的0x100个字复制到数据存储器的0x4000为起始地址的空间中
源程序:
************************************************
* FileName:   ex2.asm                        *
* Description: 数据存储器和程序存储器实验     *
* Copyright(C) SanZhi Electronic, Author Zpin *
************************************************
   .title "ex2"
   .global reset,_c_int00
   .mmregs
   .def _c_int00
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 _c_int00      ;复位向量
   NOP
   NOP
   .space 4*126
  
   .text
DELAY .macro COUNT
   STM COUNT,BRC
   RPTB delay?
   NOP
   NOP
   NOP
   NOP
delay?: NOP
   .endm

_c_int00:
   LD #40h,DP      ;置数据页为2000h~207Fh
   STM #3000h,SP     ;置堆栈指针
   SSBX INTM      ;禁止中断
   STM #07FFFh,SWWSR    ;置外部等待时间
  
bk0: SSBX XF       ;置XF以实现二极管闪烁
   DELAY #0FFFFh
   RSBX XF
   DELAY #0FFFFh
   SSBX XF
   DELAY #0FFFFh
;b bk0
  
bk1: ST #1234h,DAT0     ;立即数寻址
   ST #5678h,*(DDAT1)
   NOP
   NOP
   NOP
  
bk2: MVDK DAT0,DDAT0     ;绝对地址(dmad)寻址
   MVKD DDAT1,DAT1
   NOP
   NOP
   NOP
  
bk3: MVDP DAT0,PDAT0     ;绝对地址(pmad)寻址
   MVDP DAT1,PDAT1
   NOP
   NOP
   NOP
  
bk4: LD #PDAT1,A      ;累加器寻址
   READA DAT2
   NOP
   NOP
   NOP
  
bk5: ST #3210h,DAT3     ;直接寻址(DP指针)
   NOP
   NOP
   NOP
  
bk6: SSBX CPL
   NOP
   NOP
   NOP
   ST #9876h,DAT3     ;直接寻址(SP指针)
   NOP
   NOP
   NOP
   RSBX CPL
   NOP
   NOP
   NOP
  
bk7: STM #DDAT3,AR0     ;间接寻址
   ST #9876h,*AR0
   NOP
   NOP
   NOP
bk8: STM #8888h,T     ;存储器映射寄存器寻址
   NOP
   NOP
   NOP
bk9: PSHM T       ;堆栈寻址
   POPM T
   NOP
   NOP
   NOP
bk10: STM #4000h,AR0     ;程序存储器到数据存储器的复制
   RPT #100h
   MVPD 1000H,*AR0+
   NOP
   NOP
   NOP
  
bk11: B _c_int00
   .end

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复