复习资料9.docx
- 文档编号:8239024
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:17
- 大小:81.06KB
复习资料9.docx
《复习资料9.docx》由会员分享,可在线阅读,更多相关《复习资料9.docx(17页珍藏版)》请在冰豆网上搜索。
复习资料9
第一章
1、一个典型的DSP系统应包括:
抗混频滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器:
x(n)y(n)
x(t)→→——→——→—→→y(t)
2、DSP系统的特点:
习题1.10(P17)
接口方便、编程方便、具有高速性、稳定性好、精度高、可重复性好、集成方便。
(P12)
习题:
1.12TM320VC5416-160的指令周期是多少毫秒?
它的运算速度是多少MIPS?
(P17)
解:
6.25×10-6ms=6.25ns;160MIPS(见P396)。
第二章
1、’C54x的内部结构:
中央处理器CPU、内部总线控制、特殊功能寄存器、数据存储器RAM、程序存储器ROM、I/O接口功能扩展、串行口、主机通信接口HPI、定时器、中断系统。
(P19)习题2.1(P71)
2、I/O功能扩展:
有两个通用I/O引脚(_______BIO和XF)。
-----BIO主要用来监测外部设备的工作状态;XF用来发送信号给外部设备。
(P20)
3、软件中断:
由程序指令(INTR、TRAP和RESET)所引起的中断。
(P20)
4、TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。
8组总线分为1组程序总线、3组数据总线和4组地址总线。
(P27)
●程序总线PB:
主要用来传送取自程序存储器的指令代码和立即操作数。
●数据总线CB、DB和EB:
CB和DB用来传送从数据存储器读出的数据;
◆EB用来传送写入存储器的数据。
●地址总线PAB、CAB、DAB和EAB:
主要用来提供执行指令所需的地址。
5、’C54x的中央处理器CPU:
(P28)习题2.2(P71)
CPU的基本组成如下:
①40位算术逻辑运算单元(ALU);
②2个40位的累加器(ACCA和ACCB);
③一个支持16~31位移位的桶形移位寄存器;
④乘法器-加法器单元(MAC);
⑤比较、选择、存储单元(CSSU);
⑥指数编码器;
⑦CPU状态和控制寄存器。
6、’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:
(P35)
⏹状态寄存器0(ST0)、状态寄存器1(ST1)、和处理器工作方式状态寄存器(PMST)
⏹状态寄存器0(ST0):
STO(Status0)主要反映处理器的寻址要求和计算机的中间运行状态。
⏹状态寄存器1(ST1):
ST1(Status1)主要反映处理器的寻址要求、设置计算的初始状态、I/O及中断的控制等。
7、处理器工作方式状态寄存器(PMST):
PMST(ProcessorModeStatus)主要设置和控制处理器的工作方式(和存储器的配置),反映处理器的工作状态。
8、’C54x共有192K字的存储空间,分成3个相互独立可选择(的存储)空间:
分别为(P39)
●64千字的程序存储空间:
用来存放要执行的指令和指令执行中所需要的系数表(数学用表);
’C5402共有20条地址线,可寻址1M字的外部程序存储器。
(P40)
●64千字的数据存储空间:
用来存放执行指令所使用的数据,包括需要处理的数据或数据处理的中间结果。
(P42)
●64千字的I/O空间:
用于对片外设备的访问。
可以使用输入指令PORER和输出指令PORTW对I/O空间寻址。
(P44)
9、’C54x的存储器结构与处理器工作方式状态寄存器(PMST)的设置有关,用户可以通过PMST中的3个控制位(MP/MC、OVLY和DROM)来配置存储器空间。
(P40)习题2.3(P71)另见(P40~P41)
10、’C5402的CPU寄存器共有27个,映射到数据存储空间的地址为0x0000H~0x001FH,主要用于程序的运算处理和寻访方式的选择及设定。
(P43)
11、片内外设寄存器映射在数据存储空间的20H~5FH,主要用来控制片内外设电路的状态,可作为外设电路的数据存储器。
(P43)
片内外设主要包括:
(P44)习题2.4(P71)
①通用I/O引脚
②定时器
③时钟发生器
④主机接口HPI
⑤串行通信接口
⑥软件可编程等待状态发生器
⑦可编程分区转换逻辑
11、定时中断的周期:
(P45)
CLKOUT×(TDDR+1)×(PRD+1)
时钟周期分频系数时间常数
12、主机接口HPI(HostPortInterface)是’C54x芯片具有的一种8位或16位的并行接口部件,主要用于DSP与其他总线或主处理机进行通信。
(P45)
13、McBSP是一个高速、全双工、多通道缓冲串行接口,可直接与其他’C54x、编码器以及系统中的其他串口器件通信。
具有多通道通信能力,可达128个通道。
(P47)
14、’C54x芯片的系统控制:
程序计数器(PC)、硬件堆栈、PC相关的硬件、外部复位信号、中断、状态寄存器、循环计数器(RC)等组成。
(P47)
15、流水线操作是指各条指令以机器周期为单位,相差一个时间周期而连续并行工作的情况。
操作原理:
将指令分成几个子操作,每个子操作由不同的操作阶段完成。
这样每隔一个机器周期,每个操作阶段可以进入一条新指令。
因此在同一个机器周期内,在不同的操作阶段可以处理多条指令,相当于并行执行了多条指令。
(P48)习题2.5(P71)
16、一条指令分为欲取指P、取指F、译码D、寻址A、读数R、执行X6个操作阶段。
(P49)
17、’C54x设有复位输入引脚——RS,如果加在这个引脚的上的电平发生变化时,程序将从指定的存储地址FF80H单元开始执行。
(P59)
18、’C54x最多可以支持16个用户可屏蔽中断(SINT15~SINT0)。
习题2.8(P71)
’C5402只使用14个可屏蔽中断。
(P61)(_______NMI中断响应时,所有其他中断将被禁止。
)
①_________INT0~_________INT3(外部中断);
②BRINT0、BXINT0、BRINT1和BXINT2(串行口中断);
③TINT0、TINT1(定时器中断);
④HPINT(PHI接口)
⑤DMAC4~DMAC5(DMA中断)
19、’C54x有4种省电方式,可以通过执行IDLE1、IDLE2和IDLE3三条指令,或者使外部___________HOLD为低电平,同时置位HM状态位(使CPU处于保持状态)来实现。
这些省电方式分别为闲置方式1、闲置方式2、闲置方式3和保持方式。
(P61)
20、’C54x片内有两个控制CPU等待状态的部件:
软件可编程等待状态发生器和可编程分区转换逻辑电路,这两个部件用来控制外部总线工作,分别受两个存储器映像寄存器——软件等待状态寄存器(SWWSR)可编程分区转换逻辑寄存器(BSCR)的控制。
(P64)
21、软件可编程等待状态发生器可以通过编程来延长总线的等待周期,最多可达到7~14个机器周期。
这样可以方便地使’C54x与慢速的片内存储器和I/O器件接口。
(P65)
第三章
前缀#表示其后的操作数为立即数。
前缀*表示其后的操作数为间接地址。
前缀@表示其后的操作数是采用直接寻址或绝对寻址的地址。
七种寻址方式及其特点:
(P95)
1、立即寻址,操作数在指令中,因而运行较慢,需要较多的存储空间,它用于对寄存器的初始化。
2、绝对寻址,可以寻址任一数据存储空器中的操作数,运行较慢,需要较多的存储空间,它用于对寻址速度要求不高的场合。
3、累加器寻址,把累加器内容作为地址指向程序存储器单元,它用于在程序存储器和数据存储器之间传送数据。
4、直接寻址,指令中包含数据存储器的低7位和DP或SP结合形成16位数据存储器地址,它寻址速度快,用于对寻址速度,用于对寻址速度要求高的场合。
5、间接寻址,利用辅助寄存器内容作为地址指针访问存储器,可寻址64千字*16位字数据存储空间中任何一个单元,它用于按固定步长寻址的场合。
6、堆栈寻址,用于中断或子程序调用时,将数据保存或从堆栈中弹出。
7、存储器映像寄存器(MMR)寻址,是基地址为零的直接寻址,寻址速度快,它用于直接用MMR名快速访问数据存储器的0页。
习题:
(P95)
3.1已知(30H)=50H,AR2=40H,AR3=60H,AR4=80H.
MVKD30H,*AR2
MVDD*AR2,*AR3
MVDM*AR3,AR4
运行以上程序后,(30H)、(40H)、*AR3和AR4的值分别等于多少呢?
解:
(30H)=50H、(40H)=50H、*AR3=50H、AR4=80H.
3.2已知(80H)=20H,(81H)=30H,
LD#0,DP
LD80H,16,B
ADD81H,B
运行以上程序后,B等于多少?
解:
B=200030.
3.3阅读一下程序,分别写出运行结果。
.bssx,4.bssx,4
.data.data
table:
.word4,8,16,32table:
.word4,8,16,32
……
STM#x,AR1STM#x,AR1
RPT2RPT2
MVPDtable,*AR1+MVPDtable,*+AR1
解:
4,8,16;8,16,32.
第四章
1、COFF目标文件都包含以下3种形式的段:
(P102)
.text段(文本段),通常包含可执行代码;
.data段(数据段),通常包含初始化数据;
.bss段(保留空间段),通常为未初始化变量保留存储空间。
2、连接器任务:
1、将一个或多个COFF目标文件中的各种段作为连接器的输入段,经连接后在一个执行的COFF输出模块中建立各个输出段了;2、位各个输出段选定存储器地址。
链接器有2条伪指令支持上述任务:
(P107)(cmd的主要内容):
●MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。
●SECTIONS伪指令——此命令告诉连接器如何将输入段组合成输出段(方式),以及将输出段放在存储器中的位置(也可用于指定子段)。
3、外部符号:
是指在一个模块中定义、又可以在另一个模块中引用的符号。
它可以用伪指令.def、.ref或.global来定义。
(P109)
.def在当前模块中定义,并可在别的模块中使用的符号;
.ref在当前模块中使用,但在别的模块中定义的符号;
.global可以是上面的任何一种情况。
3、连接器对命令文件名的大小写是敏感的。
空格和空行是没意义的,但可以用做定界符。
(P127)
4、
(1)MEMORY命令。
定义目标系统的存储器配置图,包括对存储器各部分命名,以及规定它们的起始地址和长度;(P131)
(2)SECTIONS命令。
告诉链接器如何将输入段组合成输出段,以及将输出段放在存储器中的什么位置。
(P131)
【例4.5.2】用MEMORY伪指令编写连接命令文件。
要求:
(P128)
程序存储器:
4K字ROM,起始地址为C00h,取名为ROM。
数据存储器:
32字RAM,起始地址为60h,取名为SCR。
512字RAM,起始地址为80h,取名为CHIP。
file1.objfiel2.obj/*两个输入文件*/
-oProg.out/*链接命令选项*/
MEMORY
{
PAGE0:
ROM:
org=C00h,len=1000h
PAGE1:
SCRATCH:
org=60h,len=20h
ONCHIP:
org=80h,len=200h
}
上述MEMORY命令所定义的系统的存储器配置如下:
PAGE0为程序存储器,4千字ROM,起始地址0C00H,取名ROM。
PAGEl为数据存储器,32字RAM,起始地址60H,取名SCRATCH。
PAGEl为数据存储器,512字RAM,起始地址80H,长度512字,取名ONCHIP。
句法:
(P129)
MEMORY
{
PAGE0:
name1[(attr)]:
orign=constant,length=constant;
PAGEl:
namen[(attr)]:
orign=constant,length=constant;
}
PAGE——对一个存储空间加以标记。
PAGE0程序存储器,PAGEl定为数据存储器。
Name——对一个存储区间取名。
Origin——存储区的起始地址。
键入Origin、Org或O都可
Length——规定存储区的长度。
键入Length、Len或L都可以
Attr——这是一个任选项,为命名区规定1~4个属性。
●如果没有利用MEMORY和SECTIONS命令,链接器就按默认算法来定位输出段。
(P131)
MEMORY和SECTIONS命令的默认使用:
MEMORY
{
PAGE0:
PROG:
origin=0x0080,length=0xFF00
PAGE1:
DATA:
origin=0x0080,length=0xFF80
}
SECTIONS
{
.text:
PAGE=0
.data:
PAGE=0
.cinit:
PAGE=0
.bss:
PAGE=1
}
【例4.5.4】链接命令文件example.cmd.(P133)参上例题
vectors.obj
example.obj
-oexample.out
-mexample.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0E000h,len=100h
VECS:
org=0FF80h,len=04h
PAGE1:
SPRAMorg=0060h,len=20h
DARAMorg=0080h,len=100h
}
SECTIONS
{
.text:
>EPROMPAGE0
.data:
>EPROMPAGE0
.bss:
>SPRAMPAGE1
STACK:
>DARAMPAGE1
.vectors:
>VECSPAGE0
}
本例中,程序存储器配置了一个空间VECS,,它的起始地址为0ff80h,长度为40h,并将复位向量段.vectors放在VECS空间。
这样一来,’C54x复位后,首先进入0ff80h,再从0ff80h复位向量处跳转到主程序。
在example.cmd文件中,有一条命令-estart,是软件仿真器的入口地址命令,为了在软件仿真时屏幕上从start语句标号处显示程序清单,且PC也指向start(0e000h)。
第五章
【例5.3.4】主要程序如下:
(P152)
.bssx,10;给x保留10个空间
.bssy,1;给y保留1个空间
STM#x,AR1;设置数据段的首地址
STM#9,AR2;设置循环计数值
LD#0,A;累加器清0
loop:
ADD*AR1+,A;累加运算,并修改地址
BANZloop,*AR2-;若计数值不为0,则循环,并计数值减1
;若计数值为0,则结束循环
STLA,@y;累加和存入y中
本例中用AR2作为循环计数器,设初值为9,共执行10次加法。
也就是说,应当用迭代次数减1后加载循环计数器。
【例5.4.3】计算y=(P153)程序:
.title“example.asm”
.mmregs
stack.usect“STACK”,10h;为堆栈指定空间
.bssa,4;为变量分配9个字的空间
.bssx,4
.bssy,1
.defstart
.data
table:
.word1,2,3,4
.word8,6,4,2
.text
start:
STM#0,SWWSR;插入0个等待状态
STM#STACK+10h,SP;设置堆栈指针
STM#a,AR1
RPT#7
MVPDtable,*AR1+
CALLSUM;调用乘累加子程序
end:
Bend
SUM:
STM#a,AR3;子程序执行
STM#x,AR4
RPTZA,#3
MAC*AR3+,*AR4+,A
STLA,@y;变量y1存放乘累加的值
RET
.end
结果为:
A=28H=40.
【例5.7.1】编制计算的程序段,其中数据均为小数。
(P164)
a1=0.3a2=0.2a3=-0.4a4=0.1
x1=0.6x2=0.5x3=-0.1x4=-0.2
.bssa,4
.bssx,4
.bssy,1
.data
table:
.word3*32768/10
.word2*32768/10
.word-4*32768/10
.word1*32768/10
.word6*32768/10
.word5*32768/10
.word-1*32768/10
.word-2*32768/10
.text
start:
SSBXFRCT
STM#x,AR1
RPT#7
MVPDtable,*AR1+
STM#x,AR2
STM#a,AR3
RPTZA,#3
MAC*AR2+,*AR3+,A
STHA,@y
done:
Bdone
结果y=Ox2666=0.3
课后题:
(P167)
5.5在堆栈操作中,PC当前地址位4020h,SP当前地址位0013h,运行PSHMAR7后,PC和SP的值分别是多少?
解:
PC=4020,SP=0012
5.7将定点数0.00125用浮点数表示。
解:
0.005×2-2
5.8试写出以下两条指令的运行结果:
EXPA
A=FFFD876624T=0000
则以上指令执行后,A、T的值各位多少?
解:
A=FFFD876624不变;T=0005H
NORMB
B=420D0D0D0DT=FFF9
则以上指令执行后,B、T的值各位多少?
解:
B=00841A1A1AT=FFF9不变
5.9阅读一下程序,写出运行结果。
.bssy,5
table:
.word1,2,3,4,5
STM#y,AR2
RPT#5
MVPDtable,*AR2+
LD#0,B
LD#81h,AR5
STM#0,A
STM#4,BRC
STM#y,AR5
RPTBsub-1
ADD*AR5,B,A
STLA,*AR5+
sub:
LD#0,B
运行以上程序后,(81H)、(82H)、(83H)、(84H)和(85H)的值分别是多少?
解:
(81H)=1;(82H)=2;(83H)=3;(84H)=4;(85H)=5
第七章
1、在SAM工作方式时,若HPI每5个CLKOUT周期传送一个字节(即64Mb/s),则主机的运行频率可达(fd×n)/5,其中fd为’C54x的CLKOUT频率;n为主机每进行一次外部寻址的周期数,通常n是3(或是4)。
例如:
’C54x的CLKOUT频率为40MHz,那么主机的机器频率可达32MHz(或24MHz),且不插入等待周期。
(P226~P227)(例如前面没划)
2、在HOST方式时,主机可以获得更高的速度——每50ns寻址一个字节(即160Mb/s),且与’C54x的时钟速度无关。
(P227)(没划)
3、定时器的定时时间为:
(P231)
定时周期=CLKOUT×(TDDR+1)×(PRD+1)
时钟周期定时分频系数周期数
(1)定时器的初始化:
关闭定时器,TCR中的TSS=1。
加载PRD,设定定时中断周期,中断一次输出端电平取一次反。
启动定时器,初始化TDDR,TSS=0,TRB=1。
(2)中断初始化:
中断允许寄存器IFR中的定时中断位TINT=1,清除未处理完的定时中断。
中断屏蔽寄存器IMR中的定时屏蔽位TINT=1,开放定时中断。
状态控制寄存器ST1中的中断标志位INTM=0,开放全部中断。
(3)程序:
周期为8ms的方波发生器,输出脉冲周期为8ms,定时中断周期为4ms,每中断一次输出端电平取一次反。
(注:
考4ms的方波)
程序清单:
(P233)
;abc1.asm
;定时器0寄存器地址
TIM0.set0024H
PRD0.set0025H
TCR0.set0026H
;K_TCR0:
设置定时器控制寄存器的内容
K_TCR0_SOFT.set0b;Soft=0
K_TCR0_FREE.set0b;Free=0
K_TCR0_PSC.set1001b;PSC=9H
K_TCR0_TRB.set1b;TRB=1
K_TCR0_TSS.set0b;TSS=0
K_TCR0_TDDR.set1001b;TDDR=9
K_TCR0.setK_TCR0_SOFT|K_TCR0_FREE|K_TCR0_PSC|K_TCR0_TRB|K_TCR0_TSS|K_TCR0_TDDR
;初始化定时器0
;根据定时长度计算公式:
Tt=T*(TDDR+1)*(PRD+1)
;给定TDDR=9,PRD=1599,CLKOUT主频f=4MHz,T=250ns
;Tt=250*(9+1)*(1599+1)=4,000,000(ns)=4(ms)
STM#1599,TIM0
STM#1599,PRD0
STM#K_TCR0,TCR0;启动定时器0中断
RET
;定时器0的中断服务子程序:
通过引脚XF给出周期为8ms的占空比为50%的方波波形
t0_flag.usect“vars”,1;当前XF输出电平标志位
;若t0_flag=1,则XF=1
;若t0_flag=0,则XF=0
time0_rev:
PSHMTRN
PSHMT
PSHMST0
PSHMST1
BITFt0_flag,#1
BCxf_out,NTC
SSBXXF
ST#0,t0_flag
Bnext
xf_out:
RSBXXF
ST#1,t0_flag
next:
POPMST1
POPMST0
POPMT
POPMTRN
RETE
6、’C54x的串行口形式包括:
标准同步串口SP、缓冲同步串口BSP、多路缓冲串口McBSP、
时分多路同步串口TMD四种。
(P240)习题7.5(P277)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习资料