随笔-20  评论-13  文章-23  trackbacks-0
Windows XP Embedded


目录

概述 ……………………………………………………………………. 3
配置开发工作站 ………………………………………………………. 3
硬件平台分析 ………………………………………………………… .4
保存硬件平台信息………………………………………………….... 5
创建初始化配置 ………………………………………………………. 7
创建XPE组件 ……………………………………………………… ...11
构造XPE系统影像文件 ……………………………………………12
构造及测试运行时IMAGE ………………………………………… 17



概述
对于一种开发工具的学习,最重要也最困难的阶段就是概念的建立,只要建立了正确的概念,明白整个系统的体系结构和各种工具作用,剩下的工作就是实际操作,积累经验了,最多不过在需要的时候查一查手册。
本文通过指导读者进行实际操作,一步步地完成一次完整的开发工作,从而帮助读者建立一个清晰明确的概念。

因为我们开发的产品不是普通的软件,而是专用的操作系统,所以需要针对某个特定的硬件平台(目标机)来进行开发;首先需要一个强大的工作站来运行开发环境和开发工具,然后根据目标机硬件配置和软件需求进行开发,开发完成后将做好的操作系统影象文件(Image)与目标机硬件结合,运行系统并测试。


配置开发工作站
首先介绍开发用的工作站,一台标准PC机,硬件配置要求如下:
l l 操作系统Windows XP Professional
l l PIII 500MHz 以上(建议1GHz以上)
l l 256MB 内存 (建议512MB)
l l 3GB 剩余硬盘空间

对该PC机的配置如下:
l l 将硬盘设置两个分区
l l 第二个分区分配为700MB,可以是FAT32格式或NTFS格式(这个分区将包含可启动的Windows XP Embedded Image)
l l 主分区使用所有剩余的硬盘空间,可以设置为FAT32格式或者NTFS格式
l l 在主分区中安装Windows XP Professional系统,并安装Windows XP Embedded 开发工具

修改BOOT.ini文件,将下面的代码部分增加到该文件中,可以使这台PC机双重启动,作为开发用的Windows XP Professional系统从分区一启动,而开发好的Windows XP Embedded Image从分区二启动。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)Windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)Windows="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)Windows="Microsoft Windows XP Embeddedd" /fastdetect

安装Windows XP Embedded开发工具
将Windows XP Embedded开发包的CD1放入CD-ROM中,在自动运行的提示中, 按照以下顺序安装XPE开发工具:
l l Tools Setup:安装XPE开发工具(包括Target Designer, Component Designer, Component Database Manager, 以及其他工具)
l l Database Engine Setup: 安装SQL Server 2000 Desktop Edition database engine (MSDE)
l l Database Setup: 安装组件数据库及Repositories

开发工作站的其他配置
在C盘新建一个XPE_Demo目录,用来放置开发中生成的配置定义文件和组件定义文件。
从CD-ROM上安装TweakUI示例文件到C:Program FilesTweakUI。
这样我们就完成了开发工作站的准备工作。


硬件平台分析
在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。
操作系统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。由于X86结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此,微软提供了一个硬件分析工具来帮助开发者分析硬件。
Windows XP Embedded提供的这个工具叫Target Analyzer,可以自动分析所在设备的硬件信息,Target Analyzer有两个版本:TA.exe和TAP.exe。分析完成后会在同一个目录中产生一个XML格式的输出文件Devices.pmq。
TAP.exe是一个32位的应用程序,运行在Windows XP和Windows 2000上,可以运行一些高级的硬件检测。
TA.exe是一个16位应用程序,运行在DOS上,可以用来检测一些无法安装Windows 2000及Windows XP的系统,但检测的功能要差一些,有的硬件设备无法识别。

下面我们运行TAP.exe来检测这台开发机的硬件配置:
· 进入C:Program FilesWindows EmbeddedUtilities目录
· 运行TAP.exe,会在同目录中生成Devices.pmq
用文本编辑器打开这个Device.pmq文件,文件中用XML语言描述了目标设备的硬件信息,例如:在PCI段中,描述了Intel的21440 Ethernet 控制器。

因为我们是在开发工作站上运行了这个程序,所以Devices.pmq中包含的是开发工作站的硬件信息。


保存硬件平台信息
使用Devices.pmq中的信息有两个办法,其一可以根据这个文件生成一个
XPE组件,为以后开发完整的操作系统作准备;其二可以在开发时将这个文件直接导入;将PMQ文件做成XPE组件的好处是,可以一次工作反复使用:做成XPE组件后保存到组件数据库中,以后每次开发系统都可以调用。
l l 运行组件设计器 Component Designer
l l 将刚才生成的Devices.pmq文件导入,选择File/Impot… ,弹出导入对话框
l l 按下“Start”按钮,开始PMQ文件的导入过程,该过程大约耗时10分钟;完成后,会在Component Designer中显示一个‘Devices.sld’组件,将其改名为‘Demo Platform Component’
l l 展开Component Designer中目录结构
Windows XP Embedded Client
Components
Devices
选中Devices,将组件的Name属性由‘Devices’改为‘Demo Platform Component’


你可以将该组件设为‘Selector Prototype Component’类型,成为该类型的组件后,可以在Target Designer中单独地选取该组件所关联的各个设备:
l l 在Prototype栏中按下Browse…,弹出Select Prototype Component对话框。
l l 在Prototype component source栏中选中Database选项。
l l 在组件树列表中展开到Software/Test&Developnent,选中Selector Prototype Component组件。
l l 按下OK确定。



选择File/Save as菜单将该配置保存为“C:XPE_DemoDemoPlatform.SLD” 这个SLD文件中就包含了前面开发的Demo Platform Component组件,关闭Component Designer。
1. 2. 要在Target Designer中使用这个组件,需要先把这个组件保存到组件数据库中:
· · 打开Component Database Manager,开始菜单所有程序Microsoft Windows Embedded StudioComponent Database Manager
· · 点击‘Import’按钮,在SLD File:栏中按下浏览按钮,找到“C:XPE_DemoDemoPlatform.SLD”,点击Import。
· · Import成功后,关闭Component Database Manager。
· · 确认工作成果:
打开Target Designer,选择 File/New菜单,建立一个新的配置Configuration,确认Demo Platform Component 是否在Target Designer左侧的组件浏览器中,如果发现该组件,则说明刚才的硬件分析工作顺利完成了。


创建初始化配置
要构造一个完整的XPE系统,首先需要在Target Designer中创建一个配置(Configuration),这个配置仅仅是一个空的开发框架,然后在该配置中添加所有的硬件支持组件,系统内核组件和软件功能组件。添加完成后使用Target Designer自动检测组件的关联关系,并自动把缺少的组件添加到配置中。
· 首先运行Target Designer
· 选择File菜单
· 选择New,创建一个新的Windows XP Embedded 配置
· 将该配置的Name 改为DemoPlatform
在下面的Choose Platform中,选择Windows XP Embedded Client (x86)


按下OK按钮创建该配置并保存
在Target Designer中间的组件列表栏中,选中DemoPlatform.slx,在右边的属性栏中修改配置的属性,添入您的个人信息(Name, Owner, Author, Description等)


设置高级参数
下面设置一些整个系统运行需要的参数
在配置浏览器的顶端,展开DemoPlatform.slx,选中Settings,这时右边的属性设置面板会显示可以设置的选项


在Target Devices Settings下面,点击Show,显示详细的选项
设置下列的配置信息:
l l Boot Drive = C:
l l Windows Folder = D:Windows
l l Program Files Folder = D:Program Files
l l Documents and Settings folder = D:Documents and Settings
l l Boot ARC path = multi(0)disk(0)rdisk(0)partition(2)
l l Boot Partition Size (MB) = 700
设置完成后,将配置信息保存到C:XPE_Demo 目录。
创建XPE组件
通常每一个嵌入式设备都会运行一个或多个用户自己的应用程序,另外如果使用了非通用的硬件设备,还需要添加相应的驱动程序;怎样把这些相对独立于操作系统的部分集成到操作系统中来,使其成为一个整体?推荐的方法是,将各个独立的部分做成XPE组件,在开发阶段进行集成;通常该工作可以分成五个阶段:
l l 确定组件使用的资源以及设置
l l 在Component Designer中配置组件的资源和设置选项
l l 创建一个Repository,将该组件使用的文件加入到该Repository中
l l 保存该组件的配置信息
l l 将该组件导入到Component Database Manager中

下面我们就以一个实际的例子来说明,为TweakUI Control Panel
程序创建一个XPE组件。
· · 打开Component Designer。
· · 选择FileImport菜单,将浏览的文件类型设置为Setup Information Files(*.inf)
· · 选择“C:Program FilesTweakUITweakUI.inf”,并将其导入,Component Designer可以根据TweakUI.inf中的信息,自动生成一个组件。
· · 需要为这个组件添加一个Repository,这个Repository实际上是一个系统目录,该目录中包含组件所需要的文件,每一个带有文件的组件都会对应一个或多个Repository,打开Component Designer中的Repositories文件夹。


点击右键,在弹出菜单中选择“Add Repository”,新建一个Repository。
在该Repository的Name属性中填入Tweak UI Files
点击Source Path栏中的Browse按钮,找到C:Program FilesTweakUI。


在Component Designer中选中TweakUI.inf组件


在该组件的属性栏中,按下Repository按钮
在弹出的Select Repository对话框中,选择Tweak UI Files项目,确定。


最后,选中tweakui.inf组件,在右边的属性设置面板中将该组件的名字改为Tweak UI Control Panel Applet。
选择File/Save as,保存为"C:XPE_DemoTweakUI.SLD",关闭Component Designer。
到此已经完成了TweakUI组件的创建;同前面创建的硬件信息组件一样,要在Targert Designer中使用这个组件,必须先将其导入到组件数据库中。
打开Component Database Manager,
Import这个TweakUI组件:找到"C:XPE_DemoTweakUI.sld"并导入
导入完成后,关闭Component Database Manager

打开Target Designer
打开刚才创建的配置DemoPlatform
确认Demo Platform Component 组件和Tweak UI Control Panel Applet组件都在Target Designer的组件浏览器中。


与其他组件不同,利用Target Analyzer的输出文件Devices.pmq生成的组件是一个宏组件,宏组件本身不具备什么功能,仅仅是带有与其他组件的关联关系;前面我们开发了一个名为“Demo Platform Component”的宏组件,利用该组件可以方便的为初始化配置添加硬件支持。


构造XPE 系统影像文件
到此我们已经完成的硬件信息的分析并开发了一个硬件信息组件,开发了一个应用程序的组件,另外还建立了初始化的配置。在本节中我们来完成一个完整配置的开发工作。
打开Target Designer
第一个需要添加的组件是由Devices.pmq文件产生的宏组件Demo Platform Component,加入了这个组件,就把硬件信息全部添加到配置中;只要在Target Designer左侧的组件浏览器面板中双击该组件就可以添加该组件到配置中。
在组件浏览器中,找到Demo Platform Component组件,将该组件加入配置中。
如果没有找到该组件,可以在查找栏中输入它的名字进行检索。


在Target Desinger中包含了一万一千多个组件,怎样找到自己需要的组件呢?下面我们来讨论一下组件浏览器中的过滤器。
可以通过过滤的方法找到一个组件或一组相关的组件,Windows XP Embedded开发包内包含的大量组件可以通过过滤器方便地进行查找。
点击在组件浏览器上面的Filter按钮,创建一个新的过滤器
在Filter Manager对话框中,按New按钮
在Name栏填入TweakUI
在过滤规则描述栏中,双击过滤规则“Component Display Name Contains[Sybstring]”,在出现的Filter Editor对话框中,输入TweakK


按下OK关闭过滤编辑器
在Filter Manager中,Avalable Filter List栏中应该显示Tweak
选择Tweak过滤器,并按下Apply Filter按钮


在组件浏览器中,会仅仅显示Tweak UI Control Panel Applet组件
将该组件加入到配置中
将过滤器恢复到All Conponents显示状态,显示所有的组件

下一步,将向配置中添加Design Template组件,这个设计模板组件也是个宏组件,并且与Demo Platform Component 组件非常类似;所谓宏组件是指一个仅仅包含组件关联信息的组件,而没有其他功能。例如可以将与TCP/IP协议有关的20个组件都与一个名为TCP/IP的宏组件关联,通过添加这个TCP/IP宏组件,可以一次添加那20个组件。
向配置中添加组件的方法有很多,可以单个组件逐一添加;可以添加宏组件;也可以通过Target Designer的关联性检查功能自动添加组件。
Windows XP Embedded提供了若干的模板组件,从单一的软件功能如TCP/IP、DerictX8.0到整个系统模板如机顶盒模板、POS机模板都有,可以根据实际应用考虑使用其中一个。
加入Windows-based Terminal Professional组件,这个组件可以在Design Templates文件夹中找到。在配置面板中,扩展这个组件,并选中Settings,右边的属性面板会显示该宏组件中主要的组件模块。

下一步工作是要向配置中添加其他必须的核心组件,在这个例子中,你的文件系统是FAT格式,所以需要添加FAT组件
1. 1. 可以在SoftwareSystemStorage and File SystemsInfrastructureFile Systems路径下找到FAT组件
2. 2. 再加入Fat Format组件,该组件在SoftwareSystemStorage and File SystemsApplications路径下
3. 3. 加入Explore Shell组件,该组件在SoftwareSystemUser InterfaceShells路径下
4. 4. 加入NT Loader组件,该组件在Software|SystemSystem ServicesBase.路径下

最后,进行关联性检查,确保所有的必要组件都已经添加到配置中。
在Configuration菜单中,选择Check Dependencies进行组件关联性检查,所有宏组件的关联组件以及缺少的组件都会自动添加到配置中。

关联性检查结束后,会提示一个错误:
Component: "Regional and Language Options [Version 5.1.2600, R620]" requires at least one additional enabled component not in the configuration.
Target Designer不能通过自动添加组件解决这个错误,因为有多个组件可以选择,所以Target Designer会将可以选择的组件列出,由开发者自己决定添加哪一个组件。
选择Target Designer底部的Tasks栏


双击上面的条目,Target Designer会显示一个提示,要开发者从多个可选的组件中挑选需要的组件。
在本例子中,选择English Language Support组件,按下Add按钮,尽管其他语言也列出了,但并不是必须的。


开始菜单选项
在关联性检查阶段,User Interface Core组件会被自动添加到配置中,因为其他开发者选中的组件需要该组件的支持;如果需要在Image的开始菜单中包含需要的菜单,则要设置该组件的选项。
选择的开始菜单选项:
§ § Show Control Panel on Start Menu
§ § Show My Computer on Start Menu
不要选择的开始菜单项:
§ § Prohibit Access to Hot Keys
§ § Prohibit Access to Control Panel


最后再进行一次关联性检查。


构造及测试运行时IMAGE
在Configuration菜单中,选中Build Target Image… 菜单项,出现Build对话框
在Destination栏中,添入一个保存Image的空目录,例如在C:Windows Embedded Images目录下,建立一个新的空目录Test Configuration


log文件应保存在另外的目录中,不要与Image在同一目录
按下Build按钮,Target Designer会完成Image的构建;完成后,在指定目录下会生成如下的文件和目录集合


如果在运行了关联性检查之后,对配置进行了改变,构建Image时,Target Designer会提示开发者再做一次关联性检查。
构件完成后,会显示如下的提示框:


在上面的例子中,请注意提示No Errors,但有两个Warnings,第一个Warning出现是因为在配置中没有输入PID号码,不输入PID号码构造出来的Image是个限时评估版的;第二个Warning出现是因为Tweak UI 组件被包含进配置,但该组件不是Released版本组件,当然对Image本身没什么影响。
构造完成后,关闭该对话框。

将以上Image文件目录中的目录和文件拷贝到D盘的根目录下,因为文件目录必须和前面配置属性中的设定相匹配,拷贝完成后,得到下面图示的目录:
保存配置信息,选择File菜单的Save菜单项。
关闭Target Designer
重启机器

测试XPE系统
在重启过程中,会提示两个启动选项,运行Windows XP Professional, 或者运行 Windows XP Embedded. 择Windows XP Embedded。
启动选项使用C:Boot.ini控制的,在前面我们已经在Boot.ini中添加了如下段落:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Microsoft Windows XP Embedded" /fastdetect

当XPE正常运行后,可以查看在该系统中是否包含了我们需要的功能,以此来检验我们的工作。
打开Control Panel,查看其中是否包含了Tweak UI Control Applet选项。


运行Tweak UI控制面板程序,可以看到下面的对话框:


到此,我们完成了整个开发过程。


---------------------------------------------------------------------------

供稿人:Microsoft公司,Jon Fincher

虽然将Windows XP Embedded运行时程序部署到相关设备可能只是举手之劳,但我们仍在此为您准备了几则有助于避免缺陷的提示信息。为明确起见,我会用“部署镜像”这个说法指代将运行时镜像转移到目标设备并在该设备上引导运行时程序;与此同时,为简便起见,我还会将一块标准集成设备电路(IDE)硬盘作为引导介质。在执行镜像部署任务时,您应牢记以下事项。

您应围绕一些简单事项展开自查:

确认系统引导分区已被格式化为FAT或FAT32。
确认系统引导分区已被设定为活动状态(使用FDISK进行检测或修改)。
确认系统引导分区(通常为C:或第一块硬盘的第一个分区)具备有效的Windows XP引导扇区。
确认系统引导分区具备足够的Windows XP引导文件(它们是NTLDR、NTDETECT.COM和BOOT.INI)。
确认BOOT.INI文件具有指向系统文件位置的正确ARC路径。
确认系统文件以正确形式处于适当位置。
确认配置掌握文件存取位置。
确认系统包含为引导提供支持所必需的驱动程序。
前两项自查要求相对简单一些,但却有可能导致某些始料未及的问题。

您可将一个有效的Windows XP引导扇区设置在使用Windows XP Embedded Beta 2所配备之BOOTPREP.EXE工具的引导盘上。BOOTPREP.EXE工具位于Program FilesWindows Embeddedutilities文件夹--如果这个工具不在上述位置,则请使用“添加/删除程序”对“Windows XP Embedded客户端工具安装”设置进行修改,并选择“引导准备”工具。这个工具还配有一个自述文件,您可从中了解全部使用方法和某些具体使用情境。

如果您没有在编译过程中指定正确的引导ARC路径,那么,BOOT.INI就无法获得通往系统的适当路径。我并不想在此重复有关ARC路径设置的信息--如需获取关于正确创建ARC路径的更多信息资料,敬请查询Microsft知识库或MSDN?。

显然,如果ARC路径设置正确,那么,系统文件最好也位于这个路径当中--而需要您确保不会发生的则是长文件名(LFN)被转换为DOS 8.3文件名。由Microsoft及第三方提供的相关工具可帮助您在使用无法支持长文件名的操作系统执行文件复制时防止出现长文件名。最有效的复制方法就是将嵌入式系统安装于开发设备,并将相关文件复制到本机Windows 2000或Windows XP操作系统之中。不仅如此,您还可通过网络系统实现系统文件复制。当然,某些第三方工具将可在使用软盘引导的设备上实现LFN网络复制。

毋庸置疑,您必须确保系统文件具备可为引导提供支持的适当组件。对此加以保障的最简单方法就是利用TAP.EXE查找您计算机上的HW。当然,如果您必须运行TA.EXE或以手工方式添加所需组件,那么,就有可能遗漏较为关键的组件。虽然不同计算机设备的基本组件列表也不尽相同,但您至少应配备BIOS组件(例如标准PC--详见“Hardware:Computers in Target Designer”)、IDE控制器(设备专用)、主IDE信道和从IDE信道组件以及磁盘驱动组件。最后一项必备组件比较微妙,这主要是因为Windows XP Embedded数据库中存在三个磁盘驱动组件。为此,请对每个组件的“属性”分别进行查看,并关注“高级属性”设置。您所需要的是“cmiPnPDevID”属性被赋值为“GenDisk”的那个组件

您还应确保将配置中的目标驱动器属性设定为指向正确位置的状态。请选取相关配置(配置编辑器树状结构中的顶节点),并在详细资料窗格中点击“高级”。应对以下四个属性进行设置:

cmiTargetBootDrive 系统将从何处开始引导(C:)
cmiTargetWinDir Windows文件夹所处位置
cmiTargetProgramFiles Program Files文件夹所处位置
cmiTargetDocsAndSettings Documents and Setting文件夹所处位置

如果以上属性在镜像生成前得到正确设置,那么,您将会在首次引导代理(FBA)序列中遭遇引导问题。

如果您从某一分区开始引导(比方说C:),却从另一分区(比方说D:)运行系统,那么,即使根目录包含了基本引导文件,基于开发设备的运行时程序镜像仍会拥有一个包含系统文件的DriveD文件夹。为此,请确认上述文件夹内容已被复制到正确的驱动器。

显然,这种方法未必能解决所有引导问题,但逐一落实上述事项却可帮助您更加迅速地排解系统引导问题。

----------------------------------------------------------------------------------------------------------------------
如果您试图降低运行时程序的内存占用量,则可尝试下列方法:

禁用页面文件支持。如果您拥有足够的RAM为希望用户运行的服务提供支持,那么,便无需使用页面文件。请注意,页面文件在任何情况下均处于缺省禁用状态。
在配置文件中禁用或删除您不需要的任何HW组件。这些驱动程序组件可能具有以连锁反应方式衍生组件依存关系的能力。因此,在配置中保留并不需要的驱动程序组件可能对内存占用量产生一定影响(某些情况下甚至是重大影响)。
如果您使用TAP.exe生成HW配置,就请参阅禁用由TAP.exe发现的软件枚举设备页面。如果稍有不慎,这些设备便会对内存占用量产生重大影响。
在目标计算机上将分区转换为NTFS,并对磁盘卷进行压缩(压缩特性需要由NTFS文件系统提供支持)。在某些情况下,这种方法可将内存占用量至少降低40%。请不要忘记,这往往需要您将NTFS组件添加至运行时程序。

----------------------------------------------------------------------------------------------------------------------
我公司要做一个设备,不想出现WINDOWS的任何东西
比如启动画面,登陆对话框,高手请指较(启动画面已解决)
还有就是谁知道关于EXP的书,我看到又英文版,但国内时候似乎没有卖

用minlogon 组件代替winlogon 就可以了

----------------------------------------------------------------------------------------------------------------------
利用“自动登录”组件在系统每次启动时以相关用户身份自动登录。该组件具有可供配置的设置选项,允许您输入缺省域名、用户名和口令。请记住,如果用户以后又在运行时程序中对这些设置值进行修改,那么,自动登录特性便会失效。

Kernel Baseline Configuration
Kernel, No Network, No Explorer Shell
~5 MBytes of Disk Space
Minlogin
Networking Support, Shell
~15 Mbytes of Disk Space (12MB NTFS Compressed Volume)
Winlogon
~56 Mbytes of Disk Space (37 MB NTFS Compressed Volume)

posted on 2006-04-13 13:43 海之蓝 阅读(980) 评论(0)  编辑 收藏 引用 所属分类: Tink Client
只有注册用户登录后才能发表评论。