一 、填空题:1. DSP 芯片的结构特点主要有改进的哈佛结构、低功耗设计、高度并行性 、多处理单元、特殊的DSP 指令等。
2 . C54x DSP 具有两个40位累加器。
累加器 A 的AG 或32-39位是保护位。
3•软件中断都是由INTR 、TRAP 和RESET 产生。
4. TMS320C54X 有8条16位主总线,它们是1条程序总线、3条数据总线、4条地址总线。
6. 执行复位操作后,下列寄存器的初始值分别为: ASM= 0、DP= 0。
7.TMS320C54x 有三种类型的串行口:标准同步串行口(SPI )缓冲串行口( BSP 、时分多路 复用串行接口( TDM )。
10. DSP 片内寄存器在 C 语言中一般米用 指针方法是将DSP 寄存器地址的列表定义在 头文件中(reg.h 、11.所有TMS320C54X 芯片内部都包含 程序存储器和 数据 12.直接寻址就是在指令中包含有数据存储器地址的低 7位与 基地地址 组成 16 位的数据存储器地址。
13. 定时器主要由 3 个寄存器所组成,包括定时寄存器 制寄存器 TCR 。
15. OVLG0,则片内RAM 只安排到数据存储空间。
DROM= 1,则部分片内ROM 安排到数 据空间。
16. C54X 的工作方式状态寄存器 PMST 提供了三个控制位,包括 MP/ 非 MC 、 OVLY 、 DROM 。
17. DSP 芯片的结构特点主要有 改进的哈佛结构、流水线操作、专用的硬件乘法器 、 快速的指令周期 、特殊的DSP 指令等。
18.ST1的CPL= 1 表示选用堆栈指针(SP 的直接寻址方式。
19. TMS320C54X 有3个16位寄存器作为状态和控制寄存器,它们是 状态寄存器ST0、状态寄存器 ST1 、 处理器工作方式状态寄存器 PMST 。
20. ST1的C16= 0表示ALU 工作在双精度算术运算方式。
22. 所有的COFF 文件都包含三种形式的段,分别是 .text 文本段、.data 数据段、和.bss 保留 空间段。
23.状态寄存器 ST1中CPL=0表示 使用DP, CPL=1表示选择的是 使用SP 。
24.累加器寻址的两条指令分别是 R EADA Smem 、 WRITA Smem 。
二、简答题1. 简述TMS320C54x 的7种基本的数据寻址方式答: 1 、立即寻址 2、绝对寻址 3、直接寻址 4、间接寻址 5、累加器寻址 6、存储 器映射寄存器寻址7、堆栈寻址2 •段的作用是什么? COF F 目标文件包含哪些段?答:所谓段,是指连续地占有存储空间的一个代码段或数据段,是 COFF 文件中最重要的概念。
一个目标文件中的每一段都是分开的和各不相同的。
COFF 目标文件文件包含:(1、text 段:可执行代码段 (2、data 段:已初始化数据段(3、bss 段:未初始化数据的保留空间段6. HPI8接口有几个寄存器?他们的作用是什么?答:(1、HPI 存储器:用于 TMS320C54X 与主机间传送数据。
地址从 1000H 到17FFH,空间 容量为2K 字(2、HPI 地址寄存器:由主机对其直接访问,存放当前寻址 HPI 存储单元的地址( 3、HPI 数据锁存器:由主机对其直接访问,存放当前进行读 /写的数据 (4、HPI 控 制寄存器:TMS320C54X 与主机都能对其直接访问,用于主处理与DSP 相互握手,实现相互 中方式来访问,常常采用的。
存储器。
用作偏移地址, 并TIM 、定时周期寄存器 PRD 定时控断请求(5) HPI控制逻辑:用于处理 HPI与主机之间的接口信号二、指令解释1、MAC *AR3+,*AR4+,A,B ;答: B=A-*AR3+*AR4 ; AR3=AR3+1 ;AR4=AR4+12、SUB #12345,8,A,B ;答: B=A-12345<<83、ADD *AR2+,*AR2-,A ;答: A=* (AR2) +* (AR2+1)4、RPT #99 NOP ;答:重复 NOP100 次5、 MVDD *AR3+ , *AR5+ ;答:数据存储器内部传送数据AR3~ AR5,且指令结束后 AR3 与AR5 加 16、 ABDST *AR3+, *AR4+ ;答: B=(*AR3-*AR4 ) <<167、 CALA A ;答:按累加器规定的地址调用子程序8、 ST T, *AR7- ;答:*AR7=T,AR7=AR7-19、 DST B, *AR1+ ;答:AR1=B,AR1=AR1+110、 STA *AR4+ ||LD *AR4- , A;答:AR4=A,AR4=AR4+1|| A=AR4,AR4-111、L D #0032H, 4, A ;答:立即数 0032H 先左移 4位后,再加载累加器 A12、S TM #1000H,*AR2 ;答:立即数 1000H存储到 AR2指向的地址单元13、 MAC #345 , A, B ;答:立即数345与T寄存器内值相乘后与累加器A相加,结果加载累加器 B14、 MVDD *AR3-, 100H ;答:AR3指向的地址单元的值传送给地址100H, AR3中地址减一15、LDM *AR1 , A ;答: AR1 指向的地址单元的值加载到累加器 A16、LD #80H, A答:把立即数80H装入累加器17、W RITA SMEM 答:把 Smem 所指定的数据存储单元中的一个数传送到累加器 A 所指定的成序存储单元18、PORTR FIFO,*AR5答:把一个数从端口为 FIFO的I/O 口复制到 AR5寄存器所指向的数据存储单元中19、LDM MMR , A ;答:将 MMR装入累加器 A中20、MVKD SAMPLE,*AR521、ADD *AR3+,14,A ;答:将 AR3左移 14 加上 A AR3=AR3+122、M PYA TEMP2 ;答: B<=A.Temp2.T=Temp223、S TA,*AR4+ ||LD *AR4- , A24、 DST B *AR1-;答:B存到长字单元 AR1中,且 AR减125、M ACD *AR2-,COEFFS,A26、STL A, @quot ;答:将累加器A的低16位字存放在quot的存储单元中27、A DD #4568H, 8, A, B ;答:将 4568H左移8位与A相加,赋给 B28、 LDM AR1, A; 答:存储器映像寄存器寻址方式,将映像寄存器加载累加器AR1A 的低位,其余位置为 029、 MVDD *AR3+ , *AR5+;答:数据存储器内部传送数据AR3~ AR5,且指令结束后 AR3 与 AR5 力口 130、M PYA TEMP2 ;答: B<=A.Temp2.T=Temp2四、编程1 .用汇编语言编制计算 y=x1+x2+ ..... +X6程序。
.global start.mmregs.dataTable: .word 1,1,1,1,1,1.textstart: STM #Table,AR1 LD #0,A RPT #5 ADDC *AR1+,A end: b end2. 编一程序,首先实现对DATA开始的5个单元赋初值0, 1, 2 , 3, 4, 5,然后再对每个单元内容加 1。
;chu shi hua x[5]={0,1,2,3,4} bin dui mei ge dan yuan jia 1.title "lian.asm".mmregs.bss x,5stack .usect "stack",10h.datatable: .word 0,1,2,3,4.def start.textstart: S TM #x,AR1RPT #4MVPD table,*AR1+LD #1,16,BSTM #4,BRCSTM #x,AR4RPTB #next-1ADD *AR4,16,B,ASTH A,*AR4+next: LD #0,Bend :B end .end5. 编写一段程序,将程序存储器中的10 个数据首先传送到数据存储器中(以 DATA1开始),再将DATA1开始的10个单元内容传送到 DATA2开始的数据储存期中。
.global start.mmregs.dataTable: .word 2,1,2,3,4,5,6,7,8,2.bss DATA1,10.bss DATA2,10.textstart: STM #DATA1,AR1RPT #9MVPD Table,*AR1+STM #DATA2,AR0RPT #9MVPD DATA1,*AR0+end: b end6 将数组 x[5] 初始化为 {1,2,3,4,5} 。
.global start.mmregs.dataTable: .word 1,2,3,4,5.bss x,5.textstart: STM #x,AR1RPT #4MVPD Table,*AR1+、end: b end五、阅读程序1、阅读下列汇编源程序,在每条语句后写出注释,并叙述程序的功能。
.title "F2.ASM" ;为汇编源程序取名.mmregs ;定义存储器映像文件.def start ;定义启动模式.bss y , 1 ;为 y 分配 1 个存储空间 X.usect "x",7 ;为 x 预留 7 个存储空间b0 .usect "b0",7 ;为 b0 预留7 个存储空间PA0 .set 0PA0=0PA1 .set 1 PA1=1.dataCOEF:.word 1*32768/10 ;0.1.word 2*32768/10 ;0.2.word -4*32768/10 ;-0.4.word 3*32768/10 ;0.3.word -4*32768/10 ;-0.4.word 2*32768/10 ;0.2.word 1*32768/10 0.1.textstart:SSBX FRCT FRCT位置1, 表示进行小数乘STM #b0, AR1 ;b0 的首地址传给 AR1RPT #6 ;重复 7 次下条指令MVPD table, *AR1+ ;将程序空间的 7 个数据传送给数据存储器 STM #xn+6, AR2 ; AR2 指向 x(n-6),AR2=86HSTM #b0+6, AR3 ; AR3指向 b6 单元,AR3=8EHSTM #7, BK ; BK=7,设置缓冲区长度LD #xn, DP ;设置页指针, DP=01HPORTR PA1, @xn ;输入 x(n)FIR2:RPTZ A, #6 ;累加器 A 清零,设置迭代次数MAC *AR2+0%, *AR3+0%, A ; A=circ(AR2+AR0)+circ(AR3+AR0)STH A, @y 暂存 y(n)PORTW @y, PAO ;输出 y(n)BD FIR2 ;执行完下一条后,跳到FIR2处PORTR PA1,*AR2+0% ;输入最新样本,并修改 AR2.end功能:N=7 的滤波器,y(n)= b0x(n) +b1x(n-1) +b2x(n-2)+ b3x(n-3)+b4 x(n-4)+ b5x(n-5)+ b6x(n-6) 4. C54x DSP的内部总存储空间为 192K字,分成3个可选择的存储空间:64K字的程序存储空间、64K字的数据存储空间和 64K字的I/O空间。