51WinCE-博客园分站

WinCE非官方Blog分站

导航

【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 4

chapter 4
老规矩,一些词汇
//=================================
unifed
integrated
composed
initiate
ultimately
separated
monolithic
subsequent
hierarchy
corresponds
implementation
auxiliary
components
fltration
merged
region
separated
tabular symbols
boundaries
execute in place (XIP)
purposes
compression
coincide
//简单翻译
统一
综合
组成
启动
最终
分离
单片
随后
等级
对应
执行
辅助
组件
过滤
合并
地区
分离
表格符号
边界
本地执行XIP
用途
压缩
重合

第四章主要介绍了系统的编译,这张对系统编译的整体过程以及中间所遇到的文件进行描述和分析。本章分为5个部分,第一部分介

绍系统编译的目录树,第二部分介绍了编译所设计的环境变量,第三部分介绍了镜像编译模式,第四章介绍编译的阶段,第五章介

绍文件配置,最后一个部分讲述组件和编译模块,接下来我们一个部分一个部分的来看。

第一,系统编译的目录树。这个地方大家有兴趣的话可以试验一下这个DOS命令,在运行中输入CMD,打开命令行,在任意目录下输

入tree X:\WINCE600 > c:\wince600tree.txt(X:表示wince600的安装盘),然后再C盘的根目录下就会生成一个wince6.0的目录树

,大家可以变结合这个文本文件一边阅读。文章中的几个表格很清楚的描述了wince的整体文件结构,这里需要说的是,wince6.0与

5.0的文件结构略有不同,但仅仅是部分描述上和结构上有略微的变化,熟悉5.0的做起6.0还是比较顺手,比较典型的一个例子是

OSDESIGNS,在5.0中被称为PBworkspace,

第二,系统编译的环境变量。这里大家需要注意到几个批处理文件,也就是.bat文件,例如文中所提及的PBInitEnv.bat,

Wince.bat和blddemo.bat。这些文件里都配置了wince6.0编译的一些参数,可以帮助大家了解wince到底是怎么编译的。同样,这里

大家有兴趣的话可以试试,在vs2005中,选择Build(生成)-> Open release Directory in Build Windows.打开命令行,然后输

入set,大家可以很详细的看到当前项目的配置情况。关于set是什么,大家可以使用set /?后阅读相关的帮助内容。

第三,镜像编译模式。这一张主要介绍了镜像的三个模式,调试模式(Debug),释放模式(release)和产品模式(ship)。这几

个模式的设定主要根据WINCEDEBUG和WINCESHIP这两个环境变量的设定来设置,当然在项目的属性也中,在Build options编译选项

中也有可以直接将系统设定成ship模式的选择框,具体如何配置大家可以仔细参考文章内容。这里要说的是,Debug模式通常产生的

镜像很大,适合kitl调试的时候使用,但有时候会出现build的镜像过于大而导致的报错,这个时候建议使用释放模式release模式

,这个模式镜像较小,打印信息通过串口的方式查看,ship模式作为产品模式出现,不会产生任何打印信息,而且系统镜像小于等

于以上两种镜像模式。

第四,编译过程。这章对很多朋友都有用的。因为在论坛和讨论群中经常有人问及到顺序的问题,这一张给出了明确的说明,具体

步骤第一步预编译,第二步系统编译,第三步,系统复编译,第四步,生成释放路径,第五步,镜像生成。 文章对这个5个步骤都

进行了详细的描述,大家可以仔细阅读,特别是sysgen,build release directroy以及makeimg这三个阶段。

第五,配置文件。wince中配置文件主要有以下几种类型,.bib二进制镜像编译器,.dat对象存储初始化文件,.reg注册表初始化文

件,.db数据初始化文件。具体每个文件的内容大家可以仔细阅读文章,这里特别提出的是bib和reg两种文件,这个文件是系统编译

生成的主要依据,这里举个例子,当我们编译写了一个流式驱动,众所周知的,wince是以dll库的形式存在,流式驱动也是以一种

库的形式存在,并合并到整体的系统中,那如何将我们自己写的动态库加载到现有的操作系统中,首先就需要在platfrom.bib文件

中对对应的动态库进行声明,作为一个驱动,我们习惯把他放在bib文件的模组部分(bib文件分为内存部分,配置部分,模组部分

和文件部分,这个请大家仔细阅读文章,文章有详细说明),完成bib文件的修改后,在注册表中我们要为我们的驱动留出接口,以

供AP层的程序能按照一个文件的形式将其打开。完成了这两个部分,我们自己写的驱动才能真正加载到系统当中。这个在开发驱动

当中是需要特别注意的。

最后一点是组件和生成模块。这个部分也是非常重要的一个部分,这里介绍了4中文件,dirs路径文件,这个文件主要为系统编译包

含的内容做一个定义,打开这类文件,大家可以清楚的发现是一些文件的路径,这里所包含的就是生成的时候会去编译到的地方。

makefile文件通常我们就默认使用微软特定的文件makefile即可,不需修改,资源文件sources file是一个比较重要的文件。在这

个文件中会定义当前功能所需要的资源,类型,目标名称等等属性,是引导编译生成目标文件的主要依据,这个文件需要格外重视

,如果辨写不好在编译时常常报错。很多系统编译出错的原因,通常是我们在做sources文件的时候遗忘了引用必须的库或者路径所

导致,仔细编辑设计sources文件在整个系统开发中虽然是一个小部分,但也是致命点。cmn文件为整个系统预定义了一些公共的环

境变量,通常根据情况选择和设定。最后是一些编译中各个阶段的错误信息,大家也需要仔细的阅读一下,可以在出错的时候以最

快的速度找打出错的编译环节,根据不同的出错环节分析问题解决问题。

第四章学习完毕

 

posted on 2009-11-20 23:34  MercuryXu  阅读(630)  评论(0编辑  收藏  举报