
DSP的数据存取试验.ppt
19页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,DSP的数据存取,一、实验目的,1、了解DSP汇编程序的基本构成;,2、理解头文件中系统及用户自定义的含义;,3、掌握DSP数据及程序空间的配置及命令文件的编写;,4、掌握DSP数据存取的基本方法二、实验原理,1、一个完整的DSP汇编语言文件包含3个部分:,(1)用于定义外设控制寄存器的映射地址、用户定义的端口寄存器地址和相关常量的头文件,如F2407REGS.H,用.include引用;,(2)实现要DSP完成的汇编语言工程文件,扩展名为.asm;,(3)用于文件链接的命令文件,扩展名为.cmd,该文件实现对程序存储空间和数据存储空间的分配2、存储器类型常有冯诺曼结构和哈佛结构两种类型TMS320LF240 x DSP采用哈佛结构,具有独立的程序存储器、数据存储器和I/O空间,他们地址相同,但通过不同的控制线区分2.1 程序存储器,64K寻址空间,包括片上的的DARAM和FLASH EEPROM/ROM,程序空间地址分配:,0000H003FH:存储中断入口地址(64个字),0040HFDFFH:用户程序存储区(63K),FE00HFEFFH:双口存储器DARAM区(B0),配置控制位:MP/MC、CNF,引脚控制位:PS、STRB(READY),2.2 数据存储器,64K寻址空间,包括3个片上数据块(B0 B1 B2)和外设寄存器映射;前32K在片上,后32K由外部寻址。
寻址方式:直接寻址和间接寻址,采用直接寻址时,只能在128字的数据块内操作,所以必须定义页指针(包含512个页,0511,当前页由ST0.DP确定),采用间接寻址时,可以对64K空间内的任意单元进行访问注意不能访问数据存储空间上的非法地址空间(ILLEGAL SPACE),否则会产生非法地址操作错误,3、实现对程序空间和数据空间的分配,常用到2个伪指令:,1 MEMORY命令:描述系统实际的存储资源,常用的配置结构如图2.1,2 SECTIONS命令:描述“段”如何定位,常用的配置结构如图2.2,三、实验内容,1、DSP头文件的建立;,2、命令文件的编写;,3、DSP数据存取文件的编写;,4、进行DSP 程序的调试与改错;,5、在CCS观察窗口中验证实验结果四、实验步骤,1、将DSP 仿真器与计算机连接好;,2、将DSP 仿真器的JTAG 插头与SEED-DEC2407 单元的J5连接;启动计算机,当计算机启动后,打开SEED-DEC2407 的电源观察DEC-IO 单元的5V、3.3V、15V、15V 的电源指示灯是否均亮;若有不亮的,请断开电源,检查电源3、打开CCS 集成开发环境,进入CCS 的操作环境。
4、新建源文件,以创建一个未知名的源文件,编写源代码(将作业题4.1代码录入)并保存(保存源程序名可为ram.asm);创建命令文件(ram.cmd)并编写配置代码并保存,可重复上述步骤5、建立新工程(ram.pjt),将ram.asm、ram.cmd文件加到工程文件中6、对工程进行编译,生成ram.out文件7、选择载入文件ram.out8、打开CCS反汇编程序窗口、CPU窗口、存储器窗口,如图2.39、单步运行程序,观察各窗口寄存器单元针对各条数据存取指令的操作结果,分析和修正源程序10、更改ram.cmd文件中对.bss段的配置,同时对ram.asm文件进行相应修改,重新编译装载ram.out后,再单步运行程序,观察各窗口寄存器单元针对各条数据存取指令的操作结果,分析和修正源程序图2.3 实验调试窗口,五、实验报告,1、描述出一套完整的DSP汇编语言工程文件的组成部分,各文件的主要功能如何?,2、写出本实验中ram.cmd文件中各条语句的意义3、分析DSP程序/数据映像并回答:,(1)若ST1.CNF1,本实验的运行结果会如何变化?为什么?,(2)若为了将本实验中的原始被加数据存放在300H302H单元,请问源程序应如何修改?,附:,asm程序:,.fileram.asm,.global _main,.bssa0,1;自定义16位整型常数,.bssa1,1;自定义16位整型常数,.bssa2,1;自定义16位整型常数,;DP=0 x0000H 0000H-003FH,;DP=0 x0004H 0100H-013FH,;DP=0 x0008H 0200H-023FH,;DP=0 x000CH 0300H-033FH,;DP=0 x0010H 0400H-043FH,.text,_main:,MOVZDP,#2;DP=0 x0002H 0080H-00BFH,MOVa0,#00A0H;a0=00A0H,MOVACC,a0,MOVZDP,#2,MOVa1,#00A1H;a1=00A1H,MOVACC,a1,MOVZDP,#2,MOVa2,#00A2H;a2=00A2H,MOVACC,a2,XXXX:,MOVZDP,#2,INCa0;a0=a0+1,MOVZAR0,a0,MOVACC,a0,LBXXXX,WAIT0:,NOP,NOP,LB WAIT0;长跳转,LRET,.end,。












