设备的中断号,是由硬件决定的,还是kernel?

时间:2022-04-21 17:55:15
资料上说"设备连接了中断控制器的引脚,产生电平触发中断"
这么说,中断号应该在pc的接口设计时,就固定的吧.

问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?

2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)

9 个解决方案

#1


俺刚转到linux这边来,我只知道单片机的中断号和优先级肯定是芯片决定的,例如:8051F系列单片机,我想操作系统可以分配中断号,但是优先级应该是芯片出厂时确定的吧。

#2


1)通常设备的中断号都是固定的,用于kernal区别各种中断.
比如0是时钟中断,1是键盘中断....
但是,对于PCI总线上的设备的中断是动态分配的.
2)是滴.

#3


中断号是芯片决定了的

#4


我在kernel代码中找到很多个keyboard的

1)drivers\char\keyboard.c
2)drivers\input\keyboard\amikbd.c (这个目录下有好几个.c)
3)drivers\usb\input\usbkbd.c

这些都是什么阿

#5


中断号由硬件觉得。

就我熟悉的嵌入式来说。
一般有一个GPIO interrupt。
很多外设可以通过GPIO interrupt来触发得到扩展,
如果还不够可以继续用CPLD来接到某个GPIO管脚得到更进一步的扩展。

从软件角度来讲。
系统只会判断直接连到cpu的中断。如果是GPIO中断,那么看那个GPIO触发的。
如果是连CPLD的中断触发的,那么再判断CPLD中的那个中断源。


想要知道上面的文件是干什么的,
可以查看同目录下的 Kconfig和Makefile文件。

#6


关于中断号可以查看
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。

如果外面需要扩展更多的中断源,可以通过GPIO int。

#7


MCU里面有一个部分叫做中断控制器,它控制着中断的顺序、优先级和如何屏蔽中断。
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)

#8


资料上说"设备连接了中断控制器的引脚,产生电平触发中断"
这么说,中断号应该在pc的接口设计时,就固定的吧.  (没错)

问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?
(是的,同一台机器既可以跑windows,又可以跑linux,硬件都是一样的了,当然同种设备的中断号也一样)

2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)
(不同接口的keyboard当然使用不同接口的中断号,虽然其功能是一样的。例如所有usb设备也公用了一个PCI中断号,这没有什么冲突的,只要产生中断时,能区分到底哪个usb设备是中断源,并及时处理中断,清除中断标志位就好了。)

#9


中断号是在内核的程序里定义的了吗?

#1


俺刚转到linux这边来,我只知道单片机的中断号和优先级肯定是芯片决定的,例如:8051F系列单片机,我想操作系统可以分配中断号,但是优先级应该是芯片出厂时确定的吧。

#2


1)通常设备的中断号都是固定的,用于kernal区别各种中断.
比如0是时钟中断,1是键盘中断....
但是,对于PCI总线上的设备的中断是动态分配的.
2)是滴.

#3


中断号是芯片决定了的

#4


我在kernel代码中找到很多个keyboard的

1)drivers\char\keyboard.c
2)drivers\input\keyboard\amikbd.c (这个目录下有好几个.c)
3)drivers\usb\input\usbkbd.c

这些都是什么阿

#5


中断号由硬件觉得。

就我熟悉的嵌入式来说。
一般有一个GPIO interrupt。
很多外设可以通过GPIO interrupt来触发得到扩展,
如果还不够可以继续用CPLD来接到某个GPIO管脚得到更进一步的扩展。

从软件角度来讲。
系统只会判断直接连到cpu的中断。如果是GPIO中断,那么看那个GPIO触发的。
如果是连CPLD的中断触发的,那么再判断CPLD中的那个中断源。


想要知道上面的文件是干什么的,
可以查看同目录下的 Kconfig和Makefile文件。

#6


关于中断号可以查看
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。

如果外面需要扩展更多的中断源,可以通过GPIO int。

#7


MCU里面有一个部分叫做中断控制器,它控制着中断的顺序、优先级和如何屏蔽中断。
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)

#8


资料上说"设备连接了中断控制器的引脚,产生电平触发中断"
这么说,中断号应该在pc的接口设计时,就固定的吧.  (没错)

问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?
(是的,同一台机器既可以跑windows,又可以跑linux,硬件都是一样的了,当然同种设备的中断号也一样)

2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)
(不同接口的keyboard当然使用不同接口的中断号,虽然其功能是一样的。例如所有usb设备也公用了一个PCI中断号,这没有什么冲突的,只要产生中断时,能区分到底哪个usb设备是中断源,并及时处理中断,清除中断标志位就好了。)

#9


中断号是在内核的程序里定义的了吗?