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