EXCEPTION
Posts
30 posts[Arm프로세서] Armv7: 익셉션 핸들러란
처음 익셉션 벡터 테이블을 분석하면 다음과 같은 의문이 생기는 경우가 많습니다. "이와 관련된 코드는 어디에 구현돼 있을까?" 이 질문에 답을 하려면 익셉션 벡터와 관련된 코드가 무엇인지 알아야 하는데, 이를 익셉션 벡터 핸들러라고 합니다. 익셉션 벡터 핸들러는 익셉션의 종류 별로 소프트웨어적으로 처리되는 목적의 명령어로 구성돼 있는데 익셉션 벡터 주소에서 브랜치됩니다. 익셉션 핸들러 코드 분석하기 이제부터 오픈 소스 기반의 운영체제인 리눅스 커널에서 확인된 익셉션 벡터와 익셉션 백터 핸들러의 코드를 보면서 배운 내용을 다져봅시다. 다음은 익셉션 벡터와 익셉션 핸들러를 브랜치하는 코드입니다. 01 ffff0000: ea0003ff b 0xffff1004
[Arm프로세서] Armv7: 익셉션 벡터 테이블이란
익셉션이 발생하면 ARM 프로세서는 익셉션 별로 지정된 주소로 프로그램 카운터를 브랜치합니다. 익셉션 별로 지정된 주소를 익셉션 벡터라고 하는데, 익셉션 벡터는 8개의 연속된 4바이트 단위의 주소로 구성돼 있습니다. 이 8개의 익셉션 벡터를 익셉션 벡터 테이블이라고 합니다. 먼저 다음 표를 보면서 익셉션 벡터 테이블을 배워 봅시다. 표 8.4 익셉션 벡터 테이블 표의 왼쪽 행은 익셉션 벡터 베이스 주소 기준의 오프셋인데, 오른쪽 행을 보면 오프셋 별에 대응되는 익셉션의 종류가 보입니다. 이로써, 익셉션 벡터의 주소는 익셉션의 종류에 따라 다르다는 점을 확인할 수 있습니다. 가장 왼쪽 행의 윗 부분은 '익셉션 벡터 테이블의 베이스' 주소인데, 먼저 이 내용부터 알아봅시다. ARM 프로세서는 익셉션의
[Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개
Armv8 문서를 보면 Arm 코어에서 하드웨어적으로 처리하는 동작을 슈도 코드로 표기한 부분을 볼 수 있습니다.문서 이름과 해당 절은 다음과 같습니다. * 문서 이름: DDI0487Fc_armv8_arm.pdf * 해당 절 Part J Architectural Pseudocode J1.1 Pseudocode for AArch64 operation J1-7612 J1.1.1 aarch64/debug J1.1.2 aarch64/exceptions J1.2 Pseudocode for AArch32 operation 샘플 코드에 익숙한 소프트웨어 개발자들에게 샘플 혹은 슈도 코드는 유익한 정보입니다.특히 하이퍼바이저나 트러스트존과 같은 Arm Extention 기능의 동작 원리
[ARM프로세서] ARMv7: 익셉션의 종류별 ARM 동작 모드 정리
이전 절에서 배운 바와 같이, ARM 코어는 익셉션을 유발할 때 익셉션의 종류에 따라 ARM의 동작 모드를 변경합니다. 익셉션을 다른 관점으로 보면, 익셉션은 "ARM 동작 모드를 변경하는 유발 인자"라고 볼 수 있는데, 다음 표에서 익셉션의 종류 별로 변경되는 ARM 동작 모드를 확인할 수 있습니다. 표 8.2 익셉션의 종류와 변경되는 ARM 동작 모드 표 8.2의 가장 왼쪽 부분은 익셉션의 종류, 가운데 부분은 해당 익셉션이 발생할 때 변경되는 ARM의 동작 모드를 나타냅니다. 가장 왼쪽 부분은 ARM 동작 모드를 담고 있는 CPSR 레지스터의 [4:0] 비트 정보입니다. ARM의 동작 모드를 변경하려면 CPSR 레지스터의 [4:0] 비트를 변경하면 됩니다. Written by <디버깅을 통해
![[굿즈] 웹툰 『악역의 엔딩은 죽음뿐』 트럼프 카드 : 아는 장면이라도 플레잉 카드로 수집하는 이 맛](https://img.zoomtrend.com/2026/06/05/1780650880-SE-1c22cf84-12af-4fb2-95c5-c6354bd47dfd.jpg)


