在以前的文章中我已经数次提到了Platform Builder(简称PB),并且简单的讲述了利用PB v4.1的定制平台向导(New Platform Wizard)创建了几个CE的平台。从这一篇文章起,我和PB爱好者们一起进入PB的世界,一起领略PB的风采,一起学习PB。写每一篇文章对我来说都是一个进步,希望大家能够多提宝贵意见,多阐述看法。
相信看到我以前写的文章你已经会利用定制平台向导来定制简单的内核了。这次我仍然用这个向导,只不过采用自定义配置来选择平台的组件。自定义配置的优点是能够更细致的选择组件,这样定制的平台只包含我们需要的功能,而不要的全部抛弃。首先打开“New Platform”,在“Step 2”中选择“EMULATOR: X86”。
在这里强调一点:能够运行 PB创建的CE平台的环境有三种。第一种是真实环境,包括某一种CPU和支持的主板还有其它配置;第二种是模拟环境,PB包含了模拟器,能够在PC上模拟运行CE平台;第三种是PC环境,PB可以创建能够在PC机运行的CE平台。并且提供了一组引导文件,通过这些引导文件可以加载CE内核文件(nk.bin)并启动Windows CE。三种环境相比较,如果具备真实的环境那是最好了,模拟环境只能模拟简单的功能,PC环境和模拟环境相似,只适合用来学习PB。
PC环境需要的引导文件可以通过如下办法得到:在PB的安装所在位置(比如C盘)查找文件Websetup.exe,运行这个文件,这个程序会解压出一个名为WEBIMGNT.EXE的文件。再查找名为cepcboot.144的文件,将cepcboot.144文件复制到同WEBIMGNT.EXE同一个目录下。插入软盘到A驱,然后在控制台程序(cmd.exe)下输入命令“WEBIMGNT.EXE cepcboot.144”。在弹出的对话框中单击“A drive”,程序把解压出来的启动文件都复制到软盘上。编辑启动文件中的“Autoexec.bat”批处理文件,如果PC配置的网卡是被支持的(微软推荐的网卡类型有NE2000、SMC9000兼容网卡、RealTek RTL8139等),并且是PCI接口的,按如下修改:
set NET_IRQ=9
set NET_IOBASE=0
修改之后还要输入一个静态的IP地址。这个IP地址要和运行PB的电脑的IP地址处于一个子网内。实际上PC环境还是无法实现CE平台的大多数功能,所以对于要学习PB而又不具备真实环境的人来说,模拟器是比较合适的。
回到定制平台向导,在“Setp 3”中单选“Custom configuration”,输入平台名称和路径。在“Step 4”中必须单选“Custom Device with Shell and Graphical User Interfac”。表示平台将加入外壳程序和GUI。有了资源管理器这样的外壳程序我们操作就方便多了。在“Step 5”中列出的是“Application & Services Development”。这些都是用于软件开发的库。
大多数支持库我们在PC上开发时早已熟悉了,有几个是CE独有的。比如“Simple Network Management Protocol”(简单网络管理协议),这是用在网络设备上的协议;“Pocket Outlook Object Model API”,用于读取Pocket PC中“Inbox”软件中的数据;“Beta .NET Compact Framework”是.NET的支持框架。
这个在PB v4.1中不要选取,它在PB v4.2中才是正式版。其余的选项说明参见CE帮助文档(位置:operating system development\windows ce.net overview\catalog features\applications and services development)。
“Step 6”中列出了Windows CE自带的应用程序。
“Step 7”中列出了操作系统内核支持的服务。包括串口支持、并口支持、USB口支持、调试工具、电源管理,还有一些其它特征。这里的调试工具不仅仅指能够用于调试的应用程序,还包括用于调试的API函数。Toolhelp就是专门用于查看当前操作系统的进程及进程包含的线程、DLL的信息。“Kernel Features”(内核特征)中的Fiber API是用于支持纤程的API。“Keyboard & Touch Driver Debugging Sample Applications”包括四个调试工具,用于调试触摸屏和键盘的驱动程序。“LMemDebug memory debugging hooks”用于查看当前操作系统正运行的程序的内存信息。
在“Step 8”中列出的是网络特征(我有时称特征为组件,实质一样)。包含CE支持的所有网络协议。“Networking Features”中大多数的子项都要加入的,其它项按需加入。比如要支持红外线一定要加入PAN中的IrDA。要拨号上网的一定要加入WAN所有项。
“Step 9”中列出了存储特征。包含和存储设备相关的支持。具体包括存储管理器(支持CDFS、FAT文件系统)、数据库支持、ROM和RAM文件系统、注册表存储支持。关于ROM和RAM、FAT我在以前的文章中提到过,这里就不再详细讲解了。
“Step 10”中列出了CE包含的所有英文字体。要了解这些字体中每种字体所占空间大小,可以将鼠标放到字体名字的上面,系统就会显示这种字体的大小。一般来说一个定制的CE平台其中字体尤其是中文字体占用空间是很大的,所以选择字体要慎重。除非必要,否则不要添加太多的字体。
“Step 11”列出了国际化选项。包括各种语言支持包。在这里选择“National Language Support[NLS]”,再选择一种本地区语言,比如“Chinese {Simplified}”。“Agfa AC3 Font Compression”建议选择,这是一种字体压缩技术,适合中文字体。在“Chinese {Simplified}”第一子项中列出了字体。这一项选择至关重要,因为中文字体占用的空间太大了,直接影响CE平台的总体大小。具体选择哪些字体请参见CE帮助文档(位置:operating system development\windows ce.net overview\catalog features\ International)。从帮助文档中才能了解具体哪个子集包含哪些中文字体和字符集。“Chinese {Simplified}”其它子项包括中文输入法、输入法编辑器建议全部选择。
“Step 12”列出了CE包含的Internet客户端程序、支持的组件和脚本。第一项“Browser Application”中建议选择第一子项“Internet Explorer 5.5 for Windows CE Components”,而第二子项“Pocket Internet Exlporer”是用在PDA上的功能较少的Internet浏览器。第二项“Internet Explorer 5.5 for Windows CE Components”中建议选择全部子项。这些子项都是开发IE的API函数、Active X控件。第四项“Sample IE 5.5 Internet Options Control Panel”是“控制面板”中的用于修改IE选项的程序。和Windows 桌面操作系统下“控制面板”中的“Internet 选项”一样。
“Step 13”列出了CE支持的多媒体服务。可以任意选取要播放的各种媒体和具体媒体的格式。Direct X也可以分拆选取。
“Step 14”列出了CE支持的安全服务。
“Step 15”列出了各种外壳和用户接口。外壳程序一般常常选择“Graphical Shell”中的标准外壳程序“Standard Shell”,也就是资源管理器。
“Step 17”是最后一步。单击“Done”按钮,PB将用户选择的所有选项保存到脚本文件(*.wce)中。当编译CE平台时,sysgen.bat批处理文件会调用cesysgen.bat批处理文件,cesysgen.bat读取*.wce文件的内容,根据此文件的内容来设置全部的环境变量。 cesysgen.bat处理之后sysgen.bat调用nmake.exe 程序根据环境变量来编译模块(针对源码文件,如C语言文件)、复制模块(针对非源码文件,如DLL等)。具体编译操作以及编译时PB所做的工作我将在下一篇文章中详细讲述。
相信看到我以前写的文章你已经会利用定制平台向导来定制简单的内核了。这次我仍然用这个向导,只不过采用自定义配置来选择平台的组件。自定义配置的优点是能够更细致的选择组件,这样定制的平台只包含我们需要的功能,而不要的全部抛弃。首先打开“New Platform”,在“Step 2”中选择“EMULATOR: X86”。
在这里强调一点:能够运行 PB创建的CE平台的环境有三种。第一种是真实环境,包括某一种CPU和支持的主板还有其它配置;第二种是模拟环境,PB包含了模拟器,能够在PC上模拟运行CE平台;第三种是PC环境,PB可以创建能够在PC机运行的CE平台。并且提供了一组引导文件,通过这些引导文件可以加载CE内核文件(nk.bin)并启动Windows CE。三种环境相比较,如果具备真实的环境那是最好了,模拟环境只能模拟简单的功能,PC环境和模拟环境相似,只适合用来学习PB。
PC环境需要的引导文件可以通过如下办法得到:在PB的安装所在位置(比如C盘)查找文件Websetup.exe,运行这个文件,这个程序会解压出一个名为WEBIMGNT.EXE的文件。再查找名为cepcboot.144的文件,将cepcboot.144文件复制到同WEBIMGNT.EXE同一个目录下。插入软盘到A驱,然后在控制台程序(cmd.exe)下输入命令“WEBIMGNT.EXE cepcboot.144”。在弹出的对话框中单击“A drive”,程序把解压出来的启动文件都复制到软盘上。编辑启动文件中的“Autoexec.bat”批处理文件,如果PC配置的网卡是被支持的(微软推荐的网卡类型有NE2000、SMC9000兼容网卡、RealTek RTL8139等),并且是PCI接口的,按如下修改:
set NET_IRQ=9
set NET_IOBASE=0
修改之后还要输入一个静态的IP地址。这个IP地址要和运行PB的电脑的IP地址处于一个子网内。实际上PC环境还是无法实现CE平台的大多数功能,所以对于要学习PB而又不具备真实环境的人来说,模拟器是比较合适的。
回到定制平台向导,在“Setp 3”中单选“Custom configuration”,输入平台名称和路径。在“Step 4”中必须单选“Custom Device with Shell and Graphical User Interfac”。表示平台将加入外壳程序和GUI。有了资源管理器这样的外壳程序我们操作就方便多了。在“Step 5”中列出的是“Application & Services Development”。这些都是用于软件开发的库。
大多数支持库我们在PC上开发时早已熟悉了,有几个是CE独有的。比如“Simple Network Management Protocol”(简单网络管理协议),这是用在网络设备上的协议;“Pocket Outlook Object Model API”,用于读取Pocket PC中“Inbox”软件中的数据;“Beta .NET Compact Framework”是.NET的支持框架。
这个在PB v4.1中不要选取,它在PB v4.2中才是正式版。其余的选项说明参见CE帮助文档(位置:operating system development\windows ce.net overview\catalog features\applications and services development)。
“Step 6”中列出了Windows CE自带的应用程序。
“Step 7”中列出了操作系统内核支持的服务。包括串口支持、并口支持、USB口支持、调试工具、电源管理,还有一些其它特征。这里的调试工具不仅仅指能够用于调试的应用程序,还包括用于调试的API函数。Toolhelp就是专门用于查看当前操作系统的进程及进程包含的线程、DLL的信息。“Kernel Features”(内核特征)中的Fiber API是用于支持纤程的API。“Keyboard & Touch Driver Debugging Sample Applications”包括四个调试工具,用于调试触摸屏和键盘的驱动程序。“LMemDebug memory debugging hooks”用于查看当前操作系统正运行的程序的内存信息。
在“Step 8”中列出的是网络特征(我有时称特征为组件,实质一样)。包含CE支持的所有网络协议。“Networking Features”中大多数的子项都要加入的,其它项按需加入。比如要支持红外线一定要加入PAN中的IrDA。要拨号上网的一定要加入WAN所有项。
“Step 9”中列出了存储特征。包含和存储设备相关的支持。具体包括存储管理器(支持CDFS、FAT文件系统)、数据库支持、ROM和RAM文件系统、注册表存储支持。关于ROM和RAM、FAT我在以前的文章中提到过,这里就不再详细讲解了。
“Step 10”中列出了CE包含的所有英文字体。要了解这些字体中每种字体所占空间大小,可以将鼠标放到字体名字的上面,系统就会显示这种字体的大小。一般来说一个定制的CE平台其中字体尤其是中文字体占用空间是很大的,所以选择字体要慎重。除非必要,否则不要添加太多的字体。
“Step 11”列出了国际化选项。包括各种语言支持包。在这里选择“National Language Support[NLS]”,再选择一种本地区语言,比如“Chinese {Simplified}”。“Agfa AC3 Font Compression”建议选择,这是一种字体压缩技术,适合中文字体。在“Chinese {Simplified}”第一子项中列出了字体。这一项选择至关重要,因为中文字体占用的空间太大了,直接影响CE平台的总体大小。具体选择哪些字体请参见CE帮助文档(位置:operating system development\windows ce.net overview\catalog features\ International)。从帮助文档中才能了解具体哪个子集包含哪些中文字体和字符集。“Chinese {Simplified}”其它子项包括中文输入法、输入法编辑器建议全部选择。
“Step 12”列出了CE包含的Internet客户端程序、支持的组件和脚本。第一项“Browser Application”中建议选择第一子项“Internet Explorer 5.5 for Windows CE Components”,而第二子项“Pocket Internet Exlporer”是用在PDA上的功能较少的Internet浏览器。第二项“Internet Explorer 5.5 for Windows CE Components”中建议选择全部子项。这些子项都是开发IE的API函数、Active X控件。第四项“Sample IE 5.5 Internet Options Control Panel”是“控制面板”中的用于修改IE选项的程序。和Windows 桌面操作系统下“控制面板”中的“Internet 选项”一样。
“Step 13”列出了CE支持的多媒体服务。可以任意选取要播放的各种媒体和具体媒体的格式。Direct X也可以分拆选取。
“Step 14”列出了CE支持的安全服务。
“Step 15”列出了各种外壳和用户接口。外壳程序一般常常选择“Graphical Shell”中的标准外壳程序“Standard Shell”,也就是资源管理器。
“Step 17”是最后一步。单击“Done”按钮,PB将用户选择的所有选项保存到脚本文件(*.wce)中。当编译CE平台时,sysgen.bat批处理文件会调用cesysgen.bat批处理文件,cesysgen.bat读取*.wce文件的内容,根据此文件的内容来设置全部的环境变量。 cesysgen.bat处理之后sysgen.bat调用nmake.exe 程序根据环境变量来编译模块(针对源码文件,如C语言文件)、复制模块(针对非源码文件,如DLL等)。具体编译操作以及编译时PB所做的工作我将在下一篇文章中详细讲述。