Guillermo Austin Kim
Posts
998 posts[Arm프로세서] Armv8 익셉션 레벨이란
익셉션 레벨은 무엇일까요? 먼저 익셉션 레벨을 가장 명확하게 설명하는 Arm 아키텍처 문서를 보면서 익셉션 레벨을 소개하겠습니다. 익셉션 레벨에 대한 Arm 스팩 문서 분석 다음 Arm 스팩 문서를 분석하면서 익셉션 레벨을 배워 봅시다. (출처: ARMv8-A_Architecture_Reference_Manual_(Issue_A.a)) D1.1 Exception levels The ARMv8-A architecture defines a set of Exception levels, EL0 to EL3, where:• If ELn is the Exception level, increased values of n indicate increased software execution privilege.
[Arm프로세서] Armv8 아키텍처의 익셉션 레벨 소개
Armv8 아키텍처를 이루는 기능을 이해하려면 무엇을 먼저 알아야 할까요? 바로 익셉션 레벨입니다. 익셉션, 트러스트존와 하이퍼바이저를 비롯한 많은 기능이 익셉션 레벨 기반 위에서 동작하기 때문입니다. 예를 들어 EL0은 익셉션 레벨0, EL1은 익셉션 레벨1인데 EL0와 EL1와 같은 용어를 사용해 Armv8 아키텍처의 기능을 설명합니다. 또한 레지스터의 이름도 ESR_EL1와 같이 명시된 경우가 많습니다. 또한 익셉션 레벨을 기준으로 익셉션을 설계했으므로, 익셉션의 동작 원리를 알려면 먼저 익셉션 레벨의 개념을 알고 있어야 합니다. Armv8 아키텍처에서 먼저 알아야 하는 중요한 내용이 익셉션 레벨입니다. 이번 절에서는 Armv8 아키텍처의 익셉션 레벨을 소개하고 이와 관련된 레지스터를 살펴보
[Arm프로세서] Armv7: 익셉션이 유발된 후 Supervisor 모드로 변경
Armv7 아키텍처 기반에서 실행되는 리눅스 커널에서 Armv7 동작 모드의 특징을 잘 활용해 시스템을 디자인한 루틴을 많이 볼 수 있습니다. 그 중 대표적인 기법이 Supervisor 모드에서 커널이 실행되도록 구현한 것입니다. 이 내용을 읽으면 자연스럽게 다음과 같은 의문이 생깁니다. “인터럽트가 유발되면 Arm 아키텍처 관점으로 IRQ 모드에 진입하는데, IRQ 모드에서 인터럽트를 처리하는 것이 아닌가?” 그런데 인터럽트가 유발돼 IRQ 모드로 진입한 다음에 바로 Supervisor 모드로 Arm 동작 모드를 변경합니다. 리눅스 커널의 주요 기능은 하나의 Supervisor 모드에서 처리해야 심플하게 시스템을 디자인할 수 있기 때문입니다. 여기서 다시 의문이 생깁니다.
[Arm프로세서] Armv7: Arm 동작 모드 별로 스택을 저장
리눅스 커널이 Armv7 아키텍처로 빌드가 되면 Arm 아키텍처와 관련된 기능을 초기화하는 루틴이 실행됩니다. 가장 대표적인 사례가 Arm 동작 모드 별로 스택을 설정하는 루틴입니다. 다음 코드를 보면서 Arm 동작 모드를 변경하는 방식을 알아봅시다. void notrace cpu_init(void)02 {03 ...04 /*05 * setup stacks for re-entrant exception handlers06 */07 __asm__ (08 "msr cpsr_c, %1\n\t"09 "add r14, %0, %2\n\t"10 "mov sp, r14\n\t"11 "msr cpsr_c, %3\n\t"12 "add r14, %0, %4\n\t"13 "mov sp, r14\n\t"14 "msr cps
[리눅스] 라즈비안(데비안): vi(vim) 에디터 visual mode 삭제
라즈비안(데비안 기반)에서 vim 에디터를 사용하면 visual 모드가 by default로 설정돼 있어 쓰기 불편합니다. 이번 포스트에서는 vi(vim) 에디터에서 visual mode를 삭제하는 방법을 소개합니다. 1. vi 에디터 편집창에서 명령어 입력 vi를 실행한 다음에 편집창 안에서 다음 명령어를 입력합니다. ":set mouse="":set mouse-=a" 2. $HOME/.vimrc 수정 '$HOME/.vimrc' 파일을 수정하는 방법도 있습니다. 이 방법을 적용하면 vi 에디터를 사용할 때 마다 ":set mouse=" 명령어를 입력할 필요가 없으니 더 편한 것 같아요. '$HOME/.vimrc' 파일을 열고 다음 명령어를 입력합시다. set mouse= root 계정으
![[일상] Eave 65와 목새 택타일 | 토프레 무접점 느낌 | 타건 영상 있음](https://img.zoomtrend.com/2026/06/07/1780838085-SE-77297eb3-90bf-43a7-9629-75fd8530e370.jpg)



