南昌大学《嵌入式系统》期末考试试卷A卷

上传人:a****c 文档编号:142544202 上传时间:2020-08-20 格式:PDF 页数:9 大小:579.95KB
返回 下载 相关 举报
南昌大学《嵌入式系统》期末考试试卷A卷_第1页
第1页 / 共9页
南昌大学《嵌入式系统》期末考试试卷A卷_第2页
第2页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《南昌大学《嵌入式系统》期末考试试卷A卷》由会员分享,可在线阅读,更多相关《南昌大学《嵌入式系统》期末考试试卷A卷(9页珍藏版)》请在金锄头文库上搜索。

1、考试复习重点资料(最新版)考试复习重点资料(最新版) 封封 面面 第1页 资料见第二页资料见第二页 第 1 页 共 8 页 南昌大学南昌大学 20072008 学年第一学期期末期末考试试卷学年第一学期期末期末考试试卷 试卷编号:试卷编号: 12035 ( A )卷卷 课程编号:课程编号:X61030014课程名称:课程名称:嵌入式系统嵌入式系统考试形式:考试形式:闭卷闭卷 适用班级:适用班级: 2004 级计算机级计算机姓名:姓名:学号:学号:班级:班级: 学院:学院:信息工程学院信息工程学院专业:专业:计算机科学与技术计算机科学与技术考试日期:考试日期: 题号题号一一二二三三四四五五六六七七

2、八八九九十十总分总分累 分 人累 分 人 签签名名 题分题分40122424100 得分得分 考生注意事项:1、本试卷共 5 页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。 一、 填空题(每空 2 分,共 40 分) 得分得分评阅人评阅人 1、ARM 微处理器有7 种工作模式,它们分为两类非特权模式、特权 模式。其中用户模式属于非特权模式 2、ARM 支持两个指令集, ARM 核因运行的指令集不同,分别有两个状态 ARM、 Thumb,状态寄存器 CPSR 的T位反映了处理器运行不 同指令的当前状态 3、ARM 核有多个寄

3、存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, R15寄存器用于存储 PC,R13 通常用来存储SP 4、ARM 处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼,数 据和指令分开使用不同接口的是哈佛结构 第 2 页 共 8 页 5、ARM 微处理器复位后, PC 的地址通常是 0 x0, 初始的工作模式是 Supervisor。 6、ARM 微处理器支持虚拟内存, 它是通过系统控制协处理器 CP15和 MMU (存 储管理部件)来进行虚拟内存的存储和管理。当系统发生数据异常和 指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制, 通 过 MMU 交换物理内存和虚

4、拟内存的页面,以保证程序正常执行。 7、编译链接代码时,有两种存储代码和数据的字节顺序,一种是 小端对齐,另 一种是打断对齐 8、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是 GNU 工具 链,ARM 公司提供的工具链是 ADS 工具链 9、计算机有 CISC 和 RISC 两种类型,以 ARM 微处理器为核心的计算机属于 RISC、类型,其指令长度是定长的。 二、 指令测试题(共 12 分) 得分得分评阅人评阅人 1、写一条 ARM 指令,完成操作 r1 = r2 * 3(4 分) ADD R1,R2,R2, LSL #1 2、初始值 R1=23H,R2=0FH 执行指令 B

5、ICR0, R1,R2,LSL #1 后,寄存器 R0, R1 的值分别是多少?(4 分) R0=21H,R1=23H 3、说明指令 STMIA r12!, r0-r11的操作功能。 (4 分) 将 R0-R11 十二个寄存器中的 32 位数据,存储到 R12 地址指针为起始地址的内存中, 地址的操作方式是先操作、后增加,并更新地址。 第 3 页 共 8 页 4、写一段 ARM 汇编程序:循环累加队列 myarray 中的所有元素,直到碰上零值元素, 结果放在 r4 中。程序框架如下,补充代码完成上述功能。 (8 分) AREA total, CODE READONLY ENTRY start

6、 MOVr4, #0 ADRr0, myarray ;在此补充代码 loop LDR r1, r0, #4 ADDr4, r4, r1 CMPr1, #0 BNEloop 5、这是一个由源程序 strtest.c 和 scopy.s 组成的混合程序项目,通过调用 strcopy 完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符“/”后,说明该 句程序的作用,并说明 extern 和 EXPORT 伪指令的在程序中的作用。 (8 分) strtest.cstrtest.c #include extern void strcopy(char *d, const char *s); in

7、t main() const char *srcstr = First string - source; char dststr = Second string - destination; 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.s AREASCopy, CODE, READONLY EXPORT strcopy

8、 strcopy LDRBr2, r1,#1; STRBr2, r0,#1; CMPr2, #0; BNEstrcopy; MOVpc,lr; END 第 4 页 共 8 页 /输出源串和目标串(8 分) /调用 strcopy 函数 /输出复制后的源串和目标串 ;r1 指向源串,从源串载入一个字节的字符到 r2,并更新 r1=r1+1 ;r0 指向目标串,从 r2 保存一个字节的字符到目标串,并更新 r0=r0+1 ;测试串尾标志0 ;非零转标号 strcopy ;返回 三、 程序测试题(共 24 分) 得分得分评阅人评阅人 1、写一段 ARM 汇编程序:循环累加队列 myarray 中的所

9、有元素,直到碰上零值元素, 结果放在 r4 中。程序框架如下,补充代码完成上述功能。 (8 分) AREA total, CODE READONLY ENTRY start MOVr4, #0 ADRr0, myarray ;在此补充代码 答: loop LDR r1, r0, #4 ADDr4, r4, r1 CMPr1, #0 BNEloop stop Bstop myarray DCD 0 x11 DCD 0 x22 DCD 0 x0 END 2、有如下程序段,画出程序流程图,并回答执行程序以后 R0 的值是多少。 (8 分) numEQU2 start MOVr0, #0 MOVr1,

10、 #5 MOVr2, #2 第 5 页 共 8 页 BLfunc stop Bstop func CMPr0, #num MOVHSpc, lr ADRr3, JumpTable LDRpc, r3,r0,LSL#2 JumpTable DCDDoA DCDDoS DoA ADDr0, r1, r2 MOVpc, lr DoS SUBr0, r1, r2 MOVpc,lr END 答:R0 为 0 调用 DoA,R0 为 1 调用 DoS,R0 大于 2 直接返回,流程图略。R0=7 3、这是一个由源程序 strtest.c 和 scopy.s 组成的混合程序项目,通过调用 strcopy 完

11、成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符后,说明该句 程序的作用,并说明 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; printf(Before copying:n); printf(%sn%sn,srcstr,d

12、ststr); /输出源串和目标串 strcopy(dststr,srcstr);/调用 strcopy 函数 printf(After copying:n); printf(%sn%sn,srcstr,dststr);/ 输出复制后的源串和目标 串 return 0; scopy.sscopy.s AREASCopy, CODE, READONLY EXPORT strcopy strcopy LDRBr2, r1,#1;r1 指向源串,从源串载入一个字节的字符到 r2, 第 6 页 共 8 页 并更新 r1=r1+1 STRBr2, r0,#1;r0 指向目标串,从 r2 保存一个字节的字

13、符到目标串, 并更新 r0=r0+1 CMPr2, #0;测试串尾标志0 BNEstrcopy;非零转标号 strcopy MOVpc,lr;返回 END 第 7 页 共 8 页 四、 问答题(每题 6 分,共 24 分) 得分得分评阅人评阅人 1、目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。 Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX 任选六 2、ARM 系统中的堆栈有四种,如下图。请按图标出四种堆栈的类型。ATPCS 编程规 范约定使用的堆栈是哪一种? 答:FD、FA、ED、EA。ATPCS 编程规范约定使用的

14、堆栈是 FD 3、Boot Loader 在嵌入式系统中主要起什么作用?完成哪些主要的工作? 答:Boot Loader 是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。 通过 Boot Loader,初始化硬件设备,建立内存和 I/O 空间映射图,为最终加载操作 系统内核调整好适当的系统软硬件环境。 4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在 Windows 主机 上使用什么软件建立连接?在 Linux 主机上使用什么软件建立连接? 1、答:RS-232,以太网口、并口 在 Windows 主机上使用超级终端软件 在 Linux 主机上使用 Minicom

15、 软件 第 8 页 共 8 页 5 嵌入式开发环境主要包括哪些组件? 嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括 宿主机 目标机(评估电路板) 基于 JTAG 的 ICD 仿真器、或调试监控软件、或在线仿真器 ICE 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境 嵌入式操作系统 6在进行基于 ARM 核的嵌入式系统软件开发时,调用如下函数: int do_something(int arg1,void *arg2,char arg3,int *arg4) 这四个参数通过什么方式从调用程序传入被调函数? 根据 ATPCS 编程规范,调用函数和子程序通过 R0R3 四个寄存器传递参数,超 过四个参数使用堆栈传递。因此 arg1 通过 R0 传入, arg2, 通过 R1 传入,arg3 通过 R2 传入,arg4 通过 R3 传入 7目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。 Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX 任选六

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号