• WinCE 的发展史及相关基础知识


    这两天查找了一下 WinCE 的发展史,及其它一些基本的知识。将这些基础的东东放在一起,以方便学习。如果有什么不对的地方,将提出来。
    (1)Windows CE/Windows Embedded 的差别
    WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
    Windows XP Embedded是一种嵌入式操作系统,可以以组件化形式提供 Windows 操作系统功能。Windows XP Embedded 与 Windows XP Professional 一样基于二进制,包含 10,000 多个独立功能组件,因此开发人员在自定义设备映像中管理或降低内存占用量时可以选择并获得最佳功能。
    (2)WinCE 发展史 
    1996年
    第一代微软移动设备操作系统 Windows CE 1.0
    Windows CE 1.0是一种基于 Windows95 的操作系统,其实就是单纯的 Windows95 简化版本。
    为手持式PC而设计。该手持式PC配有480*240或640*240的屏幕,有一个很小的矩形键盘。
    1998年
    Fall Comdex 97大会上,升级版本为Windows CE 2.0(设备称为Palm-Size PC)
    WinCE 2.0 不仅比 CE1.0 快的多,而且是彩色显示,具有略大一些的键盘。Windows CE 2.0仍是基于Win95的操作系统。
    2000年 4 月
    新的操作系统改名为Pocket PC 2000(也简称为 Pocket PC或者Windows CE3.0)
    WinCE3.0是微软的Windows Compact Edition,是一个通用版本,并不针对掌上产品,标准PC、家电和工控设备上也可以安装运行。WinCE3.0支持5系列CPU: x86,PowerPC,ARM,MIPS,SH3/4。WinCE3.0属于付费软件,安装许可(Licence)费用为$20,10份起,批量时大致能降到$15/一份。在2002年8月,专门为手机优化过的微软Pocket PC 2002 Phone Edition操作系统匆匆问世,2002年10月,国内第一款PPC手机--多普达686上市了,随后熊猫推出了CH860、联想推出ET180。
    2001年
    Pocket PC 2002问世
    2002年末
    推出增加手机功能的 Pocket PC Phone 2002,同年,Smartphone 2002(Smartphone不支持触摸)诞生
    2002 年 11 月
    Windows CE. NET(即Windows CE 4.0)是微软于2002年1月份推出的首个以.NET为名的操作系统,从名字上我们就可以知道它是微软的.NET的一部分。WinCE. NET是WinCE3.0的升级,同时还加入.NET Framework精简版,支持蓝牙和.NET应用程序开发。
    .NET特别强调网络功能,该操作系统主要为移动用户提供基于网络的服务和内容,它不但能够支持蓝牙和802.11b无线局域网技术,同时还可以应用于其他设备,如数码相机、小型客户端设备、机顶盒,以及自动化设备等。
    2003 年 4 月
    Windows CE. NET 4.2:Windows CE. NET 4.0 的升级版,对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,基于其开发的设备将从这些微小但重要的变化中获得更好的性能和更强的Windows集成功能。
    2003年 6 月
    微软将Pocket PC 2003和Smart Phone 2003统一改称为Windows Mobile 2003,依然包括Windows Mobile 2003 for Pocket PC、Windows Mobile2003 forPocket PC Phone Edition和Windows Mobile 2003 forSmartphone。
    Windows Mobile 2003是以Windows CE 4.2为核心。     
    2004 年 8 月
    微软宣布 Windows CE5.0 扩大开放程序源代码。在这个开放源代码计划授权下,微软开放 250 万行源代码程序作为评估套件(evaluation kit),支付 Win CE5.0 核心每台机器3美元的授权费用。
     D3D Mobile、FastStart、GDI功能增强。 
     增强安全性。 
     广泛的源代码访问和设计灵活性。 
     增加25%的源代码开放。
    2005年
    微软没有延续年号的命名方法,采用操作系统所采用的Windows CE内核版本命名,将新的操作系统称为WindowsMobile 5.0。依然包括Windows Mobile 5.0 for Pocket PC、WindowsMobile 5.0for Pocket PC Phone 和Windows Mobile 5.0 forSmartphone。
    2006 年 11 月
    微软公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。微软将首次在“共享源计划(Microsoft Shared Source programme)”中100%毫无保留地开放Windows Embedded CE 6.0内核,(GUI图形用户界面不开放)比Windows Embedded CE的先前版本的开放比例整体高出56%。Windows Embedded CE 6.0重新设计的内核具有32,000个处理器的并发处理能力,每个处理有2GB虚拟内存寻址空间,同时还能保持系统的实时响应。
    2007年
    微软在1月份的SGSM大会上微软正式推出WindowsMobile6.0移动设备操作系统,包括三个版本,但是版本分类采用了不同的命名方式:Professional(支持触摸屏智能手机)、Standard(非触控屏智能手机)、Classic(不具备手机功能的手持设备)。
    2008年
    微软推出Windows Mobile 6.1 操作系统,其主要的特性在于稳定性的提高方面。
    2009年
    即将发布Windows Mobile 6.5 操作系统,新版系统重点强化了对触摸操作的支持和优化,比传统方格式界面更易于触摸点击,例如蜂窝形的主菜单界面。新版本的Internet Explorer Mobile浏览器也增加了可触摸的页面缩放滑竿和常用命令。“Windows Marketplace”在线商店将为手机提供各类应用的直接下载
    2010 年 6 月
    在 2010 年6月1日-5日的台北 COMPUTEX 展会上,微软正式公布了其嵌入式产品线最新的一员 Windows Embedded Compact 7。微软推出的 Windows Phone 7 所采用的内核正是使用了类似的 WinCE 7 内核。不仅如此,Windows Phone 平台也是基于 WinCE 平台而定制出来的产品。
    2013 年 3 月
    微软发布一个嵌入式系统被公布出来,它的名字叫 Windows Embedded Compact 2013,它可以同时工作于 x86 和 ARM 架构体系下。
    核心操作系统的改进,包括内存管理和网络功能;
    •文件系统的性能改进,使设备始终可用;
    •启动优化,使用快照启动,实现设备在几秒钟内进入驱动程序加载,进入特定UI等已知状态;
    •内置支持Wi-Fi、蜂窝网络和蓝牙技术,以及无缝连接到Windows Azure,实现强大的互联智能系统;
    •对创建了HTML5浏览器等附加解决方案的成千上万开发者和合作伙伴提供支持


    (3)因为 WINCE 是 32 位的嵌入式操作系统,所以 WINCE 的虚拟寻址能力可达4GB(为什呢,2^32=4GB)。
    但是 WINCE5.0 和 XP 操作系统的每个进程独享 4GB 虚拟地址空间不同,WINCE5.0 中所有的进程共享一个 4GB 的虚拟地址空间。这 4GB 的虚拟地址空间被分为两个 2GB 的区域,其中低地址的那2GB区域 (0x00000000~0x7FFFFFFF)是用户虚拟空间,这块虚拟空间由应用程序的共用,也就是说应用程序申请的内存都会从低2GB虚拟内存空间分配的;而高2GB区域(0x80000000~0xFFFFFFFF)是操作系统的内核虚拟空间,供WINCE操作系统本身使用。
    WINCE5.0 的进程数量最多只能达到 32 个,而且每个进程只能独享 32MB 的虚拟空间(这个 32MB 的空间也叫一个 slot),这33个进程(32+1,这个1就是指slot0,因为slot0用于映射当前在处理器上执行的线程所在的进程)占用的虚拟空间0x00000000~0x41FFFFFF(slot0~slot32),slot33~slot63对应的虚拟地址空间是0x42000000~0x7FFFFFFF,这块虚拟地址空间是由所有的进程共享的,如果每个进程独享的32MB虚拟地址空间不够用,那么进程可以在这个范围申请虚拟地址空间,这个范围包括对象存储和内存映射文件(.map文件,每个进程都有自己的map文件)。此范围的最后一个slot(slot63)从0x7E000000~0x7FFFFFFF用来存放纯资源DLL。如果某个DLL里面只有资源信息(比如图标、位图、对话框及字符串表灯),这个DLL就会被加载到这个空间内。
    WinCE 6.0 重新设计的内核具有 32,000 个处理器的并发处理能力,每个处理有 2GB 虚拟内存寻址空间,同时还能保持系统的实时响应。


    (4) 驱动框架变化
    (a)应用层/内核层
    (b)框架的变化:从 4.2 到 5.0/从5.0 到 6.0
    (5) 应用框架变化
    (a) Win32/MFC,变化不大
    (b) ActiveSync 通过 USB 与开发板连接
    (c) 模拟器


    (6) WinCE 开发环境搭建分为两部分:
    (a)WinCE 系统定制与驱动开发
    Platform Builder 与相关 BSP(Board Support Package:板级支持包) 的开发。
    早期的 PB 是一个独立的工具,从 WinCE5.0 开发 PB 做为 Visual Studio 的一个插件。所以,安装 PB 前需要安装对应版本的 Visual Studio。
    (b)应用开发环境
      WinCE 1.0 和 2.0 的开发环境不明。
      EVT3.0(Embedded C++ 3.0 和 Embedded VB 3.0),Embedded C++ 4.0(没有看到对应的 VB版本),Visual Studio 2005/2008。
      应用开发需要安装 SDK(Software Development Kit:软件开发工具包),由于 WinCE 支持不同类型的 CPU,选择 SDK后,就可以选择 SDK 支持的 CPU 类型。


    (7) 应用框架
    与 Windows 下的框架基本相同,需要注意的是字符的编码。Windows CE下所有系统 API 只有 Unicode 版本,默认的字符串也采用 Unicode 编码。
    API 只有 Windows API 的一个子集,但增加了一些移动设备特有的 API。
    (a)Win32
    (b)MFC


    (8) 消息机制
    Windows 的消息系统是由3个部分组成的:
    a)消息队列。Windows能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取消息,然后分派给某个窗口。
    b)消息循环。通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。
    c)窗口过程。每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后响应它。窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Windows。
    注意回调函数是程序中的一种函数,它是由 Windows 或外部模块调用的。
    一个消息从产生到被一个窗口响应,其中有5个步骤:
    a) 系统中发生了某个事件。
    b) Windows 把这个事件翻译为消息,然后把它放到消息队列中。
    c) 应用程序从消息队列中接收到这个消息,把它存放在 TMsg 记录中。
    d) 应用程序把消息传递给一个适当的窗口的窗口过程。
    e) 窗口过程响应这个消息并进行处理。
    步骤c和d构成了应用程序的消息循环。
    消息循环往往是 Windows 应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。
    Windows 操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的。如果不理解 Windows 消息处理机制,肯定无法深入的理解 Windows 编程。


    (9)WinCE 下路径的最大长度
    一般都未达到 MAX_PATH(260)的限制,目录的级数与目录名的长度有一定的关系:目录名越长,目录级数越少。
    WinCE 下每个目录中最大文件个数
    http://blog.csdn.net/91program/article/details/27994109

  • 相关阅读:
    browserwindow.js
    Spring官网下载dist.zip的几种方法
    Vmware vsphere client
    chkconfig
    【WS-Federation】到底有多少公司在用WS-Federation
    【Passport】微软过时的技术
    【NHibernate】应用层面需要掌握的知识汇总
    【NHibernate】HQL入门
    【内存】特别想看下程序在内存中的状态
    【NHibernate】配置- sql打印
  • 原文地址:https://www.cnblogs.com/91program/p/5205024.html
Copyright © 2020-2023  润新知