CPU가 접근할 수 있는 전체 주소 공간의 일부 주소 범위를 Flash, RAM, 주변장치 레지스터 등의 하드웨어 자원에 대응시켜 놓은 주소 배치 구조
※ Memory-mapped I/O : GPIO와 같은 주변 장치의 제어·상태 레지스터를 CPU 주소 공간에 배치하여, 일반적인 메모리 읽기·쓰기 명령으로 제어하는 방식
STM32 주소 대응 관계
이름 기능 주소 Main Flash 프로그램 코드와 상수 저장 0x0800_0000 ~ 0x0807_FFFFSRAM1 변수, Stack, Heap 등 실행 중 데이터 저장 0x2000_0000 ~ 0x2001_BFFFSRAM2 추가 실행 데이터 저장 0x2001_C000 ~ 0x2001_FFFFTIM2 타이머, 카운터, PWM 0x4000_0000USART2 시리얼 통신 0x4000_4400GPIOA PA0~PA15 핀 제어 0x4002_0000GPIOB PB0~PB15 핀 제어 0x4002_0400GPIOC PC0~PC15 핀 제어 0x4002_0800RCC GPIO·타이머·통신장치의 클럭 관리 0x4002_3800Cortex-M4 내부 장치 NVIC, SysTick, SCB 및 디버그 기능 0xE000_0000 ~ 0xE00F_FFFF
A. 일부 주소는 변경 가능하다.
대부분의 주소 대응 관계는 MCU 설계 단계에서 고정되어 있어 변경이 불가능하다.
영역 대응 변경 가능 여부 GPIO, UART, RCC 주소 변경 불가능 내부 Flash와 SRAM의 원래 주소 변경 불가능 0x0000_0000Boot Alias설정에 따라 변경 가능 FMC·QSPI 외부 메모리 영역 연결 및 설정에 따라 달라짐