王朝网络
分享
 
 
 

Platform Builder之旅(四)

王朝vc·作者佚名  2006-01-17
宽屏版  字体: |||超大  

Platform Builder之旅(四)

作者:付林林

本篇文章是对前面讲过的关于PB的系列文章做一些补充,因为PB包含的知识面太广也太杂,所以针对一些杂项归纳在一起写成这一篇文章。当然一篇文章绝不可能包罗万象,有时间我会陆续写出来。

【Windows CE安装目录】

Windows CE.NET v4.1默认安装路径为C:\wince410。其子目录名及目录包含内容如下:

Others 包含ATL、MFC运行时文件等。

Platform 包含所有BSP子目录。每个目录包含BSP文件。

Private 包含大多数CE公开的源码

Public 包含大多数SDK文件、配置文件、编译工具。

SDK 包含PB使用的工具

public目录下一些子目录名及包含内容如下:

Common 核心操作系统模块

Datasync 同步数据传送模块

Dcom DCOM模块

DirectX directx、DVD-VIDEO模块

IE IE模块

NetCF .NET框架模块

RDP 远程桌面模块

Servers HTTP服务扩展模块

Script JavaScript和VBScript脚本模块

Speech SAPI模块

Viewers FileView模块

【build options】

PB菜单"Platform"-"Settings"中常见的编译选项。

Enable CE Target Control Support: 支持对实际平台的控制。可以执行 CESH 命令。

Enable Event Tracking During Boot:在引导过程中支持事件跟踪。

Enable Full Kernel Mode: 支持全内核模式。全内核模式参见配置文件。

Enable Kernel Debugger: 允许调试内核。

Enable KITL: KITL(内核独立传输层)用于在开发平台和实际平台之间相互通信。

Enable Profiling: 能够评测内核的性能。评测内核性能的工具在以前讲过。

【Object Icon Types】

Object Icon是指PB中"Workspace"和"Catalog"列出的对象对应的图标。当定制了平台后,如果在"Workspace"中删除某些特征时,PB很可能弹出对话框说明此特征无法删除。本节将讲述其中原因,之前要介绍"Workspace"-"FeatureView"中相关图标。

特征组

锚定特征

非锚定特征

1、把一个特征组缩减成一个特征叫Resolve(分解)。点击菜单"platform"-"resolve feature(s)",弹出一个对话框显示整个CE平台所有能够分解的特征组,可以在每一个特征组中选择单个特征。比如显卡驱动组,当从PB的"catalog"中加入显示驱动时,即使加入一个驱动,PB也会在"FeatureView"显示一个特征组。通过Resolve可以任意选择一个需要的显卡驱动。

2、锚定特征。在PB创建一个CE平台时,有一些特征默认被加上锚定特征(anchor feature)。用户从PB"catalog"中选择特征加到左边项目里时,这个加入的特征被自动加上锚定特征。同时PB将检查CE平台中的所有特征是否与新加入的特征冲突,然后根据cesysgen.bat中包含的从属规则,将和用户选择的特征相关的特征加到项目里。由PB根据从属规则带到项目里的特征是非锚定特征(非用户选择)。

3、查看特征从属关系。通过右键菜单"feature dependencies"选项来查看指定特征的从属关系。"Depends

on"表明当前特征需要哪些其它特征,"Dependency of" 表明哪些特征需要当前特征。

4、每次从定制的CE平台中删除或者加入特征,PB都会在执行删除或者添加特征后重新整理平台的所有特征。在"Output"窗口中可以看到平台所有增加的非锚定特征。

5、删除特征:锚定特征可以直接删除,而非锚定特征必须先删除它的父特征(父特征在加入到平台时将子特征带进来)后才能被删除。另外锚定特征也可能和另一个锚定特征属于从属关系。所以锚定特征也可能不允许被直接删除。

通过以上5点读者一定会了解为什么有些特征不能被直接删除了。

【cec文件】

.cec文件是目录特征文件。这个文件用于将自定义的目录特征导入到PB的"catalog"中。适合于将编写的驱动程序、BSP等给其它开发商使用,开发商只需加载cec文件后就能够将驱动、BSP等加入到自己的平台上。用记事本就可以打开查看.cec文件的内容。一般编写.cec文件采用PB的工具"cec

editor",单击PB菜单"tools"-"cec editor",弹出一个窗口,窗口标题为"platform Builder CEC

Editor"。

1、编写.cec文件:假如我们要加入一个驱动程序,这个驱动程序包含两个文件,一个驱动文件mydll.dll,另一个驱动注册信息mydll.reg。单击"cec

editor"的"create a new cec

file"按钮。在新窗口左边树型控件中"catalog"项位置单击右键,在弹出的菜单中单击"insert feature

grout...",在弹出的对话框"insert feature group"的"name"中输入特征名字例如"mydll",带"*"的必须填写,其它可以不添。在窗口左边树型控件中"mydll"项位置单击右键,在弹出的菜单中单击"insert

feature",在弹出的对话框的"name"中再次输入"mydll"。接着在窗口左边树型控件中"mydll"项位置单击右键,在弹出的菜单中单击"insert

build method",在弹出的对话框中选择支持的CPU类型。在此对话框中的"Step"中共有12个选项,将PB编译平台的过程分为四个部分,每个部分又加入"Pre"和"Post"表示此前和此后。这四个部分分别为CESYSGEN(执行cesysgen.bat过程)、BSP(编译BSP等源码文件的过程)、BuildRel(复制文件的过程)、MakeImg(制作镜像文件的过程)。按照我举的例子,我只需复制这两个文件到%_FLATRELEASEDIR%中,所以在MakeImg之前执行即可,选择"PreMakeImg"。在窗口左边树型控件中"PreMakeImg"项位置单击右键,在弹出的菜单中单击"insert

action"-"copy",在弹出的对话框中指定源文件路径和目的路径。目的路径可以输入"$(_FLATRELEASEDIR)"。因为我们有两个文件,所以要重复操作一遍,将另一个文件也复制过去。最后保存。

2、导入到PB的"catalog"中:单击工具栏上"add the cec file to the catalog"按钮将此cec文件导入到"catalog"中。

3、删除.cec文件:如果加入到"catalog"后,单击PB菜单"File"-"Manage Catalog Feature",找到你的cec文件,单击"remove"。

【loadcepc.exe】

loadcepc.exe是一个MS-DOS程序,它是一种Boot Loader。Boot Loader的主要工作是加载CE平台(nk.bin),将nk.bin解压后的所有文件加载到内存,然后将CPU的控制权交给CE内核,CE内核执行初始化工作,运行nk.exe实现操作系统内核功能、运行device.exe管理常用的设备驱动程序、运行filesys.exe加载文件系统、运行gwes.exe管理图形窗口事件子系统等等。采用x86

CPU的硬件系统共有两种启动模式,一种是采用BIOS(基本输入输出系统)实现硬件的检测和初始化,之后启动MS-DOS操作系统,运行loadcepc.exe加载nk.bin。另一种方法是采用The

x86 ROM boot loader (romboot),它是一个很小的引导程序,有256KB大小。可以将它存放到Flash/EEPROM中替换BIOS程序,它能够实现硬件的检测和初始化,在这之后如果系统采用硬盘等IDE接口存储设备,那么romboot会自动寻找活动分区上的nk.bin文件并加载。romboot的优点是检测速度和加载速度都很快,但是在支持的硬件系统方面不如BIOS全面。

loadcepc.exe支持通过并口、串口、网卡从开发机上下载nk.bin文件。在loadcepc后需要指定要加载的.bin文件的文件名,如果为nk.bin,那么可以不指定文件名,如果不是nk.bin,那么必须指定文件名,例如"loadcepc

abc.bin"。下面简单介绍几个常见的参数:

/B:指定串口的波特率。例如 /B:19200

/C:指定串口的端口。1指"COM1:",2指"COM2:"。 例如 /C:1

/D:指定显示分辨率。0指320 x 200,1指480 x 240,等等。

/E:指定网卡IO地址和IRQ。例如/e:300:5

/L:指定显示分辨率和色深。它需要指定具体的分辨率,所以能够指定不标准的分辨率。例如/l:768x576x8,

表示分辨率为768 x 576,颜色位数为8位。

/P:指定使用并口传递数据。

/Q:指定使用串口传递数据。

/V:指定当loadcepc加载时添加状态信息。

【调试平台和运行程序】

要调试平台,先要配置远程连接。单击PB菜单"Target"-"Configure Remote

Connection",在弹出的菜单中将"Download"和"kernel"下拉框都设置为"Emulator",单击"Download"后面的"Configure",在弹出的菜单中将"Memory(MB)"设置为64MB,因为前面我们设置了"IMGRAM64"。分辨率设置为800x600。退出"Configure

Remote Connection"后单击"Target"-"Download/Initialize"将nk.bin下载到模拟器上执行。如果向定制的平台添加或者删除特征后,当执行"Build

Platform"时,PB不会全部重新编译,而是将修改的部分重新编译。要在定制的CE平台上运行应用程序或者DLL,先要将EXE或者DLL复制到%_FLATRELEASEDIR%中,再单击PB菜单上"Target"-"Run

Programs",在程序列表中找到指定的EXE文件,再单击"Run",在模拟器上就可以看到你所运行的应用程序了。因为EVC附带的模拟器不支持中文,所以有些应用程序需要到PB的模拟器上运行。CE的帮助文档中介绍了如何在PB的模拟器上对应用程序设置断点进行调试,但是我没实验成功。另外凡是基于x86指令集编译的EXE、DLL都可以在模拟器上运行,除非EXE、DLL包含的功能模拟器无法模拟(模拟器的限制在我以前的文章中有说明)。

写作时间:2004-09-024

未经本文作者同意,不准擅自转载本篇文章。联系作者请邮至windowsce@tom.com或fllsoft@sina.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有