嵌入式系统复习资料Word文件下载.docx
- 文档编号:21322780
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:20
- 大小:146.64KB
嵌入式系统复习资料Word文件下载.docx
《嵌入式系统复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习资料Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
这是一个以软件初始化为主的过程,主要进行操作系统初始化。
BSP将控制转交给操作系统,由操作系统进行余下的初始化操作。
包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,比如网络系统、文件系统等;
最后,操作系统创建应用程序环境并将控制转交给应用程序的入口
●中间层BSP功能之二:
●尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。
5.嵌入式处理器可以分为几大类?
每一类代表的器件有哪些?
第二章
1,嵌入式硬件系统的基本结构包含那些部分?
(嵌入式微处理器、存储器、和输入输出)嵌入式处理器的三大部分是什么?
(控制单元、算术逻辑单元和寄存器)
2,什么是冯.诺依曼体系结构?
什么是哈佛体系结构?
各有哪些代表性的处理器?
3复杂指令集计算机(cisc)和精简指令集计算机(risc)各有什么特点?
类别
CISC
RISC
指令系统
指令数量很多
较少,通常少于100
执行时间
有些指令执行时间很长,如整块的存储器内容拷贝;
或将多个寄存器的内容拷贝到存贮器
没有较长执行时间的指令
编码长度
编码长度可变,1-15字节
编码长度固定,通常为4个字节
寻址方式
寻址方式多样
简单寻址
操作
可以对存储器和寄存器进行算术和逻辑操作
只能对寄存器对行算术和逻辑操作,Load/Store体系结构
编译
难以用优化编译器生成高效的目标代码程序
采用优化编译技术,生成高效的目标代码程序
4.在计算机体系结构中,什么是冯氏结构体系、哈氏结构体系?
冯·
诺伊曼体系结构也叫普林斯顿结构,它的最大特征是什么?
哈佛结构,它的最大特征是什么?
5.什么是CISC、RISC体系?
其各自优、缺点以及特点是什么?
在指令数目上,CISC与RISC比较,哪种结构的指令数目多些?
属于CISC的代表性微处理器有哪些?
属于RISC的代表性处理器有哪些?
ARM7TDMI属于哪种体系?
6.对于多字节类型的数据,在存储器上有两种存储方式,分别是小端字节顺序方式和大端字节顺序方式,比如字符串数据“UNIX”的ASCII码数据{0x55,0x4E,0x49,0x58}在16位字长的微处理器上,以小端字节顺序方式存储下来,取出时该微处理器变成大端字节顺序方式,那么取出的字符串是什么,数据怎么表示?
4,在无操作系统的嵌入式软件有哪几种实现方式?
循环轮询系统,事件驱动系统(前后台)
5.按软件结构分类,操作系统体系结构可以分为哪几种不同的结构?
(单体结构如嵌入式Linux,分层结构如MS-DOS和微内核结构如OS-9)每一种结构的代表性实例是什么?
微内核结构下的软件体系结构如何?
说明它的特点。
(操作系统内核只包含最少的功能,如存储管理和进程管理;
其他的操作系统组件以中间件的形式存在于内核之外;
设备驱动程序完全从内核中剥离,独立成为一层;
易于扩展、调试方便)
6.什么是轮询系统?
什么是前后台系统(事件驱动系统)?
循环轮询系统:
(PollingLoop)
最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理
事件驱动系统:
(Event-Drivensystem)
事件驱动系统是能对外部事件直接响应的系统。
它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式
7.多任务系统中,什么是占先式内核?
什么是非占先内核?
7.什么是设备驱动程序?
设备驱动程序的主要功能有那些?
直接与硬件打交道、对硬件进行控制和管理的软件。
嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等
8.嵌入式软件的目标有哪些?
要优化哪些资源的使用?
函数必须正确;
源代码简洁、可读性好、可维护;
实时性要求较高的代码能够运行得足够快;
目标代码小且高效。
总之,要优化对以下三种资源的使用:
执行时间;
存储空间;
开发/维护时间。
9.函数的调用过程是怎样的?
系统运行时,内存分布状况如何?
不同的变量的存储和作用域怎样区别?
当一个函数被调用时:
1.在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和局部变量;
2.把实参变量的值复制到相应的形参变量;
3.控制转移到该函数的起始位置;
4.该函数开始执行;
5.控制流和返回值返回到函数调用点。
10。
什么是可重入函数?
可以被一个以上的任务调用,而不必担心数据的破坏。
可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。
可重入型函数只使用局部变量,即变量保存在CPU寄存器或栈中
12.什么是资源?
(程序运行时可使用的软、硬件环境统称为资源)什么是共享资源?
(可以被一个以上任务使用的资源叫做共享资源)什么是互斥?
(为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥)
13.什么是进程?
进程应该包括哪些东西?
一个进程应该包括:
程序的代码;
程序的数据;
PC中的值,用来指示下一条将运行的指令;
一组通用的寄存器的当前值,堆、栈;
一组系统资源(如打开的文件)
总之,进程包含了正在运行的一个程序的所有状态信息。
14.什么是任务?
(在许多嵌入式操作系统当中,一般把能够独立运行的实体称为“任务)任务切换是怎样的?
(当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。
这些内容保存在任务自已的栈区之中。
入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入CPU的寄予存器,并开始下一个任务的运行。
这个过程就称为任务切换)任务有哪三种基本状态?
就绪,执行,阻塞
15.描述任务的数据结构是什么?
(描述任务的数据结构:
任务控制块)包含哪些内容?
(任务ID、任务的状态、任务的优先级;
CPU上下文信息:
通用寄存器的值、PC寄存器的值、程序状态字、栈指针的值;
如果在该OS中,任务描述的是进程,则还应包括其他的一些内容,如段表地址、页表地址等存储管理方面的信息;
根目录、文件描述字等文件管理方面的信息。
)
17.任务在那些时间可以调度?
1.当一个新的任务被创建时,是执行新任务还是继续执行父任务?
2.当一个任务运行完毕时;
3.当一个任务由于I/O、信号量或其他的某个原因被阻塞时;
4.当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态;
5.在分时系统中,当一个时钟中断发生时。
18.嵌入式系统任务调度算法的评价指标有哪些?
☉响应时间(responsetime):
调度器为一个就绪任务进行上下文切换的时间,以及任务在就绪队列中等待的时间;
☉周转时间(turnaroundtime):
一个任务从提交到完成所经历的时间;
☉调度开销(overhead):
调度算法在执行时所需要的时间和空间开销;
☉公平(fairness):
大致相当的两个进程所得到的CPU时间也应是大致相同的,防止饥饿(starvation);
☉均衡:
尽可能使整个系统的各部分(CPU、I/O)都忙起来,提高系统资源的使用效率;
☉吞吐量(Throughput):
单位时间内完成的任务数。
19.什么是优先级调度算法?
(优先级算法(PriorityScheduling):
给每个任务设置一个优先级,然后在所有就绪任务中选择优先级最高的那个任务去运行)任务优先级有哪两种确定方式?
(静态和动态两种)
20.大多数RTOS调度器都采用基于优先级的可抢占调度算法,但在具体实现上要考虑哪些问题:
(如何设定各个任务的优先级?
优先级是静态设置的还是动态可变的?
算法的性能如何,能否满足实时要求?
21.任务间通信可以有哪几种方式?
共享内存(sharedmemory);
消息传递(messagepassing);
管道(pipe);
信号(signal)。
22.什么是代码的临界区?
什么叫临界资源?
对共享内存或共享文件的访问,可能会导致竞争条件的出现。
我们把完成这类事情的那段代码称为“临界区”(CriticalRegion),把需要互斥访问的共享资源称为“临界资源”。
23有哪几种种方法,使得任何两个任务都不会同时出现在临界区中,就可以避免竞争条件的出现?
1当一个任务进入临界区后,关闭所有的中断;
当它退出临界区时,再打开中断。
2可以采用各种基于繁忙等待(busywaiting)的策略,基本思路是:
当一个任务想要进入它的临界区时,首先检查一下是否允许它进入,若允许,就直接进入了;
若不允许,就在那里循环地等待,一直等到允许它进入。
24.什么是信号量?
什么是原子操作?
什么是P原语?
什么是V原语?
1965年由著名的荷兰计算机科学家Dijkstra提出,其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。
有两种实现方式:
1)semaphore的取值必须大于或等于0。
0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;
2)semaphore的取值可正可负,负数的绝对值表示正在等待进入临界区的任务个数。
信号量是由操作系统来维护的,任务只能通过初始化和两个标准原语(P、V原语)来访问。
初始化可指定一个非负整数,即空闲资源总数。
P、V原语作为操作系统内核代码的一部分,是一种不可分割的原子操作(atomicaction),在其运行时,不会被时钟中断所打断
P原语:
P是荷兰语Proberen(测试)的首字母。
申请一个空闲资源(把信号量减1),若成功,则退出;
若失败,则该任务被阻塞;
V原语:
V是荷兰语Verhogen(增加)的首字母。
释放一个被占用的资源(把信号量加1),如果发现有被阻塞的任务,则选择一个唤醒之。
25.如何用信号量实现互斥?
如何用信号量实现同步?
26.IO设备按数据组织分类包括哪两种类型?
块设备:
以数据块来作为信息的存储和传输单位,每个数据块都有一个地址,如磁盘;
字符设备:
以字符来作为信息的存储和传输单位,如打印机。
27.CPU如何与设备控制器当中的寄存器以及数据缓冲区有哪三种编址方式?
采用哪三种方法实现IO的输入输出?
I/O独立编址;
内存映像编址;
混合编址。
程序循环检测方式(ProgrammedI/O);
中断驱动方式(Interrupt-drivenI/O);
直接内存访问方式(DMA,DirectMemoryAccess);
第三章ARM处理器体系结构与指令集
1.32位嵌入式微处理器的主要评价指标有哪些?
●功耗。
一般的嵌入式微处理器都有三种运行模式:
运行模式(operational);
待机模式(standbyorpowerdown);
停机模式(andclock-off)。
功耗的评测指标是MIPS/W;
●代码存储密度。
传统的CISC指令集计算机具有较好的代码存储密度。
而RISC指令集计算机由于要求指令编码长度固定,虽然可以简化和加速指令译码过程,但为了实现与CISC指令集计算机相同的作业,往往需要更多的指令来完成,从而增加了代码长度
●集成度。
嵌入式微处理器一般都为专用市场设计的,需要较高的集成度。
但把所有的外围设备都集成到一个芯片上也不是一种好的解决方案。
这是因为高集成度使芯片变得复杂,芯片引脚变密,增加了系统设计和测试的复杂性。
因此,集成外围设备时必须要考虑简化系统设计,并缩短整个系统的开发周期。
●多媒体加速。
为实现多媒体加速功能,嵌入式微处理器的设计者在传统的微处理器指令集的基础上增加JPEG和MPEG解压缩的离散余弦变换指令。
还有一些半导体厂商针对智能手机和移动通讯市场的需求,将RISC微处理器和DSP集成在一个芯片上,如TI的OMAP。
2.ARM7TDMI的关键部件有几个?
分别是什么?
3.ARM处理器可以执行两套指令系统,分别为ARM态和Thumb态,ARM指令和Thumb指令,指令长度上有什么区别?
(32bits长(ARM状态)16bits长(Thumb状态)
)系统启动时,处理器处于哪种状态?
(ARM态)
7.程序计数器PC总是指向当前指令的下两条指令的地址,ARM处理器中,PC一般用那个寄存器?
(R15)当ARM处理器处于ARM态时,PC为当前指令的地址加8字节,Thumb状态时,PC为当前指令的地址加几个字节?
8.ARM处理器中,R13、R14、R15的功能各是什么,使用它们,细节上各自有什么特别要注意的地方?
9.ARM处理器有哪几种运行模式?
各是什么?
特权模式和用户模式各包括哪些运行模式?
处理器模式
说明
备注
用户(usr)
正常程序执行模式
不能直接切换到其它模式
系统(sys)
运行操作系统的特权任务
与用户模式类似,但具有可以直接切换到其它模式等特权
快中断(fiq)
支持高速数据传输及通道处理
FIQ异常响应时进入此模式
中断(irq)
用于通用中断处理
IRQ异常响应时进入此模式
管理(svc)
操作系统保护模式
系统复位和软件中断响应时进入此模式
中止(abt)
用于支持虚拟内存和/或存储器保护
在ARM7TDMI没有大用处
未定义(und)
支持硬件协处理器的软件仿真
未定义指令异常响应时进入此模式
10.ARM允许多种寻址方式,例如MOVR0,R1,这里源操作数和目的操作数使用的都是寄存器寻址,那么指令LDRR0,[R1,#4],这里源操作数使用的寻址方式是叫什么?
那么指令LDRR0,[R1],这里源操作数使用的寻址方式是什么?
,该指令助记符的含义是什么?
与LDR相对应的指令助记符是什么?
11.ARM7使用了几级流水线,分别是什么?
ARM9使用了几级流水线?
ARM7:
3级-取指,译码,执行。
ARM9:
5级-取指,指令译码,执行,缓冲/数据,回写。
12.ARM微处理器的寄存器在逻辑上有多少个?
13.ARM处理器支持哪几种异常?
按响应异常的优先级分类,优先级最高的是什么?
最低的是什么?
进入、退出异常时,ARM处理器分别要执行什么操作?
FIQ,IRQ(InterruptReQuest),未定义指令,预取中止,数据中止,复位,软件中断Softwareinterrupt。
优先级最高:
复位,最低:
未定义指令。
进入:
拷贝CPSR到SPSR_<
mode>
,设置适当的CPSR位,保存返回地址到LR_<
,设置PC为相应的异常向量
退出:
1.(R14)中的值减去偏移量后存入PC,偏移将LR量根据异常的类型而有所不同;
2.将SPSR的值复制回CPSR;
3.清零在入口置位的中断禁止标志。
14.在ARM处理器中,把CPSR或SPSR的内容读出到通用寄存器中,有什么特别的要求?
想修改CPSR寄存器的值为0XFF,应该用什么指令?
怎么做?
15.阅读分析代码,实现两个寄存器值的内容相加。
;
文件名:
TEST1.S
功能:
实现两个寄存器相加
说明:
使用ARMulate软件仿真调试
AREAExample1,CODE,READONLY;
声明代码段Example1
ENTRY;
标识程序入口
CODE32;
声明32位ARM指令
STARTMOVR0,#0;
设置参数
MOVR1,#10
LOOPBLADD_SUB;
调用子程序ADD_SUB
BLOOP;
跳转到LOOP
ADD_SUB
ADDSR0,R0,R1;
R0=R0+R1
MOVPC,LR;
子程序返回
END;
文件结束
16.分析一段指令执行前后的变化
PRE
r0=0x00000000,r1=0x00009000,
Mem32[0x00009000]=0x01010101
Mem32[0x00009004]=0x02020202
回写型前变址寻址:
LDRr0,[r1,#0x4]!
POSTr0=0x02020202,r1=0x00009004
前变址寻址:
LDRr0,[r1,#0x4]
POSTr0=0x02020202,r1=0x00009000
后变址寻址:
LDRr0,[r1],#0x4
POSTr0=0x01010101,r1=0x00009004
17.完成一个存储器数据块拷贝
注:
r9——存放源数据的起始地址
r10——存放目标起始地址
r11——存放源结束地址
loop
LDMIAr9!
{r0-r7};
装载32字节并更新r9指针
STMIAr10!
存储32字节并更新r10指针
CMPr9,r11;
是否到达结束地址
BNEloop;
不相等跳转
第四部分
1.μC/OS主要特点有哪些?
◆公开源代码
◆可移植性(Portable)
绝大部分C/OS-II的源码是用移植性很强的ANSIC写的。
和微处理器硬件相关的那部分是用汇编语言写的。
汇编语言写的部分已经压到最低限度,使得C/OS-II便于移植到其他微处理器上。
C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。
◆可固化(ROMable)
C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),C/OS-II可以嵌入到读者的产品中成为产品的一部分。
◆可裁剪(Scalable)
可以只使用C/OS-II中应用程序需要的那些系统服务。
也就是说某产品可以只使用很少几个C/OS-II调用,而另一个产品则使用了几乎所有C/OS-II的功能,这样可以减少产品中的C/OS-II所需的存储器空间(RAM和ROM)。
这种可剪裁性是靠条件编译实现的。
◆占先式(Preemptive)
◆多任务
C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。
应用程序最多可以有256个任务
◆可确定性
全部C/OS-II的函数调用与服务的执行时间具有可确定性。
◆任务栈
每个任务有自己单独的栈,C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。
◆系统服务
C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。
◆中断管理
中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
◆稳定性与可靠性
2.μC/OS允许管理有多少个任务,用户可以有多少个任务?
系统保留的几个任务是什么?
μC/OS-Ⅱ可以管理多达64个任务;
系统保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI0这8个任务以被将来使用,用户可以有56个应用任务
3.任务的组成包括那些部分?
任务控制块----uC/OS-II进行任务管理用的一个数据结构。
任务代码----描述任务算法的程序编码。
任务堆栈----任务的工作现场环境。
4.μC/OS中任务有五种状态,相互间转换需要特定的条件,试用状态转换图描述。
5.任务堆栈在系统中有哪些应用?
任务堆栈是任务的三大组成部分之一。
保存CPU寄存器现场(R0~R12、LR、SPSR等)。
本Task的私有数据。
6.TCB中各成员的作用是什么?
7.什么是任务就绪表?
任务优先级和任务就绪表的映射关系是怎样的?
任务就绪表:
每个任务的就绪态标志放入在就绪表中,就绪表中有两个变量OSRdyGrp和OSRdyTbl[]。
在OSRdyGrp中,任务按优先级分组,8个任务为一组。
OSRdyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。
任务进入就绪态时,就绪表OSRdyTbl[]中的相应元素的相应位也置位。
映射关系:
⏹uC/OS-II最多管理64个任务,Prio值域:
0~63,对应的二进制数000,000~111,111(6bit),OSRdyGrp(任务组就绪变量)8bit,任务就绪数组元素OSRdyTbl也是8bit。
⏹prio.D[5:
3]---对应OSRdyTbl的下标(任务组号y),也对应OSRdyGrp的比特位号。
⏹prio.D[2:
0]---对应OSRdyTbl元素的位号(任务组号x)
8.举例说明优先级在任务就绪表中的表示。
举例:
prio=29的任务在任务就续表中的表示。
prio=29,其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 复习资料