今天终于将四个按键都驱起来了!收获如下:
一个外部中断,必须首先在驱动IST中调用KernelIOControl(IOCTL_HAL_REQUEST_SYSINTR) 将IRQ和SysIntr关联起来。不过很多时候是静态关联的(调用OALStaticTranslate),s3c2440下的PwrButton是动态关联的,所以无需在BSPIntrInit中添加静态关联。
IRQ与SysIntr关联好后,调用InterruptInitialize将SysIntr与一个事件关联起来。其实到了这里就进入了IST部分了,有关这个的资料多得很,不赘述了。
之后,就是实现这个事件,其他还有注册表设置等的一些配置工作。
现在还有一个问题:区分EINT11与EINT19,这个涉及到几个中断寄存器的使用。明天解决,呵呵~