DSP复习资料文档格式.docx
- 文档编号:20657453
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:12
- 大小:181.86KB
DSP复习资料文档格式.docx
《DSP复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《DSP复习资料文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
FFT执行时间,即运行一个FFT程序所需的时间;
MIPS,即每秒执行百万条指令;
MFLOPS,即每秒执行百万次浮点操作。
5、小题:
设DSP芯片的工作频率为100MHZ,一帧的时间为20ms,则该DSP芯片在一帧内所能提供的最大运算量为200万条指令。
书P11
第二章
1.ALU运算时,当C16=1时,可以分为两个16位ALU使用
2、累加器的保护位的作用防止迭代运算中产生的溢出
3、DSP的移位位数为-16~31,则桶形移位寄存器最多左移31位,右移16位;
4、在一些指令中,加上后缀“R”,表示该指令要将累加器的低16位进行舍入处理
5、简答:
流水线的原理:
将指令分为几个子操作,每个子操作由不同的单元完成。
这样,每隔一个时钟周期,每个单元就可以进入一条新指令。
因此,同一个时钟周期内,在不同的单元可以处理多条指令,相当于并行执行了多条指令。
TMS320C54x采用6级流水线。
6、片内ROM里面包含引导装载程序(Bootloader)
7、简答SARAM和DARAM的联系和区别
区别前者1个机器周期内只能被访问1次后者1个机器周期内能被访问2次,可同时进行读操作和写操作。
联系都可当数据存储器和程序存储器使用
第三章
1、数的定标是指定点DSP芯片处理小数时,由程序员来确定一“小数点”的位置。
2、在数的定标中,如果采用Q表示法,一个Q8定点数的十进制数表示范围为-215*2-Q—(215-1)*2-Q(此处写的不清楚,见书上P44)
3、OVM的中文名称是溢出保护模式位;
当OVM=1,表示设置溢出保护模式,用指令表示SSBXOVM;
OVM=0,表示设置溢出不保护模式;
用指令表示RSBXOVM;
SXM的中文名称是符号扩展模式位;
当SXM=1时,设置符号扩展模式,即高24位扩展为符号位。
用指令表示SSBXSXM;
当SXM=0时,设置符号不扩展模式,即高24位用0填充;
用指令表示RSBXSXM
4、DSP芯片的乘法运算,常需要用到舍入处理方法书上p47
方法是在低16位的最高位加1,然后将低16位清除,将高16位作为结果。
(将该数加0.5,之后再将小数部分去除,即舍入处理方法,也称上取整。
5书P62中间的例题给出一个32位的浮点数,求十进制等值数。
自己应该能看懂
第五章
1、数据类型:
常数类型:
const关键字确保变量或数组的值不会被改变
端口类型:
ioport是端口变量声明的关键字
Volatile类型:
使用volatile关键字可确保编译器不会对这些变量进行优化
可能出现的题型P108程序填空
例如,如果要在端口10h声明端口变量,并将a输出到该端口,再读取数据保存到b中,函数实现方法如下:
ioportunsignedintport10;
/*访问I/O端口10h的变量*/
intfunc()
{
port10=a;
/*写a到端口10h*/
...
b=port10;
/*读取端口10h的值到b*/
2、可能出现的题型P110程序填空
题目:
已知SWWSR的地址是0x0028,将DSP寄存器地址定义为volatile整形指针类型用合适的C代码定义并赋值为0X2000。
(1)SWWSR表示软件等待状态寄存器
(2)#defineSWWSR(volatileunsignedint*)0x0028
{*SWWSR=0X2000
}
(3)P108为什么要用volatile类型的数据?
对程序进行编译时,代码优化器会避免存储区访问而删除一些语句,为了保留这些语句,可以使用volatile关键字可确保编译器不会对这些变量进行优化。
3、P112申明一个函数是中断函数,要使用中断关键字interrupt(怎么考?
?
中断程序没有参数传递,即使说明,也将被忽略
4、小题pragma指令告诉编译器如何处理函数。
常用的pragma指令有
CODE_SECTION(symbol,“sectionname)语句含义:
可以为symbol指定专门的代码存储空间,而非.bss块
DATA_SECTION(symbol,”sectionname”)语句含义:
可以为symbol指定专门的数据存储空间,而非.data块
5、简答C语言程序代码优化有几种方法?
其中并行指令属于那种优化方法?
并举一例并行指令
算法优化编译优化函数优化属于编译优化ST||LD特点:
单字单周期
第六章
1、小题DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。
其中RAM又可以分为两种类型:
单寻址RAM(SARAM)和双寻址RAM(DARAM)。
2、小题片内ROM通过MP/MC设置
MP/MC=0:
表示片内ROM属于程序存储器的一部分。
MP/MC=1:
表示片内ROM不属于程序存储器的一部分。
3小题片内RAM通过OVLY设置
OVLY=0,表示片内RAM作为数据存储器使用;
OVLY=1,表示片内RAM既能当程序存储器用,又能当数据存储器用。
4、汇编语言实现计算
的程序(通过此题了
解.usect.bss.data.word.asg.set.text.end的使用)
.mmregs
stack.usect“STACK”,10h
.bssa,4
.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;
AR1指向a
RPT#7;
移动8个数据
MVPDtable,*AR1+;
从程序存储器到数据存储器
CALLSUM;
调用SUM子程序
end:
Bend
补充.asg.set伪指令的含义
前者将一个字符串赋值给一个替代符.asgAR1,counter;
表示用counter代替AR1
后者使符号等于一个数PERIOD.set4999表示PERIOD=4999
SUM:
STM#a,AR3;
子程序执行
STM#x,AR4
RPTZA,#3
MAC*AR3+,*AR4+,A
LD#y,DP
STLA,@y
RET
.end
5、编写链接命令文件按照实验报告上的写
MEMORY(要求大写)
PAGE0:
PRAM:
origin=0x1000,length=0xEFFF
PAGE1:
DARM:
origin=0x0300,length=0x0D00
}
SECTIONS(要求大写)
.text:
>
PRAMPAGE0
.bss:
DARMPAGE1
}
可能考的题型:
例题:
用MEMORY伪指令编写链接命令文件,要求:
程序存储器:
4K字ROM,起始地址为C00h,取名为ROM.
数据存储器:
32字RAM,起始地址为60h,取名为SCR.
512字RAM,起始地址为80h,取名为CHIP.
MEMORY
{
PAGE0:
ROM:
org=C00h,len=1000h
PAGE1:
SCR:
org=60h,len=20h
CHIP:
org=80h,len=200h
6定义(.def):
在当前模块中定义,在其他模块中引用
参考(.ref):
在当前模块中引用,在其他模块中定义
全局(.global):
包含上面两者
可能考的题型
下面对一些常用的伪指令说法正确的是:
(D)
A、.def所定义的符号,是在当前模块中使用,而在别的模块中定义的符号;
B、.ref所定义的符号,是当前模块中定义,并可在别的模块中使用的符号;
C、.sect命令定义的段是未初始化的段;
D、.usect命令定义的段是未初始化的段。
7、已知一数组名为indata,长度为30个字,试用两种方法给该数组分配空间。
.bssindata,30
indata.usect“indata”,30
第七章
1、指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。
(1)加法指令【例】ADD*AR3+,14,A表示(AR3)<
<
14+A->
A,AR3+1->
AR3
(2)乘法指令
【例】MPY13,A;
表示T*Smem→A,Smem所在的单元数据存储器地址为13(0Dh)
(3)采用间接寻址的乘加指令
MAC*AR5+,A;
A+(AR5)*T→A,AR5=AR5+1
2、在直接寻址中,指令代码包含了数据存储器地址的低7位。
当ST1中直接寻址编辑方式位CPL=0时,与DP相结合形成16位数据存储器地址;
当ST1中直接寻址编辑方式位CPL=1时,加上SP基地址形成数据存储器地址。
LD#y,dp作用确定当前所在的数据页
STLA,@y寻址方式为直接寻址特点:
指令代码包含了数据存储器地址的低7位
3寻址方式(主要考哪几个?
(1)汇编语言“mov*AR0,AC0”使用的寻址方式是间接寻址模式,“mov#0x3,DPH”使用的寻址方式是直接寻址模式,“mov*(#0x011234),T2”使用的寻址方式是绝对寻址模式。
(2)TMS320C55x有哪些寻址方式,试为每种寻址方式列举一条指令。
4、编程1、例:
对数组进行初始化,使x[5]={0,0,0,0,0,0}。
.mmregs
.bssx,5
.def_c_intoo
_c_intoo:
STM#x,AR1
LD#0,A
RPT#4
STLA,*AR1+
编程2、例x[5]={0,1,2,3,4,5}
.mmregs
.bssx,5
还可以用快重复操作指令RPTB做
Table:
.word0,1,2,3,4
.def_c_intoo
.text
MVPDtable,AR1+
编程3、控制流水灯亮灭
SSBXXF
CALLDelay
RSBXXF
B_c_intoo
Delay:
STM#999,AR1
LOOP1:
STM#4999,AR2
LOOP2:
BANZLOOP2,*AR2-
BANZLOOP1,*AR1-
.end
编程4、连加
.mmregs
.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中
第八章
1、从汇编程序调用C函数时,第一个参数必须放在累加器A中。
其他参数以逆序方式压入堆栈。
2、从C程序中访问汇编程序变量书p200例题8.1
从汇编程序中访问C程序变量书p201例题8.4
3、在C程序中直接嵌入汇编语句
asm(“汇编语句”);
4、问在合适的地方插入一个至几个NOP指令的作用?
书上P207例题
解决流水相冲突
第九章
1、不可屏蔽中断有复位中断、NMI和所有软件中断
可屏蔽中断可以用软件修改?
2、大题P238定时器
(1)代码初始化(六条指令)
定时控制寄存器(TCR)
初始化定时器:
(1)将TCR中的TSS位置1,停止定时器。
STM#0000000000010000B,TCR;
(2)加载PRD。
STM,PRD
(3)重新加载TCR以初始化TDDR。
STM,TCR;
中断初始化
(1)设置中断标志寄存器IFR中的TINT=1,清除已有的定时器中断;
STM#0008H,IFR
(2)设置中断屏蔽寄存器IMR中的TINT=1,使能定时器中断;
STM#0008,IMR
(3)设置INTM=0,使能全部中断RSBXINTM;
(2)计算T公式:
定时器的中断周期
3、子地址SPSA子数据SPSD写两个指令(怎么考?
SPSA.set38h
SPSD.set39h
第十一章
小题具有电平转换功能,为什么要电平转换?
DSP芯片内部电压和外设或外部存储器的电压值不匹配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)