Guillermo Austin Kim
Posts
998 posts[Arm프로세서] Armv7 동작 모드를 저장하는 spsr 레지스터
SPSR 레지스터의 비트맵은 cpsr 레지스터의 비트맵과 동일합니다. SPSR 레지스터는 cpsr 레지스터의 복사본이기 때문입니다. 여기서 의문이 생깁니다. “cpsr와 같은 정보를 저장하는 SPSR 레지스터는 왜 존재할까?” Arm 동작 모드로 진입하는 방법은 크게 2가지가 있습니다. ❑ 해당 익셉션이 유발됨 ❑ 관련 어셈블리 명령어 실행 익셉션이 유발되면 Arm 코어는 하드웨어적으로 다음과 같은 동작을 수행합니다. ❑ 현재 Arm 동작 모드의 이전 CPSR이 저장된 SPSR_ 에 CPSR의 정보를 백업 ❑ CPSR 레지스터 M[4:0] 비트를 Arm 동작 모드로 정의된 값으로 변경 ❑
[Arm프로세서] Armv7 동작 모드를 저장하는 cpsr 레지스터
cpsr 레지스터는 Current Program Status Register의 약자로 Arm 코어의 세부 상태를 저장하는 용도로 사용됩니다. 먼저 Arm 스팩 문서에서 정의한 cpsr 레지스터의 비트 맵을 소개합니다. 그림 3.2 CPSR 레지스터의 비트 맵 그림 3.2에서 가장 오른쪽 부분을 보면 M[4:0]이라고 표시된 부분이 있습니다. 이는 0~4번째 비트를 나타내는데, 이 5개 비트에 Arm 동작 모드를 설정하는 비트가 설정돼 있습니다. 다음 표는 Arm 동작 모드 별로 M[4:0]에 저장된 비트 정보입니다. 표 3.3 CPSR M[4:0]에 저장된 Arm 동작 모드 인코딩 정보 위 표를 읽을 때 한 가지 유념해야 할 사실이 있습니다. PL0 권한으로 실행되는 User 모드에서
[Arm프로세서] Armv7: Arm 동작 모드와 관련된 레지스터
이전 절에서는 Arm의 동작 모드를 소개했습니다. 또한 각 Arm 모드의 특성을 활용해 다양한 방식으로 시스템을 디자인할 수 있다는 점도 예를 들어서 설명했습니다. 이 내용을 읽고 여러분이 시스템을 디자인 하신다면 다음과 같은 의문이 생길 것입니다. “Arm의 동작 모드를 소프트웨어적으로 알 수 있는 방법은 무엇일까?” 먼저 Arm 동작 모드를 알아야 Arm 동작 모드에 따라 이를 제어하는 코드를 작성할 수 있을 것입니다. 이런 시스템을 디자인하는 개발자의 요구 사항을 만족시키기 위해 Arm 아키텍처는 다음과 같은 기능을 지원합니다. ❑ 현재 Arm 동작 모드를 cpsr 레지스터에 저장 ❑ cpsr 레지스터를 읽어서 Arm 동작 모드 체크 이번에는 cpsr 레
[Arm프로세서] Armv7: Arm 동작 모드는 어떻게 진입할까?
그렇다면 각각 Arm 동작 모드는 어떻게 진입할 수 있을까요? 각 Arm 동작 모드에 해당되는 익셉션이 유발되면 Arm 동작 모드로 진입합니다. 다음 표를 보면서 이 내용을 조금 더 알아봅시다. 표 3.2 Arm 모드 별 진입 경로 먼저 Supervisor 모드는 svc 명령어를 실행하면 익셉션이 유발돼 Supervisor 모드로 진입합니다. [정보]이를 소프트웨어 인터럽트라고도 부릅니다. 이어서 IRQ 모드나, FIQ 모드는 외부 하드웨어에서 인터럽트를 발생하면 진입하는 모드입니다. 보통 인터럽트가 발생하면 Arm 코어는 익셉션 벡터 주소로 프로그램 카운터를 점프시킵니다. Abort모드는 어셈블리 명령어로 데이터 어보트나 프리페치 어보트를 유발하는 명령어가 실행되면 진입됩니다. 마지막으
[Arm프로세서] Armv7 동작 모드: PL와 Arm 동작 모드 소개
Arm 동작 모드를 이해하려면 Privilege level(PL)의 개념을 먼저 알면 좋습니다. Arm 동작 모드는 PL의 기반 위에서 정의했기 때문입니다. PL과 Arm 동작 모드에 대한 Arm 스팩 문서 분석 먼저 Arm 스팩 문서에서 PL0를 어떻게 정의했는지 알아봅시다. (출처: DEN0013D_cortex_a_series_PG.pdf)PL0 The privilege level of application software, that executes in User mode. Software executed in User mode is described as unprivileged software. This software cannot access some features of the archite


