none
WinCE的层次结构 RRS feed

  • 常规讨论

  • 一个嵌入式系统通常划分为括四层结构:

    (1) 硬件平台。也就是平常所说的开发板,主要包括CPU、存储和输入输出等设备。

    (2) 引导加载程序(BootLoader)。用来初始化硬件,加载操作系统映像,并跳到映像开始地址处执行。

    (3) 嵌入式操作系统映像(OS Image)、

    (4) 用户应用程序。前边所讲的三部分都是为用户应用程序服务,开发符合用户需求的应用程序才是最终目的。

    Windows CE的定制过程也可以说是针对不同的CPU、不同的目标板编写BSP的过程。在硬件平台上,Windows CE支持多种处理器家庭,包括x86XscaleARMMIPSSH等系列,它允许开发人员选择最理想的硬件。在操作系统映像(OS Image)方面,Windows CE.NET 是由 Platform Builder来定制的,Platform Builder提供多种配置文件和调试工具,可以将嵌入式操作系统和应用程序一起生成内核,也可以只生成Windows CE.NET操作系统,并可根据功能要求裁剪相关模块。

    Windows CE具有一个很小的核心内核包,基本上只包含排程、内存管理和kernel API,它们构成了一个完整个体,其余大部分功能都在单独的模块中完成。系统的裁剪和配置是在Platform Builder中完成,配置文件包括4种文件类型:二进制映像生成文件.BIB、注册表文件.REG、目录和文件配表文件.DAT、数据库文件.DB。通过修改这些配置文件可以裁剪优化Windows CE

    另外,所有.DAT文件合并在修改配置文件时,一定要注意CE.BIBREGINIT.INIINITOBJ.DATINITDB.INI是中间文件,修改这些文件并不能配置Windows CE。而可配置的秘密是隐藏在建构操作系统映像文件的过程当中,这个映像文件包括操作系统的kernel,内存中的档案系统,储存的程序和文件,系统配置文件,注册表数据库等。整个建构过程可以分成四个阶段:CESYSGENBSPBUILDRELMAKEIMG

     OALOEM Adaptation Layer)即OEM适配层,它的主要作用是在移植WinCE到新的硬件平台时减少操作系统的修改,通俗的说就是为WinCE操作系统抹平MCU的差异,使其能很方便的在不同MCU上运行。所以,OAL包括了和系统硬件通讯的最底层代码。内核则通过OAL跟硬件进行交互。逻辑上,OAL是介于CE内核和设备硬件之间的一个代码层,是一个抽象的概念。物理上,OAL和其他一些库一起链接成可执行文件,在WinCE6.0中对应的文件是OAL.exe,这是OAL的客观存在。WinCE6.0中的OAL跟先前的OAL比,是有一些变化的,它从内核中分离出来成为OAL.exe,而内核则变成了Kernel.dll。这样做的好处是可以单独升级OAL。但整体的OAL结构并没有改变,OEM函数保持一致,OALKernel的接口由共享结构NKGLOBAL实现。这一部分的具体内容下一篇再做介绍。下图所示为WinCE6.0OAL设计。

    2009年10月29日 3:59