北京理工大学珠海学院2014 ~ 2015学年第二学期《嵌入式系统及应用》期末试卷(A)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. 0x21B. 0x68C. 0x65D. 0x025、ARM汇编语句”ADD R0, R2, R3, LSL#1”的作用是(C )。
A. R0 = ( R2<< 1) + R3B. R3 = R0+ (R2 << 1)C. R0 = R2 + (R3 << 1)D. (R3 << 1) = R0+ R26、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. 1B. 2C. 3D. 410、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2 LSL #3 后,R0的值是( C )A. 0x33B. 0x34C. 0x39D. 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 StatusRegister)。
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=23H2、请在横线处说明该横线对应的指令的功能。
AREA Example, CODE, READONLY ;声明代码段ExampleENTRY ;标识程序入口CODE32STARTMOV R0,#0MOV R1,#10LOOPBL ADD_SUB;调用子程序ADD_SUBB LOOPADD_SUBADDS R0,R0,R1;R0=R0+R1MOV PC,LR;子程序返回END3、请在横线处写出该横线对应的指令的运行后寄存器的值。
MOV R0,#0x500 ;R0= 0x00000500MOV R1,#0x4000MOV R1,R1,LSR#3 ;R1= 0x00000800CMP R0,R1MOVHI R1,#1 ;R1= 0x00000800MOVLO R1,# -1 ;R1= 0xFFFFFFFFMOVEQ R1,#0;R1=0xFFFFFFFF4、有两个任务代码如下,其中Task_A、Task_B的优先级分别为:28、37。
分析LCD上的显示结果。
V oid Task_A(){ClearScreen();LCD_Printf(“task1 is running!\n”);OSTimeDly(400);}V oid 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 ; 声明代码段Example2ENTRY ; 标识程序入口CODE32STARTMOV R0,#XADD R0,R0,R0,LSL #3 ; 计算R0 = X+8*X = 9*XMOV R0,R0,LSR #2 ; 计算R0 = 9*X/4MOV R1,#XMOV R1,R1,LSL #1 ; 计算R1 = 2*XCMP R0,R1 ; 比较R0和R1,即(9*X/4)和(2*X)进行比较MOVHI R5,#0xFF ; 若(9*X/4)>(2*X),则R5 <= 0xF0MOVLS R5,#0x00 ; 若(9*X/4)≤(2*X),则R5 = 0x0FEND2. 编写一简单ARM汇编程序段,实现1+2+…+100的运算。
AREA Example, CODE, READONLYENTRYCODE32STARTMOV R2,#100MOV R1,#0LOOPADD R1,R1,R2 ;R1中为累加和SUBS R2,R2,#1 ;R2控制循环BNE LOOPEND。