Guillermo Austin Kim
Posts
998 posts[ARM프로세서] ARMv7: 익셉션 종류 별 레지스터 변경
이전 포스트에서 익셉션의 전체 흐름을 살펴봤는데, 그 핵심 내용은 다음과 같이 요약할 수 있습니다. “ARM 프로세서는 익셉션을 감지해 익셉션의 종류 별로 지정된 주소로 프로그램 카운터로 브랜치한다.” 이 내용을 읽으면 "이 동작이 소스 코드로 어떻게 구현됐는지 확인할 수 있을까?"란 의문이 생길 수 있습니다. 하지만 이 동작은 ARM 코어의 내부에서 하드웨어적으로 동작하는 부분이라 소스 코드를 분석하면서 이 내용을 숙지할 수 없습니다. 예제 소스를 분석하면서 기본 동작 원리를 배우는데 익숙한 소프트웨어 개발자들에게는 이런 내용을 배우기 어려운 것이 사실입니다. 이번 절에서는 하드웨어적으로 처리되는 부분을 '슈도 코드'(의사 코드)를 활용해 설명합니다. 여기서 '하드웨어적으로 처리되는
[ARM프로세서] ARMv7: 익셉션(Exception)의 전체 실행 흐름 정리
이번에는 다음 그림을 보면서 익셉션 타입 별로 익셉션이 처리되는 전체 흐름을 정리해봅시다. 그림 8.6 익셉션의 종류 별 전체 실행 흐름 먼저 그림의 가장 윗 부분은 메모리 어보트 타입의 실행 흐름입니다. ARM 코어가 명령어를 실행하는 과정에서 유발되는 익셉션인데, 소프트웨어적으로 치명적인 오류가 있을 때 유발됩니다. 대부분 운영체제에서 익셉션 벡터 핸들러에서 시스템을 리셋시키거나 익셉션을 유발한 프로세스를 종료시키는 동작을 수행합니다. 이어서 그림의 가운데 부분을 보겠습니다. 외부 하드웨어에서 인터럽트가 발생하면 ARM 코어는 IRQ/FIQ 익셉션을 유발합니다. 운영체제 관점으로는 인터럽트 타입 익셉션은 하나의 기능으로 동작하며, 익셉션 벡터 핸들러에서는 인터럽트 서비스 루틴을 처리하는 코드를 실
[ARM프로세서] ARMv7: 소프트웨어 인터럽트 익셉션의 실행 흐름
[ARM프로세서] ARMv7: SW 인터럽트 익셉션의 실행 흐름 ‘svc’ 명령어를 실행하면 ARM 코어는 소프트웨어적으로 익셉션을 유발합니다. ARM 코어가 'svc' 명령어를 디코딩하면 이를 익셉션의 한 종류로 감지하는데, ARM 스팩 문서에서는 이를 슈퍼바이저 콜(Supervisor Call)이라고 부릅니다. 'svc' 명령어를 실행하면, 외부 하드웨어에서 발생하는 것이 아닌, 소프트웨어적으로 인터럽트 익셉션이 유발되므로 흔히 소프트웨어 인터럽트라고도 합니다. 또한, SW 인터럽트는 운영체제의 시스템 콜 기능과 연관이 깊은 기능입니다. 시스템 콜은 SW 인터럽트를 활용해 구현됐기 때문입니다. 다음 그림을 보면서 ‘svc’ 명령어를 실행하면 ARM 코어는 소프트웨어적으로 익셉션을 유발하는 흐름을 살
[리눅스커널] 디바이스 트리: of_root 디버깅
디바이스 트리를 관리하는 주요 자료 구조는 다음과 같습니다. * of_root * of_aliases * of_chosen * of_stdout of_root of_root 전역 변수는 다음과 같습니다. of_root = 0xF6B49F44 -> ( name = 0xF6B4A16C -> "", type = 0xC157AEAB -> "", phandle = 0, full_name = 0xF6B49F94 -> "/", properties = 0xF6B49F98, deadprops = 0x0, parent = 0x0, child = 0xF6B4A170 -> ( name = 0xF6B4A2
[ARM프로세서] ARMv7: 인터럽트 타입 익셉션의 실행 흐름
ARM 아키텍처에서는 메모리 어보트 타입과 더불어 외부 인터럽트도 익셉션의 한 종류로 처리합니다. 외부 인터럽트는 메모리 어보트와 달리 하나의 기능으로 동작하므로, 외부 인터럽트의 익셉션 핸들러는 인터럽트 서비스 루틴을 실행합니다. 인터럽트 서비스 루틴을 통해 외부 하드웨어의 변화에 대해 소프트웨어적인 처리를 수행합니다. 그런데 인터럽트 타입 익셉션은 메모리 어보트 타입 익셉션과 어떤 차이점이 있을까요? 메모리 어보트 타입 익셉션은 ARM 코어가 명령어를 제대로 실행할 수 없는 상황에서 유발됩니다. 하지만, 인터럽트 타입 익셉션은 메모리 어보트 타입 익셉션과 달리 외부 하드웨어가 인터럽트라는 전기 신호를 발생시키면 ARM 코어가 이를 익셉션의 한 종류로 받아 처리하는 것입니다. 즉, 외부 하드웨어에서 어떤

![[CV] [Comi] 'あかね噺'(아카네 이야기) 22권. 아카네의 첫 전력 승부](https://img.zoomtrend.com/2026/06/08/1780982081-EC9D8CEC9585EC9D98EBA6ACEB93ACEC9CBCEBA19C.jpg)

