aawolf = new Mobile.MVP

梦想一个移动的未来

原创 Windows Embedded CE 6.0开发初体验(一)Windows CE概述收藏

这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面,只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识,解决大家会在实际开发中碰到的一些小问题,让大家了解嵌入式开发与应用程序开发,到底有哪些不同。

Windows CE概述

6.0版本开始,Windows CE的名字改为Windows Embedded CE,当然这也是为了结合Windows Embedded品牌作出的改变。CE经过了十年的风风雨雨之后,终于在CE 6.0这个版本上再次浴火重生了。CE 6.0经历了CE历史上第二次内核重写,使CE操作系统更加符合当今嵌入式开发的方向。

CE 6.0在内核方面的改变主要是为了适应嵌入式设备硬件发展的要求,在进程数量方面,从过去最多运行32个进程,改变为最多运行32千个进程,内存方面从每个进程最多拥有32M虚拟内存空间改为最多拥有2G虚拟内存空间。在OS布局方面,将关键的驱动程序、文件系统和图形界面管理器(GWES)移到了内核中,这样可以更好解决因为CPU在内核态和用户态间切换而造成的性能损失。

当然,从以上的改变,我们可以看到CE 6.0较之前版本更加“重量级”了。操作系统领域关于“微内核”的争论已经持续了很多年,CE的改变也许会为某个学派的观点提供支持。但我们必须指出的是,正因为目前的嵌入式设备硬件已经可以支持比较“重量级”的操作系统了,所以CE 6.0才会做出如此改变。

CE针对开发者的另一个转变开始自CE 5.0,将开发环境Platform Builder整合到Visual Studio中,这种做法无疑减轻了微软维护两套IDE的负担,从另外一个方面来看,CE的开发者也可以享受到更好的开发体验了。

嵌入式开发流程

也许很多初涉嵌入式开发领域的程序员会被一系列的新名词搞得头昏脑胀,在这里,我希望能够将嵌入式开发的流程展现给大家。

嵌入式开发主要分为三个比较大的部分:

l  驱动程序开发

这部分开发是从硬件设计开始的,硬件工程师会设计PCB板,为我们提供标准开发板(SDBstandard development board)。当我们拿到开发板之后的第一件事情就是编写boot-loader,让开发板启动起来,一般是通过JTGAboot-loader烧录到开发板中的。我们可以将boot-loader看作PC中的BIOS,负责硬件设备的初始化工作,并且将操作系统运行起来。在此之后,我们需要根据开发板上的硬件开发各种驱动程序,比如串口、USB、鼠标、视频输入等。最后将这些驱动程序和boot-loader打包,称为一个板级支持包(BSP)。BSP是和开发板的具体硬件紧密相关的。

所以从事这方面开发的工程师往往具有比较强的硬件知识水平。

 

l  平台定制

我们可以将Windows CE想象为一盒积木,根据不同的应用场景和设备要求,我们要对这盒积木进行定制,堆积出不同形状的城堡、动物和生活用品。这个过程称为“平台定制”,定制产生的平台往往和具体的硬件设备相关,直接将平台下载到硬件设备上就可以运行了。整个开发过程,需要选择不同的组件来搭配出最适合当前硬件的软件平台。所以要对Windows CE的组件,也就是Catalog Item,有相当程度的了解。

l  应用程序开发

嵌入式设备上的应用程序开发与传统应用程序开发类似,只是要借助于硬件模拟器或者实际设备对程序进行调试。最常见的嵌入式设备应用程序开发,就是Windows Mobile的移动应用开发。平台定制工程师会在硬件出厂之前先提供平台相关的SDKSDK中会包括模拟器。应用开发者可以首先使用模拟器对程序进行开发和调试。等实际硬件出来之后,再将程序转移到实际硬件中。因为Windows CE采用了很多措施,这种“转移”几乎是无缝的,所以我们并没有使用“移植”这个词。

嵌入式领域的应用开发其实是普通软件工程师就可以进行的。

 

下图是对嵌入式开发整个流程的图示:

Windows CE开发流程图

在下一节中,我们会借助实际的硬件开发板,来逐步介绍嵌入式开发环境的搭建、平台的部署和调试、应用程序的部署和调试等话题。

下一篇《Windows Embedded CE 6.0开发初体验》之“CE开发环境”:

http://blog.csdn.net/aawolf/archive/2007/10/11/1820278.aspx

 

 

发表于 @ 2007年10月10日 17:35:00|评论(loading...)

新一篇: Windows Embedded CE 6.0开发初体验(二)CE开发环境 | 旧一篇: Visual Studio 2008移动开发初体验(一)

用户操作
[即时聊天] [发私信] [加为好友]
马宁
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
马宁的公告

第十三届国际集成电路研讨会暨展览会




本BLOG所发表文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者和出处。

欢迎进入讨论区发表观点或提问
文章分类
收藏
    Blog
    Windows Embedded Blog from China(RSS)
    传说中的面霸
    唐勉的BLOG ARM-WinCE
    张欣的blog
    老狗工作室
    自游中国
    金·评·没
    陈锐的博客
    Webcast
    .NET Compact Framework中的P/Invoke
    .NET Compact Framework自定义组件开发
    Direct 3D Mobile初体验
    SQL Mobile 2005的Replication和RDA开发入门
    SQL Mobile新特性介绍
    SQL Server 2005 SqlCeResultSet和高性能数据访问深度探索
    SQL Server 2005 SqlCeResultSet和高性能数据访问深度探索
    Using SQL MOBILE on.NET CF 2.0(Level 300)
    VS.NET 2005和.net compact framework 2.0新特性介绍
    Windows Mobile 2nd 开发黄金周(4):移动设备应用程序如何使用本地数据编程
    Windows Mobile 3rd 技术开发黄金周(6):使用SQL Server Everywhere开发Windows Mobile最佳移动数据应用
    Windows Mobile 5 新特性
    Windows Mobile 5:让你的企业动起来
    Windows Mobile应用访问远程服务
    使用.NET CF开发Smartphone应用程序
    使用MSMQ创建Windows Mobile远程通讯程序
    基于Windows Mobile的企业办公应用及架构
    基于Windows Mobile的企业应用开发
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 马宁