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.

프로세서 예외 처리유형의 인터럽트에 대한 처리기에서 뱅크 FIQ 레지스터를 사용하지 않는지 확인해야 할 수 있으며, 다른 일반 IRQ 처리기의 경우 R8-R12를 스택에 저장해야 합니다.또한 마이크로컨트롤러 프로필은 우선순위가 높은 NMI (마스크할 수 없는 인터럽트) 도 제공하는데, 이 인터럽트는 비활성화할 수 없습니다.간단한 C 예외 처리기마이크로컨트롤러 프로필용 예외 처리기는 시스템 상태를 저장하거나 복원할 필요가 없으며 일반적인 ABI 호환 C 함수로 기록될 수 있습니다. 그러나 __irq 키워드를 사용하여 함수를 인터럽트 루틴으로 식별하는 것이 좋습니다 (예제 6-18 참조) .예제 6-18 간단한 C 예외 처리기__irq void SysTickHandler (void){printf ("----- SysTick Interrupt -----") ;}8바이트 스택 정렬<strong>ARM</strong> 아키텍처용 ABI (응용 프로그램 바이너리 인터페이스) 에서 스택은 여러 소스 파일의 함수 간 호출과 같은 모든 외부 인터페이스에서 8바이트로 정렬되어야합니다. 그러나 코드에서는 리프 함수 등에서 8바이트 스택 정렬을 내부적으로유지할 필요가 없습니다. 즉, IRQ가 발생할 때 스택이 올바르게 8바이트로 정렬되지 않을 수도 있습니다.<strong>ARM</strong>v7-M 프로세서에서는 예외가 발생할 때 스택 포인터를 자동으로 정렬할 수있습니다. 주소 0xE000ED14의 구성 제어 레지스터에서 STKALIGN (비트 9) 을 설정하여 이 동작을 활성화할 수 있습니다.<strong>ARM</strong>v6-M 프로세서는 이 동작을 항상 활성화합니다. 그러나 이미지가<strong>ARM</strong>v7-M 프로세서와 호환되도록 STKALIGN (비트 9) 을 수동으로 설정하는 것이 좋습니다.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 6-37Unrestricted AccessNon-Confidential

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

Saved successfully!

Ooh no, something went wrong!