创建XPE组件
通常每一个嵌入式设备都会运行一个或多个用户自己的应用程序,另外如果使用了非通用的硬件设备,还需要添加相应的驱动程序;怎样把这些相对独立于操作系统的部分集成到操作系统中来,使其成为一个整体?推荐的方法是,将各个独立的部分做成XPE组件,在开发阶段进行集成;通常该工作可以分成五个阶段:
确定组件使用的资源以及设置
在Component Designer中配置组件的资源和设置选项
创建一个Repository,将该组件使用的文件加入到该Repository中
保存该组件的配置信息
将该组件导入到Component Database Manager中
下面我们就以一个实际的例子来说明,为TweakUI Control Panel
程序创建一个XPE组件。
打开Component Designer。
选择File//Import菜单,将浏览的文件类型设置为Setup Information Files(*.inf)
选择“C://Program Files//TweakUI//TweakUI.inf”,并将其导入,Component Designer可以根据TweakUI.inf中的信息,自动生成一个组件。
需要为这个组件添加一个Repository,这个Repository实际上是一个系统目录,该目录中包含组件所需要的文件,每一个带有文件的组件都会对应一个或多个Repository,打开Component Designer中的Repositories文件夹。
点击右键,在弹出菜单中选择“Add Repository”,新建一个Repository。
在该Repository的Name属性中填入Tweak UI Files
点击Source Path栏中的Browse按钮,找到C://Program Files//TweakUI。
在Component Designer中选中TweakUI.inf组件
在该组件的属性栏中,按下Repository按钮
在弹出的Select Repository对话框中,选择Tweak UI Files项目,确定。
最后,选中tweakui.inf组件,在右边的属性设置面板中将该组件的名字改为Tweak UI Control Panel Applet。
选择File/Save as,保存为"C://XPE_Demo//TweakUI.SLD",关闭Component Designer。
到此已经完成了TweakUI组件的创建;同前面创建的硬件信息组件一样,要在Targert Designer中使用这个组件,必须先将其导入到组件数据库中。
打开Component Database Manager,
Import这个TweakUI组件:找到"C://XPE_Demo//TweakUI.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[Substring]”,在出现的Filter Editor对话框中,输入TweakK

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