inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)

6.3.3 익셉션 레벨을 변경하는 명령어: SVC 명령어

Armv8의 Exception Level에서 질문이 있습니다.

159

동엽

작성한 질문수 6

0

svc, hvc, smc와 같은 어셈블리 명령어를 수행하면, 내부적으로 exception이 발생하고 el이 변경된다고 말씀해주셨는데, 여기서 el이 변경된다는 건 하드웨어적으로는 단순히 PSTATE의 EL 비트 필드의 값이 갱신되는 것으로 이해해도 될까요?

임베디드 arm-architecture microprocessors cortex-a

답변 2

0

동엽

답변 감사합니다.

0

김동현 (Austin Kim)

제대로 이해하셨습니다. Arm 프로세서의 내부 하드웨어는 PSTATE의 EL 비트를 변경하면서 익셉션 레벨을 변경합니다. 현재 익셉션 레벨(Exception Level)의 정보는 PSTATE.EL에서 확인할 수 있습니다.

추가로 설명을 드리면요:

  1. PSTATE의 값은 직접 어셈블리 명령어를 통해 읽을 수 없습니다. PSTATE.EL은 currentEL이라는 시스템 레지스터를 통해서 확인할 수 있습니다.

  2. 실전 프로젝트 관점에서 보면, 현재 currentEL 시스템 레지스터를 통해 익셉션 레벨 정보(PSTATE.EL)를 읽는 것보다, SPSR_EL1 레지스터의 값을 더 많이 확인합니다. 익셉션이 유발된 시점의 PSTATE의 정보가 더 중요하기 때문입니다.

궁금하신 점이 있으면 질문을 다시 올려주세요.

감사합니다.

5장 Armv7 동작모드와 6장 Armv8 익셉션 레벨 차이

0

63

2

시스템 소프트웨어 직무 관련 질문드려요

0

90

2

책관련 질문드려요

0

87

2

4.2.1. 실습을 어떻게 진행하는것인가요?

0

74

2

3.2.1.4 실습과 관련한 질문

0

81

2

Arm Architecture 관련 공부

0

59

1

유저 모드 뱅크드 레지스터 질문입니다

0

65

2

3.2.2.4 모드 복귀 부분

0

155

2

5.4.3 실습에서 궁금한점이 있습니다.

0

146

2

리눅스 커널 동작 모드별 스택 포인터 초기화

0

168

2

TRACE32 사용 실습에서 RASPIAN KERNEL DEBUG

0

280

2

강의 내용 짤린건가요?

0

275

1

TRACE32 프로그램

0

349

1

[3.2.2.4] Exception 발생시 CPSR <-> SPSR의 동작 질문

0

267

1

강의 자료 관련 문의

0

268

1

강의자료

0

237

2

강의하신 강의자료

0

258

1

CMP 명령어 예제 중

0

298

1

MVN 명령어 사용이유 질문

0

357

1

MOVS 명령어 질문

0

321

2

여러 가지 질문

0

355

2

ADC, SBC 어셈블리 명령어(4.2.2.4강)

0

356

1

ARMv7 범용레지스터

0

441

1

강의록 문의사항

0

303

2