Secure Firmware Upgrade Bootloader and Application

From Stm32World Wiki
Jump to navigation Jump to search


Flash Partitioning options

In principle, two approaches are viable. Either the bootloader will occupy the first part of the flash, or it will occupy the end of the flash.

If locating the bootloader in the beginning of the flash, the layout will look like this:

Bootloader beginning.jpeg
  Memory Address       Memory Region / Sector                               Size
+--------------------+---------------------------------------------------+ --------
|  0x0807 FFFF       |                                                   |    ^
|        :           |  User Application Area                            |    |
|        :           |  (Upper Flash Space)                              |  448 KB
|        :           |                                                   |    |
|  0x0801 0000       |                                                   |    v
+--------------------+---------------------------------------------------+ --------
|  0x0800 FFFF       |  Bootloader Code / Vector Table                   |    ^
|        :           |  (Lower Flash Space)                              |   64 KB
|  0x0800 0000       |                                                   |    v
+--------------------+---------------------------------------------------+ --------

However, if placing the bootloader towards the end of the flash, the layout will look like this:

Bootloader end.jpeg
  Memory Address        Memory Region / Sector                             Size
+--------------------+---------------------------------------------------+ --------
|  0x0807 FFFF       |  Bootloader Code                                  |    ^
|        :           |  (Upper Flash Space)                              |   64 KB
|  0x0807 0000       |                                                   |    v
+--------------------+---------------------------------------------------+ --------
|  0x0806 FFFF       |                                                   |    ^
|        :           |  User Application Area                            |    |
|        :           |  (Lower Flash Space)                              |  448 KB
|        :           |                                                   |    |
|  0x0800 0000       |  (Application Vector Table & Entry Point)         |    v
+--------------------+---------------------------------------------------+ --------