




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2011年计算机软件水平考试嵌入式系统设计师辅导笔记(一)1、嵌入式系统的定义(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)嵌入式系统发展的4 个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet 阶段。(3)知识产权核(IP 核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。(4)IP 核模块有行为、结构和物理3 级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。2、嵌入式系统的组成:
2、硬件层、中间层、系统软件层和应用软件层(1)硬件层:嵌入式微处理器、存储器、通用设备接口和I/O 接口。嵌入式核心模块=微处理器+电源电路+时钟电路+存储器Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。(2)中间层(也称为硬件抽象层HAL 或者板级支持包BSP):它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP 层提供的接口开发即可。BSP 有两个特点:硬件相关性和操作系统相关性。设计一个完整的BSP 需要完成两部分工
3、作:A、嵌入式系统的硬件初始化和BSP 功能。片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。B、设计硬件相关的设备驱动。(3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。RTOS 是嵌入式应用软件的基础和开发平台。(4)应用软件:由基于实时系统开发的应用程序组成。3、实时系统(1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系
4、统。(2)区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。(3)特点:时间约束性、可预测性、可靠性、与外部环境的交互性。(4)硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、军事。(5)软实时(弱实时):指某些应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。(6)任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。4、实时系统的调度(1)调度:给定一组实时任务和系统资源,确定每个任
5、务何时何地执行的整个过程。(2)抢占式调度:通常是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。(3)非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好。(4)静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。(5)优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。(6)实时任务分类:周期任务、
6、偶发任务、非周期任务。(7)实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。5、嵌入式微处理器体系结构(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。例如:8086、ARM7、MIPS(2)哈佛结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。例如:AVR、ARM9、ARM10(3)CISC 与RISC 的特点比较(参照教程22 页)。
7、计算机执行程序所需要的时间P 可以用下面公式计算:P=ICPITI:高级语言程序编译后在机器上运行的指令数。CPI:为执行每条指令所需要的平均周期数。T:每个机器周期的时间。(4)流水线的思想:在CPU 中把一条指令的串行执行过程变为若干指令的子过程在CPU 中重叠执行。(5)流水线的指标:吞吐率:单位时间里流水线处理机流出的结果数。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。建立时间:流水线开始工作到达最大吞吐率的时间。若m 个子过程所用时间一样,均为t,则建立时间T=mt。(6)信息存储的字节顺序A、存储器单位:字节(8 位)B、字长决定了微处理器的寻址能力,即虚拟地
8、址空间的大小。C、32 位微处理器的虚拟地址空间位232,即4GB。D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。F、网络设备的存储顺序问题取决于OSI 模型底层中的数据链路层。6、逻辑电路基础(1)根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路。(2)组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。(3)时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必
9、须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。(4)真值表、布尔代数、摩根定律、门电路的概念。(教程28、29 页)(5)NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。(6)译码器:多输入多输出的组合逻辑网络。每输入一个n 位的二进制代码,在m 个输出端中最多有一个有效。当m=2n 是,为全译码;当m2n 时,为部分译码。(7)由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式。液晶七段字符显示器LCD 利用液晶有外加电场和无外加电场时不同的光学特性来显示
10、字符。(8)时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要制约条件。(9)在选用触发器的时候,触发方式是必须考虑的因素。触发方式有两种:电平触发方式:具有结构简单的有点,常用来组成暂存器。边沿触发方式:具有很强的抗数据端干扰能力,常用来组成寄存器、计数器等。7、总线电路及信号驱动(1)总线是各种信号线的集合,是嵌入式系统中各部件之间传送数据、地址和控制信息的公共通路。在同一时刻,每条通路线路上能够传输一位二进制信号。按照总线所传送的信息类型,可以分为:数据总线(DB)、地址总线(AB)和控制总线(CB)。(2)总线的主要参数:总线带宽:一定时间内总线上
11、可以传送的数据量,一般用MByte/s 表示。总线宽度:总线能同时传送的数据位数(bit),即人们常说的32 位、64 位等总线宽度的概念,也叫总线位宽。总线的位宽越宽,总线每秒数据传输率越大,也就是总线带宽越宽。总线频率:工作时钟频率以MHz 为单位,工作频率越高,则总线工作速度越快,也即总线带宽越宽。总线带宽= 总线位宽总线频率/8, 单位是MBps。常用总线:ISA 总线、PCI 总线、IIC 总线、SPI 总线、PC104 总线和CAN 总线等。(3)只有具有三态输出的设备才能够连接到数据总线上,常用的三态门为输出缓冲器。(4)当总线上所接的负载超过总线的负载能力时,必须在总线和负载之
12、间加接缓冲器或驱动器,最常用的是三态缓冲器,其作用是驱动和隔离。(5)采用总线复用技术可以实现数据总线和地址总线的共用。但会带来两个问题:A、需要增加外部电路对总线信号进行复用解耦,例如:地址锁存器。B、总线速度相对非复用总线系统低。(6)两类总线通信协议:同步方式、异步方式。(7)对总线仲裁问题的解决是以优先级(优先权)的概念为基础。8、电平转换电路(1)数字集成电路可以分为两大类:双极型集成电路(TTL)、金属氧化物半导体(MOS)。(2)CMOS 电路由于其静态功耗极低,工作速度较高,抗干扰能力较强,被广泛使用。(3)解决TTL 与CMOS 电路接口困难的办法是在TTL 电路输出端与电源
13、之间接一上拉电阻R,上拉电阻R 的取值由TTL 的高电平输出漏电流IOH 来决定,不同系列的TTL 应选用不同的R 值。9、可编程逻辑器件基础(具体参见教程51 到61 页)10、嵌入式系统中信息表示与运算基础(1)进位计数制与转换:这样比较简单,也应该掌握怎么样进行换算,有出题的可能。(2)计算机中数的表示:源码、反码与补码。正数的反码与源码相同,负数的反码为该数的源码除符号位外按位取反。正数的补码与源码相同,负数的补码为该数的反码加一。例如-98 的源码:B反码:B补码:B(3)定点表示法:数的小数点的位置人为约定固定不变。浮点表示法:数的小数点位置是浮动的,它由尾数部分和阶数部分组成。任
14、意一个二进制N 总可以写成:N=2PS。S 为尾数,P 为阶数。(4)汉字表示法(教程67、68 页),搞清楚GB2318-80 中国标码和机内码的变换。(5)语音编码中波形量化参数(可能会出简单的计算题目哦)采样频率:一秒内采样的次数,反映了采样点之间的间隔大小。人耳的听觉上限是20kHz,因此40kHz 以上的采样频率足以使人满意。CD 唱片采用的采样频率是44.1kHz。测量精度:样本的量化等级,目前标准采样量级有8 位和16 位两种。声道数:单声道和立体声双道。立体声需要两倍的存储空间。11、差错控制编码(1)根据码组的功能,可以分为检错码和纠错码两类。检错码是指能自动发现差错的码,例
15、如奇偶检验码;纠错码是指不仅能发现差错而且能自动纠正差错的码,例如循环冗余校验码。(2)奇偶检验码、海明码、循环冗余校验码(CRC)。(教程70 到77 页)12、嵌入式系统的度量项目(1)性能指标:分为部件性能指标和综合性能指标,主要包括:吞吐率、实时性和各种利用率。(2)可靠性与安全性可靠性是嵌入式系统最重要、最突出的基本要求,是一个嵌入式系统能正常工作的保证,一般用平均故障间隔时间MTBF 来度量。(3)可维护性:一般用平均修复时间MTTR 表示。(4)可用性(5)功耗(6)环境适应性(7)通用性(8)安全性(9)保密性(10)可扩展性性价比中的价格,除了直接购买嵌入式系统的价格外,还应
16、包含安装费用、若干年的运行维修费用和软件租用费。13、嵌入式系统的评价方法:测量法和模型法(1)测量法是最直接最基本的方法,需要解决两个问题:A、根据研究的目的,确定要测量的系统参数。B、选择测量的工具和方式。(2)测量的方式有两种:采样方式和事件跟踪方式。(3)模型法分为分析模型法和模拟模型法。分析模型法是用一些数学方程去刻画系统的模型,而模拟模型法是用模拟程序的运行去动态表达嵌入式系统的状态,而进行系统统计分析,得出性能指标。(4)分析模型法中使用最多的是排队模型,它包括三个部分:输入流、排队规则和服务机构。(5)使用模型对系统进行评价需要解决3 个问题:设计模型、解模型、校准和证实模型。
17、(二)1.嵌入式微处理器的基本结构(1)嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。(2)嵌入式微处理器是嵌入式硬件系统的核心,通常由控制单元、算术逻辑单元和寄存器3大部分组成:A、控制单元:主要负责取指、译码和取数等基本操作并发送主要的控制指令。B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作。C、寄存器:用于暂存临时性的数据。2.嵌入式微处理器的分类(根据用途)(1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制。最大的特点是单片化,体积小,功耗和成本低,可靠性高。目前约占70%的市场份额。(2)嵌入式微处理器(EMPU):又称为单板
18、机,由通用计算机中的CPU 发展而来,它的特征是具有32位以上的处理器,具有较高的性能。通常嵌入式微处理器把CPU、ROM、RAM 及I/O 等模块做到同一个芯片上。(3)嵌入式DSP 处理器(DSP):专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,使其处理速度比最快的CPU 还快1050倍,在数字滤波、FFT、频谱分析等方面获得了大量的应用。(4)嵌入式片上系统(SOC):追求产品系统最大包容的集成器件,其最大的特点是成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块。3.典型8位微处理器的结构和特点该部分参考教程8694页,以8051为重点,彻底
19、搞清楚8位单片机的工作原理,外设控制、存储分布、寻址方式以及典型应用。2007年11月下午的第一道题目就考查了8051的定时器使用、外部时钟连接、实际应用的流程设计以及典型的寻址方式。这些考点几乎可以在教程上找到,例如外部时钟连接那个问题的答案就是教程89页上面的原图。4.典型16位微处理器的结构和特点该部分参考教程9497页。典型的微处理器可以参考MSP430,找一本这方面的书看看关于MSP430的结构原理以及典型应用。5.典型32位微处理器的结构和特点该部分参考教程97112页。32位处理器采用32位的地址和数据总线,其地址空间达到了232=4GB。目前主流的32位嵌入式处理器系统主要有A
20、RM 系列、MIPS 系列、PoewrPC 系列等。ARM 微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC 处理器结构。按照目前的发展形式,ARM 几乎成了嵌入式应用的代名词。按照我个人的意见,作为嵌入式系统设计师考试,逐渐增加考查ARM 体系结构与编程方面的题目是大势所趋。2006年没有一道关于ARM 的题目,2007年出了少量题目,可能在2008年会继续增加。在下午题方面,2006年考查了X86方面的应用、2007年考查了8051方面的应用,这个可能是一个过度过程,以目前ARM 在嵌入式领域的广泛应用和普及程度,下午题目考查ARM 应用方面或者32位其他的微处理器方
21、面的应用题目可能在不就将来的考试中就会出现。6、单片机系统的基本概念(1)单片机组成:中央处理器、存储器、I/O 设备。(2)存储器:物理实质是一组或多组具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。A、ROM(只读存储器):一般用于存放固定的程序或数据表格等,数据在掉电后仍然会保留下来。B、RAM(随机存储器):用于暂存程序和数据、中间计算结果,或用作堆栈用等,数据在掉电后就会丢失。(3)I/O端口:单片机与外界联系的通道,它可以对各类外部信号(开关量、模拟量、频率信号)进行检测、判断、处理,并可控制各类外部设备。现在的单片机I/O 口已经集成了更多的特
22、性和功能,对I/O端口的功能进行了拓展和复用,例如外部中断、ADC 检测以及PWM 输出等等。(4)输出电平:高电平电压(输出“1”时)和低电平电压(输出“0”时)A、TTL 电平:正逻辑,5V 为逻辑正,0V 为逻辑负,例如单片机的输出。B、RS232电平:负逻辑,-12V 为逻辑正,+12V 为逻辑负,例如PC 的输出。注:因此在单片机和PC 进行通讯的时候需要一个MAX232芯片进行电平转换。(5)堆栈:它是一种线性的数据结构,是一个只有一个进出口的一维空间。A、堆栈特性:后进先出(LIFO)B、堆栈指针:用于指示栈顶的位置(地址),当发生压栈或者出栈操作时,导致栈顶位置变化时,堆栈指针
23、会随之变化。C、堆栈操作:压栈操作(PUSH)和出栈操作(POP)。D、堆栈类型:“向上生长”型堆栈,每次压栈时堆栈指针加1;“向下生长”型堆栈,每次压栈堆栈时指针减1。E、堆栈应用:调用子程序、响应中断时,堆栈用于保护现场;还可以用作临时数据缓冲区来使用。F、使用注意:堆栈溢出问题,压栈和出栈的匹配问题。(6)定时/计数器:实质都是计数器。用作定时器时是对单片机内部的时钟脉冲进行计数,而在用作计数器时是对单片机外部的输入脉冲进行计数,其作用如下:A、计时、定时或延时控制;B、脉冲技术;C、测量脉冲宽度或频率(捕获功能)(7)中断:优先级更高的事件发生,打断优先级低的时间进程。引起中断的事件称
24、为中断源。一个单片机可能支持多个中断源,这些中断源可以分为可屏蔽中断和非可屏蔽中断,而这些中断源并不都是系统工作所需的,我们可以根据系统需求屏蔽那些不需要的中断源。A、中断嵌套:当一个低级中断尚未执行完毕,又发生了一个高级优先级的中断,系统转而执行高级中断服务程序,待处理完高级中断后再回过头来执行低级中断服务程序。B、中断响应时间是指从发出中断请求到进入中断处理所用的时间;中断处理时间是指中断处理开始到中断处理结束的时间。C、中断响应过程:a、保护现场:将当前地址、累加器ACC、状态寄存器保存到堆栈中。b、切换PC 指针:根据不同的中断源所产生的中断,切换到相应的入口地址。c、执行中断服务处理
25、程序。d、恢复现场:将保存在堆栈中的主程序地址、累加器ACC、状态寄存器恢复。e、中断返回:从中断处返回到主程序,继续执行。D、中断入口地址:单片机为每个中断源分配了不同的中断入口地址,也称为中断向量。(8)复位:通过外部电路给单片机的复位引进一个复位信号,让系统重新开始运行。A、复位发生时的动作:a、PC 指针从起始位置开始执行(大多数单片机都时从0 x0000处开始执行)。b、I/O 端口设置成缺省状态(高阻态、或者输出低电平)。c、部分专用控制寄存器SFR 恢复到缺省状态。d、普通RAM 不变(如果时上电复位,则是随即数)。B、两种不同的复位启动方式:a、冷启动:也叫上电复位,指在断电状
26、态下给系统加电,让系统开始正常运行。b、热启动:在不断电的状态下,给单片机复位引进一个复位信号,让系统重新开始。C、两种类型的复位电路:高电平复位和低电平复位。D 注意事项:a、注意复位信号的电平状态及持续时间必须满足系统要求。b、注意避免复位信号抖动。(9)时钟电路:单片机是一种时序电路,必须提供脉冲电路才能正常工作。时钟电路相当于单片机的心脏,它的每一次跳动(振动节拍)都控制着单片机的工作节奏。振荡得慢时,系统工作速度就慢,振荡得快时,系统工作速度就快(功耗也增大)。A、振荡周期:振荡源的振荡节拍。B、机器周期:单片机完成一个基本操作需要的振荡周期(节拍)。C、指令周期:执行一条指令需要几
27、个机器周期。不同的指令需要的机器周期数不同。7、ARM体系结构的基本概念(1)ARM:Advanced RISC Machine。(2)ARM体系结构中支持两种指令集:ARM 指令集和Thumb 指令集。(3)ARM内核有T、D、M、I四个功能模块:A、T 模块:表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。B、D 模块:表示Debug,内核中放置了用于调试的结构,通常为一个边界扫描链JTAG。C、M 模块:表示8位乘法器。D、I 模块:表示EmbeddedICE Logic,用于实时断点观测及变量观测的逻辑电路部分。(4)ARM处理器有7种运行模式:A、用户模式(User):正常程
28、序执行模式,用于应用程序。D、快速中断模式(FIQ):快速中断处理,用于高速数据传输和通道处理。C、外部中断模式(IRQ):用于通用的中断处理。D、管理模式(SVE):供操作系统使用的一种保护模式。E、数据访问中止模式(Abort):用于虚拟存储及存储保护。F、未定义指令中止模式(Undefined):当未定义指令执行时进入该模式。G、系统模式(System):用于运行特权级的操作系统任务。除了用户模式之外的其他6种处理器模式称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换,其中,除了系统模式外,其他的5种特权模式又称为异常模式。处理器模式可以通过软件控制
29、进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。这种体系结构可以使操作系统控制整个系统的资源。当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式种都有一组寄存器,供相应的异常处理程序使用,这样就可以保证进入异常模式时,用户模式下的寄存器不被破坏。系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器,但是系统模式属于特权模式,可以访问所有的系统资源,也
30、可以直接进行处理器模式切换,它主要供操作系统任务使用。(5)ARM处理器共有37个寄存器:31个通用寄存器和6个状态寄存器A、通用寄存器包括R0R15,可以分为3类:a、未备份寄存器R0R7:在所有的处理器模式下,未备份寄存器都是指向同一个物理寄存器。b、备份寄存器R8R14:对于R8R12来说,每个寄存器对于2个不同的物理寄存器,它们每次所访问的物理寄存器都与当前的处理器运行模式有关。对于R13、R14来说,每个寄存器对于6个不同的物理寄存器,其中一个是用户模式和系统模式共用。R13在ARM 指令种常用作堆栈指针。由于处理器的每种运行模式都有自己独立的物理寄存器R13,所有在用户应用程序的初
31、始化部分,一般要初始化每种模式下的R13,使其指向该运行模式的栈空间。R14又称为连接寄存器(LR),在ARM 体系种具有下面两种特殊作用:在通过BL 或BLX 指令调用子程序时,存放当前子程序的返回地址;在异常中断发生时,存放异常模式将要返回的地址。c、程序计数器R15(PC)。由于ARM 采用了流水线机制,在三级流水线中,当正确读取了PC 的值时,该值为当前指令地址值加8个字节。也就是说,PC 指向当前指令的下两条指令的地址。在ARM 指令状态下,PC 的0和1位是0,在Thumb 指令状态下,PC 的0位是0。B、程序状态寄存器a、ARM 体系结构包含1个当前程序状态寄存器(CPSR)和
32、5个备份的程序状态寄存器(SPSR),使用MSR 和MRS 指令来设置和读取这些寄存器。b、当前程序状态寄存器CPSR:保存当前处理器状态的信息,可以在任何处理器模式下被访问。c、备份程序状态寄存器SPSR:每一种异常处理器模式下都有一个专用的物理状态寄存器。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容,在异常中断程序退出时,可以用SPSR 中保存的值来恢复CPSR。d、由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR 时,结果是未知的。(6)ARM指令的寻址方式所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。A、立
33、即寻址:操作数本身就在指令中给出,只要取出指令也就取到了操作数。ADD R0, R0, #1 ;R0R0+1B、寄存器寻址:利用寄存器中的数值作为操作数。ADD R0, R1, R2 ;R0R1+R2C、寄存器间接寻址:以寄存器中的值作为操作数地址,而操作数本身存放在存储器中。ADD R0, R1, R2 ;R0R1+R2LDR R0, R1 ;R0R1STR R0, R1 ;R1R0D、基址变址寻址:将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。LDR R0, R1, #4 ;R0R1+4LDR R0, R1, #4! ;R0R1+4
34、 R1R1+4LDR R0, R1, #4 ;R0R1 R1R1+4LDR R0, R1, R2! ;R0R1+R2E、多寄存器寻址:一条指令可以完成多个寄存器值的传送。LDMIA R0, R1, R2, R3 ;R1R0 R2R0+4 R3R0+8F、相对寻址:以程序计数器PC 的当前值作为基地址,指令中的地址标号作为偏移量,两者相加之后得到操作数的有效地址。BL NEXT ;跳转到子程序NEXT 处执行NEXTMOV PC, LR ;从子程序返回G、堆栈寻址:支持4种类型的堆栈工作方式:a、满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生长。b、满递减堆栈:堆栈指针指向最后压入
35、的数据,且由高地址向低地址生长。c、空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生长。d、空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生长。(7)ARM的存储方法A、大端模式:数据的高字节存储在低地址中,低字节存储在高地址中。B、小端模式:数据的低字节存储在低地址中,高字节存储在高地址中。(8)ARM中断与异常A、ARM 内核支持7种中断,不同的中断处于不同的处理模式,具有不同的优先级,而且每个中断都有固定的中断地址入口。当一个中断发生是,相应的R14(LR)存储中断返回地址,SPSR 存储当前程序状态寄存器CPSR 的值。B、由于ARM 内
36、核支持流水线工作,LR 寄存器存储的地址可能是发生中断后面指令的地址,所以不同的中断处理完成后,必须将LR 寄存器值经过处理后再写入P15(PC)寄存器。C、ARM 异常的具体含义:a、复位:当处理器的复位电平有效时,产生复位异常,程序跳转到异常复位异常处理程序处执行。b、未定义的指令:当ARM 处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可以使用该异常机制进行软件仿真。c、软件中断:该异常由执行SWI 指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现操作系统调用功能。d、指令预取中止:如果处理器预取指令的地址不存在或该地址不允许当前指令访问,存储器向处理器
37、发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。e、数据访问中止:如果处理器数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常。f、外部中断请求:当ARM 外部中断请求管脚有效,而且CPSR 中的I 位为0时,产生IRQ 异常。系统的外设可以通过该异常请求中断服务。g、快速中断请求:当ARM 快速中断请求管脚有效,而且CPSR 的F 位为0时,产生FIQ 异常。D、ARM 处理器对异常中断的响应过程a、将下一条指令的地址存入相应的连接寄存器LR 中。b、将CPSR 复制到相应的SPSR 中。c、根据异常的类型,强制设置CPSR 的运行模式位。
38、d、强制PC 从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。E、ARM 处理器从异常中断处理程序中返回a、恢复中断的程序的处理器状态,将SPSR 复制到CPSR 中。b、若在进入异常处理时设置了中断禁止位,要在此清除。c、将连接寄存器LR 的值减去相应的偏移量后送到PC。F、复位异常中断处理程序不需要返回。在复位异常中断程序开始整个用户程序的执行。(三)1、嵌入式软件基础(1)嵌入式软件的特点:A、规模较小。B、开发难度大。C、实时性和可靠性要求高。D、要求固化存储。(2)嵌入式软件分类:A、系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。B、
39、应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。C、支撑软件:辅助软件开发的工具软件。(3)无操作系统的嵌入式软件的两种实现方式:A、循环轮转优点:简单、直观、开销小、可预测。缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。B、前后台系统(在循环轮转的基础上增加了中断处理功能)前台(事件处理级):中断服务程序,负载处理异步事件。后台(任务级):一个无限循环,负载资源分配、任务管理和系统调度。(4)有操作系统的三大优点:A、提高系统的可靠性。B、提高了系统的开发效率,降低了开发成本,缩短了开发周期。C、有利于系统的扩展与移植。(5)设备驱动层(也叫板级支持包B
40、SP:包含了嵌入式系统中所有与硬件相关的代码)大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。这部分工作由设备驱动层来完成的,它负责直接与硬件大交道,对硬件进行管理和控制,为上层软件提供所需的驱动支持,类似PC 系统中的BIOS 和驱动程序。(6)板级支持包BSP 的基本思想把嵌入式操作系统与具体的硬件平台隔离开来。在BSP 当中,把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与BSP 进行交互,并通过BSP 来访问真正的硬件。(7)一般来说。BSP 主要包括两个方面的内容:A、引导加载程序BootL
41、oader。B、设备驱动程序。(8)关于引导加载程序BoorLoader引导加载程序是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一段小程序,它的实现高度依赖于具体的硬件平台,主要的基本功能如下:A、片级初始化:纯硬件初始化过程,把微处理器从上电的默认状态设置成系统要求的工作状态。B、板级初始化:同时有软件和硬件在内的初始化过程,设置各种硬件的寄存器和设置某些软件的数据结构和参数。C、加载内核:将操作系统和应用程序的映象从Flash 存储器复制到系统内存当中,然后跳转到系统内核的第一条指令处继续执行。补充:PC 系统的引导加载过程。PC 系统的引导加载程序由两部分代码组
42、成BIOS 和MBR 中的引导程序。BIOS 在完成硬件检测和资源配置后,将硬盘主引导记录MBR 中的引导程序读到系统的内存当中,然后将控制权交给它,由它负责把操作系统的内核映象从硬盘读入到内存,然后跳转到内核入口去运行,即启动操作系统。(9)设备驱动程序在一个嵌入式系统中,操作系统可能有也可能无,但是设备驱动程序是必不可少的。设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。大多数设备驱动程序都具备下面的基本功能:启动、关闭、停用、启用、读操作、写操作。这些功能一般用函数的形式来实现,这些函数之间的组织结构主要有两种:分层结构和混合结构。(10)关于分
43、层结构A、硬件接口:直接操作和控制硬件。B、调用接口:不直接跟硬件大交道,为上层软件提供服务和函数接口。C、优点:把所有与硬件相关的细节都封装在硬件接口中,在硬件需要升级,需要更新设备驱动程序的时候,只需要改动硬件接口中的函数即可,而上层调用接口中的函数不用做任何修改。D、混合结构:在设备驱动程序当中,没有明确的层次关系,上层接口和硬件接口混在一起,相互调用。(11)嵌入式中间件它是在操作系统内核、设备驱动程序和应用软件之外的所有系统软件,其基本思路是:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在它上面的那些应用软件提供一个灵活、安全。移植性好、相互通信、
44、协同工作的平台。2、嵌入式操作系统概述(1)内核内核是指操作系统中的一个组件,它包含了OS 的主要功能,即OS 的各种特性及其相互之间的依赖关系,这些功能主要包括:A、任务管理:对系统中运行的软件进行描述和管理,并完成处理器资源分配和调度。B、存储管理:提高内存的利用率,方便用户使用,提供足够的存储空间。C、设备管理:方便设备的使用,提高CPU 和I/O 设备的利用率。D、文件管理:解决文件资源存储、共享、保密和保护等问题。注:不同嵌入式操作系统的内核设计各不相同,取决于系统设计和实际需求。(2)嵌入式操作系统分类:A、按系统类型:商业系统、专用系统、开源系统。B、按响应时间:硬实时系统、软实
45、时系统。C、按软件结构:单体结构(uCOS)、分层结构(MS-DOS)、微内核结构(Vxworks)。3、任务管理(1)嵌入式操作系统的任务管理可以分为:A、单道程序技术:操作系统中,任何时候只能有一个程序在运行。B、多道程序技术:操作系统中,允许多个程序同时存在并运行。(2)进程进程,简单的说,是一个正在运行的程序。进程与程序既有联系又有区别,主要表现为下面结构方面:A、程序由数据和代码两部分内容组成,它是一个静态的概念。而进程是正在执行的程序,它也由两部分组成:程序和该程序的运行上下文。它是一个动态的概念。B、程序和进程之间并不是一一对应的。一个进程在运行的时候可以启动一个或多个程序。反之
46、,同一个程序也可能由多进程同时执行。C、程序可以作为一种软件资源长期保存,以文件的形式存放在光盘或硬盘上,而进程则是一次执行的过程,它是暂时的,是动态的产生和终止。一个进程至少应包括三个方面:相应的程序、CPU上下文、一组系统资源。进程有三个特性:A、动态性:进程是正在运行的程序,而程序的运行状态是不断变化的。B、独立性:进程是系统资源的使用单位,每个进行有自己的运行上下文和内部状态。C、并发性:宏观来看,系统中同时有多个进程存在,它们相互独立地运行。注:对于并发的理解。在单CPU 的情况下,所谓的并发性指的是宏观上的并发运行,而微观上还是顺序进行,各个进程轮流去使用CPU 资源。在单核CPU
47、 中,真正的、物理上的PC 寄存器只有一个,进程在轮流执行的时候,物理PC 的取值也在不断变化。而逻辑PC 其实就是一个内存变量。每个进程都有一个逻辑PC,当一个进程要运行的时候,就把它的逻辑PC 装载到物理PC 中去;反之,当一个进程暂不运行的时候,就把物理PC中的值保存在它的逻辑PC 当中。(3)线程线程就是进程当中的一条执行流程。进程其实包含两个部分:资源平台和执行流程(线程)。在一个进程当中,或者说在一个资源平台上,可以同时存在多个线程;可以用线程作为CPU 的基本调度单位,使得各个线程之间可以并发执行;对于同一个进程当中的各个线程来说,他们可以共享该进程的大部分资源。每个线程都有自己
48、独立的CPU运行上下文和栈,这是不能共享的。(4)任务在嵌入式系统中,任务其实就是线程,它是能够独立运行的一个实体。原因有二:A、任务具有独立的优先级和栈空间,CPU 上下文一般存放在栈空间中。B、任务之间可以很方便地、直接地使用共享的内存单元,而不需要经过系统内核。在多道程序的嵌入式系统中,同时存在着多个任务,这些任务之间的结构一般为层状结构,存在着父子关系。当嵌入式内核刚刚启动的时候,只有一个任务存在,然后由该任务派生出所有其他任务。(5)任务的创建与中止(教程P270)任务的创建主要发生在以下三种情形:A、系统初始化。B、任务运行的过程中。C、用户提出请求。从技术的角度来说,实际上新任务
49、只有一种创建的方法,也就是在一个已经存在的任务中,通过调用相应的系统函数来创建一个新的任务。任务的创建只要有两种可能的实现模型:fork/exec 和spawn。两种模型的差别主要在于内存的分配方式。A、fork/exec 模型下,首先调用fork 函数为新任务创建一份与父任务完全相同的内存空间,然后再调用exec 函数装入新任务的代码,并用它来覆盖原有的属于父任务的内容。嵌入式Linux操作系统是基于fork/exec模型的。B、spawn 模式下,在创建新任务的时候,直接为它分配一个全新的地址空间,然后将新任务的代码装入并运行。uCOS操作系统是基于spawn 模型的。任务的中止可能有多种
50、原因,主要有下面三种情况:A、正常退出。B、错误推出。C、被其他任务踢出。在有些嵌入式系统中,尤其是一些控制系统中,它的某些任务被设计为“死循环”的模式,一直循环下去,不会中止。(6)任务的状态任务有三中基本状态:A、运行状态:任务占有CPU,并在CPU 上运行。B、就绪状态:任务已经具备运行的条件,在等待CPU 空闲。C、阻塞状态:任务因为正在等待某种事件的发生而暂时不能运行。对于就绪状态和阻塞状态,它们的相同之处在于,任务都是处于暂停状态,没有运行。不同之处在于,暂停的原因是不一样的,导致就绪状态的原因是外因,是操作系统的CPU正忙,而导致阻塞状态的原因是内因,是任务自身的问题。任务状态的
51、四种转换关系:A、运行阻塞:任务由于等待某个时间被阻塞起来。B、运行就绪:调度器由于某种原因(例如优先级)选择了另一个任务去运行。C、就绪运行:CPU 空闲了,处于就绪状态的任务被调度器选中去运行。D、阻塞就绪:任务的等待事件完成,具备了继续运行的条件。(7)任务控制块TCB任务控制块TCB,就是在操作系统中,用来描述和管理一个任务的数据结构。系统为每一个任务都维护了一个相应的TCB,用来保存该任务的各种相关信息。它的主要内容包括下面几项:A、任务的管理信息:任务的标识ID、状态、优先级、调度信息、各种队列指针等。B、CPU上下文信息:CPU各种寄存器当前的值以及逻辑寄存器。C、资源管理的信息
52、:段表地址、页表地址、根目录、文件描述字等。当需要创建一个任务的时候,就为它生成一个TCB,并初始化这个TCB 的内容;当需要中止一个任务的时候,只要回收它的TCB 就可以了。(7)任务的切换基本思想:把当前任务的运行上下文保存起来,并恢复新任务的上下文。任务切换通常有下面的基本步骤:A、将处理器的运行上下文保存在当前任务的TCB 中。B、更新当前任务的状态,从运行状态变为就绪状态或阻塞状态。C、按照一定的策略,从所有处于就绪状态的任务中选择一个去运行。D、修改新任务的状态,从就绪状态变成运行状态。E、根据新任务的TCB 的内容,恢复它的运行上下文环境。在一个多任务的操作系统中,采用任务队列的
53、方式来组织它的所有任务。由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态,不同的状态用不同的队列来标志。(8)任务的调度调度器可以看作CPU 的资源管理者。任务调度的首要问题是:何时进行调度,即调度发生的时机。一般有下面几种情形:A、一个新任务被创建时,需要决定运行新任务还是继续执行父任务。B、一个任务运行结束时,需要从就绪队列中选择某个任务去运行。C、一个任务运行阻塞时,需要选择另一个任务去运行。D、一个I/O 操作完成,任务阻塞结束,立即执行新就绪任务还是继续执行被中断任务。E、一个时钟节拍结束时,需要对就绪任务重新调度。任务调度的第二个问题是:如何调度,即调度方式。主要有两种
54、方式:A、不可抢占调度方式:例如时间片轮转。B、可抢占调度方式:例如优先级调度。实时操作系统大都采用可抢占调度方式。任务调度的第三个问题是:调度算法。A、先来先服务算法:按照任务到达的先后次序进行调度,是不可抢占的调度方式。B、短作业优先算法:各个任务开始执行之前,事先预计好它的执行时间,从中选择用时较短的任务优先执行。C、时间片轮转算法:所有的就绪任务按照先来先服务的原则排成一个队列。在每次调度的时候,把处理器分派给队列当中的第一个任务,让它去执行一小段时间。在这个时间段里任务被阻塞或由于其他原因暂停,或者任务的时间片用完了,它会被送到就绪队列的末尾,然后调度器再执行当前队列的第一个任务。这
55、种算法的优点是各个就绪任务都平均地分配使用CPU 的时间,每个就绪任务都能一直保持着活动性。时间片轮转法有一个默认前提,即位于就绪队列中的各个任务是同等重要的。D、优先级算法:给每个任务都设置一个优先级。然后在任务调度的时候,在所有处于就绪状态的任务中选择优先级最高的那个任务去运行。采用优先级调度算法的一个问题是可能会发生优先级反转(教程P285),出现任务“饥饿”现象。(9)实时系统调度对于RTOS 调度器来说,任务之间的公平性并不是最重要的,它追求的是实时性。A、单调速率调度算法(RMS):任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高,任务的周期越长,优先级越低。
56、RMS 假定任务是相同独立的、周期性的、任务在能够在任何位置被抢占,而实际中的系统,任务之间需要进行通信和同步,这是一种理想的调度方法,实际中并不一定存在。B、最早期限优先法(EDF):根据任务的截止时间来确定其优先级,对于时间限期最近的任务,分配最高的优先级。当有一个新的任务处于就绪状态时,各个任务的优先级就有可能要进行调整,选择截止时间最近的任务去运行。(10)任务互斥A、任务之间的关系:相互独立、任务互斥、任务同步、任务通信。B、任务间的互斥:当前已经有一个任务正在访问临界区共享数据,那么其他任务暂时不能访问。C、提出互斥访问的四个条件:a、在任何时候最多只能有一个任务位于它的临界区中。
57、b、不能事先假定CPU 的个数和系统的运行速度。c、没有任务位于它的临界区中,它不妨碍其他任务去访问临界区资源。d、任何一个任务进入临界区的请求必须在有限的时间内得到满足,不能无限期。D、任务互斥的解决方案:a、关闭中断法b、繁忙等待法c、信号量处理(11)信号量信号量记录当前可用资源的数量。信号量由操作系统维护,任务不能直接去修改它的值,只能通过初始化和两个标准原语(PV 原语)来对它进行访问。注:关于原语。原语通常由若干条语句组成,用来实现某个特点的操作,并通过一段不可分割或不可中断的程序来实现其功能。原语时操作系统内核的一个组成部分,必须在内核态下执行。原语的不可中断性是通过在其执行过程
58、中关闭中断来实现的。关键要理解PV 原语的实现:P(semaphores S)-S.count; /申请一个资源if(S.count 0) /没有空闲资源将当前任务阻塞起来,加到阻塞队列末尾,调度新的任务运行。V(semaphores S)+S.count; /释放一个资源if(S.count = 0) /有任务被阻塞从阻塞队列中取出一个任务,把该任务改为就绪状态,插入就绪队列。利用操作系统提供的信号量机制,可以方便、有效地实现对临界资源的互斥访问,优点有两个:A、可以设置信号量的计数值,从而允许多个任务同时进入临界区。B、当一个任务暂时无法进入临界区时,它会被阻塞起来,将CPU 让给其他任务
59、。(12)任务同步任务之间的同步可以使用信号量机制,通过引入PV 操作来设定两个任务在运行时的先后顺序。例如,可以把信号量视为某个共享资源的当前个数,然后由一个任务负责生成这种资源,而另一个任务则负责消费这种资源,这样可以构成两个任务之间的先后顺序。在具体实现上,一般把信号量的初始值设为N,N 大于或等于0。然后在一个任务内使用V 原语,把信号量加1,而在另外一个任务内部使用P 原语,将信号量减1,从而实现这两个任务之间的同步关系。(13)死锁在一组任务中,每个任务都占用着若干资源,同时又在等待其他任务占用的资源,从而造成所有任务都无法进展下去的现象,这称为死锁现象。除了资源的竞争之外,PV
60、操作使用不当也会引起死锁。编辑推荐:(14)信号所谓信号,是系统给任务的一个指示,表明某个异步事件已经发生了。该事件可能来自外部,也可能来自内部。信号机制也可以称为软中断机制。信号机制与中断处理机制非常相似,相同点:A、都具有中断性。B、都有相应的服务程序。C、都可以屏蔽响应。不同点:A、中断由硬件或特定指令产生,而信号由系统调用产生。B、中断触发后,硬件会根据中断向量找到相应的处理程序执行;而信号则通过发送信号的系统调用来触发,系统不一定马上对它进行处理。C、中断处理程序在系统内核的上下文中运行,是全局的;而信号处理程序在相关任务的上下文中运行,是任务的一个组成部分。(15)任务间通信任务之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园教育活动的案例分析计划
- 幼儿园小班的成长档案管理工作计划
- 气候模型与未来预测试题及答案
- 2024年陪诊师考试综合模拟试题及答案
- 2024年人力资源管理师轻松通过指南试题及答案
- 2024年监理工程师应考心态管理试题及答案
- 备课组长会议课件
- 挑战思维的计算机二级试题及答案
- 动物医学的新技术及其应用试题及答案
- 2024人力资源管理师考试博大试题及答案
- 高等学历继续教育毕业生实习报告
- DB32T 2060-2024 单位能耗限额
- 形势与政策总体国家安全观
- 《QOHAB123-2023高端G系列冷镦钢用热轧盘条》
- 2024年世界职业院校技能大赛中职组“食品药品检验组”赛项考试题库(含答案)
- Unit 5 Humans and nature Lesson 1 A Sea Story 说课 课件-2024-2025学年高中英语北师大版(2019)必修第二册
- 智能运维知识库建设方案设计与实施规划
- 幼儿园办园行为督导评估指标体系表
- 宫颈癌护理查房-5
- 水工建筑物课程设计水闸
- 核心素养下小学道德与法治实践性作业设计探究
评论
0/150
提交评论