您的位置:首页 > 运维架构 > Linux

omap4 linux中断

2014-02-13 11:52 344 查看
irq_handler(entry-armv.S)->arch_irq_handler_default(entry-macro-multi.S)->asm_do_IRQ(arch/arm/kernel/irq.c)->handle_IRQ(irq.c: 参数是irq号)->generic_handle_irq(kernel/irq/irqdesc.c)->generic_handle_irq_desc(include/linux/irqdesc.h)->handle_percpu_devid_irq(kernel/irq/chip.c:每个中断号对应一个)->
desc->action->handler(request_irq将注册这个)



gic_init_irq(MACHINE_START:arch/arm/mach-omap2/board-omap4panda.c)->gic_init(arch/arm/mach-omap2/omap4-common.c)->gic_dist_init(common/gic.c)->irq_set_chip_and_handler(common/gic.c: handle_percpu_devid_irq)



irq number在arch_irq_handler_default中调用get_irqnr_and_base访问gic得到. 寄存器的描述参考:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388i/index.html的cotex_a9的mpcore trm的interrupt controller的interrupt interface register
descriptions. 可惜也没有详细的寄存器的介绍。可能其他gic的文档里有吧。



http://hnwwff.blog.163.com/blog/static/32169092201142473043559/: request_irq

http://liu1227787871.blog.163.com/blog/static/205363197201281011450559/:asm_do_irq
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: