Windows CE 6.0 系统框架
wince6.0_开发环境搭建
Window CE6.0开发平台搭建详解2011年08月29日Windows CE6.0的开发无非两大方面:操作系统开发和应用程序开发,操作系统开发包括系统的定制,驱动开发和其他需要完成的底层工作。
应用程序开发主要是与实际应用结合紧密的程序开发。
要搭建这样的开发环境,至少要包括两部分,一个是硬件平台,一个是软件平台,在Windows CE6.0的开发中,微软公司把这些开发软件集成到了vs2005中。
Windows CE6.0开发环境需要安装的软件比较多、比较大,至少要10GB的空间,而且有着严格的安装顺序要求,一旦其中某一个环节出错,都会导致软件运行出现故障,为确保安装顺利,请仔细阅读本文,按照步骤一步一步进行安装。
一、所需安装软件1、Visual Studio 20052、Visual Studio 2005 Service Pack 13、MSDN4、platform builder for Windows Embedded CE6.05、Windows Embedded CE 6.0 Platform Builder Service Pack 16、Windows mobile 6的sdk二、所用磁盘空间在安装之前,请检查电脑的磁盘空间,VS2005和Windows Embedded CE6.0均是比较大的软件,要占硬盘好10G多的空间,建议不要装在C盘,但是我装Windows Embedded CE6.0的时候,发现不能更改安装路径,没办法,只能把Windows Embedded CE6.0装在C盘。
三、安装顺序1.安装Visual Studio 2005最好选择自定义安装方式,把不用的一些组件都删掉,这样会节省不少的磁盘空间。
WINCE6.0的Platform Builder不像WINCE5.0是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成。
Windows_CE_6.0搭建开发环境及模拟器的使用
Windows Embedded CE 6.0开发环境搭建过程1、先装Visual Studio 2005, 我拿到的是Professional Edition 英文版的。
需要使用虚拟光驱软件加载后再安装,公司目前存在的另一个以散装文件的方式提供的安装后无法安装升级,最后在编译和下载内核的时候会出现问题。
安装过程中最好别用DEFAULT安装,把组件CUSTOM一下,不然会花很多冤枉的磁盘空间。
WINCE600的Platform Builder不像WINCE500是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成。
在此之前如果你已经安装了Wince6.0 的话,建议你将它卸载干净,等第一步和第二步都顺利完成之后再重新安装。
因为Wince6.0的PB是作为VS的一个插件存在的。
2、安装Visual Studio 2005 Service Pack 1, 这是必须的装的, Release Note 里面提到SP1提供了Windows Embedded 6.0 platform and tools support。
不同的VS2005版本(Standard / Professional / Tem Edition) 会对应到不同的下载上,不过目前这个版本可以同吃以上多种版本,官方命名为:VS80sp1-KB926601-X86-ENU.exe,如果你的操作系统是Vista版本的话,你需要去微软的官方网站重新下载,因为这个版本只是针对XP操作系统升级的包。
安装升级包的时间比较长,需要耐心等待!3、安装MSDN,从VS2005的安装页里选择。
新版的MSDN界面功能看起来比较酷,但CE6的Product Documentation写得实在潦草,不少细节貌似没写清楚,所以这里建议选上CE5的产品文档留着以后作参考。
4、安装Windows Embedded CE 6.0。
应用程序开发人员可以不装,可以利用CE6生成的SDK 来工作;但是不装的话,恐怕无法在本地MSDN得到CE6的产品文档,另外还有PUBLIC 目录下丰富的application sample code了。
wince 6.0
微软还将Visual Studio 2005专业版作为Windows Embedded CE 6.0的一部分一并推出。这对微软来说又是一次史无前例的突破。Visual Studio 2005专业版将包括一个被称为Platform Builder的功能强大的插件,它是一个专门为嵌入式平台提供的“集成开发环境”。这个集成开发环境使得整个开发链融为一体,并提供了一个从设备到应用都易于使用的工具,极大地加速了设备开发的上市。 Windows Embedded CE 6.0重新设计的内核具有32,000个处理器的并发处理能力,每个处理有2GB虚拟内存寻址空间,同时还能保持系统的实时响应。这使得开发人员可以将大量强大的应用程序融入到更智能化、更复杂的设备中。无论在路上、在工作还是在家里,都可以使用这种设备。
在路上: Windows Embedded CE 6.0加入了新的单元核心数据和语音组件,这使得设备能够通过蜂窝通讯网络建立数据连接和语音通话,从而实现机器对机器的通讯应用场景,并构建相应的设备,如停车表、自动售货机和GPS设备等。
在工作上: Windows E源自bedded CE 6.0包含的组件更便于开发者创建通过Windows Vista内置功能无线连接到远程桌面共享体验的投影仪。
在Windows Embedded诞生十周年之际,微软将首次在“共享源计划(Microsoft Shared Source programme)”中100%毫无保留地开放Windows Embedded CE 6.0内核,(GUI图形用户界面不开放)比Windows Embedded CE的先前版本的开放比例整体高出56%。“共享源计划”为设备制造商提供了全面的源代码访问,以进行修改和重新发布(根据许可协议条款),而且不需要与微软或其他方共享他们最终的设计成果。尽管Windows操作系统是一个通用型计算机平台,为实现统一的体验而设计,设备制造商可以使用Windows Embedded CE 6.0这个工具包为不同的非桌面设备构建定制化的操作系统映像。通过获得Windows Embedded CE源代码的某些部分,比如:文件系统、设备驱动程序和其他核心组件,嵌入式开发者可以选择他们所需的源代码,然后编译并构建自己的代码和独特的操作系统,迅速将他们的设备推向市场。
Windows CE 6.0设备驱动结构与系统调用性能
Windows CE 6.0设备驱动结构与系统调用性能
钟川;陈金坦
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2009(000)002
【摘要】介绍Windows CE 6.0新的特征,重点分析Windows CE 6.0在存储嚣管理、设备驱动程序结构、系统调用性能,介绍Windows CE 6.0在其他方面的改进.【总页数】2页(P142-143)
【作者】钟川;陈金坦
【作者单位】广东省公路管理局,广州,510075;广东省公路管理局,广州,510075【正文语种】中文
【中图分类】TP3
【相关文献】
1.微软Windows Embedded CE 6.0 R3支持丰富的用户体验及与Windows 7的连接 [J],
2.Windows CE和桌面Windows 2000/XP设备驱动开发的区别 [J], 刘彦峰;李峥
3.Windows CE设备驱动程序开发 [J], 郝旺;杨一帆
4.Windows CE和Windows 2000/XP设备驱动开发的区别 [J], 刘彦峰;李峥
5.WindowsCE平台下USB超声波采集设备驱动的设计与实现 [J], 曹德华;雷跃明因版权原因,仅展示原文概要,查看原文内容请购买。
旗舰版Win7搭建WinCE6.0环境以及第一个Hello Windows CE程序
旗舰版Win7建立WinCE6.0环境Windows CE 6.0所使用的Platform Builder 和以往的Windows CE 5.0/4.2等均不同,它并不是独立的开发平台软件,而是作为VS2005的一个插件来安装使用的,因此必须先安装VS2005,以后所有的内核配置编译等开发都基于VS2005进行。
在安装WinCE6.0之前要先安装VS2005以及Vs2005的相关补丁,而所装操作系统(XP、Win7)和VS2005版本不同(中文版、英文版),所需的补丁也有所不同。
下面就罗列出不同操作系统和不同版本VS2005所需的补丁。
安装软件列表如下,以下排列顺序也是安装顺序。
安装这些软件大概占用14G硬盘空间,以下软件皆可在网上下载到。
软件列表1.Visual Studio 20052.Visual Studio 2005 Service Pack 1若安装的是英文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB926601-X86-ENU.exe;若安装的是中文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB926604-X86-CHS.exe3.Visual Studio 2005 Service Pack 1 Update for Windows Vista若使用的是WindowsXP,则不用安装此项。
若使用的是Windows7,则需要安装此补丁。
若安装的是英文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB932232-X86-ENU.exe;若安装的是中文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB932230-X86-CHS.exe4.Visual Studio 2005 Service Pack 1 ATL Security Update若使用的是XP系统,则不必安装该补丁。
文件名:VS80sp1-KB971090-X86-INTL.exe ATL是ActiveX Template Library 的缩写,它是一套C++模板库5.Windows Embedded CE6.06.Windows Embedded CE 6.0 Platform Builder Service Pack 17.Windows Embedded CE 6.0 R28.Windows Embedded CE 6.0 R39.安装模拟器Microsoft Device Emulator 2.0 -- Standalone Release10.CHSEmu.msi这个文件是我从网上下载到的别人创建的SDK,如果你自己创建自定义SDK不成功,或者不想自己创建一个SDK的话,直接安装这个SDK就可以了。
Wince6.0应用开发:一、平台搭建
Wince6.0应用开发:一、平台搭建由于需要参加一个比赛,于是就接触了WinCE6.0的应用开发,可是所看到的资料大部分都是关于WinCE6.0系统的开发,或者在系统之上的驱动开发。
像我这种只在WinCE6.0上利用厂商提供的类库进行应用开发的真实伤不起。
下面介绍开发环境:我的自己的系统是WIN7的系统其实假如你和我一样的话只开发应用的话,其实根本不需要按照网上那样下差不多4G的东西。
需要做的是,一、装个vs2008(记得包含智能设备开发这一项,vs2010是不支持智能设备开发的。
当然你也可以选择vs2005,这随便你。
vs2008对应的Wince上的.net compact framework3.5,而vs2005对应的是2.0),二、再装个WINCE6.0_CHS_SDK(这是个wince6.0的SDK软件开发包)三、安装一个Wince设备的同步软件。
四、(可选择)假如你想要让你的模拟器上网的话,你就吧Virtual Pc 2007安装上吧!详细的步骤:一、装个vs2008开发应用的话,比较快捷的无疑有c++以及c#,所以这就看你自己的需要的了,不过在安装的时候,记得选择上智能设备课编程技术这一项。
如下图这样第一步就完成了。
二、安装这个的目的是因为其提供了一个Win ce6.0的模拟器,之后只需要将写好的程序点击(开始执行不调试)或者(启动调试)都行,vs2008便会在模拟器上部署应用程序。
之后便可以执行了。
下载地址:《传送门》安装时的注意事项:1、安装的时候记得选择自定义2、然后如下图记得取消文档这一项,否则会出现安装失败的提醒。
三、同步软件的安装:Winxp:装的是Activesync 4.5 《传送门》Win7:装的是Windows mobile center 《传送门》补充:假如百度网盘的内容被取消了,给我留言,我会马上补充回来的四、Virtual Pc 2007安装后便能在wince模拟器中,做些设置便能上网了。
WINCE6.0体系结构学习
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 Coredllcoredll.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下的介绍。
Windows CE 6.0 安装顺序 - 操作系统
Windows CE 6.0 安装顺序- 操作系统1、先装Visual Studio 2005, 我拿到的是Professional Edition。
最好别用DEFAULT安装,把组件CUSTOM一下,不然会花很多冤枉的磁盘空间。
WINCE600的Platform Builder不像WINCE500是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成2、安装Visual Studio 2005 Service Pack 1, 发布的地址/zh-cn/vstudio/bb265237.aspx 这是必须的装的,Release Note里面提到SP1提供了Windows Embedded 6.0 platform and tools support。
不同的VS2005版本(Standard / Professional / Tem Edition) 会对应到不同的下载上,不过简单点就用这个下载/downloads/details.aspx?familyid =BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displayl ang=en 430多兆,通吃所有版本。
3、可选,安装Visual Studio 2005 Service Pack 1 Update for Windows Vista。
发布和下载网址/downloads/details.aspx?FamilyI D=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&displaylang =en在SP1的基础上增加对VISTA的支持。
注意一定要先装SP1,再装这个,在System Requirements里强调了Required Software: licensed copy of a Visual Studio 2005 and Visual Studio 2005 Service Pack 1. 我当时以为这个包含了上面SP1,浪费了不少时间4、安装MSDN,从VS2005的安装页里选择。
深入windows+CE6.0
User Space 2 Gigabytes Each process has its own mapping
Process space 1 GB per process
Executable code and data VM Allocation File Back Mapfiles
0x00000000
Cached access to physical memory
0x80000000
新的操作系统布局
将关键的驱动、文件系统以及图形窗口管理加入 系统内核
Coredll.dll的内核版本
APIS保持一致
优点
极大的减少了系统调用这些组件的开销 减少了所有从用户空间到内核空间之间调用的开销 提高了基础操作系统服务间的代码共用性
内核空间
0xFFFFFFFF CPU Specific VM Kernel VM (if supported by CPU) 256 MB Kernel VM 256 MB
System Trap Area Kernel Virtual Memory Shared by all kernel Servers and drivers Ram file system & ram registry All XIP DLLs in kernel Uncached access to physical memory
CoreDLL继续保持兼容
WIN32s APIS最小集 变更隐藏在库文件中
共享DLL代码继续保持一致
SDK应用程序表现保持一致
运行时保持不变或很少的变化
应用程序采用一些非常规的应用
将需要被修改 如:在进程间传递句柄及指针
主要改变是驱动程序如何访问客户内存
Windows CE内存管理(CE5.0&CE6.0)
物理地址
虚拟内存模型(2)-CE5.0
FFFF FFFF
Kernel Space
Kernel Addresses: KPAGE, Trap Area, Others Unused
Total 4 GB Virtual Space 2 GB Kernel Space
User Space
Slots 63 – resources dll
Logical Memory (Heap, stack) Virtual Memory Physical Memory * Storage Device
Windows CE采用层次化的结构
内存结构(2)
物理内存
在内部或外部总线上可访问的实际的 RAM/ROM RAM分为对象存储区域(object store)和应 用程序内存区域(program memory)。 ROM中存放的内容可以是压缩的,也可以是 不压缩的(可本地执行--XIP,executed in place)。 Windows CE只能管理512MB的物理内存
WinCE 6的虚拟内存模型(5)
内核空间
低1G:静态虚拟地址 0xC0000000–0xC7FF FFFF: 内核加载的(XIP) DLL 0xC8000000–0xCFFFFFFF:文 件系统的对象存储区 0xD0000000–0xDFFFFFFF:内 核模式的程序执行区。如 GWES.DLL,系统DLL,内核驱 动等。 0xE0000000–0xEFFFFFFF:同 上。除了SH4架构的CPU。 0xF0000000–0xFFFFFFFF:捕 获系统调用,包含核心数据页。
FFFF FFFF
Windows CE操作系统体系结构及功能介绍
Windows CE操作系统体系结构及功能介绍嵌入式操作系统是与应用环境密切相关的,从应用范围角度来看,大致可以分为通用型的嵌入式操作系统如Windows CE、VxWorks、嵌入式Linux等和专用型的嵌入式操作系统如Palm OS、Symbian等。
从实时性的角度看,大致可以分为实时嵌入式操作系统和一般嵌入式操作系统。
从原理上说,嵌入式操作系统仍旧是一种操作系统,因此它同样具有操作系统在进程管理、存储管理、设备管理、处理器管理和输入输出管理几方面的基本功能,但是由于硬件平台和应用环境与一般操作系统的不同,那么它也有自身的特点,最大的特点就是可定制性,也就是它能够提供可配置或可剪裁的内核功能和其他功能,可以根据应用的需要有选择的提供或不提供某些功能以减少系统开销。
微软公司的Windows CE操作系统就是一种嵌入式操作系统,它1996年开始发布Windows CE 1.0版本,2004年7月发布了Windows CE .NET 5.0版本,目前用得最多的是Windows CE .NET 4.2版本,其发展速度也是很快的,功能上自不必描述,它的主要应用领域有PDA 市场、Pcket PC、Smartphone、工业控制、医疗等。
现代的嵌入式操作系统同嵌入式操作系统的定制或配置工具紧密联系,构成了嵌入式操作系统的集成开发环境。
就WinCE来讲,你无法买到WinCE这个操作系统,你买到的是Platform Builder for 4.2的集成开发环境,我们也简称为PB,利用它你可以剪裁和定制出一个符合你自己需要的 4.2的操作系统,因此,我们说的操作系统实际上完全是由自己定制出来的,这就是嵌入式操作系统最大的特点。
Windows CE 是由许多离散模块构成的,每一模块都提供特定的功能。
这些模块中的一部分被划分成组件。
组件使Windows CE 变得非常紧凑(只占不到200 KB 的RAM),因此只占用了运行设备所需的最小的ROM、RAM 以及其它硬件资源。
WindowsCE5.0与6.0的主要差别
Windows CE 5.0和Windo ws CE 6.0的内存与系统架构1.Windows CE 5.01.1 Windows CE 5.0的系统架构1.2 Windows CE 5.0的内存架构因为WINCE是32位的嵌入式操作系统,所以WINCE的虚拟寻址能力可达4GB(为什呢,2^32=4GB),但是WINCE5.0和XP操作系统的每个进程独享4GB虚拟地址空间不同,WINCE5.0中所有的进程共享一个4G B的虚拟地址空间。
这4GB 的虚拟地址空间被分为两个2GB的区域,其中低地址的那2GB区域(0x00000000 ~ 0x7FFFF FFF)是用户虚拟空间,这块虚拟空间由应用程序的共用,也就是说应用程序申请的内存都会从低2G B虚拟内存空间分配的;而高2GB区域(0x80000000 ~0xFFFFF FFF)是操作系统的内核虚拟空间,供WINCE操作系统本身使用。
我们知道WIN CE5.0的进程数量最多只能达到32个,而且每个进程只能独享32MB的虚拟空间(这个32MB的空间也叫一个sl ot),这33个进程(32+1,这个1就是指s l ot0,因为slot0用于映射当前在处理器上执行的线程所在的进程)占用的虚拟空间0x00000000~0x41FFFFFF(slot0~slot32),slot33~slot63对应的虚拟地址空间是0x42000000~0x7FFFFFFF,这块虚拟地址空间是由所有的进程共享的,如果每个进程独享的32MB虚拟地址空间不够用,那么进程可以在这个范围申请虚拟地址空间,这个范围包括对象存储和内存映射文件(.map文件,每个进程都有自己的map文件)。
此范围的最后一个slot(slot63)从0x7E000000~0x7FFFFFFF用来存放纯资源DLL。
WINCE6.0+系统定制、SDK定制及一个示例应用程序
WIN CE6.0 STEP BY STEP Version 1.0一、系统定制1、这里假设您已经把软件环境都搭建完毕,打开VisualStudio2005,选择新建->项目->Platform Builder for CE 6.0。
2、下一步,选择Device Emulator:ARMV4I,如果有实际设备,也可选择对应设备开发板的CPU等型号进行配置。
3、下一步,选择你想开发的设备类型,这里选择PDA Device,继续4、下一步,选择Mobile Handheld。
5、选择你定制操作系统需要的应用程序。
默认,下一步。
6、选择你定制操作系统需要的网络配置。
默认,下一步。
7、下一步,完成配置。
8、选择项目->属性,对操作系统简单修改一下。
9、下图,可以选择SDK的默认开发语言,可自行修改。
10、下图Enable KITL(no IMGNOKIL=1)取消选定,否则可能会造成模拟器黑屏。
11、如有需要可选择Catalog Items View 对你的操作系统进行裁剪,比如加些应用程序、加些字体等。
12、配置完毕后,可进行编译,此处可能需要很长时间,请耐心等待,编译成功后在*\WINCE600\OSDesigns\OSDesign1\OSDesign2\RelDir\DeviceEmulator_ARMV4I_Release\(参考路径)文件夹下会生成一个NK.bin的文件,此文件即为你定制好的操作系统文件,如有硬件并且安装好启动程序,即可启动你自定制的操作系统。
这里我们准备用模拟器进行程序开发,因此,下面要生成一个模拟器类型的SDK。
二、生成SDK1、项目->Add New SDK….2、添加对应的路径、名称等信息。
3、确认你编译的操作系统为ARMV4I Emulator Debug版本。
4、其他一些基本设置略,如添加皮肤、设定分辨率等,最后点完成, Build此SDK5、Build结束后,可在此*\WINCE600\OSDesigns\OSDesign1\OSDesign1\SDKs\SDK1参考路径下找到您的SDK文件。
windows CE6.0安装环境的搭建
windows CE6.0安装环境的搭建前些日子同事要做嵌入式开发,所以同事让我帮忙装一下windows ce,刚开始也一头雾水,以前听说过,但是根本就没有去装过windows ce,后来怀着好奇心,就去网上搜索答案。
刚开始装的时候以为很简单,但是感觉什么都需要下载,下东西就浪费了我许多时间,然后加上安装的时间一共用了3天的时间。
发环境方案为:Windows XP SP3 + Visual Studio 2005 SP1 + Windows Embedded CE 6.0. Visual Studio 2005 (以下简称VS2k5)和 Windows Embedded CE 6.0(以下简称CE6)虚拟机采用了oracle的VirtualBox1.刚开始下载vs2k5 文件名字为chs_vs_2005_VSTS_180_Trial.img ,用虚拟光驱安装即可。
这个文件非常大3.22g2.下载好之后安装vs2k5,安装好之后就是安装VS2k5 SP1补丁(KB926601),否则后面的Platform Builder SP1无法安装大概补丁VS80sp1-KB926604-X86-CHS.exe 大概有400多兆,这个安装速度是最慢的。
3.安装好补丁之后就是安装Windows Embedded CE 6.0,官方下载地址为:/downloads/details.aspx?familyid=7E286847 -6E06-4A0C-8CAC-CA7D4C09CB56&displaylang=en里面的cab包直接用迅雷下载windce6.0.lst,这个在附件中,这个大概下载有3.76g大小,安装的时候选择x86平台4.经过漫长的等待终于安装好了windowce6.0主要程序,但是接下来还有许多事情要做,然后安装Windows Embedded CE 6.0 Platform Builder Service Pack 1,官方下载地址为:/downloads/details.aspx?FamilyId=BF0DC0E3 -8575-4860-A8E3-290ADF242678&displaylang=en。
ARM9架构下WINCE6.0 SD卡写入速度
ARM9 CE6下SD卡的写入测试结果SUNNY.MAN一.ARM架构下的WINCE 6.0 SD卡测试1.硬件结构及操作系统:CPU:ATMEL AT91SAM9G45 ARM9 处理器,主频400MHz。
SD:SD卡(4G)OS: WINCE 6.02.软件的测试过程:A:用CreateThread创建一个文件写入线程。
B:在线程的回调函数里DealThread,调用文件操作API函数。
并计算流逝的时间。
C:代码片断:CCEFileStd CEFile;//CE下文件操作类CMyCalTime Time1;//用来计算流逝的时间CEFile.SetFileName(L"T est.mhy");CEFile.FileOpen(CCEFile::OpenforCreate);Time1.Start();int nBlock=128*1024;//128K写入块大小char *buf=new char[nBlock];__int64 nT otal=nBlock*80;//循环次数for(int i=0;i<80;i++){CEFile.FileWrite(buf,nBlock);}CEFile.FileClose();delete[] buf;double ms=Time1.GetEspMS();CString str;str.Format(L"totalTime=%f,speed=%5.2f(M/S)",ms,nCount/ms);AfxMessageBox(str);D:CCEFileStd中主要使用API函数主要使用CreateFile和CloseHandle以及WriteFile和ReadFile四个API函数。
3.测试结果:4.结论:SD卡的平均写入速度大约在2MB/S左右。
并且写入的速度随着入块的变大而显著增长,但当写入块超过16K后,写入速度没有显著的变化了。
Windows CE 6.0入门详解(环境搭建系统开发起步)教学文稿
W i n d o w s C E 6.0入门详解(环境搭建系统开发起步)Windows CE 6.0入门详解(环境搭建内核配置和应用开发起步)武汉众嵌科技有限公司修订历史记录A - 增加M - 修订D - 删除一、安装开发环境 (5)A)按下列顺序安装所需软件 (5)B)安装说明 (5)C)装中可能出现的问题及解决方法 (6)二、WINDOWS CE 内核定制 (8)A)基W INDOWS CE产品开发流程大致分为以下几个阶段 (8)1. 硬件设计 (8)2. 选定BSP (8)3. 获得驱动程序 (8)4. 剪裁系统内核 (8)5. 导出SDK (9)B)详细制作流程 (9)1. 新建立一个OS Design工程 (9)2. 建立工程 (10)3. 配置工程 (11)C)配置内核 (13)1. 选择应用程序(Applications-End User) (13)2. Applications and Services Development (13)3. 选择系统核心服务(Core OS Services) (14)4. Communication Services and Networking (15)5. 设备管理(Device Management) (15)6. File System and Data Store (16)7. 选择字体(Fonts): (16)8. 国际化支持(International) (16)9. Internet Client Services (17)10. Graphics and Multimedia Technologies (17)11. Shell and User Interface (17)D)生成系统镜像 (17)E)生成SDK (18)F)安装A CTIVE S YNC 并配置 (18)G)配置模拟器并生成程序 (18)H)配置模拟器 (19)I)应用开发 (21)一、安装开发环境a) 按下列顺序安装所需软件1.Visual studio 20052.Visual studio 2005 server pack 13.Visual studio 2005 service pack 1 update for Windows vista/74.Windows Embedded CE 6.0 (Windows Embedded CE 6.0.iso)5.Windows Embedded CE6.0 service pack 16.Windows Embedded CE 6.0 R27.Windows Embedded CE 6.0 R38.Windows Embedded CE cumulate product update rolluppackage through(12/31/2010)9.VS_emulator.exe(模拟器)b) 安装说明我的系统是Windows 7 旗舰版所以存在一个权限问题我以这样的方式安装所有的程序:c) 装中可能出现的问题及解决方法报错信息:1. ToolsMsmCA(Error): Setup package issue or CoreConDataStore corrupted: DeviceSDKInstComp Add/Remove failed.HR=0x8007005。
Windows CE 6.0入门详解(环境搭建系统开发起步)
Windows CE 6.0入门详解(环境搭建内核配置和应用开发起步)武汉众嵌科技有限公司修订历史记录一、安装开发环境 (3)A)按下列顺序安装所需软件 (3)B)安装说明 (3)C)装中可能出现的问题及解决方法 (4)二、WINDOWS CE 内核定制 (5)A)基W INDOWS CE产品开发流程大致分为以下几个阶段 (5)1.硬件设计 (5)2.选定BSP (5)3.获得驱动程序 (5)4.剪裁系统内核 (5)5.导出SDK (6)B)详细制作流程 (6)1.新建立一个OS Design工程 (6)2.建立工程 (7)3.配置工程 (8)C)配置内核 (10)1.选择应用程序(Applications-End User) (10)2.Applications and Services Development (10)3.选择系统核心服务(Core OS Services) (11)munication Services and Networking (12)5.设备管理(Device Management) (12)6.and Data Store (13)7.选择字体(Fonts): (13)8.国际化支持(International) (13)9.Internet Client Services (14)10.Graphics and Multimedia Technologies (14)11.Shell and User Interface (15)D)生成系统镜像 (15)E)生成SDK (16)F)安装A CTIVE S YNC 并配置 (16)G)配置模拟器并生成程序 (16)H)配置模拟器 (17)I)应用开发 (19)一、安装开发环境a) 按下列顺序安装所需软件1.Visual studio 20052.Visual studio 2005 server pack 13.Visual studio 2005 service pack 1 update for Windows vista/74.Windows Embedded CE 6.0 (Windows Embedded CE6.0.iso)5.Windows Embedded CE6.0 service pack 16.Windows Embedded CE 6.0 R27.Windows Embedded CE 6.0 R38.Windows Embedded CE cumulate product update rolluppackage through(12/31/2010)9.VS_emulator.exe(模拟器)b) 安装说明我的系统是Windows 7 旗舰版所以存在一个权限问题我以这样的方式安装所有的程序:c) 装中可能出现的问题及解决方法报错信息:1. ToolsMsmCA(Error): Setup package issue or CoreConDataStore corrupted: DeviceSDKInstComp Add/Remove failed.HR=0x8007005。
Windows CE 6.0 系统框架
ROM FS
Storage Manager
Block Device
Serial
Custom
FTP HTTPD TELNETD
RAM
ROM/ FLASH
Timer INTC
CPU
HARDWARE
Serial
USB (Function)
PCCard
...
Page 12
CE 6.0新内核介绍
Windows Mobile Windows Mobile Smartphone Pocket PC Phone
Retail
Windows-based
Point-of-Sale
terminals
Health Monitoring
Portable Media Center
Windows Automotive
CE 6.0系统体系结构
Shell
Services Manager
Services
UM Driver Manager
User Mode Drivers
AAApApppppplilpcilcilaciactatiatoiotioninonssnss
OS DLLs (Coredll, Winsock, CommCtrl, …)
seece60documentationpage48demopage50网络投影仪?特性windowsvista设备发现协议在线认证presenceauthentication逆向远程桌面协议reverserdp分辨率调整?益处在会议室中windowsvista笔记本能通过网络来使用ce60投影仪而不是传统的vga线得到更好的用户体验和节省会议中的时间远程显示蜂窝网络支持cellcoresimmanagementatcimodemlinkconnectivity益处构建能够通过蜂窝网络进行数据连接的设备显示交通信息的gps设备page51网络多媒体设备完成了nmd中间件堆栈wmdrm10提供了对playsforsure的兼容性支持组件化的mpeg2dvr引擎微软通过提供越来越多的必有功能使oem专注于为设备提供差异化的功能page53
Windows CE5.0与6.0的主要差别
Windows CE 5.0和Windows CE 6.0的内存与系统架构1.Windows CE 5.01.1 Windows CE 5.0的系统架构1.2 Windows CE 5.0的内存架构因为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就会被加载到这个空间内。
从0x80000000开始是WINCE内核使用的虚拟内存空间,其中0x80000000~0x9FFFFFFF(512MB)这段用来静态所有的物理地址,也就是说WINCE会把所有的物理内存1:1地址映射到这段虚拟内存上,这也就是WINCE最大支持的物理内存是512MB的由来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ying Li Developer Evangelist Microsoft (China) Co., Ltd. v-lying@
我们的议程
• Windows CE的11年发展史: 1996 – 2007
NKStub.lib OEMGLOBAL
nk.exe
KITL IOCTL
kitl.dll
IOCTL library Interrupt library Startup library Cache library OS Timer library
RTC library
RTC Timers Caches
Hardware
USB Ethernet Serial
port
port
port
Page 25
CE 6.0增强的安全特性
• 新安全基础构架
• 允许我们在将来构建更好的安全模式 • 用户和内核模式空间的分离
• 与安全开发生命周期(SDL)的一致性
• 在整个操作系统中实现了深度防护战略 • 安全的C运行时库 • SafeSEH • PREfast工具
Windows Mobile Windows Mobile Smartphone Pocket PC Phone
Retail
Windows-based
Point-of-Sale
terminals
Health Monitoring
Portable Media Center
Windows Automotive
• 移植现有驱动器只需极少的工作量
• 每个驱动器只需1-3天的工作量
• 驱动程序的整体结构保持不变
• 主要改变的是驱动器访问客户内存的方式 • 已经没有了SetKMode 和SetProcPermissions方法
用户模式的驱动程序
• 由udevices.exe来装载 • 大多数API和内核模式一样 • 没有权限访问内核的数据结构和内存(无SetkMode) • 例子
memory manager worked
(All slots were always there)
32 processes
Process slots occupied lower
2GB VM, this enforced a
fixed size per process to fit 32 processes
Windows CE的发展历程
"Alder"
Windows CE 1.0
11/1996
"Cedar" Windows CE 3.0
4/2000
"Macallan" Windows CE 5.0
8/2004
"Tomatin" NMD FP
SP1 SP2 2.11 2.12
"Birch" Windows CE 2.0
• 全球就绪
• 操作系统组件支持14种语言 • 跨语言和地区的深度功能测试改进了我们的操作系统全球支持特性
Page 27
CE 6.0 API上的变化
• 一些APIs移动到内核空间
• 例如: InterruptInitialize*, InterruptDone*, ReadRegistryFromOEM*
• 网络
CE 6.0支持的BSPs
系列
ARM
MIPS SH4 x86
BSP
Kernel
Intel Mainstone III (C-Step) Device Emulator Board TI OMAP 2420 (ARM v6 core) NEC Rockhopper SG2 Vr5500 Renesas Aspen x86 (CEPC)
Object Store源自ROM FSStorage Manager
Block Device
Serial
Custom
FTP HTTPD TELNETD
RAM
ROM/ FLASH
Timer INTC
CPU
HARDWARE
Serial
USB (Function)
PCCard
...
Page 12
CE 6.0新内核介绍
11/1997
"Jameson" 4.1
"Talisker" Windows CE
.NET 4.0
1/2002
"McKendric" 4.2
"Yamazaki" CE 6.0
11/2006
行业趋势
设备
• 设备的联网需求持续增长(在家里,在工作时,在户外) • OEM在自己的嵌入式设备中集成许多越来越复杂的应用 • 设备需要和其他设备和技术能更好的在一起工作
内存 映射文件 用户DLLs
进程代码
新的VM管理器 不再以进程slot 模式来进行操作 (您可以随需创建
内存)
32K进程
新的OS布局
• 把关键的驱动程序,文件系统和图形窗口管理器移动 到内核
• 益处
• 极大的减少了这些组件间的系统调用开销 • 减少了所有从用户空间到内核空间的调用的开销 • 增加了基本OS服务间的代码共享
• ARM, x86, SH4, MIPS
• 开发选项
• Win32, .NET CF, MFC, ATL, ...
• 共享源码 • 10年支持策略
6
CE 6.0关键特性
• 比Windows CE 5.0更多的特性 • 最新的开发工具 • 下一代内核 • 应用程序兼容性 • 增强的健壮性和安全性 • 用户模式驱动器模式 • 增加了许多新特性
• Windows Embedded CE 6.0的关键特性 • 内核和驱动器的体系结构 • 开发及相应的工具 • 应用场景
2
微软嵌入式系统的布局
.NET Micro Framework
CE 6.0
Windows XP Embedded
Wearable Devices
Auxiliary Displays
ARMv4i ARMv4i ARMv4i ARMv4i MIPSII & II_FP, MIPSIV & IV_FP SH4 X86
是否包括源码?
Yes Yes Yes Yes
Yes
Yes Yes
Page 22
OAL的变化
• 把OAL从内核分离了出来
• OAL 变成了“NK.EXE” • Kernel代码变成了“Kernel.DLL”
Cache library
OS Timer library
RTC library
RTC Timers Caches
Hardware
USB Ethernet Serial
port
port
port
Page 24
Windows Embedded CE 6.0 OAL的设计
kernel.dll
NKGLOBAL
• 可以独立升级 • 整体的OAL结构仍然不变
• OEM功能不变 • OAL/Kernel的接口经由共享结构
Page 23
Windows CE 5.0 OAL的设计
Nk.exe
Kernel
OAL
KITL library
IOCTL library
Interrupt library
Startup library
Page 26
应用程序兼容性
• 应用程序
• 应用程序二进制兼容性是主要目标 • 良好的应用程序(Win32兼容的)几乎不需要有任何改动 • 托管应用程序已经从操作系统中抽象出来了(平台调用服务问题-
P/Invoke) • 如果应用程序使用CE特定的技巧则可能有问题 • 使用“CEAppCompat”工具来评估兼容性问题
开发者
• 设备在消费者手里的生命周期正越来越短
12 months
• 开发者要在时间减少的同时做更多的开发
• 根据应用场景的不同设备的差异越来越大
• 我们希望在硬件和软件平台上的投资能在多个产品中用到
CE 6.0: 什么保留了下来?
• 32位多任务操作系统 • 内存占用少 • 组件化 • 硬实时 • 处理器体系结构
Slot 32 Slot 31
: :
Slot 6 Slot 5 – Services.exe
Slot 4 – GWES.exe Slot 3 – Device.exe Slot 2 – Filesys.exe Slot 1 – ROM DLLs
Slot 0 – Execution
所有进程共
享2GB虚拟 内存
Slot 4 – GWES.exe Slot 3 – Device.exe Slot 2 – Filesys.exe Slot 1 – ROM DLLs
Slot 0 – Execution
Execution slot and shared DLL slot
新的虚拟内存
管理器给每个 进程分配2GB
的VM
• 扩展总线,例如USB • 键盘和触摸屏
• 性能要求不是很严的驱动程序可以考虑移到用户模式
• 被调用次数比较少但是做得工作比较多
内核模式的驱动程序
• 驱动程序经由device.dll加载到内核空间 • 对内核的数据结构和内存有完全的访问权限 • 能够使用的APIs没有改变
• 内核模式的驱动程序不能显示UI • 使用CeCallUserProc来调用用户模式下的DLL
CE 6.0系统体系结构
Shell
Services Manager