在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3080|回复: 3

[求助] 我的isa驱动为什么会在重启系统后偶尔进入不了中断服务程序,附代码

[复制链接]
发表于 2010-3-25 14:33:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[i=s] 本帖最后由 xiaxia0053 于 2010-3-25 14:36 编辑 [/i]

驱动就是用ds的向导生成的,主要改了下面两个例程,其他地方基本上没有动,驱动能够正常工作,接收isa的中断和数据,但是不知道为什么在重启5-6次之中,总会发生一次接受不到中断的情况。故障时,用windriver可以收到数据,所以我觉得应该是我这个驱动的问题,请教大家,还要从哪方面找找原因.
NTSTATUS IsaDevice::DeviceControl(KIrp I)
{
    NTSTATUS status;

    t << "Entering IsaDevice::Device Control, " << I << EOL;
    switch (I.IoctlCode())
    {
        case Event_Isa:
            {   
            HANDLE hEvent = *(HANDLE*)I.IoctlBuffer();

            if (m_pEvent)
            delete m_pEvent;

            m_pEvent = new (NonPagedPool) KEvent(hEvent, OBJECT_TYPE_ALL_ACCESS);
            return I.Complete(STATUS_SUCCESS);        
            }
        case GetData_Isa:
            {   
            m_ResetIntr = (UCHAR)0;                                            //清中断

            if (SynchronizeInterrupt(&m_Irq, LinkTo(ReadData), PIRP(I)) )
            return I.Complete(STATUS_SUCCESS);
   
            else
            return I.Complete(STATUS_UNSUCCESSFUL);
            return STATUS_UNSUCCESSFUL;
            }
        case EZ_ISA_IOCTL_802:
            break;

        case EZ_ISA_IOCTL_803:
            break;

        case EZ_ISA_IOCTL_804:
            break;

        case EZ_ISA_IOCTL_805:
            break;

        case EZ_ISA_IOCTL_806:
            break;

        default:
            // Unrecognized IOCTL request
            status = STATUS_INVALID_PARAMETER;
            break;
    }


BOOLEAN Ez_isaDevice::Isr_Irq(void)
{
    //Get Data

    m_IoPortRange.outw(0x00, 0x0020);
    m_IoPortRange.inb(0x02, &m_Buf[1], m_DataSize);

    m_ResetIntr = (UCHAR)0;                                            //清中断

    if(m_pEvent)
    {
                         m_pEvent->Set();
    }


   
    return TRUE;
   
}
发表于 2010-3-27 00:38:56 | 显示全部楼层
thanks!
发表于 2010-6-21 22:16:26 | 显示全部楼层
路过看下
发表于 2010-7-14 21:43:40 | 显示全部楼层
很好的东西 收下了 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-3 11:04 , Processed in 0.018633 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表