본문 바로가기

Programming/ARM

irq 와 fiq 의 차이점

원문 : http://blog.naver.com/PostView.nhn?blogId=nhi1999&logNo=100036266880&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView




원문요약


IRQ : Interrupt ReQuest

FIQ : Fast Interrupt reQuest


arm 에서 FIQ 가 IRQ 보다 빠른 이유 1)


전용 register 가 많아서 mode 전환시 stack 으로 store 하는 시간 절약


    -----------------------------------------------------

    User        FIQ     Super   Abort   IRQ     Undefined

    -----------------------------------------------------

    r0          .       .       .       .       .

    r1          .       .       .       .       .

    r2          .       .       .       .       .

    r3          .       .       .       .       .

    r4          .       .       .       .       .

    r5          .       .       .       .       .

    r6          .       .       .       .       .

    r7          .       .       .       .       .

    r8          r8_fiq  .       .       .       .

    r9          r9_fiq  .       .       .       .

    r10         r10_fiq .       .       .       .

    r11         r11_fiq .       .       .       .

    r12         r12_fiq .       .       .       .

    r13         r13_fiq r13_svc r13_abt r13_irq r13_und

    r14         r14_fiq r14_svc r14_abt r14_irq r14_und

    r15(PC)     .       .       .       .       .

    -----------------------------------------------------


arm에서 FIQ 가 IRQ 보다 빠른 이유 2)


        Address         Exception                     Mode on entry

        -----------------------------------------------------

        0x0000.0000     Reset                           Supervisor

        0x0000.0004     Undefined Instruction      Undefined

        0x0000.0008     Software Interrupt           Supervisor

        0x0000.000C     Abort(prefetch)              Abort

        0x0000.0010     Abort(data)                    Abort

        0x0000.0014     --reserved--                 --

        0x0000.0018     IRQ                              IRQ

        0x0000.001C     FIQ                              FIQ


interrupt vector table 에서 끝에 있어서 jump 하지 않고, 곧 바로 0x0000_0020 부터 handler code 를 구현해 넣을 수 있음

'Programming > ARM' 카테고리의 다른 글

arm interrupt mask / unmask 의 의미  (0) 2019.01.11
arm sysmmu 와 mmu 의 차이  (0) 2019.01.11
PMU - Performance Monitoring Unit  (0) 2018.05.14
irq 용어  (0) 2018.04.03
ARM 의 TLB 운용에 대한 간단 정리  (0) 2014.05.20