




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统的特性及开发 l2007.3.12 主要内容 1、为什么需要操作系统 2、为什么需要嵌入式操作系统 3、主流嵌入式操作系统及其用途 4、Linux操作系统的特点 5、Linux操作系统的应用 6、Linux开发的主要任务 为什么需要操作系统 l1、屏蔽硬件特性,标准化公用的使用特征。 l2、提高系统运行的可靠性。 l3、有效的资源管理。 l4、提高开发效率和产品质量。 学习操作系统的目的 加深对使用的OS的理解,有利于充分利用操作 系统提供的特性深入编程 编程时借鉴操作系统的设计思想和算法 选择购买操作系统设计操作系统或者修改现有 的系统 什么是嵌入式系统 l嵌入式系统就是“以应用为中心、以计算机技术 为基础、软件硬件可裁剪、适应应用系统对功能 、可靠性、成本、体积、功耗严格要求的专用计 算机系统”。 为什么需要“嵌入式”操作系统 l1、大量的电子设备的智能化水平和功能越来越 强,需要操作系统的支撑才能实现。 l2、嵌入式系统专业性强,稳定性要求高。 l3、嵌入式操作系统代码量小,满足电子设备的 存储和成本要求。 l4、嵌入式操作系统可裁减性强,适应性好。 主流嵌入式操作系统 l1、高实时类:VxWorks、pSOS、Nucleas 用途:大型通讯设备、工业控制设备、火控设 备等高实时领域。 l2、通用类:Linux、WinCE、Symbin、QNX 用途:消费电子(手机)、智能仪器等。 为什么Linux值得研究? l1、Linux完全开源,为学习操作系统提供了绝佳 的平台。 l2、Linux内核机制提供了现代操作系统的各种特 性,满足大多数嵌入式应用的需要。 l3、丰富的自由资源和外界支持,能够加快研发 速度,降低研发成本。 l4、能够掌握核心技术。 Linux的主要特点 1、类UNIX平台,开发和移植的适应性强 2、新版本支持抢占式内核,满足一定实时性要 求 3、内核可根据需要裁剪 4、支持多种CPU(ARM、PowerPC、x86等) 5、是一种强大的网络操作系统。 6、汇编 + 标准C、C+的编程模式 7、支持内核模块的动态加载、卸载 嵌入式系统系统的主要模块 1、进程管理:完成多任务和抢占调度模式 2、存储管理:完成虚拟内存和分页式管理 3、文件系统:采用日志文件系统:jffs2 4、设备管理:提供高效、兼容性好的驱动模式 5、网络管理:完成相关的网络协议栈 嵌入式产品的开发流程 l一、硬件开发。 l二、软件开发 1、boot程序开发。 2、操作系统平台搭建。 3、上层应用开发 一、嵌入式硬件的开发流程 l1、确定嵌入式系统的需求 l2、体系结构设计,软硬件分割 l3、详细的硬件设计(前仿真、原理图、PCB图 及后仿真) l4、软硬件的联调和集成 l6、测试 PC与嵌入式硬件的比较 PC硬件 功能模块固定 体积大小固定 外部接口规范 功耗控制简单 嵌入式系统硬件 没有必须支持的功能 没有固定的体积大小 没有必须提供的接口 功耗控制复杂 嵌入式硬件设计的特点 l没有固定的规则,量体裁衣 l同系统软件密切相关 硬件的四大关键部分 lMcu 微控制器(ARM和PowerPC) lDsp 数字信号处理器(Ti、ADI和专用 DSP) lFpge 可编程逻辑器件(Altera、Xilinx) l存储设备 Sram、 Sdram DOC、微硬盘、Eeprom,Flash, 硬件实例 硬件框架 二、嵌入式系统软件流程 1、Boot程序的开发 l作用:完成硬件检查,调整硬件状态,实现操作 系统的代码载入和启动。 lu-boot:目前最为通用的boot开源项目。完成了 主流CPU如arm、powerPC、MIPS等支持。能 够实现以太网、USB以及存储设备分区功能。 l开发工作:根据硬件特点和程序的载入的要求, 实现方便生产、系统快速启动和便于开发调试。 2、Linux操作系统平台搭建 l目的: 1)根据功能要求,选择操作系统特性,完 成裁减。 2)根据硬件特点,完成驱动程序开发。 3)完成电源管理策略等嵌入式特性操作。 4)完成用户层需要的内核操作要求。 Linux操作系统平台搭建(续) l开发流程 1)选择稳定的linux操作系统版本(目前是 2.4.20使用最为广泛)。完成操作系统公用部分 配置,实现内核启动。 2)完成网络驱动加载,选择网络文件系统NFS 便于调试。 3)根据硬件平台编写各种类型的驱动程序。 4)编写驱动的测试用例,完成测试。 3、用户程序框架 总结 l1、掌握嵌入式操作系统不但是新技术发展的需 要,也是电子工程师职业发展的一个新的优势方 向。 l2、随着Linux的日渐成熟,越来越多的嵌入式产 品会采用Linux。但Linux也存在诸多缺点,开发 中也有很多困难。只有深入学习,才能够使 Linux真正产生价值。 lLinux是一个大的系统工程,学习和开发要做好 计划合理分工,才能真正利用Linux的优点。 第一章嵌入式系统的硬件构成 l1.1、嵌入式处理器 lA、嵌入式微处理器 RISC和CISCZ指令集 lB、嵌入式微控制器 即单片机 lC、嵌入式DSP 处理器 lD、嵌入式片上系统(System On Chip) 嵌入式处理器的选择 l(1) 调查市场上已有的CPU 供应商。 l(2) 处理器的处理速度。 l(3) 技术指标 l(4) 处理器的低功耗。 l(5) 处理器的软件支持工具。 l(6) 处理器是否内置调试工具。 l(7) 处理器供应商是否提供评估板。 2、存储器 l存储器的物理实质是一组或多组具备数据输入输 出和数据存储功能的集成电路,用于充 l当设备缓存或保存固定的程序及数据。存储器按 存储信息的功能可分为只读存储器ROM l(Read Only Memory)和随机存储器RAM( Random Access Memory) 存储设备的具体种类: l flash:Nor、NAND l 硬盘:IDE、SCSI l 内存:SDRAM DDRAM SRAM l 存储卡:CF MD SD tf卡 记忆棒 3、输入输出设备 l嵌入式系统中输入形式一般包括触摸屏、语音识 别、按键、键盘和虚拟键盘。 l输出设备主要有LCD 显示和语音输出。 3.1.1液晶显示 l液晶分为以下几类:段式(也称8 字)、字符型 和图形点阵 l图形点阵式液晶:我们又将其分为TN、STN( DSTN)、TFT 等几类 l从色彩上分,LCD 显示屏分为单色、灰度和彩 色三种,价格由低到高. 3.1.2触摸屏 l嵌入式系统中的触摸屏分为 l电阻式. l电容式 l电感式 l其中电阻式触摸屏最为常用。 3.1.3其他输入、输出设备 l语音输入输出技术 l键盘 l指纹识别、虹膜识别 l传感器 4、电源转换与管理 1、线性稳压电源 2、开关稳压电源 3、电荷泵电源。 4.2电源IC 的特点 l(1)工作电压低 l(2)工作电流不大 l(3)封装尺寸小 l(4)完善的保护措施 l(5)耗电小及关闭电源功能 l(6)有电源工作状态信号输出 l(7)输出电压精度高 l(8)新型组合式电源IC 4.3电源IC 选用指南 l(1)优先考虑升压式DC/DC 变换器 l(2)采用LDO 的最佳条件 l(3)需负电源时尽量采用电荷泵 l(4)不要追求高精度、功能全的最新器件 l(5)不要“大马拉小车” l(6)输出电流大时应采用降压式DC/DC 变换器 l(7)DC/DC 变换器中L、C、D 的选择 5、 嵌入式系统硬件开发相关技术 嵌入式产品前面介绍的部分是最基本的硬件 架构。但是一个嵌入式产品能够满足各种需要、 能够成功的开发、调试和生产还需要各种相关的 辅助技术。 5.1接口技术 l1、并行接口 l2、串口232和485 l3、USB l4、PCMCIA 和CF l5、红外线接口 l6、总线 l7、I2C 总线 l8、SPI总线 l9、CAN 总线 5.2嵌入式系统开发常用的硬件调试和编程技术 l1、微代码支持的串口调试 l2、编程技术 l3、JATG 与IEEE1149 协议简介 (pdf 30页) 5.3 3.3V 和5V 装置的互连 l(1) 5V TTL 装置驱动3.3V TTL 装置。5V TTL 和3.3V LVC 的逻辑电平是相同的。因为5V容忍度的装置可以经 受住6.5V 的直流输入,所以5V TTL 连接3.3V 且容忍度 为5V的装置时,可以不需要额外的元器件。TI 的CBT( crossbar technology)开关可以用来从5V TTL 向3.3V 且容忍度不为5V 的装置传送信号。该开关通过使用一个 外部的产生0.7V 压降的二极管和CBT(门极到源极的压 降为1V),从而产生3.3V 的电平。 l(2) 3V TTL 装置(LVC)驱动5V TTL 装置。两者逻 辑电平是相同的,连接可以不需要外部电路或装置。 l(3) 5V COMS 装置驱动3.3V TTL 装置。两个不同的 逻辑电平连接在一起,进一步分析5VCOMS 装置的 VOH 和VOL 与3.3V LVC 装置的VIH 和VIL 电平,虽然 存在不一致的地方,但有5V 容忍度的3.3V 装置可以在 5V CMOS 电平输入下工作。使用5V 容忍度的LVC 装置 ,5V CMOS 驱动3.3V LVC 是可能的。 l(4) 3.3V TTL 装置驱动5V CMOS 装置。 3.3V LVC 的VOH 是2.4V(输出电平可达3.3 lV),而5V CMOS 装置的最小VIH 要求是3.5V 。因此,用3.3V LVC 或其他3.3V 标 l准的装置驱动5V CMOS 装置是不可能的。解决 该问题就需要用到专用芯片,如TI l的SN74ALVC164245 和SN74LVC4245 等。这 些芯片一边采用3.3V 电平供电,另一 l边采用5V 电平供电,可以使3.3V 逻辑部分驱动 5V CMOS 装置。 第二章操作系统 l2.1. 基础知识 l2.1.1. 操作系统功能 l 程序运行 lI/O 设备访问 l文件访问 l系统访问 l错误检测和反馈 l系统使用纪录 l程序开发 2.1.2. 操作系统发展史 l1、串行处理系统 l2、简单批处理系统 l3、多道程序设计批处理系统 l4、分时系统 l5、现代操作系统 (1) 进程及进程管理, (2) 内存及虚拟管理, (3) 信息保护和安全, (4) 调度和资源管理, (5) 模块化系统化设计。 2.1.3. Linux 与嵌入式Linux lLinux 是一个多用户多任务操作系统,支持分时处理和 软实时处理,并带有微内核特征(如模块加载/卸载机制 ),具有很好的定制特性。 l由于它是开放源码的,全世界很多科学技术人员在不断 对它完善的同时,还增加了越来越多的新功能,比如说 支持硬实时任务处理等。 lLinux 在嵌入式系统应用方面尤其显示出其优越性。 lLinux 的强大的网络功能将赋予嵌入式系统对网络天然 的亲和力,从而为嵌入式系统的网络互连和功能扩展准 备了广阔的发展空间。 2.2. 操作系统内核 l2.2.1. 内存管理 l2.2.1.1. 内存管理功能 l2.2.1.2. 内存分割 l2.2.1.3. 虚拟内存 2.2.1.3. 虚拟内存 l(1) 系统是否需要虚拟内存支持; l(2) 系统对内存分割机制的选择问题; l(3) 内存管理算法的选择问题。 l 分页的取放 l 分页的替换 l 驻留部分管理 l 加载控制 2.2.2. 进程与中断管理 基本任务之一就是进程管理。 操作系统需要为进程分配资源;实现进程 间共享和交换信息;保护进程资源;以及实现进 程间同步,为此,操作系统需要为每一个进程维 护一个特定的数据结构用于描述该进程的状态和 资源占用情况,从而实现对进程的管理和控制。 引入进程带来得问题 l单处理器多道程序设计系统中,多个进程是交替 执行的 l一个多处理器系统中,多个进程不仅可以在某个 处理器上交替执行,而且还可以在多个处理器上 被并行处理。不管是交替方式还是并行处理都会 导致进程并发现象。 l进程管理因为线程的引入变得更加复杂。在一个 多线程系统中,进程成了资源管理器,而线程成 为程序的基本执行单元。 l中断是现代计算机系统普遍采用和支持的技术。 2.2.2.1. 进程描述与控制 l 进程状态 五值模型的各个状态转移情况 l(1) 无 创建一个新的进程被创建用于执行一个程序。 l(2) 创建 就绪 l(3) 就绪 运行 l(4) 运行 退出当某个进程已经完成自身的任务或者因 为某种原因终止了的话,操作系统会将其状态从运行状 态转换为退出状态。 l(5) 运行 就绪 l(6) 运行 阻塞当一个正在运行中的进程需要某个事 件发生后才能继续运行时,操作系统将其状态从运行状 态转换为阻塞状态。这样操作系统可以运行其它进程。 l(7) 阻塞 就绪 进程描述 l1) 进程位置 某个进程和一段程序以及和这段程序相关的数据联系起 来;同时,操作系统执行该进程时需要维持一个或多个 堆栈用于跟踪过程调用以及过程间参数调用;最后,操 作系统为了控制和管理该进程需要维护一系列与该进程 相关的信息。操作系统所维护的这些信息通常被称为进 程控制块(Process Control Block)。与进程相关的程 序、数据、堆栈和进程控制块信息统称为进程映像。 操作系统会在物理内存中维护一个主进程表,其中的各 个条目包含一个指向一个进程映像的指针,从而标明进 程位置。 进程描述 l2) 进程标识 l3) 进程状态信息 l4) 进程控制信息 进程控制 l1、对进程创建过程的控制而且还包括对进程状 态切换的控制。 l2、出于对操作系统某些关键数据如进程控制模 块等的保护,进程的执行模式分为两种,即拥有 更高权限的内核执行模式和拥有较低权限的用户 执行模式。从而进程控制就增加了对进程执行模 式切换的控制。 进程和线程 1、进程就只是一个单纯的资源管理器,它管理着 与进程相关的资源如进程映像、各类访问权限等 等; 2、线程成为操作系统的基本执行单元,受操作系 统调度和控制。当然,线程也常常被称为轻量级 进程,而这个时候的进程也常常被称作任务。 2.2.2.5. Linux 的进程与中断管理机制 lLinux 进程状态有五种分别为运行态,可唤醒阻塞态、 不可唤醒阻塞态、僵死状态和停滞状态 lLinux 进程控制块 (1) 进程状态:(2) 调度信息:(3) 进程标识:( 4) 进程间通讯:Linux 支持的进程间通讯机制不仅包括 传统Unix 系统中的信号、管道和信号量机制,也支持 Unix System V 进程间通讯的共享内存、信号量和消息 队列机制; (5) 进程间关联:(6) 时间和定时器:进程需要维护 其创建时间,从而决定分配给它的处理器时间片的消耗 情况;另外,进程在发送信号等方面需要和定时器打交 道,因此需要维护与进程相关的内部定时器; (7) 文件系统:(8) 虚拟内存:(9) 处理器相关信 息:各个寄存器的内容等。 Linux 内核同步机制 1) 非抢占 2) 原子操作 3) 中断禁止 4) 内核信号量。信号量可以引起进程睡眠 。 5) 自旋锁。用于多处理器系统中 Linux 进程间通讯 l信号(Signal) l管道(Pipe and Named Pipe) l信号量(Semaphore) l消息队列(MessageQueue) l共享内存(Shared Memory) Linux中断与定时服务 lbottom half lTasklet lsoftirq 2.2.3. 调度机制 l实时操作系统特点 其任务处理的确定性、响应灵敏度、用户参 与控制、可靠性以及故障保护措施上。 衡量系统的确定性有一个比较好的指标, 就是系统从接到要求处理的中断和对应的处理任 务启动这两个事件发生的时间间隔。一般操作系 统这个时间参数很大,而且可能会有几个数量级 的变动。而在实时操作系统中,它应当很小,并 且比较稳定,有一个上限值。 2.2.4. I/O 设备 一、是效率问题,因为I/O 设备是系统性能的瓶颈 所在,效率就尤显重要; 二、是抽象程度问题,我们总是希望所有的I/O 设 备都能有一个统一的接口便于上层系统和应用的 操作,因此,需要对各I/O 设备进行某种程度甚 至是多个层次的抽象以便统一管理和操作。 2.2.4.4. I/O 缓冲技术 l(1) 单缓冲 l(2) 双缓冲 l(3) 循环缓冲 2.3.3. Linux 下的用户界面 l2.3.3.1. X Window 简介 l2.3.3.2. X 服务器 第三章嵌入式Linux l嵌入式Linux 主要可以分为两类:第一类是在利 用Linux 强大功能的前提下,使它尽可能的小, 以满足许多嵌入式系统对体积的要求,如 uClinux; l第二类是将Linux 开发成实时系统尤其是硬( firm)实时系统,应用于一些关键的控制场合, 如RTLinux 3.1.2 uCLinux l1、标准的Linux 内核采用虚拟内存管理技术来提高系统 运行效率,这种设计在硬件上需要有微处理器内嵌的内 存管理单元(MMU)的支持。 l是为微控制领域量身定做的Linux 版本。uCLinux的设计 思想就是通过对标准Linux 内核的裁减,去除虚拟内存 管理部分代码,并且对内存分配进行优化,从而达到提 高系统运行效率的目的。它经过各方面的小型化改造, 形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然 它的体积很小,但是仍然保留了Linux的大多数的优点: 稳定、良好的移植性、优秀的网络功能、完备的对各种 文件系统的支持、以及标准丰富的API。 ucLinux特性 l(1) 通用Linux API l(2) 内核体积 512 KB l(3) 内核+文件系统900 KB l(4) 完整的TCP/IP 协议栈 l(5) 支持大量其它的网络协议 l(6) 支持各种文件系统,包括NFS、ext2、 ROMfs and JFFS、MS-DOS 和FAT16/32 3.1.2.1 uClinux 的内存管理 由于去除了与MMU 相关的代码,uClinux 可以 生成精简的内核与应用程序,这一特点对于嵌入 式系统来说优势是非常显著的,同时也使得 uClinux 与标准Linux 有了本质的区别。在 uClinux 下开发应用程序与标准Linux 没有太大 区别。 由于没有对MMU 的支持,uClinux 缺乏内存保 护机制和虚拟内存模块,这是uClinux 与标准 Linux 最本质的区别所在。由此一些底层的系统 调用也有不同程度的变化。 3.1.2.3 内存保护 l运行没有虚拟内存模块的Linux,有三个主要问题是需要特别注意的 : l(1) 必须保证由内核载入的进程能够在各自独立的内存空间中运行 。保证这一点的一 种方法是在程序载入内存以前就确定进程将占据的地址范围。另 一种方法是在程序代码生成时只使用相对地址uClinux 对这两 种方法都有支持。 l(2) 内存的分配和释放都是直接在一维的内存映像中进行的,非常 频繁的动态内存分配会在系统内存中产生很多碎片,从而导致系统 内存不足。因而,为了改进采用动态内存分配方式的应用程序的执 行性能,uClinux通过改写malloc( )系统调用,使内存在一个内存块 区的池中进行预分配。 l(3) uClinux 不支持虚拟内存,系统无法保证不同内存页面载入到相 同的地址,因此无法实现内存页面的换入与换出。因而在嵌入式系 统中,一般而言,那些内存需求比系统实际具有的物理内存大的程 序无法运行。 3.1.2.4 编程接口的改变 l1、fork( ) l2、vfork( ) l3、exec( ) 3.1.2.6 uCLinux 内核运行方式 luCLinux 的内核有两种可选的运行方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人力资源管理师(一级)模拟考试试卷:人力资源战略规划与绩效管理策略实战案例应用解析含答案
- 钟表维修工数字化技能考核试卷及答案
- 2025年护士资格考试试题及答案8章
- 2025年度“三基”理论考试题有答案
- 农发行沈阳市新民市2025秋招笔试英语题专练及答案
- 农发行抚州市宜黄县2025秋招金融科技岗笔试题及答案
- 小学劳动命题试卷及答案
- 2025年燃气施工考试试题及答案
- 特种禽类饲养员技能巩固考核试卷及答案
- 横机工技术考核试卷及答案
- 老年人骨折病人的护理
- 六年级道德与法治上册《公民的基本权利和义务》
- 自留地永久性转让协议7篇
- 成都理工大学工程技术学院《工程地质B》2023-2024学年第二学期期末试卷
- 企业员工音乐培训计划
- 中学七年级综合实践课件
- 2025年沪教版六年级数学上册月考试卷含答案
- 《无人机飞行操控技术》项目2 多旋翼无人机飞行操控
- 食品食材配送项目投标书范本
- 第五讲铸牢中华民族共同体意识-2024年形势与政策
- 足浴技师与店内禁止黄赌毒协议书范文
评论
0/150
提交评论