但是WindowsCENET是一个运行时的系统MicrosoftWin32C课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《但是WindowsCENET是一个运行时的系统MicrosoftWin32C课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 但是 WindowsCENET 一个 运行 系统 MicrosoftWin32C 课件
- 资源描述:
-
1、1第十四章 Windows CE.NET系统开发14.1 Windows CE.NET开发 14.2 BSP开发概述 14.3 驱动程序开发 14.4 BootLoader开发 14.5 OAL开发 214.1 Windows CE.NET开发3Windows CE.NET开发o根据开发所处的层次以及工具的不同:nWindows CE.NET应用开发nWindows CE.NET系统开发OEM 硬件硬件嵌入式外壳嵌入式外壳WIN32 APIsCOREDLL,WINSOCK,OLE,COMMCTRL,COMMDLG,WININET,TAPIWindows CE 外壳外壳远程连接远程连接内核内核红
2、外红外GWES设备管理设备管理文件管理文件管理TCP/IPIPv6OALBootloader驱动驱动设备驱动设备驱动文件驱动文件驱动414.1.1 Windows CE.NET系统开发o Windows CE.NET操作系统定制o Windows CE.NET驱动程序开发o Windows CE.NET操作系统移植(BSP开发)5(1)Windows CE.NET操作系统定制o 操作系统定制的一般流程:n 得到并安装BSP(CEC文件)o PB自带o 从OEM硬件厂商获得o 自主开发n 定制操作系统o 生成操作系统镜像:NK.bin文件n 下载调试o 仿真o CEPCo 下载到开发板调试6(2
3、)Windows CE.NET驱动程序开发o 普通操作系统的驱动模型,两种模式:n 静态链接:驱动代码编译成.LIB文件并与操作系统内核链接,形成一个整体,随操作系统一起启动加载。n 动态链接:操作系统在启动后对硬件驱动延迟加载,但是依然加载到操作系统的内核空间中。o Windows CE.NET驱动模型比较特殊n 在Windows CE下,所有驱动都以用户态下的DLL文件形式存在。7(3)Windows CE.NET操作系统移植o BSP(Board Support Package):是介于主板硬件和操作系统之间的一层软件系统。o 开发BSP的内容主要包括:nBootLoader开发nOAL
4、开发 标准开发板(Standard Development Board)BSPOEM抽象层(OAL)引导程序(Boot Loader)设备驱动程序系统配置文件82.Windows CE.NET应用开发o Windows CE.NET为应用程序开发人员提供了三种选择,分别是:n Win32应用程序编程接口(Win32 API)n 微软基础类(Microsoft Foundation Class,MFC)和活动模板库(Active Template Library,ATL)n.NET Framework精简版(.NET Compact Framework,.NET CF)9Windows CE.N
5、ET应用开发的选择 10三种API的特点比较 API特点特点Microsoft Win32(C/C+)可以生成最小的和最快的可以生成最小的和最快的.exe 文件和文件和DLL文件文件 最低的内存负载最低的内存负载 常用于驱动程序,控制面板常用于驱动程序,控制面板applets以及以及shell扩展扩展 没有运行时的要求(但是没有运行时的要求(但是Windows CE.NET是一个运行时的系统)是一个运行时的系统)MFC(C+)基于面向对象的思想:继承性、封装性、多态性基于面向对象的思想:继承性、封装性、多态性 类的支持:数组、列表、数据操纵类的支持:数组、列表、数据操纵 类型定义的安全性类型定
6、义的安全性 可以实现完整的可以实现完整的MFC/ATL 源代码移植源代码移植 良好的工具支持,如各种向导良好的工具支持,如各种向导.NET Framework(C#and Microsoft Visual Basic.NET)设计良好的编程接口设计良好的编程接口 同样基于面向对象的思想:继承性、封装性、多态性同样基于面向对象的思想:继承性、封装性、多态性 类的支持:数组、列表、类的支持:数组、列表、hash表、字典、堆栈表、字典、堆栈 类型定义的安全性类型定义的安全性 支持命名空间支持命名空间 内存的自动回收功能,降低了内存泄漏的风险内存的自动回收功能,降低了内存泄漏的风险 二进制可移植性二进
7、制可移植性(.exe&.dll)Web service支持支持 对对XML处理的良好支持处理的良好支持 良好的工具支持,如:良好的工具支持,如:Forms Designer11Debug Device Build DeviceImageComponent Catalog incl.NET CFDevelopment CycleFrom Platform to ApplicationsPlatform Builder1214.1.2 Windows CE.NET开发过程 o 1.迭代开发过程 n 基于Windows CE设备的开发过程是由不断修改、增加配置特征、构建、下载、调试等步骤所组成的一个
8、迭代开发过程 13典型的平台开发周期o 在一个典型的平台开发周期当中,为了构建一个基于Windows CE.NET的平台,应该包含以下几个步骤:n开发人员必须首先选择一个适合于目标设备的Windows CE 的配置,即平台的定制(Customize Platform)。n然后,基于上述配置创建一个操作系统镜像,并且开发一个BootLoader,用于将镜像下载到目标设备(如CEPC,或者一个真正的目标板)。n在目标平台上,开发人员可以修改和调试操作系统(Debug Platform),使之更为适合于目标设备。n一旦完成操作系统配置,开发者就可以利用P1atform Builder提供的导出SDK
9、工具。142.串行开发和并行开发 o 一个完整的基于Windows CE的设备开发过程包括硬件开发调试(Port H/W)、Windows CE操作系统定制(Customize OS)和应用程序开发调试(Develop Apps)三个阶段。o 由于后一阶段的工作必须依赖于前一阶段工作的完成,所以传统的开发设计过程是逐阶段的串行过程 15并行开发o 为了能够缩短基于Windows CE设备的开发周期,充分调动开发人员,必须要能够减小或者消除上述三个阶段的相关性,使各个阶段的工作可以独立进行。16并行开发过程 o 在硬件开发者开发调试定制的设备硬件的同时,操作系统开发者就可以先在模拟器或任意SDB
10、上开始操作系统特征的定制,并按照设备定义为应用程序开发者导出SDK。o 而应用程序开发者在硬件开发者开发硬件、操作系统开发者定制操作系统的同时,也可以先在模拟器上从事应用程序软件的开发调试,在得到操作系统开发者导出的SDK时,也可以在SDB上进行应用程序的开发调试。o 在所有三个阶段的工作都分别完成后,定制的操作系统和开发的应用程序最终再移植到定制的设备硬件上进行综合测试和调试。173.工程开发进度图 o一个典型的Windows CE工程的开发进度图,图中展示了各个阶段要完成的主要开发任务及其时间线,主要包括四个任务:OS移植Porting、OS定制、应用开发Apps以及测试QA。1814.2
11、 BSP开发概述 1914.2.1 BSP概述 o Windows CE.NET的可移植性是通过BSP来实现的。Windows CE采用了分层的设计方法,将系统中与硬件直接相关的一层软件独立出来,称之为板级支持包(Board Support Package,即简称BSP)。o BSP位于硬件平台与操作系统之间,属于操作系统的一部分。其主要功能在于配置系统硬件使其工作于正常的状态,完成硬件与软件之间的信息交互,为OS及上层应用程序提供一个与硬件无关的软件平台(包括操作系统的驱动及硬件驱动)。BSP能够支持众多的硬件平台。20BSP功能o 其具体功能包括:n 硬件初始化,主要是CPU的初始化,为整
12、个软件系统提供底层硬件支持;n 为操作系统提供设备驱动程序和系统中断服务程序;n 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境;n 初始化操作系统,为操作系统的正常运行做好准备。212.BSP和PC机主板上的BIOS区别 oBIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化.)、装入操作系统并调度操作系统向硬件发出的指令,它的Firmware代码是在芯片生产过程中固化的,一般来说用户是无法修改。在OS正常运行后,BIOS的作用基本上也就完成了。nPC机BIOS的作用更像嵌入式系统中的BootLoader(最底层的引导软件,初始化主板的基本设置,为
13、接收外部程序做硬件上的准备)。与BootLoader不同的是,BIOS在装载OS系统的同时,还传递一些参数设置(中断端口定义等),而BootLoader只是简单的装载系统。oBSP是和操作系统绑在一起运行在主板上的,尽管BSP的开始部分和BIOS所做的工作类似,可是大部分和BIOS不同,作用也完全不同。此外BSP还包含和系统有关的基本驱动(串口,网口.),此外程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中。而BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置。更不会包含一些基本的硬件驱动。2214.2.2 BSP基本结
14、构 o BSP主要由4部分构成:OEM抽象层、引导程序、设备驱动程序和配置文件 231.BootLoader o 引导程序(BootLoader)是在硬件开发板上执行的一段代码。o 它的主要功能是初始化硬件,加载操作系统镜像(OS Image)到内存,然后跳转到操作系统代码去执行。242.OAL o OEM抽象层简称OAL(OEM Abstraction Layer)。它是操作系统内核抽象出来的与硬件交互的接口,它的实现代码通常是与硬件高度相关的。o OAL层主要负责Windows CE内核与硬件的通信。当引导程序引导操作系统结束后,由OAL层负责硬件平台初始化、中断服务例程ISR、实时时钟R
15、TC、计时器Timer、内核调试、开关中断和内核性能监测等工作。253.Device Driver o 设备驱动程序(Device Driver)是BSP的一个重点。o 对于某个特定的BSP来说,当中应该包含在这块开发板上的所有的设备驱动程序,这样才可以保证Windows CE操作系统能够发挥开发板的最大效能 264.Configuration File o 配置文件(Configuration File)是一些包含配置信息的文本文件。这些配置信息通常与系统镜像或源代码有关。o BSP中的配置文件包括:镜像配置文件BIB、DB、REG、DAT,源代码配置文件Sources和DIRS文件,以及将
16、BSP与Platform Builder集成的CEC文件。2714.2.3 BSP开发 o BSP开发思想 n一般来说,BSP的开发并不是要求开发者从零开始n对常用类型的CPU和外围设备,Platform Builder都提供了BootLoader、OAL、Device Driver的源代码,只要使用Platform Builder对已有的BSP进行剪裁和稍做修改,再加上微软提供的内核,就能驱动大多数的硬件设备。n而且Platform Builder还提供了丰富的标准应用程序和服务程序,在开发好OEM层之后,再加上这些应用和服务,就能让用户的硬件平台工作起来。28BSP开发过程 o BSP的开
17、发包括三个方面:BootLoader开发、OAL开发和驱动程序开发。一个BSP可以被定义为一个.cec文件,这个文件定义了可以添加到定制硬件平台的一组默认特征。o BSP开发的步骤如下:n(1)硬件准备n(2)克隆参考BSPn(3)开发BootLoadern(4)开发OALn(5)开发驱动程序n(6)发布BSP2914.3 驱动程序开发 3014.3.1编写Windows CE.NET驱动的要素o 要了解驱动程序所针对的硬件n阅读硬件规范和白皮书o 要了解目标操作系统下驱动的工作机制n加载和卸载n初始化n访问外设I/On处理中断n处理DMAo 了解驱动程序模型n对于某一类外设,操作系统会提供特
18、定的驱动模型31驱动开发工具 o Windows CE 的驱动程序可以使用Platform Builder或者Visual Studio来进行开发。n平台开发人员通常使用Platform Builder开发设备驱动程序,驱动程序作为BSP(Board SupportPackage)的一部分进行整体编译开发;n独立硬件供应商(Independent Hardware Vendor,IHV)使用Platform Builder开发驱动程序,对于部分驱动也会使用Visual Studio开发;n应用程序开发人员更多地使用Visual Studio开发驱动,某些情况下会使用PB。3214.3.2 Wi
19、ndows CE.NET的驱动模型 o 驱动程序将操作系统和设备连接起来,使得操作系统能够识别设备并为应用程序提供设备服务。o 驱动程序模型决定了驱动程序的软件接口,因此,不同的驱动模型只能通过它们支持的软件接口来区别,而不是它们所适用的设备。o 按加载方式和接口类型分类,基于Windows CE的驱动程序主要分为两类 33(1)本机驱动程序(Built-In Drivers)o本机驱动程序又被称为native device drivers,它是由微软开发并由系统直接支持,适合于集成到CE 平台的设备,典型的包括电源驱动、显示驱动、鼠标键盘驱动、打印机驱动以及LED显示驱动。o这些驱动程序通常
20、由GWES(图形窗口及事件子系统)统一管理和加载,成为GWES的一部分,不表现为单个的DLL 使用。34(2)流接口驱动程序(Stream Drivers)o 另外一个名称又称为可安装驱动(Installable Drivers)。它具有较好的可移植性和可扩展性,被设备管理器独立出来管理统筹。o 流驱动程序是一般类型的设备驱动程序,支持几乎所有可连接在Winows CE平台上的外部设备,所以更常用。35流接口驱动程序o 流接口驱动程序是以用户模式的DLL文件形式出现,并且通常由设备管理器(Device Manager)动态加载。o 驱动接口是标准的流式接口,尤其适用于IO操作。它实现了一组流接
21、口函数(CreateFile、ReadFile、WriteFile、IOControl等),这些函数使得应用程序可以通过文件系统访问驱动程序,也就是将设备当作文件来进行操作。o 典型的流接口驱动程序包括PCMCIA driver(PCMCIA.DLL)、Serial driver(SERIAL.DLL)、ATA/FLASH driver(ATA.DLL)、Ethernet driver(NE2000.DLL,SMSC100FD.DLL)。362.按驱动层次分类 o 按驱动层次分类,驱动程序可以分为两类 37(1)层次型驱动程序(Layered Driver)o 驱动采用分层结构,一般分为两层:
22、n 上层是模型设备驱动程序MDD(Model Device Driver),与硬件无关,面向上层应用程序,一般由微软建立统一框架;n 而下层是依赖平台的驱动程序PDD(Platform Dependent Driver),是针对具体硬件平台的操作代码,一般由驱动开发商实现。n MDD和PDD之间通过标准的设备驱动服务供应商接口DDSI连接。38(2)独立型驱动程序(Monolithic Driver)o 独立型驱动程序基于单个硬件,直接把硬件设备的功能性通过设备驱动程序接口(DDI)传递给操作系统。o 独立驱动程序包含了MDD面向上层应用和PDD面向硬件平台两方面的代码,适用于操作不复杂的驱动
23、。这样减少了MDD和PDD传递之间传递信息的开销,实时性更强。393.驱动模型 o Windows CE.NET的驱动模型就是基于驱动层次的分类所构建的,大多数 Windows CE 设备驱动程序都由一个平台相关驱动程序(PDD)和一个模型设备驱动程序(MDD)组成。40(1)模型设备驱动程序(MDD)o 微软为链接驱动程序提供了模型设备驱动程序(Model Device Driver,MDD)。对平台和函数来讲模型设备驱动程序是通用的,既是源代码也是库。o 模型设备驱动程序执行下列任务:n链接PDD层并定义它希望调用的函数,通常这些函数叫做设备驱动程序服务器提供接口(DDSI)。n把不同的函
24、数集提供给操作系统,通常这些函数叫做设备驱动程序接口(DDI).n负责与GWES模块和内核通信,包含一些复杂的操作,例如中断处理等。41(2)平台依赖驱动程序(PDD)o 平台依赖驱动程序(Platform Dependence Driver,PDD)完成真正的硬件访问操作:n 包含与某款硬件相关的代码n 对于不同的硬件产品或者标准,有不同的实现n 只能与某一类MDD协同工作n 实现MDD所需要的DDSI函数42(3)MDD与PDD关系 o 在编写驱动程序时,通常PB中会自带此类型驱动的MDD代码,所以MDD代码是无需更改,我们只需要修改PDD层的代码。o 通常,MDD层的代码与PDD层的代码
25、会被编译成独立的静态Lib库,然后进行链接,形成可执行的驱动程序。o 所以,MDD和PDD的划分只是在源代码逻辑层面,在驱动程序的二进制可执行代码中不会存在MDD和PDD的分层。43(4)驱动模型接口 o 设备驱动程序接口():是在中实现的函数集,模块通过这个接口调用设备驱动程序。o 设备驱动程序服务器提供接口():是在中实现的函数集并由调用。o 当操作系统访问硬件时,首先通过使用DDI函数与驱动程序交互,然后在驱动程序内部,MDD再通过DDSI函数与PDD交互,最后由PDD完成真正的硬件访问操作。4414.3.3 Windows CE.NET驱动程序的中断机制 o 与其他计算机结构一样,当设
展开阅读全文