驱动调试助手的BUG

     问题层出不穷,一切皆有原因。

     今天发现最新的DM程序,在PPC上面不能正常运行,截图如下。

                    

     每个主键下只打开了一个子键。而TRE,就没有这个问题。起初以为是数字签名的问题,查看了相关的帮助文档后发现,应该不是数字签名的原因。

     Additionally, the system protects a set of registry keys so that they cannot be modified by normal applications. All applications can read all registry keys and values, but only privileged applications can modify values or subkeys below protected keys. The system protects a base set of keys. This set of keys is extensible by the original equipment manufacturer.

     确定了是代码的问题后,通过插桩调试的方法,终于找到了问题所在。原来是GetCursorPos()惹得祸,在PPC上似乎是不支持这个API的,用GetMessagePos()替换掉该API后,就成功解决了这个问题。截图如下。

                    

     我想不光是PPC上会有这个问题,在某些特定的WinCE系统上(没有包涵GWES_CURSOR OR GWES_MCURSOR组件)也会存在这个问题,只是自己平时定制系统时都包括了这些组件,所以一直以来没有发现这个BUG。这里又涉及到一个问题,如何确定一个程序能否在特定的WinCE系统上正常运行。因为WinCE系统是一个非标的操作系统,它对API的支持在定制系统时就决定了。关于这个问题,有时间应该整理一下,最好是写个程序来检测,产生一个Report,方便开发者判断需要在定制系统时添加哪些组件,也能让用户在程序不能运行时有个答案。

     刚刚去书店转了一下,发现已经有介绍WinCE6.0的书了,书很厚,讲的内容也不少,电子工业出版社出的,书名《Windows CE嵌入式系统开发从基础到实践》。还有一本是《EVC高级编程及应用开发》的升级版,基于VS2005来介绍的,应该也不错。

时间: 2024-10-23 03:37:19

驱动调试助手的BUG的相关文章

WinCE驱动调试助手V2.5

     工欲善其事,必先利其器.做WinCE驱动的开发已有一段时间了,WinCE驱动调试助手也跟着更新了很多功能.现在只要做驱动,DM是必须用的.最近在调试WinCE6.0下的驱动,所以又针对WinCE6.0增加了新的功能,也修正了原来的一些BUG.       先介绍一下WinCE驱动调试助手V2.5的功能.驱动调试助手的主要功能是动态加载卸载流驱动,以达到简化驱动调试的目的,节省开发时间,整体分成两部分,注册表操作和驱动调试.       1.注册表操作       V2.5中新增了对整行

驱动调试助手V2.9

    驱动调试助手的下载次数已经过万,很多网友也提出了一些宝贵建议,非常感谢.这里再做一个更新,V2.9中主要增加了注册表查找和注册表项重命名这两个功能,至此,有关注册表操作的所有功能基本都已实现了.虽然不能跟Resco Regedit等大牌比,但功能上并不差多少,而且原生态的支持WinCE系统,包括ARMV4.ARMV4I.MIPSII.SH4.        简单说明一下新增功能的用法,查找的界面如下.          支持查找项名.键名和字符串类型的键值.默认查找全部注册表,也可以在R

Windows Mobile中使用WinCE驱动调试助手的小技巧

      驱动调试助手是针对Windows CE做的,在Windows Mobile中使用会有一些问题,最主要的就是其菜单栏被Windows Mobile系统的任务栏给遮住了,导致相应的功能无法正常使用,如下图所示.             按理来说只要将系统任务栏隐藏就可以,今天在模拟器上实验了一下,看起来是可行的.只是任务栏隐藏后,相应的区域出现画屏,如下图所示.             不知道画屏是不是模拟器的缘故,暂且不管先.驱动调试助手的菜单隐约可见,简单测试了下其中的注册表搜索的功

WinCE-IIC调试助手(S3C2410)

    这两天在调试一款新的硬件平台,它采用的MCU依然是S3C2410.该平台新增了一个RTC模块,采用的芯片是DS1337.这是一个IIC接口的时钟芯片.在开始调试时碰到了一些问题,MCU始终无法与DS1337通讯,走了些弯路,浪费了不少时间.后来发现是IIC的SDA和SCL接反了.为了以后能方便调试2410下的IIC设备,所以决定为2410的WinCE做一个IIC调试助手,以免下次再碰到类似的问题,而多花冤枉时间.       IIC调试助手的主要功能:检测S3C2410 IIC-Bus上

WinCE下的LCD调试助手

    在实际项目中,经常会根据不同应用配备不同大小的LCD.所以需要针对不同的LCD,调节相应的参数.最近的一个项目,先后用了5.6.7和8寸屏,分辨率都是800*480.由于显示驱动是本地驱动,不能够动态卸载和加载.而在相同分辨率的情况下,不同的LCD仅仅是对应的行场同步参数不一样.所以,为了方便调试,针对TCC89平台做了个LCD调试助手,可以在应用程序中直接修改行场同步参数,实时调试LCD.为了验证参数的正确性,简单做了一个用于测试的界面.    LCD调试助手的界面如下图所示,主要提供

c#-C#串口通信问题,调试助手使用正常,真机无效

问题描述 C#串口通信问题,调试助手使用正常,真机无效 1用C#谢了串口调试的代码,真机测试没有反应. 2用两台机器都装了串口调试助手,用C#程序发信息另一台机器的串口助手显示接受到的信息是正确的,链接到真机测试无效 3用调试助手发送代码给真机能正常运行 解决方案 从以下你的反馈信息来看,问题还是出在你的c#的代码上,建议参考以下代码 C#串口通信总结http://www.cnblogs.com/binfire/archive/2011/10/08/2201973.html

485 232-232转USB读取数据正确,但485转USB读取数据出错,用调试助手都可以正常接收数据。

问题描述 232转USB读取数据正确,但485转USB读取数据出错,用调试助手都可以正常接收数据. 用485转USB读取数据有时候正确,有时候乱码.硬件应该没有问题,用调试工具可以正确接收数据. 本人使用的是控件编写的测试程序,,,实在不行用API编写不知道会不会有同样情况..求大神指导... variant_inp = m_ctrlComm.GetInput(); safearray_inp = variant_inp; len = safearray_inp.GetOneDimSize();

WinCE下的TVP5146调试助手

     这两天在调试TVP5146的驱动程序,之前一直都是LF在负责,现在刚刚接手,很多细节都不清楚.不管三七二十一,先做了一个用于读写TVP5146所有内部寄存器的小工具,通过它可以实时修改其中的任意一个寄存器,而不必编译驱动或内核.      实现了这个小工具后,首先切换了一下输入的通道,工作得很好,又从AVIN模式切换到DVD模式,也能看见画面了,虽然有些闪烁,而这就是接下来需要解决的细节问题.      从网上找到了一份Linux下的参考代码,原厂发布出来的,看上去很靠谱,收藏在这,以

WinCE下3G模块的调试

这两天在WinCE6.0上调试了下3G模块,华为的EM730,它支持GPRS和WCDMA.虽然没有涉及到驱动的移植(没有源代码),但调试过程还是几经周折,记下来以便后用. EM730是MINI PCI接口的,也支持USB.于是先请硬件工程师帮忙飞了一堆线,在PC上测试了一下,工作完全正常,证明模块本身没有问题. 在WinCE6.0上,安装了HW提供的一个驱动,并将模块插入,驱动似乎也是正常工作了,没有提示需要再安装驱动.打开串口调试助手,竟然发现多了三个可用的串口,确定驱动是工作起来了.用串口调