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
        • 오류해결
        • 개인 공부
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    앤드류모튼
    커널
    커널 기여
    토발즈
    Qualcomm
    rubik pi
    버퍼
    드라이버 분석
    Branch
    c언어
    Git
    리눅스
    arm
    동적메모리
    시스템콜
    이진 트리
    스택
    INIT
    파이썬
    yolo
    포인터
    자료구조
    소수
    순환
    rubikpi3
    파일 입출력
    피보나치
    commit
    C++
    백준
  • 최근 댓글

  • 최근 글

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

티스토리툴바