• 【原创】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文件为整个系统预定义了一些公共的环

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

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

    第四章学习完毕

  • 相关阅读:
    mac下通过复制启动两个tomcat
    搭建一个redis集群
    ubantu系统下永久修改主机名
    民宿项目知识_截取最后一个逗号
    民宿项目知识_string判断是否为空
    民宿项目知识_enum
    民宿项目中的知识点_动态删除tr
    笔记:迁移来自xinlang的笔记
    SVN使用笔记
    iOS性能优化笔记
  • 原文地址:https://www.cnblogs.com/mercuryxu/p/1607285.html
Copyright © 2020-2023  润新知