Difference between revisions of "DFU Bootloader"
Jump to navigation
Jump to search
Line 12: | Line 12: | ||
! Size (kb) | ! Size (kb) | ||
|- | |- | ||
− | | End | + | | align=right | End |
| --> | | --> | ||
− | | 0x8078000 | + | | align=right | 0x8078000 |
− | | 0x8080000 | + | | align=right | 0x8080000 |
− | | 0x8000 | + | | align=right | 0x8000 |
| align=right | 32kB | | align=right | 32kB | ||
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8070000 | + | | align=right | 0x8070000 |
− | | 0x8078000 | + | | align=right | 0x8078000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8068000 | + | | align=right | 0x8068000 |
− | | 0x8070000 | + | | align=right | 0x8070000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8060000 | + | | align=right | 0x8060000 |
− | | 0x8068000 | + | | align=right | 0x8068000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8058000 | + | | align=right | 0x8058000 |
− | | 0x8060000 | + | | align=right | 0x8060000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8050000 | + | | align=right | 0x8050000 |
− | | 0x8058000 | + | | align=right | 0x8058000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8048000 | + | | align=right | 0x8048000 |
− | | 0x8050000 | + | | align=right | 0x8050000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8040000 | + | | align=right | 0x8040000 |
− | | 0x8048000 | + | | align=right | 0x8048000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
Line 77: | Line 77: | ||
| | | | ||
| | | | ||
− | | 0x8030000 | + | | align=right | 0x8030000 |
− | | 0x8038000 | + | | align=right | 0x8038000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8028000 | + | | align=right | 0x8028000 |
− | | 0x8030000 | + | | align=right | 0x8030000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8020000 | + | | align=right | 0x8020000 |
− | | 0x8028000 | + | | align=right | 0x8028000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8018000 | + | | align=right | 0x8018000 |
− | | 0x8020000 | + | | align=right | 0x8020000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8010000 | + | | align=right | 0x8010000 |
− | | 0x8018000 | + | | align=right | 0x8018000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
| | | | ||
| | | | ||
− | | 0x8008000 | + | | align=right | 0x8008000 |
− | | 0x8010000 | + | | align=right | 0x8010000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|- | |- | ||
− | | Begin | + | | align=right | Begin |
| --> | | --> | ||
− | | 0x8000000 | + | | align=right | 0x8000000 |
− | | 0x8008000 | + | | align=right | 0x8008000 |
− | | 0x8000 | + | | align=right | 0x8000 |
− | | 32kB | + | | align=right | 32kB |
|} | |} | ||
Revision as of 04:24, 31 May 2021
All STM32 MCUs have a built-in bootloader which will allow reflashing. The Boot0 pin is used to toggle between "normal" boot and this bootloader. Unfortunately this process can not be controlled without manipulating the Boot0 pin, so if we want to control this from our application, we will have to implement our own bootloader.
Overall Architecture
Start Addr | End Addr | Size (hex) | Size (kb) | ||
---|---|---|---|---|---|
End | --> | 0x8078000 | 0x8080000 | 0x8000 | 32kB |
0x8070000 | 0x8078000 | 0x8000 | 32kB | ||
0x8068000 | 0x8070000 | 0x8000 | 32kB | ||
0x8060000 | 0x8068000 | 0x8000 | 32kB | ||
0x8058000 | 0x8060000 | 0x8000 | 32kB | ||
0x8050000 | 0x8058000 | 0x8000 | 32kB | ||
0x8048000 | 0x8050000 | 0x8000 | 32kB | ||
0x8040000 | 0x8048000 | 0x8000 | 32kB | ||
0x8038000 | 0x8040000 | 0x8000 | 32kB | ||
0x8030000 | 0x8038000 | 0x8000 | 32kB | ||
0x8028000 | 0x8030000 | 0x8000 | 32kB | ||
0x8020000 | 0x8028000 | 0x8000 | 32kB | ||
0x8018000 | 0x8020000 | 0x8000 | 32kB | ||
0x8010000 | 0x8018000 | 0x8000 | 32kB | ||
0x8008000 | 0x8010000 | 0x8000 | 32kB | ||
Begin | --> | 0x8000000 | 0x8008000 | 0x8000 | 32kB |