Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

16312
2027
233849


태그 : exception 요약보기전체보기목록닫기

1 2 3

[Arm프로세서] Armv7: 익셉션 핸들러란

처음 익셉션 벡터 테이블을 분석하면 다음과 같은 의문이 생기는 경우가 많습니다.      "이와 관련된 코드는 어디에 구현돼 있을까?"이 질문에 답을 하려면 익셉션 벡터와 관련된 코드가 무엇인지 알아야 하는데, 이를 익셉션 벡터 핸들러라고 합니다. 익셉션 벡터 핸들러는 익셉션의 종류 별로 소프트웨어적으로 처리되는 목적...

[Arm프로세서] Armv7: 익셉션 벡터 테이블이란

익셉션이 발생하면 ARM 프로세서는 익셉션 별로 지정된 주소로 프로그램 카운터를 브랜치합니다. 익셉션 별로 지정된 주소를 익셉션 벡터라고 하는데, 익셉션 벡터는 8개의 연속된 4바이트 단위의 주소로 구성돼 있습니다. 이 8개의 익셉션 벡터를 익셉션 벡터 테이블이라고 합니다. 먼저 다음 표를 보면서 익셉션 벡터 테이블을 배워 봅시다. 표...

[Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개

Armv8 문서를 보면 Arm 코어에서 하드웨어적으로 처리하는 동작을 슈도 코드로 표기한 부분을 볼 수 있습니다.문서 이름과 해당 절은 다음과 같습니다.   * 문서 이름: DDI0487Fc_armv8_arm.pdf   * 해당 절       Part J Architectural P...

[ARM프로세서] ARMv7: 익셉션의 종류별 ARM 동작 모드 정리

이전 절에서 배운 바와 같이, ARM 코어는 익셉션을 유발할 때 익셉션의 종류에 따라 ARM의 동작 모드를 변경합니다. 익셉션을 다른 관점으로 보면, 익셉션은 "ARM 동작 모드를 변경하는 유발 인자"라고 볼 수 있는데, 다음 표에서 익셉션의 종류 별로 변경되는 ARM 동작 모드를 확인할 수 있습니다.표 8.2 익셉션의 종류와 변경되는 ARM 동작 모드...

[ARM프로세서] ARMv7: Undefined Instruction 익셉션을 유발할 때의 ARM 코어의 세부 동작

이어서 Undefined Instruction 익셉션이 발생하는 전체 흐름을 살펴보면서, 세부 동작을 알아봅시다. 그림 8.9 Undefined Instruction 익셉션을 유발할 때 변경되는 레지스터 그림 8.9는 Undefined Instruction 익셉션의 전체 실행 흐름인데, 그림의 가운데 부분을 보면 ARM 코어가 하드웨어...

[ARM프로세서] ARMv7: 데이터 어보트(Data Abort)를 유발할 때 ARM 코어의 세부 동작

이어서 다음 그림을 보면서 데이터 어보트가 발생할 때 ARM 코어에서 이를 처리하는 세부 과정을 알아봅시다.  그림 8.8 데이터 어보트 익셉션을 유발할 때 변경되는 레지스터  ARM 코어가 데이터 어보트를 감지하면, 하드웨어적으로 레지스터를 어떻게 변경하는지, 그림의 가운데 부분에 보이는 슈도 코드를 분석하면서 알아...

[ARM프로세서] ARMv7: 프리페치 어보트(Prefetch Abort)가 발생할 때 ARM 코어의 세부 동작

프리패치 어보트가 발생하는 전체 흐름을 살펴보면서, 세부 동작을 알아봅시다. 그림 8.7 프리페치 어보트 익셉션을 유발할 때 변경되는 레지스터 그림 8.7은 8.2 절에서 봤던 그림과 비슷해 보입니다. 한 가지 차이점은 그림의 가운데 부분과 같이 ARM 프로세서 내부에서 처리되는 동작을 슈도 코드로 표현한 것입니다. 슈도 코드는 하드웨...

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

이번에는 다음 그림을 보면서 익셉션 타입 별로 익셉션이 처리되는 전체 흐름을 정리해봅시다. 그림 8.6 익셉션의 종류 별 전체 실행 흐름먼저 그림의 가장 윗 부분은 메모리 어보트 타입의 실행 흐름입니다. ARM 코어가 명령어를 실행하는 과정에서 유발되는 익셉션인데, 소프트웨어적으로 치명적인 오류가 있을 때 유발됩니다. 대부분 운영체제에서 익셉션...

[ARM프로세서] ARMv7: 소프트웨어 인터럽트 익셉션의 실행 흐름

[ARM프로세서] ARMv7: SW 인터럽트 익셉션의 실행 흐름‘svc’ 명령어를 실행하면 ARM 코어는 소프트웨어적으로 익셉션을 유발합니다. ARM 코어가 'svc' 명령어를 디코딩하면 이를 익셉션의 한 종류로 감지하는데, ARM 스팩 문서에서는 이를 슈퍼바이저 콜(Supervisor Call)이라고 부릅니다. 'svc' 명령어를 실행하면, 외부 하드...

[ARM프로세서] ARMv7: 메모리 어보트 타입 익셉션의 실행 흐름

메모리 어보트 타입 익셉션이 발생하면 익셉션 핸들러에서 디버깅 정보를 출력하고 시스템을 리셋시킵니다. 소프트웨어적으로 시스템이 치명적인 오류가 있는 상태로 판단하기 때문입니다.다음 그림을 보면서 메모리 어보트 타입 익셉션의 전체 실행 흐름을 알아봅시다.   그림 8.2 메모리 어보트 타입 익셉션이 발생할 때 전체 흐름익셉션의 ...
1 2 3