您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 第4章 构建嵌入式Linux系统-内核与文件系统
第4讲构建嵌入式软件系统第4讲构建嵌入式Linux系统4.1Bootloader4.2操作系统内核4.3文件系统4.4设备驱动4.5应用程序开发嵌入式软件系统的体系结构硬件应用层驱动层操作系统层中间件层板级初始化FLASH驱动RTC/定时器驱动串口驱动以太网驱动LCD驱动键盘驱动其他驱动内核TCP/IP网络系统文件系统电源管理嵌入式GUI嵌入式CORBA嵌入式JAVA嵌入式DCOM面向应用领域的中间件应用任务1应用任务2……应用任务n嵌入式操作系统概述嵌入式操作系统可以统称为应用在嵌入式系统的操作系统,它具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有:可固化可配置、可剪裁独立的板级支持包,可修改不同的CPU有不同的版本应用的开发需要有集成的交叉开发工具嵌入式操作系统分类从应用领域来分面向信息家电的嵌入式操作系统面向智能手机的嵌入式操作系统,如SymbianOS、MSMobileOS、PalmOS、EmbeddedLinux等面向汽车电子的嵌入式操作系统面向工业控制的嵌入式操作系统……….从实时性的角度来分嵌入式实时操作系统:具有强实时特点,如VxWorks、QNX、Nuclear、OSE、DeltaOS等。非实时嵌入式操作系统:一般只具有弱实时特点,如WinCE、版本众多的嵌入式Linux、PalmOS等。从嵌入式系统的商业模式来分类商用型:功能稳定、可靠,有完善的技术支持和售后服务,开发费用+版税。开源型:开放源码,只收服务费,没有版税。如Embeddedlinux,RTEMS,uCOS.嵌入式操作系统——WinCEWindowsCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作系统。WindowsCE是精简的Windows95。WindowsCE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)目前主要应用于PDA,跟微软一系列Windows系统一样,WindowsCE也承袭了原有的缺点:耗系统资源、不稳定、效率不佳..等等。后来将整个架构重新改写后推出WindowsCE3.0版,或称为PocketPC。嵌入式操作系统——Linux目前正在开发的嵌入式系统中,50%以上的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。开放原始码、模块化设计Linux采用GPL授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而Linux核心本身采用模块化设计,让人很容易增减功能,例如平台并不需要蓝牙的功能,只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。相较于Linux,Windows是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用GPL授权自然就没有什么权利金或保密协议的约束。其他嵌入式操作系统PalmPalm操作系统架构非常简洁,可以非常不耗系统资源,硬件需求低,连带的整体耗电量便可压缩到非常低,因此采用Palm操作系统的PDA都有待机时间长的优点。目前最大的应用在PDA,是市场占有率最高的PDA操作系统。VxWorksVxWorks是目前嵌入式系统领域中使用广泛、市场占有率较高的一个操作系统。支持多种处理器,如x86、i960、SunSparc、ARM、MotorolaMC68xxx、MIPSRX000、POWERPC等等。大多数的VxWorksAPI是专有的。UCOS应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。公开源代码,可移植性高嵌入式内核内核是嵌入式操作系统的基础,也是必备的部分。内核还提供特定的应用编程接口,但目前没有统一的标准。进程管理内存管理通信同步与互斥机制中断管理I/O和设备管理虚拟文件系统…………嵌入式内核进程管理内核的核心部分,具有任务调度、创建任务、删除任务、挂起任务、解挂任务、设置任务优先级等功能。而嵌入式操作系统多采用基于静态优先级的可抢占的调度,任务优先级是在运行前通过某种策略静态分配好的,一旦有优先级更高的任务就绪就马上进行调度嵌入式内核内存管理嵌入式操作系统的内存管理比较简单。采用静态内存分配和动态内存分配(固定大小内存分配和可变大小内存分配)相结合的管理方式。有些内核利用MMU机制提供内存保护功能。嵌入式内核通信、同步和互斥机制这些机制提供任务间、任务与中断处理程序间的通信、同步和互斥功能。一般包括信号量、消息、事件、管道、异步信号和共享内存等功能。嵌入式内核中断管理,一般具有以下功能:安装中断服务程序中断发生时,对中断现场进行保存,并且转到相应的服务程序上执行中断退出前,对中断现场进行恢复中断栈切换中断退出时的任务调度嵌入式内核时间管理提供高精度、应用可设置的系统时钟,该时钟是嵌入式系统的时基,可设置为十毫秒以下。提供日历时间,负责与时间相关的任务管理工作如任务对资源有限等待的计时、时间片轮转调度等,提供软定时器的管理功能等。通用操作系统的系统时钟的精度由操作系统确定,应用不可调,且一般是几十个毫秒。嵌入式内核I/O和设备管理设备管理往往是操作系统中非常繁琐的部分,需要负责控制并操作所有的设备,实现不同外部设备之间、外部设备和内存以及CPU之间的数据传输,使它们协同工作,并且尽可能地提供统一的用户命令和函数调用接口,对用户屏蔽不同设备之间的差异。Linux将所有的设备统一当作文件来处理,称为设备文件,可以和其他文件一样,使用处理文件的标准系统调用对其进行打开、关闭和读写等操作。嵌入式内核虚拟文件系统(VirtualFileSystem,VFS)虚拟文件系统目的在于隐藏所有硬件的具体细节,为所有的设备提供了统一的接口。在Linux中,所有文件都是通过虚拟文件系统访问的。这是一层实现通用文件系统操作的代码,它还将请求引导到处理该请求的适当的特定代码。任何类型的文件系统都使用VFS来统一块设备访问。嵌入式内核任务扩展功能任务扩展功能就是在内核中设置一些Hook的调用点,在这些调用点上内核调用应用设置的、应用自己编写的扩展处理程序,以扩展内核的有关功能。Hook调用点有任务创建、任务切换、任务删除、出错处理等。嵌入式Linux的构建Linux内核的移植硬件Linux内核(与体系结构无关代码)移植工作部分交叉编译部分x86ARMMIPS其它体系本硬件平台移植(配置、定时器、串口等驱动)Linux内核的配置和编译Linux内核从配置到安装大致有如下步骤:配置内核:最常见的命令为makemenuconfig建立依赖关系:最常见的命令为makedep编译内核:最常见的命令为make或makezImage编译内核模块:最常见的命令为makemodules安装内核模块:最常见的命令为makemodules_install安装内核:最常见的命令为makeinstallLinux内核配置和编译的流程在内核源代码目录下输入“makeXXXconfig”等命令之一就可以对内核进行配置:makeconfig提供了一个命令行界面,然后对每一个内核选项依次询问用户的选择。makemenuconfig提供了一个基于终端curses的图形界面配置菜单。makexconfig提供了一个基于GTK的XWindow图形界面配置菜单。makeoldconfig和makeconfig类似,不过它只提示用户设置之前没有配置过的选项。#makeARCH=armCROSS_COMPILE=arm-linux-menuconfigLinux内核配置内核都会在配置完后生成一个.config文件,还会产生大量的符号连接和头文件,这些在其余的创建过程中会用到。.config文件中保存了根据在menuconfig中的选择定义的相应变量,在Linux内核目录下的Makefile文件中将会包含这个文件。重要的内核选项包括:Codematurityleveloptions(内核成熟级别选项)Loadablemodulesupport(可加载模块支持)Generalsetup(通用设置)Memorytechnologydevices(内存技术设备)Blockdevices(块设备)Networkdevicesupport(网络设备支持)Characterdevices(字符设备)Filesystems(文件系统)Consoledrivers(控制台驱动)文件系统操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。嵌入式文件系统通用操作系统的文件系统通常具有以下功能:提供用户对文件操作的命令提供用户共享文件的机制管理文件的存储介质提供文件的存取控制机制,保障文件及文件系统的安全性提供文件及文件系统的备份和恢复功能提供对文件的加密和解密功能嵌入式文件系统嵌入式文件系统相比之下较为简单,主要具有文件的存储、检索、更新等功能,一般不提供保护和加密等安全机制。它以系统调用和命令方式提供对文件的各种操作,主要有:设置和修改对文件和目录的存取权限提供建立、修改、改变、删除目录等服务提供创建、打开、读、写、关闭、撤消文件等服务根文件系统Linux下的文件系统嵌入式Linux的文件系统介绍Linux的根文件系统Linux下的文件系统在LINUX系统中,文件系统是最基本的资源。在系统内核和文件系统之间制定一个标准的接口而实现的,不同文件结构之间可以通过该接口方便地交换数据。Linux正是使用这种方式,在系统内核和文件系统之间提供了一种标准接口——VFS(virtualfilesystem,虚拟文件系统)。Linux下的文件系统,由虚拟文件系统和实际的文件系统两个层次组成。目前常用的有EXT2、CRAMFS、JFFS2、NFTL、NFS和RAM磁盘文件系统等。用户文件结构VFSJFFS2CRAMFSRAMFSROMFSMTD字符设备MTD字符设备RAMDiskMTD设备驱动RAMFlash嵌入式文件系统特性可写入:当嵌入式系统需要更新文件系统中的数据时,才具有可写入能力的文件系统。可更新:只文件系统能保持重启前的更改,只有当嵌入式系统需要让它写入的内容在重启之后仍然有效时,才需要文件系统具有可更新的性质。掉电可靠性:指文件系统在发生掉电的时候是否可以恢复原数据。不仅掉电时数据可以保持,而且还有保证数据是可靠地。可压缩:之文件系统内容是否可以被压缩。在嵌入式系统中,问及爱你系统的压缩特性可以让存储器保存更多的内容,以节省系统成本。RAM启动:将文件系统放到Ram中解压缩后,直接加载到系统中,提高运行速度。嵌入式Linux的文件系统介绍在嵌入式Linux中,常见的文件系统有以下几种:EXT2/3(扩展文件系统2/3)ROMFS(ReadOnlyMemoryFileSystem,只读文件系统)CRAMFS(CompressReadAccessMemoryFileSystem,压缩只读文件系统)JFFS2(JounalingFlashFilesystem2,日志文件系统2)NFS(NetFileSystem,网络文件系统)YAFFS(YetAnotherFlashFileSystem,另一种FLASH文件系统)Ext2Ext2是Linux是GNU/Linux系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。在一
本文标题:第4章 构建嵌入式Linux系统-内核与文件系统
链接地址:https://www.777doc.com/doc-4026774 .html