10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

프로세서 예외 처리재진입 인터럽트 처리기에서는 IRQ 상태를 저장하고, 프로세서 모드를 전환하며,중첩된 서브루틴이나 C 함수로 분기하기 전에 새 프로세서 모드의 상태를 저장해야 합니다. 또한 LDRD 또는 STRD 명령어나 8바이트로 정렬된 스택 할당 데이터를사용할 수 있는 AAPCS와 호환되는 컴파일된 C 코드를 호출하기 전에 스택이 새프로세서 모드에 대해 8바이트로 정렬되었는지 확인해야 합니다. 스택 정렬 문제에 대한 자세한 내용은ABI for the <strong>ARM</strong> Architecture Advisory Note 1 - SP는 AAPCS준수 함수에 진입 시 8바이트로 정렬되어야 합니다 (<strong>ARM</strong> IHI 0046A) 를 참조하십시오.C에서 __irq 키워드를 사용하면 재진입 인터럽트 처리기에서 필요로 하는 SPSR이 저장 및 복원되지 않으므로 어셈블리 언어로 최상위 수준 인터럽트 처리기를작성해야 합니다.<strong>ARM</strong>v4 이상의 경우에는 권한 액세스가 필요하면 시스템 모드로 전환할 수 있습니다. 자세한 내용은 6-7페이지의 시스템 모드를 참조하십시오.참고이 방법은 IRQ 및 FIQ 인터럽트 모두에 사용할 수 있습니다. 그러나 FIQ 인터럽트는 가능한 한 빠르게 처리되어야 하기 때문에 일반적으로 인터럽트 원인이 하나만 있을 수 있으며 따라서 재진입을 위해 FIQ 인터럽트를 제공할 필요는 없습니다.IRQ 처리기에서 인터럽트를 안전하게 활성화하는 데 필요한 단계는 다음과 같습니다.1. 복귀 주소를 생성하여 IRQ 스택에 저장합니다.2. 작업 레지스터, 호출 수신자가 저장하지 않는 레지스터 및 IRQ 모드 SPSR을 저장합니다.3. 인터럽트의 원인을 제거합니다.4. 시스템 모드로 전환하고 IRQ를 비활성화합니다.5. 스택이 8바이트로 정렬되어 있는지 확인하고 필요한 경우 조정합니다.6. 사용자 모드 SP에서 사용되는 사용자 모드 LR과 조정 (아키텍처 v4 또는v5TE의 경우 0 또는 4) 을 저장합니다.7. 인터럽트를 활성화하고 C 인터럽트 처리기 함수를 호출합니다.8. C 인터럽트 처리기 함수가 복귀할 때 인터럽트를 비활성화합니다.6-12 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!