阅读:2257回复:3
[求助]wince里到底有多少可用的中断?
我是一个刚刚接触的wince新手,对于其中的中断有一些困惑,似乎wince中可用的中断号十分有限,这是我从一个文件中截取的片断:
SYSINTR_NOP EQU 0 SYSINTR_RESCHED EQU 1 SYSINTR_BREAK EQU 2 SYSINTR_DEVICES EQU 8 SYSINTR_PROFILE EQU SYSINTR_DEVICES+1 SYSINTR_TIMING EQU SYSINTR_DEVICES+2 SYSINTR_RTC_ALARM EQU SYSINTR_DEVICES+5 SYSINTR_FIRMWARE EQU SYSINTR_DEVICES+8 SYSINTR_MAX_DEVICES EQU 32 SYSINTR_MAXIMUM EQU SYSINTR_DEVICES+SYSINTR_MAX_DEVICES ; ; Define OAL-specific interrupt Id's below. Range:[SYSINTR_FIRMWARE -> SYSINTR_MAXIMUM] ; SYSINTR_KEYBOARD EQU SYSINTR_FIRMWARE+0 SYSINTR_POWER EQU SYSINTR_FIRMWARE+1 SYSINTR_IDE EQU SYSINTR_FIRMWARE+2 SYSINTR_SERIAL EQU SYSINTR_FIRMWARE+3 SYSINTR_AUDIO EQU SYSINTR_FIRMWARE+4 SYSINTR_PCMCIA_STATE EQU SYSINTR_FIRMWARE+5 SYSINTR_PCMCIA_EDGE EQU SYSINTR_FIRMWARE+6 SYSINTR_PCMCIA_LEVEL EQU SYSINTR_FIRMWARE+7 SYSINTR_PARALLEL EQU SYSINTR_FIRMWARE+8 SYSINTR_IR EQU SYSINTR_FIRMWARE+9 SYSINTR_MOUSE EQU SYSINTR_FIRMWARE+10 SYSINTR_OHCI_MDD EQU SYSINTR_FIRMWARE+11 SYSINTR_OHCI_PDD EQU SYSINTR_FIRMWARE+12 SYSINTR_USB_CLIENT EQU SYSINTR_FIRMWARE+13 SYSINTR_VTUNEPMU EQU SYSINTR_FIRMWARE+14 SYSINTR_SDMMC EQU SYSINTR_FIRMWARE+15 SYSINTR_SERIAL2 EQU SYSINTR_FIRMWARE+16 SYSINTR_ITE8152 EQU SYSINTR_FIRMWARE+17 SYSINTR_PCIA EQU SYSINTR_FIRMWARE+18 SYSINTR_PCIB EQU SYSINTR_FIRMWARE+19 SYSINTR_PCIC EQU SYSINTR_FIRMWARE+20 SYSINTR_PCID EQU SYSINTR_FIRMWARE+21 SYSINTR_SERIAL3 EQU SYSINTR_FIRMWARE+22 SYSINTR_TOUCH EQU SYSINTR_FIRMWARE+24 ;Wouldn't work. SYSINTR_TOUCH_CHANGED EQU SYSINTR_FIRMWARE+25 END 其中的大部分中断都被硬件使用了,难道就没有纯软中断吗?希望知道的大侠指点迷津,不甚感激! |
|
论坛版主
|
沙发#
发布于:2004-07-26 22:45
sysintr是ce自己定义的中断号,在系统初始化的时候和硬件中断对应起来,sysintr好像总共255(好像看到过一眼,记不清了:)),有的是用户自己定义来用的,你可以预先定义一个自己用(看了一下帮助说从SYSINTR_FIRMWARE+16开始可以定义来自己用,你可以查一下)
,也可以用api申请,多个sysintr可以共享一个硬件中断。 对于你需要的软件中断,你可以在isr中任意返回你需要的东西给系统来摸拟你需要的中断,但这也要建立在硬件的支持上,比如用某个事件的中断根据情况设置中断状态寄存器来触发另外一个中断(软中断)从而返回多种不同中断号 |
|
论坛版主
|
板凳#
发布于:2004-07-28 10:12
对不起,前面说错了,今天正好看到了
nkintr.h里面定义了最大可用的sysintr #define SYSINTR_DEVICES 8 #define SYSINTR_MAX_DEVICES 32 #define SYSINTR_MAXIMUM (SYSINTR_DEVICES+SYSINTR_MAX_DEVICES) |
|
地板#
发布于:2004-12-29 18:11
Wince5.0中扩充到了64个
|
|