




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 Windows CE 系统介绍1.1 Windows CE 发展简介微软公司从 1990 年开始准备构建移动设备中的 Windows,但先后因为市场和硬件技术问题搁浅了 WinPad 和 Pulsar 项目,随着经验的积累和各种条件的成熟,这两个解散后的项目小组组成了新的 Pegasus 小组,这个小组在 1996年 11 月发布了一带有“指定参考设备硬件要求”列表的 Windows CE 1.0,与此同时 NCE 和 Cisco 公司还发售了两个采用 Windows CE 1.0 的 HandHeld PC。总的来讲,Windows CE 1.0 做得并不成功,但使微软公司迈出了在嵌入式操作系统中的第一步。Windows CE 1.0 发布后不到一年, Windows CE 2.0 就发布了,Windows CE 2.0 在 Windows CE 1.0 基础上有很大增强,提供了对 FAT32 文件系统的支持,增加了对软键盘和 USB 控制器的支持。2.12 版的 Windows CE 模块化程度空前提高,还增加了对控制台、BlueTooth、高速红外传输、Interact Explorer 4.0 等的支持。新版的 Platform Builder 也越来越被 OEM 厂商所接受。2000年 6 月,微软发布了 Windows CE 3.0,直到这个版本 Windows CE 才开始了与Plam OS 的直接性竞争。2001 年初,微软发布了 Windows CE NET 4.0,从名字上看得出好像它是支持.NET Compact Framework,但真正的支持只到 Windows CE.NET 4.1 才实现,不过在 Windows CE.NET 4.0 版里的政变也很大,比如,改变了驱动的加载模型,并对通信接口和注册表都有了新的支持和改变,而且正是在这一个版本Windows CE 成为了一个真正的硬实时嵌入式操作系统。Windows CE NET 4.2 版加入了对 Pocket PC 更好的支持,Windows CE.NET 4.2 版也是截至 2006 年 l为止应用得最多的 Windows CE 版本,相对于以前版本在稳定性和可靠性上都有很大改观。2004 年 6 月,Windows CE 5.0 正式发布。它带来的不只是高可靠性和稳定性,还带来了丰富的开发工具,从 Windows CE 定制工具 Platform Builder 5.0 到开发工具 EVC 4.0 和与之适应的集成开发环境 Visual Studio .NET 2003和 Visual Studio .NET 2005。另外它的最大突破之一是源代码共享政荒,微软公司开放了其核心源代码的近 70,这让开发者可以以进一步根据自己的需要定制。2006 年 11 月,微软公司发布了 Windows Embedded CE 6.0。在这个版本中,核心源代码被 100完全开放。Visual Studio .NET 2005 的 Professional 版也免费向开发者提供,Platform Builder for CE 6.0 成了 Visual Studio .NET 2005 的一个插件。Windows Embedded CE 6.0 的核心被重新设计,性能改善是其一个大亮点。支持同时 32000 个并行进程,单个进程最大虚拟内存达到2GB。提供实时数据链接,并增强了剥多媒体的支持。在本书里,将以 Windows CE 6.0 为例进行一些实际操作,但这些外不仅仅限于 Windows CE 6.0,将尽量保证其在更多版本的 Windows CE 上正常运行。微软公司设计 Windows CE 的初衷是为了抢占个新且大的市场,为了抢占这个市场,他们努力使设计的 Windows CE 模块化,占用更少的系统资源,连接的多样性,宴时性,更好的多媒体性能,以使 Windows CE 能够适应更多不同的设备和应用的要求。现在看来,微软公司基本上达到了他们的目的。Windows CE被应用到嵌入式系统存在的大多数领域。1.2 Windows CE 特点Windows CE 主要有以下一些特点。高可靠性和稳定性。Windows CE 是一个微软专门针对嵌入式操作系统领域推出的产品,可靠性和稳定性一直是其追求的目标,相对于桌面 Windows 版本 Windows CE 要稳定得多。到了 Windows Embedded CE 60,内核被重新设计。伴随着其市场和技术环境的成熟,它将被应用到很多对可靠性和稳定性要求比较高的领域。硬件的良好兼容性。微软公司的产品一向具有较广泛的硬件兼容性,Windows Embedded CE 6.0 继续保持了这一优良传统。无处不在的通信。Windows CE 不仅与桌面版本的 Windows 有良好的通信能力,与其他支持主流通信方式的设备同样可以进行高效通信。数据库支持。从 Windows CE 3.0 开始,SQL Sewer 2000 就有了针对Windows CE 的支持,专门设计了 ADOCE。到了 Windows CE 4.0 就提供了ADO.NET 的数据库支持,使 Windows CE 真正实现了企业级的数据计算。较高的安全性。Windows CE 有专门的安全体系架构,通过 SSPI(Safe Support Provide Interface,安全支持提供者接口 )提供对用户的授权和安全等级管理。而且第三方 OEM 厂商还可以加入自己编写的安全工具及新的解密加密算法等。Windows CE 4.0 还提供了对 VPN(Virtual Private NetWork,虚拟专用网络)的支持。Windows Embedded CE 6.0 所使用的 ExFAT 文件系统还支持对单个文件的第三程序加密。高级电源管理。为了尽量延长有限的供电设备的使用刚间,Windows CE提供了较为高效的电源管理,针对不同的设备 Windows CE 会按需控制,控制其在不同的电源状态之间切换,并尽量不过分影响系统的正常使用。而且,Windows Embedded CE 6.0 的电源管理被从 GWES(Graphic、Windowing、Events Subsystem,图形、窗口、事件管理器)中剥离出来使没有使用图形界面的Windows Embedded CE 6.0 设备仍然可以拥有电源管理功能。容易上手的开发环境。最新的 Windows Embedded CE 6.0 的开发已经很好地与 Microsoft Visual Studio 2005 进行了集成,无论是操作系统镜像的定制与生成,还是相关应用程序的开发,都得到了全面、高效、友好的支持,而且改良的 Windows Embedded CE 6.0 相关的模拟器可以更好地协助开发工作的进行。Windows CE 的以上特性在 Windows CE 3.0 的时候开始突显,到了 windows CE 5.0 基本已经确立,而 Windows Embedded CE 6.0 重新编写的内核则让它的这些特性更进一步。Windows CE 为了适应不同的设备还有不同的衍生版本,比如在智能手机领域的 Windows Mobile 及在车载设备中的 Windows Automotive。微软公司针对嵌入式操作系统领域还推出了 Windows NT Embedded 和 Windows XP Embedded,随着新的桌面操作系统的发布,Windows Vista Embedded 也即将发布。1.3 Windows CE 功能简介1.3.1 从操作系统角度看 Windows CE 主要功能从操作系统内核角度看,Windows CE 具有灵活的电源管理功能,包括睡眠/唤醒模式。在 Windows CE 中,还使用对象存储(object store)技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉处理同步、支持大容量堆(Heap)等。Windows CE 具有良好的通信能力,它广泛支持各种通信硬件,亦支持直接的局域网连接以及拨号连接,并提供与 PC、内部网以及 Internet 的连接,包括用于应用级数据传说的设备至设备间的连接。在提供各种基本的通信基础结构的同时,Windows CE 还提供与 Windows 9x/NT 的最佳集成和通信。Windows CE 的图形用户界面相当出色。它拥有基于 Microsoft Internet Explorer 的 Internet 浏览器,此外,还支持 TrueType 字体。开发人员可以利用丰富灵活的控件库在 Windows CE 环境下为嵌入式应用建立各种专门的图形用户界面。Windows CE 甚至还能支持诸如手写体和声音识别、动态影像、3D 图像等特殊应用。Windows CE 是一个多任务的操作系统,可以同时执行多个任务并在他们之间来回切换,这其实就是 Windows 的简化版本,可以通过我们熟悉的 Windows操作方式来控制 Windows CE,它也带有“我的 文档” ,也有很多软件如MediaPlay、WordPad 等。Windows CE 内置了多媒体功能,通过 Windows Media Play 可以播放音乐,甚至视频。Windows CE 具有可扩充的 Compact Flash/MMC/SD 插槽,通过扩充卡可以实现多种功能,例如,网页浏览、无线介入或者增加更大的存储空间等。Windows CE 为快速建立智能移动和小内存占用的设备提供了一个健壮的实时操作系统。Windows CE 具备完整的操作系统特性集和针对端对端开发的环境,它包括了定制设备所需要的一切,例如,联网能力、实时性、小内存占用、多媒体以及 Web 浏览功能。1.3.2 从开发角度看 Windows CE 主要功能1 定制系统内核Windows CE 提供了一个工具 Platform Builder,是 Windows CE 的主要集成开发环境,通过这个工具可以方便地根据不同的硬件,定制、剪裁出符合不同系统要求的 Windows CE 操作系统。Windows CE 提供了良好的开发方式,通过它可以方便的对内核进行增加与剪裁。2 开发驱动程序Windows CE 本身提供了相当多的应用程序,以 AMD CPU 系列为例,Windows CE 就提供了显卡、声卡以及基于 X86 系列 CPU 的支持代码等。但是对于一个完整的嵌入式系统,有的时候 Windows CE 自带的驱动程序并不能满足用户要求,或者没有所需的 Windows CE 下的驱动程序,这时就要拥护自己编写相应的驱动程序。Windows CE 的开发工具 Platform Builder 就可以完成相应的驱动程序开发。3 导出 SDK定制操作系统内核后,如果需要则可以通过 PB 生成自己的 SDK,生成的SDK 可以很容易安装到其他的开发环境中区。这样就可以在新的开发环境中利用自己定制的 SDK 进行开发。4 编写应用软件Windows CE 带的开发工具 EVC 及 Platform Builder 均可以完成应用软件的开发工作,并且 Windows CE 提供了对 COM/DCOM、Direct3D、Internet、IP电话等多种功能的支持,让应用软件的开发更加方便。1.4 Windows CE 应用领域正是由于 Windows CE 具备多任务、实时性、模块化及可伸缩性、强大的通信能力等特点,所以 Windows CE 在嵌入式系统的诸多领域都有广泛的应用,具有丰富的应用类产品。其中,在信息家电领域和移动计算领域有着巨大的发展潜力。信息家电是指所有能提供信息服务或通过网络系统交互信息的家电消费类电子产品,如网络冰箱、家庭网关、数字机顶盒等。在后 PC 时代,计算机将无处不在,家用电器将向数字化和网络化发展,电视机、冰箱、微波炉、电话等都将嵌入计算机,并通过家庭控制中心与Internet 连接,转变为智能网络家电,还可以实现远程医疗,远程教育等。目前,智能小区的发展为机顶盒打开了市场,机顶盒将成为网络终端,它不仅可以使模拟电视接收数字电视节目,而且可以上网、炒股、点播电影、实现交互式电视。由于 Windows 在传统 PC 市场的优势,以及 Windows CE 与 Windows 的完美集成,使 Windows CE 在这一市场中迅速占据了有利地位。例如,在广播电视领域,微软维纳斯计划生产的机顶盒的核心技术就是 Windows CE 嵌入式技术。移动计算领域包括手机、PDA、掌上电脑等各种移动设备。这些设备都是一种个人工具,可以分为以语音功能为中心、以数据处理为中心或同时实现这两种功能。微软在移动计算领域有专门针对以数据处理为中心的 Pocket PC 产品和以语音功能为中心的 Smart Phone 产品。二 Windows CE 的体系结构Windows Embedded CE 6.0 的体系结构如下图所示:Windows CE 采用了典型的分层结构。在 Windows CE 5.0 的文档中,微软公司将其分为四个层次,从下到上依次为:硬件层;OEM 层;操作系统层;应用程序层。而在 Windows Embedded CE 6.0 中却划分为 User Mode(用户模式)和Kernel Mode(内核模式)两个“层” ,CoreDLL 等 DLL 同时出现在两个层中,驱动程序也可以被加入到内核中,以前的.exe 可执行模块基本上都变成了.dll。下面详细分析各个部分。1 硬件硬件是一个嵌入式系统存在的必要条件,也是嵌入式设备的外在体现,是嵌入式操作系统运行的基础,在通用计算机领域,一般都是 x86 体系结构的IBM-PC 及其兼容机,早期 IBM 和英特尔的压倒性趋势,使得现在的通用计算机领域硬件体系基本一致,都有定义良好的接口(Interface) ,而在嵌入式系统领域,由于设备制造商都是由不同领域不同应用的厂商发展而来的,所以硬件结构相对复杂,仅 CPU 体系结构就有多种,Windows Embedded CE 6.0 也支持四种 CPU 体系结构(分别是 ARM、MIPS、x86、SHx) 。硬件的复杂性会加大程序开发的难度,因此出现了 BSP 来解决硬件体系结构的差别问题。Platform Builder for CE 6.0 为很多常用的 SDB(Software Development Board、软件开发板)提供了 BSP,这些 BSP 基本包括了所有Windows Embedded CE 6.0 所支持的 CPU,可有效减少嵌入式设备的开发周期。2 OEM适配层在 Windows CE 5.0 的 OEM 层中,也有一个 OAL。在 Windows Embedded CE 6.0 中它在内核模式中。OAL 处在 Windows Embedded CE 6.0 和嵌入式设备的硬件层之间,连接到内核的库中便可以创建内核的可执行程序。它主要提供中断处理、时钟、电源管理、总线抽象、通用 I/O 控制等服务。在建立一个以 Windows Embedded CE 6.0 为操作系统新的硬件平台的过程中,创建 OAL 可能是最复杂的事情之一。通常情况下,最简便的方法是对已有的 OAL 进行修改以适应自己的硬件平台。3 内核独立传输层KITL(Kernel Independent Transport Layer)是为了调试工作更加方便而设计的,它削弱了通信协议与通信硬件之间的直接性依赖,降低了硬件传输层(Hardware Transport Layer)相关的开发工作量,硬件传输层在 KITL 的下层,使得 KITL 可以支持不同类型的通信,比如,可以支持桌面操作系统和Windows Embedded CE 6.0 的设备通信。KITL 是建立在 Ethernet 和 IPv4 的基础上,但不支持 IPsec 协议,必须通过其他途径来解决。4 内核内核为 Windows Embedded CE 6.0 设备提供最基本的底层功能,这些功能包括进程、线程、内存管理,还包括一些文件管理功能、进程和线程的调度、实时支持、系统调用、内核电源管理等。NK.exe 是 OAL 进程,内核 KERN.DLL是伴随着 OAL 启动的,NK.exe 是 Windows Embedded CE 6.0 的核心。下图表明了 Windows Embedded 的内核结构。5 CoreDLLCoreDLL 同时出现在用户模式和内核模式中,CoreDLL 提供 Core OS 服务,使得应用程序能够访问 Windows Embedded CE 6.0 之下的计算资源,如文件系统、内存、设备、进程和线程等。应用程序也通过这些服务管理和监视其所要完成任务所需要的资源,通过它,应用程序之间还可以共享程序代码和其他数据信息。6 文件系统“File System”单从其名字可以看出它是一个文件系统,但这只是一个名字,它真正的范围要比它的名字广得多,不但包括文件系统,还包括存储对象的管理,Windows Embedded CE 6.0 的对象存储系统有丰富的存储功能,提供各种文件系统的支持,包括 FAT 文件系统、RAM 文件系统和其他 CD 等通用磁盘文件系统。支持第三方定制的文件系统,支持与 SQL-CE 和 SQL Server 数据库的链接,有良好的安全特性,支持第三方程序对磁盘进行的加密。在其中不得不提及的是 Windows Embedded CE 6.0 的 FAT 文件系统,Windows Embedded CE 6.0 采用了 ExFAT(Extended File Allocation Table File System) ,ExFAT 不仅解决了大容量文件存储的限制问题(在 Windows CE 5.0 中,对象存储最大可以达到 256MB,单个文件不超过 4GB) ,还使得 Windows Embedded CE 6.0 设备与桌面 PC 机之间的文件传输更方便更容易。而且 ExFAT还提供了对以前文件系统的支持。下面是 ExFAT 的一些特性: 对象存储最大为 32GB; 突破单个文件夹存储 1000 个文件的限制; 提升了存储速度; 突破了单个文件不超过 4GB 的限制; 提高了 Windows Embedded CE 6.0 设备与未来桌面操作系统的互操作性; 支持 OEMs 和 ISVs 定制的针对特殊设备的文件系统。7 图形、窗口、事件管理子系统GWES(Graphic、Windowing、Events Subsystem)集 Win32 API、User Interface、Graphic Device Interface 于一体,是用户、应用程序和 Windows Embedded CE 6.0 之间的一个共同的接口,三者通过 GEWS 进行通信和相关操作。GWES 所支撑的 Windows Embedded CE 6.0 的用户接口(User Interface,UI)元素非常丰富,几乎可以和桌面 Windows 相比,包括窗口、对话框、控制按钮、菜单和其他资源,还提供了光标、位图、文字、图标进行其他方面的控制操作。Windows CE 5.0 的 GWES 还包括了电源管理,这使不使用 Windows CE 图形界面的设备无法使用电源管理功能,但在 Windows Embedded CE 6.0 中,没有图形界面的嵌入式设备仍然可以使用电源管理功能。8 设备管理器设备管理器是被内核加载的,而且只要 Windows Embedded CE 6.0 还在运行设备管理器就不会停止工作,当设备管理器被加载时,I/O 资源管理器(Input/Output Resource Manager)也将被加载,用它从注册表中读取一个有效的可用资源列表。设备管理器通过 GUID(Globally Unique Identifier,全局唯一标识符)来发现和管理设备。设备管理器是通过 device.dll 来实现的。设备管理器与注册表的配合非常紧密,它运行和管理的大多数数据都来自注册表。9 驱动程序驱动程序是一种抽象了物理或者虚拟设备功能的软件或者代码,相应设备被其驱动程序管理的操作,物理设备比较常见,像 USB 存储器、打印机等,虚拟设备如文件系统、虚拟光驱等。在 Windows Embedded CE 6.0 中,驱动程序有两种模式,一种是内核模式,另外一种是用户模式,在默认状况下,驱动程序运行在内核模式下,这有利于设备性能的提高,但也增加了影响系统各方面性能的不确定因素,如果不稳定的驱动被加入到内核,将会对嵌入式系统的可靠性、稳定性等多方面的性能产生致命的影响。这使得驱动程序在发布和认证时必须有严格的性能保证措施。驱动根据各自类的不同将会被不同的进程加载,一般情况下,驱动会被以下三种进程加载:1文件系统 Filesys.dll;2设备管理器 device.dll;3GWES GWES.dll。这三种不同的进程将加载各自的驱动而不发生冲突。10 应用程序Windows Embedded CE 6.0 提供了对.NET Compact Framework 的支持,使得开发应用程序有了良好的应用编程接口。开发 CE 6.0 的应用程序,可以使用现有的开发工具和环境,也可以仅仅使用一些 SDK(Software Development Kit) 。Windows Embedded CE 6.0 支持 Unicode 超大字符集,NLS(National Language Support)的支持使得开发国际化的软件更加方便,对已有软件的国际化和本地化也更容易实现。通常使用 Visual Studio .NET 2003 / 2005 来开发 Windows Embedded CE 6.0 上的应用程序。三 Platform Builder 简介Platform Builder 是微软提供给 Windows CE 开发人员进行基于 Windows CE 平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试 Windows CE 操作系统平台的工具。它运行在桌面 Windows 下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时,开发人员还可以利用 Platform Builder 来进行驱动程序开发和应用程序项目的开发等。Platform Builder 的强大功能,已经使其成为Windows CE 平台下嵌入式操作系统开发和定制的必备工具。Platform Builder 为构建一个完整可运行的 Windows CE 版本提供了大量的要素,包括应用程序、DLL、设备驱动、字体和图标等。微软在Platform Builder 中还包含了.NET 精简框架运行时库,这样定制的Windows CE 智能设备也可以包含.NET 精简框架运行时库。当然,这只是一个可选的组件,是否包含它完全取决于平台开发人员的决定。 一些.NET 精简框架应用程序的开发人员可能也需要开发一些设备驱动来支持他们的应用程序。Platform Builder 也通过示例设备驱动程序和文档的形式提供对设备驱动开发的支持。到目前为止,还只能用 C 或者 C+语言和Win32 API 来开发设备驱动,这是因为现在还不支持在托管代码中开发设备驱动。 另一个 Platform Builder 吸引.NET 精简框架开发人员的原因是,在Platform Builder 中,微软还提供了 Windows CE 核心部分的源代码。这些作为共享资源的源代码包括 Windows CE 内核,各种服务器组件和各种网络通信协议的重要部分。投入少量时间研究这些代码就能够更深刻地理解各种Windows CE 组件,例如 Web 服务器、对蓝牙的支持、对显示驱动器的支持,线程调度程序和底层内存管理等。 (可用于研究 Windows CE 的源代码远远不止这些,一共有 1400 多个文件,上百万行代码。 )3.1 主要开发特性具体来说,Platform Builder 提供的主要开发特性包括:(1) 平台开发向导(Platform Wizard)和 BSP 开发向导(BSP Wizard) 。开发向导用来引导开发人员去创建一个简单的系统平台或 BSP(主办支持软件包) ,然后再根据要求进一步地修改。开发向导提高了平台和 BSP 创建的效率。(2) 基础配置。为各种流行的设备类别预置的可操作系统基础平台,为自定义操作系统的创建提供了一个起点。开发人员可以很容易地定制并编译出一个具备最基本功能的操作系统,然后再在其上进行后续的修改。(3) 特性目录(Catalog) 。操作系统可选特性均在特性目录(Catalog)中列出,开发人员可以选择相应的特性来定制操作系统。(4) 自动化的依靠性检查。特性(Feature)之间的依赖关系是系统自动维护的。开发人员在选择一个特性时,系统会自动 这一特性所依赖的特性加上;反之,当删除一个特性时,系统会自动检测是否已经选择了依赖于它的其他特性,如果有,系统会给出提示,通知开发人员这一特性现在不能删除。(5) 系统为驱动程序开发提供了基本的测试工具集 Windows CE Test Kit(测试工具包) 。(6) 内核调试器,可以对自定义的操作系统映像进行调试,并且向用户提供有关映像性能的信息。(7) 导出向导(Export Wizard):可以向其他 Platform Builder 用户导出自定义的目录(Catalog)特性。(8) 导出 SDK 向导(Export SDK Wizard) ,使用户可以导出一个自定义的软件开发工具包(SDK) ,即可以将客户定制的 SDK 导出到特定的开发环境中(如 EVC)去。这样开发人员就可以使用特定的 SDK 写出符合特定的操作系统平台要求的应用程序。(9) 远程工具,可以执行同基于 Windows CE 的目标设备有关的各种调试任务和信息收集任务。(10) 仿真器(Emulator) ,通过硬件仿真加速和简化了系统的开发,使用户可以在开发工作站上对平台和应用程序进行调试,大大简化了系统开发流程,缩短了开发时间。(11) 应用程序调试器,可以在自定义的操作系统映像上对应用程序进行调试。(12) 提供了对 NET FrameWork Compact Edition(即.NET 平台精简框架)的支持。Windows CE 一般应用于特定的嵌入式系统中,在许多情况下,不但需要向目标平台增加基本的操作系统特性,以使它能够完成基本的控制任务,而且还要向目标平台中加入外部设备的驱动程序和一些附加的设置。但是对于一些通用性较强的嵌入式系统,如 PDA、机顶盒、智能电话灯,微软都为其特别订制了专用的操作系统,如 Smart Phone、Pocket PC 等。开发者可以利用这些特定的操作系统,并在此基础上进行调整,从而更快的订制出适合需要的目标操作系统平台。3.2 开发界面在这里简单的介绍一下 Platform Builder 的开发界面。如图是一个正在定制的操作系统,名为 PDA_Test。各个部分名称如下图所示:比较重要的两个部分是工作区窗口和特性目录窗口。特性目录窗口是操作系统可选特性的一个集合,包括 BSP、Core OS、设备驱动程序,还包括开发人员自己通过 CEC 文件导入的自定义特性。以及通过设备提供商提供的 CEC 文件加入到系统中的特性。 工作区窗口是开发人员已经选定的特性的列表,这些特性都将用到新定制的操作系统中。另外,如果存在与正在定制的操作系统相关的应用软件,在工作区窗口还会出现类似 VC+工程的 Class View、Resource View 和 File View等可选标签。 最后,在窗口底部状态栏中,Size 代表正在定制的操作系统已经选定的特性占用空间的大小,也就是定制的操作系统的大小,size 右侧的图标代表Platform Builder 当前处于的状态。Build工具栏。此工具栏上按钮、下拉框都用于编译、调试。数字 1 指向的下拉框是编译指令集,可以指定不同的指令集来编译 CE 平台或者应用程序。Workspace窗口。此窗口有三个子视图,分别为FeatureView、ParameterView、FileView。当打开一个平台工程文件后,FeatureView 显示这个平台所有的特征。如设备驱动程序、各个软件组件等。ParameterView 显示所有平台通用的配置文件和当前平台的配置文件,这些配置文件扩展名为*.bib、*.reg、*.db、*.dat。FileView 显示在当前 CE 平台上建立的应用程序源码文件、资源文件、资源脚本文件等。也就是说如果在当前CE 平台上建立一个应用程序工程,那么所有的文件都在 FileView 中显示出来。类似 EVC、VC 的Workspace窗口中的FileView。注:关于 FeatureView和 ParameterView 包含的内容在以后讲解。Output窗口。用于显示输出信息。类似 EVC、VC 的Output。Target窗口。此工具栏上按钮分别用于下载内核文件到模拟器或实际平台、连接、断开。当一个 CE 平台编译好了之后,就可以按下载按钮将平台(nk,bin)文件下载到模拟器上运行。Catalog窗口。这个窗口包含所有的 CE 支持的特征。状态栏图标。位于状态栏最右端的四个图标中,最左边的图标表示当前下载状态。另外三个表示三种服务状态,这三种服务运行在目标机(target device)上。在这里就是模拟器。要向当前 CE 平台添加特征,首先在右边Catalog窗口中找到要添加的特征,找到后移动鼠标光标到此特征上,然后单击右键,在弹出的菜单中单击Add to Platform,PB 就将此特征添加到左边当前 CE 平台中。如果无反应说明此特征已经被添加进去了。要删除当前 CE 平台中某一个特征,移动鼠标光标到此特征上,单击右键,在弹出的菜单中选择Delete。并非所有的特征都可以任意删除,因为有些特征是彼此关联的。这部分将在以后的文章中讲述。对平台进行一些基本的设置,打开菜单platformSettings,检查Locale选项卡中地区和语言设置。这一点很重要,它决定着编译的平台采用的语言种类。再在Environment选项卡中添加IMGRAM64环境变量,值设置为1。单击OK,PB 开始将此环境变量加入到平台中。单击工具栏上Build Platform按钮开始编译。在编译过程前必须先了解环境变量以及如何读取和设置环境变量。一个环境变量包含了一个 CE 操作系统某一方面的信息。例如一个驱动程序、一个路径、一个配置文件、一个特征等。当 PB 编译 CE 平台时,先做的工作就是收集所有的环境变量供编译器使用。读取和设置环境变量的最好方法是单击 PB 菜单BuildOpen Build Release Directory,PB 会弹出一个控制台窗口,也就是命令行外壳。键入set命令,当前平台所有的环境变量就显示出来了,不过要多屏显示。为了看清楚每个变量的值,可以键入set |more,这样就可以分屏查看了。还可以将所有环境变量信息保存到硬盘上,比如键入set C:envi.txt。要查看单个环境变量值,键入set 环境变量名。要修改原环境变量的值键入set 环境变量名=值。有些环境变量无需键入值就可以达到修改目的。比如前缀为BSP_和SYSGEN_的变量,键入set 环境变量名=就取消了这个环境变量。在 IDE 中也可以修改环境变量,如上面所说的设置IMGRAM64的值,就是在 IDE 中修改的。利用环境变量也可以添加和删除特征,如 BSP 变量。BSP 变量分两种,一种以 BSP_NO 为为前缀,一种以 BSP 为前缀。以 BSP_NO 为前缀表示当前平台不支持某一特征,以 BSP 为前缀表示支持这一特征。例如 BSP_SERIAL2 表示此 CE 平台支持串口 2;BSP_NOSERIAL 表示此 CE 平台不支持串口。如果在 PB 的catalog中找不到要添加的特征,可以通过设置BSP 变量来实现。3.3 编译过程中 PB 所做的工作执行 cebuild.bat 批处理文件。cebuild.bat 调用 sysgen.bat 批处理文件。sysgen.bat 调用 cesysgen.bat 批处理文件,cesysgen.bat 负责在*.wce文件中搜索用户选择的特征,然后形成一系列环境变量。之后 PB 会显示这些变量,下面几个步骤就是显示收集的变量。产生 SYSGEN 变量。每个 SYSGEN 变量对应一个特征。产生CE_MODULE、COREDLL_COMPONENTS、FILESYS_COMPONENTS、DEVICE_COMPONENTS、GWE*_COMPONENTS、DCOM_MODULES、FONTS_COMPONENTS 等环境变量。其中每个环境变量包含某一个特征具体的内容。从环境变量名称就可以看出来是哪种特征。对_DEPTREES 环境变量指定的每个目录分别执行 sysgen.bat 批处理。_DEPTREES 这个变量的值是一些目录名(例如DCOM、IE、SERVERS、DIRECTX、WCESHELLFE 等),这些目录名位于%WINCEROOT%public。如果安装 PB v4.1 时默认安装路径,那么此目录路径为C:WINCE410Public。编译 BSP。因为我们采用的 BSP 是 Emulator,所以 PB 会编译%WINCEROOT%PlatformEmulator 目录下三个子目录 KERNEL、DRIVERS、GWE 中的源码文件。清除_FLATRELEASEDIR 环境变量指定的目录下的所有文件、子目录。假如我们定制的平台路径为 C:Emulator,那么这个环境变量的值为C:EmulatorRelDirEmulator_X86Release。复制%_PROJECTROOT%所有文件到_FLATRELEASEDIR。根据本地地区环境变量,寻找所有与本地语言相关的*.str 文件复制到_FLATRELEASEDIR 中。*.str 文件中包含了字符串资源,将字符串与 ID 关联。在_FLATRELEASEDIR 目录下你可以看到以地区码为目录名的子目录。处理 NLS(国家语言支持)数据。执行 fmerge.exe。合并所有*.bib 文件为一个文件 ce.bib,合并所有*.reg 文件为一个文件 reginit.ini。执行 cebuild.bat 批处理文件。执行 fmerge.exe。合并所有*.db 文件为一个文件 ,合并所有*.dat 文件为一个文件 initobj.dat。运行 regcomp.exe 压缩 reginit.ini。运行 txt2ucde.exe。将整个 CE 平台涉及到的所有字符串转成 unicode 码。运行 res2exe.exe。将所有*.dll、*.exe、*.cpl 文件中的资源更新。资源更新部分主要和语言相关。运行 Romimage.exe。将所有文件合并压缩成一个文件 nk.bin(默认文件名)。整个编译过程被调用的批处理文件和 EXE 文件主要包括:cebuild.bat、sysgen.bat、cesysgen.bat、nmake.exe、txt2ucde.exe、makeimg.exe、fmerge.exe、regcomp.exe、res2exe.exe、romimage.exe、build.exe。3.4 Platform Builder 的文件夹结构Platform Builder 的文件夹结构十分复杂,共有3 万多个文件,2400 多个子文件夹,如果不清楚的话在以后的开发过程当中将会带来很大的麻烦,也时甚至会发生找不到文件的现象。对于这个文件夹结构,我们可以大体上分成两个部分,一个是PB 的安装文件夹,一个是CE 文件夹,下面我们就分别来了解一下。先来看PB 的安装文件夹。该文件夹一般装在系统盘的Program FilesWindows CE Platform Builder4.20 文件夹下,文件夹结构如下图所示:在这个文件夹结构中,cec 文件夹是很重要的,它是包组件文件(.CEC 文件)的安放位置,在PB 安装以后这里面包含了很多标准的操作系统组件、设备驱动程序组件、板支持包组件、平台管理组件等,如果用户想要扩展组件的话,只需要把相应的CEC 文件安放在这个文件夹中即可,因此它是系统组件的配置文件所在的文件夹。Utilities 文件夹中包含的是一个有用的工具,通过它可以生成系统的启动盘,从而可以引导我们自己定制的CE 操作系统。这个在下一章中会有集中的应用。Wcetk 文件夹中包含的是另一个有用的工具,通过它可以测试CE 的性能,有由我没有用过这项,所以更多的功能我也不是很清楚。接下来我们看一下CE 的文件夹,其结构如下图所示:其中PLATFORM 文件夹下存放的是与具体平台相关的程序,当你修改某一平台的内核时就要到具体的平台所在的文件夹下去修改,比如EMULATOR 平台即模拟器的KERNEL 部分,那就要到EMULATOR 的文件夹下改其KERNEL 子文件夹下的源程序。SDK 文件夹包含了PB 在编译时用到的如LINK.exe 等程序,如果我们需要手工编译些什么东西那么可以到这个文件夹下来找相应的工具程序。PUBLIC 文件夹下是各平台要用到的公共的源程序,也是子文件夹最多的一个文件夹,它的结构如下:其中大部分都是系统组件的源程序比如IE、SHELL,如果我们想要修改某个组件的行为就可以到相应的文件夹下去找。用得最多的是其中的COMMON 文件夹,在该文件夹下的SDK 文件夹下的SAMPLES 子文件夹中有一些示范样例程序,比如大键盘的输入法的源程序等,我们可以更改这些源程序。在该文件夹下的OAK 文件夹中的CSP 文件夹为CPU 支持组件,里面的各子文件夹都是针对特定的CPU 的内容,比如针对ARM、I486、SA11X1 等,如果我们需要处理和特定CPU 相关的部分就可以到此文件夹下来操作。在该文件夹下的DRIVERS 文件夹为微软做好的各种典型设备的驱动程序的源程序,比如1394 的驱动、网卡的驱动、串口的驱动等,如果我们想要修改驱动或重新驱动,都可以以这个文件夹下的源程序做参考。说了这么多文件夹结构,那么如此复杂的文件夹结构在编译CE 操作系统的时候是如何组织起来的呢,编译器是如何找到所需要的文件的,又是由谁来告诉编译器如何编译的呢?这些问题的答案就是DIRS 文件和SOURCES 文件,顾名思义,一个是负责连接各级文件夹的,一个是负责编译选项的。DIRS 文件是位于需要编译的文件夹中的一个特殊的文本文件,它指出了要编译的源程序所在的文件夹名。SOURCES 文件是位于源程序文件夹中的一个特殊的文本文件,它包含了一些宏定义,编译程序就是利用这些宏定义作为选项来决定如何编译和链接这些源程序的。四 安装以及构建 Windows CE 平台4.1 所需安装的软件1) Visual Studio 20052) Visual Studio 2005 Service Pack 13) MSDN(可选)4) Windows Embedded CE6.05) Windows Embedded CE 6.0 Platform Builder Service Pack 16) Microsoft Device Emulator 2.0(可选)7) Virtual Machine Network Driver for Microsoft Device Emulator(可选)其中3、6、7 项可以不安装,用户可根据实际需要进行选择。安装前检查磁盘空间不要太小,建议不要安装在C 盘。4.2 安装顺序1、先装 Visual Studio 2005。安装程序位于VS2005VSTSvs 目录下,直接双击该目录下setup.exe进行安装。Windows CE 6.0的Platform Builder不像Windows CE 5.0是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成。2、安装 Visual Studio 2005 Service Pack 1这是必须的装的,安装程序位于VS2005VSTSsp1 目录下, 直接双击该目录下VS80sp1-KB926601-X86-ENU.exe进行安装。此补丁对不同的VS2005 版本(Standard / Professional / TemEdition) 都适用。Release Note里面提到SP1提供了Windows Embedded 6.0 platform and tools support。3、安装 MSDN安装程序位于VS2005VSTSmsdn 目录下,直接双击该目录下 setup.exe 进行安装即可。从 VS2005 的安装页里选择。新版的 MSDN 界面功能看起来比较好,但 CE6 的 Product Documentation 里不少细节貌似没写清楚,所以这里建议选上 CE5 的产品文档留着以后作参考。4、安装 Windows Embedded CE 6.0安装程序位于WinCE6.0-AWindows Embedded CE 6.0目录下,直接双击该目录下setup.exe进行安装。在安装过程中,请注意选择安装路径,在选择CPU 类型时,根据您目标硬件平台来选择,考虑节省磁盘空间,建议只选ARMV4I。5. 安装Windows Embedded CE 6.0 Platform Builder Service Pack 1安装程序位于WinCE6.0-BWindows Embedded CE 6.0 Platform Builder Service Pack 1 目录下,直接双击该目录下Windows Embedded CE 6.0 Platform Builder Service Pack 1.msi 进行安装。6. 安装Microsoft Device Emulator 2.0安装程序位于WinCE6.0-BMicrosoft Device Emulator 2.0目录下,直接双击该目录下vs_emulator20.exe进行安装。7. 安装Virtual Machine Network Driver for Microsoft Device Emulator安装程序位于WinCE6.0-BVirtual Machine Network Driver for Microsoft Device Emula
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 葡萄不摘心管理办法
- 2025静脉血栓试题及答案
- 2025年人工智能算法工程师岗位面试预测题及解析
- vip停车卡管理办法
- 2025年初入客服行业面试题与解答指南
- 营养餐食谱管理办法
- 6.2 共筑生命家园(说课稿)-2024-2025学年统编版道德与法治九年级上册
- 锐器伤职业暴露应急预案试题(附答案)
- 2025年慢性病(高血压、糖尿病)培训试题(附答案)
- 手术室实践指南理论考核试题及答案
- 采石场合作协议合同范本
- 工厂临时用电作业方案
- 大学实验室物资管理办法
- 钻井液培训课件
- 外包特殊过程管理办法
- 朋友圈点赞活动方案
- 2026年中考道德与法治一轮复习:重点考点知识分类背诵提纲
- 劳动防护用品穿戴使用标准培训
- 实验室危险化学品安全培训
- 无人机测绘中职教学计划
- 2025至2030中国水电工程监理行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论