inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

exception handler 구현

미해결

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

exception handler 는 소프트웨어 적으로 어떻게 구현이 이루어 지나요? exception vector 에 써진 주소값에 handler 를 넣어 주어야 할 것 같은데, 주소를 직접 넣어서 프로그래밍 할 수 있는 것인가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 126

실제 활용 예시 코드 요청 합니다

미해결

Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]

안드로이드 어플리케이션 수준에서 직접 시큐어 모니터를 활욜한 apk을 작성하여 직접 디버깅하고, 유저 권한에서 어디까지 커널에 대한 활용이나 모니터 사용, 보호수준에 대해서 활용을 확인해 보고 싶습니다. 사용가능한 코드나 링크를 제공해주시면 학습에 더 큰 도움이 될거 같은데 자료가 있으면 제공해 주시면 감사하겠습니다.

  • arm-architecture
  • armv7
  • armv8
  • assembly-language
응애 댓글 2 좋아요 0 조회수 228

Exception Level 설정 관련 질문

미해결

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

안녕하세요! Exception Level 관련 질문이 있습니다. 질문) Exception Level을 프로그래머가 직접 설정하는 것인가요? Exception 발생하는 경우를 예시로 H/W설계자가 결정 한 것 VBAR 레지스터에 설정된 주소 + Offset 위치로 분기하도록 설계 Exception 유발 직전 상태의 PSTATE값 백업 PSATE 값 변경 : 현재 EL0인 경우 EL1로 변경 ELR, ESR 업데이트 프로그래머가 설정하는 부분 VBAR 레지스터의 값은 프로그래머가 미리 초기화 Exception Vector 주소로 분기 한 경우, 어떻게 동작할지 코드 작성 → Exception Handler 작성 결국 프로그래머가 Exception Handler를 작성하는 것으로 이해했는데, 프로그래머가 자신이 작성하는 코드의 Exception Level을 설정할 수 있나요? 프로그래머가 작성하는 코드의 Exception Level이 어떻게 결정되는지 궁금합니다.

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
jhp2014.dev 댓글 2 좋아요 0 조회수 169

Current EL 관련 질문

미해결

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

안녕하세요! 우선 너무 좋은 강의 잘 보고 있습니다. 질문 Current Exception Level 정의 를 어떻게 내리는지 질문드립니다. 제가 처음에 이해하기로는 리눅스OS 위에서 User App이 실행 중 Exception이 발생했다면 Current El = EL0 라고 생각했습니다. 하지만 강의를 듣다보니 Exception handler가 어느 EL에 정의 되어있는지에 따라 Current EL을 정의해야하는 것이라고 이해했는데, 위와 같이 이해하면 문제가 없을까요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
jhp2014.dev 댓글 1 좋아요 1 조회수 211

강의자료 관련 문의

미해결

Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]

안녕하세요 강사님. Arm 아키텍쳐 및 리눅스 커널 관련 로드맵을 수강 중인 학생입니다. Advanced 과정에 해당 하는 내용에 대한 강의자료 업로드를 부탁드려도 될 지 궁금해서 질문드립니다. 항상 유익한 강의 감사합니다 :)

  • arm-architecture
  • armv7
  • armv8
  • assembly-language
이진후 댓글 1 좋아요 0 조회수 153

hypervisor위에 IPC는 어떻게 작동되는지 궁금합니다.

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

hypervisor 위에 두개의 다른 guest os가 있다면, 그때, 각 guest os에서 서로 다른 app이 실행되는데 어떤 메커니즘으로 서로의 app은 inter process communication이 가능한가요? 그리고 inter process communication에서 대표적인 model이 공유 메모리 이용, message passing이 있다고 하는데, 두 방법 모두 사용 가능한지도 궁금합니다. 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
이시우 (Eden) 댓글 1 좋아요 0 조회수 270

메모리 맵드 I/O에 대해서

미해결

Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]

안녕하세요 강의를 정말 잘 듣고 있습니다!! 메모리 맵드 I/O에 대해 궁금한게 있어서 질문을 남깁니다. 강의 내용 중 메모리 맵드 I/O 된 영역은 device memory라고 말씀을 하시면서 메모리 맵드 I/O가 된 경우 ldr str와 같은 명령어에 의해 그 영역에 값을쓰면 그와 연결된 포트를 통해 I/O장치 또는 레지스터에 값이 쓰여진다라고 말씀을 하셨는데요, 그러면 mcr mrc msr mrs와 같은 명령어를 통해 레지스터에 값을 써야 하는 것들은 메모리 맵드 I/O가 아닌건가요? 메모리 맵드 I/O된 것들은 전부 ldr str과 같은 명령어를 사용하여 값을 읽고 쓸 수 있는건가요??? 추가로 궁금한것이, 제가 잘못 알고있는것일 수도 있지만, 임베디드 레시피라는 책에 보면 메모리 맵드 I/O 같은 경우 Register 크기 만큼씩 Access 가능하다고 나와있습니다. 그렇다면 memory mapped I/O된 영역에 레지스터 크기가 4바이트인데 strb 또는 strh와 같은 명령어를 통해 read를 하면 에러가 난다고 이해하면 될까요??? 만약에 strb strh와 같은 명령어를 통해 에러가 발생한다면 그때 발생하건 exception인가요 아니면 그냥 ignore 되는건가요???

  • arm-architecture
  • barrier
  • armv8
  • cortex-a
  • memory-mapped-io
민동열 댓글 1 좋아요 0 조회수 256

캐시의 친화적인 코드

미해결

Arm 아키텍처: 캐시(Cache) [저자직강 3부-4]

안녕하세요, 선생님 시스템 소프트웨어의 개발의 모든 것 강의에 이어서 이번 강의도 정말 잘 보았습니다. 강의 내용과, 강의 소개란에 보면 "둘째, 캐시의 구조를 잘 알면 캐시 히트를 활용한 캐시의 친화적인 코드를 작성 할 수 있습니다. 예를 들어, 자주 사용되는 루틴은 특정 CPU 코어에서만 실행되도록 설계할 수 있습니다." 라는 문구가 잘 이해가 안되어 질문 드립니다. 실무에서 어떤 상황에 캐시 친하적인 코드를 실제로 작성하게 되는지, 자주 사용되는 루틴은 어떤 것이 있고 어떤 업무(?)를 주로 맡았을 때 저런 개발을 하게 되는지 궁금합니다. 가능하시다면 조금 더 구체적인 사례를 선생님께 듣고 싶습니다. 미리 감사드립니다

  • arm-architecture
  • memory-management
  • armv8
  • cortex-a
  • cache
민yy 댓글 1 좋아요 0 조회수 252

EL1 IRQ??

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요! 강의 정말 잘 듣고 있습니다. 궁금한 사항이 있어 문의 남깁니다. 강의 중간에 "EL1의 guest OS가 처리해야하는 irq를 Hypervisor에서 hooking을 해서 처리하게 할 수 있다" 라고 하셨는데요, EL1의 irq라는게 무슨 뜻인가요??? 제가 이해하기로는 EL1에서 코드가 수행하고 있을때 irq가 발생하는걸 뜻하느거 같습니다. 제가 이해한게 맞나요?? 아니면 irq마다 EL1 irq EL2 irq와 같이 처리해야하는 EL이 정해져있나요???

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
민동열 댓글 3 좋아요 0 조회수 467

강의자료 요청

미해결

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

안녕하세요! 수업 정말 잘 듣고 있습니다. 1부는 강의 자료가 제공이 됐는데(1장에서 6장까지의 내용), 2부에서부터는 강의 자료가 제공 되지 않는것 같은데요, 혹시 강의 자료가 제공이 안되나요??? 아니면 제가 강의 자료의 위치를 못 찾은 걸까요???

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
민동열 댓글 2 좋아요 0 조회수 326

ISB 배리어에 대한 질문입니다.

미해결

Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]

ISB배리어에 대해 학습을 하면서 제가 생각했을 때는 이해가 잘되지 않은 부분이 있어 질문을 드립니다. 제가 이해한 ISB배리어의 사용 이유는 다음과 같습니다.명령어는 파이프라인을 통해 페치, 디코드, 실행을 단계를 걸쳐 병렬적으로 실행된다.ISB 배리어는 시스템 레지스터를 설정한 후에 주로 사용된다.그 이유는 시스템 레지스터을 설정한 명령어가 실행되기 전에 페치된 명령어에서 잘못 설정된 시스템 레지스터 설정 값을 읽을 수 있기 때문에파이프라인에서 플러시를 통해 비우고 시스템 레지스터를 설정하는 명령어가 실행단계까지 완료된 다음에 다음 명령어를 페치를 한다. 그리고 여기서 생긴 의문은 그렇다면 굳이 시스템 레지스터가 아니라 노멀 레지스터를 읽고 쓸 때도 이런 문제가 생길테니 ISB 명령어를 사용해야하는가? 입니다. 위 글에서 부족한 부분이 있다면 그 부분에 대해서도 설명해주시면 감사하겠습니다.

  • arm-architecture
  • barrier
  • armv8
  • cortex-a
  • memory-mapped-io
채우정 댓글 2 좋아요 0 조회수 363

Current Exception Level 설정

미해결

Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]

안녕하세요. 익셉션 벡터 테이블에서 Current Exception Level이 어떤 경우에는 EL1이 되고 EL3가 되는지 궁금합니다. 예를 들면, 시큐어 모니터가 포함된 시스템에서는 무조건 Current Exception Level이 EL3로 설정되는 것인지 입니다.

  • arm-architecture
  • armv7
  • armv8
  • assembly-language
토끼야놀자 댓글 1 좋아요 0 조회수 250

익셉션 모델을 이용한 하이퍼바이저를 구현 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요. 익셉션 모델을 이용해서 하이퍼바이저를 구현하는 방식말고 다른 방법,모델로 하이퍼바이저를 구현하는 방법이 더 있는지 문의드립니다. 익셉션 모델을 이용해서 하이퍼바이저를 구현한다라는 포괄적인 의미가 잘 이해되지 않아서 이런 질문이 발생한 것 같습니다. 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 274

lower exception level 핸들러 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

다음 두가지중에 어떤 것이 맞는지 문의드립니다. 1. wfe, wfi, hvc를 이용해서 guest exit을 했을때 익셉션이 발생하면 synchronous 익셉션 주소로 분기 2. wfe, wfi, hvc를 이용해서 guest exit을 하면 무조건 synchronous 익셉션 주소로 분기

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 229

익셉션 벡터 테이블 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요. 강의 내용을 다음과 같이 이해했는데 맞는지 문의드립니다. "현재 하이퍼바이저 모드(EL2)가 동작하는 시스템인데, 게스트 OS 커널(EL1)에서 Synchronous 익셉션이 발생하면 VBAR_EL2 + 0x400 으로 PC를 설정한다" 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 196

트랩 명령어 질문

해결됨

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요. HVC, TWI, TWE 명령어에서 각각의 용도 및 차이점이 궁금합니다. 즉 어떤 상황에서 HVC, TWI, TWE가 사용하도록 권장되는지 궁금합니다. 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 2 좋아요 0 조회수 303

LDP 명령어 사용예시

해결됨

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

위에서 SP레지스터의 값과 오프셋을 더한 주소에 있는 값을 기준으로 레지스터에 저장한다고 되어 있는데 그림을 확인하면 SP레지스터의 값을 기준으로 레지스터에 저장한 후에 SP 레지스터의 값을 업데이트하는 것으로 보입니다. 둘 중 어느 것이 맞는 건가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
채우정 댓글 2 좋아요 0 조회수 540

폴트 설정 비트 필드 질문

미해결

Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]

폴트 설정하는 레지스터들의 값을 0으로 설정하여 EL0에서 EL1, EL2로 트랩되도록 허용하는 것이 보안수준을 왜 올리는 것인지 문의드립니다. 제가 생각했을 때는 사용자 레벨(EL0)에서 더 상위 익셉션 레벨(EL1, EL2)로 접근할 수 있도록 설정하는 것이 보안 수준을 낮춘다고 생각해서 문의드립니다.

  • arm-architecture
  • memory-management
  • armv8
  • cortex-a
토끼야놀자 댓글 2 좋아요 0 조회수 305

멀티레벨테이블로 운영하는 이유

해결됨

Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]

안녕하세요. 가상메모리를 물리주소로 변환하기 위해서 멀티레벨페이지로 운영하는 이유가 궁금합니다. 멀티레벨페이지로 운영했을때 어떤 장점들이 있는지 궁금합니다.

  • arm-architecture
  • memory-management
  • armv8
  • cortex-a
토끼야놀자 댓글 2 좋아요 0 조회수 470

MMIO 질문

미해결

Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]

MMIO는 다바이스 포트를 제어하기 위해서 DRAM의 일부 메모리공간을 사용하는 방식이 맞는지 문의드립니다.

  • arm-architecture
  • barrier
  • armv8
  • cortex-a
  • memory-mapped-io
토끼야놀자 댓글 2 좋아요 0 조회수 696

인기 태그

인프런 TOP Writers

주간 인기글