阅读:1029回复:3
这里让我忘了失恋之痛
初来这里,激动的心情象哥伦布发现了新大陆,各位不要笑我菜,
这里的人都操着流利的我不知道是什么东东的术语,唯一了以自慰的是没有不认识的字。我都忘了失恋之痛,附上一个很菜对我很难的问题,各位可以打我,不要笑我。 我用windriver写的PCI卡的驱动,在处理PCI中断的时候,我按照Windriver的要求写了传送命令去Cancel中断源,单步执行到DeviceIoControl()时死机,虽然我的PCI卡上的中断信号一直处于无效状态。也就是WD-IntEnable()执行失败。 请各位不吝赐教。 斑竹,小弟这里有礼了。(附上程序) NT_THREAD_DATA *pThread; WD_TRANSFER trans[2]; *phThread = NULL; BZERO(trans); trans[0].cmdTrans = RP_DWORD; // Read Port Dword // Set address of IO port to write to: trans[0].dwPort = TRY84_AD_BAR1+0x4; trans[1].cmdTrans = WP_DWORD; // Write Port Dword // address of IO port to write to trans[1].dwPort = TRY84_AD_BAR0+0x38; // the data to write to the IO port trans[1].Data.Dword = 0; pInt->dwCmds = 2; pInt->Cmd = trans; pInt->dwOptions =INTERRUPT_LEVEL_SENSITIVE | INTERRUPT_CMD_COPY; WD_IntEnable (hWD, pInt); // check if WD_IntEnable failed if (!pInt->fEnableOk) return FALSE; 在WD_IntEnable (hWD, pInt)里面会调用 DeviceIoControl(hWD, (DWORD) wFuncNum, (PVOID) pParam, (DWORD) dwSize, NULL, 0, &GlobalDW, NULL); 执行到这里就死机了。 |
|
沙发#
发布于:2003-08-07 09:37
各位大侠请有了解的吗,该出手时就出手,10分等你拿。
|
|
板凳#
发布于:2003-08-07 09:45
EXAMPLE
WD_INTERRUPT Intrp; BZERO(Intrp); // from WD_CardRegister() Intrp.hInterrupt = hInterrupt; Intrp.Cmd = NULL; Intrp.dwCmds = 0; Intrp.dwOptions = 0; // from WD_KernelPlugInOpen() Intrp.kpCall.hKernelPlugIn = hKernelPlugIn; WD_IntEnable(hWD, &Intrp); if (!Intrp.fEnableOk) printf (\"failed enabling interrupt\\n\"); |
|
地板#
发布于:2003-08-11 12:21
老大给我的太高深了,是要用KERNELPLUGIN的,我也试过了,没成功,谢谢你,怎么给分给你,我找了半天都没法给分,
后来我查高我程序的原因了,不是程序的问题,我换了一台电脑后就好了,真他吗的郁闷,我所用的两台电脑都被我搞的系统快崩溃了,换了新的好了, 共勉,你给我回一个,我给分给你 |
|