找回密码
 注册
搜索
查看: 1917|回复: 2

[讨论] IRQF_DISABLED何时触发?

[复制链接]
发表于 2012-9-24 20:54:39 | 显示全部楼层 |阅读模式
如request_irq(IRQ_LCDC_INT, lcdc_isr, IRQF_DISABLED, "LCDC", &lcdc);
什么时候才执行lcdc_isr, 呢?

有以下类型,不是电平高低或边沿触发,其他类型何时触发的呢?
中断标志位
#define IRQF_DISABLED 0x00000020 /*中断禁止*/

#define IRQF_SAMPLE_RANDOM 0x00000040 /*供系统产生随机数使用*/

#define IRQF_SHARED 0x00000080 /*在设备之间可共享*/

#define IRQF_PROBE_SHARED 0x00000100/*探测共享中断*/

#define IRQF_TIMER 0x00000200/*专用于时钟中断*/

#define IRQF_PERCPU 0x00000400/*每CPU周期执行中断*/

#define IRQF_NOBALANCING 0x00000800/*复位中断*/

#define IRQF_IRQPOLL 0x00001000/*共享中断中根据注册时间判断*/

#define IRQF_ONESHOT 0x00002000/*硬件中断处理完后触发*/

#define IRQF_TRIGGER_NONE 0x00000000/*无触发中断*/

#define IRQF_TRIGGER_RISING 0x00000001/*指定中断触发类型:上升沿有效*/

#define IRQF_TRIGGER_FALLING 0x00000002/*中断触发类型:下降沿有效*/

#define IRQF_TRIGGER_HIGH 0x00000004/*指定中断触发类型:高电平有效*/

#define IRQF_TRIGGER_LOW 0x00000008/*指定中断触发类型:低电平有效*/

#define IRQF_TRIGGER_MASK (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW |
  IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)

#define IRQF_TRIGGER_PROBE 0x00000010/*触发式检测中断*/
 楼主| 发表于 2012-9-25 09:18:06 | 显示全部楼层
是这种触发方式吗:
http://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%B7

消息信号(Message-signalled)
消息信号式中断并不直接通过对特定物理线路进行断言/发送脉冲来通知一个中断。这类中断设备通过在某种通讯媒介(一般是计算机总线)上发送一个有逻辑含义的消息(一串/排比特码)来实现中断请求。中断消息可以是通讯总线协议中专门为中断预留的类型,也可以是一个现有的类型,如内存写操作。
消息信号式中断在行为上与边沿触发中断类似,因为它们都是发送一个瞬间的信号。中断处理软件的对此类中断的处理方式也类似于边沿触发中断:如果两个消息相同,则可以合并。消息信号中断向量(中断处理程序的地址)也可以共享,就如同物理线路可以被共享一般。
点评回复

使用道具 举报

 楼主| 发表于 2012-11-15 18:55:28 | 显示全部楼层
如request_irq flag可以指定触发方式和处理方式,有些仅仅指定了处理方式,而没有指定触发方式? IRQF_DISABLED是快速中断,发生时会屏蔽其他中断,但是何时触发呢????
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 13:52 , Processed in 0.067420 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表