Windows CE 模拟器和远程调试工具
Windows CE 模拟器和远程调试工具 |
本篇文章主要讲解远程调试工具的使用方法,并采用PB(Microsoft Platform Builder)下的模拟器来试验。
一、模拟器 模拟器(emulator)是PB的一部分。专用于调试在PB下创建的内核及应用程序。模拟器能够在PC下模拟Windows CE的物理平台。但实际上它只不过是一个运行在CPU Ring 3级别的用户程序。所以它的运行速度要比正常的物理平台要慢。模拟器仅支持x86平台,它只能调试基于"Emulator:x86"的内核和所有用x86指令集编译的程序。模拟器有很大的限制,这些限制使它只能运行简单的应用程序。但是有一点是好的,操作系统的大多数API对于任何CPU而言都是相同的。考虑到不受CPU类型影响的简单程序,还是可以在模拟器上调试的。在实际开发中我只用模拟器调试软件的界面。如果你想学习PB,用它来创建内核而又没有实际的物理平台来调试,那么模拟器非常适合。但模拟器的限制也非常多,所以即使你在模拟器下调试过所有能够调试的内核特征(feature,或者称组件),你掌握的也不过是冰山一角。在这里顺便说一句闲话:PB包含的知识量和Windows CE本身的知识量加起来好比是浩瀚的海洋,比用EVC开发软件的知识量大的多。所以如果你只会用EVC开发几个软件,那你仍然是Windows CE专业的一年级学生。
关于模拟器的硬件限制:(摘自Windows CE帮助)
微软推荐的使用模拟器的开发平台的配置: 二、创建内核并下载到模拟器上 为了测试远程调试工具,我们必须先使用PB v4.1创建一个内核: 在PB中编写一个应用程序并下载到模拟器: 三、远程调试工具 远程调试工具用于在开发平台与实际平台间执行一些调试工作。利用远程调试工具可以在开发平台运行,得到实际平台上的文件、监视实际平台上进程或线程的状况、测试实际平台上应用程序的性能等。一部分远程调试工具是我们在开发应用程序时常用的,还有一部分是开发内核时常用的。对于不常用的远程调试工具,我在这里只给予简单的介绍。 3、远程堆查看程序(Remote Heap Walker) 显然“Walker”不能翻译成“查看”。你愿意怎么翻译就怎么翻译吧。在这里我就叫查看了,这样容易理解。从名字就可以看出它是用来查看操作系统中每个进程使用的堆的情况。什么是堆就不用我说了吧!堆大家都了解,但是CE下关于堆的知识也值得一说。以后我会有专门讲述CE下进程、线程、和内存管理方面的文章发表,那时会说的非常详细。利用“远程堆查看程序”能够查看到:
查看和使用这个工具是很简单的事情。不过前提是你对堆有所了解。下面我说说和这个工具有关的涉及到堆的知识。CE下每个进程启动时,系统会自动分配192KB的局部堆给这个进程。要是不够你就通过调用堆管理函数自己再分配自定义大小的堆。自己分配的堆,包括系统给你分配的堆,都由ID来标识。如图中所示的Heap ID。进程ID和进程名就不用说了。后面的“Flag”只有一个值“HF32_DEFAULT”,表示系统默认分配的堆。 图中的“device.exe”,有四个都一样。但从进程ID就可以看出这是一个进程,而不是一个应用程序的四个实例。因为列表是以堆为单位,“device.exe”分配了四个堆,就显示了四个。 4、远程内核跟踪程序(Remote Kernel Tracker) 远程内核跟踪程序用于跟踪实际平台内核的执行情况,一般使用它跟踪内核的启动情况,搜集相关数据并在开发平台上以图表形式显示出来。如图2所示。这个程序能够跟踪所有的进程和进程中的所有线程。从开始运行起跟踪,跟踪结束的时间由数据接收缓冲区的大小决定。缓冲区的大小从1MB到100MB,由用户自己设定。跟踪内容为进程的运行、不运行,线程的运行、阻塞、睡眠。还有在线程中所有发生的同步事件。在此程序的右边有所有能够跟踪的事件对应的图标。
5、远程性能监视程序(Remote Performance Monitor) 这个程序的界面大家一定很熟悉了。和其它Windows操作系统中附带的性能监视器界面非常相似。如图3所示。操作也几乎一样。
它能够监视Remote Access Server (RAS)、Internet Control Message Protocol (ICMP)、TCP/IP、User Datagram Protocol (UDP)、Memory、Battery、System、Process、Thread。 6、远程进程浏览程序(Remote Process Viewer) 此程序共三个窗口,分别显示当前内核中所有进程、进程中的线程、及进程中所有加载的DLL。在显示进程的窗口中,分别显示进程名、进程ID、基本优先级级别、拥有的线程总数、基地址、访问键值、主窗口名。在显示线程的窗口中,分别显示线程ID、当前进程ID、线程优先级、访问键。在显示DLL模块的窗口中,分别显示模块名、模块ID、当前进程使用计数、全局使用计数、基地址、大小、模块句柄、路径。这里要说明的是线程窗口中的“当前进程ID”。当前进程ID会有不相同的时候,奇怪!线程窗口应该显示当前指定进程下的所有线程,怎么会有不同的进程ID呢?因为CE帮助中什么都没说,所以请允许我设想一下:比如“explorer.exe”,它包含的线程其中就有两个在“当前进程ID”中显示为进程“gwes.exe”,“gwes.exe”为图形、窗口、事件子系统。它负责图形和窗口以及窗口消息。“explorer.exe”的线程在显示窗口、收发消息时调用“Coredll.dll”(以后会具体讲解此DLL),这个DLL调用图形、窗口、事件模块。这些模块实际上是驱动程序(DLL),由gwes.exe来加载、管理这些DLL。所以显示当前进程为“gwes.exe”。目前只能这么解释了。
7、远程注册表编辑程序(Remote Registry Editor) 此程序和其它Windows 操作系统下的注册表编辑器非常相似。但它能够显示、编译开发平台下的注册表和实际平台下的注册表。如图5所示。具体操作我就不多说了。CE下注册表的限制我也曾说过了。
8、远程消息监视程序(Remote Spy) 这个程序和VC下附带的工具spy非常相似。能够列出所有实际平台下的窗口和窗口消息。我想这个程序也不用我多说了吧。熟悉VC下的工具,就能操作这个工具。界面如图6所示。
9、远程系统信息(Remote System Information) 这个工具能够查看实际平台的系统信息,包括硬件和软件的信息。 图7 系统信息截图 10、远程屏幕截图程序(Remote Zoom-in) 此工具能够截取实际平台屏幕图像。这个工具最适合写说明书了。假如一个产品要推向市场,那说明书或演示程序必须准备好。用这个程序截图放到说明书或演示程序中。截图单击“File”-“New Bitmap”。这个程序的界面我就不给出了。 总结 10个远程工具为我们开发内核和应用程序提供了很大的帮助。显然有些工具很少用,有些工具常用。对于注册表编辑器,在一些嵌入式网站有源码和程序可下载。把注册表编辑器带到内核中运行会更有效,更节省时间。这10个工具中,最帅的就是内核跟踪程序了,通过内核跟踪程序,整个内核启动过程清晰可见。还可以用它监视你的应用程序。有一点还要说明:这10个远程调试工具我是在模拟器上试验的。如果要调试实际平台,必须先通过串口、网卡把开发平台和实际平台连接起来。在“Target”-“Configure Remote Connection”中设置。实际设备最好有网卡,串口的速度太慢了。这方面请参考帮助文件,帮助文件中说的非常详细了。 |
Windows CE 模拟器和远程调试工具相关推荐
- Windows CE嵌入式导航系统研究(内核相关)
1.1 嵌入式车载导航系统的软件设计流程 嵌入式车载系统软件主要包括系统内核.驱动程序.应用程序三部分.设计的过程当中,我们采用瀑布模型进行设计,首先制定Windows CE5.0系统内核,再次编写相 ...
- Windows CE(C#)嵌入式应用开发pdf
下载地址:网盘下载 Windows CE(C#)嵌入式应用开发共分为五部分内容:Windows CE系统基础.Windows CE系统定制.图形界面开发.嵌入式移动数据库开发.通信开发.Windows ...
- [转]Windows CE 编程的十点忠告(by pdasky)
最近两周我们花了大部分时间将已有的应用程序移植到Microsoft Windows CE中.一般说来,这个计划不是太难.我们起步于Microsoft Win32代码,当然 Windows CE是基于W ...
- Microsoft Windows CE 编程的十点忠告
最近两周我们花了大部分时间将已有的应用程序移植到Microsoft Windows CE中. 一般说来,这个计划不是太难.我们起步于Microsoft Win32代码,当然 Windows CE是 基 ...
- 定制自己的Windows CE 5.0 ARM中文模拟器(转)
定制自己的Windows CE 5.0 ARM中文模拟器(转)http://showvi.com/Blog/ViewAirticle/59 一.生成OS 1. 安装Windows CE 5.0(记得C ...
- 使用Platform Builder配置Windows CE操作系统
使用Platform Builder配置Windows CE操作系统 摘要:Windows CE操作系统是嵌入式系统的开发利器.Windows CE Platform Builder 3.0提供创建. ...
- windows ce 专题
WindowsCE是微软公司嵌入式.移动计算平台的基础,它是一个开放的.可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,Windows CE的图形用户界面相当出色. Wince简介 ...
- Windows CE的VC开发工具包
基于微软VC6.0的Windows CE软件开发工具包是为那些在VC++6.0环境下为运行Windows CE操作系统的掌上设备进行软件开发的程序员们设计的一个开发工具包. 借助于这个工具包的帮助,能 ...
- Windows CE
WindowsCE是微软公司嵌入式.移动计算平台的基础,它是一个开放的.可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用 ...
最新文章
- Python 技术篇-获取requests里的二进制文本并保存为音频、图片文件,提取requests里的多媒体信息
- URAL1204. Idempotents(扩展欧几里得)
- matlab考试试题,matlab-考试试题-
- pip安装OpenCV
- tomcat,httpd 日志格式说明
- mysql 的各种 join
- 快手短视频去水印方法
- inSSIDer使用方法
- 使用JS和CSS实现图片的3D透视效果及动画
- Ionic5项目android打包流程
- 我什么计算机作文600字,我是电脑迷作文600字
- java.lang.UnsatisfiedLinkError: /usr/local/java/jdk1.8.0_91/jre/lib/amd64/libawt_xawt.so: libXtst.so
- SAP中总账科目行项目不显示的处理方法
- Linux电池电量信息读取,linux内核 – 如何在Linux内核模块中获取电池电量?
- 大班线描机器人_大班线描画-有趣的巨人
- 周六见 | PyCon China 2022 上海站就等你啦!
- 管理的艺术--达尔文进化论:适者生存 末位淘汰
- 【C51定时计数器讲解】
- 【leetcode】脑子打结的题
- COGS 2057. [ZLXOI2015]殉国
热门文章
- 使用UIView+Extension请注意:令人捉急的centerX导致子控件显示位置不对的矫正
- Hadoop-HDFS的数据读写过程(详细过程与图解)
- wordpress安装和使用图文教程(新手指南)
- 已拿腾讯offer分享面试经历(含答案、推荐书籍、资料分享)
- 导入自己模块包导入报错:ModuleNotFoundError: No module named ‘xxx‘解决方法 晓物智联
- 笔记本电脑增加内存条步骤
- 最便捷的神经网络可视化工具之一--Flashtorch
- 微信小程序之音乐播放
- 【argue】进程参数欺骗
- 基于单片机智能睡眠枕整套设计方案