Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

34120
1703
402249


[ARM프로세서] ARMv7: 익셉션(Exception)의 전체 실행 흐름 정리 Armv7: 익셉션(Exception)

이번에는 다음 그림을 보면서 익셉션 타입 별로 익셉션이 처리되는 전체 흐름을 정리해봅시다.

 
그림 8.6 익셉션의 종류 별 전체 실행 흐름

먼저 그림의 가장 윗 부분은 메모리 어보트 타입의 실행 흐름입니다. ARM 코어가 명령어를 실행하는 과정에서 유발되는 익셉션인데, 소프트웨어적으로 치명적인 오류가 있을 때 유발됩니다. 대부분 운영체제에서 익셉션 벡터 핸들러에서 시스템을 리셋시키거나 익셉션을 유발한 프로세스를 종료시키는 동작을 수행합니다.

이어서 그림의 가운데 부분을 보겠습니다. 외부 하드웨어에서 인터럽트가 발생하면 ARM 코어는 IRQ/FIQ 익셉션을 유발합니다. 운영체제 관점으로는 인터럽트 타입 익셉션은 하나의 기능으로 동작하며, 익셉션 벡터 핸들러에서는 인터럽트 서비스 루틴을 처리하는 코드를 실행합니다.

마지막으로 그림의 가장 아랫 부분을 따라가 봅시다. 'svc'라는 명령어를 실행하면 ARM 코어는 소프트웨어적으로 익셉션을 유발하며, 이 과정으로 시스템 콜이 발생합니다. 시스템 콜이 발생하면 소프트웨어 익셉션 벡터 핸들러를 통해 시스템 콜 핸들러 함수가 호출됩니다.

Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자





덧글

댓글 입력 영역