10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!