From c94a03af480c5a97291665bd68a1def167246577 Mon Sep 17 00:00:00 2001 From: Extreme kefir Date: Sat, 1 Feb 2020 19:00:03 +0800 Subject: [PATCH] STM32F1 High density devices DFU support(#587) --- src/platforms/stm32/dfucore.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/platforms/stm32/dfucore.c b/src/platforms/stm32/dfucore.c index 1307dad7..33c9d1b8 100644 --- a/src/platforms/stm32/dfucore.c +++ b/src/platforms/stm32/dfucore.c @@ -20,9 +20,14 @@ #include "general.h" #include -#if defined(STM32F1) +#if defined(STM32F1HD) +# define DFU_IFACE_STRING "@Internal Flash /0x08000000/4*002Ka,000*002Kg" +# define DFU_IFACE_STRING_OFFSET 38 +# define DFU_IFACE_PAGESIZE 2 +#elif defined(STM32F1) # define DFU_IFACE_STRING "@Internal Flash /0x08000000/8*001Ka,000*001Kg" # define DFU_IFACE_STRING_OFFSET 38 +# define DFU_IFACE_PAGESIZE 1 #elif defined(STM32F4) # define DFU_IFACE_STRING "/0x08000000/1*016Ka,3*016Kg,1*064Kg,7*128Kg" #endif @@ -305,6 +310,7 @@ static void set_dfu_iface_string(uint32_t size) { uint32_t res; char *p = if_string + DFU_IFACE_STRING_OFFSET; + size /= DFU_IFACE_PAGESIZE; /* We do not want the whole printf library in the bootloader. * Fill the size digits by hand. */