NVIC, Exception Vector Table

2025. 7. 16. 15:51·ARM arch/Cortex-M

NVIC

Nested Vectored Interrupt Controller(중첩 벡터형 인터럽트 제어기)

즉, 우선순위에 따라서 모든 인터럽트를 처리 가능

  • Cortex-M 프로세서의 내부에 위치
  • 최대 256개의 서로 다른 우선 순위 설정 가능, 최대 240개 외부 인터럽트 지원 가능
  • 프로세스 상태: 인터럽트 진입시 자동으로 저장(by HW), 인터럽트 종료 시 복원
  • 인터럽트 테일 체인 지원
  • Cortex-M의 벡터 테이블은 이전의 레거시 ARM 코어와 약간 다름
    • 하드웨어 인터럽트 처리를 메인 인터럽트 벡터테이블에서 처리 → 응답시간 개선
  • 레거시 ARM과 달리, 벡터 테이블에 명령어가 아닌 예외처리기 및 ISR의 주소가 포함

NVIC diagram


Exception Vector Table

Exception Vector Table by ARM

총 n개의 인터럽트 처리를 위한 테이블

벡터 테이블은 인터럽트 발생 시, 그에 맞는 핸들러가 실행될 수 있도록 해주는 함수 테이블

여기서 IRQ0 ~ IRQn 은 외부 HW인터럽트 처리를 위함

Exception vector table을 확인해보자

CubeIDE에서 벡터 테이블을 확인 가능하다 asm으로 정의됨

.word EXTI0_IRQHandler는 EXTI0_Handler함수의 주소를 4바이트(word)크기로 저장

그래서 인터럽트가 발생하면 핸들러 함수로 점프

 

예를들어

  1. 버튼 클릭 → GPIO 핀 전기적 변화
  2. EXTI가 해당 핀 변화 감지
  3. NVIC으로 전달, 우선순위 검토
  4. Cortex로 전달
  5. 벡터테이블을 참조, 해당 인터럽트 핸들러 실행
  6. 복귀

 

 

'ARM arch > Cortex-M' 카테고리의 다른 글

테일 체이닝  (2) 2025.09.01
cortex-m3 AMBA와 메모리 맵  (0) 2025.07.14
2025.07.09 - ARM assembly 프로그래밍2  (0) 2025.07.09
2025.07.07 - ARM assembly 프로그래밍1  (0) 2025.07.08
빅 엔디언, 리틀 엔디언  (0) 2025.07.02
'ARM arch/Cortex-M' 카테고리의 다른 글
  • 테일 체이닝
  • cortex-m3 AMBA와 메모리 맵
  • 2025.07.09 - ARM assembly 프로그래밍2
  • 2025.07.07 - ARM assembly 프로그래밍1
Jminu
Jminu
  • Jminu
    뇌 구조가 바이너리
    Jminu
  • 전체
    오늘
    어제
    • 분류 전체보기
      • C프로그래밍
        • 오류해결
        • 개인 공부
        • Programming Lab(학교수업)
        • MemoryTracker
      • C++
        • 개인 공부
      • 자료구조(Data Structure)
      • ARM arch
        • Cortex-M
        • FreeRTOS
      • 컴퓨터 공학(Computer Science)
        • OS
        • 컴퓨터 구조
      • Qualcomm 기업과제
      • Linux
      • Web
      • 똥글
      • 백준
      • Git 학습
        • 오류해결
        • 학습중
      • Python
        • 오류해결
        • 개인 공부
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    buildroot
    피보나치
    버퍼
    arm
    aapcs
    포인터
    커널
    Git
    자료구조
    파이썬
    C++
    yolo
    Qualcomm
    rubik pi
    c언어
    memory mapped io
    exception vector table
    백준
    Branch
    소수
    시스템콜
    파일 입출력
    순환
    스택
    commit
    동적메모리
    rubikpi3
    이진 트리
    INIT
    드라이버 분석
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Jminu
NVIC, Exception Vector Table
상단으로

티스토리툴바