3328
- 收藏
- 点赞
- 分享
- 举报
深入理解Windows CE
Windows ce被设计成为一种分层结构,从底层向上分别为硬件层、OEM层、操作系统层和应用层。每一层由由不同的模块组成,每个模块由不同的组件组成。这种层次性的结构试图尽量将硬件和软件、操作系统与应用程序隔开,以便于实现系统的移植,便于进行硬件、驱动程序、OS和应用程序等开发的人员分工作合作、并行开发。
硬件层
指CPU、存储器、I/O端口中、扩展板卡等组成的嵌入式硬件系统,是Windows ce操作系统必不可少的载体。
OEM层
是嵌入式硬件与Windows ce操作系统的接合层。Windows CE操作系统要能在持定的硬件上运行,硬件必须要能够加载Windows ce操作系统,同时,操作系统也要能够实现对硬件系统的初始化并驱动这些硬件。OEM层主要由下列模块组成。
(1)OAL
是Windows ce内核与目标硬件之间的一个代码层,主要用来处理Windows ce内核与目标硬件设备之间的通信,基功能主要包括CPU初始化、处理中断、计时器等。
(2)boot Loader(启动加载程序)
将Windows ce操作系统纳核加载到目标硬件系统的内存并开始启动操作系统的执行。
(3)配置文件
配置文件用于对Windows ce操作系统的创建过程进行配置,其主要包括源代码配置文件和映 配置文件。源代码朽置文件用于对操作系统 行时映像用到的模块、特征和源代码的创建方式进行配置,而映像配置文件用于对最终操作系统运行时映像创建方式进行配置。
(4)驱动程序
驱动程序是对物事或虚拟设备功能的软件抽象,是操作系统与外部设备或虚拟设备的桥梁,应用程序只有通过驱动程序接口才能实现对物理或虚拟设备的操作。物理设备包括网卡、声卡、计时器、串并口等,而文件系统是虚拟设备的一个例子。windows ce下的设备驱动既要实现Windows ce规定的驱动程序接口,将设备的功能呈现给应用程序和操作系统经,也需要利用操作系统提供的服务,实现驱动程序的加载、调度和卸载。Windows ce 下的驱动被设计成为用户模式的应用程序,没有必要必须运行在内核模式。
在OEM层的代码构成中,OEM层主要由CSP代码和BSP代码组成,其中CSP支持不同的徽处理器体系结构,而BSP支持不同的徽处理器扩展和外设,它由Boot Loader、OAL和驱动程序代码组成。
操作系统层
是Windows ce的核心层,它既要为下层OEM层提供接口和服务,也要为上层的应用程序提供服务与应用程序编程接口。
(1)核心
核心是Windows ce操作系统的最小定制内核,它为任何基于Windows ce的设备提供处理器调度 、内存管理、异常处理及系统内通信等系统功能,并为应用程序使用这些核心功能提供内核服务。Windows ce操作系统包含很多不同的文件,上文件都为操作系统提供不同的功能和服务,但只有Nk.exe为Windows ce操作系统的内核。Nk.exe始终运行在较训的优先级和处理器优先级上。除中断例程外,一般不允许操作系统纳的其他他占它的运行。
(2)Core DLL
该模块是最基本的操作系统模块,它为其他模块提供核心功能。所有的操作系统定制设计都必须包含这个模块,但并不是这个模块中的所有组件都是必须需的。在绝大多数情况下,Core DLL并不完成实际操作,它只是作为应用层与操作系统层的一个桥梁,将应用层对操作系统的调用传递给操作系统相应的模块,并触发对相应进程的本地过程调用,如将所有绘图和窗口调用发给GWES.exe。
(3)对象存储模块
对象存储是Windows ce为应用程序及其相关数据提供的存储方式,即使在关闭系统主电源只有后备电源的情况下,对象存储也能保证数据 不会丢失。通常非易的RAM芯片构成了物理的对象存储。理论上,对象存储是由文件系统、数据库、系统注册表三种类型的永久存储存储构成的。虽然文件系统、数据库和系统注册表共享一个单独的内存堆,但在实际应用中它们没有必要物理上驻留在对象存储里,它们可以驻留在ROM、单独到可安装文件系统或外部设备上。为此,Windows ce的文件系统又区分为RAM文件系统、ROM文件系统、FAT文件系统。数据的产生和访问是按照存储类型进行的,而与实际使用的物理存储设备无关。
操作系统使用对象存储主要完成下列任务:
a.管理栈和内存堆
b.必要时压缩和展开文件
c.无缝地集成基于ROM的应用和基于RAM的数据
(4)多媒体技术模块
多媒体技术模块将桌面计算机上的高性能多媒体技术引入到了嵌入式设备领域。
(5)图形窗口和事件系统模块
该模块包含大部分的核心Windwos ce功能,它集成了图形设备接口、窗口管理器和事件管理器。GWES模块是Windows ce操作系统高度组件化的部分,它分别由user和GDI两部分组成,user用来处理 消息、事件及鼠标和键盘等的用户输入,而GDI用来处理图形的屏幕和打印输出等。
在运行的Windows ce操作系统中,图形窗口和事件系统模块体现为Gwes.exe进程。GWES模块主要由以下三种类型的组件构成:
a.支持图形驱动的GDI组件
b.支持窗口控件的USER组件
c.支持其他窗口和图形功能的一般GWES组件。
(6)设备管理器模块
是运行在Windows ce操作系统下体现为Device.exe的一个进程,它提供基本的设备列表管理、即插即用管理、i/o资源分配管理及驱动的加载、卸载和跟踪已经加载的驱动及其接口等,它由内核加载并连续运行,一旦运行就永不缺载
(7)通信服务与网络模块
用于为基于Windows ce的设备提供有线或无线通信能力,ce设备能够与其他设备或计算机进行连接与通信。
(8)应用和服务开发模块
是为应用程序开发提供编程接口和服务支技的库模块,这些库模块一般 都 是一些DLL,微软并不提供这些DLL的源代码。应用和服务开发模块提供了对活动模板库(ATL)、C运行库、组件服务(COM和DCOOM)、消息队列、MFC等的支持。
应用层是在操作系统提供的Win32 API的基础上,由Win32 API构建的应用程序组成,这些应有程序为基于Windows ce的设备提供增值功能和服务。应用层的程序主要包括两部分:一部分是由Windows ce本身提供的应用程序,一部分是用户根据自身设备需要程序。
应用程序
(1)Windows ce 应用程序
是微软提供的应用程序。
(2)Interne客户服务
提供了对浏览器应用程序、定制浏览器技术及脚本语言解析引擎的支持。其组件包括标准的浏览器组件、Internet Explorer6.0浏览器应用程序、Pocket Inernet Explorer浏览器应用程序及相关的插件和XML组件等。
(3)用户接口
构成了用哀恸与基于Windows ce的设备和应和程序的交互方式,它由鼠标接口、网络用户接口等程序组成。另外国际化模块也可以作为用户接口的一部分,国际化模块主要提供对本地化的用户接口和本地化特定的功能提供支持。国际化模块的应用程序包括本地化的资源文件、字库、输入法管理器、国家语言支技和多语言用户接口。
(4)客户应用程序
客户应用程序是用户为特定需要编写的特定功能的windows ce应用程序,一般在PB或EVC中创建。
硬件层
指CPU、存储器、I/O端口中、扩展板卡等组成的嵌入式硬件系统,是Windows ce操作系统必不可少的载体。
OEM层
是嵌入式硬件与Windows ce操作系统的接合层。Windows CE操作系统要能在持定的硬件上运行,硬件必须要能够加载Windows ce操作系统,同时,操作系统也要能够实现对硬件系统的初始化并驱动这些硬件。OEM层主要由下列模块组成。
(1)OAL
是Windows ce内核与目标硬件之间的一个代码层,主要用来处理Windows ce内核与目标硬件设备之间的通信,基功能主要包括CPU初始化、处理中断、计时器等。
(2)boot Loader(启动加载程序)
将Windows ce操作系统纳核加载到目标硬件系统的内存并开始启动操作系统的执行。
(3)配置文件
配置文件用于对Windows ce操作系统的创建过程进行配置,其主要包括源代码配置文件和映 配置文件。源代码朽置文件用于对操作系统 行时映像用到的模块、特征和源代码的创建方式进行配置,而映像配置文件用于对最终操作系统运行时映像创建方式进行配置。
(4)驱动程序
驱动程序是对物事或虚拟设备功能的软件抽象,是操作系统与外部设备或虚拟设备的桥梁,应用程序只有通过驱动程序接口才能实现对物理或虚拟设备的操作。物理设备包括网卡、声卡、计时器、串并口等,而文件系统是虚拟设备的一个例子。windows ce下的设备驱动既要实现Windows ce规定的驱动程序接口,将设备的功能呈现给应用程序和操作系统经,也需要利用操作系统提供的服务,实现驱动程序的加载、调度和卸载。Windows ce 下的驱动被设计成为用户模式的应用程序,没有必要必须运行在内核模式。
在OEM层的代码构成中,OEM层主要由CSP代码和BSP代码组成,其中CSP支持不同的徽处理器体系结构,而BSP支持不同的徽处理器扩展和外设,它由Boot Loader、OAL和驱动程序代码组成。
操作系统层
是Windows ce的核心层,它既要为下层OEM层提供接口和服务,也要为上层的应用程序提供服务与应用程序编程接口。
(1)核心
核心是Windows ce操作系统的最小定制内核,它为任何基于Windows ce的设备提供处理器调度 、内存管理、异常处理及系统内通信等系统功能,并为应用程序使用这些核心功能提供内核服务。Windows ce操作系统包含很多不同的文件,上文件都为操作系统提供不同的功能和服务,但只有Nk.exe为Windows ce操作系统的内核。Nk.exe始终运行在较训的优先级和处理器优先级上。除中断例程外,一般不允许操作系统纳的其他他占它的运行。
(2)Core DLL
该模块是最基本的操作系统模块,它为其他模块提供核心功能。所有的操作系统定制设计都必须包含这个模块,但并不是这个模块中的所有组件都是必须需的。在绝大多数情况下,Core DLL并不完成实际操作,它只是作为应用层与操作系统层的一个桥梁,将应用层对操作系统的调用传递给操作系统相应的模块,并触发对相应进程的本地过程调用,如将所有绘图和窗口调用发给GWES.exe。
(3)对象存储模块
对象存储是Windows ce为应用程序及其相关数据提供的存储方式,即使在关闭系统主电源只有后备电源的情况下,对象存储也能保证数据 不会丢失。通常非易的RAM芯片构成了物理的对象存储。理论上,对象存储是由文件系统、数据库、系统注册表三种类型的永久存储存储构成的。虽然文件系统、数据库和系统注册表共享一个单独的内存堆,但在实际应用中它们没有必要物理上驻留在对象存储里,它们可以驻留在ROM、单独到可安装文件系统或外部设备上。为此,Windows ce的文件系统又区分为RAM文件系统、ROM文件系统、FAT文件系统。数据的产生和访问是按照存储类型进行的,而与实际使用的物理存储设备无关。
操作系统使用对象存储主要完成下列任务:
a.管理栈和内存堆
b.必要时压缩和展开文件
c.无缝地集成基于ROM的应用和基于RAM的数据
(4)多媒体技术模块
多媒体技术模块将桌面计算机上的高性能多媒体技术引入到了嵌入式设备领域。
(5)图形窗口和事件系统模块
该模块包含大部分的核心Windwos ce功能,它集成了图形设备接口、窗口管理器和事件管理器。GWES模块是Windows ce操作系统高度组件化的部分,它分别由user和GDI两部分组成,user用来处理 消息、事件及鼠标和键盘等的用户输入,而GDI用来处理图形的屏幕和打印输出等。
在运行的Windows ce操作系统中,图形窗口和事件系统模块体现为Gwes.exe进程。GWES模块主要由以下三种类型的组件构成:
a.支持图形驱动的GDI组件
b.支持窗口控件的USER组件
c.支持其他窗口和图形功能的一般GWES组件。
(6)设备管理器模块
是运行在Windows ce操作系统下体现为Device.exe的一个进程,它提供基本的设备列表管理、即插即用管理、i/o资源分配管理及驱动的加载、卸载和跟踪已经加载的驱动及其接口等,它由内核加载并连续运行,一旦运行就永不缺载
(7)通信服务与网络模块
用于为基于Windows ce的设备提供有线或无线通信能力,ce设备能够与其他设备或计算机进行连接与通信。
(8)应用和服务开发模块
是为应用程序开发提供编程接口和服务支技的库模块,这些库模块一般 都 是一些DLL,微软并不提供这些DLL的源代码。应用和服务开发模块提供了对活动模板库(ATL)、C运行库、组件服务(COM和DCOOM)、消息队列、MFC等的支持。
应用层是在操作系统提供的Win32 API的基础上,由Win32 API构建的应用程序组成,这些应有程序为基于Windows ce的设备提供增值功能和服务。应用层的程序主要包括两部分:一部分是由Windows ce本身提供的应用程序,一部分是用户根据自身设备需要程序。
应用程序
(1)Windows ce 应用程序
是微软提供的应用程序。
(2)Interne客户服务
提供了对浏览器应用程序、定制浏览器技术及脚本语言解析引擎的支持。其组件包括标准的浏览器组件、Internet Explorer6.0浏览器应用程序、Pocket Inernet Explorer浏览器应用程序及相关的插件和XML组件等。
(3)用户接口
构成了用哀恸与基于Windows ce的设备和应和程序的交互方式,它由鼠标接口、网络用户接口等程序组成。另外国际化模块也可以作为用户接口的一部分,国际化模块主要提供对本地化的用户接口和本地化特定的功能提供支持。国际化模块的应用程序包括本地化的资源文件、字库、输入法管理器、国家语言支技和多语言用户接口。
(4)客户应用程序
客户应用程序是用户为特定需要编写的特定功能的windows ce应用程序,一般在PB或EVC中创建。
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2012-12-05 14:27:39
-
22013-11-21 21:50:42
-
2012-12-05 11:12:01
-
2012-12-05 11:13:14
-
2012-12-05 13:33:42
-
2010-06-01 23:29:28
-
2008-08-18 22:21:13
-
2008-05-27 11:09:53
-
2012-12-05 11:07:55
-
2010-06-01 23:25:04
-
2008-07-18 20:42:04
-
2008-07-24 01:33:17
-
2012-12-05 13:34:26
-
2012-12-05 13:38:25
-
2012-12-04 14:09:01
-
2012-12-05 14:39:10
-
2012-12-05 14:19:35
-
2008-11-02 17:14:58
-
2012-12-04 13:54:12
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
-
10求HI3519DV500_SDK_V2.0.1.1
-
5有偿求HI3516DV500 + OV5647驱动
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认