Skip to content

20260507_CMSIS

Jaedeok Kim edited this page May 14, 2026 · 20 revisions

ba56352

Overview

해당 Commit은 STM32H723에 들어 있는 ARM Cortex-M7 프로세서와 그 주변 장치 (ITCM/DTCM RAM, SRAM, Flash Memory, USB Controller 등)을 더 편리하게 제어할 수 있는 CMSIS-Core 라이브러리와 CMSIS-Device 라이브러리를 추가한다.

Background

STM32H723에는 약 140개의 Hardware Interrupt와 Software Interrupt (Exception)가 있는데[1], 이 중에서 54번째 Interrupt (TIM6_DAC)만을 비활성화하는 코드를 짜야 한다고 가정하자.

ARM Cortex-M7에서는 Interrupt가 발생하면 NVIC (Nested Vectored Interrupt Controller)라는 하드웨어 회로가 Interrupt가 발생했을 때 실행할 함수의 주소 (Interrupt Service Routine, Exception Handler)를 ITCM RAM의 0x00000000에 있는 Vector Table에서 찾고 해당 주소를 Program Counter에 넣는데, 특정 인터럽트를 활성화 또는 비활성화시키기 위해서는 NVIC의 NVIC_ISERx라는 레지스터[2]에서 그 인터럽트에 해당하는 비트를 켜거나 꺼야 한다.

// NOTE: `NVIC_ISER0` = `0xE000E100`
#define NVIC_ISER1 0xE000E104

[1] RM0468, Rev. 3, pp. 731-739.
[2] PM0253, Rev. 5, p. 184.

Clone this wiki locally