How many instructions does the Linux kernel need to handle interruption on the A9 cortex?

I would estimate the number of operation codes, which require a single core ARM cortex A9for IRQ processing.

Assuming I'm working with the Linux kernel 3.4, how many opcodes are required to call irqand execute irq_handler?

+4
source share
2 answers

The question is how to calculate the interrupt delay in Linux. At the very least, you might be wondering how long it will take before the interruption starts. We will ignore this aspect irqshere.

a GPIO . GPIO , , . CE link . (, IMX) -, / -. , (. ).

entry-armv.S. , , .config. , , , SMP .. entry-armv.S. , , __irq_usr, __irq_svc. , irq_handler. _irq_usr cmpxchg, ARM .config, . - IRQ . mach/entry-macro.S, . irq .

, - . , , , , ​​ objdump --disassemble vmlinux . irq_handler, IRQ-.

, TRACE_IRQFLAGS. , Cortex A9, make menuconfig ( /TRACE_IRQFLAGS). , .

,

  • User/SVC.
  • .
  • , (, stm/ldm), .
  • ISR. Alsa , , Linux.
  • ISR.

irq. , , , irq ; , / irq. , , .

, irq, irq / . , a FIFO , IRQ FIFO , FIFO_Size x BPS, FIFO.

FIQ , , , !

: Cortex A9 B. ARM , / , . , Linux ; ( ) , .

+7

, - , , ​​ , ARM.

, , , .

, , .

+6

All Articles