1、 简述数字信号处理器的主要特点;
答:(1)存储器采用哈佛或者改进的哈佛结构;(2)内部采用了多级流水;(3)具有硬件乘法累加单元;(4)可以实现零开销循环;(5)采用了特殊的寻址方式;(6)高效的特殊指令;(7)具有丰富的片内外设。
2、 请给出数字信号处理器的运算速度指标; 答:常见的运算速度指标有如下几种:
(1) 指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;指令周期通常以ns(纳秒)为单位。例如,运行在200MHz的TMS320VC5510的指令周期为5ns。 (2) MIPS:每秒百万条指令数。 (3) MOPS:每秒百万次操作数。 (4) MFLOPS:每秒百万次浮点操作数。 (5) BOPS:每秒十亿次操作数。
(6) MAC时间:一次乘法累加操作花费的时间。大部分DSP芯片可在一个指令周期内完成MAC操作;
(7) FFT执行时间:完成N点FFT所需的时间。FFT运算是数字信号处理中的典型算法而且应用很广,因此该指标常用于衡量DSP芯片的运算能力。
3、 简述C55x的存储器配置情况;(课本11~12页)
C55x采用统一的存储空间和I/O空间。C55x的内存储空间共有352KB,外部存储空间共有16MB。存储区支持的寄存器类型有异步SRAM、异步EPROM、同步DRAM和同步突发SRAM。C55x的I/O空间与程序/地址空间分开。I/O空间的地址为16位,能访问64K字地址,当CPU读/写I/O空间时,在16位地址前补0来扩展成24位地址。
4、 TMS320C55x的寻址空间是多少?当CPU访问程序空间和数据空间时,使用的地址是多少位;
答:C55x的寻址空间为16MB,当CPU从程序空间读取程序代码时,使用24位地址,当访问数据空间时,使用23位的地址。但是在访问数据空间时,将23位地址左移一位,并将地址总线上的最低有效位(LSB)置0,使得在对数据空间或程序空间寻址时,地址总线都传送24位地址。
5、 VC5509A的PGE LQFP封装芯片共有多少个引脚?其中GPIO引脚有多少个?并行地址总线引脚有多少个?并行双向数据总线引脚有多少个?(此题答案不确定)
芯片共有144个引脚;GPIO引脚:7个;并行地址总线:14个;并行双向数据:16个 6、 C55x的指令分为两个阶段,第一阶段为取指阶段,第二阶段为执行阶段;
7、 C55x的CPU包含4个40位的累加器,辅助寄存器ARn有16位,XARn有23位; 8、 XF位是寄存器ST1_55中的第13位,它是一通用的输出位,能用软件处理且可输出至DSP引脚。若要使该引脚输出高电平,可用指令BSET XF;
9、 CPL位是寄存器ST1_55中的第14位,指令BCLR CPL的功能是对CPL清零;
10、INTM位是寄存器ST1_55中的第11位,该位能够使能或禁止可屏蔽中断,如果INTM=0,C55x使能所有可屏蔽中断。
11、SATA位是寄存器ST3_55中的第5位,如果SATA=1,则执行A单元ALU的饱和模式;
,MPNMC=0如果,ROM该位使能或禁止片上位,6中的第ST3_55位是寄存器MPNMC、12. 则为微计算机模式,使能片上ROM;(8—12题在课本41页附近)
13、VC5509A拥有160K字的片内存储器资源,其中有128K字RAM和32K字ROM。外部扩展存储空间由CE[3:0]组成,其中CE0的首字地址为0020000H,CE1的首字地址为200000H;(51—52页)
14、C55x有32个中断向量,中断向量指针IVPD、IVPH应指向中断向量表的首地址; 15、IER0和IER1的功能是什么?
中断使能寄存器中断使能寄存器1。当寄存器某位的值为1时,开启:0;IER0:IER1该位所控制的中断,为0则关闭该位所控制的中断。 16、请写出允许定时器0中断的指令代码。 17、C55x的不可屏蔽中断有哪几种?
,硬件中断NMI,软件中断。 三种:硬件中断RESET
和间接寻址模式3种类型的寻址方式,分别是绝对寻址模式;直接寻址模式18、C55x支持 C55x有几种绝对寻址方式,分别是什么?19、什么是绝对寻址方式?K16通过在指令中指定一个常数地址完成寻址;有三种绝对寻址方式: 绝对寻址方式:
I/O绝对寻址方式。绝对寻址方式,K23绝对寻址方式, C55x有几种直接寻址方式,分别是什么?20、什么是直接寻址方式?直接直接寻址,SP 直接寻址方式:使用地址偏移量寻址;有四种直接寻址方式:DP
PDP直接寻址。寻址,寄存器位直接寻址, C55x有几种间接寻址方式,分别是什么?21、什么是间接寻址方式?间接AR间接寻址,间接寻址方式:使用指针完成寻址;有四种间接寻址方式:AR双
间接寻址,系数间接寻址。寻址,CDP,该指DPH=03h / k16绝对寻址方式。设22、指令 MOV *abs16(#2002h), T2 采用的是绝对 ;从032002H处读取数据装入T2令的功能是#k16=2002H,CPU,该指令的PDP=511PDP直接寻址方式。设port(@0), MOV T2 采用的是直接 / 23、指令 ;FF80H读取数据进T2功能是PDP:Poffset=FF80H,CPU从0 ,200)= 3400H、已知AC1=0200FC00H,AR3=0200H,(24AC1
MOV *AR3+ <<#16,
和AR3的值分别是多少?执行上面指令后,AC1位相当于十六进(二进制左移16位 指令功能是把AR3指向的地址里面的内容左移16
,指向的地址里面的内容左移后的内容送进AC10),把AR3制左移四位,所以在右边补四个 AC1=34000000H ,AR3=0201H。AC3自加一次。 所以 之后指针AC1=0034000000H AC1的内容,则AC0~AC3是40位,如果问说明:其实
,)= 3300H,TC2=1AC0=EC000000H,AC1=00000000H,AR1=0200H,(20025、已知AC1 TC2, ADDSUBCC *AR1, AC0,
和AC0的值分别是多少?执行上面指令后,AC1、AR1,–(*AR1)<<#16则指令功能是:如果TC2=1,AC1=AC0+(*AR1)<<#16;否则AC1=AC0,,AC1=EC000000H+33000000H=11F000000H这里TC2=1,所以AC1=AC0+(*AR1)<<#16 。AC0=EC000000HAR1=0200H, 011F000000H,AC1的内容是位,说明:其实AC0~AC3是40AC0的内容是00EC000000H ,未初始化段是;.bss段,初始化段是和.bss.text和.data、26、在.text.data 段;.usect指令可创建未初始化段,利用、利用27.sect指令可创建已初始化 的区别;.global.def28、请指出汇编语言文件中的伪指令、.ref和.ref、.def可以用伪指令.可以在另一个模块中引用的符号,是指在一个模块中定义 或.global来定义.
.def 在当前模块中定义,可在别的模块中使用; .ref在当前模块中使用,但在别的模块中定义;
.global全局符号变量。
29、DSP链接器命令文件中,MEMORY和SECTIONS伪指令的作用是什么?
MEMORY伪指令用来表示实际存在的目标系统中可被使用的存储器范围,每个存储器范围都有名字、起始地址和长度。
SECTIONS伪指令的作用是:描述输入段怎样被组合到输出段内;在可执行程序内定义输出段;规定在存储器内何处存放置输出段;允许重命名输出段。
30、CCS有两种工作模式,分别是软件仿真器模式和硬件在线编程模式; 31、在大存储模式下编译代码时,必须和rts55x.lib运行时间库链接;
32、给出函数int fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10)中传送参数所使用的寄存器;
分别为:AC0, AC1, AC2, AR0, AR1, AR2, AR3, AR4, T0, T1 即是longl1存放在AC0,……对应下去。
33、以下的汇编语句实现两个整型数的饱和加法,请编写C语言程序调用该汇编函数,实现整数20000和30000的饱和加法,并在CCS中输出和的值; .def _sadd_asmfun _sadd_asmfun: BSET ST3_SATA ADD T1, T0 BCLR ST3_SATA RET
#include stdio.h main() {
int c=0;
int sadd_asmfun(int a, int b); //声明函数 c = sadd_asmfun(20000, 30000); printf( c=%d,c); }
int sadd_asmfun(int a, int b) //定义函数 {
return _sadd_asmfun(a,b) }
34、TMS320VC5509A系统的晶体振荡器频率为12MHz,试通过设置DPLL,使系统的时钟频率为144MHz;
(1)使DPLL工作在锁定模式:D4(PLL ENABL)=1B(这里B表示二进制,不是11,下面 的也是,D4表示时钟模式寄存器(CLKMD)的第5位,D0为第1位,下面D11~D5意 思类似) (2)根据题意有
144MHz=[PLL MULT/(PLL DIV+1)]×12MHz (“/”表示除号) ,PLL MULT=12,PLL DIV=0,取PLL MULT/(PLL DIV+1)=12 解得. 即有: D6D5(PLL DIV)=00B,D11~D7(PLL MULT)=01100B
(3)时钟模式寄存器(CLKMD)的其他未均取为0。(时钟模式寄存器(CLKMD)共16位) 综合(1)、(2)、(3),得CLKMD=0000 0110 0001 0000 B或者CLKMD=0C10H