第一章 绪论
1、简述DSP系统的构成和工作过程。
答:DSP系统的构成:
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSPD/A转换器和低通滤波器等。
DSP系统的工作过程:
①将输入信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
②经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n)
③数字信号处理器对x(n)进行处理,得数字信号y(n)
④经D/A转换器,将y(n)转换成模拟信号;
⑤经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)
9、简述DSP系统的设计步骤。
答:①明确设计任务,确定设计目标。
②算法模拟,确定性能指令。
③选择DSP芯片和外围芯片。
④设计实时的DSP芯片系统。
⑤硬件和软件调试。
⑥系统集成和测试。
第二章 TMS320C54x硬件结构
1 TMS320C54X芯片的基本结构都包括哪些部分?
答:①中央处理器
②内部总线结构
③特殊功能寄存器
④数据存储器RAM
⑤程序存储器ROM
I/O
⑦串行口
⑧主机接口HPI
⑨定时器
⑩中断系统
2TMS320C54X芯片的CPU主要由哪几部分组成?
答:①40位的算术运算逻辑单元(ALU)。
240位的累加器(ACCAACCB)。
1    个运行-1631位的桶形移位寄存器。
17×17位的乘法器和40位加法器构成的乘法器-加法器单元(MAC)。
⑤比较、选择、存储单元(CSSU)。
⑥指令编码器。
CPU状态和控制寄存器。
3TMS320VC5402共有多少可屏蔽中断?它们分别是什么?属于哪一类中断源?
答:TMS320VC540213个可屏蔽中断,属于外部硬件中断。
4、试分析下列程序的流水线冲突,画出流水线操作图。如何解决流水冲突?
STLM  AAR0
STM    #10AR1
LD      *AR1B
解:流水线图如下图:
1
2
3
4
5
6
7
8
9
预取指
取指
译码
寻址
读数
执行
STLM  A,AR0
AR1
预取指
取指
译码
寻址
读数
执行
STM #10,AR1
(1st Word)
AR2
AR2
预取指
取指
译码
寻址
读数
执行
STM #10,AR1
(2nd Word)
预取指
取指
译码
寻址
读数
执行
LD *AR1,B
AR2
解决流水线冲突:
最后一条指令(LD *AR1B)将会产生流水线冲突,在它前面加入一条NOP指令可以解决流水线冲突。
5、试根据等待周期表,确定下列程序段需要插入几个NOP指令。
LD  @GAIN,  T
STM #input,AR1
MPY *AR1+,A
解:本段程序不需要插入NOP指令
STLM B,AR2
STM #input ,AR3
MPY  *AR2+,*AR3+,A
解:本段程序需要在MPY  *AR2+,*AR3+,A语句前插入1NOP指令
MAC @x, B
STLM  B,ST0
ADD  @table, A, B
解:本段程序需要在ADD  @table, A, B语句前插入2NOP指令
第三章 TMS320C54x指令系统
1、已知(80H)=50H,AR2=84H,AR3=86H,AR4=88H
汇编指令有多少个
MVKD 80H*AR2
MVDD *AR2*AR3
MVDM 86H, AR4
运行以上程序后,(80H)、(84H)、*AR3AR4的值分别等于多少?
解:(80H)=50H(84H)=50H*AR3=50HAR4=50H
2、已知,(80H)=20H、(81H=30H
LD #0DP
LD 80H16B
ADD 81HB
运行以上程序,B等于多少?
答:(B=00 0000 0000H
3、阅读以下程序,分别写出运行结果。
.bss x,4
.data
table:.word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*AR1+
解:数据表table中的常量4传送到以变量x 的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+2 的地址为地址的存储单元中;
.bss  x,4
.data
table: .word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*+AR2
解:数据表table中的常量4传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+2 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+3 的地址为地址的存储单元中;
第四章 汇编语言程序的开发工具CCS集成开发环境
1、软件开发环境有哪几种?在非集成开发环境中,软件开发常采用哪些部分?
答:可以在两种开发环境中进行C54X的开发:非集成的开发环境和集成的开发环境。在非集成开发环境中,软件开发常采用:编辑、汇编、链接、调试等部分。
2、链接器对段是如何处理的?
答:链接器将一个或多个COFF目标文件中的各种段作为链接器的输入段,经过链接后在一个可执行的COFF输出模块中建立各个输出段,通过情况下是将不同目标文件中的同名段进行合并,并为各个输出段分配进具体的存储器中。
3、链接器能完成什么工作?链接器命令文件中,MEMORY命令和SECTIONS命令的任务是什么?
答:链接器将各个目标文件合并起来,并完成如下工作:
1)将各个段配置到目标系统的存储器。
2)对各个符号和段进行重新定位,并给它们指定一个最终的地址。
3)解决输入文件之间的未定义的外部引用。
MEMORY命令的作用:
MEMORY命令用来建立DSP应用系统中的存储器模型。通过这条命令,可以定义系统中所包含的各种形式的存储器,以及它们占用的地址范围。
SECTION命令的作用:
说明如何将输入段结合成输出段;在可执行程序中定义输出段;规定输出段在存储器中的存储位置;允许重新命名输出段。
第五章 TMS320C54x的汇编语言程序设计
1、伪指令和注释有什么差别?它们在程序中的作用一样吗?
答:伪指令用于为程序提供数据并指示汇编程序如何汇编程序,是汇编语言程序的一个重要内容。汇编伪指令主要完成以下工作:
1)将代码和数据汇编进指定的段
2)为未初始化的变量在存储器中保留空间
3)控制清单文件是否产生
4)初始化存储器
5)汇编条件代码块
6)定义全局变量
7)为汇编器指定可以获得宏的库
8)考察符号调试信号
注释是程序的任选项。注释可以由ASCII码和空格组成。注释在汇编源清单中要显示,但不能影响汇编。注释在程序中的作用是说明程序语句的含义,以便对软件进行维护。
2、在堆栈操作中,PC当前地址为4020HSP当前地址为1013H,运行PSHM AR7后,PCSP的值分别是多少?
解:SP=1012H PC=4021H
3、试编写0.25×(-0.1)的程序代码。
参考程序如下:
    .title "FracAmp.asm"
            .mmregs
            .global _c_int00
            .bss x,1
            .bss y,1
            .bss z,1
            .data
AmpCoef:    .word 25*32768/100
            .word -1*32768/10
            .text
_c_int00:    ssbx FRCT
            stm #x,ar1
            rpt #0x1
            mvpd #AmpCoef,*ar1+
            stm #x,ar2
            stm #y,ar3
            mpy *ar2,*ar3,A
            sth A,*ar1           
Wait:        b  Wait
            .end
4、将定点数0.00125用浮点数表示。
解:A=28HT=19H
8、试写出以下两条指令的运行结果:
EXP  A
A=FFFD876624  T=0000
则以上指令执行后,BT的值各是多少?
: A=0xFFFD876624T=5
NORM B
B=420D0D0D0D, T=FFF9
则以上指令执行后,BT的值各是多少?
:B=0x841A1A1A, T=FFF9
第六章 应用程序设计
1FIR滤波器的算法为y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲区和直接寻址方法实现。
解:参考教材P179—P181
2FIR低通滤波器的截止频率为,其输出方程为:
存放的系数表以及存放数据的循环缓冲区设置在DARAM中,如图6.1所示。试用MATLAB中的fir1函数确定各系数ai,用循环缓冲区实现。
解:运行Coef.m文件,生成滤波器所需系数文件。Coef.m文件内容如下:
n=79;
b=fir1(n,0.1);
fid=fopen('FIRCoef.inc','wt');
fprintf(fid,'%s    %s    %s\n','FIRCoef','        .sect','    "FIRCOEF"');
fprintf(fid,'  %s\n','');
for j=1:1:(n+1)
fprintf(fid,'      %s      %6.0f\n','.word',round(b(j)*16384));
end
fclose(fid)
用循环缓冲区实现的参考程序如下:
;FIR滤波器的参考程序,使用循环缓冲区法。
                .title "fir_main.asm"
                .mmregs
                .global _c_int00
               
K_FIR_BFFR        .set  80
K_FIR_INDEX  .set  1
K_FRAME_SIZE    .set  256
stack_len      .set  100
stack          .usect "STACK",stack_len
FIR_DP            .usect  "fir_vars",0
d_filin        .usect  "fir_vars",1
d_filout        .usect  "fir_vars",1
fir_coff_table    .usect  "fir_coff",K_FIR_BFFR
d_data_buffer    .usect  "fir_bfr",K_FIR_BFFR ; buffer size for the filter
FIR_Dinbuf      .usect  "fir_dinbuf",K_FRAME_SIZE
FIR_Doutbuf        .usect  "fir_doutbuf",K_FRAME_SIZE

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。