STM32 Cortex-M3 기반의 MCU이기에 Cortex Memory Layout 따릅니다.

Memory Layout102610_1529_STM32Memory1.png

code 영역

Cortex-M3 Code 영역은 0x00000000~0x1FFFFFFF 까지 512MB입니다.

STM32 Code영역에 Flash 메모리를 사용하며, User Flash, System Memory, Option bytes 영역으로 나누어 사용하고 있습니다.

 

 

 

102610_1529_STM32Memory2.png

STM32 시리즈 별로 영역별 사이즈는 다를 있으나 시작 주소는 동일합니다.

System Memory 영역은 시스템 부트로더가 저장되어 있으며, STM Flash loader 프로그램을 통해서

유저 Flash 영역으로 코드를 다운로드하는 역할을 합니다.

 

Reset System Memory 부트로더가 실행될지 아니면, 유저 Flash 프로그램이 실행 될지는

Boot Mode 핀을 통해서 선택할 있습니다.

경우 Embedded SRAM 부팅 영역으로 설정이 가능합니다.

 

BOOT1

BOOT0

BOOT Mode

동작

x

0

User Flash

User Flash 영역이 0x00000000으로 Mirror되며 되며, User Flash 코드가 실행 .

0

1

System Memory

System Memory 영역이 0x00000000으로 Mirror되며,

시스템 부트로더 실행 .

1

1

Embedded SRAM

Embedded SRAM 영역이 0x00000000으로 Mirror되며,

SRAM 영역의 코드가 실행 .

 

sram 영역

Cortex-M3 SRAM 영역은 0x20000000 ~ 0x3FFFFFFF 까지 512MB 영역입니다.

STM32 시리즈 별로 실제 사용 가능한 SRAM사이즈는 다르며, 8bit, 16bit, 32bit 단위로 모두 access 가능합니다.

102610_1529_STM32Memory3.png

 

출처 :  http://blog.naver.com/engineioi/90098880016