From 691e2805cece48e2247a02601edfc922a25d7a66 Mon Sep 17 00:00:00 2001 From: DiSlord Live Date: Sat, 7 Jan 2023 13:39:11 +0300 Subject: [PATCH] Fix leveler pins and enter to TinySA3 DFU mode if button push on startup --- NANOVNA_STM32_F072/board.c | 21 ++++++++++++++++++++- NANOVNA_STM32_F072/board.h | 4 ++-- NANOVNA_STM32_F303/board.h | 4 ++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/NANOVNA_STM32_F072/board.c b/NANOVNA_STM32_F072/board.c index f7d2f0e..0e71d6f 100644 --- a/NANOVNA_STM32_F072/board.c +++ b/NANOVNA_STM32_F072/board.c @@ -62,6 +62,25 @@ const PALConfig pal_default_config = { }; #endif +static bool needDFU(void) { + // Magick data in memory before reset + if (*((unsigned long *)BOOT_FROM_SYTEM_MEMORY_MAGIC_ADDRESS) == BOOT_FROM_SYTEM_MEMORY_MAGIC) + return true; + // init PortA (leveler port) and check press + rccEnableAHB(STM32_GPIO_EN_MASK, FALSE); + GPIOA->OTYPER = VAL_GPIOA_OTYPER; + GPIOA->OSPEEDR = VAL_GPIOA_OSPEEDR; + GPIOA->PUPDR = VAL_GPIOA_PUPDR; + GPIOA->ODR = VAL_GPIOA_ODR; + GPIOA->AFRL = VAL_GPIOA_AFRL; + GPIOA->AFRH = VAL_GPIOA_AFRH; + GPIOA->MODER = VAL_GPIOA_MODER; + if (palReadPort(GPIOA) & (1<