复习资料9.docx

上传人:b****5 文档编号:8239024 上传时间:2023-01-30 格式:DOCX 页数:17 大小:81.06KB
下载 相关 举报
复习资料9.docx_第1页
第1页 / 共17页
复习资料9.docx_第2页
第2页 / 共17页
复习资料9.docx_第3页
第3页 / 共17页
复习资料9.docx_第4页
第4页 / 共17页
复习资料9.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

复习资料9.docx

《复习资料9.docx》由会员分享,可在线阅读,更多相关《复习资料9.docx(17页珍藏版)》请在冰豆网上搜索。

复习资料9.docx

复习资料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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1