650 likes | 847 Views
嵌入式系统入门. WindowsCE 应用程序开发. 2006. 目录. 工具和技术 常规的应用开发步骤 Windows CE 编程特点 Windows Mobile 开发 Pocket PC Smartphone 模拟器概述. 目录. 工具和技术 常规的应用开发步骤 Windows CE 编程特点 Windows Mobile 开发 Pocket PC Smartphone 模拟器概述. 什么是应用程序开发. 在特定的 Windows CE 平台下 使用该平台的编程接口实现各种功能 平台的价值依赖于运行在其上的应用程序.
E N D
嵌入式系统入门 WindowsCE应用程序开发 2006
目录 • 工具和技术 • 常规的应用开发步骤 • Windows CE 编程特点 • Windows Mobile开发 • Pocket PC • Smartphone • 模拟器概述
目录 • 工具和技术 • 常规的应用开发步骤 • Windows CE 编程特点 • Windows Mobile开发 • Pocket PC • Smartphone • 模拟器概述
什么是应用程序开发 • 在特定的Windows CE 平台下 • 使用该平台的编程接口实现各种功能 • 平台的价值依赖于运行在其上的应用程序
Windows CE 应用程序开发工具 • Platform Builder • Embedded Visual C++ • Visual Studio .NET • Embedded Visual Tools 3.0 (不提倡,被废弃)
Platform Builder • 支持Win CE App / DLL / Lib,使用Win32 API开发 • 应用程序将被链接到OS内核中 • 一旦修改代码,必须再重新编译镜像 • 容易调试OS内核, 不容易调试应用程序 • 首先必须创建一个debug版的OS • Debug Zone
Embedded Visual C++ • 支持 Win CE App / DLL / COM / Lib using Win32 API, MFC, ATL and STL • 与Visual C++ 6.0具有相似的工程管理模式和用户界面 • 易于调试和测试 • 必须安装相应的为特定平台开发的SDK,从而开发相应的应用程序
Visual Studio .NET 2003 • 开发 Windows CE App / Assembly using .NET compact framework • 可使用 C#, VB.NET, J#... • VS.NET具有完整的开发环境 • 目标平台上需要安装 .NET compact framework • 易于调试和测试
Embedded Visual Tools 3.0 • 包括 Embedded Visual Basic 3.0 and Embedded Visual C++ 3.0 • 用户界面类似Visual Studio 6.0 • 开发的程序只能用于Windows CE Version 3.0
Platform Builder C or C++ Win32 Applications Compiled 应用程序开发选择 Native Application Model Managed Application Model Visual Studio .NET 2003 eMbedded Visual Tools C# or VB .NET C or C++ .NET Compact Framework Win32 Applications Runtime Windows CE Operating System
应用程序开发选择 (将来) Platform Builder Visual Studio 2005 C# or VB .NET C or C++ C or C++ .NET Compact Framework 2.x Win32 Applications Win32 Applications Windows CE Operating System
相关技术 ---- 你有哪些选择? • Win32 • Microsoft Foundation Class (MFC) • .NET Compact Framework
相关技术---- 对大小的影响 * 该测试是基于Internet Appliance“ 平台
.NET Compact framework Develop time performance MFC Win 32 API runtime performance 相关技术---- 开发和执行时间
相关技术---- 结论 确定使用何种模式取决于你是否使用了Win32/MFC/C# /VB来开发程序, 以及系统对操作系统镜像大小的要求,同时还要考虑其他因素,如应用程序开发速度以及系统的可靠性和兼容性等。 你可以根据项目的工作层来整合和匹配代码,如工作在:驱动中的Win32,Win32,MFC或者终端用户程序的C#/VB,开发人员可以充分利用他们在桌面windows下的开发经验来快速开发Windows CE产品。
目录 • 工具和技术 • 常规的应用开发步骤 • Windows CE 编程特点 • Windows 移动开发 • Pocket PC • Smartphone • 模拟器概述
常规的应用开发步骤: • 获得特定Windows CE平台的SDK. • 在Windows CE 模拟器上编辑和调试代码. • 在实际目标平台上,编译、运行程序, 如果需要在设备上调试程序,可以通过ActiveSync.
第一步 : 获得 SDK • SDK是用于在EVC和Visual Studio下开发 应用程序的 • 获得SDK的两种方法 • 微软或第三方提供 • 为自己的平台导出SDK • Microsoft提供: • Standard SDK (Common SDK dev) • Windows Mobile SDK (Pocket PC…)
PB下的SDK向导 • 它是一个工具,用来产生和导出特定平台的SDK(software development kit ) 。被导出的SDK由头文件、库文件、运行文件、平台的外延和帮助文件等组成。 应用程序开发人员可以利用这个SDK去关联Microsoft embedded Visual C++ 4.0 或 Microsoft Visual Studio .NET,为特定平台开发应用。 • Platform -> Configure SDK • Platform -> Build SDK
提示 : • 只在Standard SDK不能满足需求时才使用自己的导出SDK • 用Platform ->ConfigureSDK来配置SDK • 从控制面板中卸载SDK
第二步 : 在模拟器下编程和调试 • 与 Visual C++ 6.0 and Visual C++ .NET类似 • 取决于你的 Windows Programming 知识
Workstation CE Device ActiveSync KITL TCP / IP Platform Manager 平台管理器(Platform Manager) 它是一种通讯机制,用来管理宿主机和目标机之间的通讯。 平台管理器允许宿主机上的开发工具以介质无关的方式下载和连接目标机, PB, EVC 4.0, 和 Microsoft .NET Compact Framework 使用平台管理器下载诸如应用、MS ActiveX控件、实时运行库和远程客户端工具等到目标机上。
远程工具 • 你可以在宿主机上远程执行位于目标机上的各种程序 • 不同的平台支持不同的远程工具 • 位于PB和EVC的Tools菜单下 • 开发者可以使用相应的接口和APIs产生新的远程工具
第三步 : 在目标机上的运行和调试 • 根据目标机使用的CPU编译程序 • 下载这个可执行文件到目标机上,然后运行该可知行文件 • 如果需要,使用ActiveSync 一步一步调试程序
介绍ActiveSync ActiveSync提供了一种支持,用来同步基于桌面Windows系统和基于CE.NET的便携式系统间的数据,它使用时间标记(stamps)和用户参数来跟踪两个系统间的数据改变,并传送相应的数据使得每个系统上的数据都是最新的,过时的或者冗余的数据会被删除。 ActiveSync支持USB, 红外,调制解调器, 以及 Ethernet 等多种连接。 ActiveSync 不支持CE设备间的数据同步,也不支持CE设备和服务器间的数据同步。
使用ActiveSync调试 • 安装ActiveSync(从Microsoft网站获得) • 宿主机和目标机间提供至少以下一种连接 • Serial • USB • Infrared • Modem • Ethernet • 在EVC下选择“Windows CE Device” in EVC,调试运行在目标机上的程序
目录 • 工具和技术 • 常规的应用开发步骤 • Windows CE 编程特点 • Windows 移动开发 • Pocket PC • Smartphone • 模拟器概述
GDI 编程 • 不能使用 TextOut API • 注意 CreateFont API • 注意Windows CE调色板
输入: Stick • 不能使用 WM_MOUSEMOVE消息, 使用 GetMouseMovePoints API。
Windows CE数据库 • Win CE OS 提供的APIs,用来支持简单的数据库应用 • 不能被其他版本的Windows使用 • APIs: • CeCreateDatabase • CeDeleteRecord • …
串行通讯 // Traditional Win32 way. hSer = CreateFile(TEXT(“COM1:”), GENERIC_READ, 0, NULL, OPEN_EXSITING, 0, NULL); rc = ReadFile(hSer, &ch, 1, &cBytes, NULL); TransmitCommChar(hSer, ‘a’); CloseHandle(hSer); 问题 : 我们能用什么, 除了 “COM1”以外
RAPI RAPI是一个接口,它可以使运行于桌面系统的应用调用目标机上的函数。 桌面系统被叫作RAPI客户端,目标机被叫作RAPI服务器端。 RAPI远行在Winsock and TCP/IP之上,API通常以Cexxxx开头。 要创建Desktop<=>Device的桌面同步管理程序,主要就依靠SDK API中的Remote API(RAPI)。RAPI 库由一组函数组成,这些函数可用于通过桌面应用程序管理设备,包括设备的目录文件、设备的注册表和系统信息。
RAPI 结构 Win CE RAPI Server Run RAPI Application
目录 • 工具和技术 • 常规的应用开发步骤 • Windows CE 编程特点 • Windows Mobile开发 • Pocket PC • Smartphone • 模拟器概述
介绍 WindowsMobile • WindowsMobile是微软为Pocket PCs和Smartphones开发的软件平台 • Windows 移动延伸到微软的桌面系统和个人设备
Windows 移动家族 • Pocket PC • Smartphone • Windows 汽车电子
Pocket PC Smartphone
为什么要开发Windows 移动 • 移动设备的市场越来越大 • 截止2008, 将会有超过10亿集成设备和2亿的移动手机用户(IDC, 2004). • Pocket PC已经是PDA市场的龙头,超过Palm • Smartphone的快速发展
Windows Mobile的特点 • Microsoft提供了平台和SDK • OEMs 提供硬件 • 开发人员不能修改Platform 特性
Windows 移动开发第一步: 下载和安装 SDKs • URL: • http://msdn.microsoft.com/mobility/downloads/sdks/default.aspx • SDK能被用在EVC和Visual Studio.NET 2003上
Windows 移动开发第二步 : 开发、调试,运行 • 参考前面的部分