@@ -13,42 +13,42 @@ This project is split into two independent components:
1313 * Tombstone info located at the end, at ` 0x0800_07E0-0x0800_0800 `
1414 * Responsible for:
1515
16- * Checking a GPIO pin for 2 s after reset.
16+ * Checking a GPIO pin for 200 ms after reset.
1717 * If pressed → jump to the STM32 system ROM bootloader.
1818 * If not pressed → jump to the user application at ` 0x0800_0800 ` .
1919 * Contains a fixed ** tombstone** block at the end of its flash region, with build metadata (magic, version, date).
2020
2121* ** UAPP (User-app) @ ` userapp/ ` **
2222
23- * Section starts at ` 0x0800_0800 ` (tombstone: ` 0x0800_0800 ` , code: ` 0x0800_0820 ` )
23+ * Section starts at ` 0x0800_0800 ` (tombstone: ` 0x0800_0800 ` , code: ` 0x0800_0A00 ` )
2424 * Normal user firmware, built with its own vector table and linker script.
2525 * At the very start, contains a ** tombstone** block, to identify itself.
2626 * Uses the tombstone info (if needed) to check validity or report version.
2727
2828** Flash Memory Layout**
2929
3030```
31- +-----------------------+ 0x0800_0000
32- | Preloader Vector |
33- | & Code |
34- | (2 KB-32 bytes) |
35- +-----------------------+ 0x0800_07E0
36- | Tombstone info IAPL |
37- | (32 bytes, fixed info) |
38- +-----------------------+ 0x0800_0800
39- | Tombstone info UAPP |
40- | (32 bytes, fixed info) |
41- +-----------------------+ 0x0800_0820
42- | User App Vector |
43- | & Code |
44- | (up to 30KB-32 bytes) |
45- +-----------------------+ end of flash
31+ +-------------------------- + 0x0800_0000
32+ | Preloader Vector |
33+ | & Code |
34+ | (2 KB-32 bytes) |
35+ +-------------------------- + 0x0800_07E0
36+ | Tombstone info IAPL |
37+ | (32 bytes) |
38+ +-------------------------- + 0x0800_0800
39+ | Tombstone info UAPP |
40+ | (32 bytes + padding) |
41+ +--------------------------+ 0x0800_0A00
42+ | User App Vector |
43+ | & Code |
44+ | (up to 30KB-0x200 bytes) |
45+ +-------------------------- + end of flash
4646```
4747
4848* ** Preloader region** : ` 0x0800_0000 .. 0x0800_07E0 `
4949* ** Tombstone IAPL** : ` 0x0800_07E0 .. 0x0800_0800 `
5050* ** Tombstone UAPP** : ` 0x0800_0800 .. 0x0800_0820 `
51- * ** User application** : ` 0x0800_0820 ..`
51+ * ** User application** : ` 0x0800_0A00 ..`
5252
5353** Build/Flash**
5454
@@ -68,9 +68,10 @@ Download from the latest release archive: [Release](https://github.com/xboxonere
6868
6969### In-field update
7070
71- 1 . Disconnect PCB from console!
72- 2 . Connect PCB to PC
73- 3 . Use custom stm32flash tool from this [ repo] ( https://github.com/xboxoneresearch/libaspect2 )
71+ 1 . Disconnect PCB from console and PC!
72+ 2 . Press and hold the button on the PCB.
73+ 3 . Connect PCB to PC, keep button pressed for a second.
74+ 4 . Use custom stm32flash tool from this repo: [ repo] ( https://github.com/xboxoneresearch/libaspect2 )
7475
7576## Development
7677
0 commit comments