作者: 文斌
主页: 文斌程序网 http://www.wenbinweb.com
经过以前的学习,我们已经掌握了生成CE的过程及编译的几个阶段,这次我们再来了解一下Platform Builder中为我们提供的组件包的管理方式以及如何管理自己的组件。
在Platform Builder(以下简称PB)中的右侧有一个"Catalog"窗口,其中列出了所有可供使用的组件,我们可以看到其内容是非常之多的,现在的疑问就产生了,PB是如何管理这些组的呢?如果我有一个新设备的驱动组件要如何才能放到这个组件包窗口中呢?如果我开发了一个设备驱动以供其他人使用那我要如何才能发布我的驱动呢?下面,我们就来解决这些问题。
在PB中,这些组件的管理都是能过一种组件文件(.cec文件)来实现的。在CE4中,系统自带的CEC文件都位于PB的安装文件夹下的CEC文件夹,我们可以在那里很容易的找到它们,但是在CE5中,它的位置变了,你可以在WINCE500/PUBLIC/COMMON/OAK/CATALOG/CEC下找到他们。
如果你开发了OAL,设备驱动或其他组件,你就可以能过CEC文件来把它们加入到PB中。通过在PB环境中导入CEC文件,其他的平台开发人员就可以使用这些组件了。CEC文件是用来描述组件信息的文本文件,它包括了一些块的列表,主要包括以下四种信息块:
--CECInfo块,用来描述此CEC文件的信息,每个CEC文件只能含有一个此信息块,从中你可以看到该CEC的名称、GUID、版本、供应商和简要描述。
--ComponentType块,它描述了最高级别的组件类型,在一个CEC文件中可以有多个此信息块,它通过Group,RequiredCEModules,ExcludeWhenSet,MaxResolvedImplsAllowed等条目来描述此组件所在的组,需要的CE组件,排除的组件及允许在一个CE平台中存在的数量等信息。
--Implementation块,用来描述此组件在编译时需要的各种信息,每个CEC文件中也可以有多个此信息块,它是 ComponentType块的一部分,其中的BSPPlatformDir,Children,OptionalChildren,DefaultDrivers,ExcludeWhenSet,FeatureVariable,ImplSize等条目的具体含义可以在PB的帮助文档中找到,在此不一一细述。
--BuildMethod块,描述了编译的方法,也是ComponentType块的一部分,为了加深对上一次编译阶段的理解,我们详细说一下此块中Step和Action两个条目。
Step用来说明编译此组件将要在哪一步中进行,对照上一次的内容,它的取值为:CESYSGEN,BSP,BUILDREL,MAKEIMG。所以如果你自己开发了OAL或驱动之类的组件,你就需要自己决定让PB在什么阶段来编译它,就要在CEC中通过Step来描述。其实在具体的编译过程中,上述的每一阶段又有PRE和POST两个子阶段,也就是说对于每个阶段其实都有三步,即PRECESYSGEN,CESYSGEN,POSTCESYSGEN,PREBSP,BSP,POSTBSP……一般不用具体到这样详细的程度。
Action则描述了组件编译的行为,有效的行为与编译阶段的对应关系如下表所示:
Action |
CESYSGEN |
BSP |
BUILDREL |
MAKEIMG |
#BUILD(DIR,...) |
No |
Yes |
No |
No |
#BUILD(SOURCES) |
No |
Yes |
No |
No |
#BUILD(MAK,...) |
No |
Yes |
No |
No |
#CUSTOM(...,...) |
No |
Yes |
Yes |
No |
#COPY(...,...) |
Yes |
No |
Yes |
No |
#ENV(...,...) |
No |
Yes |
No |
Yes |
#SRCCODE(...) |
No |
No |
No |
No |
这些Action的意义如下:
--#BUILD():使用DIRS文件或SOURCES文件或MAKE文件来调用build.exe,在完全编译平台的时候被使用;
--#CUSTOM():在编译的时候运行批处理文件或可执行文件;
--#COPY():从一个位置复制文件到另一个位置;
--#ENV():设置环境变量;
--#SRCCODE():指定了包含源程序文件的文件夹,只在编译所选组件时应用。
对于以上每个条目的具体用法可以参阅PB的帮助文档。为了获得感性认识,我们最好用记事本打开几个CEC文件来看一下。比如打开serial.cec看看串口驱动组件的实现方法等。
以上我们了解了CEC文件,我们再来解决后面的问题,即假设我从别的供应商处拿到了一个设备的驱动程序,它带了CEC文件,那么我要如何把这个组件加入到PB的组件包中呢?这个问题其实很简单,只要在PB的File菜单下使用"Manage Catalog Items"命令即可。在这个弹出的对话框中的内容和使用方法就不用我说了吧。
再来解决下一个问题,我要如何为我开发的组件编写CEC文件呢?这个也好办,在Tools菜单下使用"CEC Editor"命令即可,如果不会写,可以先打开一个现有的CEC文件看看是如何组织的,然后再仿照它来写自己的就可以了,别忘了写完后要保存哦,同时也要注意GUID的问题。
此次内容的最后,我们再来看一下BSP。什么是BSP呢,其实就是为某一种开发板实现了设备驱动的软件包,它包含了源程序文件,二进制文件等,还有OAL适配层,Bootloader和其他有关的配置文件。比如CE5的评估版就带了x86的BSP,AMD的BSP和Emulator的BSP。
通常对BSP的操作都在BSP向导中进行,它位于Platform菜单中,利用它可以新建自己的BSP,复制现存的BSP,修改现存的BSP或创建全局的驱动程序。如果你准备好了BSP所需要的那些东西就可以用它来生成你的BSP了,它会选择必须的CE内核组件。
好了,已经写了不少了,唉,写这东西真是费时啊,不说了,希望我们能一起获得更多的知识。
分享到:
相关推荐
WinCE 5.0边做边学,比较详细的讲述了WinCE 5.0的内核配置等学习内容!
WINCE5.0 VS2005 应用例子供WINCE开发参考。
内置25个WinCE5.0程序,包括系统工具,媒体播放、游戏、计算器等 这些的程序都是由通过网络收集的 程序能都在WinCE5.0上完美运行(分别在WinCE5.0模拟器和装有WinCE5.0的导航仪上成功运行)
目前权限只能上传45MB大小的文件,只能分包压缩上传了,需要用的请将两个压缩包都下载下来再解压缩。
工欲善其事,必先利其器 对于实时系统,如何调试是一个很难解决的问题,包括对系统内核的调试,对驱动程序的调试,对应用程序的调试等。对于应用程序,通常各集成开发环境都提供了常规的单步跟踪等调试手段。...
wince5.0 explorer.exe
VS2005 安装WINCE5.0 配置方法
wince5.0模拟器下运行通过,wince5.0自带的媒体播放器,从platform builder下分离出来,用evc4.0编译运行。
介绍了WINCE5.0和WINCE6.0的整体结构,深入了解系统,内存布局。从硬件层,OEM层,OS层和应用层4方面进行介绍。也介绍了这两个版本之间的不同点。对于wince开发有极大的帮助。
最好的wince5.0系统 中文播放器 精简说明: 中文版的,可以播放MP3,和各种视频文件 导航仪上安装,会更好。边导航,边听歌。 测试通过。绝对能用。 不多说了。
工欲善其事,必先利其器 对于实时系统,如何调试是一个很难解决的问题,包括对系统内核的调试,对驱动程序的调试,对应用程序的调试等。对于应用程序,通常各集成开发环境都提供了常规的单步跟踪等调试手段。...
在wince5.0下使用sqlce2.0, 需要在wince5.0上安装 C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0\wce400\armv4 sqlce20.dev.ppc.wce4.armv4.CAB sqlce20.ppc.wce4.armv4.CAB...
wince5.0 sdk vs2008可用
Win CE5.0模拟器简体中文版 使用说明: 下载后,先解开压缩包,直接运行里面的.bat文件就可以使用了
wince5.0 sdk 配置
WinCE 5.0 中文模拟器 带网络 Windows Embedded(WinCE中文) 分数不够的朋友可以给发邮件索取: ljz9425[at]163.com
WinCE5.0中文模拟器 适用于vs2005配置
自己的解决win10配置wince5.0的开发环境问题的方法,具体看博客https://blog.csdn.net/Leoxford/article/details/80202934
UDP通信实验.WINCE5.0 UDP通信实验.WINCE5.0 UDP通信实验.WINCE5.0
VS2008中可用的WinCE5.0中文模拟器SDK,支持文件和注册表保存。