DSP原理与应用-考试复习题-答案

  • 格式:doc
  • 大小:7.16 MB
  • 文档页数:8

DSP原理与应用-考试复习题-答案

第 2 页 共 8 页

第 3 页 共 8 页

第 4 页 共 8 页 常量数量相关

10.链接命令文件包括哪些主要内容?如何编写?

答:利用C54x的链接器lnk500.exe,

根据链接命令或链接命令文件(.cmd文件)对已汇编的一个或多个目标文件(.obj文件)进行链接,生成一个可以执行的目标文件(.out文件)以及在目标系统中德存储器配置文件(.map文件)。

常用得链接器命令为:

Lnk500 1%.cmd

11.DSP C语言有哪些特点?

(1)标识符和常数(2)数据转换(3)表达式(4)声明(5)预处理

12.DSP的硬件仿真器(Emulator)和软件仿真器(Simulator)有什么异同点?

答:软件仿真器:这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计

硬件仿真器:使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速,查看资源断点等。硬件仿真是开发过程中所必须的。

13.C28x DSP的串行通信接口有哪些特点?

答:数据是一位一位依次传输的,每位数据占一个固定的时间长度。适用于远距离通信。

14.异步串行通信的数据格式有哪些?如何设置?

答:异步串行采用的数据格式是一组不定“位数”数组组成。第1位成其实位,它的宽度位1位,低电平;接着传送一个字节(8位)的数据,以高电平位“1”,低电平位“0”;最后是停止位,宽度可以是1位,1.5位或2位,在两个数据之间可有空闲位。

15.如何设置异步串行通信的波特率?

答:异步串行通信的波特率是由串行口的初始化完成的。设置串行口数据长度位16位,是能串行口中断,对串行口进行极性控制。

16、TMS320X2812芯片具有哪些片上外设?

主要包括配置寄存器,输入寄存器,输出寄存器和状态寄存器

17、单片机、DSP、ARM以及FPGA器件有什么区别,在不同应用场合下如何选择。

FPGA和其它的不同之处在于, 它内部的门电路是未编程的,可以灵活的配置编程,而其它的内部的数字电路都已经固化定型。

单片机,ARM,DSP,内部都有处理器,通过软件和硬件设计可以用于某些特定环境。

有些ARM芯片内部含有DSP部件,可以完成DSP功能。

PLC用于工业环境,例如,车间,电梯,大型设备等。

FPGA内部是逻辑门电路,应用比较广泛。

18、通用目标文件格式COFF(Common Object File Format),是一种很流行的二进制可执行文件格式。二进制可执行文件包括哪些?平时烧写程序时使用的是以什么结尾的文件?

COFF目标文件的段可以分为两大类:已初始化段和未初始化段。

一般地,COFF目标文件包含3个缺省的段:

text段、data段、bss段。如下图所示为目标文件中的段与目标系统中存储器的关系。段的使用非常灵活,但常用以下约定:

.text — 此段存放程序代码。

.data — 此段存放初始化了的数据。

.bss — 此段存入未初始化的变量。

.sect '名称' — 定义一个有名段,放初始化了的数据或程序代码。

19、编译器处理段的过程是什么?

第 5 页 共 8 页 编译器是由词法分析器,语法分析器,语义分析器,中间代码生成,代码优化和目标代码生成。

编译程序的处理过程:

预处理---词法分析---文法分析---生成中间代码---生成目标代码

20、在CCS中构建一个完整的工程项目,需要添加哪几类文件,后缀名分别是什么?

一个完整的工程需要由库文件(.lib),头文件(.h),源文件(.c)和CMD文件组成,缺一不可

21、为保证TMS320X2812系统能正常工作,必须注意哪几点?

如何提高F2812 AD的转换精度

采用软件补偿,参考文档spra989a。

程序经常跑飞

程序没有结尾或不是循环的程序。

nmi管脚没有上拉。

在看门狗动作的时候程序会经常跑飞。

程序编制不当也会引起程序跑飞。

硬件系统有问题。

程序访问了非法的地址

22、TMS320X2812有三级中断,分别是什么?成功实现中断的必要步骤有哪些?

Tms320x2812的中断管理有三种;外设级中断管理,pie级中断管理,cpu级中断管理

一般中断都是外部触发的,中断产生后,CPU首先保存好当前的运行环境(CPSR, PC),然后跳转到中断向量表(0X18),在地址0X18处,你应该放置一条跳转指令,跳转到你的中断处理程序里面去.在中断处理程序里面,你执行你需要的工作,然后根据SPSR和LR的值,返回到中断的地方,继续程序的运行

23、#Pragma code_section 和 #Pragma data_section语句的作用分别是什么?

#pragma DATA_SECTION(函数名或全局变量名,"用户自定义在数据空间的段名");

#pragma CODE_SECTION(函数名或全局变量名,"用户自定义在程序空间的段名");不能在函数体内声明。 必须在定义和使用前声明 #pragma可以阻止对未调用的函数的优化

24、CMD文件的两大功能分别是什么,分别通过什么伪指令来实现相应的功能?

事件管理器的计数模式有哪些?

1、用户声明的整个系统里的存储器资源。2、用户如何分配这些存储器资源,即关于资源分配情况的声明。

MEMORY、SECTIONS两个伪指令的使用,MEMORY和SECTIONS的相关语句必须使用大写字符。MEMORY是用以配置目标存储器的,而SECTIONS是用以指定段的存放位置的

25、SPI模块主机的数据是如何发送和接收?

1.如果用主从机切换的方法的话,切换的时机不好掌握,比较方便的方法是主机定周期发送数据(也可以是空数据包),同时收取从机数据包,一般情况下都可以满足通信要求。 2.其实也不是,选用何种通信方式主要是取决于通信协议的要求,还有从设备的接口方式,合适的才是最好的。关于SPI通信从机送信好像还有一种办法,就是从机有送信要求时给主机一个信号,一般用一个端子电平变化,主机利用外部中断截获这个信号,然后驱动通信,应该也可以。

27、阅读以下系统控制模块初始化程序。

void InitSysCtrl(void)

{

SysCtrlRegs.WDCR= 0x0068;

SysCtrlRegs.PLLCR = 0xA;

for(i= 0; i< 5000; i++){}

SysCtrlRegs.HISPCP.all = 0x0001;

SysCtrlRegs.LOSPCP.all = 0x0002;

}

如果外部晶振是30MHz,请问系统时钟频率是多少?高速预定标时钟频率是多少?低速预定标时钟频率是多少?

第 6 页 共 8 页 28. 定时器0配置函数如下所示:

void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)

{

Uint32 temp;

Timer->CPUFreqInMHz = Freq;

Timer->PeriodInUSec = Period;

temp = (long) (Freq * Period);

Timer->RegsAddr->PRD.all = temp;

Timer->RegsAddr->TPR.all = 0;

Timer->RegsAddr->TPRH.all = 0;

Timer->RegsAddr->TCR.bit.TIF=1;

Timer->RegsAddr->TCR.bit.TSS = 1;

Timer->RegsAddr->TCR.bit.TRB = 1;

Timer->RegsAddr->TCR.bit.SOFT = 1;

Timer->RegsAddr->TCR.bit.FREE = 1;

Timer->RegsAddr->TCR.bit.TIE = 1;

Timer->InterruptCount = 0;

}

在主函数中调用这个子程序,程序为:

ConfigCpuTimer(&CpuTimer0, 150, 200000);

问定时器0每隔多长时间中断一次,请写出计算过程。

29. 事件管理器初始化程序如下:

void InitEva(void)

{

EvaRegs.T1PR = 4;

EvaRegs.T1CMPR = 3;

EvaRegs.T1CNT = 0x0000;

EvaRegs.T1CON.bit.FREE = 0;

EvaRegs.T1CON.bit.SOFT = 0;

EvaRegs.T1CON.bit.TMODE = 1;

EvaRegs.T1CON.bit.TPS = 0;

EvaRegs.T1CON.bit.TENABLE = 1;

EvaRegs.T1CON.bit.TCLKS10 = 0;

EvaRegs.T1CON.bit.TCLD10 = 0;

EvaRegs.T1CON.bit.TECMPR = 1;

}

请问定时器工作于什么计数模式,并用图形的方式画出定时器计数寄存器T1CNT值变化过程。

30. 寄存器SCICTL1高8位保留不用,低8位的各位定义情况如下图所示,请用位域定义方法为其编写寄存器结构体类型。(6分)

31. 下表所示为SCI模块各寄存器及其地址,试采用寄存器文件方式,为其定义结构体类型,假设寄存器文件名称为SCI_REGS。(6分)