首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

request_irq函数中 flags参数的疑问

2013-03-14 
求助request_irq函数中 flags参数的疑问request_irq 中flags设为0表示什么意思在spi_s3c24xx.c中 err re

求助 request_irq函数中 flags参数的疑问
request_irq 中flags设为0表示什么意思
在spi_s3c24xx.c中 err = request_irq(IRQ_SPI1, s3c24xx_spi_irq, 0, pdev->name, hw);这句话什么意思

[解决办法]
中断的属性标志,你搜一下IRQF_SHARED这个宏,相邻的一些值都是针对flags进行设置的。具体怎么设看自己需要了。
request_irq主要是向系统申请一个中断,并将中断号IRQ_SPI1和中断处理函数s3c24xx_spi_irq关联起来,pdev->name是传入的名字——随便起。hw是传入到处理函数中的的一个结构体指针,这个主要是在处理中断的时候获取hw里面的一些信息。

在后面发送或者接收数据时,等你是能中断后,s3c24xx_spi_irq里面就可以处理数据了。


[解决办法]


/*
 * These flags used only by the kernel as part of the
 * irq handling routines.
 *
 * IRQF_DISABLED - keep irqs disabled when calling the action handler
 * IRQF_SAMPLE_RANDOM - irq is used to feed the random generator
 * IRQF_SHARED - allow sharing the irq among several devices
 * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
 * IRQF_TIMER - Flag to mark this interrupt as timer interrupt
 * IRQF_PERCPU - Interrupt is per cpu
 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
 *                registered first in an shared interrupt is considered for
 *                performance reasons)
 */
#define IRQF_DISABLED0x00000020
#define IRQF_SAMPLE_RANDOM0x00000040
#define IRQF_SHARED0x00000080
#define IRQF_PROBE_SHARED0x00000100
#define IRQF_TIMER0x00000200
#define IRQF_PERCPU0x00000400
#define IRQF_NOBALANCING0x00000800
#define IRQF_IRQPOLL0x00001000

热点排行