嵌入式系统重点整理Word格式文档下载.docx
《嵌入式系统重点整理Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统重点整理Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
各个部件有专用的数据、地址与控制总线;
CPU和外设DMA的操作引入了某种并行度;
区别:
地址空间和数据空间分开与否。
哈佛结构与冯·
诺依曼结构的区别:
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;
使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,这两条总线之间毫无关联;
诺依曼体系结构的特点:
数据与指令都存储在存储器中,被大多数计算机所采用,ARM7——冯·
诺依曼体系。
哈佛体系结构的特点:
程序存储器与数据存储器分开,指令和数据可有不同的数据宽度,提供了较大的数据存储器带宽,适合于数字信号处理,大多数DSP都是哈佛结构,ARM9是哈佛结构。
7.中断的重要性:
响应突发事件(异步事件)。
对计算机发展的影响:
使得计算机能解决客观世界的突发事情,如实时系统。
使轮询系统到事件驱动系统成为可能。
8.编址方式:
独立编址(I/O具有与内存不同的地址空间),统一编址(I/O与内存在同一地址空间)
9.指令:
面向程序员(软件)。
微指令:
复杂指令由微指令有序序列实现(在CPU中实现)。
每条微指令所代表的都是很简单的基本操作;
所有微指令的格式都很规则、简单、易于解码;
取微指令的速度很快;
微指令的执行速度很快。
10.机器码是是计算机能理解和执行的唯一语言.机器码的有序集合对应于高级语言的语句.机器码是指令的二进制表示形式.
11.CISC:
复杂指令集(ComplexInstructionSetComputer):
具有大量的指令和寻址方式;
大多数程序只使用少量的指令就能够运行。
CISC的缺点:
20%与80%的问题(20%的简单指令利用率达到80%,80%的复杂指令的使用概率只有20%)指令复杂度对处理器VLSI实现性能的影响(CISC中指令长度不统一,高性能的VLSI实现难度大)软硬件的协同设计问题(CISC多采用微指令技术,增强指令系统的功能,简化了目标软件的设计,但增加了硬件(微程序)复杂度,程序执行时间不一定短)。
RISC:
精简指令集(ReducedInstructionSetComputer):
只包含最有用的指令,确保数据通道快速执行每一条指令,使CPU硬件结构设计变得更为简单。
RISC的特点:
硬连线的指令译码逻辑(RISC指令格式和长度固定,指令类型少,功能简单,寻址方式少,译码控制器可采用规则的硬布线逻辑(组合逻辑型),CISC大多使用微码ROM进行指令译码(存储逻辑型));
减少指令和寻址方式的种类;
大多数指令单周期执行;
分开的Load/Store结构的存取指令;
固定指令格式。
RISC的优势:
处理器管芯面积小,开发时间少,开发成本低,容易实现高性能。
RISC的缺点:
与CISC比代码密度低,不能执行X86代码,给优化编译程序带来了困难。
12.ARM嵌入式处理器的指令系统采用RISC体系,RISC有何主要特点:
1.采用固定长度的指令格式,指令规整,简单;
2.使用单周期指令;
3.大量使用寄存器。
13.ARM的特点:
小体积、低功耗、低成本、高性能,Load/Store体系结构,16位/32位双指令集,3地址指令格式,全球众多的合作伙伴(自己只设计高性能的IP核,授权给别人生产)
14.体系结构的演变:
T变种:
16位压缩指令集;
M变种:
增强型乘法器,产生全64位结果:
(32X32⇒64or32X32+64⇒64);
E变种:
增强型DSP指令集,包括全部算法操作和16位乘法操作;
J变种:
支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能;
SIMD变种:
媒体功能扩展;
D变种:
支持片上Debug;
I变种:
EmbededICE硬件,以支持片上断点和观察点;
S:
表示可综合的“软”IP核
15.在ARM嵌入式处理器系列中有ARM7TDMIMI,ARM9TDMI的CPU核,解释其中“TDMI”的含义。
T:
支持16位的Thumb指令集;
D:
M:
片内嵌有硬件乘法器;
I:
嵌入式在线仿真ICE。
16.ARM微处理器的两种工作状态:
第一种为ARM状态:
此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态:
此时处理器执行16位的、半字对齐的Thumb指令;
在程序的执行过中,可随时在两种工作状态之间切换
17.ARM七种工作模式:
用户模式(usr):
ARM处理器正常的程序执行状态;
快速中断模式(fiq):
用于高速数据传输或通道处理;
外部中断模式(irq):
用于通用的中断处理;
管理模式(svc):
操作系统使用的保护模式;
指令终止模式(abt):
当指令预取终止时进入该模式;
数据访问终止模式(abt):
当数据访问终止时进入该模式,可用于虚拟存储及存储保护;
系统模式(sys):
运行具有特权的操作系统任务;
注:
除了用户模式外,其它模式都是特权模式。
18.ARM异常类型:
当正常的程序执行流程发生暂时的停止时,称之为异常。
复位:
当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行;
未定义指令:
当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。
可使用该异常机制进行软件仿真;
软件中断:
该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。
可使用该异常机制实现系统功能调用;
指令预取中止:
若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常;
数据中止:
若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常;
IRQ(外部中断请求):
当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。
系统的外设可通过该异常请求中断服务;
FIQ(快速中断请求):
当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常.
异常向量表:
(地址,异常,进入模式):
(0x0000,0000,复位,管理模式)(0x0000,0004,未定义指令,未定义模式)(0x0000,0008,软件中断,管理模式)(0x0000,000C,中止(预取指令),中止模式)(0x0000,0010,中止(数据),中止模式)(0x0000,0014,保留,保留)(0x0000,0018,IRQ)(0x0000,001C,FIQ,FIQ)
异常优先级:
1(最高):
复位;
2:
数据中止;
3:
FIQ;
4:
IRQ;
5:
预取指令中止;
6(最低):
未定义指令,SWI。
19.ARM嵌入式处理器支持7种一场,对于复位(Reset)异常,ARM嵌入式处理器是如何处理的,复位异常向量地址是什么?
复位异常通常是由系统加电或硬件强制使处理器的复位引脚出现负跳变而产生的,当处理器复位引脚出现负跳变时,当前程序运行程序跳转到复位处理程序处执行,并将复位向量地址是0x00000000开始的连续4个字节。
20.ARM微处理器共有37个32bit寄存器,其中R13(SP),LR(R14),R15(PC),R16(CPSR)的有何用途,SPSR有何用途?
R13是一个32位的通用寄存器,通常用作堆栈指针寄存器;
R14是一个32位的通用寄存器,亦称连接寄存器,用于保存子程序的返回地址;
R15程序计数器,控制程序的执行顺序;
CPSR:
是当前程序状态寄存器,用于保存条件码标志,中断标志和运行模式控制位;
SPSR:
是CPSR的备份寄存器,用于保存CPSR的值。
21.LDRR0,[R1];
压栈指令:
[R1]R0;
STRR0,[R1];
出栈指令:
R0[R1];
LDRR0,[R1,#4];
前变址寻址:
[R1+4]R0,不影响R1的值
LDRR0,[R1,#4]!
;
自动变址模式:
[R1+4]R0,R1+4
LDRR0,[R1],#4;
后变址模式:
[R1]R0,然后R1+4
ARM存储器访问指令:
单寄存器存取指令(LDR,STR)(字32位,半字16位,字节8位),多寄存器存取指令(LDM,STM)。
存储器和寄存器交换指令:
SWP
跳转指令:
B:
跳转到指定的地址执行程序;
BL:
将下一条指令的地址拷贝到R14(即LR)链接寄存器中然后跳转到制定地址运行程序;
BX:
带状态切换的跳转指令(ARMThumb,ThumbARM);
BLX:
带链接和状态切换的跳转指令。
跳转的范围是+-32MB。
RSB:
逆向减法指令:
RSBR0,R1,R2:
R2-R1R0
RSC:
带进位的逆向减法指令:
BIC:
清楚操作数1中在操作数2中为1的那些位:
BICR0,R0,#0x0b:
将0,1,3位置0
CMN:
将操作数2取反后再与操作数1比较:
CMNR1,R0
MLA:
操作数1*操作数2+操作数3目的寄存器:
MLAR0,R1,R2,R3;
R1*R2+R3R0
22.常见的嵌入式系统存储设备:
(1).随机存取存储器:
SRAM静态RAM;
DRAM动态RAM:
ASDRAM异步动态RAM,SDRAM同步动态RAM
(2).只读存储器:
掩膜式ROM;
PROM可编程ROM;
EPROM可擦除、可编程;
EEPROM电可擦除可编程;
FlashMemory(闪速存储器)(3).静态RAM:
数据存入静态RAM后,只要电源维持不变,其中存储的数据就能够一直维持不变;
读写速度快;
由触发器构成基本单元,接口简单;
存储单元结构复杂,集成度较低;
常常用作高速缓冲存储器(4).DRAM动态RAM:
依靠电容存储信息,需要不断刷新;
读写速度慢;
集成度高,成本底;
地址引脚少,地址总线采用多路技术,接口复杂(5).Flashmemory:
保密性好。
分类:
NorFlash,NandFlash(6).NorFlash:
芯片内执行;
读速度快(比较NandFlash);
写入与擦除速度很低;
擦除按块进行,写入前必须先擦除;
带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节;
常用来存储代码。
NandFlash:
NAND读和写操作按512字节的块进行;
写入与擦除速度比NorFlash快;
NAND的擦除单元更小,相应的擦除电路更少;
NAND器件使用复杂的I/O口来串行地存取数据;
常用来存储数据
23.液晶显示:
液晶显示器(LiquidCrystalDisplay)LCD具有省电、体积小、低成本、低功率等特点,被广泛应用于嵌入式系统中.液晶:
以液态形式存在的晶体.有电流流过,液晶分子会以电流的方向进行排列;
没有电流时,平行排列。
如果提供带有细小沟槽的外层,液晶会顺着槽排列。
液晶能使光线发生扭转.液晶的这些特点使得它可以被用来当作一种开关。
液晶单元的底层是由细小的脊构成的,这些脊的作用是让分子呈平行排列,上表面也是如此,在这两侧之间的分子平行排列;
不过当上下两个表面之间呈一定的角度时,液晶成了随着两个不同方向的表面进行排列,就会发生扭曲。
结果便是这个扭曲了的螺旋层使通过的光线也发生扭曲。
24.触摸屏由触摸检测部件和触摸屏控制器组成:
触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;
触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给CPU。
按照触摸屏的工作原理和传输信息的介质,我们把触摸屏分为四种:
1.电阻式:
利用压力感应进行控制。
2.电容感应式:
利用人体的电流感应进行工作的。
3.红外线式:
利用X、Y方向上密布的红外线矩阵来检测并定位用户的触摸。
4.表面声波式:
表面声波是超声波的一种,在介质(例如玻璃或金属等刚性材料)表面浅层传播的机械能量波。
通过两个方向上声波能量缺口来定位,并可检测压力.
25.实时操作系统:
采用实时操作系统(RealTimeOperationSystem)的计算机系统为实时系统.它是一个能够在指定或确定的时间内完成系统功能及对外部事件在同步或异步时间内作出响应的系统.一般只有最高优先级的任务才能占有CPU的控制权。
26.实时操作系统分类:
具有强实时特点的嵌入式操作系统:
强实时系统,其系统响应时间在毫秒或微秒级(数控机床);
具有一般实特点的嵌入式操作系统:
一般实时系统,其系统响应时间在毫秒-几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询);
具有弱实特点的嵌入式操作系统:
弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。
27.任务的基本状态:
运行状态:
该任务已获得运行所必需的资源,它的程序正在处理机上执行;
阻塞状态:
任务正等待着某一事件的发生而暂时停止执行。
这时,即使给它CPU控制权,它也无法执行,则称该任务处于阻塞态;
就绪状态:
任务已获得除CPU之外的运行所必需的资源,一旦得到CPU控制权,立即可以运行。
任务状态转换:
在任务运行过程中,由于任务自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换:
就绪—运行:
调度程序选择一个新的进程运行;
运行—就绪:
运行进程用完了时间片或运行进程被中断,因为一高优先级进程处于就绪状态;
运行—等待:
当一进程必须等待某个事件时(OS尚未完成服务,对一资源的访问尚不能进行,初始化I/O且必须等待结果);
等待—就绪:
当所等待的事件发生时。
28.可重入型函数:
可以被一个以上的任务调用,而不必担心数据的破坏。
可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。
可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中。
一个不可重入型函数的例子:
intTemp;
Voidswap(int*x,int*y)
{Temp=*x;
*x=*y;
*y=Temp;
}一个可重入型函数的例子:
{intTemp;
Temp=*x;
}
29.代码的临界区:
代码的临界区也称为临界区,指处理时不可分割的代码。
一旦这部分代码开始执行,则不允许任何中断打入。
在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。
30.临界段:
同其它内核一样,C/OS-II为了处理临界段代码,必须关中断,处理完毕后,再开中断。
微处理器一般都有关中断/开中断的指令。
C/OS-II定义了2个宏来关中断和开中断:
OS_ENTER_CRITICAL(),OS_EXIT_CRITICAL()。
31.实时操作系统(RTOS)特征:
一,高效的任务管理(1.支持多任务,2.优先级管理,3.任务调度:
基于优先级的抢占式调度、时间片轮转调度的算法,4.支持快速而确定的上下文切换);
二,快速灵活的任务间通信(1.信号量:
二进制、互斥、计数器,2.通信机制:
消息队列、管道等);
三,高度的可剪裁性;
四,动态链接与部件增量加载;
快速有效的中断和异常事件处理;
五,优化的浮点支持;
六,动态内存管理;
七,系统时钟和定时器。
32.任务状态
休眠态:
任务仅驻留在程序空间,还没有交给C/OS-II管理;
就绪态:
任务一旦建立,这个任务就进入就绪态,准备运行;
运行态:
任何时刻只能有一个任务处于运行态;
等待状态:
正在运行的任务可能需要等待某一事件的发生或将自己延迟一段时间;
中断服务态:
正在运行的任务是可以被中断的,除非该任务将中断关闭;
被中断了的任务进入了中断服务态。
33.OS_ENTER_CRITICAL():
关中断;
OS_EXIT_CRITICAL():
开中断
OSTaskDel(OS_PRIO_SELF);
当任务结束时删除自己
使任务进入就绪态:
prio是任务是优先级:
OSRdyGrp|=OSMapTbl[prio>
>
3];
OSRdyTbl[prio>
3]|=OSMapTbl[prio&
0x07];
使任务脱离就绪态:
If((OSRdyTbl[prio>
3]&
=OSMapTbl[prio&
0x07])==0)
OSRdyGrp&
=OSMapTbl[prio>
任务的调度:
任务级的调度由函数OSSched()完成,中断级的调度有函数OSIntExt()完成
OS_TASK_SW():
任务的切换
OSSchedlock():
给调度器上锁,OSLockNesting跟踪该函数被调用的次数
OSSchedUnlock():
给调度器解锁,给OSLockNesting值减1
OSIntNesting:
中断嵌套计数器
OSIntEnter():
将OSIntNesting加1
OSIntExit():
中断结束返回函数,将OSIntNesting减1
OS_TaskIdle:
创建空闲任务
OSTaskStat():
统计任务,统计运行时间,运行1次/秒,计算当前的CPU利用率
OSInit():
系统初始化函数
OSStart():
C/OS-II的启动,多任务的启动/多任务调度
OSTaskcreat():
任务建立函数/OSTaskCreateExt()
OSTaskCtr:
任务计数器
OSTaskChangePrio():
改变任务优先级
OSTaskSuspend():
挂起任务
OSTaskResume():
恢复任务
OSTaskQuery():
获取任务的信息
OSTimeDLY():
时间延迟函数
OSTimeDlyResmue():
延时恢复函数
OS_EventWaitListInit(OS_EVENT*pevent):
初始化一个事件控制块,只初始化等待事件任务列表
OS_EventTaskWait():
使一个任务进入等待某事件的状态
OS_EventTaskRdy():
使一个任务就绪
OS_EventTO():
因为等待超时而使一个任务进入就绪态
OSSemCreate():
建立一个信号量
OSSemDel():
删除一个信号量
OSSemPend:
P操作
OSSemPost:
V操作
OSSemAccept:
无等待的请求一个信号量
OSSemQuery:
查询信号量当前状态
34.将任务置于等待事件任务列表:
pevent->
OSEventGrp|=OSMapTbl[prio>
pevent->
OSEventTbl[prio>
3]|=OSMapTbl[prio&
0x07];
使任务脱离等待状态:
if((pevent->
OSEvent[prio>
3]&
=~OSMapTbl[prio&
0x07])==0)
{pevent->
OSEventGrp&
=~OSMapTbl[prio>
}
查找优先级最高的任务:
y=OSUnMapTbl[pevent->
OSEventGrp];
x=OSUnMapTbl[pevent->
OSEventTbl[y]];
prio=(y<
<
3)+x;
35.嵌入式系统实验中用的硬件平台是以EP7312微处理器为核心的实验系统,EP7312是ARM7微处理器家族中的一种,其内嵌JTAG,ICE,MMU,Cache,说明其含义与用途
JTAG是一种国际标准测试协议,主要用于芯片内部测试及系统仿真测试MMU意指存储单元管理,用于实现虚拟地址空间到物理存储空间的映射,存储器访问权限的控制,设置虚拟存储空间的缓冲特性CACHE称高速缓冲存储器,主要用来提高存储系统的性能,数据的高速读写
36.以ARM处理器为核心的嵌入式系统的程序设计中要遵守ATPCS,解释ATPCS
ATPCS最早是为方便ARM程序与Thumb程序之间调用规定的一些规则,而ATPCS的扩充班还规定了C语言与汇编语言的相互调用规则
37.在嵌入式系统的软硬件构架中,硬件抽象层(HAL)或板级支持包(BSP)的作用是什么?
硬件抽象层(HAL)或板级支持包(BSP)的作用是什麽硬件抽象层位于操作系统内核与硬件电路之间的接口,其主要目的是将硬件抽象话,即通过程序来控制所有硬件电路操作,这就使得系统的设备驱动程序与硬件设备无关,提高系统可移植性板级支持包是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统的一部分,主要是实现对操作系统的支持,为上层驱动程序提供访问硬件寄存器的函数包,使之能够更好的运行于硬件主板
38.什么是函数的可重入特性?
它对多任务调度有何影响?
如何将非重入函数改写为重入函数?
如果一个函数任何时候都可被中断,一段时间后又可以运行而相应的数据不会丢失该函数具有可重入性可重入函数可被一个以上的函数调用,而不必担心数据被破坏对非重入函数,将其中的全部变量改为局部变量或使用信号量技术,可是其具有可重入性
39.在嵌入式系统运行中,为何要设置临界段,Uc/OSII中实现临界段设置的两个函数是什么?
为了保护某些代码在运行中不被中断,需要将其设置为临界段,系统在进入临界段之前要关中断,而临界段代码执行完后要立即开中断