关键词不能为空

当前您在: 主页 > 英语 >

实验一CCS及基本指令实验

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 20:11
tags:

-

2021年2月10日发(作者:最好)


实验一


CCS


及基本指令实验

< br>


一、实验目的



1

< p>


了解


TMS320C54x

汇编语言程序的基本格式,


以及使用


CCS


进行汇编、


链接的基本过程。



2


)熟悉硬件仿真器


Emulator


和软件仿真器


Simulator


的使用方法。



3


)通过软件仿真器各窗口观察

< br>TMS320C5402


内部资源和修改内部寄存器状态。



4


)初步熟悉


C54x

< p>
汇编语言


COFF


公共目标格式文件。

< p>


二、实验设备



1




微机一 套,操作系统为


WINWODS98



WINDOWS2000 SP2



WINDOWS XP SP1


或具有更高级


的补丁。



2




5000CCS2.0


软件版本。


< /p>


3



程序及链接命令文件见


D:EXPEREXP1


目录下的


.asm



.cmd


文件。



三、开关设置



将开关


K9


拨到右边,即仿真器选择连接右边的


CPU


2





四、实验内容



1)


系统连接



进行


DSP


实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:












PCI/USB/EPP


接口



JTAG


接口



仿







实验箱



JTAG




2)


仿真口选择开关


K9

< p>
拨到右侧,即仿真器选择连接右边的


CPU



CPU2




接通 实验箱后面


220V


输入电源


,


系统会自动上电复位


,


在硬件安装完成后,确认安装正确、


各实验部件及电源连接正常后,


,此时,仿真器上的“


红色小灯


”应点亮,否则


DSP


开发系


统有问题。


3)



D:USER

< p>
下建立自己的目录,


并将实验所用的源程序和链接器命令文件复制到自建的 子


目录下。如


D:USERLLD


4 )


启动


CCS,


待计算机启动成功后, 开关置“


ON



,实验箱上电,启动< /p>


CCS


,此时仿真器上的


“绿色小灯”< /p>


应点亮,并且


CCS


正常启动,表明系统 连接正常;否则仿真器的连接、


JTAG


接口或


CCS


相关设置存在问题,则掉电,检查仿真器的连接、


JTAG


接口连接,或检查


CCS


相 关设置是否正确。



5)


建立项目文件



如果还没有建立项目文件,


则使用< /p>


[Project]-[New]


菜单中新建一个项目。


在选


porject creat


对话框中的


Project location


中选择或填入新建项目的路径(如


D:USERLAN



,在


project


中添入项目名称 (如



)并选择完成。这样就在


D:US ERLANTEST


目录下建立了一个名称为


< br>的项目文件。



注意:实验程序所在的目录不能包含中文,目录不能过深



打开项目文件


:如果项目已经建立,则使用在


[Project]-[Open]


菜单


,

< br>通过改变目录打开该


目录下面下的项目文件“


< p>


,不必重新添加文件。




选择


location


右边按钮




6

< p>
)在项目中添加源程序文件和链接器命令文件。使用


[Project]- [Add files to project]


命令分别


添加 扩展名为


.asm



.cmd


的两个文件(注意:在选择添加文件前要修改文件的察看类型为



ALL


FILE


(*.*)


,如果有


.asm


文件、


.cmd


文件、



.c


文件和


.lib


文件也要添加)


,再选择


[Project]-[Save]


保存新建的项目。



7


)在左边树状列表框内双击


[Projec t]


展开目录树,双击


[]


打开源程序 文件(或者


打开自己编写的程序)



参 考程序中的注释仔细阅读源程序;


选择


[Project]-[ Build]


可对源


程序进行编译,生成


.out


文件。



7




使



[File]-[Load


Programm]



< br>载















D:USERLANTESTDEBUG


目 录下)




8)


选择


[View]-[CPU


Register]


(或点击左边工具栏的快捷按钮)打开处理 器映射寄存器窗


口。



9)

< p>
选择


[View]-[Memory]


(或点击左 边工具栏的快捷按钮)


,在弹出的


[Windows Memory


Options]


对话框的

Address


文本框中输入


0x2060



Page


下拉框中选中


Da ta,


确定后将打开


数据存储器查询窗口,此时数据存储器地址


0x2060



0x2063


就对应着



中声明的标


号 为


DAT0



DAT3


的四个单元。




10)


调整源程序、


[memory]



[CPU Registers]


三个窗口的大小,以便于观察。



11)


依次把光标移动到反汇编窗口中标号为


bk?



?


表示从

0


开始的整数)段的最后一个


nop


指令处,选择菜单


[Debug]-[Breakpoint]


(或者点击快捷按钮手行按钮)


设置断点,


断点设

< p>
置后,


都将以红色原点显示。如果想取消断点,可以将光标移动到该行处,


重新作一次断点


设置操作。



12)


选择


[Debug]-[Run]


(也可以按快捷键


F5


或点击快捷按钮)执行 程序。



13)


程序将停止在第一个断 点


bk0


位置,


bk0


标号下的指令将以黄色箭头指示,在存储器映



CPU


寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:


如步骤


9


所述,


D AT0



DAT3


对应地址为


0X2060



0X2063

< br>)



然后在存储器映像


cpu< /p>


寄存器窗


口中和数据存储器查询窗口中观察指令执行结果。


可试着修改一下指令操作数的内容,


然后


重新 进行编译、链接、载入程序,最后执行,观察存储器中内容的变化。


< br>14)


重复执行


9


< p>
10


步骤,依次观察加法指令、减法指令、乘法指令、除法指令、平方指令


以及


3


数累加宏指令的执行结果,调用 子程序前后堆栈指针及堆栈中数值的变化。



15)

< p>
全部程序执行后,程序转到


bk0


处,可再次重复 以上指令的实验。



16)


可使用


[Debug]-[Restart]


重新执行程序,或者


[Debug]-[Reset CPU]



5 402


复位。



五、实验报告:





1




TMS320C54X


在复位时,


PC=? ,ST0=? ,ST1= ? ,PMST= ?


注意:< /p>


硬件复位是在硬件仿真条件下进行的,


使用菜单执行


[Debug]-[Reset


CPU]


进行复位。



2




如何检查程序存储器和数据存储器的内容?



3




给出每 段执行后的结果。即


START


段执行后的

DP



SP


值,


Bk0, Bk1 ,Bk2 Bk4


段执行



A


的值,

< p>
Bk3


段之行后数存


2062


2063


单元的值,


BK


5执行后


2063


单元的值,


BK


6执行后


2003


单元的 值。



六、源程序及链接命令文件



1




*** **********************************************


* FileName:




*


* Description:


DSP


指令实验





*


* Write by: lanrunze *


* Date:


2004-2-10




*


* Update:


2006-10-30 *


************************************* ************


*


注意:如果使用硬件仿真,由 于在


DSP


中存在流水线的原因,因此观察存储器和

< p>


*


寄存器变化时要多执行几个周期,才能看到相 应的变化。




.title


;


源程序名称




.mmregs



;


使用存储器映像寄存器




.def _c_int00



;


定义默认程序入口地址



DAT0


.set


60H


;


定义直接寻址所使用的低


7


位地址



DAT1


.set


61H


DAT2


.set


62H


DAT3


.set


63H



.bss Data0,1


;

定义


1


字长变量




.bss


Data1,1



.bss


Data2,1



.bss Data3,1


STK .usect


定义堆栈段,长度


100H





.sect

;


定义中断向量段,用于存储中断向量表



reset:


BD _c_int00


;


复位向量




stm #STK+100h,SP



.space 4*16*31



;


为其它中断向量保留空间






.text



;


程序段开始



ADD3


.MACRO P1,P2,P3,ADDRP;


定义实现三数相加的宏


: ADDRP = P1 + P2 + P3



LD @P1,A


;


宏即宏替换,在调用程序时进行宏展开





ADD @P2,A


;


宏的使用方法类似于子程序,但不同点在于宏可 以带参数




ADD @P3,A



STL A,@ADDRP



.ENDM





_c_int00:



;


默认程序入口地址




B start


start: LD #40H,DP


;


置数据页指针


from 0x2000 to ox207f



STM #3000h+100h,SP


置堆栈指针




SSBX INTM


;


禁止中断







ldm PMST,A


修改


IPTR





and #0x3f,A ;


去掉


IPTR



or #0x3f80,A


IPTR


位域改为


7fH,



stlm a,PMST


;


写入


IPTR


即中断向量表首地址为


0x3 f80




bk0:ST #0012h,@DAT0


加法




LD #0023h,A



ADD @DAT0,A



;



NOP



NOP



NOP



NOP


bk1:ST #0054h,@DAT0


;


减法




LD #0002h,A





SUB @DAT0,A









NOP



NOP



NOP



NOP


bk2:ST #0345h,@DAT0 ;


乘法




STM #0002h,T



MPY @DAT0,A





NOP



NOP



NOP



NOP


bk3:ST #1000h,@DAT0


除法


1000h/41h




ST #0041h,@DAT1




RSBX SXM










LD @DAT0,A





RPT #15





SUBC @DAT1,A




STL A,@DAT2





STH A,@DAT3



NOP



NOP



NOP



NOP


bk4:ST #0333h,@DAT0


求平方




SQUR @DAT0,A






NOP







NOP



NOP



NOP


bk5:ST #0034h,DAT0 ;


调用宏进行求和运算




ST #0243h,DAT1



ST #1230h,DAT2



ADD3 DAT0,DAT1,DAT2,DAT3



NOP








NOP



NOP



bk6:ST #0034h,Data0 ;


调用子程序进行求和运算




ST #0243h,Data1



ST #1230h,Data2



call add_sub;



NOP









2



链接器 命令文件




MEMORY


{



PAGE 0: VECS:


origin = 0xff80,length = 0x80





PROG:


origin = 0x1000,length = 0x1000



PAGE 1: DATA:


origin = 0x2000,length = 0x1000





STACK:


origin = 0x3000,length = 0x1000


}



SECTIONS


{



.vectors:



.text:




.data:




STACK:



}









NOP



NOP



NOP


bk7:ST #0h,@DAT0


;


循环运行前将各数存单元清零




ST #0h,@DAT1



ST #0h,@DAT2



ST #0h,@DAT3





ST #0h,@Data0



ST #0h,@Data1



ST #0h,@Data2



ST #0h,@Data3



NOP



NOP



NOP




B start


;


程序循环执行





add_sub: STM #Data0,AR2


求和子程序




RPTZ A, #2



ADD *AR2+,A



STL A,*AR2



RET



.end





{}


{}


{}


{}


>


>


>


>


VECS


PAGE 0


PROG


PAGE 0


DATA


PAGE 1


STACK PAGE 1




4









附录


1< /p>



TMS320C5402 CPU


及外设存储器寄存器映射表



0


1


2-5


6


7


8


9


A


B


C


D


E


F


10-17


18


19


1A


1B


1C


1D


1E


1E



1F


20


21


22


23


24


25


26


27


28


29


2A


2B


IMR


IFR


-


ST0


ST1


AL


AH


AG


BL


BH


BG


T


TRN


AR0-AR7


SP


BK


BRC


RSA


REA


PMST


XPC




McBSP0_DRR2


McBSP0_DRR1


McBSP0_DXR2


McBSP0_DXR1


TIM


PRD


TCR




SWWSR


BSCR




SWCR


中断屏蔽寄存器



中断标志寄存器



测试保留



状态寄存器


0


状态寄存器


1


累加器


A


低字(


15



0


比特)



累加器


A


高字(


31



16


比特)



累加器


A


保护位(


39



32


比特)


累加器


B


低字(


15



0


比特)



累加器


B


高字(


31



16


比特)



累加器


B


保护位(


39



32


比特)


暂存寄存器



传送寄存器



辅助寄存器


ARn n



0



7


堆栈指针



循环缓存区大小寄存器



块重复计数器



块重复开始地址



块重复结束地址



状态寄存器



程存扩展寻址寄存器



保留



带缓存串口

0


数据接收寄存器


2


带缓存串口


0


数据接收寄存器


1


带缓存串口


0


数据发送寄存器


2


带缓存串口


0


数据发送寄存器


1


定时器计数器



定时器周期寄存器



定时器控制寄存器



保留



等待状态产生寄存器



Bank- switching


控制寄存器



保留



扩展等待控制寄存器


-


-


-


-


-


-


-


-



本文更新与2021-02-10 20:11,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/631445.html

实验一CCS及基本指令实验的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文