Platform Builder实践之拾遗补缺

来源:互联网 发布:魔法王座进阶数据大全 编辑:程序博客网 时间:2024/05/05 03:35

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

  【Windows CE安装目录】

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

  Others 包含ATLMFC运行时文件等。

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

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

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

  SDK 包含PB使用的工具

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

  Common 核心操作系统模块

  Datasync 同步数据传送模块

  Dcom DCOM模块

  DirectX directxDVD-VIDEO模块

  IE IE模块

  NetCF .NET框架模块

  RDP 远程桌面模块

  Servers HTTP服务扩展模块

  Script JavaScriptVBScript脚本模块

  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 LoaderBoot 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:指定显示分辨率。0320 x 2001480 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”,在弹出的菜单中将“MemoryMB设置为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指令集编译的EXEDLL都可以在模拟器上运行,除非EXEDLL包含的功能模拟器无法模拟(模拟器的限制在我以前的文章中有说明)。

 
原创粉丝点击