嵌入式系统复习整理版终极版.docx
《嵌入式系统复习整理版终极版.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习整理版终极版.docx(14页珍藏版)》请在冰豆网上搜索。
嵌入式系统复习整理版终极版
填空和选择题齐全看就可以了,真题来的,直接从这里抽出来的。
。
。
一、填空题
1.ARM体系结构可用两种方法存储字数据,具体为大端模式和小端模式。
2.μC/OS-Ⅱ系统创建一个任务,使用函数OSTASKCREATE()或OSTASKGREATEEXT()。
3.μC/OS-Ⅱ系统通过TCB来感知和控制任务,用ECB来描述各种事件。
4.ARM微处理器在较新体系结构中支持两种指令集:
Thumb和ARM。
任务堆栈主要用来进行动态分配和自动分配。
6、μC/OS-Ⅱ最多能对_64个任务进行管理,包括__四个最高优先级_任务和_四个最低优先级__任务。
7.系统是通过与内存分区相关联的_页表来实现对内存分区管理。
8.μC/OS-Ⅱ有两种调度器,一种是_任务调度器,另一种是中断调度器。
9.ARM处理器共有37个寄存器,其中包括31个通用寄存器_和6个状态寄存器。
10.哈佛体系结构数据空间和地址空间_相互独立_,ARM7TDMI采用_冯诺依曼_的内核架构。
11、DRAM是嵌入式系统的存储器动态存储器,SRAM是嵌入式系统的静态存储器。
12、CPSR是ARM体系结构的当前程序状态寄存器,CPSR可以在任何运行模式下被访问,它包括条件码标志位、中断禁止位、当前处理器模式标志位等。
13、ARM微处理器的指令集中R14称作子程序链接寄存器,每一种运行模式下,都可用R14保存的子程序的返回地址。
14、在uC/OS-II系统中每个任务可以有5种状态,其中处于运行态的是准备就绪的最高级的任务获得CPU的控制权。
15、操作系统的最重要的工作之一是任务调度,uC/OS-II是可抢占式的实时多任务内核,采用基于优先级的任务调度。
16、寄存器R13常作为堆栈指针,R14常作为连接寄存器。
17、Thumb长度只有传统指令的一半,但是性能和灵活性不如后者。
18、堆栈指针指向最后压入的数据时,且低地址向高地址生成称为,满递增堆栈。
19、ARM7属于RISC架构类型,每条指令都采用标准字长、执行时间短,便于指令的流水线优化。
20、小端字节顺序存触法是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处。
21、目前,国内普遍认同的嵌入式系统定义是以应用为中心、软硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
22、嵌入式系统的硬件层包含嵌入式微处理器、存储器、通用接口、I/O接口。
23、嵌入式系统的软件层由定时多任务操作系统、文件系统、图形用户接口、网络系统及通用组建模块组成。
24、MPU表示嵌入式微处理器,RTOS表示定时多任务操作系统。
25、操作系统的内核(kernel),是指系统当中的一个组件,它包含了操作系统(OperatingSystemOS)的主要功能,这些功能包括任务管理、存储管理、输入/输出设备管理和文件系统管理。
26、ARM采用32位地址总线,所支持的最大寻址空间为4GB,从
0~3字节放置第一个存储字数据,4~7字节放置第二个存储字数据,在不出现分支的情况下,程序计数器每次增长4个字节。
27、ARM7采用的是冯.诺依曼体系结构,是将程序指令空间和数据空间合并在一起。
28、uC/OS-II是可抢占式实时内核,当前优先级最高的任务一旦就绪,总能得到CPU的控制权。
29、ARM微处理器的指令集仅能处理寄存器的数据,处理结果都要放回寄存器,而对系统存储器的访问需要通过专门的加载/存储指令来完成。
30、栈空间的寻址分为递增堆栈_和_递减堆栈。
二、单项选择题
1.对于硬件抽象层说法正确的是_______。
(C)
A.硬件抽象层属于嵌入式系统的硬件。
B.硬件抽象层是对嵌入式系统的硬件的仿真
C.硬件抽象层是介于嵌入式系统硬件与操作系统之间的一层软件抽象
D.硬件抽象层包括BootLoader、BSP、设备驱动、操作系统、微处理器等部件。
2.下面哪种操作系统最方便移植到嵌入式设备中。
(D)
A.DOSB.unix
C.WindowsxpD.linux
3.常见的嵌入式操作系统有_____等。
(D)
A.嵌入式Linux、WindowsXP、VxWorks、μC/OS-II、eCos、Moblin
B.嵌入式Linux、WindowsXP、Unix、μC/OS-II、eCos、Moblin
C.嵌入式Linux、WindowsCE、VMS、μC/OS-II、eCos、Moblin
D.嵌入式Linux、WindowsCE、VxWorks、μC/OS-II、eCos、Moblin
4.ARM微处理器支持_____种运行模式。
(C)
A.5 B.6 C.7 D.8
5.寄存器_____常作为堆栈指针。
(B)
A.R12 B.R13 C.R14 D.R15
6.________是操作系统的最核心的机制。
(A)
A.任务调度
B.内存管理
C.同步与通信
D.文件系统
7.嵌入式应用通常考虑进行运行速度优化和代码尺寸优化,这是由嵌入式系统的________特点决定的。
(C)
A.专用性
B.计算机系统
C.资源受限
D.功耗约束
8.将高速缓存分为指令缓存(ICache)和数据缓存(DCache)的体系结构是________。
(B)
A.冯•诺依曼结构
B.哈佛结构
C.RISC
D.CISC
9.每条指令都采用标准字长、执行时间短,便于指令的流水线优化的微处理器属于________架构类型。
(C)
A.冯•诺依曼结构
B.哈佛结构
C.RISC
D.CISC
10.关于ARMThumb指令和传统ARM指令说法正确的是______。
(C)
A.Thumb指令长度跟传统指令一样,性能和灵活性不如后者。
B.Thumb指令长度跟传统指令一样,性能和灵活性也没有什么变化。
C.Thumb指令长度只有传统指令的一半,但是性能和灵活性不如后者。
D.Thumb指令长度只有传统指令的一半,性能和灵活性没有什么变化。
11.BSP的主要作用是。
(C)(2分)
A.机器启动时引导操作系统。
B.操作系统实现对硬件操作的抽象,使操作系统的代码与硬件无关。
C.为操作系统屏蔽各种外设的细节差异,为操作硬件提供了统一的软件接口。
D.统一管理硬件资源,把硬件的诸多功能进行抽象,以服务的形式提供给应用程序。
12.关于中断向量下面说法正确的是。
(D)(2分)
A.中断向量存放中断号。
B.中断向量是处理器响应中断执行的程序
C.中断向量是中断时处理器执行的向量运算指令
D.中断向量存放中断服务程序的入口地址或跳转到中断服务程序的入口地址的指令
13.关于处理器内核的体系结构和实现结构说法正确的是。
(B)(2分)
A.相同体系结构的处理器内核,其实现结构也相同。
B.相同体系结构的处理器内核,可以有不同的实现结构。
C.相同实现结构的处理器内核,其体系结构可能不同。
D.不同实现结构的处理器内核,其体系结构必然不同。
15.寄存器常作为堆栈指针。
(B)(2分)
A.R12 B.R13 C.R14 D.R15
16.属于实时操作系统的有。
(A)(2分)
A.RT-Linux、VxWorks、μC/OS-II
B.WindowsXP、VxWorks、Moblin
C.RT-Linux、VxWorks、μCLinux
D.VxWorks、μC/OS-II、Moblin
19.ARM9微处理器具有_______流水线。
(A)(2分)
A.5级 B.6级 C.7级 D.8级
29、ARM7采用的(A)级流水线,每条操作都需要一个时钟周期,所以一条正常指令需要3个时钟周期才能完成。
A、3B、5
C、7D、9
20.每条指令都采用标准字长、执行时间短,便于指令的流水线优化的微处理器属于_______架构类型。
(C)(2分)
A.冯•诺依曼结构
B.哈佛结构
C.RISC
D.CISC
21、目前,国内普遍认同的嵌入式系统定义是以应用为中心、(C)可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
A、操作系统B、应用
C、软硬件D、嵌入式
22、嵌入式系统的硬件层包含(A)、存储器、通用设备接口、I/O接口。
A、嵌入式微处理器B、SOC
C、中间层D、板极支持包
23、嵌入式系统的软件层由(B)、文件系统、图形用户接口、网络系统及通用组建模块组成。
A、设备驱动程序B、实时多任务操作系统
C、板极支持包D、嵌入式操作系统
24、MPU表示(B)。
A、板极支持包B、嵌入式微处理器
C、嵌入式微控制器D、嵌入式片上系统
25、操作系统会的内核(kernel)是系统当中的一个组件,它包含了操作系统(OperatingSystem,OS)的主要功能,这些功能包括(B)、存储管理、输入输出管理和文件系统管理。
A、软件管理B、任务管理
C、操作系统管理D、工作模式管理
26、ARM采用32位地址总线,所支持的最大寻址空间为4GB,从(A)放置第一个存储字数据,在不出现分支的情况下,PC每次增长4个字节。
A、0~3字节B、4~7字节
C、8~11字节D、1~3字节
27、ARM7采用的是(A),是将数据空间和地址空间合为一体。
A、冯.诺依曼体系结构B、哈佛结构
C、操作系统结构D、片上结构
28、ARM微处理器的指令集仅能处理(A)的数据,处理结果都要放回寄存器,而对系统存储器的访问需要通过加载/存储指令来完成。
A、寄存器B、存储器
C、CPSRD、内存
30、当堆栈指针指向下一将要放入数据的空位置时,称为(C)。
A、递增堆栈B、递减堆栈
C、空堆栈D、满堆栈
31、DRAM是嵌入式系统的存储器(A)
A、动态随机存储器B、随机存取存储器
C、静态随机存储器D、闪存
32、CPSR是ARM体系结构的(A),CPSR可以在任何运行模式下被访问,它包括条件码标志位、中断禁止位、当前处理器模式标志位、及相关的控制和状态位。
A、当前程序状态寄存器B、通用寄存器
C、程序计数器D、链接寄存器
33、ARM微处理器的指令集中R14称作(A),每一种运行模式下,都可用R14保存的返回地址。
A、程序链接寄存器B、子程序寄存器
C、通用寄存器D、程序计数器
34、在uC/OS-II系统中每个任务可以有(B)种状态,其中处于运行态的是准备就绪的最高级的任务获得CPU的控制权。
A、7B、5
C、3D、2
35、以下哪种操作系统最方便移植到嵌入式系统中(D)。
A、WindowsxpB、unix
C、DOSD、uC/OS-II
36、操作系统的最重要的工作之一是(A)。
A、任务调度B、内存管理
C、同步与通信D、文件系统
37、寄存器(B)常作为堆栈指针。
A、R12 B、R13
C、R14 D、R15
38、关于ARMThumb指令和传统ARM指令说法正确的是(C)。
A.Thumb指令长度跟传统指令一样,性能和灵活性不如后者。
B.Thumb指令长度跟传统指令一样,性能和灵活性也没有什么变化。
C.Thumb指令长度只有传统指令的一半,但是性能和灵活性不如后者。
D.Thumb指令长度只有传统指令的一半,性能和灵活性没有什么变化。
39、堆栈指针指向最后压入的数据时,且低地址向高地址生成称为(D)。
A、递增堆栈B、递减堆栈
C、满递减堆栈D、满递增堆栈
40、每条指令都采用标准字长、执行时间短,便于指令的流水线优化的微处理器属于(C)架构类型。
A、ARM指令集B、Thumb指令集
C、RISC(精简指令集)D、CISC(复杂指令集)
三、简答题(每小题10分,共40分)(红笔的很大可能会考,重点看那几题吧)
1.试用图形分析实时操作系统的工作状态特点及相互之间的转换?
P118图
运行:
获得CPU控制权 ;
就绪:
进入任务等待队列,通过调度中转为运行状态 ;
挂起:
任务发生阻塞,称出任务等待队列,等待系统实时事件的发生而被唤醒从而转为就绪或者运行;
休眠:
任务完成或者错误等原因被清除的任务,也可以认为是系统中不存在任务;
中断服务:
中断服务子程序讲控制CPU的使用权。
2.RISC和CISC的特点:
CISC指令数量很多,有些指令执行时间很长,如整块的存储器内容复制;或将多个寄存器的内容复制到存储器,编码长度可变,1~15字节,寻址方式多样,可以对存储器和寄存器进行算术和逻辑操作,难以用优化编辑器生成高效的目标程序。
RISC指令较少,通常少于100,没有较长执行时间的指令,编码长度固定,通常为4个字节简单寻址,只能对寄存器进行算术和逻辑操作,Load/Store体系结构,采用优化编辑技术,生成高效的目标代码程序。
2.简述冯·诺依曼体系结构和哈佛体系结构的特点?
答:
冯·诺依曼体系结构
(1)采用二进制形式表示数据和指令;
(2)采用存储程序方式;(3)由运算器、存储器、控制器、输入设备和输出设备五大部件组成计算机系统,并规定了这五部分的基本功能。
与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
3.分析当异常产生时,ARMcore需要完成哪些工作?
当异常结束时,异常处理程序必须完成哪些工作?
答:
当异常产生时,ARMcore:
拷贝CPSR到SPSR_。
设置适当的CPSR位:
改变处理器状态进入ARM状态,改变处理器模式进入相应的异常模式,设置中断禁止位禁止相应中断(如果需要),保存返回地址到LR_,设置PC为相应的异常向量。
返回时,异常处理需要:
从SPSR_恢复CPSR,从LR_恢复PC。
4.简述先来先服务调度算法、短作业优先调度算法和时间片轮转调度算法的原理和特点?
答:
先来先服务,按照作业提交或进程变为就绪状态的先后次序,分派CPU;特点:
比较有利于长作业,而不利于短作业。
有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
短作业优先,对预计执行时间短的作业(进程)优先分派处理机。
特点:
优点:
改善平均周转时间和平均带权周转时间,缩短作业的等待时间;
提高系统的吞吐量;缺点:
对长作业非常不利,可能长时间得不到执行;
未能依据作业的紧迫程度来划分执行的优先级;难以准确估计作业(进程)的执行时间,从而影响调度性能。
时间片轮转算法,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片.这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间.
5、什么是任务调度?
任务级的调度和中断级的调度有何区别?
答:
根据系统的资源分配策略所规定的资源分配算法.任务级的调度和中断级的调度所采用的调度算法是相同的,任务级的调度是由函数OSSched()完成的,中断级调度是由函数OSIntExt()来完成的。
6、ARM微处理器支持哪些运行模式?
其运行模式如何改变?
答:
用户模式(USR):
ARM处理器正常的程序执行状态
快速中断模式(FIQ):
用于高速数据传输或通道处理
外部中断模式(IRQ):
用于通用的中断处理
管理模式(SVC):
操作系统使用的保护模式
数据访问终止模式(ABT):
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(SYS):
运行具有特权的操作系统任务。
未定义指令中止模式(UND):
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
7、什么是异常?
当异常出现时,ARM微处理器会执行何种操作?
答:
当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。
当一个异常出现以后,ARM微处理器会执行以下几步操作:
1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。
3、根据异常类型,强制设置CPSR的运行模式位。
4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
还可以设置中断禁止位,以禁止中断发生。
如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
8、Thumb指令集与ARM指令集有何区别?
如何从ARM状态进入Thumb状态?
答:
区别:
跳转指令,程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移.
数据处理指令,数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中.数据处理操作比ARM状态的更少,访问寄存器R8~R15受到一定限制.除MOV和ADD指令访问器R8~R15外,其它数据处理指令总是更新CPSR中的ALU状态标志.访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志.
单寄存器加载和存储指令,在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7
批量寄存器加载和存储指令,LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储.PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈.除R0~R7外,PUSH指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令PC
当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态(处理器进行异常处理情况下,把PC放入异常模式链接寄存器中).从异常向量地址开始执行也可以进入ARM状态.当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态.(如果处理器在Thumb状态进入异常,则当异常处理返回时,自动转换到Thumb状态)
9、操作系统有哪些基本功能?
每个任务有几种状态?
答:
1.处理机管理2.存储管理3.设备管理4.文件管理5.用户接口
等待:
任务在等待I/O完成或者等待某事件的发生;
就绪:
任务已经得到需要运行的资源,并等待获得处理器资源;
执行:
任务获得处理器和其他所有需要的资源,相关代码正在被运行。
10、什么是异常,当异常结束时,异常处理程序必须完成哪些工作?
答:
正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
1、将连接寄存器LR的值减去相应的偏移量后送到PC中。
2、将SPSR复制回CPSR中。
3、若在进入异常处理时设置了中断禁止位,要在此清除。
11、IRQ与FIQ有何区别?
发生IRQ或FIQ异常时,处理器需要执行哪些操作?
答:
FIQ比IRQ有更高优先级,如果FIQ和IRQ同时产生,那么FIQ先处理。
发生FIQ异常时,处理器执行以下操作:
SUBSPC,R14_fiq,#4.该指令将寄存器R14_fiq减去4后复制到程序计数器PC中,从而实现从异常处理程序中返回。
同时将SPSR_mode寄存器的内容复制到当前程序状态寄存器CPSR中。
发生IRQ异常时,处理器执行以下操作:
SUBSPC,R14_irq,#4.该指令将寄存器R14_irq减去4后复制到程序计数器PC中,而实现从异常处理程序中返回。
同时将SPSR_mode寄存器的内容复制到当前程序状态寄存器CPSR中。
12、什么是操作系统的移植?
举例说明进行操作系统的移植时哪些操作需要用汇编语言编写?
答:
移植是指一个操作系统可以在某个微处理器或者微控制器上运行。
任务级的任务的切换函数OS_TASK_SW()。
运行优先级最高的就绪任务函数OSStartHighRdy;时钟节拍中断函数OSTickISR
四、分析题(只需要背注释就可以了,也一样,还有一题还没有的,临考前再给你吧)
1、根据以下给出的函数及变量启动一个多任务voidOSStart(void)。
OSRunning,OSUnMapTbl,OSRdyGrp,OSRdyTbl[],OSPrioHighRdy,OSPrioCur,OSTCBPrioTbl,OSTCBCur,OSStartHighRdy()。
P126
解:
voidOSStart(void)
{INT8UY;
INT8UX;
if(OSRunning==FALSE){/*判断系统是否运行
y=OSUnMapTbl[OSRdyGrp];/*将组变量相应的置1位保存到y中*/
x=OSUnMapTbl[OSRdyTbl[y]];/*将表变量相应的置1位保存到y中*/
OSPrioHighRdy=(INT8U)((Y<<3)+X);
/*把优先级号为Prio的任务传给最高优先级任务*/
OSPrioCur=OSPrioHighRdy;
/*把最高优先级的任务优先级数传给当前任务*/
OSTCBHighRdy=OSTCBPrioTbl[OSPrioHighRdy];
OSTCBCur=OSTCBHighRdy;
/*把最高优先级的任务控制块传给当前任务控制块*/
OSStartHighRdy();/*启动最高任务优先级的任务*/
}}
2、根据以下给出的函数,OSMboxPend()、OSTaskDel(OS_PRIO_SELF)、OSQPend()、OSSemPend()、OSTaskSuspend(OS_PRIO_SELF)、OSTimeDly()、OSTimeDlyHMSM()、试通过调用uC/OS-II的某种系统服务,创建一个你的任务voidYourTask(void*pdata)。
P117
解:
voidYourTask(void*pdata)
{
for(;;){