EXCEPTION

포스트: 30
Tags

Posts

30 posts

[ARM프로세서] 익셉션 벡터 테이블 소개

Guillermo Austin Kim|2020년 10월 21일

이번 포스팅에서는 ARMv7과 ARMv8 아키텍처의 익셉션 벡터 테이블을 차례로 소개합니다.  ARMv7 익셉션 벡터 테이블 "표 7.2"는 ARMv7 익셉션 벡터 테이블입니다. 우선 표를 읽고 해석해 봅시다. 표 7.2 ARMv7 익셉션 벡터 테이블 표의 가장 왼쪽 윗 부분에 "익셉션 벡터 베이스 주소"가 보이는데, 이는 익셉션 벡터의 기준이 되는 주소를 뜻합니다. 익셉션 벡터 베이스 주소는 0x0이나 0xffff_0000으로 지정할 수 있는데, 리눅스와 같은 범용 운영체제에서는 0xffff_0000에 익셉션 벡터 베이스 주소를 지정합니다. 이어서 "+0x04"~"+0x1C"로 표기된 부분은 익셉션 벡터 베이스 주소 기준의 오프셋 주소를 나타냅니다. 이해를 돕기 위해 한 가지 예를 들겠습니

[ARM프로세서] 익셉션이 발생할 때 전체 흐름

Guillermo Austin Kim|2020년 10월 18일

이번에는 익셉션의 전체 실행 흐름도를 보면서 익셉션의 동작 원리를 알아봅시다. 그림 7.7 익셉션이 발생할 때 전체 흐름 익셉션의 전체 실행 흐름도는 4단계로 분류할 수 있습니다. 1단계: 프로세스가 실행하는 도중에 익셉션을 유발하는 동작 실행 먼저 ①로 표시된 부분을 눈으로 따라가 봅시다. 프로세스가 실행하는 도중에 메모리 어보트를 유발하는 명령어를 실행하거나 소프트웨어 인터럽트를 유발하는 명령어를 실행합니다. 또한 외부 하드웨어에서 인터럽트를 유발합니다. 2단계: ARM 프로세서가 익셉션을 감지 ② 로 표시된 부분은 ARM 프로세서가 익셉션을 감지하는 동작입니다. 1단계에서 익셉션을 유발하는 명령어나 외부 하드웨어 인터럽트가 발생하면, ARM 프로세서가 이를 감

[ARM프로세서] 익셉션(Exception)이 발생할 때 기본 동작

Guillermo Austin Kim|2020년 10월 15일

익셉션은 ARM 프로세서의 핵심 기능 중 하나입니다. 이번 절에서는 ARM 아키텍처에서 적용된 익셉션의 개념을 소개하고, ARM 프로세서에서 익셉션이 어떤 방식으로 동작하는지 설명합니다. 이후 소프트웨어 관점으로 익셉션이 무엇인지 살펴보겠습니다. 익셉션은 ARM 프로세서의 핵심 기능 중 하나입니다. 이번 절에서는 CPU 아키텍처에서 적용된 익셉션의 개념을 소개하고, ARM 프로세서에서 익셉션이 어떤 방식으로 동작하는지 설명합니다. 익셉션(Exception)이란 무엇일까요? 익셉션을 한 문장으로 정의 내리기는 어렵지만 다른 용어와 함께 설명하기는 어렵진 않습니다. 그럼 같이 다음 문장을 읽어볼까요? ❑ 익셉션이 발생하면 ARM의 동작 모드가 변경됩니다. ❑ 익셉션이 발생

[ARM프로세서] 익셉션(Exception)의 동작 원리를 잘 알아야 하는 이유

Guillermo Austin Kim|2020년 10월 9일

실전 시스템 개발자 중에 "ARM 프로세서는 최소한의 지식만 배우고 실전 프로젝트에서 ARM 프로세서를 알아야 할 시점에 배우면 된다"라고 생각하는 분이 있습니다. 그래서 "ARM 프로세서의 익셉션의 원리를 나중에 배우자"라고 말하거나 아예 "ARM 익셉션의 동작 원리는 몰라도 된다"라고 놀라운 의견을 제시하기도 합니다. 임베디드 BSP 개발자는 ARM 프로세서 누구나 자신만의 학습 방향에 대한 견해가 다르기 마련이지만 이런 생각은 그리 바람직하지 않은 것 같습니다. ARM 아키텍처의 익셉션 동작 원리는 시스템 시스템(임베디드/BSP) 개발자가 배워야 하는 핵심 기법이기 때문입니다. 이번 절에서는 시스템 소프트웨어 개발자가 익셉션을 잘 알아야 하는 이유에 대해 알아봅시다. 실전 프로젝트에서 문제해결 능력을