what is happening after request_irq()? > How a particula...">

What does request_irq () do inside?

As I know, it "selects an interrupt line", but

> what is happening after request_irq()?
> How a particular handler is getting called on receiving interrupt?

Can someone explain this with snipet code?

+4
source share
1 answer

what happens after request_irq ()?

The device driver registers an interrupt handler and includes the specified interrupt line for processing by calling request_irq ().

call flow: -

  • request_irq () -> setup_irq () to register struct irqaction.
  • setup_irq () -> start_irq_thread () to create a kernel thread to serve the interrupt string.

do_irqd(). , - .

request_irq() ISR ( ) start_irq_thread(). start_irq_thread() , ISR.

?

, PIC CPU.

PIC , CPU ( ). "", ( 00h FFh, 0 255 ) CPU. .

. . ISR ( IRQ). - . ".

http://wiki.osdev.org/Interrupts

+6

Source: https://habr.com/ru/post/1664390/


All Articles