wince软件开发基础

合集下载

wince6.0_开发环境搭建

wince6.0_开发环境搭建

Window CE6.0开发平台搭建详解2011年08月29日Windows CE6.0的开发无非两大方面:操作系统开发和应用程序开发,操作系统开发包括系统的定制,驱动开发和其他需要完成的底层工作。

应用程序开发主要是与实际应用结合紧密的程序开发。

要搭建这样的开发环境,至少要包括两部分,一个是硬件平台,一个是软件平台,在Windows CE6.0的开发中,微软公司把这些开发软件集成到了vs2005中。

Windows CE6.0开发环境需要安装的软件比较多、比较大,至少要10GB的空间,而且有着严格的安装顺序要求,一旦其中某一个环节出错,都会导致软件运行出现故障,为确保安装顺利,请仔细阅读本文,按照步骤一步一步进行安装。

一、所需安装软件1、Visual Studio 20052、Visual Studio 2005 Service Pack 13、MSDN4、platform builder for Windows Embedded CE6.05、Windows Embedded CE 6.0 Platform Builder Service Pack 16、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里完成。

PB开发环境下WinCE操作手册

PB开发环境下WinCE操作手册

WinCE配置一、PB开发环境1、Platform Builder简介图1.1就是PB的开发界面。

图1.1 PB开发界面2、建立并编译WinCE平台一、Windows 内核定制启动Platform Builder 4.2,新建Platform Builder 工程。

单击File 菜单下的New Platform 按钮,启动操作系统镜像的建立向导。

图1.2 运行操作系统镜像向导向导启动后先显示如图1.3的欢迎屏幕,直接点Next 按钮。

图1.3 定制操作系统内核欢迎屏幕选择一个相应的开发板支持包(Board Support Packages,BSP)如图1.4 所示。

选择一种开发包后,在对话框的右半部分会显示相应开发包的说明,表明这个开发包支持哪个公司的产品以及相应的芯片。

根据试验箱上的芯片SAMSUNG S3C2410A的要求,选择SAMSUNG SMDK2410:ARMV4,进入下一步。

图1.4 选择BSP选择建立操作系统镜像的基本配置结构(Platform Configuration),如图4.5所示对话框主要是设置准备定义的操作系统镜像的基本配置及工程名称。

首先,在Platform name 处输入工程名字(如ARM2410)。

其次,选择操作系统镜像的基本配置,在对话框的左面有两个选择。

1. Available configurations(可用配置):在这个选项下的列表框中,有多个Windows 已经设定的基本配置结构供选择,如果设计人员设计的产品与列表中保存的基本配置一样,那么只要直接选择就可以完成基本的设定,节省了很多时间,列表框中有以下基本配置内容:(1)Digital Media Receiver(数字媒体接收机)(2)Enterprise Terminal(企业终端)(3)Enterprise Web Pad(企业上网机)(4)Gateway(网关)(5)Industrial Controller(工业控制设备)(6)Internet Appliance(Internet 应用系统)(7)IP Phone(IP 电话)(8)Mobile Handheld(移动手持设备)(9)Mobile Phone(移动电话)(10)Set-Top Box(机顶盒)(11)Tiny Kernel(瘦内核)(12)Windows Thin Client(Windows 瘦客户端/网络PC)2. Custom configuration(自定义配置):自定义配置指不选择基本配置,完全由用户来完成配置工作。

Win CE移植心得

Win CE移植心得

Win CE移植心得WINCE是有微软推出的一款面向消费类电子市场的嵌入式操作系统,它的实时性能没有VxWorks那么强,但正是这一点使得它成为消费电子市场的新宠,现在有许多公司和研发机构都开始把注意力转移到WINCE 的开发上了了。

以下简要谈谈我前段时间在S3C2410上移植的一些经验。

1。

软硬件平台:pc要求512M内存,P4以上CPU,10G以上硬盘空间;串,并口下载线;双机互连线;JTAG 仿真器;NETARM-2410 实验箱;PLATFORMBUILER;.NET FRAMEWORK1.0;VS2005(可用EVC 或EVB);超级终端;JTAG驱动。

2。

EBOOT ,TOC,NBOOT,这三个文件由厂家提供,自己开发板子的话只能由自己来写了。

三个文件烧在FLASH的前三个BLOCK里,TOC负责保存上点后进入操作系统前的各项配置,具体可参考厂家提供的具体使用方法。

3。

使用NK.BIN,我们在后边不管做多少的工作基本就是围绕着这个NK.BIN进行的。

这个文件由PLATFORMBUILDER来生成,这个软件的使用和VC的比较相似,只要按照说明书以及一些论坛上介绍的方法进行就能生成一个镜像了,当然那可能不是我符合我们要求的,如何配置那些选项可以查阅网上的资料,在VCKBASE里付林林有个专栏就是介绍这个的。

4。

完成以上几步就可以把NK.BIN烧到FLASH中去了,需要提醒的是,之前的那3个文件是通过JTAG 烧进去的,而NK.BIN是要通过双机互连线传过去,还有可以用USB传输的,但我没试过,其实这些都很简单,因为这些的底层软件已经由厂家做好了,烧好之后你就可以看到一个比较熟悉的界面了,是不是很想WINDOWS 其实它的好多API都和PC WINDOS是通用的。

5。

开发程序,如果你只是要把哪个镜象烧进去什么也不干,那其实是没多大意思的;如果你要开发应用程序,那么开发才刚刚开始,你需要使用EVC ,EVB ,+PB;如果开发驱动程序,那么开发的程序能在这时其作用,你的工作就是成功的。

实验五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”)….)打开设备。

然后,文件系统判断打开的是文件还是设备。

最后,如果打开的是设备,就将控制权交回设备管理器。

六.Windows CE平台搭建

六.Windows CE平台搭建
注意:SDK的制作必须在编译项目完毕之 后进行,否则会出错。
Windows CE的烧写
Jtag烧写方式 USB烧写方式 网络烧写
强调:对于这块TQ2440板子的内核烧写, 我们采取的是USB烧写方式。其他的烧写 方式大家感兴趣的话可以在网上搜索相关 的资料来尝试。
Windows CE的串口调试工具
Windows Embedded CE是微软公司嵌入式、移 动计算平台的基础,它是一个开放的、可升级 的32位嵌入式操作系统。 CE中的C代表袖珍(Compact)、消费 (Consumer)、通信能力(Connectivity)和 伴侣(Companion);E代表电子产品 (Electronics)。 WinCE不仅继承了传统的Windows图形界面,并 且在WinCE平台上可以使用Windows95/98上的 编程工具、使用同样的函数、使用同样的界面 风格,使绝大多数的应用软件只需简单的修改 和移植就可以在WinCE平台上继续使用。
综上所述
1. BSP是板级支持包,与你做的或要编程的硬件有 关,由硬件厂商提供。 2. PB需要BSP来配置硬件平台驱动。 3. PB下编译BSP通过后,可以导出和BSP相关的 SDK供EVB/EVC编程用。同时,生成NK.bin映 像文件,NK烧写到供嵌入式系统硬件平台的启 动介质,通过引导启动WinCE系统。 4. WinCE下面的应用程序可以通过注入EVC的开发 工具开发。 5. EVC在编译的时候需要选择硬件平台,由SDK提 供。
2. 还是靠同步功能,不过不是用EVC的自动发送了, 而是直接通过PC上面虚拟的移动设备复制到开 发板的指定目录下,然后在开发板端执行。
3. 从PC端复制编译出来的应用程序到U盘中,然后 再将U盘中的应用程序复制到开发板端。 4. 将编译好的应用程序复制到BSP包中的“Files” 目录下,然后修改“Files”目录下的 “platform.bib”文件,参考如下所示格式添加到 FILES栏目下:

第二章 Wince的体系结构和功能

第二章 Wince的体系结构和功能

驱动 程序
BSP当中应该包括对应开发板上所有的外部设备的 驱动程序,保证WinCE操作系统能够发挥此开发 板的最大效能。
配置 文件
运行时所需的二进制文件 包括:.DB、 reginit.ini、 .DAT。
O E M 层 的 组 成
OAL
• 主要负责内核与硬件通讯 • 硬件平台初始化
硬件初始化
内核性能 监测
LOGO
www.themegalle
3
OEM层
OEM(Original Equipment Manufacturer,原始设
备制造商)表示,一些制作硬件主板的厂商可根据自己 的产品特点对Windows CE进行定制,从而使Windows CE可以运行在这些厂商的主板上,在出售硬件开发板的
同时,也会把OEM层以BSP的形式提供给客户供其使用。
WinCE5.0的系统架构
OEM适配层 (OAL)
LOGO
www.themegalle
(OEM adaptation layer)内核抽象出来的与硬件交互 的接口;代码通常是与硬件高度相关;负责内核与 硬件的通信。
引导 程序
初始化硬件,加载操作系统映像(OS Image)到内 存,然后跳转到操作系统代码去执行。
2.1 Windows Ce的结构功能概览
• 2.1.1 层次体系结构 • 微内核,进程、线程,调度、内存管理等基本模 块,其他作为用户进程 • 多层次设计,层层之间,下层服务上层,上层依 赖下层 • 扩展性、可维护性
WinCE5.0的系统架构 WinCE的可剪裁性,使其体积也非常小。
实质
单体内核
2.1.2 硬件层
Why
1. 2. 3. 4. 处理体系结构不统一 硬件资源通常受限 外部设备的种类繁多 实时性和可靠性

Apalis i.MX6 WinCE 开发入门说明书

Apalis i.MX6 WinCE 开发入门说明书

Apalis i.MX6 WinCE开发入门Revision History17-Aug-2015 Rev. 0.2 V1.1A 添加SD卡槽图片及错误修正2-Feb-2016 Rev. 1.1 V1.1A 增加WinCE Image V1.0b6 说明6-Jun-2016 Rev. 1.3 V1.1A 增加社区信息15-Aug-2017 Rev. 1.5 V1.1A 更新V1.2版本image内容,修正错误目录1.开发设备及材料准备 (6)1.1硬件准备 (6)1.1.1Apalis i.MX6 系列核心板模块 (6)1.1.2Apalis 系列载板 (6)1.1.3基本配件(按需自行配置,不包含在标准载板购买包装内) (6)1.2软件准备 (6)2.开发平台配置 (7)2.1硬件连接框图 (7)2.2电源连接 (7)2.2.1Apalis 开发板 (7)2.2.2Ixora 载板 (7)2.3显示输出连接 (7)2.3.1Apalis 开发板 (7)2.3.2Ixora 载板 (8)2.4调试串口COMA连接 (8)2.4.1Apalis 开发板 (8)2.4.2Ixora载板 (8)2.4.3串口连接参数为115200/8/1/none (8)2.4.4USB 串口驱动请从下面FIDI网站下载 (8)2.5调试USB口(在需要时连接) (8)2.5.1Apalis 开发板 (8)2.5.2Ixora载板 (8)2.6USB键盘/鼠标连接 (9)2.6.1Apalis 开发板 (9)2.6.2Ixora 载板 (9)2.7网络连接 (9)2.7.1Apalis 开发板 (9)2.7.2Ixora 载板 (9)2.8上电启动,开关机和重启开关 (9)2.8.1Apalis 开发板 (9)2.8.2Ixora 载板 (9)2.9上述所涉及的连接器和开关布局图 (10)2.9.1Apalis 开发板 (10)3.修改显示分辨率 (11)3.1修改Eboot分辨率 (11)3.2修改WinCE显示分辨率 (11)3.3清除WinCE注册表恢复到默认状态 (11)4.远程桌面连接 (12)4.1ActiveSync (USB)方式连接 (12)4.2网络方式连接 (12)5.开发主机SDK部署,针对VS2008开发环境 (13)5.1安装VS2008 (13)5.2安装WINCE 6.0 SDK (13)5.3安装WINCE 7.0 SDK (13)5.4测试SDK (13)6.VS2008应用调试之USB调试 (14)7.VS2008应用调试之网络调试 (15)7.1连接 (15)7.2主机端VS2008设置 (15)7.3目标板设置(英文版WinCE7) (16)7.4目标板设置(中文版WinCE7) (16)7.5测试连接情况 (17)8.E-boot和OS image更新升级 (18)8.1关于ToradexApalis i.MX6模块的image更新 (18)8.2使用Toradex Easy Installer进行模块系统更新 (18)8.3Eboot损坏情况下进入恢复模式重新刷写Eboot和OS image (18)8.4Eboot正常情况下,升级Eboot 或者OS image (20)8.4.1如模块当前WinCE系统正常,建议首选进入系统后使用Update Tool来升级相关组件 (20)8.4.2如当前Eboot版本为V1.2以下版本并升级为V1.2及以上版本 (20)8.4.3如当前Eboot版本已经为V1.2及以上版本 (21)9.软硬件开发资源及Toradex开发者中心 (22)9.2载板硬件开发资料下载 (22)9.3WinCE软件image,BSP,SDK等资源下载 (22)9.4开发上手指南以及Lib库的使用说明文档 (22)9.5Toradex社区 (22)10.Toradex公司简介及本地支持联系方式 (23)10.1Toradex公司简介 (23)10.2本地支持联系方式 (23)1. 开发设备及材料准备1.1 硬件准备1.1.1 Apalis i.MX6 系列核心板模块✓Apalis i.MX6 Quad 2GB IT | V1.1C✓Apalis i.MX6 Quad 1GB | V1.1B✓Apalis i.MX6 Dual 1GB IT | V1.1B✓Apalis i.MX6 Dual 512MB | V1.1B1.1.2 Apalis 系列载板✓Apalis Evaluation Board | V1.1A✓IxoraCarrier Board | V1.1A1.1.3 基本配件(按需自行配置,不包含在标准载板购买包装内)✓电源适配器✓外部显示连接线(如VGA、RGB、LVDS等)✓调试串口连接线✓调试USB口连接线1.2 软件准备✓Windows系统开发主机✓Virtual Studio 2008 开发套件✓串口工具如SecureCRT或者Xshell等2. 开发平台配置2.1 硬件连接框图2.2 电源连接2.2.1 Apalis 开发板✓X15,输入电源类型7-27V DC,螺丝接线连接,建议功率24W✓X17,输入电源类型12V +/-10%,5.5mm 圆形接头,建议功率24W;当外设如LVDS,PCIE等需要12V电源是必须通过此接头供电。

WinCE 6.0设备驱动程序基本知识

WinCE 6.0设备驱动程序基本知识

设备驱动程序基础
b)
混合驱动程序
同样使用两层的MDD/PDD模型,这意味着会持续使用MDD, 也就是对于所有的PDD来说都使用相同的MDD,但是这个 MDD还提供了额外的独特功能(这个功能是给定设备类型的 MDD/PDD实现的一种逻辑扩展)。
使用混合驱动程序的优点: 使用混合驱动程序的优点:与分层架构相同。
接上页... 接上页...
这种架构通常在下列情况中使用: 当某个设备类型没有可用的分层模型时; 当设备硬件是不常见的定制硬件时; 当没有可以重用的分层驱动程序代码时; 当使用MDD/PDD模型,但不能达到需要的效率水平时。 当使用MDD/PDD模型,但不能达到需要的效率水平时。 优点: 可以避免在各个层之间切换,并且能最大化使用硬件,这些都 优点: 带来了高效率。
XXX_Seek
— 调用SetFilePointer函数时调用此函数 调用SetFilePointer函数时调用此函数
实现流接口驱动程序
XXX_IOControl
— 调用DeviceIoControl函数时调用此函数 调用DeviceIoControl函数时调用此函数 — 提供了支持自定义驱动程序操作的机制 — 大多数驱动程序都具有的多用途函数 — 通过I/O控制代码来识别具体的操作 通过I/O控制代码来识别具体的操作 — I/O控制代码是每个设备特定的 I/O控制代码是每个设备特定的
设备驱动程序基础
GWES(图形、窗口以及事件子系统) GWES(图形、窗口以及事件子系统):
支持窗口、对话框、控件、菜单、以及其他和用户界面相关的资源。控 制窗口管理器和窗口消息管理器,包括键盘消息、鼠标消息、触摸屏消 息等等。 GWES(gwes.dll)模块会加载由本系统独占使用的设备驱动程序,也就 是下列以任何方式与用户界面相关联的驱动程序:键盘、视频适配器、 触摸屏、打印机、鼠标。

在WinCE程序开发中使用软件输入面板

在WinCE程序开发中使用软件输入面板

在WinCE程序开发中使用软件输入面板来源:天极开发作者:维维编译 2006-06-02 出处:巧巧读书简介软件输入面板(Software Input Panel,简称SIP)是每个装备了WinCE系统的移动平台的一个基本功能。

它提供给用户在PDA上进行数据输入的一种手段。

当谈及SIP的时候,我们一般会想到两点:一是SIP本身,二是如何在程序中使用SIP。

SIP是一个实现了IInputMethod或者IInputMethod2接口的COM对象。

它应该被系统调入使用,所以你不能在C#中进行SIP开发。

C或者C++是很好的开发语言。

因为SIP本身也只是另外一个COM对象,A TL使得开发过程变得极为简单。

这里我不想讨论SIP开发,SDK包里包含了一个很好的例程A TLDvoraksip,所以你可以去学习这个例程以获取更多的信息。

这里我想讨论的是如何在你自己的程序里管理SIP。

这看起来很琐碎简单,但是如果因为屏幕不太够用,而你又想使得你的程序更加聪明更加方便用户使用,那SIP的管理就变成很重要的一个方面了。

另外,如果你开发了很多用于不同场合的SIP(比如多语言,数字或者其他等等),你可能想在某个场合使用某个特定的SIP。

这种能力使得你可以完成很多不同的任务:当用户只需要进行数字输入的时候,你可以展示一个大的数字键盘,这样他不用笔而只需要用手指就可以输入了。

当然你也可以有自己的想法,这就看程序员该作些什么了。

Win32 APISIP的API函数很简单,从sipapi.h中只可以看到只有极少几个函数:我把这些放在开始,是因为它同时支持Windows Mobile和平台。

如果你对Windows Mobile设备编程,那么aygshell.h文件提供给你更多的和SIP有关的函数供使用。

当然选择哪个来使用就依赖于你自己的需求了,使用Windows Mobile上的SIP会使得工作更加完美一些。

如果你使用了相同的OS版本,但是不同的build版本的时候,你可能会获得稍微不同的SIP行为。

《工业互联网安全测试技术》课件—— 06 WinCE操作系统

《工业互联网安全测试技术》课件—— 06 WinCE操作系统

02 WinCE工控系统中的应用分析
(4) WinCE人机界面
WindowCE不仅支持图形和窗口,具有多媒体功能,而且 还可以利用丰富灵活的控件库在WindowsCE环境下为嵌入式应 用建立各种图形用户界面。
WindowsCE支持256色,显示分辨率可以设定,支持触摸 屏。因此,WindowsCE完全可以满足工业控制系统对人机界面 的要求。
01
01 WinCE 操作系统
01 WinCE操作系统
(1) WinCE系统简介
WindowsEmbeddedCompact(即 WindowsCE)是微软公司嵌入式、移动计算平台的 基础,它是一个开放的、可升级的32位嵌入式操作 系统,是基于掌上型电脑类的电子设备操作系统。
它是精简的Windows95,WindowsCE的图形 用户界面相当出色。
02
02 WinCE 工控系统中的应用分析
02 WinCE工控系统中的应用分析
(1) 适用场景
嵌入式操作系统是一种应用广泛的系统软件,工业控制是它的传统应用领域,在 这一领域里已有一些比较成功的嵌入式操作系统。许多着名的工业控制器生产商已 经开发出基于Windows CE 3.0的工业控制产品,如西门子AG公司的多功能操作面 板MP系列,Cybectec公司的变电站现代化平台SMP等。
02 WinCE工控系统中的应用分析
(3) WinCE可靠性
从故障角度来看,实时操作系统在应用中是以内核模式工作的,应用的故障会立刻造成系 统崩溃。WindowsCE内核具有内存管理功能,可以检查出应用造成的系统异常,抑制由于应 用不正常直接破坏系统的危险性。所以WindowsCE比一般的实时系统健壮。
2)软件部分:采集软件安装在数据采集仪中,用户通过采集软件进行数据的 自动采集,并进行相关的处理

WINCE6.0+系统定制、SDK定制及一个示例应用程序

WINCE6.0+系统定制、SDK定制及一个示例应用程序

WIN CE6.0 STEP BY STEP Version 1.0一、系统定制1、这里假设您已经把软件环境都搭建完毕,打开VisualStudio2005,选择新建->项目->Platform Builder for CE 6.0。

2、下一步,选择Device Emulator:ARMV4I,如果有实际设备,也可选择对应设备开发板的CPU等型号进行配置。

3、下一步,选择你想开发的设备类型,这里选择PDA Device,继续4、下一步,选择Mobile Handheld。

5、选择你定制操作系统需要的应用程序。

默认,下一步。

6、选择你定制操作系统需要的网络配置。

默认,下一步。

7、下一步,完成配置。

8、选择项目->属性,对操作系统简单修改一下。

9、下图,可以选择SDK的默认开发语言,可自行修改。

10、下图Enable KITL(no IMGNOKIL=1)取消选定,否则可能会造成模拟器黑屏。

11、如有需要可选择Catalog Items View 对你的操作系统进行裁剪,比如加些应用程序、加些字体等。

12、配置完毕后,可进行编译,此处可能需要很长时间,请耐心等待,编译成功后在*\WINCE600\OSDesigns\OSDesign1\OSDesign2\RelDir\DeviceEmulator_ARMV4I_Release\(参考路径)文件夹下会生成一个NK.bin的文件,此文件即为你定制好的操作系统文件,如有硬件并且安装好启动程序,即可启动你自定制的操作系统。

这里我们准备用模拟器进行程序开发,因此,下面要生成一个模拟器类型的SDK。

二、生成SDK1、项目->Add New SDK….2、添加对应的路径、名称等信息。

3、确认你编译的操作系统为ARMV4I Emulator Debug版本。

4、其他一些基本设置略,如添加皮肤、设定分辨率等,最后点完成, Build此SDK5、Build结束后,可在此*\WINCE600\OSDesigns\OSDesign1\OSDesign1\SDKs\SDK1参考路径下找到您的SDK文件。

wince开发-简单介绍

wince开发-简单介绍

WinCE的主要特色 WinCE的主要特色
WindowsCE中的API是一个缩减了的WIN32API, WindowsCE中的API是一个缩减了的WIN32API, 是桌面系统WindowsAPI的一个子集。软件开发很 是桌面系统WindowsAPI的一个子集。软件开发很 方便。~PalmOS 方便。~PalmOS 软件开发具有挑战性的。在某些情况下,由于CE 软件开发具有挑战性的。在某些情况下,由于CE 的应用程序接口与标准Windows API之间存在差异, 的应用程序接口与标准Windows API之间存在差异, 原来在桌面Windows中包含的API函数在Windows 原来在桌面Windows中包含的API函数在Windows 中是不支持的,所以开发者需要自己利用 中是不支持的,所以开发者需要自己利用 其他办法来实现这些功能。 Windows 支持的内存容量和显示屏的面积也 支持的内存容量和显示屏的面积也 有限,这使得开发人员不得不考虑与硬件相关的 因素。 内核构成较大,在资源非常紧张的场合不如linux 内核构成较大,在资源非常紧张的场合不如linux 的定制灵活。
WinCE的应用 WinCE的应用
在移动领域,Pocket PC(PPC)和Smart 在移动领域,Pocket PC(PPC)和Smart Phone (SP)都是WinCE的专用版本,均于2003年推出。 SP)都是WinCE的专用版本,均于2003年推出。 这两个版本正逐步占据PDA, 这两个版本正逐步占据PDA,Smart Phone,PMP Phone, 等市场,优势已经很明显。 在工控领域,的确还不能与VxWorks的实时性相 在工控领域,的确还不能与VxWorks的实时性相 比较,但是本身的设计目标已经可以满 比较,但是本身的设计目标已经可以满 足95%的硬实时系统的要求了。 95%的硬实时系统的要求了。 信息家电领域,WinCE原有的Windows背景使得它 信息家电领域,WinCE原有的Windows背景使得它 在这一市场占据有力地位。

Windows嵌入式开发系列课程(4):Windows CE电源管理

Windows嵌入式开发系列课程(4):Windows CE电源管理

WinCE电源管理李小伟软件应用工程经理上海掌微电子技术有限公司本次课程内容包括z电源管理概要z电源管理驱动程序的实现z内核级电源管理收听本次课程需具备的条件z了解WINCE设备驱动程序开发的一般知识z初步了解WINCE 电源管理驱动Level 200内容¾电源管理概要z电源管理驱动程序的实现z内核级电源管理电源管理驱动的功能z建立一个对整个系统环境,电源状态和设备电源状态的全局了解.可以自定义适合你的电源管理驱动来全局地管理你的平台.z设备驱动的电源管理可以从整个系统电源状态管理中脱离, 自己管理自己的电源状态.z控制系统电源状态切换的过程.电源管理架构在WINCE 中电源管理驱动的位置ApplicationsDevice DriversOS ServicesGWES HAL OEM Adaption Layer withPM supportHardwarePower ManagerDevice.exe电源管理驱动框架z电源管理驱动提供了给应用程序和设备驱动程序的APIz PM.DLL 通过自定义接口和DEVICE.EXE联接z用IOCTL来调用驱动程序电源管理APIz应用程序接口类API¾应用程序可以调用此类API改变系统电源状态,或设定对设备电源状态的需求z设备驱动程序接口类API¾设备驱动程序调用此类API来管理设备电源状态z消息通知(Notification)接口类API¾应用程序调用此类接口API来接收到电源状态变化的消息通知.应用程序接口类APIz取得/设置系统电源状态¾GetSystemPowerState¾SetSystemPowerState¾POWER_STATE_XXX 标志¾可自定义的标志¾例子:¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\SET¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\GETz设置/取消对设备电源状态的要求¾SetPowerRequirement¾ReleasePowerRequirement¾例子:¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\REQ¾媒体播放器运行时,对显示驱动和背光的需求.z取得/设置设备电源状态¾GetDevicePower¾SetDevicePower*¾例子:¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\GETD¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\SETD*调用此API会限制电源管理驱动程序更新设备电源状态. 参考帮助文档.设备驱动程序接口类APIz设备驱动程序调用电源管理驱动¾DevicePowerNotify¾RegisterPowerRelationship¾ReleasePowerRelationshipz电源管理驱动调用设备驱动程序¾DeviceIoControl¾IOCTL_POWER_CAPABILITIES¾IOCTL_POWER_SET¾IOCTL_POWER_QUERY¾IOCTL_POWER_GET¾IOCTL_REGISTER_POWER_RELATIONSHIP消息通知接口类APIz RequestPowerNotifications¾PBT_RESUME¾系统从挂起状态恢复时产生此消息.¾PBT_POWERSTATUSCHANGE¾系统在接上和断开外部电源时产生此消息.AC power¾PBT_TRANSITION¾当电源管理驱动改变系统电源状态时产生此消息.¾PBT_POWERINFOCHANGE¾电池状态改变时产生此消息.z StopPowerNotificationsz例子:¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\MON ¾应用程序通过此API获知电源/电池状态,切换电池图标.电源管理驱动管理的设备驱动程序z设备类型: 注册表项IClass-GUID¾[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Control\Power\Interfaces]¾Generic power-manageable devices¾Power-manageable block devices¾Power-manageable NDIS miniports¾Power-manageable display¾例子:¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\TEST\DEVSAMPLE¾AdverstiseInterface¾显示驱动程序调用此函数注册为Power-manageabledisplay 类型的驱动.内容z电源管理概要¾电源管理驱动程序的实现z内核级电源管理WINCE里的电源管理驱动程序z最少功能电源管理驱动程序(PMSTUBS)¾SYSGEN_PMSTUBS¾不支持电源管理APIz完全功能电源管理驱动程序¾SYSGEN_PM¾支持电源管理API¾WINCE提供了2个实例¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\PDD\PDA¾WINCE500\PUBLIC\COMMON\OAK\DRIVERS\PM\PDD\DEFAULT电源管理驱动分层架构z MDD¾包含各类设备驱动的句柄¾管理设备的电源状态¾提供电源管理API的实现z PDD¾制定/维护系统电源状态机管理¾改变硬件电源状态z实现电源管理APIz跟踪和设置设备电源状态z跟踪应用程序的消息通知请求.z处理活动监视计数器z处理设备加载/卸载的通知,并维护设备驱动程序的句柄z处理父设备与子设备之间的电源关系z管理设备电源状态需求z实现与设备驱动程序的调用接口¾gStreamInterface. RequestStreamDeviceÆDeviceIoControl ¾gDisplayInterface. RequestDisplayDeviceÆExtEscapez自定义系统电源状态机z检查系统电源管理的注册表内容的一致性.z实现电源管理驱动的消息处理,实现状态机管理.z设置系统电源状态和相应设备进入对应的电源状态.z自定义状态¾On , UserIdle,SystemIdle,DeepIdle,Suspend,OnBattery, InCradle等状态.¾对应的POWER_STATE_XXX 标志¾系统电源状态到设备电源状态的映射z注册表设置[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Power\State\On]Default=dword:0; D0Flags=dword:10000; POWER_STATE_ONCOM1:=dword1; D1D4Off (Off)D3Sleep (Suspend)D2Stand By (SystemIdle)D1Low on (UserIdle) D0Full on (On)系统电源状态到设备电源状态的映射z映射到所有默认的设备[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Pow er\State\SystemIdle]"Default"=dword:2; D2"Flags"=dword:100000; POWER_STATE_IDLEz映射到某一特定类型的设备[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Pow er\State\SystemIdle\{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}] "Default"=dword:4 ; D4¾"{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}“= "Power-manageable display“系统电源管理状态机z GWES监视用户操作,通过事件(Event)来通知电源管理驱动程序z电源管理驱动程序通过事件(Event)和超时机制来实现状态机用户活动计时器z为每个状态创建相应的事件(Event)¾3个事件¾A timer reset event.¾An active status manual-reset event.¾A manual-reset event¾[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Control\Power\ActivityTimers\UserActivity]¾Active->Inactive->timeout 然后切换到下一个电源状态电源状态变迁依靠超时机制z[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Power\Timeouts]"ACUserIdle"=dword:1e"ACSystemIdle"=dword:3c"ACDeepIdle"=dword:5a"BattUserIdle"=dword:1e"BattSystemIdle"=dword:3c"BattDeepIdle"=dword:5a"BatteryPoll"=dword:1f4z按秒计数z0 表示功能禁止, 系统不会自动切换到此状态z这些设置可以在”控制面板”里的电源管理里改变.系统电源状态变迁UserActiveUserIdleUserInactiveSystemIdleSystemActiveOnSystemInactiveSuspendTimeoutSystemInactivityUserInactivityTimeoutTimeoutSystemIdleSuspendUserActivityUser Interactive(PM State)(System State)(Event)电源管理状态切换timeoutPlatformUpdateSystemPowerStatePmSetSystemPowerState_IPlatformSetSystemPowerStateGenerateNotifications PowerOffSystemUpdateAllDeviceStatePmSetSystemPowerStateSetSystemPowerStateIf NewState(Internal call)(内部调用)(外部调用)If External callPlatformMapPowerStateHint(MDD)(PDD)内容z电源管理概要z电源管理驱动的实现¾内核级电源管理内核级电源管理¾OEMIdle¾当系统里没有线程要运行时被调用¾OEMPowerOff¾当系统要进入睡眠或关闭状态时被调用¾睡眠——唤醒的流程OEMIdlez当线程调度器里,没有线程需要运行时,调用此函数. (Blocked waiting for input or event.)z负责将CPU置于低功耗状态,并且能快速恢复到正常运行状态.z不能将内存(DRAM)置于自刷新状态OEMPowerOffz进入睡眠时,此函数负责将系统置于一个功耗最低的状态:¾保存系统设置¾将内存(DRAM)置于自刷新状态¾CPU停止工作(掉电)¾禁止中断处理(用于唤醒系统的中断除外)z退出睡眠状态时,此函数负责恢复系统的设置z睡眠¾调用SetSystemPowerState进入睡眠状态¾电源管理驱动里设置设备的电源状态¾调用PowerOffSystem()进入内核处理¾调用各设备驱动的XXX_PowerDown()¾调用OEMPowerOff()¾进入睡眠Zzzzz….z唤醒¾触发唤醒中断, CPU被唤醒¾开始执行Bootloader代码,判断冷启动还是唤醒¾判断为从睡眠中唤醒,用保存在内存上的地址跳回OEMPowerOff()里的唤醒位置,恢复系统设置¾调用各设备驱动的XXX_PowerUp()¾回到电源管理驱动中,更新各设备驱动的电源状态¾电源管理驱动发出系统状态变迁的消息通知¾整个系统恢复到正常运行状态PowerOffSystem的流程z SC_PowerOffSystem()¾WINCE500\PRIVATE\WINCEOS\COREOS\NK\KERNEL\kwin32.c内容z电源管理概要z电源管理驱动程序的实现z内核级电源管理移动与嵌入式开发者大会(MEDC)汲取新知,加速未来——移动与嵌入式开发者大会(MEDC)您想洞悉最前沿的微软移动与嵌入式技术吗?您想聆听最权威的技术专家现场讲授吗?您想全方位体验移动新产品所带来的无穷魅力吗?2006微软移动与嵌入式开发者大会将带领您与科技同步、与市场同行。

windows ce 操作系统简述

windows ce 操作系统简述

Windows CE百科名片WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。

简介Windows CE操作系统是Windows家族中的成员,为专门设计给掌上电脑(HPCs)以及嵌入式设备所使用的系统环境。

这样的操作系统可使完整的可移动技术与现有的Windows桌面技术整合工作。

Windows CE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统,Windows CE可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。

以免与微软的Windows NT操作系统的HAL混淆)。

与其它的微软Windows操作系统不同,Windows CE并不是代表一个采用相同标准的对所有平台都适用的软件。

为了足够灵活以达到适应广泛产品需求,Windows CE可采用不同的标准模式,这就意味着,它能够从一系列软件模式中做出选择,从而使产品得到定制。

另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式。

通过选择,Windows CE能够达到系统要求的最小模式,从而减少存储脚本和操作系统的运行,也为企业创造更大效益[1]。

Windows CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。

与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于WIN32 API重新开发、新型的信息设备的平台。

Windows CE嵌入式系统程序开发(基于ARM11)

Windows CE嵌入式系统程序开发(基于ARM11)

2 搭建Windows CE 开发环境 2.3 定制DMA-6410 XP 系统
2.3.1 使用项目向导 2.3.2 构建新的平台 2.3.3 编辑和修改 Windows Embedded CE项目 2.3.4 添加必要的功能 2.3.5 Build
3 Windows CE应用程序开发
3.1 第一个 WinCE程序
位程序
D
7 GPS与Google Earth定位系统
7.1 GPS相关知识
7.1.1 卫星星座 7.1.2 地面监控系统 7.1.3 信号接收机
7 GPS与Google Earth 定位系统
7.2 搭建环境
7.2.1 解析GPS定位信息 7.2.2 下载并安装Google Earth
7 GPS与Google Earth定位 系统 7.4 GPS与Google Earth定位程序
7.4.1 Google Earth_Start程序 的建立 7.4.2 地图定位功能 7.4.3 在地图上新增地标
8 鲜奶配送系统
8.1 系统总体 设计
A
8.2 搭建开发 环境
B
8.3 系统数据 库设计
C
8.4 系统初始 化
D
8.5 终端应用 程序设计
E
8 鲜奶配送系统
8.5 终端应用程序设计
6.3 键盘接口及 驱动程序
6.6 GPRS接口 及驱动程序
6 接口驱动程序开发
6.7 直流电动机接口及驱 动程序
6.9 蓝牙接口及驱动程序
6.8 步进电动机接口及驱 动程序
6 接口驱动程 序开发
6.1 驱动架构分析
6.1.1 驱动程序分类
6.1.2 流接口驱动程序架 构

WinCE基础教程

WinCE基础教程
1.3 安装ActiveSync
下载并安装“ActiveSync4.2.exe”,用于通过 DMA、USB、Eternet 调试设备。 DMA:主要用于 VS2005 与模拟器的连接与调试; USB:通过 USB 线与开发板里的 WinCE 通信; Eternet:通过 TCP/IP 与开发板的 WinCE 通信。
2.2.1 新建镜像工程 选择“FILE”->“New Platform”,新建一个平台,
因为制作的是模拟器内核,在这里只要选“Wired Local Area NetWork”即可。
然后默认配置,最后 Finish 即可。 2.2.2 添加组建和驱动
认识一下 PB5.0-IDE 的基本界面: 左边栏为:当前工程窗口,用树形展示当前工程已含的资源。 右边栏为:Catalog,用于显示计算机中已装的所有资源,包括 BSP 中驱动以及 PB 中 的组件资源。
ห้องสมุดไป่ตู้
1 、 如 果 要 开 发 托 管 程 序 , 添 加 Catalog View 的 Core OS->Windows CE Devices->Applications–End User->CAB File Installer/Uninstaller。
2、添加 ActiveSync,在 Catalog View 的 Core OS->Windows CE Devices->Applications-End User 目录下。
1.1.1 安装.NET 1.1
下载完全后,首先安装.NET 1.1 的补丁,
1.1.2 安装PB5.0
然后运行“Microsoft WinCE 5.0.msi”开始安装 PB5.0,一路全部默认安装,当遇到下 面的步骤时按如下设置,选择安装 Emulator 和 ARMV4I。

第6章.第3节 WindowsCE操作系统开发

第6章.第3节 WindowsCE操作系统开发

先 看一个 平台的创建流程
Platform Setting
使你可以浏览和修改关于整个平台的每个属性的选项 菜单: Platform -> Settings…
Build Options (1)

Enable CE Target Control Support

选择该选项可以在启动时使能目标控制功能(target control support). 选择这一项同时也打开了内核无关传输层(Kernel Independent Transport Layer — KITL). 选择该选项可以在Config.bib文件中预留内存空间,允许在启动过 程中操作系统可以读取boot loader存储的数据. 选择该选项可以开启事件跟踪子系统(event-tracking subsystem). 选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱, 但是性能会有所提高. 选择该选项可以使编译好的镜像下载后被烧写的到Flash中

允许调试器建立宿主机和目标机间的链接和传送调试信息 要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也 会同时取消被选定的“Enable CE Target Control Support ”选 项 选择该选项可以将Windows CE的有关内核的信息以日志的形式 装入平台镜像中 这是一个有条件编译的标志,设置它表示OS会提供详细的调试信 息来帮助调试. 选择该选项将事件放入release目录,同时开启事件跟踪
PB能做什么?(2)




Windows CE测试套件(Test Kit)提供了整套驱动 测试工具 内核调试器可以调试定制的OS镜像,同时提供给 用户镜像运行状况的信息 应用调试器可以调试在特定OS上运行的应用程序 远程工具可以调试基于Windows CE的目标机上 运行任务,并获取相关信息 模拟器通过模拟硬件可以加快和简化开发过程, 使用户可以在宿主机上完成平台和应用程序的初 步开发 SDK导出向导可以为用户导出一个特定的软件支 持包(software development kit — SDK).

06- Tiny6410 WindowsCE开发指南

06- Tiny6410 WindowsCE开发指南

copyright@2010更新说明:3.3.5创建SDK .................................................................................................................................... - 90 -Nand Flash启动系统,系统启动时的画面如图(请以实物为准)。

触摸屏校正缺省安装的wince系统的触摸屏校正参数一般适用于NEC 4.3”LCD屏的物理特性不同,有时可能不太准确,特别是不同尺寸的时候,这时就需要重新校正,如根据系统提示,使用五点校正法用触摸笔开始校正,校正完毕,将会跳出如下窗口,这时随便点一个位置即可返回“笔针属性”窗口,点“OK”保存退出。

如果您想保存本次校准的参数,请点“开始->屏幕旋转系统,桌面上有个小画笔的程序:Painter,你可以使用它来测试设置实时时钟并保存用户存储空间使用优盘和SD卡播放mp3测试按键测试PWM控制蜂鸣器录音测试根据提示,点“录音”按钮开始录音,这时对着板上的麦克风说话,程序开始录音,点“停止”按钮结束录音,如图:此时可以点“播放”按钮会循环播放刚才的录音。

说明:该录音程序并不保存录音结果。

的普通串口功能驱动尚不可用,要测试这三个串口,需要请使用交叉串口线连接开发板的点“设置”按钮,打开设置窗口,设置串口号为右上),点确定返回主窗口。

同时,连接好扩展板的COM2到PC一端,并在然后,在串口调试助手的主窗口点“接收”按钮(该按钮会改变为“不接收”端的串口终端输入一些字符(通过超级终端是无法看到的的字符会在开发板串口调试助手的接收区显示,如图:我们还可以使用同样的方法测试硬解码播放器点“文件”->“打开文件”找到SD卡或你自己的其他视频文件,如图选中文件,就可以观看硬解码播放的电影了。

使用注意事项:因为6410最大仅支持720x480的硬解码播放,所以在稍微有点卡,此时可以点“选项”->"缩放“->"100%"和“选项"->"此时把电视输入设置为CVBS,并与目标板之间使用黄色的视频线连接好,上的输出消失,画面转到了TV,如图。

CE开发平台简介

CE开发平台简介

开发平台(Platform Builder和Embedded Visual C++)简介1 Platform Builder介绍Platform Builder是微软公司提供给Windows CE开发人员进行基于Windows CE平台下嵌入式操作系统定制的集成开发环境。

它提供了所有进行设计、创建、编译、测试和调试Windows CE操作系统平台的工具。

它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。

同时,开发人员还可以利用Platform Builder来进行驱动程序开发和应用程序项目的开发等等。

Platform Builder的强大功能,已使其成为Windows CE平台下嵌入式操作系统开发和定制的必备工具。

以下是Platform Builder提供的工具集。

使用模版来创建一个新的平台。

使用模版来创建一个新的板级支持包。

在Catalog列表中显示了一系列的系统特性,这些特性可以被选择用于新的平台中。

自动检查各个功能模块之间的依赖关系,以确保系统所需要的功能及其子功能,关联的模块都能被包含的定制的目录中。

通过输出的模板,将一个系统的功能输出到配置文件,以便其他用户使用。

提供基本的默认配置,这为定制具有特定功能的操作系统带来了方便。

Windows CE Test Kit提供了测试驱动的一系列工具。

内核调试器能调试被定制的操作系统,并且能给用户提供性能上的测试参数。

应用程序调试器能在目标机或者虚拟机的操作系统中测试应用程序。

远程调试器能通过远程控制来搜集目标机上的信息,比如远程文件监视器、注册表监视器。

虚拟器可以在硬件平台未搭建好的时候能调试硬件无关的程序。

SDK输出模板可以将特定系统的SDK导出,这可以是应用程序开发人员使用EVC 就可以为特定的系统开发软件。

EVC调试的是应用程序软件,而Platform Builder往往要编译整个内核再调试,两者的开发效率是不同的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
Windows消息机制
• 仅仅一个WinMain()是不会等待消息的,我可 以加入一个MessageBox();简单的弹一个窗口出来, 然后结束。
问题是我们需要先建一个窗口(体)出来,建主窗口
的过程比较复杂,详细的情况我们后面要看到。过
程大致是,先设置窗体句柄的参数,然后建立窗体,
然后注册窗体,最后刷新窗体。
19
是Win32程序设计中的Windows消息机制
消息就是一个用户对电脑的‘请求’。我想放 CD(音乐),我只能选择按鼠标或者敲键盘,于是 消息便从这里产生了。
消息结果导致了某些特定电信号,电信号再到 达计算机电路系统,系统再将信号反应到操作系 统,操作系统再将信号变成消息形式发到线程, 到线程的消息再进入消息队列排队,最终到达消 息处理函数,此时电脑就明白你的请求是什么意 思了,再通过消息处理函数进行工作. 消息是发到电脑,还不如说是发到了线程 .
8
工程应用实践,带有身份证号码 验证系统和日历转换系统两个项目案 例,帮助读者全面总结所学知识,快 速积累项目实战经验。网络互动,在 线辅导。本书在希赛网和学赛网上为 读者提供与作者的互动活动、在线答 疑、源代码下载等服务。超值服务。 购买此书即可获得1000希赛积分, 可用于在希赛网和学赛网接受全方位 的学习辅导,还将得到超值学习资源。
Windows CE 选修课
T01. WinCE的开发软件基础
2008-
2
推荐的资源
3
教科书
4
教科书
5
推荐的参考书
6
推荐的参考书
7
本书分为三个大部分,从嵌入式系统开发的基础开始, 先让读者对嵌入式开发有一个大局观。接着通过一些应 用开发让读者学习开发的基本认识,最后通过一些具有 实践意义的例子来强化开发能力。本书适合对嵌入式系 统开发感兴趣的初中级读者阅读,也可供相关工程技术 人员作为参考用书使用。
9
推荐的参考书
10
推荐的参考书
11
推荐的参考书
•(美)佩措尔德 著,方敏,张胜,梁 路平,赵勇 等译
/2010-09-01/清华大学出版社
• 本书是一本经典的Windows编程圣经,涵盖基础知 识和中高级主题,全面地介绍了Windows程序设计 所涉及的细枝末节,旨在帮助读者从高屋见瓴(ling) 的角度,建立完整的知识体系,为以后的职业生涯 奠定良好的基础。...
12
推荐的参考书
13
推荐的参考书
14
消息
15
Wince的课程背景
• C语言程序设计 • C++程序设计 • VC++程序设计 • .NET程序设计 • Windows操作系统
16
Wince涉及的软件
• WinCE的EVB • WinCE的EVC • WinCE的API • WinCE的MFC • WinCE的ATL • 在讨论上面软件先了解下面几个概念:
18
窗口是做什么?
应用程序需要窗口.以便Windows CE接收信 息,同时窗口也是应用程序接收用户输入信息和显 示信息的区域.处理Windows CE的消息传送用的 是两个最基本的函数:
SendMessage和PostMessage.
SendMessage采用同步消息传送机制.而
PostMessage.采用异步消息传送机制.消息对列和 线程是一一对应的关系.而每一个都和一个特定线 程相关的消息对列联系在一起.窗口是消息传送的 目的地.消息对列﹑线程﹑窗口﹑窗口处理函数之 间的关系是:窗口拥有自己的线程﹑自己的消息对 列和响应的窗口处理函数
ShowWindow(ghWnd,nCmdShow); //显示窗口
UpdateWindow(ghWnd);
//更新窗口
完了之后这个窗体就会‘挂’在桌面上,等待用户发
消息。
22
Windows消息机制
所以必须让主线程工作起来,同时等待消息的到达。
接下来就创建‘无限’的‘消息循环’: 代码像这样: MSG msg; while(GetMessage(&msg,NULL,0,0)) {
20
Windows消息机制
线程如何接收到消息的呢?,还得从GUI入口函数说起。
一个GUI用户程序的入口函数将不是main(),而是 WinMain(),原形是: int APIENTRY WinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { } APIENTRY是__stdcall的宏,意思是用Windows标准调 用方式,hInstance是本身的实例句柄,lpCmdLine是命 令行参数
采用最新的Windows Embedded CE6.0写作。全 书通俗易懂,立足于Windows CE嵌入式移动领域软件 开发,站在入门和转型者的角度,从嵌入式系统基础开 始,逐渐深入Windows CE开发的一些理论,并结合相 应的实践,达到“喻理于境”的效果。内容丰富,涉及 嵌入式操作系统,Windows CE体系结构,进程与线程, 存储系统,开发环境与参考文档,应用编程接口,映像 创建过程,Platform Builder for CE 6.0,定制 Windows Embedded CE,应用程序的开发、诊断、调 试与发布,BSP开发,数据库开发,SQL Server Compact Mobile,网络与通信,国际化与本地化,C #编程基础等相关知识。
TranslateMessage(&msg);//将虚拟键消息转为字符消息 DispatchMessage(&msg); //处理消息 }
这里的无限循环,不是说这段代码将一直运行,事实上 GetMessage()将使这个线程挂起,只有当消息到来时再被 再次激活。
17
窗口管理
Windows CE支持大量的窗口样式,包括层叠 窗口, 但Windows CE不支持窗口的最大最小化 按钮﹑不支持隐藏任务栏﹑不支持MDI(多文档 界面)﹑不支持DDE.
(DDE = Dynamic Data Exchange,是 16 位 Windows 时代实现不同应用程序之间互相 交换数据和控制的技术,现在用得很少了, Windows Shell 外壳打开某些文件类型还用到 DDE.)
相关文档
最新文档