DSP原理及应用 修订版邹彦 知识点总结Word文档格式.docx
- 文档编号:22198128
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:15
- 大小:34.15KB
DSP原理及应用 修订版邹彦 知识点总结Word文档格式.docx
《DSP原理及应用 修订版邹彦 知识点总结Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP原理及应用 修订版邹彦 知识点总结Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
●ADD*AR3+,14,A//将AR3左移4加上A→A。
●DSTB,*AR1-//B存到长字单元→AR1中,且AR减1。
●LDMAR1,A//存储器映像寄存器寻址方式,将映像寄存器加载累加器AR1→A的低位,其余位置0。
●LD#10H,4,A//将10H左移4位加载到累加器A中。
●LDMMMR,A//
●MAC*AR3+,*AR4+,A,B//AR3.AR44+A→B,AR3与AR3都加1。
●MVKDSAMPLE,*AR5//SAMPLE→AR5中。
●MVDD*AR3+,*AR5+//数据存储器内部传送数据AR3→AR5,且指令结束后AR3与AR5加1。
●MPYATEMP2//B<
=A.Temp2,T=Temp2。
●PPT#99
NOP//重复NOP100次。
●STLA,@quot//将累加器A的低16位字存放在quot的存储单元中。
●STLB,*AR3+//将累加器的低位移位后加载到AR3所指地址。
●WRITASMEM//将A的内容写入SMEM中。
●●●●●●●●
●LD#0032H,4,A//立即数0032H先左移4位后,再加载累加器A.
●STM#1000H,*AR2//立即数1000H存储到AR2指向的地址单元
●MAC#345,A,B//立即数345与T寄存器内值相乘后与累加器A值相加,结果加载累加器B.
●MVDD*AR3-,100H//AR3指向的地址单元的值传送给地址100H单元,AR3中地址减一。
●LDM*AR1,A//AR1指向的地址单元的值加载到累加器A.
简答:
■CPU响应中断有哪些条件?
中断处理一般过程是什么?
对于软件中断和非可屏蔽中断,CPU立即响应。
如果是可屏蔽中断,只有满足以下条件才能响应:
1优先权利最高;
2ST1中的INTM=0即允许可屏蔽中断;
3IMR中相位为1,允许可屏蔽中断。
中断流程:
1接受中断请求;
2响应中断;
3执行中断服务程序。
■简述链接器命令文件中的MEMORY和SECTIONS。
MEMORY命令用于描述系统实际的硬件资源,用来定义用户设计的系统中所包含的各种形式的存储器,以及他们占据的地址范围。
SECTIONS命令用于描述段如何定位到家当的硬件资源上。
将输出段定位到所定义的存储器中。
■简述TMS320C54x芯片的主要特点。
1CPU(中央处理单元)利用其专用的硬件逻辑和高度并行性提高芯片的处理性能。
2存储器具有192k字可寻址存储空间(包括64K字程序存储空间、64K字数据存储空间和64K字I/O空间)。
。
3高度专业化的指令集能够快速地实现算法冰用于高级语言编程优化。
4片内外设和专用电路采用模块化的结构设计,可以快速的推出新的系列产品。
5TMS320C54x执行单周期定点指令时间为25/20/15/12.5/10ns,每秒指令数位40/66/100MIPS。
6TMS320C54x电源由IDLE1、IDLE2、IDLE3功耗下降指令控制功能,以便DSP工作在节电模式下,使之更适合于手机。
7在片仿真接口,片上的JTAG接口符合IEEE1149.1边界扫描逻辑接口标准,可与主机连接,用于芯片的仿真和测试。
■简述TMS320C54x芯片存储器的分配方法。
TMS320C54x采用改进的哈佛结构。
存储空间由三个独立可选的存储空间组成:
64k字的程序存储空间、64k的数据存储空间、64k的I/O存储空间。
TMS320C54x的工作方式状态寄存器PMST提供了三个控制位:
MP/非MC、OVLY、DROM,用于在存储空间中配置片内存储器。
MP/非MC:
微处理器/微型计算机工作方式位。
OVLY:
RAM重叠位。
DROM:
数据ROM位。
■简述直接寻址及其两种方式:
直接寻址就是在指令中包含有数据存储器地址的低7位,用着7位作为偏移地址,并与基地址值组成一个16位的数据存储器地址。
直接寻址分为数据页指针直接寻址、堆栈指针直接寻址两种。
数据页指针直接寻址:
当状态寄存器ST1中的CPL位等于0时,ST0中的DP值与指令中的7位地址一起形成16位数据存储器地址;
堆栈指针直接寻址:
当ST1中的CPL位等于1时,将指令中的7位地址与16位堆栈指针SP相加,形成16位的数据存储器地址。
■简述位码倒寻址的主要用途及实现方法。
位码倒寻址的主要用于FFT算法中。
实现方法:
ARO存放的整数N是FFT点数的一半,一个辅助寄存器只想一个数据存放的物理单元,当使用位码倒寻址把ARO加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是通常的从右向左。
■堆栈寻址的作用是什么?
压栈和弹出堆栈是如何实现的?
系统堆栈用来在中断或调用子程序期间自动存放程序计数器,也能用来存放用户当前的程序环境或传递数据值。
处理器使用一个16位存储器映像寄存器的一个堆栈指针来寻址堆栈,SP始终指向存放在对战中的最后一个单元。
当调用一个子程序或一个中断响应发生时,PC会被自动压栈,堆栈指针SP指向存放最后一个数据的堆栈单元;
返回时,返回地址从堆栈中弹出并装入PC。
堆栈存放数据是从高地址向低地址进行的,压入堆栈时,先减小SP,再将数据压入堆栈;
弹出对战士,先从堆栈弹出数据,在增加SP值。
■简述TMS320C54x宏命令及其功能。
宏命令是源程序中具有独立功能的一段程序代码,它可以根据用户的需要,由用户创建自己的指令。
宏命令一经定义,便可在以后的程序中多次调用,从而可以简化和缩短源程序。
功能:
定义自己的宏,重新定义已存在的宏、简化长的或复杂的汇编代码、访问由归档器创建的宏库、处理一个宏中的字符串、控制展开列表。
使用过程:
宏定义,宏调用,宏展开。
■画出汇编程序的编辑、汇编和链接过程图,并说明各部分的作用?
3.答:
编辑:
程序代码的编写,生成.asm文件。
汇编:
利用TMS320C54x的汇编器对已经编好的一个或者多个源文件分别进行汇编,并生成.lst(列表)文件和.obj(目标)文件。
链接:
利用TMS320C54x的链接器LNK500,根据链接器命令文件(.cmd)对已经汇编过的一个或是多个目标文件(.obj)进行链接,生成.map文件和.out文件。
■简述流水线的6个独立阶段并介绍其功能。
1程序预取指:
将所要取指的地址放在程序地址总线上;
2取指:
从程序总线上取指令字,并装入指令寄存器;
3指令译码:
对IR中的内容译码,产生执行指令所需要的一系列控制信号;
4寻址:
数据地址产生单元在数据地址总线上输出读操作数的地址。
;
5读:
从数据总线和控制总线上读操作数;
6执行指令:
从数据总线上写数据。
■154■■■简述TMS320C54x芯片的中断系统。
中断系统是计算机发展史上的一个里程碑。
也是衡量微处理器性能好坏的一项主要指标。
中断系统既支持硬件中断,又支持软件中断。
无论是哪种中断都可以分为可屏蔽中断和非可屏蔽中断。
中断系统包括:
中断结构、中断流程、中断编程。
■简述串行通信,并描述TMS320C54x的三个串口。
串行通信是发送器将并行数据逐位移出成为串行数据流,接收器将串行数据流以一定的时序和一定的格式呈显在连接收/发器的数据线上。
三类串行口:
标准同步串行口(SPI):
有两个独立的缓冲器用于传送数据,接收缓冲器和发送缓冲器,每个缓冲器有一条可屏蔽的中断线。
串行数据可以按8位字或16位字转换。
缓冲串行口(BSP):
在标准同步串行口的基础上增加了一个自动缓冲单元,BSP是一种增强型标准串行口,它是全双工的,并有两个可设置大小的缓冲区。
时分多路串行口(TDM):
允许同一个串口以分时方式传送多路数据,TDM为多处理器通信提供了一种简单而有效的方式。
■■■■■■
■段的作用是什么?
COFF目标文件包含哪些段?
所谓段,是指连续地占有存储空间的一个代码块或数据块,是COFF文件中最重要的概念。
一个目标文件中的每一个段都是分开的和各不相同的。
所有的COFF目标文件都包含一下三种形式的段:
.text文本段.data数据段.bss保留空间段
■TMS320C54x有哪几种基本的寻址方式?
立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映像寄存器寻址、堆栈寻址。
■一个典型的DSP系统通常由哪些部分组成?
画出原理框图。
A/D、DSF、D/A。
1001010011
1001010111010100101
100100011101000010110
1001010111010100101
1000
■简述存储器映像寄存器寻址地址产生及其地址产生的两种方式。
存储器映像寄存器是用来修改存储器映像寄存器的,但不影响当前数据页指针DP或堆栈指针SP的值。
1在直接寻址方式下,不管当前DP或SP为何值,是数据寄存器地址的高9位强制置0,数据存储器地址的低7位则来自于指令字;
2在间接寻址方式,只使用当前辅助寄存器的低7位作为数据存储器地址的低7位,地址的高9位为0,指定的辅助寄存器的高9位在寻址后被强制置0。
■简述链接器的作用和功能。
链接器的作用就是根据链接命令或链接命令文件(.cmd),将一个或多个COFF目标文件链接起来,生成存储器映像文件(.map)和可执行文件的输出文件(.out)。
1将各个段配置到目标系统的存储器中;
2对各个符号和段进行重新定位,并给他们制定一个最终的地址;
3结局输入文件之间未定义的外部引用问题。
■HPI接口有几个寄存器?
他们的作用是什么?
1HPI存储器:
用于TMS320C54x与主机间传送数据。
地址从1000H到17FFH,空间容量为2K字。
2HPI地址寄存器:
由主机对其直接访问,存放当前寻址HPI存储单元的地址。
3HPI数据锁存器:
有主机对其直接访问,存放当前进行读/写的数据。
4HPI控制寄存器:
TMS320C54x和主机都能对其直接访问,用于主处理与DSP相互握手,实现相互中断请求。
5HPI控制逻辑:
用于处理HPI与主机之间的接口信号。
程序:
●设计一存储空间为100个单元的堆栈。
将栈底地址指针送SP,对其初始化。
Size.set100;
设置堆栈空间的大小为100
Stack.usect"
STK"
size;
设置堆栈段的首地址和堆栈空间
STM#stack+size,SP
●利用SUBC完成整除法,41H/7H=9H,余数是2H。
LD#0041H,B
STM#0100H,AR2
STM#0110H,AR3
ST#0007H,*AR2
RPT#15
SUBC*AR2,B
STLB,*AR3+
STHB,*AR3
●编写求解加、减法的程序,计算z=x+y-w。
.title"
ex41.asm"
.mmregs
STACK.usect“STACK”,10H
.bssx,1
.bssy,1
.bssw,1
.bssz,1
.defstart
.data
Table:
.word6,7,9
.text
Start:
STM#0,SWWSR
STM#STACK+10H,SP
STM#x,AR1
RPT#2
MVPDtable,*AR1+
LD@x,A
ADD@y,A
SUB@w,A;
后面减前面
STLA,@z
End:
Bend
.end
●假设目标存储器的配置如下:
程序存储器:
EPROME000h~FFFFH(片外)
数据存储器:
SPRAM0060H~007FH(片内);
DARAM0080H~017FH(片内)
要求编写链接命令文件ex421.cmd。
此命令用来链接ex421.obj和vector.obj两个目标文件(输入文件),并生成一个映像文件ex421.map,以及一个可执行的输出文件ex421.out。
标号"
start"
是程序的入口。
答案:
ex421.obj
vectors.obj
-oex421.out
-mex421.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0E000H,len=100H
vecs:
org=0FF80H,len=04H
vecs1:
org=0FFC8H,len=04H
PAGE1:
SPRAM:
org=0060H,len=20H
DARAM:
org=0080H,len=100H
}
SECTIONS
.text:
>
EPROMPAGE0
.bss:
SPRAMPAGE1
.data:
STACK:
DARAMPAGE1
.vectors:
vecsPAGE0
INT_2:
vecs1PAGE0
●阅读下列汇编源程序,在每条语句后写出注释,并叙述程序的功能。
cjy4.asm"
STACK.usect"
STACK"
10H
.bssa,4;
为a分配4个存储单元
.bssx,4;
为x分配4个存储单元
.bssy,1;
为结果y分配1个存储单元
.data;
定义数据代码段
table:
.word1*32768/10;
在table开始的8个
.word2*32768/10;
地址放数据
.word-3*32768/10
.word4*32768/10
.word8*32768/10
.word6*32768/10
.word-4*32768/10
.word-2*32768/10
.text;
定义可执行程序代码段
start:
SSBXFRCT;
设置FRCT位,表示进行小数乘
STM#x,AR1;
将x的首地址传给AR1
RPT#7;
重复8次下条指令
MVPDtable,*AR1+;
将程序空间8个数传给数据存储器
STM#x,AR2;
将数据存储器第一个数x1的地址传给AR2
STM#a,AR3;
将数据存储器第五个数a1的地址传给AR3
RPTZA,#3;
将A清零,重复4次下条指令
MAC*AR2+,*AR3+,A;
执行乘法累加和,结果放在A中
STHA,@y;
将A的高端字存入结果y,低端字省去
end:
Bend;
原处循环等待
●编写一段程序,将PM中的10个数据首先传送到DM中(以地址0016H开始),再将该数据传送到地址以0058H开始的DM中。
(PM:
程序存储器;
DM:
数据存储器)。
●编程实现小数乘法,要求将变量temp1装入累加器高16位与temp2相乘,结果存入temp3。
SSBXFRCT;
置FRCT标志位,准备小数乘法
LDtemp1,16,A;
将变量temp1装入累加器A的高16位
MPYAtemp2;
完成temp2与累加器A的高16位相乘,结果放入B累加器,并将temp2装入T寄存器
STHtemp3;
将乘积结果的高16位存入变量temp3
●将数组x[5]初始化为{1,2,3,4,5}。
(共10分)
.data;
定义初始化数据段起始地址
TBL:
.word1,2,3,4,5;
为标号地址TBL
开始的5个单元赋初值
.sect“.vectors”;
定义自定义段,并获得该段起始地址
BSTART;
无条件转移到标号为START的地址
.bssx,5;
为数组x分配5个存储单元
.text;
定义代码段起始地址
START:
STM#x,AR5;
将x的首地址存入AR5
RPT#4;
设置重复执行5次下条指令
MVPDTBL,*AR5+
●阅读下列汇编源程序,在每条语句后写出注释,并叙述程序的功能。
.title“cjy1.asm”;
为汇编源程序取名
.mmregs;
定义存储器映象寄存器
STACK.usect“STACK”,30H;
设置堆栈
.bssx,10;
为数组x分配10个存储单元
.bssy,10;
为数组y分配10个存储单元
.word1,2,3,4,5,6,7,8,9,10
.defstart;
定义标号start
STM#0,SWWSR;
复位SWWSR
STM#STACK+30H,SP;
初始化堆指针
STM#x,AR1;
将目的地首地址赋给AR1
RPT#19;
设定重复传送的次数为20次
MVPDtable,*AR1+;
程序存储器传送到数据存储器
STM#x,AR2;
将x的首地址存入AR2
STM#y,AR3;
将y的首地址存入AR3
设置重复执行20次下条指令
MVDD*AR2+,*AR3+;
将地址x开始的20个值复制到地址y开始的20个单元
程序功能:
将数据存储器中的数组x[10]复制到数组y[10]。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP原理及应用 修订版邹彦 知识点总结 DSP 原理 应用 修订版 知识点 总结