From b49f3edadf1c4629bad99cb75ddd84c8f9d2e6a4 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Sat, 25 Jul 2020 19:15:44 +0300 Subject: [PATCH] Fix save slot area place (last 20k) --- STM32F303xC.ld | 4 ++-- nanovna.h | 30 +++++++++++++++++------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/STM32F303xC.ld b/STM32F303xC.ld index c804623..179d3be 100644 --- a/STM32F303xC.ld +++ b/STM32F303xC.ld @@ -19,14 +19,14 @@ */ MEMORY { - flash0 : org = 0x08000000, len = 192k + flash0 : org = 0x08000000, len = 236k flash1 : org = 0x00000000, len = 0 flash2 : org = 0x00000000, len = 0 flash3 : org = 0x00000000, len = 0 flash4 : org = 0x00000000, len = 0 flash5 : org = 0x00000000, len = 0 flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x08030000, len = 64k + flash7 : org = 0x0803B000, len = 20k ram0 : org = 0x20000000, len = 40k ram1 : org = 0x00000000, len = 0 ram2 : org = 0x00000000, len = 0 diff --git a/nanovna.h b/nanovna.h index 46b8bd6..be2b419 100644 --- a/nanovna.h +++ b/nanovna.h @@ -706,20 +706,24 @@ extern const char * const unit_scale_text[]; #if 1 #define SAVEAREA_MAX 9 -// config save area -#define SAVE_CONFIG_ADDR 0x0801B000 +// config save area (see flash7 area start) +#define SAVE_CONFIG_ADDR 0x0803B000 +// Minimum for save slot +#define SAVE_CONFIG_SIZE 0x800 +// Minimum for save slot +#define SAVE_PROP_SIZE 0x800 // setting_t save area -#define SAVE_PROP_CONFIG_0_ADDR 0x0801B800 -#define SAVE_PROP_CONFIG_1_ADDR 0x0801C000 -#define SAVE_PROP_CONFIG_2_ADDR 0x0801C800 -#define SAVE_PROP_CONFIG_3_ADDR 0x0801D000 -#define SAVE_PROP_CONFIG_4_ADDR 0x0801D800 -#define SAVE_PROP_CONFIG_5_ADDR 0x0801E000 -#define SAVE_PROP_CONFIG_6_ADDR 0x0801E800 -#define SAVE_PROP_CONFIG_7_ADDR 0x0801F000 -#define SAVE_PROP_CONFIG_8_ADDR 0x0801F800 - -#define SAVE_CONFIG_AREA_SIZE (0x0801F800 - SAVE_CONFIG_ADDR) // Should include all save slots +#define SAVE_PROP_CONFIG_0_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 0*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_1_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 1*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_2_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 2*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_3_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 3*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_4_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 4*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_5_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 5*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_6_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 6*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_7_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 7*SAVE_PROP_SIZE) +#define SAVE_PROP_CONFIG_8_ADDR (SAVE_CONFIG_ADDR + SAVE_CONFIG_SIZE + 8*SAVE_PROP_SIZE) +// Used for erase all config/prop data see flash7 area size +#define SAVE_CONFIG_AREA_SIZE (SAVE_CONFIG_SIZE + SAVEAREA_MAX*SAVE_PROP_SIZE) // Should include all save slots #else #define SAVEAREA_MAX 4