SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1503回复:9

wwei_wang在吗?请帮忙回答一个问题。驱动如何调试?

楼主#
更多 发布于:2005-04-25 17:19
用EVC开发的Pocket PC下PCMCIA的驱动程序怎样进行内核模式调试?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-26 15:50
如果可以重编译平台,把配置文件(.reg,.bib等等)。然后makeimg,然后启动设备调

如果不能重编译,可以把设备驱动放到目标板,然后使用activedevice手动启动设备。需要自己写一个应用。

如果有kitl,可以利用kernel debugger单步调,如果没有kitl,可以利用debug output port输出调试信息来调
根据地的兄弟们,团结就是力量
SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-26 16:17
多谢回复,可是我没有目标板,只有目标机,PPC是买来的成品。这个驱动本来在PPC2003上跑的很好,可是在PPC2003SE上就出现问题啦。表现为中断频繁产生时驱动有时就再也无法进入ISR了。想用内核模式调试,不知能不能跟到MDD内的IREQThread内看一下怎么了?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-27 14:06
这个就麻烦了,产品里面的调试信息全部去掉了,根本看不到DEBUG MESSAGES,就算单步调也只有机器代码。我觉得KERNEL DEBUGGER也被去掉的,而且也不知道产品还保留不保留调试的物理通道,这样也不可能单步调啊。还是静态检查吧,想想会是什么问题,对了,你看看你的驱动里面使用的一些API,在新系统里面有没有被其他函数取代
根据地的兄弟们,团结就是力量
SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-27 14:40
看来这个问题很不好解决。通过提高ISR线程的优先级使得这个驱动在某些机器上(Dell Axim  X50)可以正常工作,但是有的机器(HP ipq hx2410)还是不正常。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-27 15:06
你是指系统繁忙,IST得不到执行(从而不能及时开放中断)导致的中断丢失?如果是这样的话在ISR里面就开放中断可以缓解这个问题。这个还和这些平台中共享中断源有关,不好说了
根据地的兄弟们,团结就是力量
SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-27 16:28
是的,也不是,不是丢失中断,而是再也无法响应中断。只有重启程序后才能恢复正常。 而且是中断频繁产生时不停的做窗口的打开关闭操作才会有问题。如果中断频繁产生时不操作PPC,则不会出问题。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-28 13:12
那最终应该还是由于频繁的动作导致IST不能及时处理中断,你看看有没有可能是缓冲区溢出什么的导致IST最后不响应了,如果不管再慢,IST总能最终正确开放中断的话中断是不会不被响应的。
根据地的兄弟们,团结就是力量
SEUIC
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2016-04-20
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-28 15:43
不象溢出的问题,只是在有些机器上不正常。而且不正常的机器的性能更好,速度更快。出错后是再也无法响应中断。感觉象是什么标志被非法改变了。应该是MDD层出问题了,底层的东东不好讲。目前我们只发现在ipqHX2410上有问题,在Toshiba E830W上也是OK的。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-30 14:58
能试试在ISR里面做些动作反映出中断给到CPU了没有吗?我觉得应该看不响应出现在哪个阶段:中断线到CPU,CPU到ISR,ISR到IST...
根据地的兄弟们,团结就是力量
游客

返回顶部