WinCE应用程序开发

实验五WinCE中的驱动程序开发

WinCE中的驱动程序开发 一.实验目的 1、熟悉WinCE中流式接口驱动程序的12个接口的功能。 2、掌握流式驱动程序的工作过程。 3、能够编写出流式接口的驱动程序。 二.实验内容 使用VS2005的智能设备应用程序开发方法,进行网络通信的编程,并通信多线程技术实现服务器与客户端之间的文件传输。 三.实验设备及工具 硬件:PC机一台; 软件:Windows XP操作系统,VS2005开发环境,WinCE 6.0开发环境,或Windows Mobile 5.0 SDK 四.实验步骤及说明 (1)写出流式接口驱动程序的12个接口,及每个接口的功能。 答:见教材515页 (2)写出流式驱动程序的工作过程。 答:第一步:加载驱动程序,主要有两种加载方式:(1)当系统启动时,设备管理器搜寻注册表的HKEY_LOCAL_MACHINE\Drivers\BuiltIn键下面的子键,并逐一加载该子键下的每一个驱动,此过程称为BusEnum;(2)应用程序可调用ActivateDeviceEx()函数动态地加载驱动程序。 第二步:设备管理器从注册表的dll键值中获取驱动程序所在的DLL文件名。 第三步:设备管理器调用LoadDriver()函数把该DLL加载到自己的虚拟地址空间中。 第四步:设备管理器在注册表的HKEY_LOCAL_MACHINE\Drivers\Active下,记录所有已经加载的驱动程序。 第五步:设备管理器调用驱动程序中的COM_Init函数,并把上一步中添加的注册表项的完整路径作为COM_Init函数的第1个参数传入驱动程序内。 第六步:在COM_Init中,通常须对硬件进行一些最基本的初始化操作。 通过以上的操作完成流式驱动程序的加载任务。 对驱动程序的操作: 第一步:应用程序使用该设备。首先,应用程序调用CreateFile(TEXT(“COM1”)….)打开设备。然后,文件系统判断打开的是文件还是设备。最后,如果打开的是设备,就将控制权交回设备管理器。 第二步:设备管理器调用驱动程序的COM_Open()函数打开设备。 第三步:COM_Open()函数把打开设备的结果返回给设备管理器。 第四步:设备管理器把SMP_open()的返回结果,返回给应用程序的CreateFile()函数调用。 通过第七步到第十步,设备已被成功打开,接下来可对设备进行读/写和控制操作。下面将以从设备中读取数据为例。 第一步:应用程序使用CreateFile()调用返回的句柄,调用函数ReadFile(),向设备发送读请求。

wince6.0_开发环境搭建

Window CE6.0开发平台搭建详解 2011年08月29日 Windows CE6.0的开发无非两大方面:操作系统开发和应用程序开发,操作系统开发包括系统的定制,驱动开发和其他需要完成的底层工作。应用程序开发主要是与实际应用结合紧密的程序开发。 要搭建这样的开发环境,至少要包括两部分,一个是硬件平台,一个是软件平台,在Windows CE6.0的开发中,微软公司把这些开发软件集成到了vs2005中。 Windows CE6.0开发环境需要安装的软件比较多、比较大,至少要10GB的空间,而且有着严格的安装顺序要求,一旦其中某一个环节出错,都会导致软件运行出现故障,为确保安装顺利,请仔细阅读本文,按照步骤一步一步进行安装。 一、所需安装软件 1、Visual Studio 2005 2、Visual Studio 2005 Service Pack 1 3、MSDN 4、platform builder for Windows Embedded CE6.0 5、Windows Embedded CE 6.0 Platform Builder Service Pack 1 6、Windows mobile 6的sdk 二、所用磁盘空间 在安装之前,请检查电脑的磁盘空间,VS2005和Windows Embedded CE6.0均是比较大 的软件,要占硬盘好10G多的空间,建议不要装在C盘,但是我装Windows Embedded CE6.0的时候,发现不能更改安装路径,没办法,只能把Windows Embedded CE6.0装在 C盘。 三、安装顺序 1.安装Visual Studio 2005 最好选择自定义安装方式,把不用的一些组件都删掉,这样会节省不少的磁盘空间。WINCE6.0的Platform Builder不像WINCE5.0是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成。 2.安装Visual Studio 2005 Service Pack 1

WINCE驱动开发中几个内存分配函数比较

【转】LocalAlloc,VirtualAlloc,malloc,new的异同首先明白几个概念:虚拟内存是从硬盘置换出来的,堆本身就是内存,程序运行时,可用内存=物理内存+虚拟内存。虚拟内存一般用文件来保存数据,虚拟内存的出现主要是因为以前内存不够(16M的内存刚出来的时候可是天价啊),磁盘相对便宜一些,所以聪明的系统设计者就把设计了虚拟内存,在程序运行的时候把那些很久没有被访问过的(可能以后也不会用到)内存映射到文件里面去(以后需要的时候再读进内存),把内存腾出来给真正需要执行的代码和数据,这样看起来可用内存就比物理内存多了。 HeapAlloc()是堆分配内存函数,查看c,c++的malloc,new函数的代码,可以看到就是对HeapAlloc()函数的封装,在堆上可以动态分配内存。 1. 首先我们来看HeapAlloc: MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是局部。函数原型为: LPVOID HeapAlloc( HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes ); hHeap是进程堆内存开始位置。 dwFlags是分配堆内存的标志。包括HEAP_ZERO_MEMORY,即使分配的空间清零。 dwBytes是分配堆内存的大小。 其对应的释放空间函数为HeapFree。 2. 再看GlobalAlloc:该函数用于从全局堆中分配出内存供程序使用,函数原型为: HGLOBAL GlobalAlloc( UINT uFlags, SIZE_T dwBytes ); uFlags参数含义 GHND GMEM_MOVEABLE和GMEM_ZEROINIT的组合 GMEM_FIXED 分配固定内存,返回值是一个指针 GMEM_MOVEABLE 分配活动内存,在Win32中,内存块不能在物理内存中移动,但能在默认的堆中移动。返回值是内存对象的句柄,用函数GlobalLock可将句柄转化为指针 GMEM_ZEROINIT 将内存内容初始化为零 GPTR GMEM_FIXED和GMEM_ZEROINIT的组合

WinCETouchPanel驱动详解

WinCEWinCEIWinCE Touch Panel 驱动详解 WinCE中的Touch Panel驱动是由GWE模块来管理的,Touch Panel驱动接收用户的触摸信息,并将其转换为屏幕上的坐标信息,传给GWE模块。在WinCE中, Touch Panel 驱动是分层的,分为MDDg和PDD层,这和其他WinCE设备驱动是一样的。MDDI由微软提供,用户只需要实现MD床口PDD层间的DDSI函数就可以了。如图 WinCE中的GWE模块负责加载和管理Touch Panel驱动,Touch Panel的MDD 层向上提供DDI接口,PDD层是针对硬件的实现,对MDD g提供DDSI接口。文档收集自网络,仅用于个人学习 1 Touch Panel驱动中的数据结构 ⑴ TOUCH _P ANEL_SA MP LE_FLAGS 用于描述一个采样点的信息,这些信息被定义在一个枚举结构中: enum enu mTouch Pan elSa mp leFlags { TouchSa mp leValidFlag = 0x01, TouchSa mp leDow nF lag = 0x02, TouchSa mp lelsCalibratedFlag = 0x04, TouchSa mpleP reviousDow nF lag = 0x08, TouchSa mp lelg nore = 0x10, TouchSa mp leMouse = 0x40000000 }; TouchSampleValidFlag :—个有效的采样值 TouchSa mp leDow nF lag:第一次按触摸屏时,返回该flag

WINCE系统

Wince操作系统 开放分类:操作系统 Microsoft Windows CE 快速反应的嵌入式应用常常管理严格的时间反应。例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。 为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。 实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internet newsgroup corp realtime group中。实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。如果没有达到系统时间限制条件,系统也是失效的。 搞清楚实时系统和实时操作系统(RTOS)的区别至关重要,实时系统代表所有系统组成设备——硬件,操作系统和应用——它需要达到系统的要求,实时操作系统(RTOS)只是整个实时系统的一个组成部分,它必须提供足够的功能以确保整个实时系统达到要求。 同样,搞清快速操作系统和实时操作系统之间区别,也很重要,对于一个RTOS虽然达到全面要求十分有用,但并不是它自己达到这种要求。Internet neusgronp cornp.realtime列举了作为一个实时操作系统,必须达到的要求: * OS(操作系统)必须是多线程和优先级之分。 * OS必须支持线程优先级。 * 一个优先级继承的系统必须存在。 * OS必须支持可预测的线程,同步发送机理。 另外,OS的行为必须是可预测的,这意味实时系统的开发者必须对系统中断级,系统调用和分时了如指掌: * 必须知道OS和设备驱动器的中数据匹配最大时间。 * 设备驱动器用来处理一个中断最大时间和关于这些驱动器的中断申请信息必须清楚。 * 中断响应(从中断到运行时间),必须可预测并满足功能要求。 每次系统调用时间必须可以预测,并且独立于系统的对象数目。本篇论文论述了微软Windows CE 操作系统是如何达到一个实时系统的要求,更有意义的是,Windows CE 保证一个时间的上限,它在收到中断后开始一个实时的优先级线程。本论文论述了对特定参考平台的中数据响应时间,参考为有Hinathi SH3 的微处理器的“Odo”平台。

WinCE驱动开发流程

wince驱动开发学习笔记 嵌入式技术/walking_man 发表于2007-03-20, 20:03 首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点,把这两种分类法分开了。在这里引用一下:“单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PD D与MDD,一般的微软已经实现了MDD,可能也实现了PDD,我们只需要对PDD做些修改就能使用,比如音频的驱动,显示的驱动。单层驱动是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如:ATADISK。 至于本地驱动和流式驱动是从驱动与系统其它模块(调用者)的接口 形式上做的分类.其实,本地驱动这个名称不大恰当,可能叫专用驱动或其它名字更为合适.它是指调用它的模块给它有特定的接口,比如电源驱动和通用LED驱动。而串口,网卡等就是流接口驱动程序. 所以,一个驱动程序可以是单体的流式驱动,例如:ATADISK.也可以 是分层的流式: 如OHCI ” 按照我的理解,单体和分层是驱动实现方式上的分类,而本地和流式则是驱动模型上的分类,所谓本地驱动就是操作系统有保留专门的接口,所谓流式是指编写的DLL文件里可以导出各种流式接口函数。 第二点:驱动的功能属性。设备驱动程序是操作系统内核和硬件的接口,操作系统定义了一组标准的接口,编写驱动的过程也就是实现这些接口。从应用程序到具体硬件间有如下这些环节起作用:

应用程序-调用OS函数-操作系统-驱动接口-驱动程序-硬件操作函数-硬件。在wince里驱动都以用户态的DLL存在,需要通过进程加载到slot里。共有三类系统进程用来加载:Device.exe,GWES.exe,File Sys.exe.绝大多数设备驱动都是通过Device.exe加载的。需要注意的是,不同的OS保留的设备驱动接口是不一样的,如桌面windows 和wince就不同。 第三点:wince下设备的初始化分为两个阶段:Device.exe的初始化;外设的枚举和加载。其流程是:上电-启动bootloader-启动N K-启动注册表init键(Device.exe启动)-初始化数据结构,I/O,电源管理等-加载BusEnum.dll(总线枚举器)-枚举注册表下Driver/buil din的所有子键。这里的枚举过程就是循环调用ActivateDeviceEx()函数加载驱动的过程。在OS启动完毕后,我们可以用PB的Remot e Registry Tool查看H_L_M/drivers/active包含的子键,看哪些驱动随启动而加载。 第四点:流接口驱动的概念。暴露流式接口函数的驱动即是流驱动,它把外设抽象成一个文件。过程是:应用程序使用文件API 对设备进行访问,OS接受API调用FileSys.exe,转到device.exe,调用流接口,与硬件交互。所谓流接口函数有十个,包括XXX_Init、XXX_Deinit、XXX_Open、XXX_Close、XXX_Read、XXX_Write、XXX_P owerUp、XXX_PowerDown、XXX_Seek、XXX_IOControl,在wince5.0中 增加le了XXX_PreClose,XXX_PreDeinit.而我们在应用程序里对应的文件A PI有CreateFile、DeviceIoControl、 ReadFile、 WriteFile,CloseHan dle,SetFilePointer. 第五点:编写流驱动的步骤。有两种实现途径:1。写DLL,做

WinCE操作系统

WinCE操作系统 WinCE操作系统是通用型的嵌入式操作系统,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。它1996年开始发布Windows CE 1.0版本,2004年7月发布了Windows CE .NET 5.0版本,目前用得最多的是Windows CE .NET 4.2版本,其发展速度也是很快的,功能上自不必描述,它的主要应用领域有PDA市场、Pcket PC、Smartphone、工业控制、医疗等。 就WinCE来讲,你无法买到WinCE这个操作系统,你买到的是Platform Builder for https://www.360docs.net/doc/2416931343.html, 4.2的集成开发环境,我们也简称为PB,利用它你可以剪裁和定制出一个符合你自己需要的https://www.360docs.net/doc/2416931343.html, 4.2的操作系统,因此,我们说的操作系统实际上完全是由自己定制出来的,这就是嵌入式操作系统最大的特点。 Windows CE具有模块化、结构化和基于Win32应用程序接口和与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。Windows CE并非是专为单一装置设计的,所以微软为旗下采用Windows CE作业系统的产品大致分为三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。 WindowsCE版本主要有1.0、2.0、3.0、4.0、4.2、5.0 和6.0 WINCE1.0是一种基于Windows95的操作系统,其实就是单色的Windows95简化版本。技术支持、直接资助等手段聚集了大量合作厂商,使WinCE类的PDA 阵容越来越强大。 WinCE2.0不仅比CE1.0快的多,而且的彩色显示,又众多新型PDA采用新的WinCE2.0系统,大有取代Pilot的趋势,成为PDA操作系统新的标准。尽管CE2.0仍然要比Pilot的操作系统需要的空间要大的多,但它具有Windows的界面,会用PC的人小编估计没有多少人不会使用微软的操作系统。 WinCE3.0是微软的Windows Compact Edition,是一个通用版本,并不针对掌上产品,标准PC、家电和工控设备上也可以安装运行,但要做许多客户化工作,当然也可以做掌上电脑。WinCE3.0把Pocket Word和Pocket Excel等一些日常所需的办公软件的袖珍版装了进去Pocket PC,同时在娱乐方面的性能做很大的加强。 https://www.360docs.net/doc/2416931343.html,(即WinCE 4.0)是微软于2002年1月份推出的首个以.Net为名的操作系统,从名字上我们就可以知道它是微软的.net的一部分。https://www.360docs.net/doc/2416931343.html,是WinCE3.0的升级,同时还加入.Net Framework精简版,支持蓝牙和.Net应用程序开发。 https://www.360docs.net/doc/2416931343.html, 4.2是https://www.360docs.net/doc/2416931343.html, 4.0/4.1的升级版,对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,基于其开发的设备将从这些微小但重要的变化中获得更好的性能和更强的Windows集成功能。微软在WinCE4.2版时曾提供开放源代码,不过只针对研究单位,而程序代码较少,为200万行。WinCE5.0在2004年5月份推出,微软宣布WinCE5.0扩大开放程序源代码。在这个开放源代码计划授权下,微软开放250万行源代码程序作为评估套件(evaluationkit)。凡是个人、厂商都可以下载这些源代码加以修改使用,未来厂商OEM时,则再依执行时期(Run-time)授权,支付Win CE5.0核心每台机器3美元的授权费用,这也是微软第一个提供商业用途衍生授权的操作系统。

Wince6.0驱动开发

Wince6.0驱动开发 (1) 在WINCE600\PLATFORM\LPC32XX \SRC\DRIVERS目录下新建一个目录MyDriver. (2) 在MyDriver目录下新建5个文件。 a) MyDriver.c 实现流接口函数的具体代码。 b) MyDriver.h 为MyDriver.h的头文件。 c) MyDriver.def 定义导出的函数名称。 d) makefile 与其它驱动的相同,不用改。 e) sources 链接和编绎文件。 (3) 前缀定义为MYD (4)文件内容完成后,在平台的“解决方案”的界面下,寻找FLATFORM\LPC32XX\src\drivers\MyDriver,然后单击鼠标右键,在弹出的菜单中选择“Build”,开始编绎驱动,完成后,在WINCE600\PLATFORM\LPC321XX\target\ARMV4I\retail下可找到MyDriver.dll. (5) 驱动加载的方法:手动,自动。 这里介绍自动加载的方法: a) 在MyDriver目录的位置找到dirs文件,在该文件中插入一行mydriver (都为小写),并在上一行后加“\”。 b) 在平台的“解决方案”的界面下,寻找FLATFORM\LPC32XX\Parameter Files\platform.bib.打开此文件,在相关位置添加mydriver(_FLATRELEASEDIR)\mydriver.dll NK SHK SHK指明该文件的属性,S—系统文件,H—隐藏文件,K—在内核中的位置固定。 c) 在Platform.req文件中相关位置添加程序如下: ;MyDriver [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MYD] “Prefix”=”MYD”

开发wince驱动步骤

开发wince驱动步骤: software:VS20005+wince6.0+BSP hardware:AT91SAM9261开发板(MCUZONE)1在vs2005新建一个驱动工程DemoDrv。

2编写好所有DemoDrv的源文件,例如“.cpp”or“.c”or“.REG”文件,特别注意source文件编写,然后单独编译DemoDrv看有无错误,这样避免全部编译NK导致时间太久。然后立即看到编译结果。若编译成功,会在$:\WINCE600\PLATFORM\AT91SAM9261EK\target目录有相应的DemoDrv.dll文件。(在实现文件“.c”需添加串口抛出信息以便调试)在如图所示:

3在目录$:\WINCE600\PLATFORM\AT91SAM9261EK\FILES找到配置文件:platform.reg 和platform.bib文件。 platform.bib文件添加: IF BSP_AT91SAM9261EK_DemoDrv DemoDrv.dll$(_FLATRELEASEDIR)\DemoDrv.dll NK SHK ENDIF BSP_AT91SAM9261EK_LED platform.reg文件添加: IF BSP_AT91SAM9261EK_DemoDrv #include"$(_TARGETPLATROOT)\SRC\DRIVERS\DemoDrv\DemoDrv.reg" ENDIF BSP_AT91SAM9261EK_LED 添加后分别保存。 4在$:\WINCE600\PLATFORM\AT91SAM9261EK\CATALOG目录下at91sam9261ek.PbcXml 文件打开: 添加文件: Item:ADENEO:BSP_AT91SAM9261EK_ DemoDrv Driver DemoDrv Driver for AT91SAM9261EK boards DemoDrv Driver for AT91SAM9261EK boards BspSpecific BSP_AT91SAM9261EK_DemoDrv Cpu:ARMV4I DemoDrv.dll Device Drivers\DemoDrv 保存文件 5新建NK工程文件或者手动方式更改之前NK工程文件,例如之前工程文件:E:\BSP\BSP\trunk\sample9261\Wince600\AT91SAM9261EK_ARMV4I\PBInitEnv.bat添加 set BSP_AT91SAM9261EK_DemoDrv=1

ARM嵌入式Wince的开发心得

ARM嵌入式Wince的开发心得 Wince简介Windows CE操作系统是Windows家族中的成员,为专门设计给掌上电脑(HPCs)以及嵌入式设备所使用的系统环境。这样的操作系统可使完整的可移动技术与现有的Windows桌面技术整合工作。Windows CE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统,Windows CE可以通过设计一层位于内核和硬件之间代码用来设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。以免与微软的Windows NT操作系统的HAL混淆)。 与其它的微软Windows操作系统不同,Windows CE并不是代表一个采用相同标准的对所有平台都适用的软件。为了足够灵活以达到适应广泛产品需求,Windows CE可采用不同的标准模式,这就意味着,它能够从一系列软件模式中做出选择,从而使产品得到定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式。通过选择,Windows CE能够达到系统要求的最小模式,从而减少存储脚本和操作系统的运行 Wince功能目前最新的Windows CE为Windows Embedded Compact 7,这个版本在内核部分有很大的进步:所有系统元件都由EXE改为DLL,并移到kernel space. 全新设计的虚拟内存架构、全新的设备驱动程序架构,同时支持User Mode 与Kernel Mode 两种驱动程序。突破只能运行32 个工作元(process)的限制,可以运行32768 个工作元。每一工作元的的虚拟内存限制由32 M 增加到全系统总虚拟内存。Platform Builder IDE 集成到Microsoft Visual Studio 2005。新的安全架构,确保只有被信任的软件可以在系统中运行。UDF 2.5 文件系统。支持802.11i (WPA2)及802.11e (QoS)等无线规格,及多重radio support. 支持x86,ARM,SH4,MIPS 等各种处理器。提供新的Cellcore components 使系统在移动电话网络中更容易创建数据链接及激活通话。在开发环境上,微软也提供兼容于.NET Framework的开发元件:.NET Compact Framework,让正在学习.NET或已拥有.NET程序

WinCE流驱动程序设计概述

微 处 理 机 M I CROPROCESS ORS W inCE 流驱动程序设计概述 顾峥浩,王自强,聂文华 (南京大学电子科学与工程系,南京210093) 摘 要:介绍了W inCE 操作系统下流驱动的设计方法,并在I ntel 公司的DBPXA255开发板下提供了关于8位数码管LED 的设计实例。 关键词:W inCE;流驱动;DBPXA255中图分类号:TP316.7 文献标识码:B 文章编号:1002-2279(2007)03-0081-03 The D e s i gn o f S tream I n te rface D ri ve r fo r W i nC E G U Zheng -hao,WANG Zi -qiang,N I E W en -hua (D epart m ent of Electronics and Engineering,N anjing U niversity,N anjing 210093,China ) Abstract:This paper intr oduces the strea m interface driver of W inCE,and p resents a sa mp le driver f or the Hex LED s of I ntel ’s DBPXA255. Key words:W inCE;Strea m interface driver;DBPXA255 1 引 言 W inCE 是一款由微软公司推出的面向嵌入式 领域的操作系统,被广泛应用于手机、P DA 、平板电 脑以及各种工控领域中。由于嵌入式设备硬件平台的多样性,针对不同的硬件编写驱动程序,从而使W inCE 上层屏蔽底层硬件的多样性就显得尤为重 要。 W inCE 的驱动按类型分有四种,分别为本地驱动(Native device driver )、流驱动、US B 驱动和网络驱动。其中流驱动由于接口简单、支持硬件设备最多,因而最为常用。下面将结合DBPXA255开发板中流驱动的一个简单实例,详细说明其设计方法。 2 流驱动开发的基本知识 2.1 开发W inCE 驱动的基本工具 驱动程序属于板级支持包(BSP )开发的一部分,可以使用微软的Platfor m Builder 工具进行设计。该工具将驱动编译成动态库,并整合到CE 系统中去。如果成功,则会得到一个NK .bin 的文件,此文件即为按照你的硬件平台定制的内核镜像,将其下载到嵌入式设备中就可以运行W inCE 了。笔者使用的是其.Net 版本。2.2 DBPXA255开发板 PXA255是I ntel 公司推出的取代Str ong AR M S A1110的新一代嵌入式应用处理器,属于ar m 系 列,它拥有Thumb 压缩指令、64位长乘法指令、增强型DSP 指令等先进特性,并集成了众多的外部接口,支持L inux 、W inCE 、Pal m OS 、Sy mbian OS 等主流嵌入式操作系统。DBPXA255开发板基于该型处理器,添加了一些外设如触摸屏、声卡接口等,在嵌入式开发中有着广泛的应用。2.3 W inCE 设备驱动程序的加载 大部分W inCE 驱动程序在系统引导的时候被设备管理器加载,加载信息被放在注册表的特定子键中,一般被设定为“HKEY _LOCAL _MACH I N E \DR I V ERS\BuiltI n ”。例如音频设备(W ave Dev )的加载信息: [HKEY _LOCAL _MACH I N E \D rivers \BuiltI n \W ave Dev\] "Prefix"="WAV ""D ll"="wavedev .dll" "I ndex"=dword:1"O rder"=dword:0 Prefix 的值代表设备的前缀名,用于标识与特 定名称设备相关联的文件流访问接口,必须由三个大写字母组成。在这里它的值为WAV ,那么设备的打开、关闭例程就为WAV_Open 和WAV_Cl ose 。 “D ll ”的值代表该设备驱动程序所在的动态库的名称,这里系统将在“wavedev.dll"中查找对 作者简介:顾峥浩(1981-),男,江苏无锡人,硕士研究生,主研方向:W inCE 、L inux 下嵌入式开发及应用。收稿日期:2005-03-02   第3期 2007年6月     No .3 Jun .,2007

用Labview开发WINCE应用程序

用Labview开发WINCE应用程序 概述 这几年安装Windows CE系统的单板电脑开始在工控行业里普及。用VS2005/VS2008开发Windows CE系统的应用程序可以像开发PC机的应用程序一样。现在我们还可以选择LabVIEW开发Windows CE系统的应用程序。这样我们就可以很容易开发出漂亮而且专业的界面。如仪表,波形显示等。Labview 2009安装和激活Touch Panel Module后即可支持Windows CE。推出的WINCE工业单板电脑系列有4.3寸,5.6寸,7寸,8寸,10.4寸,15寸均支持Labview开发。 图1 安装Windows CE系统的单板电脑 1.用Labview 2009开发WinCE应用程序 需要安装的工具包括了:USB驱动程序、Microsoft ActiveSync 同步软件、Labview 2009、和LabVIEW 2009 Touch Panel Module。随光盘附带有丰富的例子:串口、波形图等。 1.1.准备步骤 1.1.1.安装USB驱动程序 Wince 单板电脑首次与PC机(一般是桌面电脑)相连时,会提示需安装USB驱动程序。以后可跳过这步。将PC机与Wince 单板电脑通过USB口相连,当PC机提示发现新硬件时,找到附带光盘中的USB驱动文件夹中WINCE下面的wceusbsh 文件。 1.1. 2.安装工具软件步骤 1.Microsoft ActiveSync 4.2同步软件;

2.开发工具: ①安装Labview 2009开发系统平台; ②安装触摸屏面板模块(LabVIEW 2009 Touch Panel Module); 1.1.3.重点提示 以上工具安装完成后,当WinCE运行并与开发机通过USB 相连时,ActiveSync 会自动启动,要求建立合作关系,如下图 1.1: 图 1.1 按默认设置即可,完成后如下图 1.2所示: 图 1.2

嵌入式WinCE的视音频网络传输设计

Computer Science and Application 计算机科学与应用, 2011, 1, 160-163 doi:10.4236/csa.2011.13031 Published Online December 2011 (https://www.360docs.net/doc/2416931343.html,/journal/csa) The Embedded Design of Audio Network Transmission Based on WinCE Operating System* Wenfeng Li1, Juming Li1, Keqiang Xu2, Jun Lu3 1College of Communication and Information Engineering, Xi’an University of Science & Technology, Xi’an 2Xi’an Mount Zhong Nan Information Technology Ltd, Xi’an 3Shijiazhuang Institute of Career Academy, Shijiazhuang Email: liwenfeng@https://www.360docs.net/doc/2416931343.html,; {lijuming2008, lujun07}@https://www.360docs.net/doc/2416931343.html,; glen_xu@https://www.360docs.net/doc/2416931343.html, Received: Oct. 14th, 2011; revised: Oct. 25th, 2011; accepted: Nov. 9th, 2011. Abstract: In order to solve the heavy equipment and hard to build fast networking problems in mine emer- gency rescue communication network, a portable network terminal equipment is designed in this paper. It uses WinCE system and TCP/IP network protocols, including WinCE transplantation, network transmission and WinCE embedded application development. A mutually for the client server network communication is realized, and the real-time transmission of underground video, audio, environmental parameters acquisition information is achieved. Finally the embedded terminal and the PC host combined joint debugging are conducted. Test data indicate that audio network transmission is efficient, and the software code is with good encapsulation and portability. Keywords: Mine Emergency Rescue; Network; TCP/IP; WinCE 嵌入式WinCE的视音频网络传输设计* 李文峰1,李举名1,徐克强2,陆军3 1西安科技大学通信与信息工程学院,西安 2西安终南信息技术有限公司,西安 3石家庄理工职业学院,石家庄 Email: liwenfeng@https://www.360docs.net/doc/2416931343.html,; {lijuming2008, lujun07}@https://www.360docs.net/doc/2416931343.html,; glen_xu@https://www.360docs.net/doc/2416931343.html, 收稿日期:2011年10月14日;修回日期:2011年10月25日;录用日期:2011年11月9日摘要:为了解决矿山应急救援通信网络设备沉重、快速组网困难的问题,本文设计了一种便携式网络终端设备。其采用WinCE系统和TCP/IP网络传输协议,包括WinCE移植工作,网络传输和WinCE 嵌入式应用程序的开发。实现了一种互为客户端服务器的网络通信,完成了井下视频、音频、环境参数采集信息的实时传输。最后将嵌入式终端和PC主机结合起来进行了联合调试。大量测试数据表明视音频网络传输高效,软件代码具有良好的封装性,可移植性。 关键词:矿山应急救援;网络传输;TCP/IP;WinCE 1. 引言 近年来,我国矿山事故频繁发生,例如塌方、透水、煤矿起火、瓦斯爆炸等,对矿工生命构成威胁,并使国家遭受重大经济损失。为此,国家煤矿安全监察局成立了矿山救援指挥中心。预示着国家对矿山救援设备及救援人员素质的要求有进一步的提高[1]。本文源于井下现场信息记录仪研发项目,旨在设计一款专用于矿山应急救援通信的便携式设备,实现井下移动通信、视频传输、语音双向传输、人员定位以及瓦斯粉尘监控信息传输。方便灾后救援人员快速展开救援工作。网络通信是整个系统设计的关键基础,本文重点阐述软件平台搭建和网络通信的实现。 *基金项目:国家科技部2009年度科技型中小企业技术创新基金(09C26226115674);2010年西安市科技创新支撑计划(CY100850);陕西省教育厅自然科学专项(08JK354)。

在wince应用程序中直接访问硬件

平台:wince5.0.0OK2440-III BSP 直接在wince下操作硬件可以避免烧写NK,避免繁琐的驱动调试,用来验证硬件好坏非常有用,是系统起来后调试外设的很好的手段。 一、在平台 wince平台是比较成熟的平台,驱动比较好调试,驱动和应用的写法可以一模一样,甚至可以采用EVC来开发流驱动,效果不错。 在上直接访问硬件有如下方法: 1、直接访问uncached虚拟地址,成功案例如下: //-GPB for LCD backlight control 0xB16000XX is uncached Address#define rGPBCON(*(volatile unsigned *)0xB1600010)//Port B control#define rGPBDAT(*(volatile unsigned *)0xB1600014)//Port B data#definerGPBUP(*(volatileunsigned*)0xB1600018)//Pull-upcontrolB下面的代码在EVC下成功控制了背光。 // test is OK ---the backlight is controlled void CSPI_wifi_testDlg::OnButton3() { // TODO: Add your control notification handler code here// setting GPB1out [3:2]=01 rGPBCON& rGPBCON| rGPBDAT| }=~(1<<3); =(1<<2);

=(1<<1);// backlight on // backlight off //rGPBDAT&=~(1<<1); 2、使用MmMapIoSpace以及MmUnmapIoSpace访问 其实MmMapIoSpace以及MmUnmapIoSpace就是用VirtualAlloc和VirtualCopy实现的,下面地址有一篇文章详细介绍 MmMapIoSpace以及MmUnmapIoSpace成功访问硬件案例: void CDlgDemoDlg::OnButton1() { // TODO: Add your control notification handler code here//unsigned char *gpio_base; unsigned int *gpio_base; OutputDebugString(L"TestDrv - LedDrive1\n"); //PUCHAR ioPortBase; PHYSICAL_ADDRESS PortAddress = {0x, 0};//LowPart=0x;HighPart=0;gpio_base =(unsigned int *)MmMapIoSpace( PortAddress, 0x04,FALSE );//获得内存,4字节大小。 *gpio_base = 0x0585FF87; }//直接访问硬件 //释放内存 MmUnmapIoSpace(gpio_base,0x04); 3、用VirtualAlloc和VirtualCopy访问硬件

基于WinCE的手机路测便携系统开发

HUNAN UNIVERSITY 毕业设计 2012 年 5 月 18 日 毕业设计题目: 基于WinCE 的手机路 测便携系统开发 学生姓名: 学生学号: 专业班级: 学院名称: 指导老师: 学院院长:

基于WinCE操作系统的手机路测便携系统开发 摘要 随着移动、电信、联通等运营商的迅速发展,我国无线网络规模的不断扩大,对现有网络的优化以及对新建网络的规划设计都显得越来越重要。然而,对网络的优化以及规划设计都需要大量的现场勘测,调查。这对无线基站的更新换代起至关重要的作用。 路测就是现场勘测的一个重要环节,各种路测装置为勘察人员的工作带来了很大便利。而现在,越来越多的手机路测流行了起来。手机路测可以让更多的用户直接参与其中,当然,对工作人员来说也更为的便利。 因此,针对基站路测的需要,毕业设计主要进行了手机端路测便携系统的开发。本课题使用的编程语言是C#,使用工具为visual studio 2008。开发出的软件newSignal在WinCE6.5系统的手机上成功运行,并且自动显示地图,自动展示信号强度,显示并保存小区号、经纬度等重要位置信息。 关键词:位置服务,路测装置,基站小区识别号,信号强度

Development of Mobile Phone Signal Detection Portable System Based on WinCE Operating System Abstract With the rapid development of Mobile, China Telecom, China Unicom and other operators, the scale of our wireless network continues to expand, the optimization of existing networks and new network planning and design are becoming increasingly important. However, the network optimization, planning and design require a lot of site investigation survey. The upgrading of the wireless base stations, which play a vital role. The road test is an important part of site investigation; a variety of road test device for the investigation staff has brought great convenience. Now, more and more popular mobile phone drive test. Mobile drive test allows more users to partiCIpate directly; of course, it is more convenient for staff members. Therefore, to answer the need for Location Based Service, my graduation design mainly do the development of mobile phone signal detection portable system based on WinCE operating system. The design uses the programming language C#, use the tools of Visual Studio 2008. The developed software newSignal runs successfully on WinCE6.5 phone and automatically display the map, automatic display signal strength, and save the Cell ID, latitude, longitude, and other important location information. Key Words:Location Based Service, signal detection portable system, Cell ID, signal strength

相关文档
最新文档