这篇文章的目的并不是介绍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的开发者也可以享受到更好的开发体验了。
嵌入式开发流程
也许很多初涉嵌入式开发领域的程序员会被一系列的新名词搞得头昏脑胀,在这里,我希望能够将嵌入式开发的流程展现给大家。
嵌入式开发主要分为三个比较大的部分:
1 驱动程序开发
这部分开发是从硬件设计开始的,硬件工程师会设计PCB板,为我们提供标准开发板(SDB,standard development board)。当我们拿到开发板之后的第一件事情就是编写boot-loader,让开发板启动起来,一般是通过JTGA将boot-loader烧录到开发板中的。我们可以将boot-loader看作PC中的BIOS,负责硬件设备的初始化工作,并且将操作系统运行起来。在此之后,我们需要根据开发板上的硬件开发各种驱动程序,比如串口、USB、鼠标、视频输入等。最后将这些驱动程序和boot-loader打包,称为一个板级支持包(BSP)。BSP是和开发板的具体硬件紧密相关的。
所以从事这方面开发的工程师往往具有比较强的硬件知识水平。
2 平台定制
我们可以将Windows CE想象为一盒积木,根据不同的应用场景和设备要求,我们要对这盒积木进行定制,堆积出不同形状的城堡、动物和生活用品。这个过程称为“平台定制”,定制产生的平台往往和具体的硬件设备相关,直接将平台下载到硬件设备上就可以运行了。整个开发过程,需要选择不同的组件来搭配出最适合当前硬件的软件平台。所以要对Windows CE的组件,也就是Catalog Item,有相当程度的了解。
3 应用程序开发
嵌入式设备上的应用程序开发与传统应用程序开发类似,只是要借助于硬件模拟器或者实际设备对程序进行调试。最常见的嵌入式设备应用程序开发,就是Windows Mobile的移动应用开发。平台定制工程师会在硬件出厂之前先提供平台相关的SDK,SDK中会包括模拟器。应用开发者可以首先使用模拟器对程序进行开发和调试。等实际硬件出来之后,再将程序转移到实际硬件中。因为Windows CE采用了很多措施,这种“转移”几乎是无缝的,所以我们并没有使用“移植”这个词。
嵌入式领域的应用开发其实是普通软件工程师就可以进行的。
关键字:WinCE RTOS 嵌入式开发
引用地址:
关于WinCE开发中最常用的概念和知识
推荐阅读最新更新时间:2024-05-02 20:57
基于DSP芯片和VxWorks操作系统的RTOS视频网络检测系统
在远程测控系统中,嵌入式系统由于其稳定性和实时性优于传统平台而得到迅速发展。本文提出了一种以DSP芯片和VxWorks为操作系统的新型嵌入式系统设计方法。 1 测试系统工作原理 测试系统的主要任务是采用DSP芯片处理通过摄像头拍摄并经过A/D转换的图像。整个系统由视频解码器、DSP和PCI总线专用芯片组成。系统通过PCI总线同通信平台交换数据,同时通过网络进行检测控制。 2 关键设计及器件选择 本系统设计的关键是视频处理卡的设计,一般的视频检测卡功能有限,不能满足本项目的需求,为此,笔者自行设计了一块视频检测卡。 2.1 TMS320C32的功能特点 本测试系统中的DSP芯片选用T I公司的T
[嵌入式]
Small RTOS51实现基于单片机的温控器设计
目前,8位单片机在测控领域和智能化电子产品应用中仍占有重要地位.而应用嵌入式实时操作系统(ERTOS)会对8位单片机的软件开发带来极大方便。在此简要介绍嵌入式实时操作系统及其在程序设计中的优越性,重点介绍了适合于小RAM单片机的嵌入式实时操作系统Small RTOS51,以及基于8位单片机的硬件和软件的设计方法和过程。 1 嵌入式实时操作系统Small RTOS51简介 嵌入式系统已成为当今的热门话题之一,从消费类电子产品到各种工业设备,嵌入式系统已渗透到日常生活的各个角落。对于嵌人式系统,一个重要的特征是实时性,即在确定的时间内完成规定的功能,并能对外部异步事件做出正确响应。确保系统的实时性,需要软硬件配合来完成,首先
[单片机]
单片机值得学吗?会单片机能找什么工作?
我是在2011年自学的单片机,我本专业是电气工程,读了2年后整个系被学校强制安排成电梯专业。 临近毕业,我才知道这个专业有多坑,工作环境恶劣、体力活、出了事故要负责任、24小时待命的工作模式、最可悲的是工资还低的可怜。 辛辛苦苦读书20多年去做这种工作,我不甘心。 所以还没正式毕业,我就果断转行,后面无意间接触到嵌入式开发。 又从嵌入式开发了解到单片机,因为相对比较容易上手,学习的东西少。 也是从那个时候开始,解开了我对智能硬件到底是怎么做的这个疑问。 大概学了3个多月,把51开发板上的每个硬件都控制了一遍,并且基于开发板做了一个电子时钟的小项目。 然后就去找工作,因为是转行,又没项目经验,公司基本都不要。 后面在某宝买了一个智能
[单片机]
基于ARM-WinCE平台的时钟同步设计
随着计算机技术、网络通信技术的进步,组建分布式网络化测试系统,提高测试效率、共享信息资源,已成为现代测试系统发展的方向。分布式测试系统通过网络等通信媒介把分布于各测试点、独立完成特定功能的测试设备连接起来,以达到测试资源共享和协同工作等目的。时钟同步是分布式系统的核心技术之一,其目的是维护一个全局一致的物理或逻辑时钟,使得系统内各个节点中与时间有关的信息、事件及行为有一个全局一致的解释。IEEE1588精确时钟协议是当前分布式测试系统中时钟同步研究的热点。采用硬件支持的IEEE1588协议能够在以太网中不同结点之间实现纳秒级的时钟同步,为工厂自动化、测试和测量以及通信等领域需要高精度时钟同步的应用提供了一种有效的解决方案。本文采
[单片机]
单片机和RTOS的中断系统也就这么回事
摘要:操作系统实际上我们接触的很多,比如说windows,安卓、IOS、linux都是一种操作系统。单片机也有它自己的操作系统,叫做实时操作系统。那么这种实时操作系统和我们用的这些系统有什么区别呢? 我们经常使用的这些实际上是非实时的操作系统。为什么说它是非实时的,因为它的内核实际上是对任务进行时间片轮转的调度方式。比如说有3个任务,分别是任务A,任务B和任务C。那么在时间片轮转的调度机制里,它会让任务A运行一断时间,然后切换到任务B,然后切换到任务C,这样子不断的轮转。 两个任务间通过 Systick 轮转调度的简单模式 那么这样有一个什么缺点呢?如果有一台自动驾驶的汽车里面任务C,是用来检测障碍物和躲避障碍物的,如果任
[单片机]
建立一个属于自己的AVR的RTOS(第四篇:延时服务)
第四篇:只有延时服务的协作式的内核 CooperativeMultitasking 前后台系统,协作式内核系统,与占先式内核系统,有什么不同呢? 记得在以前看过这样的比喻,“你(小工)在用厕所,经理在外面排第一,老板在外面排第二。如果是前后台,不管是谁,都必须按排队的次序使用厕所;如果是协作式,那么可以等你用完厕所,老板就要比经理先进入;如果是占先式,只要有更高级的人在外面等,那么厕所里无论是谁,都要第一时间让出来,让最高级别的人先用。” #include avr/io.h #include avr/Interrupt.h #include avr/signal.h unsignedcharStack ; reg
[单片机]
嵌入式实时操作系统μC/OS-II串口通信的设计与实现
ARM是目前嵌入式领域中应用最广泛的RISC微处理器结构,以低成本、低功耗、高性能的特点占据了嵌入式系统应用领域的领先地位,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。STM32F103VB是基于ARM新内核Cortex-M3的通用微处理器,STM32V评估板是基于该芯片的学习板并集成了仿真调试器(Ulink_Me),可以方便用户快速学习和开发用户程序。目前常见的嵌入式系统有:WinCE、Linux、pSoS、VxWorks和μC/OS-II等。μC/OS-Ⅱ是专门为嵌入式系统应用设计的,具有源码公开、实时性好、可移植裁剪、高效稳定和教学科研免费使用等特点,已经成功移植到8、16、32和64位等多种
[嵌入式]
Small RTOS51中的一个典型问题及其解决方法
Small RTOS5l是一款专门为80C5l系列单片机设计的实时操作系统(实际上应该称其为实时内核),大部分代码用C语言编写,易于移植,十分适合于资源紧张的8位机。同时,它也是学习嵌入式操作系统原理极好的入门材料。本人就是在学习完SmallRTOS5l的基础上进一步学习了著名的uC/0S-II,受益颇多。 1 问题描述 在将Smau RTOS51应用于实验室某项目时,发现了一个奇怪的问题。简单说来,就是一个以无条件方式申请消息的任务竟然在没有取到消息的情况下,以指示“等待超时”的代码返回了。 在这里,首先解释一下任务申请消息的两种方式:无条件方式和超时方式。所谓五条件方式是指任务申请消息时,如果暂时没有消息可取,则任务将一
[单片机]