익셉션벡터

포스트: 4|아이템:익셉션벡터(4)
Tags

Posts

4 posts

[ARM프로세서] XEN: 익셉션 벡터 테이블(ARMv7)

Guillermo Austin Kim|2020년 10월 18일

XEN 하이퍼바이저의 익셉션 벡터 테이블을 살펴봅시다. 익셉션 벡터 테이블의 선언부 다음은 XEN 하이퍼바이저의 익셉션 벡터 테이블의 선언부입니다. xen/xen/arch/arm/arm32/entry.S vect_br 0, trap_fiq vect_br 1, trap_irq vect_br 2, trap_guest_sync vect_br 3, trap_data_abort vect_br 4, trap_prefetch_abort vect_br 5, trap_hypervisor_call vect_br 6, trap_undefined_instruction vect_br 7, trap_reset 위 코드가 컴파일

[ARMv8] EL1: el1_sync - 익셉션 벡터 코드와 ARM 스팩 문서 분석

Guillermo Austin Kim|2020년 10월 16일

이번 포스트에서는 ARMv8 아키텍처 기반에서 구현된 익셉션 벡터의 코드를 리뷰해보겠습니다.물론 리눅스 커널에서 확인된 코드입니다. ARMv8 아키텍처의 익셉션 벡터 코드 다음은 ARMv8 아키텍처 기반의 익셉션 벡터 코드입니다. /*02 * Exception vectors.03 */04 .pushsection ".entry.text", "ax"05 06 .align 1107 ENTRY(vectors)08 kernel_ventry 1, sync_invalid // Synchronous EL1t09 kernel_ventry 1, irq_invalid // IRQ EL1t10 kernel_ventry 1, fiq_invalid

[RISC-V] 익셉션 벡터 핸들러 코드 산책 - 리눅스 커널

Guillermo Austin Kim|2020년 9월 27일

이번 시간에는 RISC-V 기반 리눅스 커널에 구현된 익셉션 벡터 테이블과 익셉션 벡터 핸들러를 분석하겠습니다. 익셉션 벡터 핸들러를 호출하는 코드 확인하기 다음은 익셉션 벡터 핸들러의 구현부입니다. RISCV_PTR do_trap_insn_misaligned RISCV_PTR do_trap_insn_fault RISCV_PTR do_trap_insn_illegal RISCV_PTR do_trap_break RISCV_PTR do_trap_load_misaligned RISCV_PTR do_trap_load_fault RISCV_PTR do_trap_store_misaligned RISCV_PTR do_trap_store_fault RISCV_PTR do_trap_ecall_u /* system cal

[ARM] ARMv7: 익셉션 벡터 테이블의 구현 방식 코드 분석

Guillermo Austin Kim|2020년 8월 14일

이번 포스트에서는 ARM 아키텍처의 핵심 개념 중 하나인 익셉션 벡터의 구현 방식에 대해 살펴보겠습니다. ○ ARMv7(Aarch32) ○ ARMv8(Aarch64) ARM 아키텍처에서 정의하는 익셉션의 타입은 3가지로 분류할 수 있습니다. ○ 메모리 어보트(Memory Abort) ○ 인터럽트(Interrupt) ○ 소프트웨어 인터럽트 ARMv7 아키텍처의 익셉션 벡터 테이블 위와 같은 익셉션이 발생하면 익셉션 종류별로 지정된 주소로 프로그램 카운터가 변경됩니다.다음은 리눅스 커널(non-secure)에서의 익셉션 벡터 테이블을 나타냅니다. 오프셋 익셉션 종류--------------------------------------- 0x0