@@ -31,6 +31,7 @@ This README describes configuration of supported targets.
3131* [ Renesas RZN2L] ( #renesas-rzn2l )
3232* [ SiFive HiFive1 RISC-V] ( #sifive-hifive1-risc-v )
3333* [ STM32C0] ( #stm32c0 )
34+ * [ STM32F1] ( #stm32f1 )
3435* [ STM32F4] ( #stm32f4 )
3536* [ STM32F7] ( #stm32f7 )
3637* [ STM32G0] ( #stm32g0 )
@@ -104,6 +105,36 @@ b main
104105c
105106```
106107
108+ ## STM32F1
109+
110+ Similar layout as the STM32F4, but for a much smaller 64KB flash.
111+
112+ WolfBoot occupy 12KB, followed by 2x25 KB firmware partitions, and a 2KB swap:
113+
114+ ```
115+ WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08003000
116+ WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x08009400
117+ WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x0800F800
118+ ```
119+
120+ This is with the sample config in [ config/examples/stm32f1.config] ( config/examples/stm32f1.config ) .
121+
122+ Note that with this partition layout, WolfBoot cannot be compiled with debug support.
123+
124+ The test application for STM32F1 is designed so that if it boots a version 1 software, it will trigger an update
125+ If the running software version is 2, all is good.
126+ In both cases, PC13 is cleared (lights up the green LED on a Blue Pill board).
127+
128+ ### STM32F1 Programming
129+
130+ All STM32F1 devices come with a builtin bootloader that can be used to program the device.
131+ It allows firmware upload on USART0 (pin A9 and A10 on the Blue Pill) using a usb-serial converter.
132+ The bootloader is entered by pulling the BOOT0 pin high.
133+ Once the builtin bootloader is active, the STM32F1 can be programmed with ` stm32flash ` :
134+
135+ ```
136+ stm32flash -w factory.bin -b 115200 -g 0 /dev/ttyUSB0
137+ ```
107138
108139## STM32L4
109140Example 1MB partitioning on STM32L4
0 commit comments