본문 바로가기

SW 개발 공부/STM32

[stm32 chip 메모리구조#1]

 

* 전체 구조

 

stm32f205xx의 메모리맵

 

 

메모리의 주소별 각 순서는 다음과 같다.

Cortex-M3's internal
periperals
not used
FSMC( External SRAM)
Periperal
SRAM
Code

 

그 중 자세히 볼 영역은 Code& SRAM 영역이다.

 

우리가 프로그램 코드를 작성하고 구현될 때 대부분의 내용이 Code와 SRAM 영역에 저장된다.

이제 해당 부분을 자세히 살펴 보자.

 

1. Code 영역

 

- Boot 영역

- Flash 영역

 Flash 영역에는 .text , .data, .rodata영역이 저장되어있다.

 

 1) .text 영역

  - 구현한 프로그램 코드가 저장되는 영역

 

 2) .rodata 영역

 - 상수 및 읽기전용(const..)등의 변수들이 저장되는 영역이다.

 

 3) .data 영역

 - 초기화된 전역변수의 값.

 

2. SRAM 영역

전역,지역변수들에 대한 데이터가 저장되는 영역이다.

 

 1) .data 영역

 - 초기화된 전역변수들이 저장된 저장공간

 - 코드가 실행될 때 Flash의 .data 영역에서 값을 읽어온다.

 

 2) .bss 영역

 - 초기화되지 않은 전역변수들이 저장된 저장공간.

 

 3) stack

 - SRAM 메모리의 끝에서부터 아래로 내려오며 저장되는 지역변수들이 저장되는 공간

 

 4) heap

 - .bss의 끝에서부터 올라가며 저장되는 동적할당 변수들 저장 공간.