吉林大学2011级《嵌入式系统》期末考试试题答案(-B卷)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2013-2014学年第2学期2011级《嵌入式系统》期末考试答案(B卷)考试时间:2014年6月班级学号姓名请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。一、填空(每空1分,共20分)1.A-4,A-82.用户模式;系统模式。3.前面指令的执行结果是相等,本条指令的执行影响CPSR中的条件码4.最低字节,最高字节。5.寄存器间接寻址。6.7;特权。7.0x00000004;0x4000300C。8.多寄存器存储;先数据存储,再地址增加9.FFFFFF9A。10.Thumb状态,1。11.保存CPSR的值。12.液晶。二、判断(每题1分,共5分)1、(T)2、(F)3、(F)4、(F)5、(T)三、名词解释(每题2分,共10分)1、TLBTranslationlookasideBuffer块表2、ARMAdvancedRISCMachine先进精简指令集公司3、SoCSystemOnchip片上系统4、JTAGJointTestActionGroup点测试工作组5、RTOSRealTimeOperatingSystem实时操作系统四、简答(每题3分,共15分)1、(1)发生异常,处理器自动改变CPSR中M[4:0]的值,进入相应的工作模式;(2)处理器处于特权模式时,用指令向CPSR的M[4:0]字段写入特定的值,进入相应的工作模式。2、答题要点:保存断点至LR保存状态SPSR修改工作模式修改状态需要时禁止CPSR的F、I标志转到中断服务程序3、简述基于段的地址变换过程。答题要点:(图示和说明2选1)(1)、页表基地址存储在CP15的C2寄存器中(2)、一级页表内偏移序号,段内偏移地址由正在执行的指令给出(3)、一级描述符地址=C2寄存器中的页表基地址与指令中一级页表内偏移序号组合而成(4)、一级描述符地址内存储的是一级描述符(5)、要寻址的地址=物理基地址(一级描述符)和段内地址偏移量(指令中)组合而成4、比较S3C44B0XARM处理器的向量中断方式和非中断向量方式?参考要点:(1)、向量中断与非向量中断的功能都是识别中断源,进而调用对应中断源的中断服务程序,使中断源得到中断服务.(2)、区别在于中断源的识别方法:非向量中断采用专门的一段程序识别中断源,查询中断向量表找到对应中断源的中断向量,进而调用对应中断源的中断服务程序。向量中断采用专门的硬件技术识别中断源,自动找到对应中断源的中断向量,进而调用对应中断源的中断服务程序。向量中断由于采用专门硬件技术识别中断源,因此比非向量中断执行效率高,节省时间。5、0xabcd;{FALSE};”Outputnum1:0000abcdL2:Fstr3:Test!”五、程序分析(每题5分,共20分)1、说明下面函数的主要功能。答题要点:(1)函数为字符串(数据块)拷贝(2)源串首地址为SRC,目的串首地址为DST2、LDRNER0,[LR,#-2];BICNER0,R0,#0xFF00;LDREQR0,[LR,#-4];3114130页表基地址为0CP15中的寄存器C23120190虚拟地址31141321031201912111098543210一级页表内偏移序号段内地址偏移量页表基地址一级页表内偏移序号00物理基地址0AP用户定义3120190段对应的物理基地址段内地址偏移量一级描述符段的物理地址一级描述符地址0域BC10BICEQR0,R0,#0xFF000000;3、MAP0x10F00AFIELD100BFIELD1604、答题参考要点:(1)I_ISPR为32位寄存器,每一位对应一个中断源,位0对应ADC中断源位1对应RTC中断源位2对应UTXD0中断源。。。(2)当申请中断的中断源即将得到CPU服务时,I_ISPR对应中断源的位置1(3)依据I_ISPR与中断源的对应关系,建立中断向量表。中断向量表中按I_ISPR与中断源的关系安排中断向量顺序:中断向量0:ADC中断源中断向量1:RTC中断源中断向量2:UTXD0中断源…(4)中断向量内保存对应中断源的中断服务序首地址(5)红色部分程序段的功能是:依据I_ISPR计算中断源的中断向量地址相对中断向量表首地址的偏移量,保存在寄存器R8中。(6)黑色部分程序段的功能是:依据中断向量表HandleADC与R8计算中断向量地址,保存在寄存器R9中(7)蓝色部分程序段的功能是:转移到中断服务程序执行5、答题要点:(1)ED为堆栈规则,意为空递减堆栈(2)图示六、程序设计(每题5分,共15分)1、答题要点:(1)C语言和汇编程序框架完整(2)参数传递正确(3)正确实现功能2、答题要点:(1)程序框架完整(2)变量定义正确(3)变量初始化正确(4)正确实现功能AREAFctrl,CODE,READONLY;声明代码段FctrlENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOVR0,#0xB000;初始化寄存器MOVR1,#0x10000001MOVR2,#100/*start.s*/IMPORTFactorial;声明Factorial是一个外部函数NiEQU20;要计算的阶乘数AREAFctrl,CODE,READONLY;声明代码FctrlENTRY;标识程序入口startMOVR0,#Ni;将参数装入R0BLFactorial;调用Factorial,并通过R0传递参数/*注:在此处观察结果*/StopBStopEND;文件结束/*factorial.c*/longlongFactorial(charN){chari;longlongNx=1;for(i=1;i=N;i++)Nx=Nx*i;returnNx;//通过R0,R1返回结果}loop_1;第一次循环赋值STRR1,[R0],#4ADDR1,R1,#1SUBSR2,R2,#1BNEloop_1MOVR0,#0xB000MOVR2,#100MOVR9,#0MOVR8,#0loop_2;第二次循环累加LDRR1,[R0],#4ADDSR8,R1,R8;R8=R8+R1,进位影响标志位ADDCR9,R9,#0;R9=R9+C,C为进位位SUBSR2,R2,#1BNEloop_2StopBStop;文件结束END3、答题要点:(1)程序框架完整(2)变量定义正确(3)变量初始化正确(4)正确实现功能AREABit_Exch,CODE,READONLY;声明代码段Bit_ExchENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR0,=0x55555555;输入源数据MOVR3,#0;目标数据MOVR5,#0;数据临时缓冲区MOVR4,#32;计数器Bitex_H32ANDR5,R0,#1;取出源数据的最低位送R5ORRR3,R5,R3,LSL#1;将目标数据左移一位,并将取出的数据;送入其最低位MOVR0,R0,LSR#1;源数据右移一位SUBSR4,R4,#1;递减计数BNEBitex_LLDRR1,=0x55555555;输入源数据MOVR2,#0;目标数据MOVR5,#0;数据临时缓冲区MOVR4,#32;计数器Bitex_L32ANDR5,R1,#1;取出源数据的最低位送R5ORRR2,R5,R2,LSL#1;将目标数据左移一位,并将取出的数据;送入其最低位MOVR1,R1,LSR#1;源数据右移一位SUBSR4,R4,#1;递减计数BNEBitex_LStopBStopEND七、接口设计(15分)1、G的第4,5,6,7管脚分别于LED相连,低电平控制闪亮;端口A的第0管脚用来控制蜂鸣器;低电平蜂鸣。(3分)2、端口设置(2分)3、(1)端口初始化正确2分(2)数码管编码表正确2分(3)蜂鸣器控制正确2分(4)程序正确4分

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功