引用 11 楼 xqhrs232 的回复:
"SysIntr"=dword:11? ;--------这个表示的应该是17号这个中断吧!
不是,
看我的BSP中对USB的中断定义来跑一圈:
1、SMDK2416\Src\Inc\bsp_cfg.h(202):
#define SYSINTR_OHCI (SYSINTR_FIRMWARE+1) 定义了一个系统中断号
2、SMDK2416\Src\Kernel\Oal\intr.c(52):
OALIntrStaticTranslate(SYSINTR_OHCI, IRQ_USBH); 把物理中断号跟系统中断号关联
3、SMDK2416\Src\Inc\s3c2450_intr.h(107):
#define IRQ_USBH 26 传说中的物理中断号
4、注册表中:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]
"Irq"=dword:1a ; 26 物理中断号IRQ
"SysIntr"=dword:11 ; (SYSINTR_FIRMWARE+1) 系统中断号 SysIntr
所以11不管是十进制还是16进制他都只是通过SYSINTR_FIRMWARE+1 得到的系统中断号(虚拟中断号)
对应的物理中断号(也是自己定义的)应该是IRQ_USBH = 26
------------------------------------------------------------------
同样我看SD卡的驱动和注册表发现
SD卡驱动也用到了GetIsrInfo 和 GetWindowInfo 来获得注册表中的中断
SD卡的注册表信息是:
"MemBase"=dword:4AC00000 用的这个键值名称
"MemLen"=dword:100 这个怎么这么大??您的"MemLen"=dword:40 是怎么定义的?
"Irq"=dword:15 ; 21
这个在SMDK2416\Src\Inc\bsp_cfg.h下查,也是物理中断号
#define IRQ_SDI_0 21 对应 0x15
|