注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

男儿当自强的博客

每天进步一点

 
 
 

日志

 
 
 
 

WINCE6.0体系结构学习  

2012-02-14 17:28:26|  分类: wince操作系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

时间:2012.02.14

类别:WINCE系统开发

********************************LoongEmbedded********************************

 

WINCE6.0的体系结构图如下图所示:

WINCE6.0体系结构学习 - 男儿当自强 - 男儿当自强的博客

 

图1 WINCE的体系结构

根据上图可以把WINCE6.0体系结构分为硬件层、OEM层、操作系统层和应用层,这四层紧密合作,相互配合来完成从应用程序的调用到对硬件的操作和交互。

 

1.      硬件层

硬件平台的核心是嵌入式处理器,而嵌入式处理器的种类很多,处理能力和主频的速度各有差异,如果要跑WINCE操作系统,需要处理器包含MMU单元。WINCE6.0支持的ARM、MIPS、x86、SHx这四种CPU体系,在这点上嵌入式linux支持更多CPU体系结构的处理器。

2.      OEM层

OEM(Original Equipment Manufacturer,原始设备制造商)层位于WINCE的操作系统层和硬件层,主要的作用是对硬件进行抽象并且提供统一的接口让操作系统来和硬件交互。OEM层主要包括OAL(OEM Abstraction Layer,OEM抽象层)、bootloader、配置文件和驱动程序。

 

3.      操作系统层

 

由图1可知操作系统层包括Coredll、文件系统、GWES、设备管理器、驱动(分为用户模式和驱动模式的驱动)、services服务和内核(Kernel)这些部分组成。

3.1 Coredll

coredll.lib,Coredll模块为其他WINCE模块提供核心(core)功能,此模块是WINCE操作系统的一个不可或缺的模块,但它不一定需要所有的组成部分。Coredll模块包含配置OS的结构体、宏定义、函数等重要的内容,这些信息定义在Celog.h、Pkfuncs.h、Pwinreg.h、Pwinuser.h和Windbase.h头文件中,为了引入(import)这些功能,必须链接coredll.lib文件。

Coredll模块包含很多部分,比如battery、cormain等部分,这些部分都是以lib的形式提供,具体看help文档Developing an OS Design->Windows Embedded CE Moudules and Components->Common Windows Embedded CE Modules下的介绍。

WINCE有一个重要的设计思想就是所有的应用程序都不能直接与操作系统或是硬件打交道,如果应用程序需要访问WINCE提供的服务,就只能通过coredll.dll来进行,也就是说如果我们要调用system API时不能直接调用,而是先转到coredll.dll,由它帮我们去调用system API的。另外,WINCE系统除了有system API,同时也提供application API(类似于桌面windows系统的WIN32API),开发者可以通过比如是LoadLibrary(TEXT("winsock.dll"))或在sources文件的链接目标库包含winsock.lib的方式来调用这些application API,比如还有Wininet.dll、Msml.dll和Winhttp.dll等。

 

3.2 文件系统(filesys.dll)

Filesys.dll主要实现文件系统和存储管理

WINCE6.0体系结构学习 - 男儿当自强 - 男儿当自强的博客

 

图2 filesys.dll的功能架构

 

3.3 GWES(gwes.dll)

WINCE把微软WIN32 应用编程接口(API)、用户接口(UI)和图形设备接口(GDI)的库整合到图形窗口和事件子系统模块(GWES)中,GWES是用户、应用程序和OS之间的接口,它支持构成WINCE用户接口的所有窗口、对话框、控件、菜单和资源,还提供了光标、位图、文字和图标信息,GWES负责加载及管理HID驱动、显示驱动和键盘驱动。

 

3.4 设备管理器(device.dll)

设备管理器被kernel加载并且一直运行,它负责加载、卸载和管理设备驱动及他们的接口,当设备管理器加载的时候,它同时加载I/O资源管理器来从注册表中读取可用资源列表。

 

 

4.      应用层

从系统的角度来看,每个应用程序都是WINCE中的一个单独的进程,应用程序运行在优先级较低的权限下它使用操作系统提供的Win32 API来进行系统调用基交互。

 

  评论这张
 
阅读(1911)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017