《嵌入式期末考试卷A卷.pdf》由会员分享,可在线阅读,更多相关《嵌入式期末考试卷A卷.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.-题号题号题分题分得分得分考生注意事项:1、本试卷共 5 页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一一4040二二1212三三2424四四2424五五六六七七八八九九十十总分总分100100累累 分分 人人签签名名一、填空题(每空 2 分,共 40 分)得分得分评阅人评阅人1、ARM 微处理器有 7 种工作模式,它们分为两类非特权模式、特权模式。其中用户模式属于非特权模式2、ARM 支持两个指令集,ARM 核因运行的指令集不同,分别有两个状态 ARM、Thumb,状态寄存器 CPSR 的 T 位反映了处理器运行不同指
2、令的当前状态3、ARM 核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,R15 寄存器用于存储 PC,R13 通常用来存储 SP4、ARM 处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结构-可修编.-5、ARM 微处理器复位后,PC 的地址通常是 0 x0,初始的工作模式是 Supervisor。6、ARM 微处理器支持虚拟内存,它是通过系统控制协处理器 CP15 和 MMU(存储管理部件)来进行虚拟内存的存储和管理。当系统发生 数据异常和指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过 MMU交换物理内存和虚
3、拟内存的页面,以保证程序正常执行。7、编译代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是打断对齐8、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是 GNU 工具链,ARM 公司提供的工具链是 ADS 工具链9、计算机有CISC和RISC两种类型,以ARM微处理器为核心的计算机属于RISC、类型,其指令长度是定长的。二、指令测试题(共 12 分)1、写一条 ARM 指令,完成操作 r1=r2*3(4 分)ADD R1,R2,R2,LSL#12、初始值 R1=23H,R2=0FH 执行指令 BICR0,R1,R2,LSL#1 后,寄存器 R0,R1 的值分别是多少?
4、(4 分)R0=21H,R1=23H3、说明指令 STMIA r12!,r0-r11的操作功能。(4 分)将 R0-R11 十二个寄存器中的 32 位数据,存储到 R12 地址指针为起始地址的内存中,-可修编.-地址的操作方式是先操作、后增加,并更新地址。4、写一段 ARM 汇编程序:循环累加队列 myarray 中的所有元素,直到碰上零值元素,结果放在 r4 中。程序框架如下,补充代码完成上述功能。(8 分)AREA total,CODE READONLYENTRYstartMOVr4,#0ADRr0,myarray;在此补充代码loopLDR r1,r0,#4ADDr4,r4,r1CMP
5、r1,#0BNEloop5、这是一个由源程序strtest.c 和 scopy.s 组成的混合程序项目,通过调用strcopy 完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符“/”后,说明该句程序的作用,并说明 extern 和 EXPORT 伪指令的在程序中的作用。(8 分)strtest.cstrtest.c#include extern void strcopy(char*d,const char*s);int main()const char*srcstr=First string-source;char dststr=Second string-destination;
6、printf(Before copying:n);printf(%sn%sn,srcstr,dststr);/strcopy(dststr,srcstr);/printf(After copying:n);printf(%sn%sn,srcstr,dststr);/return 0;scopy.sscopy.sAREASCopy,CODE,READONLYEXPORT strcopystrcopyLDRBr2,r1,#1;STRBr2,r0,#1;CMPr2,#0;-可修编.-BNEstrcopy;MOVpc,lr;END/输出源串和目标串(8 分)/调用 strcopy 函数/输出复制后的源
7、串和目标串;r1 指向源串,从源串载入一个字节的字符到 r2,并更新 r1=r1+1;r0 指向目标串,从 r2 保存一个字节的字符到目标串,并更新 r0=r0+1;测试串尾标志0;非零转标号 strcopy;返回三、程序测试题(共 24 分)1、写一段 ARM 汇编程序:循环累加队列 myarray 中的所有元素,直到碰上零值元素,结果放在 r4 中。程序框架如下,补充代码完成上述功能。(8 分)AREA total,CODE READONLYENTRYstartMOVr4,#0ADRr0,myarray;在此补充代码答:loopLDR r1,r0,#4ADDr4,r4,r1CMP r1,#
8、0BNEloopstopBstopmyarrayDCD 0 x11DCD0 x22DCD 0 x0END2、有如下程序段,画出程序流程图,并回答执行程序以后 R0 的值是多少。(8 分)numEQU2-可修编.-startMOVr0,#0MOVr1,#5MOVr2,#2BLfuncstopBstopfuncCMPr0,#numMOVHSpc,lrADRr3,JumpTableLDRpc,r3,r0,LSL#2JumpTableDCDDoADCDDoSDoAADDr0,r1,r2MOVpc,lrDoSSUBr0,r1,r2MOVpc,lrEND答:R0 为 0 调用 DoA,R0 为 1 调用
9、DoS,R0 大于 2 直接返回,流程图略。R0=73、这是一个由源程序 strtest.c 和 scopy.s 组成的混合程序项目,通过调用 strcopy 完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符后,说明该句程序的作用,并说明 extern 和 EXPORT 伪指令的在程序中的作用。(8 分)strtest.cstrtest.c#include extern void strcopy(char*d,const char*s);int main()const char*srcstr=First string-source;char dststr=Second string
10、-destination;printf(Before copying:n);printf(%sn%sn,srcstr,dststr);/输出源串和目标串strcopy(dststr,srcstr);/调用 strcopy 函数printf(After copying:n);printf(%sn%sn,srcstr,dststr);/输出复制后的源串和目标串return 0;-可修编.-scopy.sAREASCopy,CODE,READONLYEXPORT strcopystrcopyLDRBr2,r1,#1;r1 指向源串,从源串载入一个字节的字符到r2,并更新 r1=r1+1STRBr2,
11、r0,#1;r0 指向目标串,从 r2 保存一个字节的字符到目标串,并更新 r0=r0+1CMPr2,#0;测试串尾标志0BNEstrcopy;非零转标号 strcopyMOVpc,lr;返回END-可修编.-四、问答题(每题 6 分,共 24 分)得分得分评阅人评阅人1、目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX 任选六2、ARM 系统中的堆栈有四种,如下图。请按图标出四种堆栈的类型。ATPCS 编程规 X约定使用的堆栈是哪一种?栈栈Lo AddressLo Addre
12、ss空空间间的的增增长长地方方址向向的SPSPSPSP增。长栈栈方空空向间间的的增增长长方方向向Hi AddressHi Address答:FD、FA、ED、EA。ATPCS 编程规 X 约定使用的堆栈是 FD3、Boot Loader 在嵌入式系统中主要起什么作用?完成哪些主要的工作?答:Boot Loader 是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过 Boot Loader,初始化硬件设备,建立内存和 I/O 空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在 Windows 主机上使用什
13、么软件建立连接?在 Linux 主机上使用什么软件建立连接?1、答:RS-232,以太网口、并口在 Windows 主机上使用超级终端软件在 Linux 主机上使用 Mini 软件-可修编.-5 嵌入式开发环境主要包括哪些组件?嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括宿主机目标机(评估电路板)基于 JTAG 的 ICD 仿真器、或调试监控软件、或在线仿真器 ICE运行于宿主机的交叉编译器和器、以及开发工具链或软件开发环境嵌入式操作系统6在进行基于 ARM 核的嵌入式系统软件开发时,调用如下函数:int do_something(int arg1,void*arg2,char arg3,int*arg4)这四个参数通过什么方式从调用程序传入被调函数?根据 ATPCS 编程规 X,调用函数和子程序通过 R0R3 四个寄存器传递参数,超过四个参数使用堆栈传递。因此 arg1 通过 R0 传入,arg2,通过 R1 传入,arg3 通过R2 传入,arg4 通过 R3 传入7目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX 任选六-可修编.
限制150内