1、嵌入式系统的特点:嵌入式系统通常是形式多样、面向特定应用的软硬件综合体;嵌入式系统得到多种类型的处理器和处理器体系结构的支持;嵌入式系统通常极其关注成本;嵌入式系统有实时性和可靠性的要求;嵌入式系统使用的操作系统是适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统;嵌入式系统开发需要专门工具和特殊方法。
2、嵌入式系统的分类:(1)按嵌入式处理器的位数来分类:4、8、16、32、64位嵌入式系统;(2)按应用来分类:信息家电类、移动终端类、通信类、汽车电子类、工业控制类;(3)按速度分类:强实时系统, 其系统响应时间在毫秒或微秒级。
一般实时系统, 其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些。
弱实时系统, 其系统响应时间约为数十秒或更长。
这种系统的响应时间可能随系统负载的轻重而变化;(4)按确定性来分类:硬实时:系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就要引起系统崩溃或致命的错误。
软实时:系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃;(5)按嵌入式系统软件复杂程度来分类:循环轮询系统、有限状态机系统、前后台系统、单处理器多任务系统、多处理器多任务系统。
3、嵌入式系统的应用领域:(1)嵌入式系统广泛地应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表、办公自动化等领域;(2)消费电子领域;(3)通信领域;(4)工控、汽车电子、仿真、医疗仪器等;(5)国防、航空航天领域。
4、嵌入式系统的发展趋势:(1)以信息家电、移动终端、汽车电子、网络设备等为代表的互联网时代的嵌入式系统,不仅为嵌入式市场展现了美好前景,注入了新的生命,同时也对嵌入式系统技术,提出新的挑战;(2)形成行业的标准:行业性嵌入式软硬件平台;(3)面向应用领域的、高度集成的、以32位嵌入式微处理器为核心的SOC将成为应用主流;(4)嵌入式应用软件的开发需要强大的开发工具和操作系统的支持;(5)嵌入式系统联网成为必然趋势,驱动了大量新的应用。
5、互联的价值:(1)嵌入式设备的互联性可提高对各种服务、内容和信息的访问能力;(2)为动态修改嵌入式软件提供了可能;(3)增强了系统和设备的可管理性。
6、嵌入式硬件系统的基本组成:嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。
7、嵌入式微处理器的特点及主流类型:体积小、重量轻、成本低、可靠性高、功耗低、工作温度、抗电磁干扰、可靠性等方面增强据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种嵌入式微处理器体系,主流的体系有ARM、MIPS、PowerPC、SH、 X86等。
8、总线、存储器、I/O接口和设备:(1)总线:嵌入式系统的总线一般集成在嵌入式微处理器中;从微处理器的角度来看,总线可分为片外总线(如:PCI、ISA等)和片内总线(如:AMBA、 AVALON、OCP、WISHBONE等);选择总线和选择嵌入式微处理器密切相关,总线的种类随不同的微处理器的结构而不同。
(2)存储器:嵌入式系统的存储器包括主存和外存;大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中。
系统上电后在主存中的代码直接运行。
主存储器的特点是速度快,一般采用ROM、EPROM、Nor Flash、SRAM、DRAM等存储器件。
目前有些嵌入式系统除了主存外,还有外存。
外存是处理器不能直接访问的存储器,用来存放各种信息,相对主存而言具有价格低、容量大的特点。
在嵌入式系统中一般不采用硬盘而采用电子盘做外存,电子盘的主要种类有NandFlash、 SD (Secure Digital)卡、CompactFlash、SmartMedia、Memory Stick、MultiMediaCard、、 DOC(Disk On Chip)等。
(3)输入/输出接口和设备:嵌入式系统的大多数输入/输出接口和部分设备已经集成在嵌入式微处理器中。
输入/输出接口主要有中断控制器、DMA、串行和并行接口等,设备主要有定时器(Timers)、计数器(counters)、看门狗(watchdog timers)、RTC、UARTs、PWM(Pulse width modulator)、AD/DA、显示器、键盘和网络等。
9、嵌入式软件系统的分类:(1)系统软件:控制、管理计算机系统的资源;(2)支撑软件:辅助软件开发的工具;(3)应用软件:面向应用领域。
从运行平台分类:运行在开发平台上的软件、运行在嵌入式系统上的软件。
、10嵌入式实时操作系统的特点:源代码、可移植、可固化、可裁减、可抢占性、支持多任务、可确定性、任务栈、系统服务、中断管理、稳定性和可靠性。
•任务的定义及其主要特性: 任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核调度的单位,具有以下特性:1动态性:任务状态是不断变化的。
一般分为就绪态、运行态和等待态。
在多任务系统中,任务的状态将随着系统的需要不断进行变化。
2并行性:系统中同时存在多个任务,这些任务在宏观上是同时运行的。
3异步独立性:每个任务各自按相互独立的不可预知的速度运行,走走停停。
•任务的内容: 代码:一段可执行的程序;数据:程序所需要的相关数据(变量、工作空间、缓冲区等);堆栈;程序执行的上下文环境•任务通常包含一个具有无限循环的程序•任务与程序的区别: 1任务能真实地描述工作内容的并发性,而程序不能;2程序是任务的组成部分3除程序外,任务还包括数据、堆栈及其上下文环境等内容;4程序是静态的,任务是动态的;5任务有生命周期,有诞生、有消亡,是短暂的;而程序是相对长久的;6一个程序可对应多个任务,反之亦然;7任务具有创建其他任务的功能,而程序没有•任务的分类: 按照到达情况的可预测性,任务可以划分为:1周期任务(periodic task)2非周期任务;按照重要程度,可分为:1关键任务(critical task)2非关键任务(noncritical task•任务参数:1优先级(priority) 2周期(period) 3计算时间(computation time)4就绪时间(ready time) 5截止时间(deadline)•任务管理:3个状态: 等待(waiting):任务在等待某个事件的发生;•就绪(ready):任务等待获得处理器资源;•执行(running):任务获得处理器资源,所包含的代码内容正在被执行•任务控制块: 任务管理是通过对任务控制块(Task Control Block,TCB)的操作来实现的。
•任务控制块是包含任务相关信息的数据结构•包含了任务执行过程中所需要的所有信息。
•任务控制块大都包括以下信息:1任务的名字2任务执行的起始地址3任务的优先级4任务的状态5任务的硬件上下文(堆栈指针、PC和寄存器等)6任务的队列指针等内容•任务切换: 任务切换(context switching):保存当前任务上下文,并恢复需要执行的任务的上下文的过程。
•当发生任务切换时:1当前正在运行的任务的上下文就需要通过该任务的任务控制块保存起来;2把需要投入运行的任务的上下文从对应的任务控制块中恢复出来•任务切换基本步骤: 1 保存任务上下文环境2 更新当前运行任务的控制块内容,将其状态改为就绪或等待状态3 将任务控制块移到相应队列(就绪队列或等待队列)4 选择另一个任务进行执行(调度)5 改变需投入运行任务的控制块内容,将其状态变为运行状态 6 恢复需投入运行任务的上下文环境•任务管理机制: 任务管理用来实现对任务状态的直接控制和访问。
•内核的任务管理是通过系统调用来体现,主要包括任务创建、任务删除、任务挂起、任务唤醒、设置任务属性等内容•任务管理功能:1 创建任务2删除任务3挂起任务4唤醒任务5设置任务属性6改变任务优先级7获取任务信息•任务调度: 设计调度程序时,通常需要综合考虑如下因素:1CPU的使用率(CPU utilization)2输入/输出设备的吞吐率3响应时间(responsive time)4公平性5截止时间•调度方法划分: 1离线(off-line)和在线(on-line)调度2抢占(preemptive)和非抢占(non-preemptive)调度3静态(static)和动态(dynamic)调度4最佳(optimal)和试探性(heuristic)调度•抢占式调度和非抢占式调度:任务在运行过程中能否被打断的处理情况。
•抢占式调度:正在运行的任务可能被其他任务所打断。
•非抢占式调度:一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其他资源被阻塞的情况下才会停止运行•时间管理功能: 1维持日历时间; 2任务有限等待的计时; 3软定时器的定时管理; 4维持系统时间片轮转调度•通常来说,实时内核提供以下主要与时间相关的管理: 1维持相对时间(时间单位为tick)和日历时间;2任务有限等待的计时;3定时功能;4时间片轮转调度的计时•时间管理功能是通过tick处理程序来实现的1、信号量的种类及用途:(1)互斥信号量:用于解决互斥问题。
它比较特殊,可能会引起优先级反转问题。
互斥信号量是一种特殊的二值信号量,一般它支持所有权、递归访问、任务删除安全和一些避免优先级反转、饥饿、死锁等互斥所固有问题的协议。
(2)二值信号量:用于解决同步问题。
(3)计数信号量:用于解决资源计数问题。
2、信号量机制的主要数据结构:信号量控制块:管理所有创建的信号量,内核在系统运行时动态分配和回收信号量控制块;互斥和二值信号量控制块结构: Binary_Semaphore_Control_Block wait_queue 任务等待队列 attributes 信号量属性lock_nesting_behavior试图嵌套获得时的规则 wait_discipline任务等待信号量的方式 priority_ceiling优先级天花板值 lock是否被占有 holder拥有者nest_count嵌套层数。
3、典型的信号量操作:(1)创建信号量获取(申请),信号量释放信号量,删除信号量,清除信号量的任务等待列表,获取有关信号量的各种信息。
4、通信方式概述:任务间的通信方式,直接通信。
在通信过程中双方必须明确地知道(命名)彼此;间接通信,通信双方不需要指出消息的来源或去向,而通过中间机制来通信。
5、消息队列机制的主要数据结构:消息队列控制块:管理所有创建的消息队列,系统运行时动态分配和回收消息队列控制块;消息队列缓冲区:存放发送到该队列的消息。
接收者从缓冲区中取出消息,消息的发送或接收有两种方法。