




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手持式移动设备嵌入式WinCE开发 5 EVC开发工具简介 第 章 本章目标 掌握SDK的导出方法 熟悉EVC集成开发环境 掌握远程调试工具的使用 5 1SDK 使用eMbeddedVisualC 工具编写WindowsCE应用程序时 必须知道自己所开发的程序运用在什么样的硬件目标平台上 以及目标平台具有什么操作系统功能 否则 开发者开发的应用程序很可能不能在目标平台上运行通过PlatformBuilder向eMbeddedVisualC 导出应用程序要运行平台的SDK 可以使EVC开发出的应用程序能够很好的运行在特定的目标平台上应用程序开发主要包括三各方面的内容 从PB中导出SDK 软件开发工具包 安装SDK到EVC Win32编程 MFC编程 5 1SDK 下面我们重点介绍SDK的导出以及安装过程 导出SDK主要有如下几个步骤 导出新的SDKSDK的配置SDK的编译下面将在前面创建的内核myce2基础上进行SDK的导出SDK的导出启动PB 并打开前面创建的WinCE内核myce2 可以选择创建一个基于某个BSP的内核 5 1SDK 5 1SDK 点击PB Platform ConfigureSDK 如下图所示 5 1SDK 点击下一步 如下图所示 5 1SDK 输入SDK名称和制造商名称 点击下一步 如下图所示 5 1SDK 导出在eVC 环境开发的SDK 点击下一步 如下图所示 5 1SDK SDK导出完成 点击Finish 如下图所示 5 1SDK SDK的配置再次点击PB Platform ConfigureSDK 如下图所示 5 1SDK 如下图所示选项 视图表示导出的SDK存储在开发者创建内核的路径下的SDK目录里 创建的内核平台名称为MYCE2 导出的SDK是一个标准的安装文件 名称为MYCE2 SDK msi 5 1SDK 点击Emulation 对模拟器设置 如下图所示 设置后点击 确定 退出如果不需要导出应用于模拟器的SDK 可在Emulation下拉表中选择None 在此setting项 还需要根据先前内核定制的平台 进行CPU的选择 同时还可以在install项进行安装信息的填写 5 1SDK SDK的编译点击PB Platform BuildSDK 如下图所示 5 1SDK SDK编译结束 如下图所示 5 1SDK 若编译过程没有错误 导出的SDK保存到开发者指定的目录 文件名为MYCE2 SDK msi 5 1SDK SDK的安装双击MYCE2 SDK msi文件 就可以安装 如下图所示 5 1SDK 点击 Next 如下图所示 5 1SDK 安装过程 如下图所示 5 1SDK 至此 我们就已经完成了SDK的导出 设置 编译 安装过程 后续我们就需要在EVC的开发中根据我们的程序应用平台选择我们定制的SDK 5 2EVC集成开发环境 WindowsCE开发工具WindowsCE与Windows编程有何不同处理器 CE 支持多种处理器Xp等 支持X86系列处理器屏幕或键盘等输入设备 CE 支持触摸屏 非标准分辨率大小 或无显示器 可能无鼠标或键盘Xp等 支持标准显示器 必须有鼠标和标准键盘存储设备 CE 可能没有硬盘等大容量存储器 可能无法存储大量文件 可能无法实现虚拟内存 内存访问受限 由于内存容量通常较小 又无法实现虚拟内存 内存是稀缺资源Xp等 大容量硬盘 虚拟内存 大容量内存等配置决定了程序员通常不用考虑内存是否够用 5 2EVC集成开发环境 字符编码CE 支持Unicode 而且通常都是以Unicode为字符的编码标准 即以两个字节来表示任何一个字符 不论是中文字符还是标准ASCII字符 这样在编写程序时 与字符串相关的处理需要特别注意这一点XP等 通常是使用ASCII字符 同时支持UnicodeCE的其他主要特性界面紧凑 配置多样化 API函数的精简等等开发工具的选择CE系统通常使用EVC或 NET等开发工具 同时支持模拟器及模拟器的调试 5 2EVC集成开发环境 我们的第一个WinCE应用程序 HelloWorld打开EVC4 创建一个工作空间 在对话框中选择Workspaces标签在Workspacename对话框中填入工作空间的名称以及存储位置 5 2EVC集成开发环境 向刚创建的hello工作空间添加文件或项目在对话中选择Files标签 然后选择C SourceFile 5 2EVC集成开发环境 在File处填入文件名在hello c中编写你的程序 5 2EVC集成开发环境 5 2EVC集成开发环境 hello c的代码 5 2EVC集成开发环境 这个文件包含了一组文件 它们中定义了WindowsAPI及其用到的结构和常量程序的入口点是本程序和标准C程序之间最大的差别 5 2EVC集成开发环境 这个文件包含了一组文件 它们中定义了WindowsAPI及其用到的结构和常量程序的入口点是本程序和标准C程序之间最大的差别 5 2EVC集成开发环境 第1个参数 hInstance为其它应用程序指明程序实例 也为需要验证这个EXE的WindowsAPI函数提供了程序实例参数hPrevInstance是从旧的Win16API Windows3 1及更早的系统 遗留下来的 包括WindowsCE在内的所有Win32操作系统中 hPrevInstance始终是0 可以忽略掉 参数lpCmdLine指向一个Unicode字符串 包含了命令行文本 从微软WindowsCE浏览器启动的应用程序没有命令行参数 但在某些情况下 例如当系统自动启动一个程序时 系统包含一个命令行参数来说明程序为什么被启动 5 2EVC集成开发环境 参数lpCmdLine是WindowsCE与XP出现差异的情况之一 在WindowsCE里 命令行字符串是Unicode字符串 在其它版本的Windows里 命令行字符串总是ASCII的最后一个参数 nCmdShow 指明了程序主窗口的初始状态 由父进程 通常是浏览器传递这个参数到程序里 它对应用程序如何配置主窗口给出了说明 在WindowsCE里 这个参数的值被限制成3个状态 普通 SW SHOW 隐藏 SW HIDE 和非激活显示 SW SHOWNOACTIVATE 除非应用程序需要强制它的窗口预先确定状态 在程序主窗口被创建后 这个值是不加修改 只是简单的传递给ShowWindow函数 5 2EVC集成开发环境 这个应用程序唯一的功能行WindowsCE支持大部分标准C库 包括printf getchar等等 这一行有趣的地方在于它不像WindowsCE其它任何地方 这个串不是Unicode而是ANSI 下面是对这个现象的合理解释 对于用ANSI标准编译的C标准库 printf和诸如strcpy等其它字符串库函数用的是ANSI字符串 当然 WindowsCE支持这些标准函数的Unicode版 例如wprintf getwchar 和wcscpy编译hello c选择应用程序将运行的目标平台 注意CPU和SDK的选择 在此 我们选择基于emulator平台进行实验 如果是要运行在特定的硬件平台 必须按照前面讲述的内容导出SDK并安装到EVC中去 然后进行应用程序的开发 5 2EVC集成开发环境 5 2EVC集成开发环境 在EVC中 选择Build菜单下的Compilehello c进行编译如果弹出下面的提示 点击yes即可 5 2EVC集成开发环境 如果没有错误 将在输入窗口 Output 中输出如下内容 在EVC中 创建可执行文件 5 2EVC集成开发环境 在执行完后 会出现下面的提示 在Workspace的存储目录下将生成hello exe文件 5 2EVC集成开发环境 运行程序导出一个基于模拟器的WinCE界面在开发工作站的C盘下创建soft目录 将C test hello emulatorDbg目录下的hello exe拷贝到C soft目录下在Emulator的Emulator菜单下 选择FolderSharing共享本机的目录 5 2EVC集成开发环境 在共享目录中填入C soft 或者使用浏览选择 在WinCE系统中打开 我的电脑 选择StorageCard 5 2EVC集成开发环境 双击打开StorageCard 在双击hello exe执行即可 将看到WindowsCE打开一个命令行窗口 打印一个HelloWorld之后退出上述运行过程是通过路径共享的方式 使得WinCE系统能访问WinXP系统上的可执行文件应用程序的执行有时候可以直接在EVC下的模拟器执行 但是它只适合调试基于emulator X86编译的内核 所以 我们要用模拟器调试程序时 要注意先前开发过程中的SDK的配置以及编译平台的选择 当然 对于应用程序到开发板的调试 我们还可以用前面提到过的activesync工具 5 2EVC集成开发环境 消息窗口的使用下面的程序Welcome创建一个消息框而不是用printf来显示文字 5 2EVC集成开发环境 编译并运行Welcome 可以看到如图所示的小窗口 MessageBox函数原型如下 intMessageBox HWNDhWnd LPCTSTRlpText LPCTSTRlpCaption UINTuType 第1个参数是顶层窗口的句柄 它是消息窗口的父窗口 目前我们把这个参数置为NULL 因为Welcome还没有任何其它窗口第2个参数是准备显示在窗口里的文字 注意传入的字符串是用TEXT宏包裹的 确保它能够编译成Unicode版本第3个参数lpCaption是显示在窗口标题栏的文字 最后一个参数uType是一系列标志位 规定消息框如何显示在屏幕上 标志位规定了消息框中按扭的数量和类型 规定了图标的类型以及消息框窗口的风格设置 5 3远程调试工具 EVC远程调试工具主要用于在开发平台与实际平台间执行一些调试工作利用远程调试工具可以在开发平台运行 得到实际平台上的文件 监视实际平台上进程或线程的状况 测试实际平台上应用程序的性能等一部分远程调试工具是我们在开发应用程序时常用的 还有一部分是开发内核时常用的 5 3远程调试工具 远程调用评测程序 RemoteCallProfiler 远程调用评测程序包含评测和分析工具 利用图形图像显示出你的代码中算法的效率或者占用资源情况 远程调用评测程序包含一系列接口函数 在你想要评测的代码中调用这些接口函数 然后运行你编写的程序 远程调用评测程序就能够接收你编写的程序的数据并记录 最后利用图形显示出来通过实例hello来体验远程调用评测程序 5 3远程调试工具 运行远程文件浏览程序 先弹出一个对话框 要选择访问哪个平台 如图所示选择 DefaultDevice 后 主窗口就显示出来了 如图所示 左边目录数列出的是模拟器运行的内核的所有目录 右边是指定目录下的文件 工具栏最右边是导入和导出按钮 这里的导入和导出是相对开发平台而言的 远程文件浏览程序 RemoteFileViewer 远程文件浏览程序是最常用 最易操作的工具之一 它的作用就是向实际平台导入或导出文件 5 3远程调试工具 要将一个位图文件传到模拟器中 先单击导出按钮 上箭头 在弹出的对话框中选择一个位图文件 确定后 这个文件就出现在远程文件浏览程序的右边文件窗口中了 导入也简单 先选择一个文件 再单击导入按钮 再选择路径 保存即可 5 3远程调试工具 远程堆查看程序 RemoteHeapWalker 从名字就可以看出它是用来查看操作系统中每个进程使用的堆的情况利用 远程堆查看程序 能够查看到 内核中正运行的进程的名字 ID 及使用的所有的堆的ID如图所示进程的一个堆中的首地址 结束地址 及标志 Fixed Free 堆中每块 Block 的实际内容 5 3远程调试工具 CE下每个进程启动时 系统会自动分配192KB的局部堆给这个进程 要是不够你就通过调用堆管理函数自己再分配自定义大小的堆 自己分配的堆 包括系统给你分配的堆 都由ID来标识 Flag 只有一个值 HF32 DEFAULT 表示系统默认分配的堆图中的 device exe 有四个都一样 但从进程ID就可以看出这是一个进程 而不是一个应用程序的四个实例 因为列表是以堆为单位 device exe 分配了四个堆 就显示了四个双击列表中任何一项 弹出这个堆的包含的块的列表 列出块的首地址 大小 标志 我们分配了一个堆 就可以在堆中分配数组 结构等 这个块就指每个分配的元素 标志中 Fixed 表示不能释放这个块占据的内存空间 而 Free 则相反 表示能够释放这个块占据的内存空间 5 3远程调试工具 远程内核跟踪程序 RemoteKernelTracker 远程内核跟踪程序用于跟踪实际平台内核的执行情况 一般使用它跟踪内核的启动情况 搜集相关数据并在开发平台上以图表形式显示出来 5 3远程调试工具 这个程序能够跟踪所有的进程和进程中的所有线程 从开始运行起跟踪 跟踪结束的时间由数据接收缓冲区的大小决定 缓冲区的大小从1MB到100MB 由用户自己设定跟踪内容为进程的运行 不运行 线程的运行 阻塞 睡眠 还有在线程中所有发生的同步事件 在此程序的右边有所有能够跟踪的事件对应的图标个程序提供了查找功能和过滤功能 查找功能可以查找你想要找的事件 而过滤功能可以让此程序只记录你想要的事件 5 3远程调试工具 远程性能监视程序 RemotePerformanceMonitor 这个程序和其它Windows操作系统中附带的性能监视器界面非常相似它能够监视RemoteAccessServer RAS InternetControlMessageProtocol ICMP TCP IP UserDatagramProtocol UDP Memory Battery System Process Thread 5 3远程调试工具 远程进程浏览程序 RemoteProcessViewer 此程序共三个窗口 分别显示当前内核中所有进程 进程中的线程 及进程中所有加载的DLL在显示进程的窗口中 分别显示进程名 进程ID 基本优先级级别 拥有的线程总数 基地址 访问键值 主窗口名在显示线程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶组装知识培训课件
- 《三峡》教学课件 部编语文八年级上册
- 电焊机安全使用培训课件
- XmAb-662-生命科学试剂-MCE
- Dog-hair-and-epithelia-extract-生命科学试剂-MCE
- 北京八十中数学考试题及答案
- 2-5-Triphosphoribosyl-3-dephospho-CoA-生命科学试剂-MCE
- 福州历史中考试题及答案
- 肛肠科考试题及答案
- 感官图形考试题及答案
- DB31T 1400-2023 药品生产全过程数字化追溯体系建设和运行规范
- 综合与实践:数学连环画(大单元教学设计) 一年级数学下册 (苏教版2025)
- 五年级科学教科版上册全册课后习题含答案
- 《电子商务基础(第二版)》课件 第三章 网络营销
- GB/T 45637-2025电动牙刷性能测试方法
- 2025年呼伦贝尔农垦集团有限公司工作人员招聘考试试题
- GB/T 25820-2025包装用钢带
- 《中国心力衰竭诊断和治疗指南+2024》要点解读课件
- 新人教版物理八年级下册知识点总结-物理八年级下册考点人教版
- 2024年湖北农商行招聘笔试题及
- ICU感染性休克护理查房
评论
0/150
提交评论