阅读:3039回复:7
wince中关于逻辑中断号的大小问题!(pxa270)
我做了一个GPIO的按键驱动程序,是由中断实现,我在OALITR.H中添加了一个逻辑中断号,定义为
#define SYSINTR_GPIO (SYSINTR_FIRMWARE+26),由于SYSINTR_FIRMWARE等于16,很自然SYSINTR_GPIO等于42.程序编译能顺利通过,但是在下载运行时,提示为 Key:DLL_PROCESS_ATTACH. >>>EINT_initalization address..set.. :::EINT_InitializeAddresses - Success ERROR:EINTKey:Failed to request sysintr value for EINT interrupt. Key:DLL_PROCESS_DETACH. 为什么又自动卸载了呢?是不是逻辑中断号太大了? |
|
沙发#
发布于:2007-09-27 16:50
补充一下,就是在下面出了问题:
if( ! KernelIoControl( IOCTL_HAL_GET_WAKE_SOURCE,&g_EINTIrq,sizeof(UINT32), &g_EINTSysIntr,sizeof(UINT32),NULL)) {RETAILMSG(1,(TEXT("ERROR:EINTKey:Failed to request sysintr value for EINT interrupt.\r\n"))); return(0);} 好像是硬件中断没有成功从OAL请求一个SYSINTR值,为什么? |
|
板凳#
发布于:2007-09-28 09:04
软中断号不能大于40
|
|
地板#
发布于:2007-09-28 14:52
我的硬件中断是GPIO中断,中断号为10(pxa270固定的)。逻辑中断号定为42不行吗?我看到demo的驱动程序里面设定的逻辑中断号有41的啊!!真的不能大于40吗?各位有经验的讲来听听,不胜感激!!
|
|
地下室#
发布于:2007-09-28 16:00
好像要修改一下最大逻辑中断号,s3c2410上面需要这样设置,你可以找找
|
|
5楼#
发布于:2007-09-29 09:48
pxa270 bsp里默认最大中断号是64吧,其实这个可以自己定.主要是sysintr irq对应数组的大小是64,所以中断号超过64就没有用了
|
|
6楼#
发布于:2007-09-29 11:01
要是自定义系统中断。就必须用OALIntrStaticTranslate(sysintr,irq)
这样以后系统才能在oeminterrupthandler得到你定义的系统中断号 |
|
7楼#
发布于:2007-09-29 21:12
引用第1楼hgn2002于2007-09-27 16:50发表的 : 从你这段代码看,只是OAL中没有实现IOCTL_HAL_GET_WAKE_SOURCE,与SYSINTR等没有关系. |
|
|