AT32F425
Series Reference Manual
2022.03.30
Page 37
Ver 2.01
Figure 1-6 Example of MSP and PC initialization
1st push data
2nd push data
Other Memory
0x2000_8000
0x0000_0101
Other Exception
Vectors
Boot Code
Other Memory
Code
Stack
Memory
Stack grows
downward
Initial SP Value
0x2000_8000
0x0000_0000
0x0000_0004
0x0000_0100
0x2000_7C00
0x2000_7FFC
0x2000_7FF8
0x2000_8000
In the AT32F425 series, the main Flash memory, Boot code or SRAM can be remapped to the code
area between 0x0000_0000 and 0x07FF_FFFF. nBOOT1 corresponds to the value of the bit nBOOT1
in the SSB of the User System Data (USD). nBOOT1 and BOOT0 are used to set the specific memory
from which CODE starts.
{BOOT1, BOOT0}=00/10, CODE starts from the main Flash memory
{BOOT1, BOOT0}=11, CODE starts from Boot code
{BOOT1, BOOT0}=11, CODE starts from SRAM
After a system reset or when leaving from Standby mode, the pin values of both BOOT1 and BOOT0
will be relatched. When the CODE starts from SRAM, the status of BOOT is latched, and it is impossible
to load a new boot mode through a system reset. At this point, the power-on reset must be performed
to reload a new boot code mode.
Boot code memory contains an embedded boot loader program that provides not only Flash
programming function through USART1 or USART2, but also provides extra firmware including
communication protocol stacks that can be called for use by software developer through API.