深入剖析ARM Cortex-A8(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-23 05:03:00

点击下载

作者:王恒

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深入剖析ARM Cortex-A8

深入剖析ARM Cortex-A8试读:

内容简介

作为ARM的一个关键转型产品,Cortex-A8备受瞩目,可以满足需要高性能、高功效、Web连接的市场需求,并得到了主流EDA和操作系统的支持。

本书对ARM Cortex-A8微处理器进行深入的讲解,带领读者从分析内核开始,详细讲解开发板硬件的各个模块,告诉读者如何利用数据手册和芯片厂商或第三方资料来设计硬件电路。本书首先介绍ARM体系结构和硬件开发平台,然后详细介绍ARM指令系统和软件开发平台,接着介绍Cortex-A8的各个功能模块,如GPIO、存储器管理、中断机制、系统时钟和定时器、串行通信接口、人机接口技术,最后介绍嵌入式系统开发流程与设计方法。

本书既可作为高等院校相关专业师生的教材或教学参考书,也可供相关领域的工程技术人员查阅,对于普通Cortex-A8嵌入式微处理器爱好者,本书也不失为帮助他们掌握Cortex-A8嵌入式微处理器原理与接口技术的一本深入浅出的读物。

本书配有丰富的资源,内含相关进一步阅读的文档及源代码,读者可登录华信教育资源网(www.hxedu.com.cn)免费注册后下载。前 言

经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的工作、生活和娱乐方式。嵌入式系统在工业自动化、国防、交通和航空航天等很多产业中得到了广泛的应用,并逐步改变着这些产业。在日常生活中,几乎所有带一点“智能”的家电,也都拥有自己的嵌入式系统。

对于嵌入式硬件工程师和嵌入式驱动工程师来说,都需要对硬件有一定的理解。而嵌入式系统的硬件部分,其核心元件是嵌入式处理器,相当于嵌入式系统的“大脑”。进行嵌入式硬件和驱动的开发需要掌握嵌入式微处理器的相关知识。

作为ARM的一个关键转型产品,Cortex-A8备受瞩目,因其可在Android、Linux和WinCE系统之间切换,所以在手机、平板、工控三大领域得到了大量的应用。Cortex-A8设计用来满足需要高性能、高功效、Web连接的市场需求,其中包括智能手机、上网本、机顶盒、数字电视、家庭网络、存储网络(HDD、SSD)、打印机,Cortex-A8处理器还获得了主流EDA和操作系统的支持。紧跟社会需求,本书选择ARM Cortex-A8微处理器进行深入的讲解。

对于一个有志于从事底层系统开发(如改造BootLoader、钻研内核、为新硬件编写驱动程序)的人,特别是一个想从上层软件开发转到底层软件开发的人,必须能看懂电路原理图,能够看懂芯片数据手册,清楚软件是如何和硬件发生作用。同样,对于想从硬件岗位转到软件岗位,想从传统单片机(如51单片机)编程进一步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点,这个切入点就是先掌握各个硬件部分的简单编程,再将它们组合起来构成一个相对复杂的软件系统(如BootLoader),进而编写基于操作系统的驱动程序,最后深入钻研操作系统内核。本书会带领读者从分析内核开始,详细地讲解开发板硬件的各模块,告诉读者如何利用数据手册和芯片厂商或第三方资料来设计硬件电路。在讲解各个功能模块时按照由浅入深的顺序,分析每个功能模块时,首先给出概念、讲解原理,然后分析相应的寄存器,最后给出代码并对代码进行详细的分析,尤其讲解清楚和原理及寄存器的关系。本书所有的实例都已经经过友善之臂的Smart210开发板进行了验证。

本书的编写更强调解决问题的方法,怎样利用数据手册和芯片原厂或第三方资料来设计硬件电路,怎样分析各个模块的原理和利用寄存器编写程序,这些都需要一定的方法,希望通过本书的学习,读者能够掌握Cortex-A8微处理器的原理及接口技术。

本书特色:(1)硬件是基础。如果不想只从事纯应用(和硬件没有任何关系)编程,那必须掌握一定的ARM系统与接口等硬件技术,具有分析系统原理和调试解决问题的能力。硬件是基础,其实硬件并没有初学者想象中那么难。ARM处理器原厂或第三方也都会提供完整的硬件参考设计,都是标准化电路及接口,学习者只要突破一种就可以理解多种ARM处理器,就可以消除硬件上的模糊。本书在编写时,详细讲解了开发板的硬件原理图,并从硬件本身去分析各个模块的功能,深入到时序、引脚功能、电平转换和物理现象等。(2)独特视角。本书是苏嵌多年从事嵌入式社会培训教育的经验汇总,从实战的角度全面系统地介绍了苏嵌嵌入式裸机开发和驱动开发领域的培训心得。(3)强调理论联系实践。每个模块从细节上去分析功能,这样就可以从最基本的角度去了解每个模块的工作原理。在了解原理的基础上,针对各个模块又设计了相对应的实例,所有实例都使用友善之臂的Smart210开发板进行验证,具有很强的实用性。

参与本书编写的人员有王恒、林新华、桑元俊、苗新蕊、霍跃华、牛雪峰,本书既可作为高等院校相关专业师生的教学参考书、自学参考书,也可供相关领域的工程技术人员查阅之用,对于普通Cortex-A8嵌入式微处理器爱好者,本书也不失为帮助他们掌握Cortex-A8嵌入式微处理器原理与接口技术的深入浅出的一本读物。

感谢苏嵌教育在本书编写的过程中提供的帮助和支持,感谢友善之臂的开发平台,特别感谢电子工业出版社的编辑在本书出版过程中给予作者的指导和大力支持。

由于本书涉及的知识面广,时间又仓促,限于笔者的水平和经验,疏漏之处在所难免,恳请专家和读者批评指正。作 者2016年7月第1章绪论1.1 嵌入式系统概述1.1.1 什么是嵌入式系统

嵌入式系统(Embedded System)诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了单芯片的技术发展道路。嵌入式系统的应用可以说无处不在,渗透到了人们生活的每一个角落。

那么,什么是嵌入式系统呢?对于嵌入式系统,目前还没有一个严格和权威的定义。根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是控制、监视或者辅助装置、机器和设备运行的装置(devices used to control,monitor,or assist the operation of equipment,machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,可涵盖机械或其他的附属装置。另外,国内普遍被认同的定义是:以应用为中心、以计算机技术为基础、软/硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软/硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

明确了嵌入式系统的定义,我们可以从以下几方面来理解嵌入式系统。(1)嵌入式系统具有很强的专用性。嵌入式系统与应用紧密结合的,是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力和优势,因此它必须结合实际系统需求进行合理裁剪、利用。(2)嵌入式系统是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。这主要体现在嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音/图像/数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。(3)嵌入式系统必须根据应用需求对软/硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。(4)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。(5)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。(6)嵌入式系统本身不具备自主开发能力,即使设计完成后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。

实际上,嵌入式系统本身是一个外延极广的名词,笼统地说,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以称为嵌入式系统。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统。

嵌入式系统的设计、开发方法与通用个人计算机的应用系统开发方法相比较,有以下几点不同。(1)需要软/硬一体的设计概念。在嵌入式系统设计阶段,设计者需要根据应用功能需求,结合成本、体积、功耗等非功能性需求,综合考虑哪部分功能由硬件完成,哪部分功能由软件完成,并在开发实施阶段,能根据硬件结构的具体情况,设计适应于该硬件结构的软件。(2)需要系统软件与应用软件融合设计。系统软件通常是指管理及控制系统资源的软件,而应用软件指的就是具体完成用户功能的软件。开发嵌入式系统时,设计者往往需要完成应用软件和系统软件的开发工作。例如,若设计者开发的嵌入式系统无操作系统平台,那么,设计者除了要设计开发应用软件外,还需要设计监控管理硬件资源的软件,这两部分软件通常融合在一个循环结构中;若设计者开发的嵌入式系统需要操作系统平台,那么设计者即使不去设计操作系统,也需要完成操作系统的移植和剪裁,并在完成应用软件的设计时,需要完成一些非标准的硬件接口驱动程序设计。(3)需要建立交叉开发环境。嵌入式系统由于受到资源的限制,通常软件的开发环境与软件的运行环境是不同的。也就是说,嵌入式系统开发时,需要借助通用个人计算机(如PC,称为宿主机)来完成嵌入式系统的软件编辑、编译、链接等工作,生成可执行文件;而运行时,必须把可执行文件下载到嵌入式系统(目标机)上,在宿主机上是不能直接运行的。这种宿主机-目标机的开发架构称为交叉开发环境。1.1.2 嵌入式系统的组成

嵌入式系统是计算机结构的一个分支,所以在硬件上的组成和标准的计算机系统既有联系又有区别。一个嵌入式设备一般是由嵌入式计算机系统、传感器和执行装置构成的,其中,嵌入式计算机系统是整个嵌入式系统的控制核心部分;传感器用来感知外界环境信息,并传入微处理器中;执行装置称为被控对象,接收来自嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。嵌入式系统可分为硬件层、中间层、系统软件层和应用软件层4个层次。下面从这4个方面来介绍嵌入式系统的组成。1.硬件层

嵌入式系统的硬件组成如图1.1所示,嵌入式系统的硬件层包括以下3部分。

● 嵌入式处理器:如嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器、嵌入式片上系统等。

● 嵌入式存储器系统:主要由Cache、ROM、RAM、Flash和其他大容量存储器构成。

● 嵌入式系统的I/O接口:一般的嵌入式微处理器上集成有I/O接口,并且大部分I/O接口都有复用功能,可通过软件设置。图1.1 嵌入式系统的硬件电路组成(1)嵌入式处理器。嵌入式处理器是嵌入式系统的核心部分,其最大特点是集成化,体积大大减小,从而使系统功耗和设计成本下降、可靠性提高。嵌入式处理器与通用CPU的最大不同点在于,嵌入式处理器大多是为特定用户群专门设计的,它将CPU中许多外部设备来完成的任务集成到了芯片内部,具有可裁剪、可定制的特点,从而有利于嵌入式系统的小型化与集成化,同时还能够提高系统设计的效率和可靠性。

嵌入式处理器在体系结构上具有很大的不同,大体上可分为冯·诺伊曼结构和哈佛结构。即使在使用同一系统架构来设计的微处理芯片中,使用的时钟频率和数据总线宽度,以及集成的外设和接口也会各不相同。目前嵌入式微处理器的种类已超过上千种,每种嵌入式微处理器又有不同的系统结构,这就为不同领域中的应用带来很多的选择性,可根据每种嵌入式微处理器的特点来选择开发适合本领域的芯片,因此,没有一种处理器芯片能够主导嵌入式市场。(2)嵌入式存储器。在嵌入式系统中,存储器可分为Cache、主存储器、辅助存储器,用来存放可执行的代码与系统需要的数据。

Cache也称为高速缓冲存储器,是一种位于主存储器和嵌入式处理器内核之间的容量小、速度快的存储器阵列,相当于在主存和内核之间构建了一条缓冲带,可用于存放最近一段时间内核微处理器使用最多的指令代码和数据。Cache又分为指令Cache和数据Cache,不同的处理器具有不同容量的Cache。由于Cache的读/写速度非常高,微处理器尽可能地从Cache中读取数据,减少在主存读取数据的次数。通过这种方式可以有效地提高数据传输的效率,从而提高整个系统的性能,实用性更强。

主存储器用来存放系统和用户的程序及数据,是嵌入式处理器能直接访问的存储器。主存储器可以位于微处理器的内部或外部。常用的ROM类存储器有EEPROM、PROM等,RAM类存储器有SRAM、DRAM、SDRAM等,容量大小为256KB~1GB,Flash可分为NORFlash和NANDFlash,可根据不同的设计要求来选择适合的主存储器。

辅助存储器通常指硬盘,NANDFlash、CF卡、MMC和SD卡等,用来存放大数据量的程序代码或信息,一般容量大,但读取速度与主存相比要慢一些。(3)嵌入式系统的I/O接口。嵌入式系统通常具有与外界交互所需要的通用设备接口,如GPIO、A/D转换接口、RS-232接口(串行外围设备接口)、以太网接口、USB(通用串行接口)、I2C、音频接口、VGA(视频输出接口)和IrDA(红外线接口)等。通过这些接口,将片外其他设备或者传感器与微处理器连接起来,实现输入/输出功能。2.中间层

中间层也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),位于硬件层和软件层之间,将系统上层软件和底层硬件分别开来。

BSP提供了一个上层软件和硬件平台之间的接口,为嵌入式系统提供操作和控制底层硬件的方法。不同的操作系统具有各自的软件层次结构,BSP需要为不同的操作系统提供特定的硬件接口形式。BSP使上层软件开发人员无须关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。BSP具有硬件相关性和软件相关性的特点。硬件相关性是指BSP需要和系统的硬件平台相关联,不同的硬件环境需要不同的BSP来控制;软件相关性是指不同嵌入式软件与操作系统具有不同的硬件接口,因此也需要BSP来适应软件的要求。

BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。BSP一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。嵌入式系统的硬件初始化按照自下而上、从硬件到软件的层次分为3个主要环节,包括片级初始化、板级初始化和系统级初始化。(1)片级初始化:主要完成嵌入式处理器的初始化,包括嵌入式处理器核心当中的数据寄存器和控制寄存器的设置、嵌入式处理器工作模式和片内总线工作模式的设置。(2)板级初始化:主要包括软件和硬件两部分的初始化过程,完成嵌入式处理器以外的其他硬件设备的初始化,同时还需要设置一些系统运行所需要的数据结构和参数,为系统初始化和应用程序建立软/硬件环境。(3)系统级初始化:主要是指软件初始化,是针对操作系统和应用程序的初始化过程。首先由BSP将嵌入式处理器的控制权交给嵌入式操作系统,然后由操作系统完成初始化操作,最后创建应用程序环境,并将控制权交给应用程序的入口。

BSP中包含硬件相关的设备驱动程序,通常这些设备驱动程序不直接由BSP使用,而是通过BSP在系统初始化过程中与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。3.系统软件层

系统软件层通常由实时多任务操作系统(Real-Time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。实时多任务的嵌入式操作系统(RTOS)是嵌入式应用软件的基础和开发平台。(1)嵌入式操作系统。嵌入式操作系统负责嵌入式系统的软/硬件的资源分配、任务调度和控制协调。RTOS除具备一般操作系统最基本的任务调度、同步机制、中断处理、文件处理等功能外,还具有强实时性、支持开放性和伸缩性的体系结构,具有可裁剪的特点。RTOS提供了统一的设备驱动接口,还有操作方便、简单、友好的图形GUI和图形界面,支持TCP/IP及其他协议,提供强大的网络功能;嵌入式操作系统的用户接口通过系统的调用命令向用户程序提供服务。嵌入式系统一旦开始运行,就不需要用户过多干预。嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中,具有良好的硬件适应性和可移植性。(2)嵌入式文件系统。嵌入式文件系统与通用操作系统的文件系统不完全相同,主要提供文件存储、检索和更新等功能,一些高端的嵌入式文件系统还提供保护和加密等安全机制。嵌入式文件系统通常支持FAT32、JFFS2、YAFFS等标准的文件系统格式,一些嵌入式文件系统还支持自定义的实时文件系统,可以根据系统的要求来配置所需的文件系统,并根据所选择的存储介质配置可同时打开的最大文件数等。同时,嵌入式文件系统可以方便地挂接不同存储设备的驱动程序,支持多种存储设备。嵌入式文件系统以系统调用和命令方式提供文件的各种操作,如设置、修改对文件和目录的存取权限,提供建立、修改、改变和删除等服务,提供创建、打开、读/写、关闭和撤销文件等服务。嵌入式文件系统具有强兼容性、实时性、可裁剪性等特点。(3)GUI。GUI为用户与嵌入式系统的交互提供了非常人性化的接口,使用户可以通过窗口、菜单、按键等方式来方便地操作计算机或者嵌入式系统。嵌入式GUI与PC上GUI有着明显的不同。嵌入式系统的GUI要求具有轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点,并且可根据硬件环境的不同实现多样化的交互方式。例如,当今流行的智能手机与平板电脑已经完全使用触控的方式来实现用户的输入。

实现嵌入式系统中的图形界面一般采用以下几种方式。

● 针对特定的图形设备输出接口,自行开发相应的功能函数。

● 采用源码开发的嵌入式GUI系统。

● 购买针对特定嵌入式系统的图形中间软件包。

● 使用独立软件开发商提供的嵌入式GUI产品。4.应用软件层

应用软件层来实现被控对象的实际控制功能,由针对特定任务而开发的应用程序组成,主要面向被控对象和用户。嵌入式应用软件要求反应快捷,占用资源少,同时为方便用户操作,还需要提供一个友好的人机界面。1.1.3 嵌入式系统的发展1.嵌入式系统的发展阶段

第1阶段是以单芯片为核心的可编程控制器形式的系统。这类系统大部分应用于一些专业性强的工业控制器系统中,一般没有操作系统的支持,软件通过汇编语言编写。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单、价格低,因此以前在国内工业领域应用较为普遍,但是现在已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。

第2阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。其主要特点是:CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到一定的兼容性和扩展性;应用软件较专业化,但用户界面不够友好。

第3阶段是以嵌入式操作系统为标志的嵌入式系统。其主要特点是:嵌入式操作系统能运行与各种不同类型的处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理,支持多任务,支持网络应用,具备图形窗口和用户界面;具有大量的应用程序接口(API),开发应用程序较简单;嵌入式应用软件丰富。

第4阶段是以物联网为标志的嵌入式系统。这是一个正在迅速发展的技术。物联网拥有业界最完整的专业物联产品系列,覆盖从传感器、控制器到云计算的各种应用。物联网一方面可以提高经济效益,大大节约成本;另一方面可以为全球经济的复苏提供技术动力。目前,美国、欧盟等都在投入巨资深入研究探索物联网。我国也正在高度关注、重视物联网的研究,工业和信息化部会同有关部门,在新一代信息技术方面正在开展研究,以形成支持新一代信息技术发展的政策措施。2.嵌入式系统的发展趋势(1)小型化、智能化、网络化、可视化。随着技术水平的提高和人们生活的需要,嵌入式设备正朝着小型化、便携式和智能化的方向发展。如果携带笔记本电脑外出办事,肯定希望它轻薄小巧,甚至可能希望有一种更便携的设备来替代它,目前的PAD、智能手机、便携投影仪等都是因类似的需求而出现的。对嵌入式而言,可以说是已经进入了嵌入式互联网(有线网、无线网、广域网、局域网的组合),嵌入式设备和互联网的紧密结合,更为我们的日常生活带来了极大的方便和无限的想象空间。除此之外,人工智能、模式识别技术也将在嵌入式系统中得到应用,使得嵌入式系统更具人性化、智能化。(2)多核技术的应用。人们需要处理的信息越来越多,这就要求嵌入式设备运算能力更强,因此需要设计出更强大的嵌入式处理器,多核技术处理器再嵌入式中的应用将更为普遍。(3)低功耗(节能)、绿色环保。在嵌入式系统的硬件和软件设计中都在追求更低的功耗,以求嵌入式系统能获得更长的可靠工作时间,如手机的通话和待机时间、MP3听音乐的时间等。同时,绿色环保型嵌入式产品将更受到人们的青睐,在嵌入式系统设计中也会更多地考虑辐射和静电等问题。(4)云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统中。简单地讲,云计算是将计算分布在大量的分布式计算机上,这样只需要一个终端,就可以通过网络服务来实现需要的计算任务,甚至是超级计算任务。云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。在未来几年里,云计算将得到进一步发展与应用。

可重构性是指在一个系统中,其硬件模块或(和)软件模块均能根据变化的数据流或控制流对系统结构和算法进行重新配置(或重新设置)。可重构系统最突出的优点就是能够根据不同的应用需求,改变自身的体系结构,以便与具体的应用需求相匹配。

虚拟化是指计算机软件在一个虚拟的平台上而不是真实的硬件上运行。虚拟化技术可以简化软件的重新配置过程,易于实现软件的标准化。其中CPU的虚拟化可以实现单CPU模拟多CPU并行运行,允许一个平台同时运行多个操作系统,并且都可以在相互独立的空间内运行而互不影响,从而提高工作效率和安全性。虚拟化技术是降低多核处理器系统开发成本的关键,也是未来几年最值得期待和关注的关键技术之一。(5)嵌入式软件开发平台化、标准化,系统可升级,代码可复用技术将受重视。嵌入式操作系统将进一步走向开放、开源、标准化、组件化。嵌入式软件开发平台化也将是今后的一个趋势,越来越多的嵌入式软/硬件行业标准将出现,最终的目标是使嵌入式软件开发简单化,这也是一个必然规律。同时随着系统复杂性的提高,系统可升级和代码复用技术在嵌入式系统中将得到更多的应用。另外,因为嵌入式系统采用的微处理器种类多,不够标准,所以在嵌入式软件开发中将更多地使用跨平台的软件开发语言与工具,目前,Java语言正在被越来越多地使用在嵌入式软件开发中。(6)嵌入式系统软件将逐渐PC化。需求的增加和网络技术的发展是嵌入式系统发展的一个源动力。移动互联网的发展,将进一步促进嵌入式系统软件PC化。如前所述,综合跨平台开发语言的广泛应用,未来嵌入式软件开发的概念将逐渐被淡化,也就是说嵌入式软件开发和非嵌入式软件开发的区别将逐渐减小。(7)融合趋势。嵌入式系统软/硬件融合、产品功能融合、嵌入式设备和互联网的融合趋势将加剧。嵌入式系统设计中软/硬件结合将更加紧密,软件是其核心。消费类产品将在运算能力和便携方面进一步融合。传感器网络将迅速发展,其将极大地促进嵌入式技术和互联网技术的融合。(8)安全性。随着嵌入式技术和互联网技术的结合发展,嵌入式系统的信息安全问题日益凸显,保证信息安全也成为嵌入式系统开发的重点和难点。1.1.4 嵌入式系统的应用

嵌入式系统的应用领域是非常好广泛的,已经渗透到了人们日常生活、工作、学习的各个方面。不同的应用领域,其应用需求也是各种各样,因而,具体的嵌入式系统产品的复杂度也就不同。不同复杂度的嵌入式系统开发时,其开发方法和使用的开发工具也是不同的。下面从应用复杂度和应用领域两个角度,来介绍一下嵌入式系统的应用情况。1.嵌入式系统应用复杂度

嵌入式系统应用复杂度指的是其应用功能需求的复杂程度,同时也是指其应用软件开发的复杂程度,虽然应用需求各种各样,但从软件开发的复杂程度来看,可以把嵌入式系统的应用分成以下三类(或称三个应用层面)。

第一类(或第一个应用层面)是其应用功能需求可以编写为单任务的程序,并且其显示要求不复杂(如只须显示字符及简单的图形),无联网功能要求或者联网功能要求不复杂(如联网采用RS-485总线即可)。这样一类应用需求,在企业生产设备控制、智能测试仪表、医用仪器、智能小区等应用领域中比较多见。

针对第一层面的应用需求,其应用程序的开发复杂度最低,通常不需要操作系统作为软件平台,而是把应用功能程序和硬件的控制及管理程序融合在一个循环结构中实现,并设计一些中断服务程序来完成那些实时性要求的任务。这一层面的应用软件开发通常需要完成以下任务:①启动引导程序(Bootloader)设计(启动引导程序中引导的是应用程序主函数);②应用程序设计(应用程序中还需融合直接进行读/写硬件接口或其寄存器的程序语句)。

第二类(或第二个应用层面)是其应用功能需求设计成多任务的,需要较为复杂的图形显示界面,或者需要以太网的联网等功能,但无须支持复杂的数据管理功能(如无须嵌入式数据库),无须支持多媒体处理(如无须处理音频视频播放),无须支持高层网络应用(如无须连接因特网)。这样一类应用需求,在飞行器控制器、机器人控制器、图形化显示的仪器仪表等应用领域中比较常见。

针对第二层面的应用需求,其应用程序的开发复杂度较大,通常需要构建一个小型的嵌入式操作系统平台,如μC/OS-Ⅱ,以便提高嵌入式系统的开发效率,减少开发周期。这一层面的应用软件开发通常需要完成以下任务:启动引导程序(Bootloader)设计;操作系统移植(如移植μC/OS-Ⅱ等);应用程序设计,包括操作系统未提供的硬件接口驱动程序设计。

第三类(或第三应用层面)是其应用功能需求,通常需设计成多任务的,需要丰富的图形人机操作界面,或者需要连接因特网功能,或者需要复杂的数据管理功能。这样一类应用需求,在智能终端、GPS导航仪、通信设备等应用领域中比较多见。

针对于第三层面的应用需求,其应用程序的开发复杂程度很大,通常需要构建一个嵌入式操作系统平台,如Linux或Windows CE等,以便提高嵌入式系统开发效率,缩短开发周期。同时,采用成熟的、具有许多第三方功能软件支撑的操作系统平台,可以保证应用软件的安全性、可靠性。这一层面的应用软件开发通常需要完成以下任务:①启动引导程序(Bootloader)设计;②操作系统移植(如Linux或Windows CE等),包括根文件系统的建立;③根据应用需求,完成支撑环境的构建,如图形界面的构建、嵌入式数据库管理系统的构建、嵌入式Web服务器的构建等;④应用程序设计,包括操作系统未提供的硬件接口驱动程序设计。2.嵌入式系统应用领域

生活中嵌入式系统无处不在,小到一个简单的单片机控制系统,大到复杂的航天工程,随处都可以看见嵌入式系统的身影。嵌入式系统的应用领域如图1.2所示,应用领域主要有交通管理、工控设备、智能仪器、汽车电子、环境监测、电子商务、医疗仪器、移动计算、网络设备、通信设备、军事电子、机器人、智能玩具、信息家电等。图1.2 嵌入式系统的应用领域

下面列出一些主要的嵌入式系统产品。

● 网络设备:交换机、路由器、Modem等。

● 消费电子:手机、MP3、PDA、可视电话、电视机顶盒、数字电视、数码照相机、数码摄像机、信息家电等。

● 汽车电子:ABS(防死锁控制系统)、供油喷射控制系统、车载GPS等。

● 工业控制:各种自动控制设备。

经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的生活、工作和娱乐方式。嵌入式系统在工业自动化、国防、运输和航天等很多产业中得到了广泛的应用,并逐步改变着这些产业。例如,神舟飞船、长征火箭、导弹的制导系统、高档汽车中遍布嵌入式系统;在日常生活中,几乎所有带一点“智能”的家电,如全自动洗衣机、电脑电饭煲等,也都拥有自己的嵌入式系统。

图1.3和图1.4给出了嵌入式系统在各个领域的中的产品示例。

由此可见,嵌入式产品已经悄无声息地渗入到人们生活的各个角落中,给人们的生活带来了很大的便利。信息时代、数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,我们有理由相信未来嵌入式系统必能得到更好的发展。图1.3 汽车控制系统图1.4 嵌入式系统的各种应用1.2 嵌入式处理器

对于嵌入式系统的硬件部分,其核心元件是嵌入式处理器,相当于嵌入式系统的“大脑”。现在几乎每个半导体制造商都生产嵌入式处理器,据不完全统计,全世界嵌入式处理器的品种已经超过1 000种。综合考虑目前所有的嵌入式处理器,主要分为如下几类。1.2.1 嵌入式微处理器

嵌入式微处理器(Embedded MicroProcessor Unit,EMPU)是由通用计算机中的CPU演变而来的,嵌入式微处理器在功能上和标准微处理器基本是一样的。与通用计算机中的CPU不同的是,在嵌入式应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。此外,为了满足嵌入式应用的特殊要求,嵌入式微处理器在工作温度、抗电磁干扰、可靠性等方面都做了相应增强。

和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。常用的嵌入式处理器类型有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM/StrongARM、Cortex系列等。1.2.2 嵌入式微控制器

嵌入式微控制器(Embedded Microcontroller Unit,EMCU)一般以某一种微处理器内核为核心,芯片内部集成各种必要的功能部件和外部设备。由于嵌入式微控制器将整个计算机系统集成到一块芯片中,所以嵌入式微控制器又称为单片机。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。

一般一个系列的单片机具有多种衍生产品,每种衍生产品采用相同的处理器内核,不同的存储器和外部设备的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,从而减少功耗和成本。

单片机的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。单片机是目前嵌入式系统的主流,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC 05/11/12/16、68300等。1.2.3 嵌入式数字信号处理器

嵌入式数字信号处理器(Embedded Digital Signal Processor,EDSP)是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,因此嵌入式DSP处理器非常擅长高速实现各种DSP算法。

在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域。DSP应用正在从通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。与单片机相比,DSP具有的实现高速运算的硬件结构,以及指令和多总线,DSP处理的算法的复杂度和大的数据处理流量是单片机不可企及的。嵌入式DSP处理器有两个发展来源:一是DSP处理器经过单片化、EMC改造、增加片上外设,成为嵌入式DSP处理器,如TI公司的TMS320C2000/C5000等属于此范畴;二是在通用单片机或SoC中增加DSP协处理器,如Intel公司的MCS-296和Siemens公司的TriCore。推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压/解系统、虚拟现实显示等。这类智能化算法一般都运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。

嵌入式DSP处理器比较有代表性的产品是TI公司的TMS320系列和Motorola公司的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列、移动通信的C5000系列,以及性能更高的C6000和C8000系列。1.2.4 嵌入式片上系统

片上系统SoC(System-on-a-chip)的核心思想就是把整个应用电子系统(除无法集成的电路)全部集成在一个芯片中。这是得益于EDI的推广和VLSI设计的普及化,及半导体工艺的迅速发展。各种通用处理器内核将成为VLSI设计中的标准器件,用标准的VHDL等语言描述,存储在器件库中。用户只须定义整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分可集成到1块或几块芯片中去,应用系统电路板将变得很简洁。

SoC可以分为通用和专用两类。通用系列包括Siemens公司的TriCore、Motorola公司的M-Core、某些ARM系列器件、Echelon公司和Motorola公司联合研制的Neuron芯片等;专用SoC一般专用于某个或某类系统中,不为一般用户所知。1.3 嵌入式操作系统1.3.1 嵌入式操作系统简介

操作系统(Operating System,OS)的基本思想是隐藏底层不同硬件的差异,向在其上运行的应用程序提供一个统一的调用接口。应用程序通过这一接口实现对硬件的使用和控制,不必考虑不同硬件操作方式的差异。

很多产品厂商选择购买操作系统,在此基础上开发自己的应用程序,形成产品。事实上,因为嵌入式系统是将所有程序全部烧写进ROM里执行,包括操作系统、驱动程序、应用程序,所以操作系统在这里的角色更像是一套函数库(Library)。

操作系统主要完成三项任务:任务管理、多任务管理和外围设备管理。操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软/硬件资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。

嵌入式操作系统(Embedded Operating System):嵌入式操作系统负责嵌入式系统的全部软/硬件资源的分配、调度、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到系统所要求的功能。

嵌入式系统的操作系统核心通常体积要很小,因为硬件ROM的容量有限,除了应用程序之外,不希望操作系统占用太大的存储空间。事实上,嵌入式操作系统可以很小,提供基本的管理功能和调度功能。缩小到10~20KB范围内的嵌入式操作系统比比皆是,相信用惯微软的Windows系统的用户,可能会觉得不可思议。

不同的应用场合会产生不同特点的嵌入式操作系统,但都会有一个核心(Kernel)和一些系统服务(System Service)。操作系统必须提供一些系统服务供应用程序调用,包括文件系统、内存分配、I/O存取服务、中断服务、任务(Task)服务、时间(Timer)服务等,设备驱动程序(Device Driver)则是要建立在I/O存取和中断服务上的。有些嵌入式操作系统也会提供多种通信协议,以及用户接口函数等。嵌入式操作系统的性能通常取决于核心程序,而核心的工作主要是任务管理(Task Management)、任务调度(Task Scheduling)、进程间的通信(IPC)、内存管理(Memory Management)。1.3.2 嵌入式操作系统的特点(1)系统内核小。由于嵌入式操作系统一般是应用与小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。例如,Enea公司的OSE分布式系统,内核只有5KB。(2)专用性强。嵌入式系统的个性化很强,其调度机制和硬件的结合非常紧密,一般要针对硬件进行系统移植,即使在同一品牌、统一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”完全是两个概念。(3)系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(4)高实时性。高实时性的系统软件(OS)是嵌入式软件的基本要求。软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。(5)多任务的操作系统。嵌入式软件要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行。但是为了合理地调度多任务,有效利用系统资源、系统函数和专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。(6)需要开发工具和环境。嵌入式系统开发需要开发工具和环境。由于其本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发,这些工具和环境一般基于通用计算机上的软/硬件设备,以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的区分,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。1.3.3 嵌入式实时操作系统

实时操作系统(Real-Time Operating System,RTOS)是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。实时操作系统并不是指它是一种速度很快的操作系统,而是指操作系统必须在限定的时间内,对过程调用产生正确的响应。正因为如此,实时操作系统对于时间调度和稳定度有非常严格的要求,不容许发生太大的误差。

嵌入式实时操作系统(Embedded Real-time Operation System)是一种实时的、支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬件、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。1.实时操作系统的特点

IEEE的实时UNIX分委会认为实时操作系统应具备以下的几点:异步的事件响应、切换时间和中断延迟时间确定、优先级中断和调度、抢占式调度、内存锁定、连续文件、同步。

总体来说,实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内做出响应。它强度的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体,起着核心作用,由它来管理和协调各项工作,为应用软件提供了良好的运行软件环境及开发环境。2.实时系统与分时系统特征的比较(1)多路性。实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行采集,以及对多个对象或多个执行机构进行控制。(2)独立性。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立的操作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也彼此互不干扰。(3)及时性。实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至有的要低于100μs。(4)交互性。实时信息处理系统具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。因此,在实时系统中,采取了多级容错措施来保证系统的安全及数据的安全。3.使用实时操作系统的必要性

嵌入式实时操作系统在目前的嵌入式应用中用的越来越广泛,尤其在功能复杂、系统庞大的应用中显得越来越重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素:嵌入式实时操作系统提高了系统的可靠性;嵌入式实时操作系统提高了开发效率,缩短了开发周期;嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。4.实时操作系统的优缺点

优点:在嵌入式实时操作系统环境下开发实时应用程序,使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能;通过将应用程序分割成若干个独立的任务模块,使应用程序的设计过程大为简化;实时性要求苛刻的事件都得到了快速、可靠的处理;通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。

缺点:使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2%~5%的CPU额外负荷,以及内核的费用。1.3.4 常见的嵌入式操作系统1.μC/OS-II

μC/OS(Micro Controller Operating System)的中文名称是“微控制器操作系统”,它是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。

μC/OS-II的前身是μC/OS,最早出自于1992年美国嵌入式系统专家Jean J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。

μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的,与CPU硬件相关部分是用汇编语言编写的。总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其他的CPU上。用户只要有标准的ANSI的C交叉编译器,有汇编器、链接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II中与硬件平台有关的代码在OS_CPU.H、OS_CPU_C.C、OS_CPU_ASM.A三个文件中。在进行μC/OS-II移植时,设计者需根据自己开发的嵌入式系统硬件平台的具体情况,来修改这三个文件中的相关源代码,使其适合在此硬件平台上运行。μC/OS-II已经移植到了几乎所有知名的CPU上。

请读者参考网站http://www.micrium.com的移植范例。

μC/OS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。

严格地说,μC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度、任务管理、时间管理、内存管理和任务间的通信和同步等基本功能。没有提供输入/输出管理、文件系统、网络等额外的服务。但由于μC/OS-II良好的可扩展性和源码开放,这些非必需的功能完全可以由用户自己根据需要分别实现。

μC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量、邮箱、消息队列、内存管理、中断管理等。2.Linux

Linux也是一种内核源代码开放的操作系统。严格地说,Linux 一词其本身只表示Linux内核,但在实际中,人们通常用Linux一词广泛指一类操作系统,这类操作系统是基于Linux内核的,并且使用GNU各种工具软件来完成其上的应用程序开发,即完成应用程序的编译、链接、调试等开发工作。

Linux内核与1991年10月5日正式对外推出第一个版本Linux 0.02,之后借助于因特网,在全世界各地计算机自由软件爱好者的共同努力下,Linux内核得到不断改进和完善,相继推出了Linux内核的其他版本。2003年,Linux2.6版本正式发布,至今,该版本的内核源码还是许多嵌入式系统开发者进行软件平台构建(即Linux移植)时的蓝本。图1.5 Linux的标志

Linux的标志是一个可爱的企鹅图标,如图1.5所示。其内核的版本格式是Linux m.n.p,其中m表示主版本号,n表示次版本号,p表示该版本错误修补的次数。通常情况下,次版本号为奇数的表示正在进行开发测试的版本,偶数的表示稳定的版本。例如,Linux 2.5.7就是一个开发测试中的版本,Linux2.6.34就是一个对外发布的稳定版本,Linux操作系统平台的构架工作应该基于稳定版本来进行。Linux内核的稳定版本可以通过其官方网站http://www.kernel.org/来获得。

Linux操作系统无论是在通用个人计算机上,还是在嵌入式系统中均得到了使用。在通用个人计算机上使用的Linux操作系统通常被称为桌面Linux。Linux的主要版本如表1.1所示。在国内,比较著名的商用Linux系统有Red Hat公司的是Red Hat Linux以及其后的版本Fedora、中国科学院的红旗Linux、联想公司的幸福Linux等。表1.1 Linux的主要版本版 本简单介绍 开放源码的嵌入式Linux的典范之作,它主要针对目标处理没有存储管理单元,其运行稳定,具有良好的μCLinux移植性和优秀的网络功能,对各种文件系统有完备的支持,并提供丰富的API 由美国墨西哥理工学院开发的嵌入式Linux实时操作RT-Linux系统 根据嵌入式应用系统的特点重新设计的Linux发行版本,它提供了超过25种的Linux系统服务,包括Web服Embedix务器等;此外还推出了Embedix的开发调试工具包、基于图形界面的浏览器等,Embedix是一种较完整的嵌入式Linux解决方案 采用“超字元集”专利技术,使Linux内核不仅能与标准字符集相容,还覆盖了12个国家和地区的字符XLinux集,因此,XLinux在推广Linux的国际应用方面有独特的优势 它可以提供跨操作系统并且结构统一的、标准化的PoketLinux和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台 由北京中科院红旗软件推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。目前,中科院计红旗嵌入式算机研究所自行研发的开放源码的嵌入式操作系统Linux——Easy Embedded OS(EEOS)也已经开始进入实用阶段了

在嵌入式系统环境中运行的Linux,通常被称为嵌入式Linux。由于通用个人计算机上的操作系统被微软公司的Windows操作系统占据了统治地位,Linux要打破这个僵局是非常困难的,而嵌入式系统是Linux的重要应用场合,尤其是在智能手机、平板电脑、PDA、GPS导航仪等嵌入式系统产品中,由于Linux内核源代码开放,无版权使用费用,因而在这些产品中被作为软件平台,来降低这些产品的开发周期和费用。可以说Linux是嵌入式系统最重要的软件平台,但同时嵌入式系统也成就了Linux。

目前,市场上基于Linux开源内核而开发出的嵌入式Linux操作系统有很多,如风河公司的商用嵌入式Linux、诺基亚公司和英特尔公司共同推出的MeeGo操作系统、Google公司推出的Android(安卓)操作系统等。其中,Android操作系统是目前国内著名的基于Linux内核的嵌入式操作系统,它被广泛地用在便携式设备上。图1.6 Android标志

Android操作系统最初由Andy Rubin开发,主要支持智能手机的应用。2005年由Google收购注资,并组建开放手机联盟进行修改,2007年11月5日正式对外展示,2008年9月,正式发布了Android 1.0版本,这是Android操作系统最早的版本。从此,Android作为智能手机的开源操作系统平台逐渐流行起来,并逐渐推广到了平板电脑及其他便携式设备上。Android平台实际上不仅是一个操作系统,它还包含用户界面中间件,以及一些应用程序,如SMS短消息程序、日历时钟、地图、浏览器等。Android的标志是一个全身绿色的机器人,如图1.6所示。

作为软件平台,Android提供了丰富的系统运行库,以供设计者开发Android应用程序时调用,并且提供了一种应用程序框架,便于Android应用程序设计者发布其所设计的功能模块。同时通过应用程序框架,设计者可以使用系统核心应用软件的API函数,及其他设计者发布的功能模块。需要指出的是,Android平台的应用开发工具不再是GNU,而是Eclipse集成开发环境及相关的SDK软件包,这一点与传统的Linux应用程序开发有所不同。Eclipse集成开发环境软件可以到其官方网站http://www.eclipse.org/downloads/上下载,SDK也可以到Android相关网站下载。

无论采用哪种嵌入式Linux作为设计者自行开发的硬件平台上运行的软件平台,设计者的重要工作就是要基于Linux内核的某个版本进行移植、裁剪,使之适应于其需要运行的嵌入式系统硬件平台。本书介绍的知识正是从事这个工作的重要基础。3.Windows CE

Windows CE是微软公司推出的一种嵌入式操作系统,是为有限资源的硬件平台所设计的多线程、完整优先权、多任务的操作系统。它采用模块化设计,允许根据应用需求来进行定制及移植,适合于掌上电脑、车载终端、手持设备等嵌入式系统中使用,是微软应用于嵌入式系统的操作系统产品,其人机界面风格和Windows桌面系统相似。

微软公司与1996年年底推出了Windows CE操作系统的最初版本Windows CE 1.0,这一版本的Windows CE虽然并未被市场广泛接受,却奠定了之后Windows CE的基础。1997年秋,微软公司推出Windows CE 2.0,从此开始进入实用阶段。之后,每隔几年就推出一个新的版本,至2004年6月推出Windows CE 5.0,2006年9月推出Windows CE 6.0,2010年10月正式发布Windows CE 7.0。

为了更加适合在移动终端产品上实验,微软公司在Windows CE操作系统的基础上,增加了许多实用功能的组件,推出了Windows Mobile系列的操作系统。最初推出的是两个系列:Windows Mobile 2003 for Smartphone操作系统和Windows Mobile 2003 for Pocket PC操作系统。后来,又把这些系列合并,统称为Windows Mobile操作系统。2007年2月,对外发布Windows Mobile 6.0,2010年2月,对外展出了Windows Mobile 7.0,但被更名为Windows Phone 7 Series,2010年10月,正式发布Windows Phone 7操作系统。但无论具体操作系统的名称如何,其架构还是Windows CE架构的,核心是Windows CE的内核。

一个典型的基于Windows CE架构的嵌入式系统产品分为4个部分:硬件层、OAL层、操作系统层和应用层。

硬件层是指嵌入式微处理器、存储器、输入/输出部件,以及晶振电路、电源电路等组成的目标系统硬件平台。OAL层被称为OEM适配层,是硬件平台的初始化、驱动处理及操作系统的引导层,主要功能包括初始化CPU、初始化中断及中断向量表、初始化堆栈指针、加载操作系统从而引导操作系统执行,并提供标准输入/输出接口的驱动程序。操作系统层是Windows CE架构的核心层,它包括

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载