// 初始化外部按键中断: 注册中断事件, 允许外部中断
if (!(InterruptInitialize(g_TIMER2SysIntr, TimerEvent, 0, 0)))
{
RETAILMSG(1, (TEXT("ERROR: TIMER2TIM: InterruptInitialize failed.\r\n")));
CloseHandle(TimerEvent);
return 0;
}
// 从 OAL 请求一个 SYSINTR 值
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_TIMER2Irq, sizeof(UINT32), &g_TIMER2SysIntr, sizeof(UINT32), NULL))
{
RETAILMSG(1, (TEXT("ERROR: TIMER2: Failed to request sysintr value for EINT interrupt.\r\n")));
return(0);
}
RETAILMSG(1,(TEXT("INFO: TIMER2: Mapped Irq 0x%x to SysIntr 0x%x.\r\n"), g_TIMER2Irq, g_TIMER2SysIntr));
这两个顺序反了吧, 先请求 sysIntr 的值
然后再绑定事件