阿里云认证网站建设题库,网站建设自助建站企业,c语言网页制作教程,aspnet网站建设这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面#xff0c;只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识#xff0c;解决大家会在实际开发中碰到的一些小问题#xff0c;让大家了解嵌入式开发与应用程序开发#xff…这篇文章的目的并不是介绍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个进程改变为最多运行3万2千个进程内存方面从每个进程最多拥有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让开发板启动起来一般是通过JTGA将boot-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开发环境”