winCE嵌入式操作系统介绍
- 格式:doc
- 大小:1.30 MB
- 文档页数:8
WinCE操作系统WinCE操作系统是通用型的嵌入式操作系统,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
它1996年开始发布Windows CE 1.0版本,2004年7月发布了Windows CE .NET 5.0版本,目前用得最多的是Windows CE .NET 4.2版本,其发展速度也是很快的,功能上自不必描述,它的主要应用领域有PDA市场、Pcket PC、Smartphone、工业控制、医疗等。
就WinCE来讲,你无法买到WinCE这个操作系统,你买到的是Platform Builder for 4.2的集成开发环境,我们也简称为PB,利用它你可以剪裁和定制出一个符合你自己需要的 4.2的操作系统,因此,我们说的操作系统实际上完全是由自己定制出来的,这就是嵌入式操作系统最大的特点。
Windows CE具有模块化、结构化和基于Win32应用程序接口和与处理器无关等特点。
Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
Windows CE并非是专为单一装置设计的,所以微软为旗下采用Windows CE作业系统的产品大致分为三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。
WindowsCE版本主要有1.0、2.0、3.0、4.0、4.2、5.0 和6.0WINCE1.0是一种基于Windows95的操作系统,其实就是单色的Windows95简化版本。
技术支持、直接资助等手段聚集了大量合作厂商,使WinCE类的PDA 阵容越来越强大。
嵌入式操作系统原理——Windows CE本课程内容设置•第一章嵌入式系统概述•第二章Windows 系统结构•第三章模型、进程和线程•第四章内存管理•第五章存储管理•第六章设备管理•第七章用户界面与图形子系统•第八章应用程序设计•第九章Windows CE 5.0简介•第十章Platform Builder开发环境导航嵌入式操作系统原理——Windows CE 第一章嵌入式系统概述内容提要•嵌入式系统和嵌入式操作系统•嵌入式系统发展简史•常见的几种嵌入式操作系统•Windows 1. 嵌入式系统和嵌入式操作系统•嵌入式微处理器•嵌入式系统的特点•嵌入式操作系统的概念和分类•嵌入式操作系统的特点1.1 嵌入式微处理器•实时和多任务处理能力–限定时间内完成多个任务•集成度高–利于小型化•存储区保护功能强大–避免错误交叉作用•低功耗–功耗为mW甚至uW级1.2 嵌入式系统的特点与通用计算机系统相比的特点:•面向特定应用;•结合了计算机技术、半导体技术和电子技术等技术;•软件和硬件设计都要求高效率;•软件、硬件和具体应用及行业特点有机地结合在一起;•软件一般都固化在存储器或单片机中。
1.3 嵌入式操作系统的概念•支持嵌入式系统应用的操作系统软件;•嵌入式系统的重要组成部分;•具有通用操作系统的基本特点;•将硬件虚拟化,使开发人员从驱动程序移植和维护中解脱出来;•嵌入式系统通常包括:–与硬件相关的底层驱动软件;–系统内核;–设备驱动接口;–通信协议;–图形界面;–标准化浏览器等。
嵌入式系统分类•应用角度来看–通用型•Linux、VxWorks、Windows 等–专用型•SmartPhone、PocketPC、Symbian等•实时性–实时嵌入式操作系统•可抢占型实时操作系统•不可抢占型实时操作系统–非实时嵌入式操作系统1.4 嵌入式操作系统的特点•可定制性–可添加或可裁剪内核•可移植性–支持多种微处理器•实时性–嵌入式系统环境的现实要求•低资源占有性–由系统资源少的特点决定2. 嵌入式操作系统简史•第一阶段以单芯片为核心的可编程控制器系统;•第二阶段嵌入式中央处理器,简单的操作系统为核心的嵌入式系统;•第三阶段以嵌入式操作系统为标志的嵌入式系统;•第四阶段以网络应用嵌入式操作系统为标志的嵌入式系统。
WindowsCE嵌入式操作系统的优势Windows CE嵌入式操作系统的优势Windows CE也是微软Windows家族的一员,众所周知,Windows是使用最为广泛的操作系统,它拥有最为完善的GUI图形界面,最多的应用开发资源,以及最具可用性的开发工具。
Windows CE也是微软Windows家族的一员,作为微软的一款嵌入式操作系统产品,其继承了Windows的优点,其最新版本Windows Embedded CE 6.0 R3也引入了对Silverlight 的支持,让其性能更多出色。
在广大的软件开发人员群体中,在Windows上使用微软开发工具的工程师,占有绝对优势的比例。
而Windows CE的应用开发,使用的是和桌面系统几乎一样的eVC/eVB或者Visual 家族。
这意味着,只要熟悉任何Windows平台开发工程师,只需要一点点时间,就可以立刻进入Windows CE平台的开发;甚至,连90%以上的API函数调用都完全一样。
这是非常巨大的优势,这意味着任何一个企业,都可以找到合适的工程师,支付相对较少的人力成本,非常快速(这点很重要)地完成产品开发。
在这方面,如果和采用Linux操作系统开发做一个对比。
Linux,最大的亮点就是源代码全公开,很多企业在这杆大旗的号召下对之趋之若鹜;很多人忽视了Linux的另一面,那就是技术难度大、没有合适的免费开发工具、没有个人或企业为免费代码的可靠性负责。
我们看到了很多采用Linux失败的例子,很多企业找不到能对Linux进行开发的合适的人才,找到了人才又支付不起高昂的人力成本,在开发工具上实际也支付了超额的成本,开发周期也过于漫长,最后导致了市场的流失。
Windows CE 6.0的系统架构其次,Windows CE是非常可靠和实时性很好的操作系统。
由于桌面Windows系统给人留下的固有印象,很多人会感性地怀疑Windows CE的可靠性;而Windows CE是一个紧凑、完整和可扩展的嵌入式操作系统,是一个多线程、基于优先级可抢占式操作系统,特别适合于有限资源的硬件平台,它具有内存管理功能,可以检查出应用造成的系统异常,抑制由于应用不正常直接破坏系统的危险性。
WinCE实验教程之一嵌入式系统简介嵌入式这个词现在变得越来越流行,然而关于它的很多概念可能还有一大部分人不是很明确,在本文中,我们不追求具体的概念是否准确,而是要对其有一个准确的理解。
嵌入式系统是不同于常见计算机系统的一种计算机系统,它不以独立设备的物理形态出现,即它没有一个统一的外观,它的部件根据主体设备以及应用的需要嵌入在设备的内部,发挥着运算、处理、存储以及控制作用。
从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。
其中嵌入式处理器通常是单片机或微控制器;支撑硬件主要包括存储介质、通信部件和显示部件等;嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件以及应用中间件等。
可见,嵌入式系统是一个很大的概念,一旦嵌入式处理器和支撑硬件选定了,那么工作最多的就集中在嵌入式软件当中了。
而嵌入式软件中的嵌入式操作系统部分和应用软件部分就成了重中之中。
它们与通常说的操作系统与应用软件的概念是相似的,但也有区别。
嵌入式操作系统是与应用环境密切相关的,从应用范围角度来看,大致可以分为通用型的嵌入式操作系统如Windows CE、VxWorks、嵌入式Linux等和专用型的嵌入式操作系统如Palm OS、Symbian等。
从实时性的角度看,大致可以分为实时嵌入式操作系统和一般嵌入式操作系统。
从原理上说,嵌入式操作系统仍旧是一种操作系统,因此它同样具有操作系统在进程管理、存储管理、设备管理、处理器管理和输入输出管理几方面的基本功能,但是由于硬件平台和应用环境与一般操作系统的不同,那么它也有自身的特点,最大的特点就是可定制性,也就是它能够提供可配置或可剪裁的内核功能和其他功能,可以根据应用的需要有选择的提供或不提供某些功能以减少系统开销。
前已述及,微软公司的Windows CE操作系统就是一种嵌入式操作系统,它1996年开始发布Windows CE 1.0版本,2004年7月发布了Windows CE .NET 5.0版本,目前用得最多的是Windows CE .NET 4.2版本,其发展速度也是很快的,功能上自不必描述,它的主要应用领域有PDA市场、Pcket PC、Smartphone、工业控制、医疗等。
嵌入式操作系统WinCE1 嵌入式操作系统Windows CE .NET介绍Windows CE .NET是Windows CE 3.0的后继产品。
Windows CE .NET为嵌入式市场重新设计,为快速建立下一代智能移动和小内存占用的设备提供了一个健壮的实时操作系统。
Windows CE .NET具备完整的操作系统特性集包和端对端开发环境,它包括了创建一个基于Windows CE的定制设备所需的一切,例如:强大的联网能力、强劲的实时性和小内存体积占用以及丰富的多媒体和Web浏览功能。
2 新增特性嵌入系统的开发人员会在Windows CE .NET 中发现大量的新增特性和改进特性,其中包括:无线技术,例如蓝牙(Bluetooth);设备仿真,该特性使您可以对完整的设备环境进行仿真而无需任何额外的硬件投资;平台向导,使您可以从众多的预置设备设计中进行选择,以便跳跃式地开始您的开发流程;此外,还有丰富的多媒体和Web浏览功能,例如Microsoft Internet Explorer 5.5 和Windows Media™编解码器(Codec)和控件。
您可以在以下部分了解到这些新增特性和增添特性。
3 移动特性3.1 无线设备以下是Windows CE .NET中对各种无线设备的增强支持:§蓝牙(Bluetooth):蓝牙是一种新兴的无线通讯技术,它允许设备在大约10米的范围之内,互相之间进行通信。
这种技术的主要目标是使设备无需物理电缆即可通信。
使用这种技术的一些主要设备包括无线耳机、调制解调器和打印机。
Windows CE .NET对蓝牙技术具有与生俱来的支持,它允许设备使用具有蓝牙功能的移动电话(例如数据调制解调器)交换文件和对象,以及使用具有蓝牙功能的局域网(LAN)访问点提供网络连接。
§对象交换(Object Exchange,OBEX)协议:对象交换(OBEX)是一种高效、简洁的二进制协议,它使各种设备以一种简单、高效的方式自然交换数据。
嵌入式操作系统Windows CE研究微软Microsoft嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式操作系统是支持嵌入式系统应用的操作系统软件,它是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。
嵌入式操作系统的出现,大大提高了嵌入式系统开发的效率,在嵌入式操作系统之上开发嵌入系统将减少系统开发的工作量,增强嵌入式应用软件的可移植性,使嵌入式系统的开发方法更具科学性。
近年来,随着电子技术的不断进步,嵌入式系统开发己成为热点,Windows CE 是Microsoft 公司专门针对嵌入式产品领域开发的嵌入式操作系统,该系统是一种紧凑、高效、可伸缩的32 位的操作系统,主要面向各种嵌入式系统和产品。
它所具有的多线程、多任务、完全抢占式的特点是专为各种有很严格资源限制的硬件系统所设计的。
它的模块化设计使嵌入式系统和应用程序开发者能够方便地加以定制以适应一系列产品,例如:消费类电子设备、专用工业控制器和嵌入式通信设备等的需要[1]。
Windows CE最大的好处在于界面的通用性,用户容易接收;同时,可以将Windo ws通用操作系统下的应用程序移植到嵌入式应用系统中。
关于Windows CE的研究文献有许多,但是缺少从构建平台到网络应用的系统分析,本文从网络应用出发,深入研究Windows CE下如何实现TCP/IP协议,这对嵌入式网络应用很有意义。
1 基于Windows CE的嵌入式系统的结构[2][3]要进行嵌入式系统的应用开发,必须先建立一个开发平台。
一个基于Windows CE 的平台由Windows CE 操作系统核组件、OEM 适配层(OEM Adaptation Layer ,OAL)和设备驱动程序以及组成系统的硬件设备组成,图1为基于Windows CE平台的层次结构。
Windows CE百科名片WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
简介Windows CE操作系统是Windows家族中的成员,为专门设计给掌上电脑(HPCs)以及嵌入式设备所使用的系统环境。
这样的操作系统可使完整的可移动技术与现有的Windows桌面技术整合工作。
Windows CE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统,Windows CE可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。
以免与微软的Windows NT操作系统的HAL混淆)。
与其它的微软Windows操作系统不同,Windows CE并不是代表一个采用相同标准的对所有平台都适用的软件。
为了足够灵活以达到适应广泛产品需求,Windows CE可采用不同的标准模式,这就意味着,它能够从一系列软件模式中做出选择,从而使产品得到定制。
另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式。
通过选择,Windows CE能够达到系统要求的最小模式,从而减少存储脚本和操作系统的运行,也为企业创造更大效益[1]。
Windows CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。
与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于WIN32 API重新开发、新型的信息设备的平台。
wince 开发Wince 开发概述:Wince(Windows Embedded Compact),是微软推出的一款嵌入式操作系统平台。
它主要针对嵌入式设备,并提供各种工具和功能,使开发人员能够创建和定制各种嵌入式系统。
本文将介绍Wince开发的基础知识、开发环境搭建和常用开发技巧,以帮助读者快速上手Wince开发。
一、Wince 开发基础知识1. Wince特点:Wince是一个轻量级的操作系统,具有小巧灵活、可裁剪、实时响应等特点。
它适用于各种嵌入式设备,如手机、PDA、智能手表等。
Wince提供了基本的系统服务和API,开发人员可以利用这些功能构建自己的应用程序。
2. 开发工具:Wince开发主要使用Visual Studio平台,其中包括Visual Studio 2008、Visual Studio 2010等版本。
开发人员可以利用这些集成开发环境(IDE)进行应用程序的开发、调试和部署。
3. 编程语言:Wince开发支持多种编程语言,包括C++、C#、Visual Basic等。
开发人员可以根据自己的喜好和项目需求选择合适的编程语言进行开发。
4. Wince应用程序:Wince应用程序可以分为两类:桌面应用程序和嵌入式应用程序。
桌面应用程序类似于Windows操作系统上的应用程序,提供丰富的图形界面和交互功能。
嵌入式应用程序更加注重系统资源的管理和性能优化,通常以服务的形式运行。
二、Wince 开发环境搭建1. 安装Visual Studio:首先,需要安装符合Wince开发需求的Visual Studio版本。
根据实际情况选择合适的版本,并按照安装向导进行操作。
2. 安装Wince平台构建工具:在Visual Studio安装完成后,需要安装Wince平台构建工具,以便进行系统和应用程序的构建。
安装过程类似于安装Visual Studio,根据安装向导进行操作。
3. 创建Wince项目:打开Visual Studio,选择新建项目,选择Wince平台项目模板,然后按照提示进行操作。
Windows CE 嵌入式系统Windows CE是Microsoft公司的嵌入式操作系统产品。
它是一个紧凑、高效和可扩展的操作系统,具有多线程、多任务、确定性的实时和完全抢先式优先级的操作系统环境,适合于只有有限硬件资源的硬件系统。
操作系统的定制采用模块化设计方式,便于用户的使用。
支持Win32 API和MFC,具有Windows程序设计经验的用户可迅速掌握其编程方法。
第一章绪论BSPBSP是介于主板硬件和操作系统之间的一层,也可以说是操作系统的一部分,主要目的是为了支持操作系统,使之能够正常地在主板上运行.“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素。
一般情况下,嵌入式操作系统可分为两类:一类是面向控制和通信等领域的实时操作系统,如WinRiver公司的VxWorks、ISI公司的pSOS、QNX公司的QNX和ATI的Nucleus等.另一类是面向消费电子产品的非实时操作系统,Windows CE是一个实时操作系统.实时支持功能在以下几个方面提升了Windows CE的性能.(1)支持嵌套中断(2)允许更高优先级别的中断首先得到响应,而不是等待低级别的中断服务线程(IST)(3)更好的线程响应能力(4)对高级别中断服务线程的响应时间上限的要求更加严格,在线程响应能力方面的改进,可帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助开发人员创建更好的嵌入式应用程序.(5)更多的优先级别,256个优先级别可使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性.(6)更强的控制能力,对系统内的线程数量的控制能力可使开发人员更好地掌握调度程序的工作情况.5 丰富的多媒体和多语言支持第二章Windows CE的体系结构和功能2.1 Windows CE的层次结构2.2 进程、线程与调度2.3 内存管理2.4 存储管理与文件系统2.5 用户界面与图形系2.1.1 微内核结构Windows CE属于比较典型的微内核操作系统在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现.这样做显著地提高了系统的稳定性和灵活性.操作系统的结构可分为单体内核结构和微内核结构.传统的UNIX 是单体内核操作系统的代表.单体内核操作系统将图形、设备驱动及文件系统等功能全部在操作系统内核中实现,运行在内核状态和同一地址空间.其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核庞大,占用资源较多且不易剪裁,一旦每个驱动程序出错,就会导致整个系统的崩溃,系统的稳定性、安全性不好.与此相反,微内核系统在内核中只实现那些必须由内核实现的基本功能,而将图形系统、文件系统、设备驱动及通信等功能在内核之外,以系统服务的形式提供各种功能.这种结构的优点是有一个精炼的内核,便于剪裁与移植,而且由于系统服务程序运行在用户地址空间,因而个别驱动程序的错误不至于导致整个系统的崩溃;其不足之处是在运行中用户状态和内核状态频繁地切换,从而导致系统效率不如单体内核.微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。
在微内核外部的操作系统部件被当作服务器进程实现,它们可以借助通过微内核传递信息来实现相互之间的交互。
2.1.2 层次化模型基于Windows CE构建的嵌入式系统大致可以分为4个层次,从下到上依次是:硬件层、OEM层、操作系统层和应用程序层.(2)OEM层OEM层是逻辑上位于硬件和Windows CE操作系统之间的一层硬件相关的代码.它的主要作用是对具体的硬件进行抽象,抽象出统一的接口,然后Windows CE内核可以使用这些接口和硬件进行通信.OEM层包括OEM抽象层、引导程序、配置文件和驱动程序4个模块.OEM抽象层(OAL)是整个OEM层的主体.它包含了高度硬件相关的代码.OAL重要负责Windows CE内核与硬件的通信.当引导程序引导操作系统结束后,由OAL负责硬件平台的初始化,包括中断服务例程(ISR)、实时时钟(RTC)、定时器(Timer)、内核调试、开关中断和内核性能监测等工作. OAL的代码在物理上是内核的一部分,最终经过编译链接,OAL会成为内核的一部分.OEM层是Windows CE中至关重要的一层,也是Windows CE区别于桌面Windows重要标志之一.由于有了OEM层,Winows CE操作系统才可以运行在不同体系结构的硬件平台上,实现广泛的硬件支持.(3)操作系统层操作系统层实现了Windws CE作为一个操作系统的主要功能.Windows CE的进程管理、线程管理、调度、物理内存和虚拟内存管理、文件系统及设备管理等功能的实现都位于这一层. 由于Windows CE是一个微内核操作系统.操作系统的基本功能被放在几个独立的进程(EXE)里面实现.在运行时,这些进程大致有如下的几个: 内核NK.EXE 图形系统GWES.EXE 对象存储NK.EXE 设备管理系统NK.EXE 服务SERVICE.EXE由于Windows CE是一个可剪裁的嵌入式操作系统所以未必所有的Windows CE系统中都具有上述的几个进程,如果有的Windows CE不包含图形界面,那么这个系统中就不会有GWES.EXE.其实, 只有NK.EXE和FILESYS.EXE是所有Windows CE中都必不可少的.(I)系统调用与CoreDLL.DLLCoreDLL.DLL不是一个单独的进程,它是一个会被所有的用户进程都加载的动态链接库(Dynamic Link Library).所有的应用程序都不能直接与操作系统或硬件打交道,如果应用程序希望访问Windows CE所提供的服务,那么只能通过CoreDLL.DLL进行.CoreDLL.DLL的主要功能是负责应用程序与Windows CE通信以及完成Windows CE的系统调用.系统调用是操作系统向应用程序提供的服务,一般以函数的形式提供,这些函数通常在应用程序之外的进程中实现.系统调用的详细过程如下①当应用程序进行系统调用时,它直接调用的是CoreDLL.DLL 中的一个包装(Wrapper)函数.此包装函数为真正的系统调用准备所需要的参数.CoreDLL.DLL会被所有的用户进程加载,因此这一步其实只是进程内部的函数调用. ②CoreDLL.DLL会发起一个异常,也可以叫做软件中断.在不同的CPU体系结构上,异常实现的原理也不一样.总之,异常的作用是把执行权重新由应用程序还给操作系统.③操作系统内核会捕捉所有的异常.当操作系统捕捉到此异常时,也就重新获得了CPU.在Windows CE上,NK.EXE会处理这个软件中断,这样执行系统调用的应用程序就挂起了,执行就转入了NK.EXE.④接下来NK.EXE根据系统调用的不同,找到具体实现该系统调用的进程(这些进程在Windows CE 上也被称为PSL,全称是Protected Server Library),此进程可能是NK.EXE本身,也可能不是.如果不是NK.EXE,那么执行将再次跳转,把执行转到具体实现系统调用的进程去执行.⑤实现这个系统调用的进程得到执行的机会,它会根据根据具体系统调用的不同而完成希望实现的功能,然后返回.⑥当实现系统调用的进程执行结束返回的时候,整个系统调用也就结束了,应用程序可以从对CoreDLL.DLL的调用处返回.(II)系统调用的实例假设有一个应用程序App.EXE需要创建一个窗口,它必须首先调用CoreDLL.DLL中的CreatWindow( )函数(这个函数就是前面提到的系统调用的包装函数),然后CoreDLL.DLL会引发软件中断,执行转入NK.EXE, NK.EXE会查找到CreatWindow( )函数是图形界面有关的函数,在GWES.EXE中实现.NK.EXE就会选中GWES.EXE开始执行,此时,GWES.EXE开始执行创建窗口的任务.当窗口创建结束时,GWES.EXE就会返回,然后接着从NK.EXE软件中断中返回, 系统调用就结束了.如果应用程序调用CreateProcess( )去创建一个新的进程,那么同样会调用CoreDLL.DLL中的CreateProcess( )函数,然后自陷进入NK.EXE.所不同的是,CreateProcess( )函数就是在NK.EXE中实现的,所以NK.EXE无须再切换到其它进程,可直接在NK.EXE 中完成创建进程的任务,然后返回.应用程序调用CharLowerBuff( )函数转换字符串的大小写时, 由于CharLowerBuff( )函数的实现就在CoreDLL.DLL内部,所以CoreDLL.DLL不会引发软件中断,也不会有进程切换,而是由CoreDLL.DLL内的这个函数直接转换字符串,结束后返回.(III)Windows CE的系统调用机制了解了Windows CE的系统调用机制后,可能会有这样的疑问:Windows CE中每次系统调用都会导致多个进程之间频繁切换,而且系统调用所涉及的数据也需要在多个进程之间迁移, 这样势必会使整个系统的效率降低,而效率对嵌入式系统来说,是尤为重要的.Windows CE依靠它独特的架构解决了这个问题.其实,在Windows CE中,系统调用发生的整个过程中,并没有发生真正的线程上下文切换.Windows CE内核负责把API的调用转到实现该API的PSL进程.PSL进程会把进行系统调用的执行线程从一个进程迁移到下一个进程.也就是说,在整个系统调用过程中,在处理器上执行的线程始终是一个.还拿CreateWindow作为例子,虽然CreateWindow系统调用会在应用程序、NK.EXE和GWES.EXE中来回切换,但是3个进程中执行的线程是同一个线程,也就是说,并没有发生真的上下文切换发生,所谓的“切换”只是把执行进程的虚拟地址空间映射到了slot 0. Windows CE内核负责把应用程序中的用户态线程改变访问权限,然后把它迁移到系统进程中,在整个系统调用的过程中,这个线程在3个进程中使用同一个栈和同一些寄存器.当这个线程离开PSL进程的时候,Windows CE内核再把它的特殊访问权限移除.借助PSL,在系统调用时并没有真正地发生上下文切换,因此,系统的效率不会受到影响.对于数据在进程之间的共享问题,Windows CE也有很好的解决方法,在后面的章节中可以看到,Windows CE采用平板式的虚拟内存模型,多个进程共享一个4GB的平坦虚拟地址空间,因此, 只要有访问权限,数据在进程之间无须复制也可以共享.PSL机制是在NK.EXE中实现的,它只在Windows CE内部使用,用户和OEM都没办法对PSL进行扩展.(IV)内核NK.EXE系统运行时,Windows CE的内核表现为NK.EXE进程.NK.EXE是所有基于Windows CE的系统都存在的核心进程, 它实现了Win32 API核心中进程创建加载、线程调度、中断处理和内存管理等核心功能.NK.EXE由NK.LIB与OAL.LIB组成.NK.LIB是由Microsoft 提供的,它的代码与CPU指令体系结构相关而与具体的外设无关,此种设计可使OAL尽可能小;OAL.LIB是OEM中的OAL代码编译后的输出.(V)图形系统GWES.EXE图形窗口事件系统(Graphical Windowing and Event System) 负责操作系统中图形界面相关的部分.它提供基本的绘图功能和窗口管理器.所有的用户输入(包括鼠标、键盘及触摸屏等) 相关的驱动程序都由GWES.EXE来加载和管理. GWES.EXE 是Windows CE系统中最为高度组件化的模块之一. 在Windows CE 5.0之前,电源管理也是由GWES.EXE来进行的,在Windows CE 5.0中,电源管理从GWES.EXE中移走.这样,没有图形界面的Windows CE系统也可以使用电源管理了.(VI)对象存储FILESYS.EXE在Windows CE中,文件系统和数据存储被统称为对象存储.FILESYS.EXE就是在运行时负责对象存储的进程.对象存储包括文件系统、Windows CE数据库和系统注册表三部分.因此,不要被FILESYS的名字所迷惑, FILESYS负责的东西远远不止文件系统.文件系统包括RAM文件系统和ROM文件系统,它们可以为应用程序提供永久存储服务;Windows CE数据库是对流式文件的更高级抽象,它提供了结构化的数据存储.Windows CE 数据库中的数据以记录的形式存在,进一步方便了应用程序管理数据;系统注册表负责存储系统和应用程序的配置信息.(VII)设备管理DEVICE.EXEDEVICE.EXE是Windows CE中的设备管理器(Device Manager). 它负责加载、卸载和管理所有不被GWES.EXE管理的驱动程序. 设备管理器负责加载所有的总线驱动程序;设备管理器也负责加载电源管理DLL.DEVICE.EXE同时向系统提供所有关于驱动的API实现.在Windows CE 5.0中,设备管理器被作了少量改变,大多数的实现被转移到DevMgr.DLL中,然后DevMgr.DLL由DEVICE.EXE加载. 这样设计有利于驱动程序绕过PSL调用,直接使用DevMgr.DLL中的API,从而进一步提高系统效率.(VIII)服务SERVICE.EXESERVICE.EXE是负责加载系统服务的进程.系统服务与驱动程序非常类似,但是它们没有管理真实的硬件.它们提供一些后台的处理或者为应用程序提供高级的功能.在Windows CE 中,FTP,HTTP 和TELNET都是以系统服务的形式实现的.Windows CE提供单独的API来启动、停止和操作服务.第三方开发者可以自由地向系统添加新服务.(4)应用程序层应用程序层位于Windows CE层次结构的最顶层.从系统的角度看,每个应用程序都是Windows CE中的单独进程.通常,应用程序运行在权限较低的处理机状态下.它使用操作系统提供的API 系统调用与操作系统交互.在Windows CE中,应用程序与操作系统交互的接口同样是Win32 API,这样做有利于桌面Windows的应用开发人员迅速转为Windows CE的应用程序开发人员.但是, Windows CE下可使用的API是桌面版本Win32 API的一个子集.2.2 进程、线程与调度Windows CE是一个基于优先级的抢占式多任务操作系统.在Windows CE中,每一个运行着的应用程序都是一个进程.在一个进程中可包含一个或多个线程. Windows CE调度系统负责对系统中的多个线程进行调度. Windows CE的调度是基于优先级的.此外Windows CE还提供了多种方法供多个线程进行同步,多个进程之间相互通信.2.2.1 进程进程是程序的一次动态执行实例.进程与程序不同,当程序被Windows CE加载到内存并开始执行后就变成了一个实例或者说进程.进程与程序的不同主要有●进程是动态的概念,而程序是静态的概念. ●进程有创建、执行及结束完整的生命周期,而程序只是一个文件.●一个程序可以对应多个进程,而一个进程只能对应一个程序.举例子说,同时打开多个Internet Explorer浏览器浏览不同的网页,这时在内存中会有多个浏览器进程,但是它们对应的程序只有iexplorer.exe.Windows CE中进程本身不参加系统的调度,也没有优先级和上下文。