一个基础的Windows CE培训教程

来源:互联网 发布:淘宝网儿童睡衣 编辑:程序博客网 时间:2024/04/30 22:15
 

这是我写的一个CE的培训资料,不要问我是给谁写的,不过是一点心得,我以后会写一些专门的文章来把我几年的工作经验写出来。

我写的东西基本都是工程经验,不是理论性的东西,所以可能有一些概念性东西写的不是很清楚,还请有知道的教我 。

如果你了解CE,就不用看了,如果你对CE还不了解,还没入门,这个还是有点帮助的。

试了多次,不知道图片怎么加进去。

 

Windows CE 培训教程

 

课程介绍

l       主要讲解WinCE系统层面的开发知识,非应用层面介绍

l       讲解有关WinCE的基本知识、概念和开发的内容

l       要求熟悉C++及操作系统的基本知识

l       了解Windows操作系统的注册表知识

l       了解Windows的基本工作原理

l       了解基本嵌入式定义及基础

 

词汇

l       WinCECEWindows CECE.NET等均指微软的嵌入式操作系统Windows CE.NET,版本以5.0为主

l       MIPSARMX86SH4等均指一类CPU的架构,而非特指某一种CPU型号

l       FLASH 非易失闪存 NORNAND

 

目录

前言   嵌入式简介
课程一 Windows CE介绍
课程二 Windows CE的整体结构
课程三 CE的目录结构
课程四 CE的开发流程
课程五 CE的开发工具介绍
课程六 内核定制过程
课程七 CE的加载过程
课程八 基于CE的应用程序开发
附录   CE的相关资源

 

嵌入式系统的技术特点

l       智能内核

l       软硬件一体化:无冗余、软件固化

l       专用性:主要完成单一功能或用途

l       时间性

l       高可靠性

l       移动性:低功耗,高性价比

l       技术融合性

 

当前嵌入式产品的应用规模

l       嵌入式计算机在数量上远远超过了通用计算机,一台通用计算机的外部设备中就包含了510嵌入式设备,键盘、鼠标、光驱、打印机、扫描仪等均可以说是嵌入式系统,在制造业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费电子等方面均是嵌入式计算机的应用领域

 

l       嵌入式系统是将先进的计算机技术、半导体技术、电子技术以及各个行业的具体应用相结合的产物,这一点就必然决定了嵌入式是一个技术密集、资金密集、高度分散、不断创新的知识集成系统

 

l       今天嵌入式系统带来的年产值己超过一万亿美元

 

嵌入式产品的应用示例

 

什么是Windows CE

Windows CE一个非常小巧精致的操作系统。这个操作系统的核心全部是由C语言开发的,操作系统本身还包含许多由各个厂家用C和汇编开发的驱动程序。Windows CE的内核提供内存管理、抢先多任务和中断处理功能。内核的上面是图形用户界面GUI和桌面应用程序。在GUI内部运行着所有的应用程序,而且多个应用程序可以同时运行。Windows CE没有DOS模式。

 

CEXP的异同点(一

l       设计原则不同

l       通用操作系统的设计初衷是强调系统整体高性能,因此采用了中断、多任务、虚拟存储、DMA等机制,但也因此丧失了系统行为的确定性和可预测性。通用操作系统多数由分时操作系统发展而来,大部分支持多用户和多进程。而分时操作系统的基本设计原则是:尽量缩短系统平均响应时间,提高系统的吞吐率,在单位时间内为尽可能多的用户提供服务。通用操作系统中采用的很多算法和策略技巧都体现了这种设计原则。

l       与通用操作系统不同,嵌入式操作系统除了要满足应用的功能需求外,更注重满足应用的各种实时性要求。鉴于组成一个应用的众多任务对实时性的要求各异,因此嵌入式操作系统最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性。可预测性是指在系统运行的任何时刻、任何(最坏)情况下,嵌入式操作系统都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。

l       由此可见:通用操作系统注重的是系统的平均表现,而嵌入式操作系统注重的是每个实时任务的个体表现,包括个体最坏情况的表现。

l       由于它们的基本设计原则不同,导致二者在资源调度策略的选择上、操作系统实现的方法上都有较大差异。

l       工作环境不同

l             从硬件环境上看,通用操作系统针对的是PC机或是功能更为强大的工作站,具有标准化的CPU、存储和I/O架构。为了最大幅度的兼容各种软硬件产品,通用操作系统一般都作的面面俱到、体积庞大。而嵌入式操作系统的硬件环境则相对比较苛刻,通常没有标准化的存储、I/O和显示器架构。嵌入式微处理器的内存一般都比较小,能源供给常常也很有限,要在如此紧张的资源下完成复杂功能,就要求操作系统必须尽量小巧、高效。

l             从应用环境上看,通用操作系统面向复杂多变的多种应用,而嵌入式操作系统则是面向单一设备的单一应用。

l             从存储环境上看,通用操作系统通常存储在硬盘等大容量辅助存储器上,而嵌入式操作系统大多是和系统应用软件一起固化在ROM中。

l             从开发界面上看,通用操作系统试图屏蔽底层资源,让开发人员通过一系列标准系统调用来使用操作系统功能,而在嵌入式系统中,开发人员能够掌握系统的全部资源,自主进行控制使用。通用操作系统的研发指导思想是尽可能在不改变自身的前提下具有广泛的适应性,而嵌入式操作系统由于受硬件环境、应用环境、系统成本等限制必须在研发阶段就对操作系统进行灵活的裁剪和定制。

       因此,嵌入式操作系统具有可裁剪性。

    可裁剪性是指在软件工程阶段利用软件配置方法实现软件构件的即插即用。对于一个具体的嵌入式设备,由于功能相对单一确定,可以从一些原有操作系统中裁剪出特定应用所需要的功能子集。这样构成的系统既能适应环境满足应用要求,又能减低系统成本。嵌入式操作系统的这种可裁剪性对于成本敏感的嵌入式应用如消费电子类设备,极具现实意义。

l       实时性不同

通用操作系统多数情况是根据用户利用键盘和鼠标发出的命令来进行工作,在时序上并不十分严格,而嵌入式操作系统主要是对仪器设备的动作进行监测控制,有很大一部分都具有严格的时序要求,特别是对象航空航天器那样的关键任务系统中,实时性的要求可能达到微秒数量级,在这样的应用环境中,非实时的通用操作系统无法胜任。

l       稳定性及交互性不同

l             通用操作系统庞大复杂,嵌入式操作系统则小巧专一。越简单越可靠,而越复杂,故障概率就会越大。

l             嵌入式系统应用程序通常在很少人工干预的情况下自动完成高度专业化的实时工作,这本身就要求负责系统管理的嵌入式操作系统具有较强的稳定性。即使提供用户界面,嵌入式操作系统的用户接口一般也不提供操作命令。它通过系统的调用命令向用户程序提供服务,控制逻辑相对固定。

 

CE与其它嵌入式系统的比较

 

CE的功能

从操作系统内核角度看,Windows CE具有灵活的电源管理功能,包括睡眠/唤醒模式。

Windows CE中,还使用对象存储(Object Store)技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需要换页、共享存储、交叉处理同步、支持大容量堆(Heap)等。

Windows CE具有良好的通信能力,它广泛支持各种通信硬件,亦支持直接的局域网连接以及拨号连接,并提供与PC、内部网、Internet的连接,包括用于应用级传输的设备至设备间的连接。在提供基本的通信基础结构同时,Windows CE还提供了与Windows 9X / Windows NT的最佳集成和通信。

Windows CE的图形用户界面相当出色,它拥有基于Microsoft Internet ExplorerInternet的浏览器,此外,还支持TrueType字体,开发人员可以利用丰富灵活的控件库在Windows CE环境下为嵌入式应用建立各种专门的图形用户界面,Windows CE甚至还能识别写手体和声音识别、动态影像、3D图形等多种应用。

Windows CE是一个多任务操作系统,可以同时执行多个任务,并在它们之间来回切换,这其时就是Windows的简化版本,可以通过我们熟悉的Windows操作方式来控制,它带有很多的文档,同其它的Windows操作系统一样,也带有很多的应用程序如WordPadCMD、纸牌等。

Windows CE内置了多媒体功能,通过MediaPlay可以播放音乐,甚至视频;

 

CE的实时性

l       实时操作系统(real-time operation system 简称RTOS)是完全实时系统(包括硬件、操作系统和应用软件)的一部份,它必须满足特定系统的要求。

l       虽然Windows CE的早期版本提供了一些RTOS特性,但是自Windows CE3.0以来,内核的许多重大改变极大增加了Windows CE的实时性能。

 

实时性比较

 

Windows CE的结构

 

内存管理

Windows CE.NET只能管理512MB的物理内存和4GB大小的虚拟地址空间。不同的CPU内存管理方法也不同。对于MIPSSHx系列CPU来说,物理地址映射是由CPU完成的,CE内核可以直接访问512MB的物理内存。对于x86系列和ARM系列的CPU来说,在内核启动过程中它会将现有物理内存地址全部映射到0x8000 0000以上的虚拟地址空间中供内核以后使用。OEM可以通过OEMAddressTable来详细定义虚拟地址和物理地址的映射关系。OEMAddressTable本身并不是一个文件,它只是存在于其它文件中描述虚拟地址和实际物理地址的映射关系的数据。比如文件oem init.asm中包含一段代码:dd 80000000h, 0, 04000000h 。它表示将整个物理地址(0x0400 000064MB)共64MB映射到虚拟地址从0x8000 00000x8400 0000中。

整个4GB虚拟地址空间主要划分为两部分,从0x8000 0000以上为内核使用部分,0x8000 0000以下为应用程序使用部分。详细见下表

 

存储管理与文件系统

随着CE的发展,对象存储(Object Store)的作用越来越小,而大容量的永久存储设备被越来越多地采用,这一章将针对CE的文件系统阐述相关的知识,让PB开发者除了能够加入对永久存储设备的支持,还能做一些优化。记得在以前讲过的文章中提到了如何在PB中向定制的内核加入对硬盘、光驱的支持(包括ATA设备驱动和各种文件系统),在这里就不再重复了。

CE提供了三种文件系统,基于ROM的文件系统、基于RAM的文件系统、FAT文件系统。FAT文件系统使用的范围最广,能够应用在ATA设备、Flash存储设备、SRAM存储设备上,另外CE还允许开发者自己编写并注册一套文件系统,只要接口符合Win32文件系统API即可。

 

整体目录介绍

l       C:/Program Files/Windows CE Platform Builder/5.00

l       WINCE500

         SDK

l       开发所需要的工具集和编译工具等

         Platform

l       各种平台的BSP开发包

         Public

l       这里面什么东西都有,一个字,难说得上什么分类。

         Private

l       这个目录下面收录的都是对windowsCE镜像进行操作的工作,但这些工具不是在windowsCE上运行的,而是桌面PC的程序。

          Others

l       这个目录下的内容比较杂,有诸如ATLMFC的头文件,运行库等开发应用程序所需的库文件和其一部分代码。其中有个文件目录对开发系统来说是比较重要的,就是CETK的客户端OTHERS/WCETK,通过该目录下的文件可以订制自己的Windows CE .NET Test Kit客户端。

Pulbic

|--WCESHELLFE *

|--SHELLSDK   *

|--SHELL      *

         这三个目录下的东西都是shell相关的.SHELL下面提供了standshellAYGSHELLstandShell就是标准的windowsCEshell看起来和tablePC的样子差不多,其中AYGshell原来是给Pocket PC设计的,这两个shell都可以在CEPBIDE里面选。

|--WCEAPPSFE

         CE自带的一些应用程序,如PWordInbox等,无源码,只是一些LIB,只可以编译成应用程序。

|--VIEWERS

         就是CE带的几个OFFICE查看程序,word viewexecl viewpdf view等,同样无源码。

|--SQLCE

         这个就是SQLCE的老家,不过和上面一样,还是没得改,更没得写。

|--SPEECH

         这个目录下面是MS SAPI5.0,里面包括了TTS和语音识别,免费!不过只支持汉语、英语还有日语的TTS,其他的语言一概不支持。同样也是不开放代码

|--SERVERS

         这个目录下主要是windowsCE的网络服务。

|--SCRIPT

         这个目录是vb scriptjava script所在的目录,一样无源码

|--IE

         这个不用介绍了,不过IE是可以更改或定制的

|--RDP

         该目录下面提供远程桌面的支持

|--IABASE

|--HLBASE

         这两个目录存在的目的不是给PBIDE用的,而是在命令行模式下创建工程的模版,里面有很多.bat文件,对应了一些默认的配置,这个和PB IDE里面的向导是一致的。两个目录的区别在于,一个带显示一个不带,这就决定了配置有很多相关的东西不一样:如gwes等,所以分开两个目录,使用不同的sysgen.bat文件。在CE5.0中已经将这两个目录合二为一了。

|--DirectX

|--DCOM

         该目录提供DCOM/COM的支持,可惜的是没有源码,仅仅是2二进制的链接库。

|--DATASYNC

|--COMMON

         我们在windowsCE IDE中选取的很多特性的源代码都在这里,而且这儿提供了很多开发模版供我们写代码使用

 

嵌入式产品开发步骤

 

基于CE的开发步骤(红色为软件人员需要做的)

l          规格制定(Specification

l          电路设计(驱动开发人员可参与其中)

l          印刷电路板制作

l          焊接

l          调试电路(驱动开发人员可参与其中)

l          Bootloader

l          驱动程序开发

l          操作系统的裁减与生成

l          应用程序开发

l          整机联调

 

嵌入式产品开发流程(简单的研发流程,未涉及到一个产品的测试、终试、小批量及其它管理流程)

 

CE各开发阶段的分类

l          协助硬件工程师

l          Bootloader

l          驱动开发

l          内核定制

l          应用程序开发

 

CE各开发阶段的要求

l          需要目标设备

l          需要SDK

l          需要BSP

l          协助硬件工程师、Bootloader、驱动开发这三个工作需要大家了解或掌握(CC++知识、硬件知识、芯片的资料、相关平台的汇编知识、Windows CE的运行原理)

l          应用程序需要大家了解或掌握桌面的应用开发经验(VC.NET

 

 

 

 

完整的CE系统内容

序号

 

项目

说明

1

 

Bootloader

加载Windows CE操作系统镜像的程序

2

 

CPU初始代码

基于特定CPU系列的初始代码,由Windows CE提供

3

 

驱动程序

基于特定硬件的驱动程序,不同的硬件设备可能有不同的设置,驱动程序分别由Windows CE、硬件厂商提供,其它具体的驱动程序需要设计人员自行编写

4

 

用户界面接口

 

5

 

完成特定功能的应用程序

 

 

Platform Builder

Platform Builder是微软提供给Windows CE开发人员进行基于Windows CE平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试Windows CE操作系统平台的工具。

它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时,开发人员还可以利用Platform Builder来进行驱动程序开发和应用程序项目的开发等等。Platform Builder的强大功能,已使其成为Windows CE平台下嵌入式操作系统开发和定制的必备工具。

 

Platform Builder的主要特性

l       平台开发向导(Platform Wizard)和BSP(主板支持软件包)开发向导(BSP Wizard)。

       开发向导用来引导开发人员去创建一个简单的系统平台或BSP,然后再根据要求作进一步的修改。提高了平台和BSP创建的效率。

l       基础配置。

       为各种流行的设备类别预置的可操作系统基础平台,为自定义操作系统的创建提供了一个起点。开发人员可以很容易地定制并编译出一个具备最基本功能的操作系统。然后再在其上做后续的修改。

l       特性目录(Catalog)。

       操作系统可选特性均在特性目录(Catalog)中列出,开发人员可以选择相应的特性来定制操作系统。

l       自动化的依靠性检查。特性(Feature)之间的依赖关系是系统自动维护的。开发人员在选择一个特性时,系统会自动将这一特性所依赖的特性加上;反之,当删除一个特性时,系统会自动检测是否已经选择了依赖于它之上的其它特性,如果有,系统会给出提示,通知开发人员这一特性现在不能删除。

l       系统为驱动程序开发提供了基本的测试工具集:Windows CE Test Kit(测试工具包).

l       内核调试器:可以对自定义的操作系统映像进行调试,并且向用户提供有关映像性能的信息。

l       导出向导(Export Wizard):可以向其他PlatformBuilder用户导出自定义的目录(Catalog)特性。

l       导出SDK向导(Export SDK Wizard):使用户可以导出一个自定义的软件开发工具包(SDK)。即可以将客户定制的SDK导出到特定的开发环境中(如EVC)去。这样开发人员就可以使用特定的SDK写出符合特定的操作系统平台要求的应用程序。

l       远程工具:可以执行同基于Windows CE的目标设备有关的各种调试任务和信息收集任务。

l       仿真器(Emulator):通过硬件仿真加速和简化了系统的开发,使用户可以在开发工作站上对平台和应用程序进行测试,大大简化了系统开发流程,缩短了开发时间。

l       应用程序调试器:可以在自定义的操作系统映像上对应用程序进行调试。

l       提供了对NET FrameWork Compact Edition(即.NET平台精简框架)的支持。

 

Platform Builder概况

l          Windows CE一般应用于特定的嵌入式系统中,在许多情况下,不但需要向目标平台添加基本的操作系统特性,以使它能够完成基本的控制任务,另外,还要向目标平台中加入外部设备的驱动程序和一些附加的设置。但是,对于一些通用性较强的嵌入式系统,如PDA、机顶盒、智能电话等,微软都为其特别定制了专用的操作系统,如SmartPhonePocketPC 等。开发者可以利用这些特定的操作系统,并在此基础上进行调整,从而更快地定制出适合需要的目标操作系统平台。

l          深刻理解Windows CE的重要组件及系统提供的可选特性,并灵活运用Platform Builder的配置文件.REG.BIB.DAT.DB是定制适合目标平台的WindowsCE操作系统的关键。

l          其中比较重要的两个部分是工作区窗口和特性目录窗口。其中特性目录窗口是操作系统可选特性的一个集合,包括BSPCore OS、设备驱动程序,还包括开发人员自已通过CEC文件(Catalog Feature File 是可编辑的一个文件,通过编辑该文件,开发人员可以加入自已定制的特性到特性目录中,详细内容见第四章)导入的自定义特性,以及通过设备提供商提供的CEC文件加入到系统中的特性。

l          工作区窗口是开发人员已经选定的特性的列表,这些特性都将用到一个新定制的操作系统中。另外,如果存在与正在定制的操作系统系统相关的应用软件,在工作区窗口还会出现类似于Visual C++工程的Class viewResource ViewFileView等可选标签。

l          最后,在窗口底部状态栏中,Size代表正在定制的操作系统已经选定的特性占用空间的大小,也就是定制的操作系统的大小,Size右侧的图标代表PlatformBuilder当前处于的状态,当编译操作系统时,图标会变成。

l          对于菜单栏和工具栏中具体功能的使用,这里就不一一介绍了,它们都和Windows中其它软件一样,遵循相似的风格设计的。通过几个操作系统的定制过程,就会熟悉Platform Builder的操作。

 

 

eMbedded Visual C++

l          编写在Windows CE下运行的应用程序,需要使用专门用于Windows CE的开发工具。工具的选择由你使用的编程语言而定,可以选择的编程工具有Embedded Visual C++Embedded Visual Basic。但是最佳选择莫过于Embedded Visual C++,因为嵌入式系统资源有限,C++编译器效率高、性能好,编译出的应用程序结构紧凑;而Embedded VisualBasic应用程序代码过于冗长且效率低下。现在应用最广泛的开发工具就是Embedded Visual C++EVC),最新版本是4.0

l          EVC开发和Windows下的VC开发在界面、语法和开发流程上基本上都是一样的,对熟悉VC的人很快就会使用EVC进行开发。

创建基本的操作系统镜像

File -> New Platform……

选择开发板支持包

选择基本配置结构

选择基础类库

选择应用程序

核心操作系统服务

选择通信服务

选择文件系统

选择字体

选择所支持的国家

选择Internet程序

选择多媒体

选择安全设置

选择操作系统外壳

 

生成操作系统镜像

l       Build菜单,点Set Active Configuration一项。

l       从显示的列表中选择

l       Platform菜单,点Setting一项。

l       Build Options选项卡,勾选Enable Full Kernel Mode

l       Environment选项卡,点按钮New,在弹出的对话框Variable Name一栏后输入IMGRAM64Variable Value一栏后输入1,然后点按钮“ok”

这个地方主要设置一些对我们的操作系统镜像有关的环境变量,最常用的就是IMGRAM64这个环境变量,这个变量主要是在你的操作系统镜像过大时(比如大于20MB),充许系统使用64MB或以上的内存运行系统。实际上就是对config.bib文件中的内存部进行设置。

l       “ok”关闭Platform Settin对话框。

l       Build菜单,点Build Platform一项,系统开始生成镜像文件。

l       在系统build过程中,有时会出现一些对话框,警告你现在准备将Digital RightsManagement.NET Compact Framework Beta Release等加到你的平台,你直接点“ok”按钮就可以,不必理会它的存在。

 

调试操作系统镜像

调试访真(EMULATOR)操作系统镜像

为什么要使用仿真程序进行调试?

l       首先并行开发,开发桌面或嵌入式产品的一个关键问题是进入市场的时间。没有仿真,就必须使用硬件参考平台(它可能与最终的硬件配置有很大的差别),或者需要等到硬件开发部门完成参考电路板的开发。而使用仿真开发的话,应用程序开发团队就能与硬件开发并行地开发和测试应用程序。

l       其次产品测试,使用仿真的另一个好处是能够将操作系统映像交付给客户(或内部测试人员),让他们进行测试。

l       再次就是我们对系统进行不关系到硬件的修改、调整时,不需要下载到目标机就可以观察到修改后的结果。

 

调试访真环境(EMULATOR)镜像

l      仿真是用与开发工具(Platform Builder)所在的相同PC上,用软件的方式来模拟Windows CE运行,来进行调试。

l      在使用仿真调试前需要进行一下设置,你可以点Target菜单,点Configure Remote Connection,系统将启动如下图1所示,由于我们是进行访真调试,所以我们在Download:处选择Emulator,在Kernel:处也选择Emulator

l      单击Download:处的组合框后有一个按钮“Configure...”

l      点击这个按钮可以改变仿真环境的配置,如图2所示。

l      配置完成远程服务后,点Target菜单,点Download/Initialize,系统开始运行仿真程序,稍等一下后出现如图4.4.3所示画面。

 

驱动程序开发

l      Windows CE 驱动可以使用Platform Builder或者Visual Studio开发

l      平台开发人员一般使用Platform Builder开发设备驱动程序,驱动程序作为BSPBoard SupportPackage)的一部分进行整体编译开发

l      独立硬件供应商(IHVs)更多的使用Platform Builder开发驱动程序,对于部分驱动也会使用Visual Studio开发

l      应用程序开发人员更多的使用Visual Studio开发驱动,某些情况下会使用Platform Builder

驱动程序分类(一)

            本机驱动程序(Built-In Drivers

l              通常由GWES加载,驱动接口一般都是定制的(Custom Purpose

            流驱动程序(Stream Drivers

l              通常由Device Manager加载,驱动接口是标准的流式接口

            混和型驱动程序

l              同时有定制式和流驱动两套驱动接口,但是和系统交互只使用流式驱动接口,比如PC卡槽驱动

        按驱动层次分类

            层次型驱动程序(Layered Driver

l              MDDModel Device Driver),与硬件无关,面向上层应用程序,一般由微软建立统一框架

l              PDD(Platform Dependent Driver),针对具体硬件平台的操作代码,一般由驱动开发商实现

l              MDDPDD之间通过标准的设备驱动服务供应商接口DDSI连接

            独立型驱动程序(Monolithic Driver

l              独立驱动程序包含了MDD面向上层应用和PDD面向硬件平台两方面的代码

l              适用于操作不复杂的驱动

l              减少了MDDPDD传递之间传递信息的开销,实时性更强

 

生成SDK

l      定制好自己的内核以后如果需要的话可以通过PB生成自己的SDK。这样做的目的是为了方便编写应用程序。生成的SDK很容易安装到其他的编辑器上面,例如你可以把自己生成的SDK安装到EVC下面,这样当你需要新建一个工程的时候,你自己定制的SDK就会出现在选择画面中。

 

CE的启动过程

l      上电复位

l      Bootloader

l      Eboot

l      Download kernel

l      CE启动

 

Bootloader介绍

l      完成基本的硬件初始化

l      进入supervisor模式,清空指令和数据cache

l      设置系统时钟,PLL

l      配置SDRAM控制器

l      设置中断控制器

l      重新定位Boot loader代码

l      打开MMUCache

l      下载/加载Wince内核(串口,Ethernet,USB,CFcard,Hard disk)

l      烧写Flash(NOR,NAND,DOC)

l      参数设置(IP,DHCP,启动参数,etc..)

l      调试功能(内存,寄存器打印)

 

Windows CE编程特性

l      从内存管理上。运行Windows CE的设备一般被设计用来运行在很少的内存上,通常也没有大容量存储设备。Windows CE支持了一些特有的管理有限内存的函数、结构、消息等,编程上要利用这些资源,但在利用这Windows CE提供的这些编程资源时,有时不得不自已定义一些消息、进行程序结构上的调整等等。

l      从电源管理上。Windows CE机器的电源通常是基于电池的,而且电量很有限。开发时应遵循下面的原则来使用大多数有限的能量资源:避免占用不必要的CPU资源;限制使用一些常用的桌面机器的硬件,因为他们能够迅速消耗电池,比如Modem;不要超负荷使用电池资源等等。

l      从用户界面上。Windows CE机器和桌面系统的最大差别就在于用户界面。显示器是关键之一。Windows CE机器中显示器通常很小,而且分辨率也不高。尽管一些机器有彩色显示器,但是还有很多系统只支持灰度图像。因此,对于那些显示器无法表示的信息(如高分辨率图像信息)来说,你需要自行开发一种方法来传达给客户。

 

模拟器

EVC编程环境提供了模拟器(Emulator)来模仿目标硬件进行调试。因为目标硬件的运行环境与台式机的运行环境绝大多数都是不同的,所以EVC编程无法象VC编程一样随时进行运行、调试。但EVC提供了与大多数硬件平台相似的模拟器,这样就方便了编程人员,可以直接在EVC下调试程序。一般EVC开发人员都是先在模拟器中将应用程序界面设计好,然后再加入对特定硬件操作的功能,到硬件平台上去调试。这样就加快了开发速度。

 

Win32APIWindows CE API

由于Windows CE32位操作系统,它不支持任何16位函数,所EVC编程是WIN32编程。另外,Windows CE APIWin32 API的也不完全相同。Windows CE支持Win32 API中的绝部分函数,但有些是不支持的,同时它又扩充了一些特定的Windows CE函数,只在Windows CE下可以使用。如命令条(Command BarAPI等。

 

Unicode 环境

l      Windows CEWindows NT一样,是Unicode环境。尽管Windows CE支持ASCII功能来进行文件交换,但是Windows CE的本地文本格式是Unicode

 

EVC编程依旧是Windows编程

虽然EVCVC编程有许多不同,但是,它依旧是Windows编程,WindowsVC开发人员所积累的对类、COM/ATL的使用,程序的调试方法、开发流程等编程经验都可以用于EVC的编程。这也是Windows CE嵌入式操作系统占据优势并迅速成功的重要条件。所以如果你熟悉Windows 环境下的编程,再掌握Windows CE编程的特点,很快你就会进入Windows CE编程的世界。

 

 

 
原创粉丝点击