嵌入式期末考试试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式期末考试试卷
arm期末复习资料
试题一
1、 ARM微处理器有 7种工作模式,它们分为两类非特权模式、特权模式。
其中用户模式属于非
特权模式
ARM处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结 2、 ARM微处理器复位后,PC的地址通常是
0x0 ,初始的工作模式是Supervisor 。
3、 ARM微处理器支持虚拟内存,它是通过系统控制协处理器 CP15 和MMU(存储管理部件)来进行虚拟内存的存储和
管理。
当系统发生数据异常和
指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU 交换物理内存和虚拟内存的页面,以保证程序正常执行。
4、 ARM支持两个指令集, ARM核因运行的指令集不同,分别有两个状态
ARM 、 Thumb ,状态寄存器CPSR
的 T 位反映了处理器运行不同指令的当前状态
5、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,
R15 寄存器用于存储PC,R13通常用来存储 SP
6、编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是打断对齐
7、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是 GNU工具链,ARM公司提供的工具链是 ADS工具链
计算机有CISC和RISC两种类型,以ARM微处理器为核心的计算机属于 RISC 类型,其指令长度是定长的 1、目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。
Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX任选六
2、ARM系统中的堆栈有四种,如下图。
请按图标出四种堆栈的类型。
ATPCS编程规范约定使用的堆栈是哪一种?
栈空间的增长方向Lo Address栈空间的增长方向Lo AddressSP。
SP栈空间的增
长方向SPSP栈空间的增长方向地址的增长方向Hi AddressHi Address答:FD、FA、ED、EA。
ATPCS编程规范约定使用的堆栈是FD
3、Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作?
答:Boot Loader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。
通过Boot Loader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作
系统内核调整好适当的系统软硬件环境。
4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在Windows主
机上使用什么软件建立连接?在Linux主机上使用什么软件建立连接?
1、答:RS-232,以太网口、并口
在Windows主机上使用超级终端软件在Linux主机上使用Minicom软件 5嵌入式开
发环境主要包括哪些组件?
嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括
? 宿主机 ? 目标机(评估电路板) ? 基于JTAG的ICD仿真器、或调试监控软件、
或在线仿真器ICE ? 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境 ? 嵌入式操作系统
6 在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:
int do_something(int arg1,void *arg2,char arg3,int *arg4)
这四个参数通过什么方式从调用程序传入被调函数?
根据ATPCS编程规范,调用函数和子程序通过R0――R3四个寄存器传递参数,超过
四个参数使用堆栈传递。
因此arg1通过R0传入, arg2, 通过R1传入,arg3通过R2传入,arg4通过R3传入 7 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。
Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX任选六 1、写
一条 ARM 指令,完成操作r1 = r2 * 3(4分)
ADD R1,R2,R2, LSL #1
第页共 16 页
1
2、初始值R1=23H,R2=0FH执行指令BIC R0, R1,R2,LSL #1后,寄存器R0,R1的值分别是多少?
(4分)
R0=21H,R1=23H
3、说明指令STMIA r12!, {r0-r11}的操作功能。
(4分)
将R0-R11十二个寄存器中的32位数据,存储到R12地址指针为起始地址的内存中,
地址的操作方式是先操作、后增加,并更新地址。
4、写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。
程序框架如下,补充代码完成上述功能。
(8分) AREA total, CODE READONLY ENTRY start MOV r4, #0 ADR r0, myarray
;在此补充代码 loop
LDR r1, [r0], #4 ADD r4, r4, r1 CMP r1, #0 BNE loop
5、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy 完成字符串复制,程序代码如下。
要求阅读程序,在程序中的注释符“//”后,说明该句
程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。
(8分)
strtest.c
#include
extern void strcopy(char *d, const char *s); int main()
{ const char *srcstr = \ char dststr[] = \
printf(\
printf(\ // strcopy(dststr,srcstr); //
printf(\
printf(\// return 0; }
scopy.s
AREA SCopy, CODE, READONLY
EXPORT strcopy strcopy
LDRB r2, [r1],#1 ; STRB r2, [r0],#1 ; CMP r2, #0 ; BNE strcopy ; MOV
pc,lr ; END
//输出源串和目标串(8分)
//调用strcopy函数
//输出复制后的源串和目标串
;r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1
;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1 ;测试串尾
标志\\0 ;非零转标号strcopy ;返回一、程序测试题(共24分)
第页共 16 页
2
1、写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。
程序框架如下,补充代码完成上述功能。
(8分)
AREA total, CODE READONLY
ENTRY start MOV r4, #0 ADR r0, myarray
;在此补充代码答: loop
LDR r1, [r0], #4 ADD r4, r4, r1 CMP r1, #0 BNE loop stop B stop
myarray DCD 0x11 DCD 0x22 ?? DCD 0x0 END
2、有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少。
(8分)num EQU 2 start
MOV r0, #0 MOV r1, #5 MOV r2, #2
BL func stop
B stop
func CMP r0, #num MOVHS pc, lr ADR r3, JumpTable
LDR pc, [r3,r0,LSL#2] JumpTable
DCD DoA DCD DoS DoA
ADD r0, r1, r2 MOV pc, lr DoS
SUB r0, r1, r2 MOV pc,lr END
答:R0为0调用DoA,R0为1调用DoS,R0大于2直接返回,流程图略。
R0=7
3、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程
序代码如下。
要求阅读程序,在程序中的注释符后,说明该句程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。
(8分) strtest.c
#include
extern void strcopy(char *d, const char *s); int main()
{ const char *srcstr = \ char dststr[] = \
第页共 16 页
3
printf(\
printf(\ //输出源串和目标串 strcopy(dststr,srcstr); //调用strcopy函数 printf(\
printf(\// 输出复制后的源串和目标串 return 0; }
scopy.s
AREA SCopy, CODE, READONLY
EXPORT strcopy strcopy
LDRB r2, [r1],#1 ; r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1
STRB r2, [r0],#1 ;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1 CMP r2, #0 ;测试串尾标志\\0 BNE strcopy ;非零转标号strcopy MOV pc,lr ;返回END
第页共 16 页
4
试题二
一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。
1、
一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输
出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。
2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器,(嵌
入式DSP处理器),(嵌入式微处理器)以及片上系统。
3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(进程管理)、进程
间通信、(内存管理)、I/O资源管理。
4、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作
系统,其中实时系统亦可分为(硬实时系统)和软实时系统。
5、内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的
(通信),内核的基本服务是(任务切换)。
6、嵌入式开发一般采用(宿主机/目标机
方式)方式,其中宿主机一般是指(PC机或者台式机)。
7、哈佛体系结构数据空间和地
址空间(分开),ARM7TDMI采用(冯诺依曼体系)的内核架构。
8. ARM7TDMI采用(3)
级流水线结构,ARM920TDMI采用(5 )级流水线。
9 .按操作系统的分类可知,Dos操作系统属于顺序执行操作系统,Unix操作系统属
于(分时)操作系统,VxWorks属于(实时嵌入式)操作系统。
10、ARM7TDMI中,T表示支持16位Thumb指令集,D表示(在片可调试),M表示内
嵌乘法器Multiplier,I表示(嵌入式ICE),支持在线断点和调试。
二、选择题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。
1、
要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。
( D ) (A)
处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断 (C) 处理器
支持中断,并且能产生定时中断(D)有大量的存储空间 2、下面哪种操作系统最方便
移植到嵌入式设备中。
( D ) (A) DOS (B)unix (C) Windows xp (D)linux 3、下面哪个选项不是SUB设备的特点。
( B ) (A) 串行通信方式(B)不可热拨插
(C) 分HOST、DEVICE和HUB (D)通信速率比RS232快 4、下面哪种嵌
入式操作系统很少用于手机终端设备上。
( C ) (A) Symbian
(B)WinCE (C) uc/os (D)linux 5、以下哪项关于SRAM和DRAM
的区别是不对。
( A ) (A) SRAM比DRAM慢
(B)SRAM比DRAM耗电多 (C) DRAM存储密度比SRAM高得多(D)DRM需要周期
性刷新 6、uc/os操作系统不包含以下哪几种状态。
( C ) (A) 运行(B)挂起 (C) 退出(D)休眠 7、0x07&0x11的运算结果是。
( A ) (A) 0x01 (B)0x11 (C) 0x17 (D)0x07
8、以下哪种方式不是uc/os操作系统中任务之间通信方式。
( C ) (A)
信号量(B)消息队列 (C) 邮件(D)邮箱 9、以下哪种方式
不是文件系统的格式。
( B ) (A) FAT (B)DOS (C) NTFS (D)Ext 10、在将uc/os操作系统移植到ARM
处理器上时,以下哪些文件不需要修改。
( A ) (A) OS_CORE.C (B)include.h (C) OS_CPU.H (D)OSTaskInit 三、判断题:共5小题,每小题2分,满分10分。
1、所有的电子设备都属于嵌入式设备。
( F ) 2、冯诺依曼体系将被哈佛总线所取代。
( F ) 3、嵌入式linux操作
系统属于免费的操作系统。
( T ) 4、移植操作系统时需要修改操作系
统中与处理器直接相关的程序。
( T ) 5、USB2.0的最大通信速率为12M/S。
( F )
简答题:共2小题,每小题10分,满分20分。
1、根据嵌入式系统的特点,写出嵌入式系统的定义。
以应用为中心、以计算机技术为基础、软硬件可裁减、功能、可靠性、成本、体积、
功耗严格要求的专用计算机系统 2、试分析实时操作系统的工作状态特点及相互之间的
转换。
运行:获得CPU的控制权;
就绪:进入任务等待队列,通过调度中转为运行状态;
挂起:任务发生阻塞,称出任务等待队列,等待系统实时事件的发生而被唤醒,从而
转为就绪或者运行;休眠:任务完成或者错误等原因被清除的任务,也可以认为是系统
中不存在的任务。
多任务
四、分析计算题:共2小题,每小题10分,满分20分。
1、试写抢占式和非抢占式
的区别。
执行的过程中对中断处理方式不一样,抢先式:某一中断执行完成后,如果有更高优
先级的任务处于就绪状态,将执行更高优先级任务,而非抢占式不一样,一个任务只有主
动放弃CPU的控制权,其它任务才能够获得CPU的控制权。
2、从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几
个部分,并写出各部分所完成的功能。
(1)硬件层;(2)中间层(嵌入式系统初始化,硬件相关的驱动程序);(3)软件层(操作
系统、文件系统、GUI,网络及通用组件);(4)功能层。
五、专业名词解释(写出以下英文简写对应的中文名称):共5小题,每小题2分,满
分10分。
(1)RTOS (2)CISC (3)Kernel (4)Scheduler (5)non-preemptive (1)RTOS(实时操作系统);(2)CISC(复杂指令集);
第页共 16 页
5
感谢您的阅读,祝您生活愉快。