您现在的位置: 爱51代码网 >> 范文 >> 文章正文
WINCE5.0里移植网卡驱动到6.0里进不了中断服务程序

在oallib/intr/intr.c里使能了外部中断:

OALIntrStaticTranslate(SYSINTR_ETH, IRQ_EINT15);  value = IRQ_EINT15; OALIntrEnableIrqs(1, &value);

注册网卡能成功,注册中断也能成功,代码如下:
    NdisZeroMemory (&Characteristics, sizeof (Characteristics));     Characteristics.MajorNdisVersion = (UCHAR)SMSC9118_NDIS_MAJOR_VERSION;     Characteristics.MinorNdisVersion = (UCHAR)SMSC9118_NDIS_MINOR_VERSION;     Characteristics.CheckForHangHandler = Smsc9118CheckForHang;     Characteristics.DisableInterruptHandler = smscDisableIntr;     Characteristics.EnableInterruptHandler = smscEnableIntr;     Characteristics.HaltHandler = Smsc9118Halt;     Characteristics.HandleInterruptHandler = Smsc9118HandleInterrupt;     Characteristics.InitializeHandler = Smsc9118Initialize;     Characteristics.ISRHandler = Smsc9118Isr;     Characteristics.QueryInformationHandler = Smsc9118QueryInformation;     Characteristics.ReconfigureHandler = NULL;     Characteristics.ResetHandler = Smsc9118Reset;     Characteristics.SendHandler = NULL;     Characteristics.SetInformationHandler = Smsc9118SetInformation;     Characteristics.TransferDataHandler = NULL;     Characteristics.ReturnPacketHandler = Smsc9118GetReturnedPackets;     Characteristics.SendPacketsHandler = Smsc9118SendPackets;     Characteristics.AllocateCompleteHandler = NULL;       Status = NdisMRegisterMiniport (gSmsc9118MiniportBlock.NdisWrapperHandle,                                      &Characteristics,                                      sizeof (Characteristics));     if (Status == NDIS_STATUS_SUCCESS)     {         SMSC_TRACE0(DBG_INIT, "NdisMRegisterMiniport OK.\r\n");     } ----------------------------------------     status = NdisMRegisterInterrupt (&(pAdapter->Interrupt),                                      pAdapter->hMiniportAdapterHandle,                                       (UINT)pAdapter->ucInterruptNumber,                                       (UINT)0xf,                                       (BOOLEAN)TRUE,                                      (BOOLEAN)TRUE,                                                                           NdisInterruptLatched);       if (status == NDIS_STATUS_SUCCESS)     {         SMSC_TRACE0(DBG_INIT,"  Interrupt Connected\r\n");         }

==========================================
当有中断来时,在common/intr/intr.c里能打印出中断号,但是始终进不了我的中断服务程序,而且,中断一来就被屏蔽了。

请问:可能是什么地方出了问题?

,问题不在代码,在注册表,在注册表里网卡的相应位置增加一个对应的中断号就可以了:

    "SysIntr"=dword:23

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    YUV422,显示要转成RGB565
    STC单片机做RS232多机通信运
    modbus模拟器寄存器读取错误
    BUILD: corrupt database (D
    WinCE 7自带IE浏览器网页显示
    Directsound如何控制声卡左右
    如何将opencv2.0完整移植到W
    编译./arm_qt4.5_build不成功
    mini2440开发板发送at指令没
    不同CAN控制器之间能组成CAN
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |