版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 填空题(每空2分,共20分)1、 在C语言和C55x汇编语言的混合程序设计中,C函数的参数和返回值传递到C55x的寄存器中。在函数“long func(int *p1, int i2, int i3, int i4)”中,*p1传递到 AR0 寄存器,i2传递到 T0 寄存器,i4传递到 AR1 寄存器,返回值由 AC0 寄存器传递。2、 汇编语言“mov *AR0,AC0”使用的寻址方式是 间接寻址模式 ,“mov #0x3,DPH”使用的寻址方式是 直接寻址模式 ,“mov *(#0x),T2”使用的寻址方式是 绝对寻址模式 。3、 指令执行前AC0的值是,那么汇编语句“AND #0
2、x7f, AC0”,执行之后,AC0的值是 。4、 C55x 的链接器命令文件中,SECTIONS命令的主要作用是 告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出 。MEMORY命令的主要作用是 定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度 。二、简述题(共40分)1、 根据你的理解,试列举 DSP 芯片的特点?(5分)答:哈佛结构;多总线结构;指令系统的流水线操作;专用的硬件乘法器;特殊的DSP指令;快速的指令周期;丰富的外设 2、 TMS320C55x 芯片的总线结构有何特点,主要包括哪些总线?它们的功能是什么?(6分) 答:TMS320
3、C55x DSP采用先进的哈佛结构并具有十二组总线,其独立的程序总线和数据总线允许同时读取指令和操作数,实现高度的并行操作。采用各自分开的数据总线分别用于读数据和写数据,允许CPU在同一个机器周期内进行两次读操作数和一次写操作数。独立的程序总线和数据总线允许CPU同时访问程序指令和数据。 包括12条总线,分别是:PAB和PB、BAB和BB、CAB和CB、DAB和DB、EAB和EB、FAB和FB。功能:3、 DSP 为了降低功耗采取了哪些措施?(6分)答:双电压供电;多种工作模式4、 TMS320C55x 的总存储空间为多少?可分为哪 3 类,它们的大小是多少?存储器空间的各自作用是什么?(6分
4、)答:程序空间16M Byte;I/O空间64K Words;数据空间8M Words5、 TMS320C55x有哪些寻址方式,它们是如何寻址的?试为每种寻址方式列举一条指令(6分)答:直接寻址模式,mov K16,DP;间接寻址模式,mov *AR0,AC0;绝对寻址模式,mov *(#0x),T2;MMR寻址模式,mov *abs16(AR2), T2;寄存器位寻址模式,btstp 30, AC1;圆形寻址模式。6、 将C源程序转换成可执行文件需要经过哪些步骤?(6分)答:创建C源文件;创建工程文件;创建连接器命令文件;编译整个工程文件;链接;生成可执行文件7、 常用的TMS320C55x
5、汇编命令有哪些,它们的作用是什么?(5分)三、程序设计题(共40分)1、 用C55x汇编语言实现计算 的程序。(10分)答:mpym *AR0+, *AR1+, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0或者:mpym *AR0+, *AR1+, AC0 |rpt #2 macm *AR0+, *AR1+, AC02、 用C55x汇编语言实现计算 的程序。(10分)答:mpym *AR0+, *AR1+, AC3 masm *A
6、R0+, *AR1+, AC33、 以8点的FFT为例,用C55x的汇编语言实现FFT的算法,并且解释该算法的实现方法。(20分)答: .sect fft_code _fft: aadd #(ARGS-Size+1),SP ; Adjust stack for local vars mov mmap(ST1_55),AR2 ; Save ST1,ST3 mov mmap(ST3_55),AR3 mov AR2,fft.d_ST1 mov AR3,fft.d_ST3 btst #0,T1,TC1 ; Check SCALE flag set mov #0x6340,mmap(ST1_55) ;
7、Set CPL,XF,SATD,SXAM,FRCT (SCALE=1) mov #0x1f22,mmap(ST3_55) ; Set: HINT,SATA,SMUL xcc do_scale,TC1 mov #0x6300,mmap(ST1_55) ; Set CPL,XF,SATD,SXAM (SCALE=2) do_scale mov T2,fft.d_T2 ; Save T2 | mov #1,AC0 mov AC0,fft.d_L ; Initialize L=1| sfts AC0,T0 ; T0=EXP mov AC0,fft.d_N ; N=1EXP mov XAR1,XCDP
8、; CDP = pointer to U mov XSP,XAR4 add #fft.d_temp,AR4 ; AR4 = pointer to temp mov XAR0,XAR1 ; AR1 points to sample buffer mov T0,T1 mov XAR0,XAR5 ; Copy externd bits to XAR5outer_loop ; for (L=1; L=EXP; L+) mov fft.d_L,T0 ; note: Since the buffer is| mov #2,AC0 ; arranged in re,im pairs sfts AC0,T0
9、; the index to the buffer neg T0 ; is doubled| mov fft.d_N,AC1 ; But the repeat coutners sftl AC1,T0 ; are not doubled mov AC0,T0 ; LE=21 | sfts AC0,#-1 sub #1,AC0 ; Init mid_loop counter mov mmap(AC0L),BRC0 ; BRC0=LE1-1 sub #1,AC1 ; Init inner loop counter mov mmap(AC1L),BRC1 ; BRC1=(NL)-1 add AR1,
10、AR0 mov #0,T2 ; j=0 | rptblocal mid_loop-1 ; for (j=0; jLE1;j+) mov T2,AR5 ; AR5=id=i+LE1 mov T2,AR3 add AR0,AR5 ; AR5 = pointer to Xid.re add #1,AR5,AR2 ; AR2 = pointer to Xid.im add AR1,AR3 ; AR3 = pointer to Xi.re | rptblocal inner_loop-1 ; for(i=j; i#1,dual(*AR3) ; Scale Xi by 1/SCALE mov dbl(*A
11、R3),AC2 scale add T0,AR2| sub dual(*AR4),AC2,AC1 ; Xid.re=Xi.re/SCALE-temp.re mov AC1,dbl(*(AR5+T0) ; Xid.im=Xi.im/SCALE-temp.im| add dual(*AR4),AC2 ; Xi.re=Xi.re/SCALE+temp.re mov AC2,dbl(*(AR3+T0) ; Xi.im=Xi.im/SCALE+temp.iminner_loop ; End of inner loop amar *CDP+ amar *CDP+ ; Update k for pointe
12、r to Uk| add #2,T2 ; Update j mid_loop ; End of mid-loop sub #1,T1 add #1,fft.d_L ; Update L bcc outer_loop,T10 ; End of outer-loop mov fft.d_ST1,AR2 ; Restore ST1,ST3,T2 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 ; Reset SP ret .end一、 填空题(共30分
13、,每空1分)1DSP的狭义理解为 数字信号处理器 ,广义理解为 数字信号处理方法 。2在直接寻址中,指令代码包含了数据存储器地址的低 7 位。当ST1中直接寻址编辑方式位CPL =0 时,与DP相结合形成16位数据存储器地址;当ST1中直接寻址编辑方式位CPL =1 时,加上SP基地址形成数据存储器地址。3TMS320C54有两个通用引脚,BIO和XF, BIO 输入引脚可用于监视外部接口器件的状态; XF 输出引脚可以用于与外部接口器件的握手信号。3932保护位3116高阶位150低阶位4累加器又叫做 目的寄存器 ,它的作用是存放从ALU或乘法器/加法器单元 输出的数据。它的存放格式为5桶形
14、移位器的移位数有三中表达方式: 立即数 ; ASM ; T低6位 6DSP可以处理双16位或双精度算术运算,当 C16=0 位双精度运算方式,当 C16=1 为双16位运算方式。7复位电路有三种方式,分别是 上电复位 ; 手动复位 ; 软件复位 。8立即数寻址指令中在数字或符号常数前面加一个 # 号,来表示立即数。9位倒序寻址方式中,AR0中存放的是 FFT点数的一半 。10一般,COFF目标文件中包含三个缺省的段: text 段; data 段和 bss 段。11汇编源程序中标号可选,若使用标号,则标号必须从 第一列 开始;程序中可以有注释,注释在第一列开始时前面需标上 星号或分号 ,但在其
15、它列开始的注释前面只能标 分号 。12C5402有23条外部程序地址线,其程序空间可扩展到 1M ,内程序区在 第0页 。13指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。 ADD *AR3+,14,AA 00 0000 1200A 00 0000 2700 C 1C 1AR3 0101 AR3 01000100h 15000100h 1500数据存储器 二、 简答(共40分)1 TMS320C54x有多少条16位总线?这些总线各有什么作用?(6分)答:C54x共有4组8条16位总线 1条程序总线(PB):传送取自程序存储器的指
16、令代码和立即操作数。 3条数据总线(CB、DB、EB):CB和EB传送从数据存储器读出的操作数;EB传送写到存储器中的数据。 4条地址总线(PAB、CAB、DAB、EAB)传送相应指令所学要的代码。2 TMS320C54x片内存储器一般包括哪些种类?如何控制存储器片内或片外的分配?(6分)答:TMS320C54x的片内存储空间分为3个可选择的存储空间:64K的程序空间,64K的数据空间和64K的I/O空间,所有TMS320C54x芯片都包括RAM、SARAM、DARAM。 程序空间:MP/MC=1 4000HFFFFH 片外 MP/MC=0 4000HEFFFH 片外 FF00HFFFFH 片
17、内 OVLY=1 0000H007FH 保留 0080H007FH 片内 OVLY=0 0000H3FFFH 片外 数据空间:DROM=1 F000HFEFFH 只读空间 FF00HFFFH 保留 DROM=0 F000HFEFFH 片外3 当TMS320C54x CPU接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?(6分)答:(1)出现多个中断时,此中断的优先级最高(2)INTM=0 允许全局中断 (3)IMR中的响应相应位为1,开放此中断。4 TMS320C54x硬件复位地址为多少?如何确定中断向量地址?计算INT0(IPTR=001H)的中断向量地址。(6分)答:复位后,复位向量
18、地址为:0080H 确定地址方式:IPTR+左移2位后的中断向量序列号 10H左移2位后成为40H,IPTR=001H,则中断向量地址为00C0H5 若辅助寄存器AR0的值为0x0005H,AR3的值为0x030FH,请分别给出下列寻址方式修改后的辅助寄存器的值。(6分)*AR3+ ; AR3=0310H*AR3+0 ; AR3=0314H*AR3(15) ; AR3=0324H6 分别解释以下指令的功能。(6分)LD #80h, A; 把立即数80H装入累加器ALD 80h, A; 把80H为地址的数据装如累加器ALD #80h,16, A; 把立即数80H左移16位后装如累加器A三、 程序
19、填空(共22分,每空2分)1实现计算z=x+y-w的程序。 title example1.asm mmregsSTACK usect STACK, 10h bss x,1 bss y, bss w,1 bss z,1 def start datatable: word 10,26,23 textstart: STM #0,SWWSR STM #STACK+10h,SP ;初始化堆栈指针SP STM #x,AR1 RPT #2 MVPD table,*AR1+ ;数据从程序存储器传送到数据存储器 CALL SUMBend: B endSUMB: LD x, A ADD y, A SUB w,A
20、;实现减法运算 STL A, z RET end2实现对数组X5=1,2,3,4,5的初始化,然后将数据存储器中的数组X5复制到数组Y5。最后实现数组X和数组Y中对应元素相乘并累加,即z=1*1+2*2+3*3+4*4+5*5 mmregs bss x, 5 bss y, 5 bss z, def starttable: word 1,2,3,4,5 text start: STM #x, AR1 RPT 4 MVPD table,*AR1+ ;从程序存储器传送到数据存储器数组X5 STM # x, AR2STM # y, AR3 RPT 4 MVDD *AR1,*AR3 ;从数据存储器数组X
21、5传送到Y5 SSBX FRCT ;准备整数乘法 STM # x, AR2 STM # y, AR3STM # z, AR4RPTZ 4 MAC *AR2+,*AR3+,A STL A,*AR4 End: B end end四、分析程序回答问题(共8分) def _c_int00 mmregsstack: usect stack,10h bss a,4 bss x,4 bss y,1 datatable: word 1,2,4,3 word 8,6,4,2 text_c_int00: STM #stack+10h,sp STM #a,AR1 RPT #7 MVPD table,*AR1+ CA
22、LL sumend: B endsum: STM #a,AR3 STM #x,AR4 RPTZ A,#3 MAC *AR3+,*AR4+,A STL A,y ret end (1) 说明该程序的功能:(4分)答:a1*x1=a2*x2+a3*x3+a4*x4(2) 说明以下各量的理论值(4分)A: 2A a1的地址:81H 内容:1 AR1: 88H AR3: 84H试卷A一、 填空题(1.5分20)1.1、(指令周期)是执行一条指令所需的时间,单位是nS纳秒。1.2、TMS320LF240xA系列DSP控制器内部的6套16位的总线分别为(程序读总线PRDB、程序地址总线PAB、数据读总线DR
23、DB、数据写总线DWDB 、数据读地址总线DRAB、数据写地址总线DWAB)。1.3、外围设备通过(外部总线PBUS接口)连接到内部存储器接口。1.4、中断按触发形式可分为两类,即软件中断和硬件中断。软件中断由(INTR)、(NMI)或(TRAP)指令请求;硬件中断由内部中断和外部中断组成,内部中断由(片内外设信号)触发;外部中断由(外部中断引脚上的信号)触发。1.5、TMS320LF2407A DSP控制器的SARAM即可用作(程序存储器)又可被用作(数据存储器)。1.6、含有片内闪速存储器的器件中Flash是被映射到(程序存储空间)。对于2407A来说,引脚的状态决定Flash是片内存储器
24、被访问还是片外存储器被访问。1.7、数字I/O模块有9个16位的控制寄存器,这些寄存器被存储器映射到(数据存储)空间。1.8、TMS320LF2407A DSP控制器的数字输入/输出引脚有(40)个。1.9、TMS320LF2407A DSP控制器内部的ADC模块是一个带有内置采样/保持的(10)位模数转换内核。1.10、SCI波特率选择寄存器可连接在一起形成一个16位的波特率值,用BRR表示,若CPU频率为40MHZ,SCI的异步波特率为5kb/s,则BRR为999(3E7h) 。二、 简答题(10分2)2.1、简要说明连续的自动排序模式和启动/停止方式的特点和不同。连续的自动排序模式: 当
25、触发信号触发SEQ1/SEQ2一组排序器对8个(可以小于8个)的任意通道按其预置好的排序进行转换。每一轮转换结果被保存到8个结果寄存器,SEQ1的结果寄存器为RESULT0RESULT7,SEQ2的结果寄存器为RESULT8RESULT15。 当最后一个通道被转换结束后,即申请中断。倘若这时CONTRUN位仍然为“1”,则SEQ1/SEQ2重新指向要转换的第一个通道。重新开始新一轮的转换。 在启动/停止方式下可实现在时间上单个和多个启动信号触发源同步的功能,所不同的是,在排序器完成第一个转换序列之后,在中断服务程序中不需要被复位,也就是说:排序器初始指针不需要指到CONV00就可以被重新触发。
26、因此一个转换序列之后,排序器指针指到当前的通道。在这种方式下,CONTRUN位必须被设置为“0”2.2、简述指令流水线操作的原理。指令流水线由发生在指令执行期间内的一系列总线操作序列组成。其特点是将指令的执行过程分为4个独立的阶段,即;(1)取指令阶段(Fetch);(2)指令译码阶段(Decode);(3)取操作数阶段(Operand);(4)指令执行阶段(Execute)。由于上述4个阶段是相互独立的,所以这些操作同一时间段内可以并行进行。因此,在任何给定的时钟周期内,可以同时有14条不同的指令被使能,而每条指令处于不同的执行阶段。三、 读程题(5分5)3.1对下述指令进行注释,并填出指令
27、执行后相关各寄存器和存储单元的内容: LDP #5 ;设置DP=5(指向028002FF区) ADD 9h,16 ;将数据存储单元0289h的内容左移16位 ;后加至累加器。结果存入累加器 3.2设OVM=0,注释下面指令,并填出下面各寄存器和存储单元在指令执行后的内容: ADDC *+,AR3 ;累加器结果正常溢出;当前辅助寄存器AR0指定的数据存储单元0300h的内容与ACC和C的内容相加,结果存入ACC;AR0的内容加1,指定AR3为下次辅助寄存器指令执行前指令执行后ARP0ARP3AR0300hAR0301hdma:300h0hdma:300h0hACC10FFFF FFFFhACC1
28、0hCC0OVOV3.3注释下面指令,并填出下面各寄存器和存储单元在指令执行后的内容:AND *- ;当前辅助寄存器AR2指定的数据存储单元0300h的内容与ACC的低位字逻辑“与”,结果存入ACC的低位字,ACC的高位字清零AR2的内容减1指令执行前指令执行后ARP2ARP2AR2300hAR22ffhdma:300h0F0Fhdma:300h0f0fhACC1234 5678hACC0000 0608hCC3.4设OVM为任意值,注释下面指令,并填出下面各寄存器和存储单元在指令执行后的内容: NEG ;累加器ACC的内容由其算术补码取代指令执行前指令执行后ACC0FFFF 1234hACC
29、00EDCChCCOVOV3.5设SXM=0,注释下面指令,并填出下面各寄存器和存储单元在指令执行后的内容:SUB *+,2,AR1 ;ACC的内容减去当前辅助寄存器AR6所 ;指定的数据存储单元02FEh的内容左移 ;2位后的值(移位时高位填零),;结果存入ACC 。AR6的内容加1 ;AR1指定为下次辅助寄存器指令执行前指令执行后ARP6ARP1AR62FEhAR62FFhdma:2FEh02hdma:2FEh02hACC08hACC10hCC四、 编程题(25分)下面的设计是一个LF2407A与发光二极管的接口电路及应用。设计电路如下图所示。74HC273用于驱动8个发光二极管,CLR接
30、LF2407A的复位引脚,使在复位时74HC273输出为低电平,不点亮发光二极管。LF2407A的IOPA3、IOPA4、IOPA5分别接74LVC138的A、B及C输入,通过其Y7选通CLK作为74HC273的控制信号。当Y7输出为高时,74HC273的输出有效(即输出信号反映输入的内容);当Y7输出为低时,74HC273的输出无效(即输入变化时输出不变)。用IOPB端口来控制发光二极管的亮灭(某位为高则相应的LED发光,某位为低则相应的LED熄灭)。编程序时,通常先向IOPB端口发送需要显示的数据,再通过Y7发送一个脉冲,循环点亮8个发光二极管(由LED8至LED1,间隔0.5秒)。 可认为0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省驻马店市汝南县双语学校、清华园学校2025-2026学年八年级上学期1月期末考试历史试卷(含答案)
- 江苏省苏州市姑苏区光华中学2025-2026学年七年级上学期期末测试历史卷(含答案)
- 文秘试题及答案
- 网约车考试题库及答案
- 2022~2023质量员考试题库及答案解析第117期
- 2021年部编人教版一年级语文上册期中测试卷(1套)
- 公司实习总结15篇
- 营口小升初数学综合测试卷及参考答案
- 电气设备选型技术要领
- 生理解剖考试题型及答案
- 2026届浙江绍兴市高三一模高考数学试卷试题(含答案)
- 情趣用品项目计划书
- 2025年中考语文文言文真题汇编47份(分师生版)
- DBJ∕T 15-106-2015 顶管技术规程
- 湖北省咸宁市2025-2026学年物理高二上期末复习检测试题含解析
- 2025年煤层气开发行业分析报告及未来发展趋势预测
- 全民健身中心建设工程施工方案
- 传统文化音乐课题申报书
- GB/T 21526-2025结构胶粘剂粘接前金属和塑料表面处理导则
- 天然气管道应急抢修技术方案
- (2025年标准)情侣欠钱协议书
评论
0/150
提交评论