interrupt controller에서 IRQ나 FIQ 발생시키면.. cpu 에선 entry-armv.S ??

cho6005의 이미지

interrupt controller에서 IRQ나 FIQ 발생시키면.. cpu 에서는 어떤일이 일어날까요?

entry-armv.S 라는 파일에서

// Interrupt handling. preserve r7, r8, r9
 
    .macro irq_handler
    get_irqnr_preamble r5, lr
1:  get_irqnr_and_base r0, r6, r5, lr
    movne r1, sp
    @
    @ routine called with r0 = irq number, r1 = struct pt_regs *
    @
    adrne lr, 1b
    bne asm_do_IRQ

이놈이, interrupt controller에서 IRQ나 FIQ interrupt가 발생하면 수행되는 루틴인가요??
그래서 irqn number와 레지스터의 집합인 pt_regs를 인자로.. asm_do_IRQ 함수를 호출하여
request_irq에서 등록한 handler 함수를 처리 하게 되는 걸까요?
궁금증 해결 부탁드려요~

bushi의 이미지

IRQ exception에 대해서는 대략 그렇습니다.

OTL

cho6005의 이미지

맞는 말이라는 건가요?ㅎㅎ