当前位置:首页 >> 理学 >>

湘南学院期末考试DSP试题整理


一、 填空(每空 1 分,共 30 分) 1. TI 公司的定点 DSP 产品主要有 TMS320C2000 系列、TMS320C5000 系列和 TMS320C6000 系列。 2. C54x DSP 中传送执行指令所需的地址需要用到 PAB 、CAB、DAB 和 EAB 4 条地址总线。

3. DSP 的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM) 。其中 RAM 又可以分为两 种类型:单寻址 RAM(SARAM)和双寻址 RAM(DARAM) 。 4. C54x DSP 的内部总存储空间为 192K 字,分成 3 个可选择的存储空间:64K 字的程序存储空间 、64K 字的数据存储空间和 64K 字的 I/O 空间 。 5. 从功能结构上,C54X DSP 的 CPU 可以划分成 运算部件 和 控制部件 两大部分。 6. C54x DSP 的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、 间接寻址 、 存储器映象寄存器寻址、堆栈寻址。 7. 在 C54x DSP 寻址和指令系统中,Xmem 和 Ymem 表示 16 位双寻址操作数 表示 数据存储器位双寻址操作数 , Pmad 为 16 位立即数,表示 、 顺序执行指令 、 ,Dmad 为 16 位立即数, 。

程序存储器地址

8. 程序计数器的值可以通过

复位操作

分支转移

,累加器转移,块重复,

子程序调用,从累加器调用子程序,中断等操作改变。 9. C54x DSP 芯片采用了 6 级流水线的工作方式,即一条指令分为 读数和执行 6 个阶段。 10. 解决 MMR 写操作的流水线冲突时,一般可用采用推荐指令和 插入空操作指令 的方法。 定时器周期寄存器 预取指 、取指、译码、 寻址 、

11. C54x DSP 定时器由 3 个 16 位存储器映射寄存器组成:定时器寄存器(TIM) 、 (PRD)和 12. 定时器控制寄存器(TCR) 。

主机接口(HPI,Host Port Interface) 是 TMS320C54x 系列定点芯片内部具有的一种接口部 件,主要用于 DSP 与其他总线或 CPU 进行通信。

13. C54x DSP 的指令系统有

助记符指令



代数指令

两种形式。

14. COFF 目标文件中.text 段通常包含 常为 未初始化的数据 保留空间。

可执行代码

,.data 段通常包含己初始化的数据,.bss 段中通

15. DSP 芯片的开发工具可以分为

代码生成工具



代码调试工具 专用型

两类。 两种。 AR2 后,PC= 4021h ,

16. DSP 芯片按照其用途分类,可以分为通用型和

17. 在堆栈操作中,PC 当前地址为 4020h,SP 当前地址为 0033h,运行 PSHM SP= 0032h 。 (PSHM AR2 为单字指令) SP 、 BSP

18. TMS320C54xDSP 芯片四种串行口类型是指

、McBSP 和 TDMcBSP。

第1 页(共 2 页)

19. 请简要说明 TMS320C5402VCDSP 以下引脚的功能: RS : 选通信号引脚 。 程序总线

复位引用脚



IOSTRB :

I//O

20. TMS320C54xDSP 的 内 部 总 线 主 要 包 括 线 。 数字信号处理器



数据总线

和 地址总

21. DSP 的狭义理解为

,广义理解为 7

数字信号处理方法



22. 在直接寻址中,指令代码包含了数据存储器地址的低 =0

位。当 ST1 中直接寻址编辑方式位 CPL 时, ST1 中直接寻址编辑方式位

时,与 DP 相结合形成 16 位数据存储器地址;当 CPL =1

加上 SP 基地址形成数据存储器地址。 23. TMS320C54 有两个通用引脚,BIO 和 XF, XF BIO 输入引脚可用于监视外部接口器件的状态;

输出引脚可以用于与外部接口器件的握手信号。 目的寄存器 , 它 的 作 用 是 存 放 从 ALU 或 乘 法 器 / 加 法 器 单 元

24. 累 加 器 又 叫 做

输出的数据。它的存放格式为 39~32 保护位 31~16 高阶位 15~0 低阶位

25. 桶形移位器的移位数有三中表达方式:

立即数 C16=0



ASM

; T低6位

26. DSP 可以处理双 16 位或双精度算术运算,当 运算方式。 27. 复位电路有三种方式,分别是 上电复位

为双精度运算方式,当 C16=1 为双 16 位

; #

手动复位



软件复位



28. 立即数寻址指令中在数字或符号常数前面加一个 29. 位倒序寻址方式中,AR0 中存放的是

号,来表示立即数。 。 段和 .bss 段。

FFT 点数的一半

30. 一般,COFF 目标文件中包含三个缺省的段: .text

段; .data

31. 汇编源程序中标号可选,若使用标号,则标号必须从 第一列 开始;程序中可以有注释,注释在第一 列开始时前面需标上 星号或分号 ,但在其它列开始的注释前面只能标 1M ; 16 AL 分号 。 。

32. C5402 有 23 条外部程序地址线,其程序空间可扩展到 33. 累加器 A 分为三个部分,分别为 AG 34. TMS320VC5402 型 DSP 的内部采用 35. TMS320VC5402 型 DSP 采用 36. TMS329VC5402 型 DSP 有 哈佛 8 8 ; AH 条

,内程序区在 第 0 页 。

位的多总线结构。

总线结构对程序存储器和数据存储器进行控制。 个辅助工作寄存器。 16K 字。

37. DSP 处理器 TMS320VC5402 中 DARAM 的容量是

第2 页(共 2 页)

38. TI 公司的 DSP 处理器 TMS320VC5402PGE100 有____2_______个定时器。 39. 在链接器命令文件中,PAGE 0 通常指__程序______存储空间,PAGE 1通常指___数据_____存储空 间。 40. C54x 的中断系统的中断源分为___硬件_ ___中断和____ 软件 ____中断。

41. TI 公司 DSP 处理器的软件开发环境是 CCS(Code Composer Studio)。 42. DSP 处理器 TMS320VC5402 外部有____20_______根地址线。 43. 直接寻址中从页指针的位置可以偏移寻址 128 个单元。

44. C54x 系列 DSP 处理器中,实现时钟频率倍频或分频的部件是_锁相环 PLL ____________。 45. TMS320C54x 系列 DSP 处理器上电复位后,程序从指定存储地址__ FF80h ______单元开始工作。 46. TMS320C54x 系列 DSP 处理器有__2___个通用 I/O 引脚,分别是___ BIO 和 XF ______。 47. DSP 处理器按数据格式分为两类,分别是__定点 DSP 和浮点 DSP。 48. TMS329VC5402 型 DSP 的 ST1 寄 存 器 中 , INTM 位 的 功 能 是 断 。 开放/关闭所有可屏蔽中

49. MS320C54X DSP 主机接口 HPI 是_____8___位并行口。 50. 在 C54X 系列中,按流水线工作方式,分支转移指令的分为哪两种类型:_无延迟分支转移______;__ 延迟分支转移_____。 51. C54x 的程序中, “.bss”段主要用于_____为变量保留存储空间___。 52. 从数据总线的宽度来说,TMS320VC5402PGE100 是____16___位的 DSP 处理器。 53. TMS320VC5402 型 DSP 处理器的内核供电电压_1.8v _______伏。 54. TMS320C5402 系列 DSP 处理器最大的数据存储空间为_64K ____字。 55. DSP 技术是利用专用或通用数字信号处理芯片,通过_数值运算 _运算的方法对信号进行处理。

56. C54x 的程序中, “.text”段是__文本段_______段,主要包含_____可执行文本__________。 57. C54x 系列 DSP 上电复位后的工作频率是由片外 3 个管脚 CLKMD1 来决定的。 58. DSP 处理器 TMS320C5402 最大的程序存储空间为_1M____字。 59. 从应用领域来说,MCU(单片机)主要用于_控制领域______________;DSP 处理器主要应用于____信 号处理_______________。 60. TMS320C54X DSP 提供一个用 16 位堆栈指针(SP)寻址的软件堆栈。当向堆栈中压入数据时,堆栈 是从 高 地址向 低 地址方向填入。 ;CLKMD2 ;CLKMD3

第3 页(共 2 页)

61. TMS320C54X DSP 软硬件复位时,复位中断向量的地址为程序空间的____ FF80H____。 62. TMS320C54X 可编程定时器的定时周期 =(时钟周期)*(分频系数 TDDR+1)*(_ PRD ___ +1) 。 63. DSP 处理器的英文全称 Digital Signal Processor 。

64. DSP 处理器 TMS320VC5402 的 IO 管脚供电电压___3.3v _____伏。 65. C54x 的 程 序 中 , .data ” 段 是 _ 数 据 段 ________ 段 , 主 要 用 于 _______ 通 常 包 含 初 始 化 数 据 “ ________。 66. DSP 处理器 TMS320C5402 的 I/O 空间为_64K _ 67. TMS320VC5402 型 DSP 的累加器是 40 __字。 位。 微计算机或是微处理器工作模式 寄存器作为专用硬件实现移位功能。 寻址方式。 直接寻址采用何种指 。

68. TMS329VC5402 型 DSP 的 MP/MC 管脚的功能是 69. TMS320VC5402 型 DSP 的 CPU 采用

桶形移位寄存器 直接寻址

70. 汇编语句“STL A,@y”中“@y”表示

71. TMS320VC5402 型 DSP 的 ST1 寄 存 器 中 , CPL 位 的 功 能 是 指 示 针 。

72. 解释汇编语句“READA *AR1”的功能:

以累加器 A 的内容作为地址读取程序存储单元,将读取的 。

数据存入以 AR1 的内容作为地址的数据存储单元中

73. TMS320C54X 具有两个通用 I/O 口,_ BIO _______用于输入外设的状态;__ XF ______用于输出外设 的控制信号。 74. 在 C 语言和 C55x 汇编语言的混合程序设计中,C 函数的参数和返回值传递到 C55x 的寄存器中。在函 数“long func(int *p1, int i2, int i3, int i4)”中,*p1 传递到 到 T0 寄存器,i4 传递到 AR1 寄存器,返回值由 间接寻址模式 AC0 AR0 寄存器,i2 传递

寄存器传递。

75. 汇编语言“mov *AR0,AC0”使用的寻址方式是 式是 直接寻址模式

, “mov #0x3,DPH”使用的寻址方 绝对寻址模式 。

, “mov *(#0x011234),T2”使用的寻址方式是

76. 指令执行前 AC0 的值是 0012345678,那么汇编语句“AND 0000000078 。

#0x7f, AC0” ,执行之后,AC0 的值是

77. C55x 的链接器命令文件中,SECTIONS 命令的主要作用是 告诉链接器如何将输入段组合成输出段, 以及在存储器何处存放输出 。MEMORY 命令的主要作用是 定义目标系统的存储器配置图,包括对存 储器各部分的命名,以及规定它们的起始地址和长度 。 78. 指令 ADD *AR3+, T0, T1 ; 79. 设执行前 (AR3)=0302H 该指令执行后 (T0)=3300H (T1)=0 CARRY=0 数据存储器(0302H)=EF00H,求

第4 页(共 2 页)

(AR3)=_________ (0302H)=_______

(T0)= _________

(T1)= _________ CARRY=_________

80. 已知 AC1=0200FC00H,AR3=0200H,(200H)=3400H. MOV *AR3+<<#16,AC1 执行上面指令后,(AC1)=_________ (AR3)=_________

81. 根据任务调度的方式不同,C55X 处理器程序可以分为两大类: 一类是______________________________________________________ 另一类是______________________________________________________ 82. Texas instrument 公司的 DSP 集成开发环境_________是一个在 Windows 操作系统下,为开发 TMS320 系列 DSP 而设计的集成开发环境。 83. TMS320C54X DSP 共有 种基本数。 缓冲区法,二是采用

84. DSP 实现 FIR 滤波器延时一个采样周期的方法有两种,一是采用 缓冲器法。 85. DSP 技术是利用专用或通用数字信号处理器芯片,通过

的方法对信号进行处理。 +1) 。 用于输出

86. TMS320C54X DSP 可编程定时器的定时周期=(时钟周期)×(定标器+1)×( 87. TMS320C54X DSP 具有两个通用 I/O 口, 外设的控制信号。 88. DSP 的基本结构是采用____________结构,即程序和数据是分开的。 用于输入外设的状态;

89. LF2407 DSP 器 件 有 两 个 复 位 源 一 个 是 外 部 复 位 引 脚 的 电 平 变 化 引 起 的 复 位 , 另 一 个 是 ____________________溢出引起的复位。 90. DSP 芯 片 的 前 缀 “ LF ” 说 明 片 内 有 ___________ 存 储 器 ; 而 以 “ LC ” 为 前 缀 的 芯 片 , 片 内 有 ____________工艺的程序存储器。 91. 寄存器 ST1 的 CNF 位决定 B0 的作用,当 CNF=________时,映射到程序存储空间,CNF=__________时 映射到数据存储空间。 92. 当工作于______________计数模式时,通用定时器会产生一个非对称波形。 93. 若系统时钟频率为 40MHz,SCI 的 BRR 值设置为 4,则 SCI 的异步波特率为_________。 94. WD 复位关键字寄存器(WDKEY),向 WDKEY 写入 55h 后紧接着写入_________则清楚 WDCNTR 寄存器。 95. 未初始化段为没有初始化的数据存储空间,包括__________段以及由汇编器伪指令.sect 产生的命名 段。 96. 同 传 统 的 单 片 机 中 断 处 理 方 式 类 似 , DSP 中 断 的 处 理 也 有 两 种 方 法 , 分 别 是 __________ 和 ____________。

第5 页(共 2 页)

97. DSP 对外部存储器和外部功能器件的片选方法有两种:___________和____________。

二、 选择题 1、对于 TMS320C54x 系列 DSP 芯片,下列说法正确的是 ( (A) 专用型 DSP (B)32 位 DSP C ) (D) 浮点型 DSP ) (C) 定点型 DSP

2、要使 DSP 能够响应某个可屏蔽中断,下面的说法正确的是 (B

A. 需要把状态寄存器 ST1 的 INTM 位置 1,且中断屏蔽寄存器 IMR 相应位置 0 B. 需要把状态寄存器 ST1 的 INTM 位置 1,且中断屏蔽寄存器 IMR 相应位置 1 C. 需要把状态寄存器 ST1 的 INTM 位置 0,且中断屏蔽寄存器 IMR 相应位置 0 D. 需要把状态寄存器 ST1 的 INTM 位置 0,且中断屏蔽寄存器 IMR 相应位置 1 3、若链接器命令文件的 MEMORY 部分如下所示: MEMORY { PAGE 0: PAGE 1: } 则下面说法不正确的是(A) A、 程序存储器配置为 4K 字大小 C、 数据存储器配置为 512 字大小 (A) 4 (B) 6 (C) 8 4、C54X DSP 的流水线是由( B B、程序存储器配置为 8K 字大小 D、数据存储器取名为 DATA (D) 10 ) )级(也即是由多少个操作阶段)组成。 PROG: DATA: origin=C00h, origin=80h, length=1000h length=200h

5、假定 AR3 中当前值为 200h,AR0 中的值为 20h,下面说法正确的是( A、在执行指令*AR3+0B 后,AR3 的值是 200h; B、在执行指令*AR3-0B 后,AR3 的值为 23Fh; C、在执行指令*AR3-0B 后,AR3 的值是 180h; 6、下面对一些常用的伪指令说法正确的是: D ( )

A、.def 所定义的符号,是在当前模块中使用,而在别的模块中定义的符号; B、.ref 所定义的符号,是当前模块中定义,并可在别的模块中使用的符号; C、.sect 命令定义的段是未初始化的段; D、.usect 命令定义的段是未初始化的段。 7、在采用双操作数的间接寻址方式时,要使用到一些辅助寄存器,在此种寻址方式下,下面的那些辅助 寄存器如果使用到了是非法的( A、AR2 B、AR4 D ) C、AR5 D、AR6 ( C、Zilog D、ADI ( ) )

8、目前市场上最大的 DSP 生产厂商是 A、Motorola B、TI

9、TMS320C6000 系列的主要应用领域为 A、测控领域 C、有线通信设备 B、无线通信设备 D、无线基站

10、溢出方式标志位 OVM=0 且运算溢出,若为正溢出,则 ACC 中的值为( A、7FFF FFFFh C、FFFF FFFFh B、8000 0000h D、正常溢出 ( )



11、看门狗定时器时钟频率是 CPU 时钟频率的 第6 页(共 2 页)

A、1/128 倍

B、1/256 倍

C、1/512 倍

D、1/1024 倍

12 、 事 件 管 理 器 中 通 用 定 时 器 的 输 入 外 部 时 钟 TCLKINA/B , 最 高 频 率 是 CPU 时 钟 频 率 的 ( ) A、1/4 B、1/8 C、1/16 D、1/24 ( D、确定方案 )接口相连。 D、USB 接口 ( C、.bss D、.prj ( D、FLASH ( C、10%-3=-1 D、-10%3=-1 。 ) ) ) )

13、DSP 系统开发的硬件实现中,元件选择属于 A、系统分析 B、系统综合 C、技术指标

14、仿真系统中,主机通过仿真器与目标系统的( A、JTAG B、PCI C、并口

15、下列段不属于 COFF 目标文件的是 A、.text B、.data

16、目标文件的.bss 段对应的虚拟的目标存储器是 A、RAM B、EEPROM C、ROM

17、下列表达式中不正确的是 A、10/-3=-3 B、-10/3=-3

18、TMS320C54X DSP 软硬件复位时,中断向量为 A. FF00H A. 32 A. 8、16 A. 128 A. INTR A. 6 A. 16 A. CPU 三、 判断题 B. FF80H C. 0080H B.16 C. 8 D. 2 条 D. 0000H 位并行口。 19、TMS320C54X DSP 主机接口 HPI 是

20、TMS320C54X DSP 采用改进的哈弗结构,围绕 B. 16、8 B. 64 B. NMI B. 5 B. 8 B. DSP C. 8、8 D. 16、16

位总线建立。 路。

21、TMS320C54X DSP 多通道缓冲串口(MCBSY)发送和接收通道数最多可达 C. 32 C. RS C. 4 C. 4 C. MCS D. 16 级别最高。 D. INTO 大类。 D. 3 个器件进行时分串行通信。 D. 2 。 D. MCU 22、TMS320C54X DSP 的 32 个中断源分为 14 级,其中 23、TMS320C54X DSP 共有 129 条指令,分为 24、TMS320C54X DSP 最多可与 25、可编程数字信号处理器简称

1、TMS320C54X DSP 缓冲串行接口是在同步串口基础上,增加了一个自动缓冲单元,主要提供灵活的数据 串长度,并降低服务中断的开销。 ( ) ) ) ) ) 2、循环缓冲区是一个滑动窗,包含最近的数据,若有新的数据到来,它将覆盖旧的数据。 ( 3、浮点 DSP 与定点 DSP 相比,价格便宜,功耗较小,运算精度稍低。 ( 4、 TMS320C54X DSP 的 40 位 ALU 和累加器仅支持 16 位算数运算。 ( 5、TMS320C54X DSP 功耗低,大运算量,主要用于便携式信息处理终端产品。 ( ( ) ( )

6、根据芯片工作的数据格式,按其精度或动态范围,可将通用 DSP 划分为定点 DSP 和浮点 DSP 两类 7、数值范围与精度是一对矛盾,一个变量要想能够表示比较小的数值范围,必须以牺牲精度为代价;而 想提高精度,则数的表示范围就相应地增大

第7 页(共 2 页)

8、C55xDSP 的存储空间包括:统一的数据、程序和 I/O 空间(

) ) )

9、当 CPU 从程序空间读取程序代码时,使用 23 位地址,当访问数据空间时,使用 24 位的地址 ( 10、C55x DSP 采用字寻址来读/写数据空间的 8 位、16 位或 32 位数据( 决于 LSW 的地址( ) )

11、当 CPU 存取长字时,存取地址是指 32 位数据的低 16 位(LSW)的地址,而高 16 位(MSW)的地址取 12、TMS320C55x 的寻址空间为 16MB,在访问程序空间时,将 23 位地址左移一位,并将地址总线上的最低 有效位(LSB)置 0,使得在对数据空间或程序空间寻址时,地址总线都传送 24 位地址( 13、C55X DSP 支持的间接寻址模式只有 AR 间接寻址和双 AR 间接寻址( char 类型的长度是 8 位( ) ) ) )

14、C55x DSP 的 C 语言开发支持的数据类型包括:char,signed char,int,unsigned int,float 等,其中 15、用 C 语言进行 C55x DSP 开发时,指针分为程序指针和数据指针两种,其区别在于程序指针寻址是按 字寻址,而数据指针以字节为单位进行寻址( 编译器而直接通过汇编器生成目标文件( 声明( ) ) ) 16、C55x DSP 的 C 编译器把 C/C++代码转换成汇编源代码,如果用户只用汇编语言编写程序,则将跳过 C 17、ioport 类型只能用来声明全局或静态变量,如果在本地变量中使用 ioport 类型,则变量必须用指针 18、ioport int * ptr_to_ioport; 这里定义了一个指向 IO 空间的数据空间指针,即该指针在数据空间 定义,但指向 IO 空间( 19、int * ioport ioport_pointer;这里定义了一个指向数据空间的 IOPORT 类型的指针,即该指针在数 据空间定义,但指向 IO 空间( ( ) ( ( ( ( ) ) ) ) 20、通用目标文件格式中的段可以分成两大类——初始化段和未初始化段,其中.bss 段属于初始化段 21、DSP 处理器 TMS320VC5402 的供电电压为 5V。 22、DSP 的工作频率只能是外部晶体振荡器的 频率。 23、TMS320C54X DSP 是浮点型处理器。 24、TMS320C54X DSP 的汇编语言中有除法指令。 及中断向量表。 26、DSP 的流水线冲突产生的原因是由于 DSP 运行速度还不够快。 27、TMS320C54X 系列 DSP 外部程序存储器的分页扩展受 DROM 位控制。 2 8 、T M S 3 2 0 C 5 4 X D S P 是浮点 型 处理 器。 2 9、 D S P 的工作频 率只 能 是外部 晶体 振荡器 的频 率。 3 0 、 TM S3 20 C5 4 X DSP 的 汇编 语 言 中 有 除 法 指 令 。 31、汇编伪指令可以用大写表示。 3 2、D S P 的流水线 冲突 产生 的原因 是由于 DSP 运行 速 度还不 够快 。 33、 TMS320VC5402 型 DSP 汇编指令 READA 的寻址范围为 64K 字。 3 5 、 T M S 32 0 V C5 4 02 型 D SP 汇 编 指 令 R E A DA 的 寻 址 范 围 为 6 4 K 字 。 ( 3 7 、T MS320 VC54 02 型 D S P 汇 编 语 言的 伪 指 令也 是 一种 指 令 , 同样 占 用 存储 空 间。 3 8 、T M S 3 2 0 V C 540 2 型 D S P 的 工作 频率 是 由外 部晶 振唯 一 确定 的。 3 9 、D SP 处 理 器 T MS 32 0V C5 40 2 的 中 断 向 量 表 位 置 是固 定 的 。 ( ( ( ( ( ) ) ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) )

25、TMS320VC5402 型 DSP 内部有 8K 字的 ROM,用于存放自举引导程序、u 律和 A 律扩展表、sin 函数表以

34、TMS320VC5402 型 DSP 可以通过设置 DROM 位实现数据存储空间和程序存储空间共享片内 DARAM。 36、TMS320C54X 系列 DSP 可以通过设置 OVLY 位实现数据存储空间和程序存储空间共享片内 ROM。

40、 TMS320VC5402 型 DSP 可以通过设置 DROM 位实现数据存储空间和程序存储空间的共享片内 DARAM。

第8 页(共 2 页)

( ( 42、TMS320VC5402 型 DSP 汇编语言的伪指令也是一种指令,同样占用存储空间。 43、DSP 处理器 TMS320VC5402 内部含有 SARAM 存储器。 44、3.3V 的 TTL 电平器件可以直接驱动 5V 的 CMOS 器件。 45、DSP 的流水线冲突产生的原因是由于 DSP 运行速度还不够快。 46、C54X 系列 DSP 处理器的累加器 A,B 是 32 位的。 4 7 、 D S P 处 理 器 T MS 3 20 V C5 4 02 有 不 止 一 种 串 行 口 。 始执行。 ( ) ( ( ) ) ( ( ( ( ( (

) ) ) ) ) ) ) )

41、TMS320C54X 系列 DSP 可以通过设置 OVLY 位实现数据存储空间和程序存储空间的共享片内 ROM。

48、DSP 处理器 TMS320VC5402 在微型计算机工作模式时,上电复位后程序从片外存储器的 FF80h 单元开 49、DSP 处理器 TMS320VC5402 的中断向量表位置是固定的。 50、DSP 处理器 TMS320VC5402 的程序存储空间只有 64K 字。 ( 始。 53、DSP 处理器的中断请求可以由软件产生。 54、哈佛结构的特点是数据总线和程序总线分开。 程器件,用硬件实现数据处理。 56、在 C54x 系列 DSP 中断向量表中,每个中断向量的入口地址间隔 4 个字。 57、 在 C54x 系列 DSP 中断向量表的最大长度只能 128 字。 的。 ( ) ( 60、单片机通过 HPI 接口可以访问 TMS320VC5402 的全部 64K 字数据存储空间。 61、在 DSP 处理器汇编程序中,标号区分大小写。 62、 DSP 处理器 TMS320VC5402 的堆栈是向低地址方向生长的。 63、 DSP 处理器 TMS320VC5402 的中断向量表位置是固定的。 ( 向程序空间的 0FF80H 位置。 程器件,用硬件实现数据处理。 6 7 、 在 D SP 处 理 器 汇 编 程 序 中 , 标 号 区 分 大 小 写 。 68、DSP 处理器 TMS320VC5402 的软件中断是不可屏蔽的中断。 6 9 、 链 接器 命 令 文件 是 用来 规 定 程 序段 的 存放 位 置的。 70、DSP 处理器 TMS320VC5402 的堆栈是向低地址方向生长的。 71、C54x 系列 DSP 只有两个通用的 I/O 引脚。 72、 在 C54x 系列 DSP 的寻址方式中,使用 DP 作为直接寻址的偏移寻址范围只有 128 个字。 ( 7 3、D S P 的流水线冲突可以通过改变编程方法或者添加 nop 语句来消除。 ( ( ( ( ( ( ( ) ( ) ) ( ( ) )

51 、MEMORY 伪指令用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置。 )52、TMS320C54X DSP 汇编语言源程序中,标号是可选项,若使用标号,则标号必须从第一列开 ( ) ( ) ( ( ) )

55、DSP 和 MCU 属于软件可编程微处理器,用软件实现数据处理;而不带 CPU 软核的 FPGA 属于硬件可编

58、 DSP 对程序存储空间、数据存储空间和 I/O 空间的选择分别是由三根片选线 PS、DS、IS 独立选择 59、C54x 系列 DSP 的 CPU 寄存器及片内外设寄存器映射在数据存储空间的 0000h-0080h 中。 ( ) ( ) ( ) ( ) ) ) ) ) ) ) ) )

64、当 TMS320C54X DSP 处于微处理器模式时,DSP 上电复位之后从片外程序存储器的 FF80H 开始运行。 65、在 TMS320VC5402 型 DSP 所有中断向量中,只有硬件复位向量不能被重定位,即硬件复位向量总是指 66、 DSP 和 MCU 属于软件可编程微处理器,用软件实现数据处理;而不带 CPU 软核的 FPGA 属于硬件可编

第9 页(共 2 页)

74、TMS320VC5402 型 DSP 汇编语言的寻址方式可以实现 FFT 算法中的位倒寻 址方式。 ( ) ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) 75、 在 C54x 系列 DSP 中断向量表中,每个中断向量的入口地址间隔 4 个字。 低 32K 字都被映像到内部 RAM 中。 7 7、 在 DSP 的编程中可以将程序中不同的段放置在不同的存储器中。 7 9、在 C 5 4 x 系列 D S P 中断向量 表中 ,每个 中断 向量 的入口 地址 间隔 4 个字。 的。 8 1、D S P 的流水线冲突可以通过改变编程方法或者添加 nop 语句来消除。 82、TMS320C54X 系列 DSP 的汇编语言中分支转移指令执行需要 4 个机器周期。 8 3、 DSP 处理器 TMS320VC5402 的定时器可以构成 20 位的定时器。 8 4、 D S P 处理器 TMS320VC5402 的软件中断是不可屏 蔽的中断 。 8 5、 DSP 处理器 TMS320VC5402 可以计算浮点小数运算。 6. TMS320VC5402 型 DSP 汇编语言的寻址方式可以实现 FFT 算法中的位倒序 寻址方式。 ( 8 6 、 ( ( ) 系列 DSP 的汇编指令 WRITA 可以寻址 1M 字的程序空间。 ( ( ( ( ( ( ( ( ( ( ( () ) ) ) ) ) ) ) ) ) ) ) ) ) 在 D S P 的 编 程 中 可 以 将 程 序 中 不 同 的 段 放 置 在 不 同 的 存 储 器 中 。

76、 如果 OVLY=1,程序存储空间可以使用内部 RAM,此时,不论 XPC 为何值,扩展程序存储空间的所有

7 8、C54x 系列 DSP 的寻址方式中,用 DP 作为直接寻址的偏移寻址范围只有 128 个字。 (

80、 DSP 对程序存储空间、数据存储空间和 I/O 空间的选择分别是由三根片选线 PS、DS、IS 独立选择

87、TMS320C54X

88、DSP 处理器 TMS320VC5402 内部没有专用的除法指令。 89、定点 DSP 处理器 TMS320VC5402 可以计算浮点小数运算 90、DSP 处理器 TMS320VC5402 的定时器可以构成 20 位的定时器。 91、DSP 处理器 TMS320VC5402 的软件中断是不可屏蔽的中断。 92、DSP 处理器 TMS320VC5402 支持流水线的指令运行方式 93、DSP 处理器 TMS320VC5402 内部没有专用的除法指令。 94、定点 DSP 处理器 TMS320VC5402 可以计算浮点小数运算。 95、CCS 软件开发系统支持 C 语言程序编程。 96、DSP 处理器 C54x 的软件中断是不可屏蔽的中断。 97、 DSP 处理器 C54x 支持流水线的指令运行方式。 98、DSP 处理器 C54x 的堆栈是向低地址方向生长的。 99、DSP 处理器 C54x 的汇编程序是由许多“段”组成的。 (3)使用相应的中断号响应该中断 四、 简答题 1、简 1.什么是定点 DSP 芯片和浮点 DSP 芯片?各有什么优缺点? 解:按数据的定点格式工作的 DSP 芯片称为定点 DSP; 按数据的浮点格式工作的 DSP 芯片称为浮点 DSP; 定点 DSP 的价格便宜,功耗低,但运算精度低; 浮点 DSP 的价格较高,C 语言编程调试方便,运算精度高。 2. 简述流水线操作的基本原理。

第10 页(共 2 页)

解:流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。其本质是 DSP 多条 总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。同时,不同指令在同一 机器周期内占用不同总线资源。 3. ’C54x DSP 有哪些重复操作?各有什么优点? 解:有单条指令重复执行和程序块重复执行两种重复操作。 单条指令重复操作功能,可以使乘法/累加和数据块传送那样的多周期指令在执行一次之后变成单周期指 令,大大提高了这些指令的执行速度。 利用块重复操作进行循环,是一种零开销循环。 4. 软件可编程等待状态发生器的功能是什么? 解:软件可编程等待状态产生器可以将外部总线周期扩展到 7 个机器周期(C549、C5402、C5410 和 C5420 为 14 个机器周期) ,这样’C54x DSP 可以方便地与慢速的片内存储器和 I/O 器件接口。 5. ’C54x DSP 的串行口有哪些类型?各有什么特点? 解:有标准同步串口 SP、缓冲同步串口 BSP、多路缓冲串口 McBSP、时分多路同步串口 TMD 四种。 缓冲串口(BSP)是一个增强型的标准串口,它由一个全双工双缓冲串口和一个自动缓冲单元(ABU)组 成。 由于其中的串行口与标准串口的功能相同,因此在标准模式下,缓冲串口的操作与标准串口的工作方式是 一样的。不过无论是标准模式还是自动缓冲模式,BSP 都提供了一些增强功能。主要包括了可编程控制的 串口时钟、可选择时钟和帧同步信号的正负极性,能够以每帧 8 位、10 位、12 位和 16 位传输数据。通过 配置 BSP 的控制寄存器,BSP 还能实现忽略帧同步信号的数据传输。 时分复用串行口 TDM 采用时分复用技术,将多个外部器件复用与’C54x 进行串行通信,每一个时隙对应 于其中的 1 路通信。 TDM 可以和外部的多个应用接口实现方便灵活的数据交换。 ’C54x 最多可以和 8 个外部器件接口通信。 多通道缓冲串口(McBSP)是在缓冲串口的基础上发展起来的增强版。 McBSP 具有高速、全双工、可与各种总线标准的器件直接接口等特点,它为 DSP 使用者在不同方面的应用 提供了方便,尤其适合在通信领域的应用。

6、简述 DSP 程序的段 .text, .data, .bss,各包含什么内容。 (6分) .答: .text 代码段,该段包含程序代码 .data 数据段,该段包含已初始化的数据

第11 页(共 2 页)

.bss 变量段,该段为未初始化的变量保留空间 7、比较伪指令 .usect 和 .sect。 (6分).答:.sect: 定义初始化了的带名称的段 Unsect:在一个 未 初 始 化 的 段 中 保 留 空 间 8、TMS320C54X 芯片的流水线共有多少个操作阶段?每个阶段执行什么任务?(8分) 答: 共有 6 个操作阶段:1,预取址 2,取址 3,译码 4,寻址 5,读数 6,执行 9、假设 AR3 的当前值为 200h,当使用以下 TMS320C54XX 寻址模式后其中的值为多少?假定 AR0 的值为 20h。(4 分) (1) *AR3+0(2)*AR3-0(3)*AR3+(4)*AR3 10、TMS320C54x 有多少条 16 位总线?这些总线各有什么作用?(6 分) 答: ’C54x 共有 4 组 8 条 16 位总线 1 条程序总线(PB) :传送取自程序存储器的指令代码和立即操作数。 3 条数据总线(CB、DB、EB) :CB 和 EB 传送从数据存储器读出的操作数;EB 传送写到存储器中的 数据。 4 条地址总线(PAB、CAB、DAB、EAB)传送相应指令所学要的代码。 11、 TMS320C54x 片内存储器一般包括哪些种类?如何控制存储器片内或片外的分配?(6 分) 答:TMS320C54x 的片内存储空间分为 3 个可选择的存储空间:64K 的程序空间,64K 的数据空间和 64K 的 I/O 空间,所有 TMS320C54x 芯片都包括 RAM、SARAM、DARAM。 程序空间:MP/MC=1 MP/MC=0 OVLY=1 OVLY=0 数据空间:DROM=1 DROM=0 4000H~FFFFH 4000H~EFFFH 0000H~007FH 0000H~3FFFH F000H~FEFFH F000H~FEFFH 片外 片外 保留 片外 只读空间 片外 FF00H~FFFH 保留 FF00H~FFFFH 0080H~007FH 片内 片内

12、 当 TMS320C54x CPU 接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?(6 分) 答: (1)出现多个中断时,此中断的优先级最高 (2)INTM=0 允许全局中断 (3)IMR 中的响应相应位为 1,开放此中断。 13、 TMS320C54x 硬件复位地址为多少?如何确定中断向量地址?计算 INT0(IPTR=001H)的中断向量地 址。 分) (6 答:复位后,复位向量地址为:0080H 确定地址方式:IPTR+左移 2 位后的中断向量序列号 10H 左移 2 位后成为 40H,IPTR=001H,则中断向量地址为 00C0H 14、 若辅助寄存器 AR0 的值为 0x0005H,AR3 的值为 0x030FH,请分别给出下列寻址方式修改后的辅助寄 存器的值。 分) (6 *AR3+ *AR3+0 *AR3(15) LD LD LD #80h, 80h, #80h,16, ; ; ; A; A; A; AR3=0310H AR3=0314H AR3=0324H 把立即数 80H 装入累加器 A 把 80H 为地址的数据装如累加器 A 把立即数 80H 左移 16 位后装如累加器 A

15、 分别解释以下指令的功能。 分) (6

说明以下各量的理论值(4 分)

第12 页(共 2 页)

A: AR1:

2A 88H

a1 的地址:81H AR3: 84H

内容:1

16、简述当某一外设产生中断时其中断请求的响应过程? 17、列出事件管理器通用定时器计数操作的 4 种模式? 18、简述 PWM 调速方法? 19、简述 DSP 硬件系统设计的一般步骤。 20、 TMS320C54X 指令系统的寻址方式各有哪些?各寻址方式举一例说明 答: 寻址方式 立即寻址 绝对寻址 累加器寻址 直接寻址 间接寻址 存储器映像寄 存器寻址 堆栈寻址 用 途 主要用于初始化 利用 16 位地址寻址存储单元 将累加器中的内容作为地址 利用数据页指针和堆栈指针寻址 利用辅助寄存器作为地址指针 快速寻址存储器映象寄存器 压入/弹出数据存储器和存储器映像寄 存器 MMR 举 例 LD #10,A STL A,*(y) READA x LD @x,A LD *AR1,A LDM ST1,B PSHM AG 指令含义 立即数 10 -> A 将 AL 内容存入 y 所在的存储单元 将 A 的内容作为地址读程序存储器,并 存入 x 存储单元 (DP+x 的低 7 位地址) A ((AR1)) -> A (ST1) -> B (SP)-1->SP,(AG) -> (SP)

21、 在 C54x 的汇编语言中,使用“#” “*” “@”符号作为操作数的前缀各表示什么意思? 、 、 答:使用“#”号作为前缀,汇编器将操作数作为立即数处理。即使操作数是寄存器或地址,也将作为立 即数。 使用“*”符号作为前缀,汇编器将操作数作为间接地址,即把操作数的内容作为地址。 使用“@”符号作为前缀,汇编器将操作数作为直接地址,即操作数由直接地址码赋值。 22、简述 COFF 文件中“ 段”的概念,有哪些常用的段? 答:段是 COFF 文件中最重要的概念。每个目标文件都分成若干段。段——是存储器中占据相邻空间的代 码或数据块。一个目标文件中的每个段都是分开的和各不相同的。 .text 段(文本段),通常包含可执行代码; .data 段(数据段),通常包含初始化数据; .sect 段——已初始化段,由汇编器伪指令建立的自定义段。 .bss 段——未初始化段; .usect 段——未初始化段,由汇编命令建立的命名段(自定义段) 。 23、 简述链接器命令文件中 MEMORY 和 SECTIONS 两条指令的作用。 答:MEMORY 伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们 的起始地址和长度。 SECTIONS 伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也 可用于指定子段。 24、已知 DSP 的工作时钟为 20MHZ,现需要用定时器定时 10ms,请问 PRD 和 TDDR 寄存器的初始值如何确 定? 答:(PRD)=19999,(TDDR)=9;或(PRD)=49999,(TDDR)=4 25、一个典型的 DSP 系统通常由哪些部分组成?画出框图. DSP 芯片及 DSP 基本系统、程序和数据存储器、数/模和模/数转换器、模拟控制与处理电路、各种控制口 和通信口、电源处理电路和同步电路等。

信 号 预 处 理 、 MUX

防混叠 滤波器 ? ? ? 防混叠 滤波器

ADC
? ? ?

控制口

第13 页(共 2 页)

ADC

TMS320C 54x

EPRO M

26、数字信号处理技术及算法在工程实践中常见的实现方法有哪些? 答:数字信号处理技术及算法在工程实践中常见的实现方法有: ① 在通用计算机(PC 机)上用软件(如 Fortran、C 语言)实现 ② 在通用计算机系统中加入专用的加速处理机实现 ③ 用单片机实现 ④ 用通用的可编程 DSP 芯片实现 ⑤用专用的 DSP 芯片实现,可用在要求信号处理速度极快的特殊场合,如专用于 FFT、数字滤波、卷积、 相关算法的 DSP 芯片 ⑥ 用基于通用 DSP 核的 ASIC 芯片实现。 27、简述冯·诺依曼结构、哈佛结构和改进的哈佛结构之间的区别。 答:冯·诺伊曼(Von Neuman)结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一 的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进 行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。 哈佛(Harvard)结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和 数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据 吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。 改进型的哈佛结构是采用双存储空间和数条总线,即一条程序总线和多条数据总线。允许在程序空 间和数据空间之间相互传送数据,使这些数据可以由算术运算指令直接调用,增强芯片的灵活性;提供了存 储指令的高速缓冲器(cache)和相应的指令,当重复执行这些指令时,只需读入一次就可连续使用,不需 要再次从程序存储器中读出,从而减少了指令执行作需要的时间。 28、简述链接命令文件(·cmd 文件)的功能。 答:链接命令文件(·cmd 文件)指定存储器的结构和段的定位,有 MEMORY 和 SECTIONS 两条指令。 MEMORY 伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的 起始地址和长度。 SECTIONS 伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也 可用于指定子段。 29、简述 DSP 处理器中断系统分为几种中断,如何清除中断标志? 答:硬件中断:由片外管脚和片内外设引起的中断,又分为可屏蔽中断和非屏蔽中断。 软件中断:软件中断是由程序指令产生的中断请求, 有三种情况将清除中断标志: (1)软件和硬件复位,即’C54x 的复位引脚 RS=0;

第14 页(共 2 页)

(2)相应的 IFR 标志位置 1; (3)使用相应的中断号响应该中断,即使用 INTR #K 指令。 30、 简述 C54x 系列 DSP 定时器的组成部分、各部分分别起什么作用? 答:定时器主要由定时寄存器 TIM、定时周期寄存器 PRD、定时控制寄存器 TCR 及相应的逻辑控制电路组 成。定时周期寄存器 PRD 用来存放定时时间,定时寄存器 TIM 为 16 位减 1 计数器,定时控制寄存器 TCR 存放定时器的控制位和状态位,逻辑控制电路用来控制定时器协调工作。 31、简述 DSP 处理器 TMS320VC5402 在微计算机工作模式中上电启动的过程。 答:DSP 上电复位后,程序 PC 指针跳转到 0xff80 位置,在芯片的 0xff80 这个单元中存储着跳转指令、 程序自动跳转到 0xF800,开始执行自举装载程序,自举装载程序将片外存储器的程序搬运到 DSP 程序存 储空间的某个地方,自举装载程序的最后一条指令是跳转指令,程序接着跳转到刚才搬运在程序存储空间 的某个地址,从而开始程序的自动运行。 32、简述 TI 公司 C2000, C5000, C6000 系列处理器的应用范围。 答:C2x、C24x 称为 C2000 系列,主要用于数字控制系统; C54x、C55x 称为 C5000 系列,主要用于功耗低、便于携带的通信终端; C62x、C64x 和 C67x 称为 C6000 系列,主要用于高性能复杂的通信系统, 如移动通信基站。 33、在 C54x 的程序中, “.text”和“.sect”段有什么区别? 答:在程序中,所有的“.text”段在编译时合并为一个“.text”段,并将其定位在一个连续的存储空 间中。 在“.sect”定义的段中,由于不同的段均有不同的段名,因此不同段名的“.sect”段不会合并 为一个段,而且可以分别定位在程序存储空间的不同位置。 34、简述 C54x 系列 DSP 的定时器工作过程。 答:① 定时分频系数和周期数分别装入 TCD 和 PRC 寄存器中; ② 每来一个定时脉冲 CLKOUT,计数器 PSC 减 1; ③ 当 PSC 减至 0 时,PSC 产生借位信号; ④ 在 PSC 的借位信号作用下,TIM 减 1 计数,同时将分频系数装入 PSC,重新计数; ⑤ 当 TIM 减到 0 时,定时时间到,由借位产生定时中断 TINT 和定时输出 TOUT,并将 PRD 中的时间常数 重新装入 TIM。 35、简述 PMST 寄存器中 IPTR 的作用。 答:C54x 的中断向量地址是由 PMST 寄存器中的 IPTR(9 位中断向量指针)和左移 2 位后的中断向量序号所 组成。 中断向量地址=IPTR+(左移 2 位的中断向量序号) 36、简述 PMST 寄存器中 IPTR 的作用。 答:C54x 的中断向量地址是由 PMST 寄存器中的 IPTR(9 位中断向量指针)和左移 2 位后的中断向量序号所 组成。 中断向量地址=IPTR+(左移 2 位的中断向量序号) 37、宏指令与子程序有哪些区别? 答:⑴ 宏指令和子程序都可以被多次调用,但是把子程序汇编成目标代码的过程只进行一次,而在用到 宏指令的每个地方都要对宏指令中的语句逐条地进行汇编。 ⑵ 在调用前,由于子程序不使用参数,故子程序所需要的寄存器等都必须事先设置好;而对于宏指 令来说,由于可以使用参数,调用时只要直接代入参数就行了。 38、 .TMS320C54X DSP 的程序代码或数据以段的形式装载于存储器中,段可分为哪两种基本类型?有哪 5 条伪指令来建立和管理各种各样的段?并指明各伪指令的功能。 答:段分为初始化段和未初始化段。 .text 段(文本段),通常包含可执行代码;

第15 页(共 2 页)

.data 段(数据段),通常包含初始化数据; .sect 段——已初始化段,由汇编器伪指令建立的自定义段。 .bss 段——未初始化段; .usect 段——未初始化段,由汇编命令建立的命名段(自定义段) 。 39、如何实现 DSP 由一种工作频率切换到另外一种工作频率? 答:步骤 1:复位 PLLNDIV,选择 DIV 方式; 步骤 2:检测 PLL 的状态,读 PLLSTATUS 位; 步骤 3:根据所要切换的倍频,确定乘系数; 步骤 4:由所需要的牵引时间,设置 PLLCOUNT 的当前值; 步骤 5:设定 CLKMD 寄存器。 40、简述 DSP 处理器中断系统分为几种中断,如何清除中断标志? 答:硬件中断:由片外管脚和片内外设引起的中断,又分为可屏蔽中断和非屏蔽中断。 软件中断:软件中断是由程序指令产生的中断请求, 有三种情况将清除中断标志: (1)软件和硬件复位,即’C54x 的复位引脚 RS=0; (2)相应的 IFR 标志位置 1; (3)使用相应的中断号响应该中断,即使用 INTR #K 指令。 41、根据你的理解,试列举 DSP 芯片的特点?(5 分) 答:哈佛结构;多总线结构;指令系统的流水线操作;专用的硬件乘法器;特殊的 DSP 指令;快速的指令 周期;丰富的外设 42、TMS320C55x 芯片的总线结构有何特点,主要包括哪些总线?它们的功能是什么?(6 分) 答:TMS320C55x DSP 采用先进的哈佛结构并具有十二组总线,其独立的程序总线和数据总线允许同时读 取指令和操作数,实现高度的并行操作。 采用各自分开的数据总线分别用于读数据和写数据,允许 CPU 在同一个机器周期内进行两次读 操作数和一次写操作数。独立的程序总线和数据总线允许 CPU 同时访问程序指令和数据。 包括 12 条总线,分别是:PAB 和 PB、BAB 和 BB、CAB 和 CB、DAB 和 DB、EAB 和 EB、FAB 和 FB。 功能: 43、DSP 为了降低功耗采取了哪些措施?(6 分) 答:双电压供电;多种工作模式 44、TMS320C55x 的总存储空间为多少?可分为哪 3 类,它们的大小是多少?存储器空间的各自作用是什 么?(6 分) 答:程序空间 16M Byte;I/O 空间 64K Words;数据空间 8M Words 45、TMS320C55x 有哪些寻址方式,它们是如何寻址的?试为每种寻址方式列举一条指令(6 分) 答:直接寻址模式,mov #K16,DP; 间接寻址模式,mov *AR0,AC0; 绝对寻址模式,mov *(#0x011234),T2; MMR 寻址模式,mov *abs16(#AR2), T2; 寄存器位寻址模式,btstp @30, AC1; 圆形寻址模式。 46、将 C 源程序转换成可执行文件需要经过哪些步骤?(6 分) 答:创建 C 源文件;创建工程文件;创建连接器命令文件;编译整个工程文件;链接;生成可执行文件 47、常用的 TMS320C55x 汇编命令有哪些,它们的作用是什么?(5 分) (5) (5)

第16 页(共 2 页)

48、常见 DSP 的运算速度指标有如下几种,请给出其具体含义。 分) (7 (1)指令周期 (2) MIPS (3) MOPS (4) MFLOPS (5) BOPS (6)MAC 时间 (7)FFT 执行时间 49、TMS320C55x DSP 内部促 CPU 包含哪几个单元(4分) ,各有什么功能 50、简述数字信号处理器的主要特点 。21、TMS320C55x DSP 的内部体系结构包含哪几条总线,分别是多 少位? 51、循环寻址中,如何确定循环缓冲的起始地址?如果循环缓冲大小为 17,其起始地址必须从什么地址 开始?BK 初始化为多少? 52、 DSP 实现 FIR 滤波器的基本运算有哪些? 53、TMS320C54X DSP 片内可编程定时器有哪些主要特征? 54、请简述一下 TMS320C54X DSP 如何将三个独立的可寻址存储空间分开,又是通过哪些信号完成对外部 程序或数据存储器的访问、I/O 设备的访问和控制数据传送方向? 55、 链接命令文件 CMD 的作用是什么?该文件由哪些部分组成? 56、TMS320C54X DSP 的串行接口有哪几种类型?它们之间有什么区别? 57、请用方框图描述一个你熟悉的实用数字信号处理器系统,并做简要的分析;如果没有,也可以自己设

第17 页(共 2 页)

计一个简单的数字信号处理器系统,并描述其功能及用途。 58、 数字滤波器的分类和结构特点。 59、IIR、FIR 滤波器的异同。 60、DSP 和通用处理器在结构上有什么不同?请简要画出你熟悉的一种 DSP 结构图。说说定点 DSP 和浮点 DSP 的定义 五、 阅读程序填空 1.BANZ 2000h, *AR3-

指令执行前

指令执行后

PC AR3
2.CMPR GT, AR3

1000 005

PC AR3

2000 004

指令执行前

指令执行后

TC AR0 AR3
3.ADD *AR3+, 14, A

1 FFFF 7FFF

TC AR0 AR3

0 FFFF 7FFF

指令执行前

指令执行后

A C AR3 SXM

00 0000 1200 1 0100 1

A C AR3 SXM

00 0540 1200 0 0101 1

Data Memory

0100h
4.SUB A, -8, B

1500

0100h

1500

指令执行前

指令执行后

A B C SXM

00 0000 1200 00 0000 1800 x 1

A B C SXM

00 0000 1200 00 0000 17EE 1 1

5.MPY *AR3+, A

第18 页(共 2 页)

指令执行前

指令执行后

A T AR3

00 0000 1200 0004 0100

A T AR3

00 0000 0040 0004 0101

Data Memory

0100h
6. .def _c_int00 .mmregs stack: .usect .bss a,4 .bss x,4 .bss y,1 .data table:

0010

0100h

0010

"stack",10h

.word 1,2,4,3 .word 8,6,4,2 .text

_c_int00:

STM STM RPT MVPD CALL

#stack+10h,sp #a,AR1 #7 table,*AR1+ sum end #a,AR3 #x,AR4 A,#3 *AR3+,*AR4+,A A,@y

end: sum:

B STM STM RPTZ MAC STL ret .end

(1) (2)

说明该程序的功能: 分) (4 答:a1*x1=a2*x2+a3*x3+a4*x4 说明以下各量的理论值(4 分) A: AR1: .bss LD STM STM 2A 88H x, 8 #0001H,16,B #7,BRC #x,AR4 a1 的地址:81H AR3: 84H 内容:1

7. 阅读下面的程序,回答问题。

第19 页(共 2 页)

RPTB next-1 ADD STH next: 问题: (1)寄存器“BRC”的功能是什么? 寄存器“BRC”的功能是暂存块循环的次数 (2)汇编语句“ADD 8次 (3)执行语句“LD #0001H,16,B”后,累加器 B 的内容是多少? B=0x0100H; 8. 阅读下面的程序: .mmregs DAT0 DAT1 DAT2 DAT3 add3 .macro LD ADD ADD STL .endm ST #0034h,DAT0 ST #0243h,DAT1 ST #1230h,DAT2 ADD3 DAT0,DAT1,DAT2,DAT3 问题: (1) 语句“.mmregs”的含义。 定义存储器映像寄存器的符号名称。 (2) 语句“ADD3 DAT0,DAT1,DAT2,DAT3”是一条什么类型的语句?作用是什么? 宏调用。执行三个数相加。 (3)执行此段程序后,存储单元(DAT3)的运行结果多少? 14a7H 9.阅读下面的程序片段,写出运行结果 .mmregs DAT0 .SET LD ST 60H #004h,DP #0345h,DAT0 STM #0002h,T MPY DAT0,A NOP NOP 问题:(1)寄存器 T 的作用是什么? .SET .SET .SET .SET P1,A P2,A P3,A A,ADDRP 60H 61H 62H 63H *AR4,16,B,A”执行了多少次? LD *AR4,16,B,A A,*AR4+ #0,B

P1,P2,P3,ADDRP

第20 页(共 2 页)

寄存器 T 的作用是暂存被乘数, (2)执行“MPY DAT0,A”后,累加器 A 的内容是什么?: 累加器 A 的内容为 0x68A 或 68Ah 10. 阅读程序,回答后面的问题 STM begin: STM nop next: LD banz #0,B begin,*AR4- #6,AR4 #9,BRC

RPTB next-1

问题:(1) BRC 寄存器是做什么用途? BRC 保存着 RPTB 指令的循环次数 (2)语句“banz begin,*AR4-”的作用是什么? 判断 AR4 的内容是否为零,若不为零,跳转到标号 begin。 (3) 其中的“nop”语句被执行了多少次? 70 次 11. 已知 DSP 的三个时钟引脚状态 CLKMD1-CLKMD3=111,外部晶振=10MHz,参数设置表: CLKMD1 0 0 0 1 1 1 1 Status:LDM AND BC STM 5MHz (2)执行上面的程序片段后,DSP 的工作时钟是多少? 100MHz 12. 阅读下面的程序片断,写出运行结果 .mmregs bei_hua .set LD 18 # bei_hua,A CLKMD2 0 0 1 0 1 1 0 CLKMD,A #01H,A Status,ANEQ #9007H,CLKMD CLKMD3 0 1 0 0 0 1 1 CLKMD 复位值 E007H 9007H 4007H 1007H F007H 0000H F000H 时钟方式 PLL×15 PLL×10 PLL×5 PLL×2 PLL×1 2 分频 4 分频

STM #00H,CLKMD

问题(1)DSP 复位后,DSP 的工作时钟是多少?

问题:(1)“.mmregs”的作用是什么? 定义存储器映像寄存器的符号名称 (2) 运行此段程序后,累加器 A 的结果是多少? A 的结果是 18 13. 阅读下面的程序,回答问题。 .sect ".vectors" rst: B _c_int00 ;复位中断向量的入口

第21 页(共 2 页)

NOP NOP .space 18*4*16 tint: B timeout NOP NOP 问: (1) “.sect”伪指令的作用是什么? 定义一个自定义段名的程序段 (2) 标号“rst”的地址为 6000H,请问标号“tint”的地址是多少? 604Ch 14. 阅读下面的命令连接文件(简称 CMD 文件)和程序文件: CMD 文件: MEMORY { } SECTIONS { } .data table: start: .word .text STM # 0,SWWSR ; 插入 0 个等待状态 问: (1)MEMORY 和 SECTIONS 的作用各是什么? MEMORY 和 SECTIONS 链接伪指令,用来指定目标存储器结构和地址分配。 (2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间? 标号 table:1000h(程序空间) 标号 start:2000h(数据空间) 15. 阅读下面的程序片断,回答下面的问题 DAT0 DAT1 DAT2 DAT3 .SET .SET .SET .SET 60H 61H 62H 63H 1,2,3,4 ; 变量初始化 .text: .data: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE 0: PROG: origin = 0x1000, origin = 0x2000, length = 0x1000 length = 0x1000 PAGE 1: DATA: ;定时器 0 的中断向量的入口

LD #004h,DP ST #83h,DAT0 ST #0041h,DAT1 RSBX SXM LD DAT0,A RPT #15 SUBC DAT1,A STL A,DAT2 STH A,DAT3 问:在 CPL=0 的情况下,

第22 页(共 2 页)

(1) 语句“STL A,DAT2” ,其中 DAT2 所指的地址是多少? 0262h (2) 存储单元(DAT2)和(DAT3)的内容是多少? (DAT2)=02H (DAT3)=01H 16. 阅读下面的程序,回答问题。 MEMORY { } SECTIONS { } 汇编程序: .bss .bss .bss STM STM RPTZ MAC STL a,4 x,4 y,1 #a, AR3 #x, AR4 A, #3 *AR3+,*AR4+,A A,*(y) #a, AR3”的作用是什么?执行此句指令后,寄存器 AR3 的内容是多少? .text: .bss: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE 0: PROG: origin = 0x2000, origin = 0x3000, length = 0x1000 length = 0x1000 PAGE 1: DATA:

问题: (1)指令“STM (2)指令“MAC

将标号 a 的地址赋给辅助工作寄存器 AR3,AR3=3000h。 *AR3+,*AR4+,A”执行了几次?每执行一次寄存器 AR3 和 AR4 的内容如何变化? 执行了 4 次,每执行一次辅助工作寄存器 AR3 和 AR4 的内容增一。 (3)这段代码的功能是什么?

y ? ? ai xi
i ?1

4

17. 阅读下面的程序,回答问题。 MEMORY { } SECTIONS { } 汇编程序 size stack .set .usect .text STM # stack + size,SP 0x0120 “STACK” ,size .text: STACK: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE PAGE 0: 1: PROG: DATA: origin = 0x2000, origin = 0x4000, length = 0x1000 length = 0x1000

第23 页(共 2 页)

问题: (1)指令“stack (3)

.usect

“STACK” ,size”的作用是什么?

定义一个未初始化段,段名为”STACK” ,目的是为变量 stack 保留 size 个单元的存储空间。 标号“stack”的存储器地址是多少? stack 的存储空间为 0x4000; (3)执行这段代码之后,SP 寄存器的内容是多少? SP=0x4120; 18. MEMORY {PAGE VECS: PAGE DARAM: } SECTIONS { .text .data .bss STACK vectors } 问题: (1)该文件是如何配置程序空间和数据空间的? 答:该文件使用 MEMORY 伪指令将程序空间划分为两个小区间:名为 PROM 的区间其起始地址为 0E000h,长 度为 100h 字;名为 VECS 的区间其起始地址为 0FF80h,长度为 4 字。将数据空间也分为了两个小区间: 名 为 SPRAM 的区间其起始地址为 0060h,长度为 20h 字;名为 DARAM 的区间其起始地址为 0080h,长度为 100h 字。 (2)该文件中出现了几个段?哪些是初始化段?哪些是未初始化段?各 出现了 5 个段,.text,.data 和 vectors 是初始化段,.bss 和 STACK 段是未初始化段。 .text 和.data 分配到程序空间的 EPROM 区间;.bss 分配到数据空间 SPRAM 区间;STACK 段分配到 数据空间的 DARAM 区间; vectors 段分配到程序空间的 VECS 区间。 19. 已知 DSP 的三个时钟引脚状态 CLKMD1-CLKMD3=101,外部晶振=10MHz,参数设置表: CLKMD1 0 0 0 1 1 1 1 Status:LDM AND BC STM 2.5MHz (2)执行上面的程序片段后,DSP 的工作时钟是多少? 100MHz CLKMD2 0 0 1 0 1 1 0 CLKMD,A #01H,A Status,ANEQ #9087H,CLKMD CLKMD3 0 1 0 0 0 1 1 CLKMD 复位值 E007H 9007H 4007H 1007H F007H 0000H F000H 时钟方式 PLL×15 PLL×10 PLL×5 PLL×2 PLL×1 2 分频 4 分频 :>VECS :>DARAM PAGE 0 :>EPROM PAGE 0 :>EPROM :>SPRAM PAGE PAGE PAGE 0 1 1 1: SPRAM: 0: PROM: org=0E000h,len=100h org=0FF80h,len=04h org=0060h,len=20h org=0080h,len=100h

STM #00H,CLKMD

问题:(1)DSP 复位后,DSP 的工作时钟是多少?

第24 页(共 2 页)

20. 阅读程序,回答后面的问题 STM begin: STM nop next: LD #0,B banz begin,*AR4问(1)BRC 寄存器是做什么用途? BRC 保存着 RPTB 指令的循环次数 (2)其中的“nop”语句被执行了多少次? 80 次 21. 阅读下面的程序,回答问题。 MEMORY { } SECTIONS { } 汇编程序: .bss .bss .text STM STM RPT MVDD #x,AR2 #y,AR3 #15 AR2+,*AR3+ x,16 y,16 .text: .bss: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE 0: PAGE 1: PROG: DATA: origin = 0x2000, origin = 0x3100, length = 0x1000 length = 0x1000 #9,AR4 #7,BRC

RPTB next-1

问题: (1)变量“x”的存储器地址是多少?位于哪个存储空间(程序还是数据存储空间)。 变量“x”的存储器地址是 0x3100;位于数据存储空间 (2) 语句“STM #x,AR2”的作用是什么?执行此句指令后,寄存器 AR2 的内容是多少? 将变量“x”的地址赋给辅助工作寄存器 AR2,AR2=3100h。 (3)语句“MVDD 化? 执行了 16 次,每执行一次辅助工作寄存器 AR2 和 AR3 的内容增一。 (4)此段代码的功能是多少? 将数组变量“x”的数据传送到数组变量“y”中。 22.阅读下面的程序,回答后面的问题 .bss .bss STM STM LD x,10 y,1 #x,AR1 #9,AR2 #0,A AR2+,*AR3+”的执行了多少次?每执行一次寄存器 AR2 和 AR3 的内容如何变

第25 页(共 2 页)

loop: ADD BANZ STL

*AR1+,A loop,*AR2A, * (y) x,10”的含义。

问:(1) 解释语句“.bss 给 x 保留 10 个空间

(2) 解释语句“STL A, * (y)”的含义。 将累加器 A 的低 16 位数据存储到变量 y 中。 (3)这一段程序实现什么功能?

y ? ? xi
i ?1

10

23. 阅读下面的程序,回答问题。 MEMORY { } SECTIONS { } 汇编程序: .bss .bss .text STM STM RPT MVDD #x,AR2 #y,AR3 #15 AR2+,*AR3+ x,16 y,16 .text: .bss: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE 0: PAGE 1: PROG: DATA: origin = 0x2000, origin = 0x3100, length = 0x1000 length = 0x1000

问题: (1)变量“x”的存储器地址是多少?位于哪个存储空间(程序还是数据存储空间)。 (2)语句“STM #x,AR2”的作用是什么?执行此句指令后,寄存器 AR2 的内容是多少? (3)语句“MVDD 化? (4)此段代码的功能是多少? 答: (1)变量“x”的存储器地址是 0x3100;位于数据存储空间 (2)将变量“x”的地址赋给辅助工作寄存器 AR2,AR2=3100h。 (3)执行了 16 次,每执行一次辅助工作寄存器 AR2 和 AR3 的内容增一。 (4)将数组变量“x”的数据传送到数组变量“y”中。 24. 阅读下面的程序片段,回答后面的问题 .sect ".vectors" rst: B _c_int00 NOP NOP .space 18*4*16 AR2+,*AR3+”的执行了多少次?每执行一次寄存器 AR2 和 AR3 的内容如何变

第26 页(共 2 页)

tint:

B timeout NOP NOP

问:(1) “.sect”伪指令的作用是什么? (2) 标号“rst”的地址为 6000H,请问标号“tint”的地址是多少? 答: 定义存储器映像寄存器的符号名称 A 的结果是 18 25.阅读下面的命令连接文件(简称 CMD 文件)和程序文件: CMD 文件: MEMORY { } SECTIONS { } 程序文件: .data table: start: .word .text STM # 0,SWWSR ; 插入 0 个等待状态 问题: (1)MEMORY 和 SECTIONS 的作用各是什么? (2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间? 答:定义一个自定义段名的程序段 604Ch 26.已知 DSP 的三个时钟引脚状态 CLKMD1-CLKMD3=110,外部晶振=10MHz,参数设置表: CLKMD1 0 0 0 1 1 1 1 CLKMD2 0 0 1 0 1 1 0 CLKMD3 0 1 0 0 0 1 1 CLKMD 复位值 E007H 9007H 4007H 1007H F007H 0000H F000H 时钟方式 PLL×15 PLL×10 PLL×5 PLL×2 PLL×1 2 分频 4 分频 1,2,3,4 ; 变量初始化 .text: .data: {} {} > > PROG PAGE 0 DATA PAGE 1 PAGE 0: PROG: origin = 0x1000, origin = 0x2000, length = 0x1000 length = 0x1000 PAGE 1: DATA:

STM #00H,CLKMD Status: LDM CLKMD,A AND BC STM #01H,A Status,ANEQ #4087H,CLKMD

问题: (1)DSP 复位后,DSP 的工作时钟是多少? (2)执行上面的程序片段后,DSP 的工作时钟是多少? 答:(1)10 MHz (2)50MHz 六、 程序设计 1.实现计算 z=x+y-w 的程序。 第27 页(共 2 页) (5) (5)

.title .mmregs STACK .usect .bss .bss .bss .bss .def .data table: start: .word .text STM STM STM RPT MVPD CALL end: SUMB: LD ADD SUB STL RET .end B

"example1.asm" "STACK", 10h x,1 y,1 w,1 z,1 start 10,26,23 #0,SWWSR #STACK+10h,SP #x,AR1 #2 table,*AR1+ SUMB end @x, @y, @w,A A, @z A A ;实现减法运算 ;数据从程序存储器传送到数据存储器 ;初始化堆栈指针 SP

2.实现对数组 X[5]={1,2,3,4,5}的初始化,然后将数据存储器中的数组 X[5]复制到数组 Y[5]。最 后实现数组 X 和数组 Y 中对应元素相乘并累加,即 z=1*1+2*2+3*3+4*4+5*5 .mmregs .bss .bss .bss .def table: start: .word .text STM RPT MVPD STM STM # y, AR3 RPT MVDD SSBX FRCT 4 *AR1,*AR3 ;从数据存储器数组 X[5]传送到 Y[5] ;准备整数乘法 #x, 4 table,*AR1+ # x, AR2 ;从程序存储器传送到数据存储器数组 X[5] AR1 x, 5 y, 5 z, 1 start 1,2,3,4,5

第28 页(共 2 页)

STM STM RPTZ MAC STL End:

# x, AR2 STM # z, AR4 4 *AR2+,*AR3+,A A,*AR4 B .end end # y, AR3

3.写出计算

y ? ? xi
i ?1

20

的主要汇编程序,并给程序添加注释,画出程序的流程图。

解:程序及注释: .bss .bss x, 20 y, 1 ;给变量 x 分配 20 个字单元 ;给变量 y 分配 1 个字单元 ;取 x 地址 ;设置循环次数 ;累加器清零 ;累加 x 分量 ;循环是否结束,没有结束则继续累加 ;把结果存入 y

STM #x, AR1 STM #19, AR2 LD loop: #0, A ADD *AR1+, A BANZ loop, *AR2STL 流程图: A, @y

开始

AR1=#x; AR2=19;

A=(AR1)+A; AR2=AR2-1 N

AR2=0? Y y=AL;

结束
4.在进行 DSP 的程序设计时,如果程序中要使用堆栈,则必须要先进行设置。下面程序段是对堆栈的设 置,完成的功能是在 RAM 空间开辟了 200 个字的空间作为堆栈区,请完成程序段。 分) (4 size stack .set .usect ;? STM #stack+ (2) , SP (1) “STACK”, size

第29 页(共 2 页)

5.采用 TMS320C54xDSP 的定时器 0 产生方波,DSP 主频为 40MHz。要求:周期为 20s 的方波发生,从 DSP 的通用 I/O 引脚 XF 输出,定时中断周期为 10ms,需要中断 1000 次,输出端 XF 引脚电平取一次反。 请在 空处填写正确指令完成下面程序段。(12 分) ;初始化定时器 0,定时为 10ms,本设置中 TDDR=9,PRD=39999,主频为 40MHz ;T=25ns ;定时长度计算公式:T=CLKOUT* (TDDR+1) * (PRD+1)=10ms ;定时器 0 寄存器地址 TIM0 PRD0 TCR0 .set .set .set 0024H 0025H 0026H 0b<<11 0b<<10 1001b<<6 1b<<5 0b<<4 1001b<<0 ;Soft=0 ;Free=0 ;PSC=9H ;TRB=1 ;TSS=0 ;TDDR=9

;K_TCR0:设置定时器控制寄存器的内容 K_TCR0_SOFT .set K_TCR0_FREE .set K_TCR0_PSC K_TCR0_TRB K_TCR0_TSS K_TCR0 .set .set .set .set

K_TCR0_TDDR .set

K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC

| K_TCR0_TRB| K_TCR0_TSS| K_TCR0_TDDR ;初始化定时器 0 STM STM STM RET ;定时器 0 的中断服务子程序 t0_flag .usect “vars” ,1 ;当前 XF 输出电平标志位, ;若 t0_flag=1,则 XF=1 ;若 t0_flag=0,则 XF=0 t0_counter .usect “vars”,1 TRN T ST0 CPL # -1,*(t0_counter) *(t0_counter),#0 (3) #1000, ,NTC (4) ;NTC 表示 TC 为 0 PSHM PSHM RSBX ADDM CMPM BC ST BITF BC SSBX ST B xf_ out: ;计数长度变量 time0_rev: PSHM #039999,TIM0 #039999,PRD0 (1) ,TCR0 ;启动定时器 0 中断

(2)

t0_flag, #1 xf_out, NTC XF #0, t0_flag still_wait

第30 页(共 2 页)

(5) ST Still_wait: POPM POPM POPM POPM RETE ST1 (6) T TRN #1, t0_flag

6.用 C55x 汇编语言实现计算

y ? ? ai xi
i ?1

4

的程序。 (10 分)

答:mpym *AR0+, *AR1+, AC0 mpym *AR0+, *AR1+, AC1 add AC1, AC0 mpym *AR0+, *AR1+, AC1 add AC1, AC0 mpym *AR0+, *AR1+, AC1 add AC1, AC0 或者: mpym *AR0+, *AR1+, AC0 ||rpt #2 macm *AR0+, *AR1+, AC0 7.用 C55x 汇编语言实现计算

y1 ? x1 * a1 ? x2 * a2

的程序。 (10 分)

答:mpym *AR0+, *AR1+, AC3 masm *AR0+, *AR1+, AC3 8.以 8 点的 FFT 为例,用 C55x 的汇编语言实现 FFT 的算法,并且解释该算法的实现方法。 (20 分) 答: .sect "fft_code" _fft: aadd #(ARGS-Size+1),SP mov mmap(ST1_55),AR2 mov mmap(ST3_55),AR3 mov AR2,fft.d_ST1 mov AR3,fft.d_ST3 btst @#0,T1,TC1 mov #0x6340,mmap(ST1_55) mov #0x1f22,mmap(ST3_55) xcc do_scale,TC1 mov #0x6300,mmap(ST1_55) do_scale mov T2,fft.d_T2 ; Save T2 ; Set CPL,XF,SATD,SXAM (SCALE=2) ; Check SCALE flag set ; Set CPL,XF,SATD,SXAM,FRCT (SCALE=1) ; Set: HINT,SATA,SMUL ; Adjust stack for local vars ; Save ST1,ST3

第31 页(共 2 页)

|| ||

mov #1,AC0 mov AC0,fft.d_L sfts AC0,T0 mov AC0,fft.d_N mov XAR1,XCDP mov XSP,XAR4 add #fft.d_temp,AR4 mov XAR0,XAR1 mov T0,T1 mov XAR0,XAR5 ; Copy externd bits to XAR5 ; for (L=1; L<=EXP; L++) ; note: Since the buffer is ; ; ; ; ; arranged in re,im pairs the index to the buffer is doubled But the repeat coutners are not doubled ; AR4 = pointer to temp ; AR1 points to sample buffer ; Initialize L=1 ; T0=EXP ; N=1<<EXP ; CDP = pointer to U[]

outer_loop mov fft.d_L,T0 || mov #2,AC0 sfts AC0,T0 neg T0 || mov fft.d_N,AC1 sftl AC1,T0 mov AC0,T0 || || sfts AC0,#-1 mov AC0,AR0 sfts AC0,#-1 sub #1,AC0 mov mmap(AC0L),BRC0 sub #1,AC1 mov mmap(AC1L),BRC1 add AR1,AR0 mov #0,T2 || rptblocal mid_loop-1 mov T2,AR5 mov T2,AR3 add AR0,AR5 add #1,AR5,AR2 add AR1,AR3 || :: :: || || rptblocal inner_loop-1 mpy *AR5+,*CDP+,AC0 mpy *AR2-,*CDP+,AC1 masr *AR5-,*CDP-,AC0 macr *AR2+,*CDP-,AC1 mov dbl(*AR3),AC2 xcc scale,TC1 mov AC2>>#1,dual(*AR3) mov dbl(*AR3),AC2

; LE=2<<L ; LE1=LE>>1 ; Init mid_loop counter ; ; BRC0=LE1-1 BRC1=(N>>L)-1 ; Init inner loop counter

; j=0 ; for (j=0; j<LE1;j++) ; AR5=id=i+LE1 ; AR5 = pointer to X[id].re ; AR2 = pointer to X[id].im ; AR3 = pointer to X[i].re ; for(i=j; i<N; i+=LE) ; AC0=(X[id].re*U.re ; ; -X[id].im*U.im)/SCALE +X[id].re*U.im)/SCALE ; AC1=(X[id].im*U.re

mov pair(hi(AC0)),dbl(*AR4); AC0H=temp.re AC1H=temp.im

; Scale X[i] by 1/SCALE

第32 页(共 2 页)

scale add T0,AR2 || || sub dual(*AR4),AC2,AC1 mov AC1,dbl(*(AR5+T0)) add dual(*AR4),AC2 mov AC2,dbl(*(AR3+T0)) inner_loop amar *CDP+ amar *CDP+ || add #2,T2 sub #1,T1 add #1,fft.d_L bcc outer_loop,T1>0 mov fft.d_ST1,AR2 mov fft.d_ST3,AR3 mov AR2,mmap(ST1_55) mov AR3,mmap(ST3_55) mov fft.d_T2,T2 aadd #(Size-ARGS-1),SP ret .end 9.已知事件管理器通用定时器工作于连续递增计数模式,且定时器的使能信号和定时器时钟信号如下图所 示,当周期寄存器的值 TxPR=4 时,画出通用定时器连续递增计数模式的示意图(至少画出 2 个计数周 期) 。 ; Reset SP ; Update L ; End of outer-loop ; Restore ST1,ST3,T2 mid_loop ; Update k for pointer to U[k] ; Update j ; End of mid-loop ; X[id].re=X[i].re/SCALE-temp.re ; X[id].im=X[i].im/SCALE-temp.im ; X[i].re=X[i].re/SCALE+temp.re ; X[i].im=X[i].im/SCALE+temp.im ; End of inner loop

10.已知 ADC 模块中的排序器工作于启动/停止操作,使用触发信号 1 启动 3 个自动转换 I1、I2、I3,触 发信号 2 启动 3 个自动转换 V1、V2、V3。 (1)MAX CONV1 的值应该设置为_______________。 (2)在 ADC 输入通道选择排序控制寄存器设置表中填入相应的转换值。 Bit15~12 Bit11~8 Bit7~4 Bit3~0 CHSELSEQ1 X X X X X X CHSELSEQ2 CHSELSEQ2

第33 页(共 2 页)

X

X

X

X

CHSELSEQ2

11. 给出函数 int fn(long l1,longl2,long l3,int *p4,int*p5,int *p6,int *p7,int*p8,int i9,int i10)中所使用的寄存器。 (10 分) 12.设 VC5509 DSP 定时器输入时钟 100MHz,如果要求定时器输出中断信号或同步事件信号的频率为 1000 次每秒,假设将 TDDR 设为 9,则 PRD 应为多少 ,写出相关公式 (3 分) 13.C55x DSP 复位期间或复位之后输出的时钟频率如何?(2 分)

第34 页(共 2 页)

第35 页(共 2 页)


赞助商链接
相关文章:
更多相关标签: