《DSP-C55x期末考试复习题12499.pdf》由会员分享,可在线阅读,更多相关《DSP-C55x期末考试复习题12499.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、DSP 技术期末考试课本复习题:1、简述数字信号处理器的主要特点;答:(1)存储器采用哈佛或者改进的哈佛结构;(2)内部采用了多级流水;(3)具有硬件乘法累加单元;(4)可以实现零开销循环;(5)采用了特殊的寻址方式;(6)高效的特殊指令;(7)具有丰富的片内外设。2、请给出数字信号处理器的运算速度指标;答:常见的运算速度指标有如下几种:(1)指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;指令周期通常以 ns(纳秒)为单位。例如,运行在200MHz 的 TMS320VC5510 的指令周期为 5ns。(2)MIPS:每秒百万条指令数。(3)MOPS:每秒百万次操作数。(4)MF
2、LOPS:每秒百万次浮点操作数。(5)BOPS:每秒十亿次操作数。(6)MAC 时间:一次乘法累加操作花费的时间。大部分 DSP 芯片可在一个指令周期内完成 MAC 操作;(7)FFT 执行时间:完成 N 点 FFT 所需的时间。FFT 运算是数字信号处理中的典型算法而且应用很广,因此该指标常用于衡量 DSP 芯片的运算能力。3、简述 C55x 的存储器配置情况;(课本 1112 页)C55x 采用统一的存储空间和 I/O 空间。C55x 的内存储空间共有352KB,外部存储空间共有 16MB。存储区支持的寄存器类型有异步SRAM、异步 EPROM、同步 DRAM 和同步突发 SRAM。C55
3、x 的 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
4、 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 位是寄
5、存器 ST1_55 中的第 14 位,指令 BCLR CPL 的功能是对CPL 清零;10、INTM 位是寄存器 ST1_55 中的第 11 位,该位能够使能或禁止可屏蔽中断,如果 INTM=0,C55x 使能所有可屏蔽中断。11、SATA 位是寄存器 ST3_55 中的第 5 位,如果 SATA=1,则执行 A 单元 ALU 的饱和模式;12、MPNMC 位是寄存器 ST3_55 中的第 6 位,该位使能或禁止片上 ROM,如果 MPNMC=0,则为微计算机模式,使能片上 ROM;(812 题在课本41 页附近)13、VC5509A 拥有 160K 字的片内存储器资源,其中有 128K 字
6、RAM 和32K 字 ROM。外部扩展存储空间由 CE3:0组成,其中 CE0 的首字地址为 0020000H,CE1 的首字地址为 200000H;(5152 页)14、C55x 有 32 个中断向量,中断向量指针 IVPD、IVPH 应指向中断向量表的首地址;15、IER0 和 IER1 的功能是什么 IER0:中断使能寄存器 0;IER1:中断使能寄存器 1。当寄存器某位的值为 1 时,开启该位所控制的中断,为 0 则关闭该位所控制的中断。16、请写出允许定时器 0 中断的指令代码。17、C55x 的不可屏蔽中断有哪几种 三种:硬件中断 RESET,硬件中断 NMI,软件中断。18、C5
7、5x 支持 3 种类型的寻址方式,分别是绝对寻址模式;直接寻址模式和间接寻址模式 19、什么是绝对寻址方式 C55x 有几种绝对寻址方式,分别是什么 绝对寻址方式:通过在指令中指定一个常数地址完成寻址;有三种绝对寻址方式:K16 绝对寻址方式,K23 绝对寻址方式,I/O 绝对寻址方式。20、什么是直接寻址方式 C55x 有几种直接寻址方式,分别是什么 直接寻址方式:使用地址偏移量寻址;有四种直接寻址方式:DP 直接寻址,SP 直接寻址,寄存器位直接寻址,PDP 直接寻址。21、什么是间接寻址方式 C55x 有几种间接寻址方式,分别是什么 间接寻址方式:使用指针完成寻址;有四种间接寻址方式:A
8、R间接寻址,双 AR 间接寻址,CDP 间接寻址,系数间接寻址。22、指令 MOV*abs16(#2002h),T2 采用的是绝对/k16 绝对寻址方式。设 DPH=03h,该指令的功能是#k16=2002H,CPU 从 032002H 处读取数据装入 T2;23、指令 MOV port(0),T2 采用的是直接/PDP 直接寻址方式。设 PDP=511,该指令的功能是 PDP:Poffset=FF80H,CPU 从 FF80H 读取数据进 T2;24、已知 AC1=0200FC00H,AR3=0200H,(200)=3400H,0 MOV*AR3+#16,AC1 执行上面指令后,AC1 和
9、AR3 的值分别是多少 指令功能是把 AR3 指向的地址里面的内容左移 16 位(二进制左移 16 位相当于十六进制左移四位,所以在右边补四个 0),把 AR3 指向的地址里面的内容左移后的内容送进 AC1,之后指针 AC3 自加一次。所以 AC1=H,AR3=0201H。说明:其实 AC0AC3 是 40 位,如果问 AC1 的内容,则 AC1=00H 25、已知 AC0=EC000000H,AC1=00000000H,AR1=0200H,(200)=3300H,TC2=1,ADDSUBCC *AR1,AC0,TC2,AC1 执行上面指令后,AC1、AR1 和 AC0 的值分别是多少 指 令
10、 功 能 是:如 果 TC2=1,则 AC1=AC0+(*AR1)#16;否 则AC1=AC0(*AR1)#16,这里 TC2=1,所以 AC1=AC0+(*AR1)#16,AC1=EC000000H+H=11F000000H,AR1=0200H,AC0=EC000000H。说明:其实 AC0AC3 是 40 位,AC0 的内容是 00EC000000H,AC1的内容是 011F000000H 26、在.text、.data 和.bss 段,初始化段是.text 和.data,未初始化段是;.bss 27、利用.sect 指令可创建已初始化段,利用.usect 指令可创建未初始化段;28、请指
11、出汇编语言文件中的伪指令.def、.ref 和.global 的区别;是指在一个模块中定义,可以在另一个模块中引用的符号.可以用伪指令.def、.ref 或.global 来定义.def 在当前模块中定义,可在别的模块中使用;.ref 在当前模块中使用,但在别的模块中定义;.global 全局符号变量。29、DSP 链接器命令文件中,MEMORY 和 SECTIONS 伪指令的作用是什么 MEMORY 伪指令用来表示实际存在的目标系统中可被使用的存储器范围,每个存储器范围都有名字、起始地址和长度。SECTIONS 伪指令的作用是:描述输入段怎样被组合到输出段内;在可执行程序内定义输出段;规定在
12、存储器内何处存放置输出段;允许重命名输出段。30、CCS 有两种工作模式,分别是软件仿真器模式和硬件在线编程模式;31、在大存储模式下编译代码时,必须和运行时间库链接;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 语言程序调用该汇编函数,实现整数 200
13、00 和 30000 的饱和加法,并在 CCS 中输出和的值;.def _sadd_asmfun _sadd_asmfun:BSET ST3_SATA ADD T1,T0 BCLR ST3_SATA RET#include main()int c=0;int sadd_asmfun(int a,int b);)1()1(PRDTDDRTINT输入时钟频率频率41iiixay22111*axaxyect fft_code _fft:aadd#(ARGS-Size+1),SP ;Adjust stack for local vars mov mmap(ST1_55),AR2 ;Save ST1,S
14、T3 mov mmap(ST3_55),AR3 mov AR2,mov AR3,btst#0,T1,TC1 ;Check SCALE flag set mov#0 x6340,mmap(ST1_55);Set CPL,XF,SATD,SXAM,FRCT(SCALE=1)mov#0 x1f22,mmap(ST3_55);Set:HINT,SATA,SMUL xcc do_scale,TC1 mov#0 x6300,mmap(ST1_55);Set CPL,XF,SATD,SXAM(SCALE=2)do_scale mov T2,;Save T2|mov#1,AC0 mov AC0,;Initia
15、lize L=1|sfts AC0,T0 ;T0=EXP mov AC0,;N=1EXP mov XAR1,XCDP ;CDP=pointer to U mov XSP,XAR4 add#,AR4 ;AR4=pointer to temp mov XAR0,XAR1 ;AR1 points to sample buffer mov T0,T1 mov XAR0,XAR5 ;Copy externd bits to XAR5 outer_loop ;for(L=1;L=EXP;L+)mov ,T0 ;note:Since the buffer is|mov#2,AC0 ;arranged in
16、re,im pairs sfts AC0,T0 ;the index to the buffer neg T0 ;is doubled|mov ,AC1 ;But the repeat coutners sftl AC1,T0 ;are not doubled mov AC0,T0 ;LE=21|sfts AC0,#-1 sub#1,AC0 ;Init mid_loop counter mov mmap(AC0L),BRC0 ;BRC0=LE1-1 sub#1,AC1 ;Init inner loop counter mov mmap(AC1L),BRC1 ;BRC1=(NL)-1 add A
17、R1,AR0 mov#0,T2 ;j=0|rptblocal mid_loop-1 ;for(j=0;jLE1;j+)mov T2,AR5 ;AR5=id=i+LE1 mov T2,AR3 add AR0,AR5 ;AR5=pointer to Xid.re add#1,AR5,AR2 ;AR2=pointer to Xid.im add AR1,AR3 ;AR3=pointer to Xi.re|rptblocal inner_loop-1 ;for(i=j;i#1,dual(*AR3);Scale Xi by 1/SCALE mov dbl(*AR3),AC2 scale add T0,A
18、R2|sub dual(*AR4),AC2,AC1 ;Xid.re=Xi.re/mov AC1,dbl(*(AR5+T0);Xid.im=Xi.im/|add dual(*AR4),AC2 ;Xi.re=Xi.re/SCALE+mov AC2,dbl(*(AR3+T0);Xi.im=Xi.im/SCALE+inner_loop ;End of inner loop amar*CDP+amar*CDP+;Update k for pointer to Uk|add#2,T2 ;Update j mid_loop ;End of mid-loop sub#1,T1 add#1,;Update L bcc outer_loop,T10 ;End of outer-loop mov ,AR2 ;Restore ST1,ST3,T2 mov ,AR3 mov AR2,mmap(ST1_55)mov AR3,mmap(ST3_55)mov ,T2 aadd#(Size-ARGS-1),SP ;Reset SP ret .end