Windows CE驱动程序
- 格式:ppt
- 大小:358.50 KB
- 文档页数:18
Windows CE 6.0 6 0下的驱动 程序新特性何宗键 “微软——同济”移动与嵌入式中心 同济大学软件学院 济大学软件学院点击添加MSN机器人小新 为您收听下载MSDN中文网络广播课程加油助力!本次课程内容包括• 驱动程序开发简介 • CE 6.0的新内核架构对驱动程序的影响 • 内核模式驱动 VS 用户模式驱动 • 管理缓冲区 • 驱动程序的移植收听本次课程需具备的条件• 有过Windows CE 5.0开发经验 发经验 • 最好熟悉驱动程序开发 • 对CE 6内核有所了解Level 300驱动程序是什么?Application Driver Win CE OSDevice驱动程序是对物理或虚拟设备的抽象回顾驱动程序的基本知识z Native vs Stream ¾ 谁加载该驱动程序 (Who) z 单体 vs 分层 分层(MDD / PDD) ¾ 驱动的结构如何设计 (How) z Built In vs 动态加载 ¾ 驱动何时加载 (When) z Miniport、Wave、Touch ¾ 驱动的模型是什么样子 (What) z 内核驱动 vs 用户驱动 (新) 新 ¾ 在哪里加载驱动 (Where)回顾Windows CE 5的内存架构2 GB Kernel SpaceKernelLarge Memory AreaSlot 32 Slot 31 : : Slot 7 Slot 6 Slot 5 Slot 4 Slot 3 Slot 2Slot 1 – ROM DLLs Slot 0 – ExecutionSingle 2 GB VM for all Processes31 Slots for ProcessesExecution SlotWindows CE 6.0之后的内存模型2 GB Kernel SpaceKernel Filesystem y GWES Drivers2 GB p per ProcessProcess Code User VM32 K ProcessWindows CE 6中的两种驱动User r Memor ry Spac ceServicesD.EXE Windows CE Shell Application Service 1 Service n Udevice.EXE Udevice.EXE User Mode Driver 1 User Mode Driver nMarshalling Kernel Me K emory SpaceWin32 CE APIs – COREDLL / WINSOCK / COMMCTRL / COMMDLGKERNEL.DLLDEVMRG.DLL GWES.DLL DriversFILESYS.DLL FSDMGR.DLLNetworking DLLsOALK.COREDLL.DLL内核态驱动——新瓶装旧酒z 默认的驱动模式 z 在内核地址空间中运行 z 与内核模式的coredll, coredll k.coredll.dll k coredll dll链接 ¾自动完成,无需更改构建规则 z 效率高 ¾快速访问内核API ¾直接同步访问用户的缓冲区 z 稳定压倒一切! 稳定压倒 切! ¾驱动Crash可能会导致内核崩溃——用户态驱动老革命遇到新问题Reflector服务用户模式驱动程序加载User Mode Driver Host ProcessUser Application User Mode Driver 8ActivateDeviceEx XXX_Init(…) 1udevice.exe User Mode Driver User ModeActivateDeviceEx CreateProcess(,,Volume Name)10HANDLE Returned 39Kernel Mode 47Device Context XXX_Init forwarded to UM Driver HostReflector Service Device Manager 2569HANDLE Parent Bus Driver110HANDLE Returned用户模式驱动注册表p[HKEY_LOCAL_MACHINE\Drivers\ProcGroup_0003]"ProcName"="udevice.exe""ProcVolPrefix"="$udevice"[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Ethman]"Prefix"="ETM""Dll"="ethman.dll""Index"=dword:1; WZCSVC must be started before ethman"Order"=dword:2A; Flags==12 is DEVFLAGS_LOADLIBRARY and DEVFLAGS_LOAD_AS_USERPROC; Flags12 is DEVFLAGS LOADLIBRARY and DEVFLAGS LOAD AS USERPROC"Flags"=dword:12"UserProcGroup"=dword:3 ;// default to group 3BIB文件的改变深入理解:请参考共享源代码缓冲区管理原因——内核驱动缓冲区管理原因——用户驱动缓冲区管理的内容:指针参数与嵌套指针处理调用者缓冲区–列集方法列集之——同步或异步访问CeOpenCallerBufferCeAllocAsynchronousBuffer处理调用者缓冲区–安全拷贝安全拷贝的方法z CeOpenCallerBufferz CeAllocDuplicateBuffer处理缓冲区的API z CeOpenCallerBufferz CeCloseCallerBuffer处理缓冲区的APIz CeAllocAsynchronousBufferz CeFreeAsynchronousBuffer处理缓冲区的APIz CeAllocDuplicateBufferz CeFreeDuplicateBuffer用户态驱动程序的限制用户态驱动程序的限制内核态驱动的限制CeCallUserProc内核模式驱动用户模式驱动同步异步同步异步参数不需使CeAllocDuplicateBuffer 不需要使用CeAllocDuplicateBuf 列表中的指针要用CeFreeDuplicateBuffer fer CeFreeDuplicateBuff er嵌不CeOpenCallerB ffer CeOpenCallerB CeOpenCallerB ffer 入到结构体需要使用CeOpenCallerBuffer CeAllocAsynchronousB uffer C h uffer CeCloseCallerB ff CeOpenCallerBuffer CeAllocAsynchrono usBuffer C h 中的指针CeFreeAsynchronousBu ffer CeCloseCallerBuffer uffer CeFreeAsynchronou sBuffer CeCloseCallerBuffer深入理解:请参考共享源代码CE Base Team Blog: Windows Base Team Blog: Marshal Helper API:驱动程序的移植DEMO使用CEAppCompat工具检查应用程序的兼容性。
Windows CE .NET 4.2 产品概述一、介绍Microsoft® Windows® CE .NET是Windows CE 3.0的后续产品,它不仅是一个功能强劲的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。
借助于完善的操作系统功能和开发工具,Windows CE .NET为开发人员提供了构建、调试和部署基于Windows 的定制设备所需的一切特性。
平台开发工具Platform Builder是一个完全集成的开发环境(IDE),并且包括一个软件开发工具包(SDK)导出工具。
Windows CE .NET支持Microsoft eMbedded Visual C++®和Microsoft Visual Studio® .NET,为面向Microsoft .NET Compact Framework (Microsoft .NET Framework的一个子集)的Web服务和应用程序开发提供了一个完整的开发环境。
利用这些工具,开发人员可以迅速开发出能够在最新硬件上运行各种应用程序的智能化设计。
作为最新版本,Windows CE .NET 4.2对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,它提供了:●对安全和可伸缩网络的支持●得到增强的实时处理能力●更为优秀的性能表现●更为丰富的多媒体和Web浏览功能●与个人计算机、服务器、Web服务以及其它设备更为出色的互操作性欢迎阅读本文,全面了解Windows CE .NET 4.2带给我们的丰富功能和精彩技术。
Windows CE .NET将帮助您一步一个脚印地走向出美好的未来。
二、功能和技术概览三、技术组件作为Windows CE .NET的最新版本,Windows CE .NET 4.2为用户开发独具创新的解决方案和交付个性化的用户体验提供了必需的强大技术和工作效率。
Windows CE 嵌入式系统Windows CE是Microsoft公司的嵌入式操作系统产品。
它是一个紧凑、高效和可扩展的操作系统,具有多线程、多任务、确定性的实时和完全抢先式优先级的操作系统环境,适合于只有有限硬件资源的硬件系统。
操作系统的定制采用模块化设计方式,便于用户的使用。
支持Win32 API和MFC,具有Windows程序设计经验的用户可迅速掌握其编程方法。
第一章绪论BSPBSP是介于主板硬件和操作系统之间的一层,也可以说是操作系统的一部分,主要目的是为了支持操作系统,使之能够正常地在主板上运行.“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素。
一般情况下,嵌入式操作系统可分为两类:一类是面向控制和通信等领域的实时操作系统,如WinRiver公司的VxWorks、ISI公司的pSOS、QNX公司的QNX和ATI的Nucleus等.另一类是面向消费电子产品的非实时操作系统,Windows CE是一个实时操作系统.实时支持功能在以下几个方面提升了Windows CE的性能.(1)支持嵌套中断(2)允许更高优先级别的中断首先得到响应,而不是等待低级别的中断服务线程(IST)(3)更好的线程响应能力(4)对高级别中断服务线程的响应时间上限的要求更加严格,在线程响应能力方面的改进,可帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助开发人员创建更好的嵌入式应用程序.(5)更多的优先级别,256个优先级别可使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性.(6)更强的控制能力,对系统内的线程数量的控制能力可使开发人员更好地掌握调度程序的工作情况.5 丰富的多媒体和多语言支持第二章Windows CE的体系结构和功能2.1 Windows CE的层次结构2.2 进程、线程与调度2.3 内存管理2.4 存储管理与文件系统2.5 用户界面与图形系2.1.1 微内核结构Windows CE属于比较典型的微内核操作系统在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现.这样做显著地提高了系统的稳定性和灵活性.操作系统的结构可分为单体内核结构和微内核结构.传统的UNIX 是单体内核操作系统的代表.单体内核操作系统将图形、设备驱动及文件系统等功能全部在操作系统内核中实现,运行在内核状态和同一地址空间.其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核庞大,占用资源较多且不易剪裁,一旦每个驱动程序出错,就会导致整个系统的崩溃,系统的稳定性、安全性不好.与此相反,微内核系统在内核中只实现那些必须由内核实现的基本功能,而将图形系统、文件系统、设备驱动及通信等功能在内核之外,以系统服务的形式提供各种功能.这种结构的优点是有一个精炼的内核,便于剪裁与移植,而且由于系统服务程序运行在用户地址空间,因而个别驱动程序的错误不至于导致整个系统的崩溃;其不足之处是在运行中用户状态和内核状态频繁地切换,从而导致系统效率不如单体内核.微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。
下USB OTG设备驱动程序设计孔旋,邓中亮北京邮电大学电子电子工程学院计算机应用技术专业,北京(100876)E-mail:kongxuan1982@摘要:本文介绍了USB OTG技术,分析了两用USB OTG设备驱动程序配置模型以及下设备驱动程序模型,并详细介绍了下pl2303的usb转串口桥接器芯片驱动程序的设计与实现。
关键词:USB OTG,,驱动程序1.引言USB,全称是Universal Serial Bus(通用串行总线)。
在1994年年底,由当时的康柏、IBM、Microsoft等多家公司联合发起成立的通用串行总线开发者论坛(USB Implementers Forum,简称USB IF)先后陆续推出了USB0.7、USB1.1、USB2.0规范,其理论传输数率最高可达480Mb/s。
最近,根据现有的USB接口在有线/无线,性能及应用规范上的不同,USB IF将USB接口分为5类,并发布了相应的标识,分别是:Wireless USB、Original USB、Hi-Speed USB、On-The-Go USB及Hi-Speed On-The-Go USB[1] 。
是微软公司向嵌入式领域推出的一款紧凑、高效的32位嵌入式操作系统,具有多任务、实时性、模块化及可伸缩性、强大的通信和多媒体能力等特点[2] ,在移动计算、工业控制和信息家电等诸多领域都有广泛的应用。
本文将通过工具Platform Builder实现TI OMAP850 PDA手机平台下USB OTG设备驱动程序,并实现基于OTG技术的一种应用——在无PC条件下,以PDA手机平台端为USB 主机端的数据通信。
B OTG技术2.1 OTG技术简介USB技术的发展,使得PC和周边设备能够通过较简单、可方便热插拔的方式连接在一起,通过USB总线,在PC的控制下进行数据交换。
但这种方便的数据交换方式,就在不久以前(10年以内),一旦离开了PC,各设备间无法利用USB接口进行操作,因为当时没有任何一种PC以外的其他设备能够充当PC一样的Host。