这么说,中断号应该在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)是滴.
比如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
这些都是什么阿
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文件。
就我熟悉的嵌入式来说。
一般有一个GPIO interrupt。
很多外设可以通过GPIO interrupt来触发得到扩展,
如果还不够可以继续用CPLD来接到某个GPIO管脚得到更进一步的扩展。
从软件角度来讲。
系统只会判断直接连到cpu的中断。如果是GPIO中断,那么看那个GPIO触发的。
如果是连CPLD的中断触发的,那么再判断CPLD中的那个中断源。
想要知道上面的文件是干什么的,
可以查看同目录下的 Kconfig和Makefile文件。
#6
关于中断号可以查看
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。
如果外面需要扩展更多的中断源,可以通过GPIO int。
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。
如果外面需要扩展更多的中断源,可以通过GPIO int。
#7
MCU里面有一个部分叫做中断控制器,它控制着中断的顺序、优先级和如何屏蔽中断。
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)
#8
资料上说"设备连接了中断控制器的引脚,产生电平触发中断"
这么说,中断号应该在pc的接口设计时,就固定的吧. (没错)
问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?
(是的,同一台机器既可以跑windows,又可以跑linux,硬件都是一样的了,当然同种设备的中断号也一样)
2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)
(不同接口的keyboard当然使用不同接口的中断号,虽然其功能是一样的。例如所有usb设备也公用了一个PCI中断号,这没有什么冲突的,只要产生中断时,能区分到底哪个usb设备是中断源,并及时处理中断,清除中断标志位就好了。)
这么说,中断号应该在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)是滴.
比如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
这些都是什么阿
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文件。
就我熟悉的嵌入式来说。
一般有一个GPIO interrupt。
很多外设可以通过GPIO interrupt来触发得到扩展,
如果还不够可以继续用CPLD来接到某个GPIO管脚得到更进一步的扩展。
从软件角度来讲。
系统只会判断直接连到cpu的中断。如果是GPIO中断,那么看那个GPIO触发的。
如果是连CPLD的中断触发的,那么再判断CPLD中的那个中断源。
想要知道上面的文件是干什么的,
可以查看同目录下的 Kconfig和Makefile文件。
#6
关于中断号可以查看
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。
如果外面需要扩展更多的中断源,可以通过GPIO int。
include/asm-arm/arch-pxa/irqs.h
这些中断号都是硬件定义好的。
如果外面需要扩展更多的中断源,可以通过GPIO int。
#7
MCU里面有一个部分叫做中断控制器,它控制着中断的顺序、优先级和如何屏蔽中断。
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)
GPIO中断都是一个优先级的,基本上在MCU中的都是比较低的优先级,
这是硬件层,至于中断号是什么,我也不知道:)
#8
资料上说"设备连接了中断控制器的引脚,产生电平触发中断"
这么说,中断号应该在pc的接口设计时,就固定的吧. (没错)
问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?
(是的,同一台机器既可以跑windows,又可以跑linux,硬件都是一样的了,当然同种设备的中断号也一样)
2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)
(不同接口的keyboard当然使用不同接口的中断号,虽然其功能是一样的。例如所有usb设备也公用了一个PCI中断号,这没有什么冲突的,只要产生中断时,能区分到底哪个usb设备是中断源,并及时处理中断,清除中断标志位就好了。)
这么说,中断号应该在pc的接口设计时,就固定的吧. (没错)
问题
1)比如ps2口的keyboard. 在windows和在linux下,硬件产生的中断号应该时一样的?
(是的,同一台机器既可以跑windows,又可以跑linux,硬件都是一样的了,当然同种设备的中断号也一样)
2)是否意味着kernel里,要有多套keyboard driver分别对应多个pc接口?
(比如ps2,at,usb)
(不同接口的keyboard当然使用不同接口的中断号,虽然其功能是一样的。例如所有usb设备也公用了一个PCI中断号,这没有什么冲突的,只要产生中断时,能区分到底哪个usb设备是中断源,并及时处理中断,清除中断标志位就好了。)
#9
中断号是在内核的程序里定义的了吗?