您的位置:首页 > 其它

Windows Embedded Compact7的体系结构和组件简介

2012-12-20 15:18 323 查看
Windows Embedded Compact 7是在Windows Embedded CE的基础之上演变而来的。它是一种组件化的实时操作系统,用于创建各种占用空间小的企业类和消费类设备。既然是微软在嵌入式和移动计算平台最新系统,那就快来学习一下吧。

首先,我们要大体的了解一下Windows Embedded Compact 7的一些特性。WinCE7的设计非常紧凑,是个实时操作系统,面向用户、面向产品、面向应用,软硬件可裁减,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用设备。比较具体的说法可以参考下表:



特性

描述

处理器架构

支持四种32位处理器架构:x86、ARM、MIPS32和SH4;

支持多达8核的多核处理器(SMP);

现在支持ARMv7;

提供处理器核心管理API;

支持多达3GB的物理内存;

支持蓝牙2.1以及EDR;

支持NDIS 6.1;

支持带Flash 10.1的IE 7;

模块化

有500多个组件可供选择

实时性

Windows Embedded Compact 7是微软提供的唯一具有原生实时功能的操作系统;

占用资源少

内核使用约700kB的资源

优秀的工具

功能完整的Visual Studio 2008专业版现已包括在Platform-Builder程序包;

经过更新的目录功能;

经过更新的编译器;

新的集成的Silverlight开发工具;

加快开发

端到端开发流程,帮助你容易配置、构建和交付新设备;

集成的开发模拟器,因而没必要使用众多来源的多个工具;

几百个测试组件随时可供使用;

可以使用更多的源代码,以便调试、测试和更改操作系统映像;

低成本

由于评估工具免费,前期资金投入很少;开发工具的成本很低,许可费也极低,从而降低了开发的总成本;

新的许可体系

2种主许可证:C7E和C7P,对垂直行业没有限制;

4种对垂直行业有限制的许可证:C7K、C7G、C7T和C7NR;

不再有Core许可证;

不再有Core-Plus许可证;

共享资源

可以参与共享资源计划,有400多万行源代码。可以使用共享源代码,记录、调试、测试和改动操作系统映像,以创建差异化的功能特性。可以使用和更改这些源代码。

专业设备支持

面向移动设备的特殊功能已包括在内,如电源管理、即时开机和占用资源少,用于闪存设备。

强大的支持

长达十年的延长支持服务;

全球合作伙伴网络和社区协作;

免费的评估套件,可在180天内免费评估和测试系统;

如果我们想更快的进行WinCE7的入门学习,那么还需要了解一下基础的WinCE的系统架构。

Windows Embedded Compact的嵌入式系统采用四层体系结构:

l 硬件层:用于线程调度的实时时钟、用于存储和运行操作系统的存储单元。通常,硬件平台应具备其他的外设,例如串口、网卡、键盘、鼠标等。对于不同的应用领域和硬件平台,需要定制Windows CE 7操作系统并移植到目标硬件上;

l OEM 硬件适配层:位于操作系统层与硬件层之间,用来抽象硬件功能,实现操作系统的可移植性;

l 操作系统服务层:

包含:

A、内核:内核提供用于线程调度、内存管理和中断处理、调试支持等;

B、对象存储:包括文件系统、系统注册表、CE 数据库的持久存储;

C、通讯接口:提供对各种通信硬件和数据协议的支持;

D、GWES:支持显示文本和图像,提供用户输入所需的图形和窗口功能;

l 应用层:是应用程序的集合,通过调用Win32 API 来获得操作系统服务;





它具有层次性强、可移植性好、组件可剪裁、强调编程接口和支持上层应用等特点。不过,这个划分并不绝对,而是根据产品需求来决定。



或许以上的解释只能对Windows CE系统有个粗略的了解,现在我们看看它的组件到底有什么:

CoreDLL

CoreDLL在系统中的地位举足轻重,它分隔了应用程序和操作系统的其他模块,是使系统稳定的保护性屏障。

它提供了两类功能:

第一类是外部应用程序系统功能的代理,负责系统API的管理和安装应用程序,系统应用程序的核心软件中断过程就发生在这里;

第二类提供了类似字符串处理、随机数生成、时间计算等基本支持函数。

CoreDLL的程序代码位于../PRIVATE/WINDOWS CEOS/COREOS/CORE目录下。

NK

NK透过nk.exe在系统中运行,它是Windows CE操作系统的真正核心,主要包含以下6类:功能处理器进程、内存管理、异常处理、系统内的通信机制、为其他部分提供核心应用程序例程(routine)、为系统范围内侦错提供的支持。

NK.exe的程序代码非常精简,始终以较高的优先级和处理器特权级别(privilege mode)执行。

NK的程序代码位于../PRIVATE/WINDOWS CEOS/COREOS/NK目录下。

设备管理模块

这是Windows CE的设备管理核心,透过Device.exe来执行。

它提供系统范围内基本的设备列表管理、随插即用管理、电源管理、I/O资源管理,并提供了设备驱动程序运作的基本机制。

这一部分的程序代码位于../PRIVATE/WINDOWS CEOS/COREOS/DEVICE目录下。

数据存储模块

数据存储模块主要是提供系统基本的数据存储能力,其中包括对象存储以及文件系统,这些功能主要是透过filesys.exe来执行。

原始代码部分位于../PRIVATE/WINDOWS® CEOS/COREOS/FSD目录和../PRIVATE/WINDOWS CEOS/COREOS/STORAGE目录下。

GWES模块

Windows CE通过这个模块提供的图形接口提供了几个主要的功能:基本的绘图引擎、窗口管理、接口的事件机制等。

代码位于../PRIVATE/WINDOWS CEOS/COREOS/GWE目录下。

通信模块

网络通信模块非常独立,它通过一系列的动态链接库来运作。

位于../PRIVATE/WINDOWS CEOS/COMM目录下。

OAL模块

这个模块没有确定的形态,主要包括和硬件相关的若干功能,例如:处理器的专用支持程序代码、总线控制器的驱动、系统引导程序、系统初始化程序等。一般来说OAL不具有可移植性。



驱动程序模块

驱动程序模块实际上并不是一个单独的实体,而是一个由驱动程序实体构成的集合,它包括很多组件,执行也比较复杂,可以看作一个具体的类别驱动程序,它们由不同的模块管理,例如services.exe和gwes.exe。

其他一些需要注意的小问题:

Platform Builder 7.0作为VS2008的一个插件使用,且与之前所有版本的WinCE开发环境都不兼容,需要独立安装;

WinCE只支持UNICODE,所以char必须改为TCHAR, WCHAR;

WinCE不支持重叠I/O;

WinCE的许多APIs功能都受限,如:CreateThread 函数在许多参数在WinCE下都不支持,第1、2、5的参数值需要设置为NULL或0;

好了,开篇对于Windows Embedded Compact7的体系结构和组件做了简单的介绍,下一次和大家探讨一下关于它的内存问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: