1、题号一二三四五六七八九十总分累分人 签名题分40122424 100得分考生注意事项:、本试卷共页,请查看试卷中是否有缺页或破损.如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、 填空题(每空2分,共40分)得分评阅人1、 ARM微处理器有7种工作模式,它们分为两类非特权模式、特权模式 其中用户模式属于非特权模式2、 ARM支持两个指令集, AR核因运行的指令集不同,分别有两个状态AM、humb,状态寄存器CPSR的位反映了处理器运行不同指令的当前状态3、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,5寄存器用于存储P,R1通
2、常用来存储SP4、 R处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结构5、 R微处理器复位后,PC的地址通常是0,初始的工作模式是Suervisor。6、 ARM微处理器支持虚拟内存,它是通过系统控制协处理器P和MU(存储管理部件)来进行虚拟内存的存储和管理。当系统发生 数据异常和指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过M交换物理内存和虚拟内存的页面,以保证程序正常执行。7、 编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是打断对齐8、 构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是
3、GN工具链,ARM公司提供的工具链是AD工具链9、 计算机有CISC和RSC两种类型,以AR微处理器为核心的计算机属于RIS、类型,其指令长度是定长的 .二、 指令测试题(共12分)1、 写一条 AM 指令,完成操作r1 =2 3(4分)ADR1,R2,R2,L12、 初始值R123H,R2=0F执行指令BI , R1,R,SL1后,寄存器R0,R的值分别是多少?(4分)21H,R1=23H 、说明指令SMIAr12!, r0-1的操作功能。(4分)将R011十二个寄存器中的32位数据,存储到R2地址指针为起始地址的内存中,地址的操作方式是先操作、后增加,并更新地址。、写一段 AM汇编程序:循
4、环累加队列myaray中的所有元素,直到碰上零值元素,结果放在4中。程序框架如下,补充代码完成上述功能.(分)EAotal, CDERDONLYENTYsttOr4,0DR r, myaray;在此补充代码looLDR 1, r0,ADD, r4,r1CPr,0BNEloop5、这是一个由源程序rtest.和cy。s组成的混合程序项目,通过调用rcop完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符“/”后,说明该句程序的作用,并说明extern和EXOT伪指令的在程序中的作用(8分)strtest。cnld stdio.htevi stco(char *d, cnst car s
5、);int min() contcar *srcsr = Fir strng sourc; cartsr= ”Second string- desinatio; rntf(”Beore opyng:n); pntf(” %n %n,srstr,dsts);/ srcopy(dstsr,srcstr);/ prif(Afr cpin:n”); prit(” %sn ”,srcstr,dttr);/ retun 0;scopy.ARA SCoy, OE, REAONL EXPRTstrtrcopy LDB 2, ,1 ; STR r2, r, ; CP 2,# ; BN strcop ; MV p
6、c, ;EN/输出源串和目标串 (8分)/调用stropy函数/输出复制后的源串和目标串;r1指向源串,从源串载入一个字节的字符到2,并更新=r1+1;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1;测试串尾标志0;非零转标号sy ;返回三、 程序测试题(共24分)、写一段 R汇编程序:循环累加队列yarr中的所有元素,直到碰上零值元素,结果放在r中。程序框架如下,补充代码完成上述功能。(分) ot, CODEDONYETRtartOVr4, #DR r, myarry;在此补充代码答:loopLDR r1,r0,#4ADr4, r, r1Pr1,0BNEoopstoB
7、 tpyaayDCD 0x1DCD02DC 00ED2、有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少.(8分)num EU 2 sart OV r0, #0 MOV r1, #5 OV r,2 BL fu stopB stofnc CMP r, num MOVHS c, lr AD r3, JumpTable LDR pc, r,r0,LSL# JumpTable D D CD DDA ADD r0, r1, MOV pc,lr DS B 0,r,2 O pc,lr END 答:R0为0调用DoA,R0为1调用o,R0大于2直接返回,流程图略。R0=73、 这是一个由源程序t
8、rte.c和cop。s组成的混合程序项目,通过调用sropy完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符后,说明该句程序的作用,并说明extn和EXOR伪指令的在程序中的作用。(分)ttes。#inludedo。hetern vid stropy(cha *, cost r *s);itmn() cons cr srt = ”Firs srng - surce”; ar dststr ”Second strig estiain; rintf(Before copying:n”); rintf(” sn %s”,srctr,tstr);/输出源串和目标串 strcopy(stst
9、r,rcstr);/调用srcopy函数 prin(fte cpyig:n”); pintf(” %n %sn,scstr,dsttr);/ 输出复制后的源串和目标串 return0;scp。sAREA Sopy,COD,EONL EXPR stropystrcopy LDB r, r1, ;r1指向源串,从源串载入一个字节的字符到r,并更新r=1+1 STB r2,r0,#1 ;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=0 P r, #0 ;测试串尾标志 BN strcop ;非零转标号strcopy MOV c,lr ;返回 END四、 问答题(每题6分,共24分)得分
10、评阅人1、 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的.WindowsC/dows ble、VxWork、nux、uCs、Syba、QX任选六2、ARM系统中的堆栈有四种,如下图。请按图标出四种堆栈的类型。ATP编程规范约定使用的堆栈是哪一种?答:、FA、ED、EATPCS编程规范约定使用的堆栈是FD3、Bot de在嵌入式系统中主要起什么作用?完成哪些主要的工作?答:tLoader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过oot oader,初始化硬件设备,建立内存和I空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。4、搭建嵌入式开发环境,连
11、接目标板,一般使用什么通信接口连接?在Winows主机上使用什么软件建立连接?在inux主机上使用什么软件建立连接?1、 答:RS32,以太网口、并口在Widows主机上使用超级终端软件在Linx主机上使用Mnicom软件5嵌入式开发环境主要包括哪些组件?嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括l 宿主机l 目标机(评估电路板)l 基于JTAG的IC仿真器、或调试监控软件、或在线仿真器ICEl 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境l 嵌入式操作系统6 在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:it do_somthig(int arg,v arg,cha arg3,int*arg)这四个参数通过什么方式从调用程序传入被调函数?根据TCS编程规范,调用函数和子程序通过3四个寄存器传递参数,超过四个参数使用堆栈传递。因此rg1通过0传入, arg2,通过传入,arg3通过R2传入,arg4通过R传入7 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。WinosC/Winows Mobile、xWo、Liux、uos、Syban、QX任选六第 8 页 共 8 页