嵌入式系统及应用期末试卷A.docx
北京理工大学珠海学院
2014 ~ 2015学年第二学期《嵌入式系统及应用》期末试卷(A)
诚信声明专业:
考场是严肃的,作弊是可耻的,对作弊人的处分是严厉的。
班级:
我承诺遵守考场纪律,不存在抄袭及其它违纪行为。
考生(承诺人)签字:学号:
适用年级专业: 12 级信息学院各专业试卷说明:开卷考试时间: 120 分钟题号一二三四五六总分
得分
一、填空题(每空 1分,共 20分)【得分:】
1、嵌入式系统是以应用为中心,以计算机技术位基础,且软硬件可裁剪,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
2、目前使用的嵌入式操作系统主要有这几种:Linux、
VxWorks、
windows等。
3、ARM920TDMI微处理器名称中, T 表示支持16 位宽度的压缩指令集,D 表示支持在片调试( Debug),M 表示具有增强型乘法器,I 表示具有嵌入式ICE 部件。
4、ARM920T 微处理器中 ARM指令集的代码宽带是 32位, Thumb指令集的宽度是 16位。
5、ARM920T 微处理器的指令流水采用了典型的RISC五级流水结构,将指令执行过程分为取指、译码、执行、访存和写回 5个步骤。
6、 ARM 处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结构。
7、ARM9 处理器内部共有 37个 32位处理器,其中31个用过通用寄存器, 6个用作状态寄存器。其中 CPSR寄存器中文名称是当前程序状态寄存器,
其上的 I 位置 1时禁止 IRQ中断,T位置 0时,指
示ARM 状态。
8、Cache 的中文名称为高速缓存。
9、嵌入式系统有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是大端对齐。
10、嵌入式系统移植时,首先要对嵌入式系统软件层次的系统启动应到程序层、操作系统层和用户应用程序层进行修改和剪裁。
二、选择题(每小题 2分,共 20分)【得分:】
1、在指令系统的各种寻址方式中,获取操作数最快的方式是( B)。
A. 变址寻址
B. 立即寻址
C. 寄存器寻址
D. 间接寻址
2、寄存器 R14 除了可以做通用寄存器外,还可以做(B)。
A. 程序计数器
B. 链接寄存器
C. 栈指针寄存器
D. 基址寄存器
3、以下哪项关于SRAM 和 DRAM 的区别是不对(A)。
A. SRAM 比 DRAM 慢
B. SRAM 比 DRAM 耗电多
C. DRAM 存储密度比 SRAM 高得多
D. DRM 需要周期性刷新
4、存储一个 32 位数 0x2168465 到 2000H~ 2003H 四个字节单元中,若以大端
模式存储,则 2000H 存储单元的内容为(D)。
A. 0x21
B. 0x68
C. 0x65
D. 0x02
5、ARM 汇编语句” ADD R0, R2, R3, LSL#1的作”用是(C)。
A. R0 = ( R2<< 1) + R3
B. R3 = R0+ (R2 << 1)
C. R0 = R2 + (R3 << 1)
D. (R3 << 1) = R0+ R2
6、ADD R0,R1, #3 属于(A)寻址方式。
A. 立即寻址
B. 多寄存器寻址
C. 寄存器直接寻址
D. 相对寻址
7、和 PC 机系统相比下列哪个不是嵌入式系统独具的特点(C)
A 、系统内核小B、专用性强C、可执行多任务D、系统精简
8、每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的
是( D )。
A.嵌入式 Linux 提供了完善的网络技术支持;
B.CLinux 是专门为没有 MMU 的 ARM 芯片开发的;
C.C/OS-Ⅱ操作系统是一种实时操作系统( RTOS);
D.WinCE 提供完全开放的源代码。
9、RQ 中断的优先级别是(D)。
A. 1
B. 2
C. 3
D. 4
10、假设 R1=0x31,R2=0x2 则执行指令 ADD R0,R1,R2 LSL #3 后,R0 的值是( C )
A. 0x33
B. 0x34
C. 0x39
D. 0x38
三、简答题(每小题 4 分,总计 20 分)【得分:】
1、简述嵌入式系统设计的主要步骤。
系统需求分析、规格说明、体系结构设计、构件设计、系统集成
2、简述 ARM 处理器的 7 种运行模式及各自的用途。
(1)用户模式:正常执行程序时的处理器模式。
(2) FIQ 模式:响应快速中断时的处理模式。
(3) IRQ 模式:响应普通中断时的处理模式。
(4)管理模式:操作系统的保护模式。
(5)中止模式:指令或数据预取操作中止时的模式,该模式下实现虚拟存储器或存储器
保护。
(6)未定义模式:当执行未定义的指令时进入该模式。
(7)系统模式:运行特权操作系统任务时的模式。
3、简述 BLX 、SWI、 STM、 LDM 、MOV 、MVN 的含义。
BLX:带链接和状态切换的跳转指令;SWI:软件中断指令;STM:批量内存字写入指令;LDM: 加载多个寄存器指令;MOV:数据传送指令;MVN: 数据取反传送指令。
4、简述 arm 状态寄存器特点及格式。
在所有处理器模式下都可以访问当前程序状态寄存器CPSR (Current Program Status
Register)。 CPSR 包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制
信息。
每种异常模式都有一个保存程序状态寄存器SPSR (Saved Program Status Register) 。当异常出现时, SPSR 用于保留CPSR 的状态。
由于用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。
格式:
位 [0:7] 为控制位,其中,M0 、 M1 、M2 、M3 和 M4 为处理器模式选择位,T 为处理器工作状态选择位,I 和 F 为中断 /快中断禁止位;位[28:31] 为条件码标志;其它位[8:27] 留做以后 ARM 版本的扩展。
I=1 ,禁止 IRQ 中断;
F=1,禁止 FIQ 中断;
T=1 ,程序运行于Thumb 态。
N、 Z 、 C、 V 均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且
可以决定某条指令是否被执行
5、根据自己的理解描述嵌入式系统的发展趋势?
行业性嵌入式软硬件平台——标准化
互联网的普及——网络化
半导体技术的改善——小型化
3C 技术的快速融合——功能多样化
使用者的需求——个性化
信息服务应用生活化——泛在化
四、程序分析题(每小题 5 分,共 20 分)【得分:】
1、初始值 R1=23H,R2=0FH 执行指令 BIC R0,R1,R2,LSL #1 后,寄存器R0,R1 的值分别是多少?
R0=21H , R1=23H
2、请在横线处说明该横线对应的指令的功能。
AREA Example, CODE, READONLY ENTRY
CODE32
START
MOV R0,#0
MOV R1,#10
LOOP ;声明代码段Example ;标识程序入口
BL ADD_SUB
B LOOP
ADD_SUB
ADDS R0, R0,R1 MOV PC,LR
END
;调用子程序ADD_SUB
;R0=R0+R1
;子程序返回
3、请在横线处写出该横线对应的指令的运行后寄存器的值。
MOV R0,#0x500;R0=0x00000500 MOV R1,#0x4000
MOV R1,R1,LSR#3;R1=0x00000800
CMP R0,R1
MOVHI R1,#1 MOVLO R1,# -1;R1=
; R1=
0x00000800
0xFFFFFFFF
MOVEQ R1,#0; R1=0xFFFFFFFF
4、有两个任代如下,其中
分析 LCD 上的示果。
Task_A、 Task_B的先分:28、37。
Void Task_A() {
ClearScreen();
LCD_Printf(“ task1 is running!” );
OSTimeDly(400);
}
Void Task_B() {
ClearScreen();
LCD_Printf(“ hello task2!n” );
OSTimeDly(160);
}
在LCD 上的示果:
第一次: task1 is running!
第二次:hello task2!
第三次:hello task2!
第四次:task1 is running!
第五次:hello task2!
五、程序(每小10 分共 20 分)【得分:】
1.使用 CMP 指令判断 (9*X/4)>(2*X) ?若大于 R5 = 0xFF,否 R5 = 0x00,
其中 X 你的学号最后两位数(需成十六制数)。
AREA Example,CODE,READONLY ; 声明代段 Example2
ENTRY;程序入口
CODE32
START
MOV R0,#X
ADD R0,R0,R0,LSL #3; 算 R0 = X+8*X = 9*X
MOV R0,R0,LSR #2;算 R0 = 9*X/4
MOV R1,#X
MOV R1,R1,LSL #1;算 R1 = 2*X
CMP R0,R1;比 R0和 R1,即 (9*X/4)和(2*X) 行比
MOVHI R5,#0xFF;若 (9*X/4)>(2*X), R5 <= 0xF0
MOVLS R5,#0x00;若(9*X/4) ≤(2*X) , R5 = 0x0F
END
2.写一 ARM 程序段, 1+2+? +100 的运算。
AREA Example, CODE, READONLY
ENTRY
CODE32
START
MOV R2,#100
MOV R1,#0
LOOP
ADD R1,R1,R2 ;R1 中为累加和
SUBS R2,R2,#1 ;R2 控制循环
BNE LOOP
END