嵌入式Linux基础教程重点内容:嵌入式系统的概念及发展嵌入式处理器嵌入式操作系统嵌入式系统的应用第1章嵌入式系统基础嵌入式Linux基础教程一、嵌入式系统嵌入式系统是指融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能的系统。1.1嵌入式系统定义嵌入式Linux基础教程目前嵌入式系统已经渗透到我们生活的每一个角落:工业控制、服务行业、消费电子、教育等,正是由于嵌入式系统的应用范围如此之大,使得“嵌入式系统”的概念更加难以定义。一、嵌入式系统1.1嵌入式系统定义嵌入式Linux基础教程•目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。一、嵌入式系统从这个定义上,可以从以下几个方面来理解:1.1嵌入式系统定义嵌入式Linux基础教程•1、嵌入式系统是面向产品、面向用户、面向应用的。它必须结合实际的应用场合才能有其优势。因此对于三个面向的理解,可以认为嵌入式系统具有很强的专业性,必须结合实际系统需求在软硬件方面进行合理的裁剪。•2、嵌入式系统是一个技术密集、集成度高、需要不断创新的集成系统。嵌入式系统式结合了计算机技术、半导体技术、微电子技术以及各个行业的具体专业应用知识,所以,嵌入式系统在设计之前必须有一个正确的定位。例如Palm就是因为其立足于个人电子消费品市场,使其在PDA领域占有70%的市场;而VxWorks之所以在火星车上得到应用,则是因为其高实时性和高可靠性。•3、嵌入式系统必须根据应用场合对软硬件进行必要的裁剪已实现需要的功能。对于不同的应用场合,系统的硬件和软件需求一般都是不同的。设计开发需要的软硬件,去除不需要的资源也是使系统满足功能、可靠性、体积、成本所要求的。所以,在相对通用的软硬件基础上,然后对其开发出使用不同应用场合的系统,是嵌入式系统一般的发展模式。一、嵌入式系统1.1嵌入式系统定义嵌入式Linux基础教程•嵌入式系统一般由嵌入式计算机和执行部件组成。其中嵌入式计算机是整个嵌入式系统的核心,主要包括硬件层、中间层、系统软件层以及应用软件层;执行部件则是接收嵌入式计算机系统发出的控制指令,执行规定的操作,也被称作被控对象。1.2嵌入式系统组成一、嵌入式系统嵌入式Linux基础教程•二十世纪八十年代1.3嵌入式系统的发展Z80系列单片机51系列单片机一、嵌入式系统嵌入式Linux基础教程•二十世纪九十年代以后1.3嵌入式系统的发展32位嵌入式微处理器Soc芯片系列一、嵌入式系统嵌入式Linux基础教程•嵌入式操作系统发展已进入成熟时期,此时出现了众多嵌入式操作系统,它们大多具有跨平台的移植技术,并且在同一个系统之下也可以通过选择开发工具来使用Java,C或者汇编语言等自己熟悉的语言来开发。现比较常用的WinCE,Linux,VxWorks,μC/OS-II,Symbian等等。1.3嵌入式系统的发展一、嵌入式系统嵌入式Linux基础教程•工业控制:1.4嵌入式系统的应用前景工业控制网络一、嵌入式系统嵌入式Linux基础教程•信息家电:1.4嵌入式系统的应用前景智能化家电一、嵌入式系统嵌入式Linux基础教程•机器人:1.4嵌入式系统的应用前景美国宇航局太空机器人DEXTRE“勇气号”火星车一、嵌入式系统嵌入式Linux基础教程•POS网络及电子商务:公共交通无接触智能卡(ContactlessSmartcard,CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。1.4嵌入式系统的应用前景一、嵌入式系统嵌入式Linux基础教程•家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。1.4嵌入式系统的应用前景一、嵌入式系统嵌入式Linux基础教程•交通管理:嵌入式系统技术已经获得了广泛的应用于车辆导航、流量控制、信息监测与汽车服务等方面。通过内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。1.4嵌入式系统的应用前景一、嵌入式系统嵌入式Linux基础教程•环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。1.4嵌入式系统的应用前景一、嵌入式系统嵌入式Linux基础教程•嵌入式系统的核心模块就是各种类型的嵌入式处理器。•嵌入式处理器可以分为嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMCU)、嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)、嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)和嵌入式片上系统(EmbeddedSystemonChip,ESOC)四类。二、嵌入式处理器嵌入式Linux基础教程•从20世纪80年代开始,出现了各种各样的商业用嵌入式操作系统。这些操作系统大部分都是为专有系统而开发,从而形成了目前多种形式的商用嵌入式操作系统百家争鸣的局面,如Linux、VxWorks、pSOS、PalmOS和WindowsCE等。三、嵌入式操作系统嵌入式Linux基础教程•随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux等)和一般的嵌入式Linux版本(如uClinux和PocketLinux等)。其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。另一种常用的嵌入式Linux是uClinux,它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。三、嵌入式操作系统嵌入式Linux基础教程•嵌入式Linux•随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux等)和一般的嵌入式Linux版本(如uClinux和PocketLinux等)。其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。另一种常用的嵌入式Linux是uClinux,它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。三、嵌入式操作系统嵌入式Linux基础教程•VxWorks•VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域内占据了一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导、飞机导航等。在美国的F-16、FA-18战斗机,B-2隐形轰炸机和爱国者导弹上,甚至连在火星表面登陆的火星探测器上也使用了VxWorks。VxWorks的很多概念和技术都和Linux很类似,主要是用C语言开发。但VxWorks因价格很高,所以一般应用中很少采用这种操作系统。三、嵌入式操作系统嵌入式Linux基础教程•WinCE•WinCE推出只有几年时间,但目前已占据了很大市场份额。由于WinCE开发都是大家熟悉的VC++环境,所以对于一般的开发人员都不会有多大难度,这也是WinCE容易被人们接受的原因。•WinCE具有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行WinCE支持最大的32位同步进程。一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的系统资源限定。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核至少需要200KB的ROM。三、嵌入式操作系统嵌入式Linux基础教程•Palm•3COM公司的PalmOS在掌上电脑和PDA市场上占有很大的市场份额。它有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需的应用程序。目前共有3500多个应用程序可以运行在PalmPilot上,其中大部分应用程序均为其他厂商和个人所开发,使PalmPilot的功能不断增多。在开发环境方面,可以在Windows和Macintosh下安装PalmPilotDesktop。PalmPilot可以与流行的PC平台上的应用程序进行数据交换。三、嵌入式操作系统嵌入式Linux基础教程•μC/OS-II•μC/OS是“MicroControllerOperatingSystem”的缩写,它是源码公开的实时嵌入式操作系统,μC/OS-II的主要特点如下:•1、公开源代码,系统透明,很容易就能把操作系统移植到各个不同的硬件平台上。•2、可移植性强,μC/OS-II绝大部分源码是用ANSIC写的,可移植性(Portable)较强。而与微处理器硬件相关的那部分是用汇编语言写的,已经压到最低限度,使μC/OS-II便于移植到其他微处理器上。•3、可固化,μC/OS-II是为嵌入式应用而设计的,这就意味着,只要开发者有固化(ROMable)手段(C编译、连接、下载和固化),μC/OS-II即可嵌入到开发者的产品中成为产品的一部分。三、嵌入式操作系统嵌入式Linux基础教程•4、可裁剪,通过条件编译可以只使用μC/OS-II中应用程序需要的那些系统服务程序,以减少产品中的μC/OS-II所需的存储器空间(RAM和ROM)。•5、占先式,μC/OS-II完全是占先式(Preemptive)的实时内核,这意味着μC/OS-II总是运行就绪条件下优先级最高的任务。大多数商业内核也是占先式的,μC/OS-II在性能上和它们类似。•6、实时多任务,μC/OS-II不支持时间片轮转调度法(Round-roblinScheduling)。该调度法适用于调度优先级平等的任务。•7、可确定性,全部μC/OS-II的函数调用与服务的执行时间具有可确定性。嵌入式Linux基础教程•eCos•eCOS的全称为embeddedConfigurationoperatingsystem,由Redhat推出的小型即时操作系统(Real-TimeOperatingSystem),适合用于作bootloader增强和微小型系统。其特点如下:•1、将操作系统做成静态连结(StaticLibrary)的方式,让应用程式透过连结(Linker)产生出具有操作系统的特性的应用程式。这是与嵌入式Linux系统最大的差异。•2、模块化,内核可配置。eCOS具有相当丰富的特性和一个配置工具,后者能够让你选取你所需要的特性。三、嵌入式操作系统嵌入式Linux基础教程•3、编译核心小。Linux兼容的嵌入式系统在内核裁减后编译出来的二进制代码大小在500k字节以上,这还只包含最简单的内核模块,几乎没有加载任何其他的驱动与协议栈。但是eCos最小版本只有几百K字节,一般,一个完整的网路应用,其二进制的代码也就100K字节左右。•4、提供了Linux