1 /*
2  * File: stm32.h
3  *
4  * STM32-specific defines
5  */
6 
7 #ifndef STM32_H
8 #define STM32_H
9 
10 /* Cortex core ids */
11 #define STM32VL_CORE_ID 0x1ba01477
12 #define STM32F7_CORE_ID 0x5ba02477
13 #define STM32H7_CORE_ID 0x6ba02477      // STM32H7 SWD ID Code
14 #define STM32H7_CORE_ID_JTAG 0x6ba00477 // STM32H7 JTAG ID Code (RM0433 pg3065)
15 
16 /* Constant STM32 memory map figures */
17 #define STM32_SRAM_BASE ((uint32_t)0x20000000)
18 #define STM32_FLASH_BASE ((uint32_t)0x08000000)
19 #define STM32_F1_FLASH_BANK2_BASE ((uint32_t)0x08080000)
20 #define STM32_H7_FLASH_BANK2_BASE ((uint32_t)0x08100000)
21 
22 #define STM32_F2_OPTION_BYTES_BASE ((uint32_t)0x1FFFC000)
23 #define STM32_F4_OPTION_BYTES_BASE ((uint32_t)0x40023C14)
24 #define STM32_F7_OPTION_BYTES_BASE ((uint32_t)0x1FFF0000)
25 #define STM32_H7_OPTION_BYTES_BASE ((uint32_t)0x5200201C)
26 
27 #define STM32_G0_OPTION_BYTES_BASE ((uint32_t)0x1FFF7800)
28 #define STM32_L4_OPTION_BYTES_BASE ((uint32_t)0x1FFF7800)
29 
30 #define STM32_L0_OPTION_BYTES_BASE ((uint32_t)0x1FF80000)
31 #define STM32_L1_OPTION_BYTES_BASE ((uint32_t)0x1FF80000)
32 
33 #define STM32_F0_OPTION_BYTES_BASE ((uint32_t)0x1FFFF800)
34 #define STM32_F1_OPTION_BYTES_BASE ((uint32_t)0x1FFFF800)
35 #define STM32_F3_OPTION_BYTES_BASE ((uint32_t)0x1FFFF800)
36 #define STM32_G4_OPTION_BYTES_BASE ((uint32_t)0x1FFFF800)
37 
38 #endif // STM32_H
39