初试 Windows XP Embedded 系统开发1

时间:2021-12-29 09:51:34

目前 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 XP Embedded 系统开发1 初试 Windows XP Embedded 系统开发1

  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 XP Embedded 系统开发1

三、安装 Windows Embedded Standard 2009

  1、安装前首先下载安装 SQL Server 2005 Express Edition 中文版
  SQL Server 是必须的组件,它用来保存系统的组件数据库,在进行系统开发的时候调用数据库来进行配置。Windows Embedded Standard 光盘中虽然已经带有英文版的 SQL Server,但为了方便阅读和配置,推荐下载中文版(下载地址)。

初试 Windows XP Embedded 系统开发1

  2、开始安装 Windows Embedded Standard
  放入 Windows Embedded Standard 光盘,自动运行 Setup.exe 程序。左边的 Prepair 是安装前的准备,用户也可以先点击 Review the Installation Guide 来详细阅读安装向导。选择左边的“Install”进行安装。

初试 Windows XP Embedded 系统开发1

  接下来的画面将会提示用户输入产品序列号,试用版本的用户可以输入 Q4C4J-YQD84-CRVXB-B4JVW-WKP3Y 进行安装。

  点击 Next 来到下一步,进行安装组件的选择,IE7 With Media Player 11 是最新的组件,一般选择安装,MUI 是多语言用户界面,一般选择常用的 Chinese Simplified(简体中文)和 Chinese Traditional(繁体中文)或者 Japanese (日本语);Remote Boot Serivce 是远程启动组件,适用于无盘工作站和从网络启动。

初试 Windows XP Embedded 系统开发1

  点击 Next 将显示出将要被安装到电脑里的组件。

初试 Windows XP Embedded 系统开发1

  点击 Install 后,安装程序进行安装,接下来用户须要做的就是漫长的等待。在安装过程中 CPU 的占用率不高,但会消耗大量的内存,内存使用峰值将达到 1300MB 左右。安装完成后占用的总硬盘空间为 6GB。

四、初试 Windows Embedded Standard 开发

  安装完成后的程序会在开始菜单生成如下的快捷方式,除了 Documentation 里的两个帮助文档外,Component Designer 是组件设计器,用户可以用这个工具设计自定义的组件;Component Database Manager 是组件数据库管理器,用户可以使用这个工具将已经设计好的自定义组件导入组件数据库中,也可以对原有的组件数据进行管理;Target Designer 是主要的设计开发工具,一个完整的嵌入式系统将由它来生成。

初试 Windows XP Embedded 系统开发1

  开发一个 Windows XP Enbedded 的过程如下:建立一个新配置——添加组件——设置组件属性——组件依赖性检查——生成镜像。

  在开始菜单中打开 Target Designer,首先要新建一个配置(Configuration):点击工具栏上的“新建”按钮,输入一个自定义的配置名(Configuration Name),比如“初试系统”。设计窗口的左侧是组件浏览器,分为硬件(Hardware)、软件(Software)、设计模板(Design Template)和 Embedded 系统特有的功能(Embedded Enabling Features),共 12018 个组件。用户可以彩用拖拽的方式来添加组件。右侧可以设置组件的属性。

初试 Windows XP Embedded 系统开发1

  第一次使用,尝试创造一个没有任何组件的系统,来熟悉一下 Target Designer 的使用方法。直接按下工具栏上的 Check Dependencies 按钮或者按 F5 键,系统进行组件的依赖性检查,发现了一个错误:Base Conponent requires an addtitional enabled component not in the configuration(基本组件所需的一个额外的组件没有在配置里)。

初试 Windows XP Embedded 系统开发1

  点击 Close 关闭后,错误将在输出栏里被显示出来。右击错误项选择 Action 来处理错误,在弹出的窗口里列出了缺少的组件,选择一个 ACPI Uniprocessor PC,最后点击 Add 按钮添加。注意,列出来的组件并不能全部添加,否则会产生冲突,比如 ACPI Multiprocessor PC 和 ACPI Uniprocessor PC 二者就只能选择其一。当然,这些冲突在进行依赖性检查的时候都会被提示错误。

初试 Windows XP Embedded 系统开发1

 再次进行依赖性检查,仍然会发现有三个错误,照前面的方法一一进行处理,直到依赖性检查没有再出现错误为止。 在 Windows 系统里,组件依赖于另一个组件的情况是非常常见的,相依赖的组件必须添加完整。就比如系统里的服务,一些服务必须领依赖于另一个服务于能运行,Remote Procedure Call(RPC)服务是核心服务,它被依赖的情况是最多的。

初试 Windows XP Embedded 系统开发1

  经过数次的依赖性检查和组件添加,解决了所有的错误后,一个最精简的系统就已经基本形成了,组件的总数量为98 个(某些组件在进行依赖性检查的时候自动被添加),总大小约为105 MB。点击工具栏上的Save 按钮保存配置为一个后缀为SLX 的文件,比如Creatives.sld。

初试 Windows XP Embedded 系统开发1

  接下来要做的是要为系统添加必要的驱动程序组件。在Windows Embedded Standard 的安装路径C:\Program Files\Windows Embedded\Utilities 文件夹里有几个小工具,其中 tap.exe 是目标机器分析工具,双击运行就会自动对机器进行分析,分析的结果保存在一个devices.pmq 文件里。注意:假如生成后的 Windows XP Embedded 系统不是在本机上运行,则应该把 tap.exe 文件复制到将来运行 Windows XP Embedded 的机器上进行分析。

初试 Windows XP Embedded 系统开发1

  运行开始菜单里的Component Designer,点击File 菜单选择Import 来导入刚才生成的devices.pmq 文件,这里须要耐心地等待一小段时间。

初试 Windows XP Embedded 系统开发1

  完成导入后,点击工具栏上的Save 按钮将组件保存成一个后缀为SLD 的文件,比如Creatives.sld。单击Tools 菜单选择Component Database Manager 打开组件数据库管理器,点击Import 按钮将Creatives.sld 导入数据库。

初试 Windows XP Embedded 系统开发1

  再次Target Designer 打开配置文件,这时左侧的组件浏览器里可以看到刚才已经添加进组件数据库里的Devices 组件。把Devices 组件添加进配置文件。至此,一个完整的系统就开发完成了。

  最后就是生成系统镜像了。点击工具栏上的Build Image 或者按F7 键,在弹出对话框的Destination 中选择输出文件的路径,点击Build 按钮。过程完成后,生成了引导文件(NTLDR、boot.ini、NTDETECT)和 Windows 目录。

初试 Windows XP Embedded 系统开发1

五、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/主引导扇区)。

初试 Windows XP Embedded 系统开发1

  主引导扇区设置完成后,将刚才生成镜像时产生的所有文件直接复制到虚拟机C 根目录里,重新启动虚拟机,由虚拟机的硬盘进行引导。如果引导成功,WindowsXP 的启动画面将呈现。在第一次启动时,WindowsXP Embedded 将会执行FBA (First BootAgent/初次启动代理),它的功能是执一系列组件的安装和注册、设置等,可以看作是相当简化了的系统安装过程。随着FBA 的一系列任务执行完成,WindowsEmbedded Standard 登录窗口终于出现了。

初试 Windows XP Embedded 系统开发1初试 Windows XP Embedded 系统开发1初试 Windows XP Embedded 系统开发1

  使用用户Administrator 登录进去后,用户会发现这个系统有一个核心在在运行,但是却是什么界面、程序也没有的,因为很多实用的组件还没有被添加。12018个组件具体是哪些功能呢,全部弄清楚就要花上一定的时间了。

嵌入式系统是由许多组件组成的,其开发的过程就是要根据实际需要来进行组件的定制,所以就必须清楚地认识每一个系统的组件和功能。在上一篇文章里,简单地介绍了 WindowsEmbedded Standard,包括:WindowsEmbedded Standard 的下载和安装过程以及用Windows Embedded Studio 的几个工具生成了一个精简的Windows XP Embedded 并在VMware Workstation 上试机成功。接下来要制认识一下系统里的组件。

五、Windows Embedded Standard 的常用组件及说明

  组件位置:Software\System\Accessibility\Applications
    Accessibility Control Panel:辅助功能选项控制面板
    Accessibility Wizard:辅助功能向导(附件—辅助工具—辅助功能向导)
    Magnifier:放大镜(附件—辅助工具—放大镜)
    On-screen Keyboard:屏幕键盘(附件—辅助工具—屏幕键盘)
    Serial Input Support:序列输入支持
    Utility Manager:辅助工具管理器(附件—辅助工具—辅助工具管理器)
  组件位置:Software\System\Accessibility\Infrastructure
    Accessibility Core:辅助功能核心
  组件位置:Software\System\management\Applications
    Alerter Services:警告服务(系统服务)
    Driver Query:驱动程序访问(显示和访问、设置设备驱动程序的属性)
    Error Reporting:错误报告(系统服务)
    Event Log:事件记录日志(系统服务)
    EWF Manager Console Application:EWF管理器控制台程序
    Microsoft Management Console(MMC):管理控制台
    Microsoft Management Console .NET 2.0 Plugin Extension:管理控制台 .NET 扩展
    MS Config Support Utility:系统配置实用程序
    Power Management Application:电源管理程序(控制面板—电源选项)
    Remote Assistance Channel:远程助手通道
    Save Dump:保存转储信息
    System Restore User Interface:系统还原用户界面
    Telnet Client/Server/Server Administration:远程登录客户端/服务器端/服务器端管理
    Windows Installer Serivce:Windows安装服务
    Windows Update Agent:Windows 更新代理
    Windows Update for Device Drivers:Windows驱动程序更新
    WMI Command Line Utility:WMI命令行工具
  组件位置:Software\System\Management\Infrastructure
    Device Update Agent:驱动程序更新代理
    Group Policy Client Core:组策略客户端核心
    Group Policy Core - Support File:组策略核心 - 支持文件
    Group Policy Core Administration MMC Snap-In:组策略核心管理 MMC 插件
    Group Policy Refresh Utility:组策略刷新工具
    Local Profile Core:本地配置文件核心
    Netmeeting:互联网视频会议
    Remote HTTP Client:远程HTTP 客户端
    Software Installation Group Policy Extension:软件安装组策略扩展
    Software Installation Group Policy MMC Snap-In:软件安装组策略 MMC 插件
    System Restore Core:系统还原核心
    Windows Management Instrumentation Technologies:WMI技术
    Windows Update Agent:Windows 更新代理
    Windows Update for Device Drivers:Windows驱动程序更新
    WMI Core:WMI 核心
  组件位置:Software\System\International
    Regional and Lanuage Options:区域和语言选项(控制面板—区域和语言选项)
  组件位置:Software\System\International\Applications
    Full Screen Graphics Mode:全屏幕图形模式
  组件位置:Software\System\International\Infrastructure
    Chinese - Simplified Language Support:简体中文语言支持
    Chinese - Traditional Language Support:繁体中文语言支持
    Code Page xxxx:代码页
    English Language Support:英语语言支持
    Japanese Language Support:日语语言支持
    Keyboard:区域键盘
    NLS:Core Files:国家语言支持核心文件
    NLS:Time Zones:时区
    User Locale:用户区域
  组件位置:Software\System\Multimedia & Graphics
    Analog Television Support:模拟电视支持
    Digital TV Support:数字电视支持
    Digital Video Recording:数字视频录制
    DirectX 9.0c:DirectX 组件
    DVD Playback:DVD 回放
    Kernel Audio Support:核心音频支持
    Legacy and Play and Play Audio Support:传统及即插即用音频支持
    Primitive:wmvcore2:WMV 核心组件
    Stream Buffer Engine:流媒体缓冲引擎
    Windows Media Player(light):WindowsMedia Player 简化版
    Windows Media Player Technologies:WMP技术
  组件位置:Software\System\Multimedia & Graphics\Applications
    Audio Control Panel:音频控制面板(控制面板—声音和音频设备)
    DirectX Diagnostic Utility:DirectX诊断工具
    Media Files:媒体文件
    Shockwave Flash:FLASH SWF 文件支持
    Sound Recorder:录音机(附件—娱乐—录音机)
    Windows Media Format Runtime 11:WindowsMedia 11 运行期
    Windows Media Player 11:WindowsMedia Player 11.0
    Windows Media Player 11 Playlists:WMP11 播放列表
    Windows Media Player 11 Skins:WMP11 皮肤
    Windows Media Player 6.4:WindowsMedia Player 6.4
    Windows Movie Maker:Windows Movie Maker 2.6
    XP Sound Scheme:XP 声音方案
  组件位置:Software\System\Multimedia & Graphics\Infrastructure
    1394 AV/C Protocol Provider:1394AV/C 协议提供
    Acm Core Codecs:ACM 核心编码
    Analog TV:模拟电视
    Audio/Video Core:音频/视频核心
    Audio Volume Control:音量控制(附件—娱乐—音量控制)
    Digital TV:数字电视
    Microsoft Audio Compression Manager(MME Core):音频压缩管理器
    Multimedia Application Compatibility:多媒体应用程序兼容性
    OpenGL Support:OpenGL 支持
    Stream Buffer Engine:流媒体缓冲引擎
    Teletext Decoding:电视广播解码
    Video For Windows Core:VFW核心
    Windows Imaging Component(WIC):Windows 映像组件