目前 Windows PE(Preinstallation Environment)和 Windows XP Embedded 是可以脱离主机里的硬盘独立运行的 Windows 操作系统,Windows PE 多用于光盘启动,Windows Embedded 从 Feature Pack 2007 之后已经支持从 USB 设备(移动硬盘、Flash U 盘)运行。
从基础开始,菜鸟也可以开发出一个在 USB 移动硬盘上运行的操作系统。
一、Windows Embedded 开发资源简介
Windows Embedded 是微软针对嵌入式领域推出的操作系统,目前主要包括三大产品:Windows Embedded CE、XP Embedded 和 .NET Micro Framework 等。
1、Windows Embedded CE:Windows CE 主要应用于手持设备、机顶盒、GPS 和移动播放器等嵌入式设备中。它可以适应多种 CPU,比如 ARM、MIPS、SH4、x86 等等。目前手机上流行的 Windows Mobile 智能系统也是基于 Windows Embedded CE 开发出来的操作系统平台。
2、Windows XP Embedded:Windows XP Embedded 是基于 Windows XP Professional 的组件化操作系统,适应嵌入式设备对不同功能及存储空间的要求。XP Embedded 只能运行在 x86 的 CPU 平台上,能够和 Windows 应用程序做到完全兼容。主要用于 ATM(Automatic Teller Machine)、POS(Point Of Sales)、电子信息亭等设备。Windows Embedded for Point of Service 是在 XP Embedded 的基础上开发的专门针对POS系统的操作系统,无需复杂的定制就可以直接应用于 POS 系统中。
3、.NET Micro Framework:应用于便携式的个人数字化产品中的 .NET 平台,允许 .NET 托管代码运行在 ARM 等嵌入式平台上。
4、Microsoft Robotics Studio:微软针对机器人领域开发的控制系统和开发工具, 可以使用可视化编程语言(Visual Programming Language/VPL)或者 .NET 托管语言来编写机器人的控制指令。可以支持多种不同的机器人硬件平台。
二、如何获得 Windows Embedded Standard 2009 试用版本
Windows Embedded Standard 取代了原来的 Windows XP Embedded,新版本的 Windows Embedded Standard 已经包括了 Service Pack 3 补丁包,同时加入了许多新组件:比如 Silverlight 1.0(目前 2.0 的正式版本已经发布,估计到正式版时会包含新版)、Internet Explorer 7.0(目前 Internet Explorer 8 仍处于 Beta2 阶段)、Windows Media Player 11、Remote Desktop Protocol 6.1、.NET Framework 3.0(目前 .NET Framework 的最新版本为 3.5)等等。
在微软的官方网站可以下载到 Windows Embedded Standard 2009 Evaluation Edition(试用版本),试用的时间为 120 天。整个系统分成了七个压缩包(点此打开下载页面),刚好一张 DVD-5 大小(4.3GB),下载后运行 WES2009Eval.par1.exe 自动进行解压,并将解压缩后的 WES2009Eval.iso 镜像文件刻盘或者虚拟成光盘进行安装。
三、安装 Windows Embedded Standard 2009
1、安装前首先下载安装 SQL Server 2005 Express Edition 中文版
SQL Server 是必须的组件,它用来保存系统的组件数据库,在进行系统开发的时候调用数据库来进行配置。Windows Embedded Standard 光盘中虽然已经带有英文版的 SQL Server,但为了方便阅读和配置,推荐下载中文版(下载地址)。
2、开始安装 Windows Embedded Standard
放入 Windows Embedded Standard 光盘,自动运行 Setup.exe 程序。左边的 Prepair 是安装前的准备,用户也可以先点击 Review the Installation Guide 来详细阅读安装向导。选择左边的“Install”进行安装。
接下来的画面将会提示用户输入产品序列号,试用版本的用户可以输入 Q4C4J-YQD84-CRVXB-B4JVW-WKP3Y 进行安装。
点击 Next 来到下一步,进行安装组件的选择,IE7 With Media Player 11 是最新的组件,一般选择安装,MUI 是多语言用户界面,一般选择常用的 Chinese Simplified(简体中文)和 Chinese Traditional(繁体中文)或者 Japanese (日本语);Remote Boot Serivce 是远程启动组件,适用于无盘工作站和从网络启动。
点击 Next 将显示出将要被安装到电脑里的组件。
点击 Install 后,安装程序进行安装,接下来用户须要做的就是漫长的等待。在安装过程中 CPU 的占用率不高,但会消耗大量的内存,内存使用峰值将达到 1300MB 左右。安装完成后占用的总硬盘空间为 6GB。
四、初试 Windows Embedded Standard 开发
安装完成后的程序会在开始菜单生成如下的快捷方式,除了 Documentation 里的两个帮助文档外,Component Designer 是组件设计器,用户可以用这个工具设计自定义的组件;Component Database Manager 是组件数据库管理器,用户可以使用这个工具将已经设计好的自定义组件导入组件数据库中,也可以对原有的组件数据进行管理;Target Designer 是主要的设计开发工具,一个完整的嵌入式系统将由它来生成。
开发一个 Windows XP Enbedded 的过程如下:建立一个新配置——添加组件——设置组件属性——组件依赖性检查——生成镜像。
在开始菜单中打开 Target Designer,首先要新建一个配置(Configuration):点击工具栏上的“新建”按钮,输入一个自定义的配置名(Configuration Name),比如“初试系统”。设计窗口的左侧是组件浏览器,分为硬件(Hardware)、软件(Software)、设计模板(Design Template)和 Embedded 系统特有的功能(Embedded Enabling Features),共 12018 个组件。用户可以彩用拖拽的方式来添加组件。右侧可以设置组件的属性。
第一次使用,尝试创造一个没有任何组件的系统,来熟悉一下 Target Designer 的使用方法。直接按下工具栏上的 Check Dependencies 按钮或者按 F5 键,系统进行组件的依赖性检查,发现了一个错误:Base Conponent requires an addtitional enabled component not in the configuration(基本组件所需的一个额外的组件没有在配置里)。
点击 Close 关闭后,错误将在输出栏里被显示出来。右击错误项选择 Action 来处理错误,在弹出的窗口里列出了缺少的组件,选择一个 ACPI Uniprocessor PC,最后点击 Add 按钮添加。注意,列出来的组件并不能全部添加,否则会产生冲突,比如 ACPI Multiprocessor PC 和 ACPI Uniprocessor PC 二者就只能选择其一。当然,这些冲突在进行依赖性检查的时候都会被提示错误。
再次进行依赖性检查,仍然会发现有三个错误,照前面的方法一一进行处理,直到依赖性检查没有再出现错误为止。 在 Windows 系统里,组件依赖于另一个组件的情况是非常常见的,相依赖的组件必须添加完整。就比如系统里的服务,一些服务必须领依赖于另一个服务于能运行,Remote Procedure Call(RPC)服务是核心服务,它被依赖的情况是最多的。
经过数次的依赖性检查和组件添加,解决了所有的错误后,一个最精简的系统就已经基本形成了,组件的总数量为98 个(某些组件在进行依赖性检查的时候自动被添加),总大小约为105 MB。点击工具栏上的Save 按钮保存配置为一个后缀为SLX 的文件,比如Creatives.sld。
接下来要做的是要为系统添加必要的驱动程序组件。在Windows Embedded Standard 的安装路径C:\Program Files\Windows Embedded\Utilities 文件夹里有几个小工具,其中 tap.exe 是目标机器分析工具,双击运行就会自动对机器进行分析,分析的结果保存在一个devices.pmq 文件里。注意:假如生成后的 Windows XP Embedded 系统不是在本机上运行,则应该把 tap.exe 文件复制到将来运行 Windows XP Embedded 的机器上进行分析。
运行开始菜单里的Component Designer,点击File 菜单选择Import 来导入刚才生成的devices.pmq 文件,这里须要耐心地等待一小段时间。
完成导入后,点击工具栏上的Save 按钮将组件保存成一个后缀为SLD 的文件,比如Creatives.sld。单击Tools 菜单选择Component Database Manager 打开组件数据库管理器,点击Import 按钮将Creatives.sld 导入数据库。
再次Target Designer 打开配置文件,这时左侧的组件浏览器里可以看到刚才已经添加进组件数据库里的Devices 组件。把Devices 组件添加进配置文件。至此,一个完整的系统就开发完成了。
最后就是生成系统镜像了。点击工具栏上的Build Image 或者按F7 键,在弹出对话框的Destination 中选择输出文件的路径,点击Build 按钮。过程完成后,生成了引导文件(NTLDR、boot.ini、NTDETECT)和 Windows 目录。
五、Windows XP Embedded 系统上机试验
开发好了系统,当然要上机试验了,图个方便,选择了VMware Workstation 虚拟机进行,版本为6.0.3.80004。设置好虚拟机后,用光盘启动虚拟机到DOS 环境,将虚拟机的硬盘格式化并设置活动分区(引导分区)。
WindowsEmbedded Standard 带有一个BOOTPREP.EXE 的工具(安装在C:\Program files\Windows Embedded\Utilities 文件夹),将它复制到虚拟机的 C 盘上运行,它可以自动为 Windows XP Embedded 设置 MBR(MasterBoot Record/主引导扇区)。
主引导扇区设置完成后,将刚才生成镜像时产生的所有文件直接复制到虚拟机C 根目录里,重新启动虚拟机,由虚拟机的硬盘进行引导。如果引导成功,WindowsXP 的启动画面将呈现。在第一次启动时,WindowsXP Embedded 将会执行FBA (First BootAgent/初次启动代理),它的功能是执一系列组件的安装和注册、设置等,可以看作是相当简化了的系统安装过程。随着FBA 的一系列任务执行完成,WindowsEmbedded Standard 登录窗口终于出现了。
使用用户Administrator 登录进去后,用户会发现这个系统有一个核心在在运行,但是却是什么界面、程序也没有的,因为很多实用的组件还没有被添加。12018个组件具体是哪些功能呢,全部弄清楚就要花上一定的时间了。
嵌入式系统是由许多组件组成的,其开发的过程就是要根据实际需要来进行组件的定制,所以就必须清楚地认识每一个系统的组件和功能。在上一篇文章里,简单地介绍了 WindowsEmbedded Standard,包括:WindowsEmbedded Standard 的下载和安装过程以及用Windows Embedded Studio 的几个工具生成了一个精简的Windows XP Embedded 并在VMware Workstation 上试机成功。接下来要制认识一下系统里的组件。
五、Windows Embedded Standard 的常用组件及说明