PDF version - ARM Information Center
PDF version - ARM Information Center
PDF version - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
프로세서 예외 처리예제 6-3 <strong>ARM</strong>v6용 재진입 인터럽트 (비벡터 인터럽트)PRESERVE8AREA INTERRUPT, CODE, READONLYIMPORT C_irq_handlerIMPORT identify_and_clear_sourceIRQ_HandlerSUB lr, lr, #4SRSDB sp!,#31 ; Save LR_irq and SPSR_irq to System mode stackCPS #031; Switch to System modePUSH {R0-R3,R12} ; Store other AAPCS registersAND R1, sp, #4SUBsp, sp, R1PUSH {R1, lr}BLidentify_and_clear_sourceCPSIE i ; Enable IRQBLC_irq_handlerCPSID i; Disable IRQPOP {R1,lr}ADDsp, sp, R1POP {R0-R3, R12} ; Restore registersRFEIA sp! ; Return using RFE from System mode stackEND이러한 예제에서는 FIQ가 영구적으로 활성화 상태인 것으로 가정합니다.어셈블리 언어의 예제 인터럽트 처리기인터럽트 처리기는 빠르게 실행될 수 있도록 어셈블리 언어로 작성되는 경우가많습니다. 다음 단원에는 몇 가지 예제가 있습니다.• 단일 채널 DMA 전송• 6-15페이지의 이중 채널 DMA 전송• 6-17페이지의 인터럽트 우선순위• 6-18페이지의 컨텍스트 전환단일 채널 DMA 전송6-15페이지의 예제 6-4에서는 메모리 전송 (소프트 DMA) 에 대해 인터럽트 구동I/O를 수행하는 인터럽트 처리기를 보여 줍니다. 이 코드는 FIQ 처리기로, 뱅크FIQ 레지스터를 사용하여 인터럽트 간의 상태를 유지합니다. 이 코드는 0x1C 위치에 배치하는 것이 가장 좋습니다.6-14 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0203IKNon-ConfidentialUnrestricted Access