嵌入式系统复习资料整理.docx
《嵌入式系统复习资料整理.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习资料整理.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.嵌入式系统的定义 嵌入式计算机系统简称为嵌入式系统,将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。 嵌入式系统 :、以应用为中心、 以计算机技术为基础、 软件硬件可裁剪、 适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 嵌入式操作系统的特点:可固化 、可配置、可剪裁 、独立的板级支持包,可修改 、不同的CPU有不同的版本 、应用的开发需要有集成的交叉开发工具 嵌入式操作系统的组成:嵌入式操作系统、操作系统内核、文件系统、网络协议栈、GUI 、USB协议栈等2. 通用计算机系统与嵌入式系统的比较 形式和类型 看得见的计算机。 按其体系结
2、构、运算速度和结构规模等因素分为大、中、小型机和微机。组成 通用处理器、标准总线和外设。 软件和硬件相对独立。开发方式 开发平台和运行平台是通用计算机二次开发 应用程序可重新编程形式和类型 看不见的计算机 形式多样 应用领域广泛,按应用来分类组成 面向应用的嵌入式微处理器,总线和外部接口多集成在处理器内部,软件与硬件是紧密集成在一起的。开发方式 采用交叉开发方式,开发平台一般是通用计算机,运行 平台是嵌入式系统。二次开发 一般不能在编程微处理器构成的嵌入式系统(以家电为例) 4位、8位、16位、32位处理器 简单的冰箱、洗衣机、微波炉、电视机(CRT电视) 80-90年代的发达国家的高端家电=
3、2010年的家电下乡产品 4位处理器固化的专用嵌入式芯片 除了媒体播放器和LCD电视机以外的量产的智能家电 8位处理器、需要写程序进去的产品3 .单片机 又称微控制器(Microcontroller)(MCU)将嵌入式应用所需要的微处理器、I/O接口、A/D、D/A转换、串行接口以及RAM、ROM通通集成到一个VLSI中, 制造出面向I/O设计的微控制器,就是我们俗称的单片机 DSP 数字信号处理器 与CPU(MCU)相比: 有更多的硬件运算单元 乘除法、矩阵 数字运算速度快 存储和外设管理相对简单 适合数字滤波器和媒体编解码算法的运算 音频、视频处理 智能仪表 调制解调器ARM 32位RIS
4、C嵌入式处理器 ARM公司负责研发处理器内核的IP 众多的公司购买IP的知识产权后制造出形式多样的MCU,如: 不同档次手机的处理器 上网本、PSP、平板电脑 嵌入式工业终端和银行ATM机 4. 嵌入式系统的特点(1) 形式多样、面向特定应用 硬件和软件都必须高效率地设计,避免冗余 低功耗的需求 低成本 高可靠 软件的一体化(OS&APP(2) 多种类型的处理器和处理器体系结构 MCU&DSPMCU:ARMMIPSPowerPC(3) 实时性和可靠性要求较高(4) 操作系统可剪裁、轻量型、实时可靠、可固化(5)嵌入式系统开发需要专门工具和特殊方法5. 嵌入式系统的发展趋势 更高的集成度 更低功
5、耗 普遍的网络支持 更加标准化6. ARM经典处理器 :ARM11、ARM9 和 ARM7 处理器系列 Cortex-A 系列 :共享同一体系结构,因此具有完整的应用兼容性, 支持传统的 ARM、Thumb 指令集和新增的高性能紧凑型 Thumb-2 指令集Cortex-R 系列 :快速 - 以高时钟频率获得高处理性能。确定性 - 处理在所有场合都必须符合硬实时限制。安全 - 系统必须可靠且可信。某些系统将是安全关键系统。成本效益 - 在处理器及其内存系统中都具有竞争力的成本和功耗。 ARM7 指令流水线技术 编程模型的存储器格式大小常用串行接口():Serial Peripheral Int
6、erface-串行外设接口 ,主要应用在EEPROM,FLASH,实时时钟,AD转换器.(片间通信),是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件()UART即通用异步收发器, 可设置成全双工异步通讯方式; 或设置成半双工同步模式()InterIntegrated Circuit时序信号说明 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。嵌入式系统软件的构成方式()专用应用的软件
7、结构(硬件描述和驱动层,应用软件)特点:资源占用小 特定应用的针对性强 系统稳定性高 ()简单操作系统平台结构特点:可根据应用需求定制的底层,降低开发难度,合理的利用已有第三方资源 资源占用略大()通用操作系统平台适合更改多应用程序运行的多应用平台 具有更加通用的GUI、网络互联、存储支持 如:Linux、WinCE、iOS、Symbian、Android 嵌入式系统软件分类系统软件:控制、管理计算机系统的资源 应用运行平台 数据库管理系统 如嵌入式操作,系统嵌入式中间件(.Net Framwork、Java)等等支撑软件:辅助软件开发工具如系统分析设计工具、仿真开发工具、交叉开发工具测试工具
8、、配置管理工具、维护工具等应用软件:面向应用领域如手机软件、路由器软件、交换机软件 、游戏、阅读器、移动办公、远程控制嵌入式软件系统的体系结构如下图所示:() 硬件设备驱动:() 操作系统:包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分,其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来定制() 中间件和基础构架软件:承载通用应用的应用框架如虚拟机和框架承载通用应用的外壳如AndroidWeb浏览器高层协议栈() 应用层应用层软件主要由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如I/O任务、计算的任务、通信任务等,由操
9、作系统调度各个任务的运行、嵌入式文件系统,(常用嵌入式文件系统FAT Fs、JFFS2、YAFFS、UBIFS)通用文件系统功能如下: 提供用户对文件操作的命令 提供用户共享文件的机制 管理文件的存储介质 提供文件的存取控制机制,保障文件及文件系统的安全性 提供文件及文件系统的备份和恢复功能 提供对文件的加密和解密功能而嵌入式文件系统,相比之下较为简单,主要具有文件的存储、检索、更新等功能,一般不提供保护和加密等安全机制。它以系统调用和命令方式提供对文件的各种操作,主要有: 设置和修改对文件和目录的存取权限 提供建立、修改、改变、删除目录等服务 提供创建、打开、读、写、关闭、撤消文件等服务 嵌
10、入式软件运行流程如下:() 上电复位、板级初始化阶段:嵌入式系统上电复位后需要进行硬件的初始化工作。不同的系统,初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:CPU中堆栈指针寄存器的初始化。BSS段(Block Storage Space表示未被初始化的数据)的初始化。CPU芯片级的初始化: 中断控制器、定时器、接口、内存等的初始化() 系统引导升级阶段:根据需要分别进入系统软件引导阶段或系统升级阶段。软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。 引导:操作系统装,分为下列情况:将系统软件从NOR Flash中读取出来加载到RAM中运行:这种方式可以解决
11、成本及Flash速度比RAM慢的问题。软件可压缩存储在Flash中。 不需将软件引导到RAM中而是让其直接在NorFlash上运行,进入系统初始化阶段。将软件从外存(如NandFlash、CF卡、MMC等)中读取出来加载到RAM中运行:这种方式的成本更低升级:又称为固件更新进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级。远程升级一般支持TFTP、FTP、HTTP等方式。本地升级可通过Console口使用超级终端或USB的升级软件进行。() 系统初始化阶段在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。系统
12、初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。 () 应用初始化阶段在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。() 多任务应用运行阶段各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。嵌入式系统内核内核是嵌入式操作系统的基础,也是必备的部分。内核还提供特定的应用编程接口,但目前没有统一的标准。 ()任务管理:内核的核心部分,具有任务调度、创建任务、删除任务、挂起任务、解挂任务、设置任务优先级等功能。 通用计算机的操作系统追求
13、的是最大的吞吐率,为了达到最佳整体性能,其调度原则是公平,采用Round-Robin或可变优先级调度算法,调度时机主要以时间片为主驱动。而嵌入式操作系统多采用基于静态优先级的可抢占的调度,任务优先级是在运行前通过某种策略静态分配好的,一旦有优先级更高的任务就绪就马上进行调度。()内存管理:通常不采用虚拟存储管理,而采用静态内存分配和动态内存分配(固定大小内存分配和可变大小内存分配)相结合的管理方式。有些内核利用MMU机制提供内存保护功能。通用操作系统广泛使用了虚拟内存的技术,为用户提供一个功能强大的虚存管理机制。()通信同步和互斥机制 这些机制提供任务间、任务与中断处理程序间的通信、同步和互斥
14、功能。 一般包括信号量、消息、事件、管道、异步信号和共享内存等功能。 与通用操作系统不同的是,嵌入式操作系统需要解决在这些机制的使用中出现的优先级反转问题。()中断管理其功能如下: 安装中断服务程序 中断发生时,对中断现场进行保存,并且转到相应的服务程序上执行 中断退出前,对中断现场进行恢复 中断栈切换 中断退出时的任务调度 () 时间管理:提供高精度、应用可设置的系统时钟,该时钟是嵌入式系统的时基,可设置为十毫秒以下。提供日历时间,负责与时间相关的任务管理工作如任务对资源有限等待的计时、时间片轮转调度等,提供软定时器的管理功能等。通用操作系统的系统时钟的精度由操作系统确定,应用不可调,且一般
15、是几十个毫秒() 任务扩展管理:任务扩展功能就是在内核中设置一些Hook的调用点,在这些调用点上内核调用应用设置的、应用自己编写的扩展处理程序,以扩展内核的有关功能。Hook调用点有任务创建、任务切换、任务删除、出错处理等、嵌入式协议特点如下:可剪裁:能根据嵌入式系统的功能的要求选择所需的协议,对完整的TCP/IP协议簇进行剪裁,以满足用户的需要。采用“零拷贝”(Zero Copy)技术,提高实时性, 所谓“零拷贝”技术,是指TCP/IP协议栈没有用于各层间数据传递的缓冲区,协议栈各层间传递的都是数据指针,只有当数据最终要被驱动程序发送出去或是被应用程序取走时,才进行真正的数据搬移采用静态分配
16、技术在网络初始化时就静态分配通信缓冲区,设置了专门的发送和接收缓冲(其大小一般小于或等于物理网络上的MTU值),从而确保了每次发送或接收时处理的数据不会超过MTU值,也就避免了数据处理任务的阻塞等待。 、嵌入式实时操作系统C/OS-II简介C/OS-II是一个抢占式实时多任务内核。它是用ANSI的C语言编写的,包含一小部分汇编语言代码,使之可以提供给不同架构的微处理器使用。至今,从8位到64位,C/OS-II已经在40多种不同架构的微处理器上使用。使用C/OS的领域包括:照相机行业、航空业、医疗器械、网络设备、自动提款机以及工业机器人等。 C/OS-II全部以源代码的方式提供,大约有5500行
17、。CPU相关的部分使用的是针对Intel80x86微处理器的代码。C/OS-II可以很容易地移植到不同架构的嵌入式微处理器上。 特点如下:源代码可确定性可移植性任务栈可固化系统服务可裁减中断管理可抢占支持多任务稳定性可靠性实时操作系统的基本概念 是指能对外部事件在限定的时间内完成及时响应的多任务操作系统,往往采用微内核结构,就有实时性、可靠性和可剪裁性的特点()多任务任务的调度CPU控制下的任务的状态转移和切换 时间片轮转优先加抢先优先级不可抢夺的调度优先级可被抢夺的调度 ()任务间通信事件信号量()可重入可重入函数是指函数代码在运行过程中被中断,在中断返回时仍然能够恢复到原来的状态,并能准备
18、无误的执行的函数.()临界区(Critical)处理时不可分割的代码 每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区()资源(Resource)变量、数组、输入输出设备、网络() 共享资源 被一个以上任务使用的资源 使用时的独占 ()互斥 两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥.17 任务管理与调度进程(process)和线程(thread)的统称 任务是调度的基本单位进程主要包括以下内容: 一个正在执行的程序
19、;计算机中正在运行的程序的一个实例;可以分配给处理器,并由处理器执行的一个实体;由一个顺序的执行线程、一个当前状态和一组相关的系统资源所刻画的活动单元。采用多任务的好处任务的规模较小每个任务更容易编码和调试,其质量也更容易得到保证不少应用本身就是由多个任务构成的 如一个应用可能需要进行以下任务的处理:计算、从网络获取数据和刷新显示屏幕 采用多任务的处理方式是应用问题的一个非常自然的解决方式任务之间具有较高的独立性,耦合性小 通过增加新的任务就能方便的扩充系统功能实时和优先级 保证紧急事件得到优先处理成为可能进程和线程线程:调度执行的单位,线程是进程内部一个相对独立的控制流,由线程上下文和需要执
20、行的一段程序指令构成进程:资源分配的单位,在进程中,所有线程共享该进程的状态和资源,可以访问相同的数据使用进程的好处创建: 在一个已有进程中创建一个新线程比创建一个全新的进程所需的时间开销少;终止: 终止一个线程比终止一个进程所花费的时间少;切换: 线程切换比进程切换所花费的时间少;使用线程的好处通信: 使同一进程内部不同线程之间的通信效率得到显著提高。 在大多数操作系统中,不同进程之间的通信需要内核的干预,而同一进程内部不同线程之间则可直接通信。操作系统的进程模型 单进程单线程 MS-DOS 单进程多线程 :或简单地称为任务模型,把整个应用当作一个没有定义的进程来对待;应用则被划分为多个任务
21、的形式来进行处理,适用于实时性要求较高的、相对简单的应用 多进程单线程、传统的linux多进程多线程:多功能设备采用的嵌入式实时操作系统。系统中包含多个进程,每个进程对应又包含多个线程。适合于处理复杂的应用18C/OS-II任务控制块:当一个事件发生后,等待事件列表中优先级最高的任务(即在.OSEventTbl&OSEventGrp中所有被置1的位中优先级数值最小的任务)得到该事件。 C/OS-II采用双向链表来管理所有任务的TCB TCB(Task Control Block)用来存储一个任务的当前属性。任务的主要属性包括:(1)任务栈空间位置,即前节所述该任务的栈空间。(2)任务与其它任务
22、通信的数据空间,在C/OS-II中称为事件 (3)任务的当前状态,标识当前任务是在运行还是在等待某个事件发生;(4)任务的优先级,任务的标识,全系统唯一,此值是任务调度的依据 。C/OS-II任务优先级 C/OS-II操作系统进行任务调度所采用的算法是基于优先级的调度算法 任何一个任务有唯一的一个任务优先级值 INT8U OSTCBPrio; /优先级值,如果为0表示优先级最高 typedef unsigned char INT8U; / INT8U类型就是unsigned char 在C/OS-II操作系统中,优先级值越大,优先级越低,因此,优先级值为0的任务优先级最高。 因为优先级类型为u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 复习资料 整理
限制150内