jjliu
驱动牛犊
驱动牛犊
  • 注册日期2001-11-05
  • 最后登录2003-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2057回复:5

请教大侠,ISA卡的驱动程序怎么调试?

楼主#
更多 发布于:2002-04-19 10:30
请教大侠,ISA卡的驱动程序怎么调试DriverEntry(。。。)函数,是不是Driver Monitor和Symbol Loader就可以了?是不是在Report Resource (IOReportResourceUsage())和Create Device(IoCreateDevice())之后可对ISA卡的port write or read?
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-20 03:33
用调试工具在你想断的函数里边设断点即可,这对driverentry和别的函数都一样,也和驱动对应的总线无关。Driver Monitor和Symbol Loader是两个不同的调试工具,用一个就行了。在任何时候,得到了硬件资源后就可以做读写
jjliu
驱动牛犊
驱动牛犊
  • 注册日期2001-11-05
  • 最后登录2003-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-21 22:35
谢谢斑竹的关注,我给您加分,怎么加
不过我的程序部分如下:
KeAcquireSpinLock(&pLCI->Locker, &OldIrql);
pLCI->OnLineStat = 0xff;
    WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + DTMF_ONLINE_REG), pLCI->OnLineStat );
failflag=0xff;

for (i=7; i >= 0; i--)
    {
  // set RS0 to ctrl & status
     WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + DTMF_CTRL_REG), 1 );
        READ_PORT_UCHAR( (PUCHAR)(pLCI->BasePort) );
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 0 );
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 0 );
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 8 );
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 0 );
        u = READ_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i) );
        if(u == 0xff)
        {
failflag = (UCHAR)i;
}
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 9 );
        WRITE_PORT_UCHAR( (PUCHAR)(pLCI->BasePort + i), 0 );
}

    KeReleaseSpinLock(&pLCI->Locker, OldIrql);

    if(failflag != 0xff)
        return STATUS_INSUFFICIENT_RESOURCES;

    return STATUS_SUCCES
调试时总是执行
if(u == 0xff)
        {
failflag = (UCHAR)i;
      }中的failflag = (UCHAR)i;
您看一下怎么回事?
        
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-25 16:45
查查你的硬件吧,应该是接口返回的值每次都是0xff,另外不要用和当前正在使用的版本不一样的.nms文件,不然softice会定位错的。
jjliu
驱动牛犊
驱动牛犊
  • 注册日期2001-11-05
  • 最后登录2003-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-27 16:26
谢谢,怎么“给分”给不出去。我发帖子时都是默认选项啊
bjcjg
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2005-08-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-01 10:04
最好在BUILD的时候设置好SOURCE的编译中的调试符号参数。这样你能在内核中清楚的调试信息。
游客

返回顶部