Difference between revisions of "STM32 Memory Map"

From Stm32World Wiki
Jump to navigation Jump to search
Line 2: Line 2:
 
[[STM32]] [[MCU]]s all (?) use the following memory map to some degree.  There are minor differences so always check the relevant datasheet for the specific [[MCU]] being used.
 
[[STM32]] [[MCU]]s all (?) use the following memory map to some degree.  There are minor differences so always check the relevant datasheet for the specific [[MCU]] being used.
  
== Block Diagram --==
+
== Block Diagram ==
  
 
<div class="res-img">
 
<div class="res-img">
 
+
[[File:STM32F405 Block Diagram.png|1600px]]
[[File:STM32F4xx Memory Map.png|1600px]]
 
 
</div>
 
</div>
  

Revision as of 06:45, 1 September 2024

STM32 MCUs all (?) use the following memory map to some degree. There are minor differences so always check the relevant datasheet for the specific MCU being used.

Block Diagram

STM32F405 Block Diagram.png

Memory Map

STM32F4xx Memory Map.png

The most interesting bit is the detail in the lower left corner specifying the two first blocks of memory.

Memory Details

STM32 Memory Detail.png

Of these, the most interesting for a new developer are:

  • Flash - 0x8000000

This is where you upload your application.

  • RAM - 0x20000000

This is where dynamic variables are allocated.

All internal peripherals are controlled through registers - each with a specific address. But if using HAL it is not necessary to know these addresses.