| 数据搜索系统,热门电子元器件搜索 |
|
UM0851 数据表(PDF) 35 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
UM0851 数据表(HTML) 35 Page - STMicroelectronics |
|
35 / 245 page ![]() UM0851 Platform section Doc ID 16604 Rev 2 35/245 High level IRQ flow handlers The generic layer provides a set of pre-defined IRQ-flow methods: ● handle_level_irq(): provides a generic implementation for level-triggered interrupts ● handle_edge_irq(): provides a generic implementation for edge-triggered interrupts ● handle_simple_irq(): provides a generic implementation for simple interrupts. The simple flow handler does not call any handler/chip primitives ● handle_percpu_irq(): provides a generic implementation for per CPU interrupts. Per CPU interrupts are only available on SMP and the handler provides a simplified version without locking. The interrupt flow handlers (either predefined or architecture-specific) are assigned to specific interrupts by the architecture either during the boot up or during the device initialization. In the SPEAr architecture, at boot up time, the architecture specific code sets up the handle_level_irq flow method as the default for all the VIC interrupts. This is done in <arch/arm/mach-spearxxx/irq.c>. Below is a part of the code captured from the SPEAr300 architecture-related initialization code for VIC. void __init spear3xx_init_irq(void) { unsigned int i; do_init_irq(1); for (i = IRQ_VIC_START; i <= IRQ_VIC_END; i++) { set_irq_chip(i, &vic_chip); set_irq_handler(i, handle_level_irq); set_irq_flags(i, IRQF_VALID | IRQF_PROBE); } } Chip level hardware encapsulation The chip level hardware descriptor structure structs irq_chip contains all the direct chip relevant functions, which can be utilized by the IRQ flow implementations. ● ack() ● mask_ack() - optional, recommended for performance ● mask() ● unmask() ● retrigger() - optional ● set_type() - optional ● set_wake() - optional These primitives mean exactly what their name says: ack means ACK, masking means masking of an IRQ line, etc. It is up to the flow handler(s) to use these basic units of low- level functionality. struct irq_chip is a hardware interrupt chip descriptor described below: struct irq_chip { const char*name; unsigned int(*startup)(unsigned int irq); void (*shutdown)(unsigned int irq); void (*enable)(unsigned int irq); void (*disable)(unsigned int irq); |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |