Skip to content

Commit

Permalink
Merge pull request #1364 from bitcraze/ToveRumar/defrag_kve_on_startup
Browse files Browse the repository at this point in the history
Storage; Defragment kve storage when starting up by default
  • Loading branch information
ataffanel authored Apr 15, 2024
2 parents 9bcb278 + 9faaa4d commit 9fe3099
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/hal/src/storage.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,14 @@
#define KVE_PARTITION_START (1024)
#define KVE_PARTITION_LENGTH (7*1024)

#define DEFAULT_DEFRAG_ON_STARTUP true

#ifdef CONFIG_DEFRAG_STORAGE_ON_STARTUP
#define DEFRAG_ON_STARTUP CONFIG_DEFRAG_STORAGE_ON_STARTUP
#else
#define DEFRAG_ON_STARTUP DEFAULT_DEFRAG_ON_STARTUP
#endif

static SemaphoreHandle_t storageMutex;

static size_t readEeprom(size_t address, void* data, size_t length)
Expand Down Expand Up @@ -127,6 +135,9 @@ void storageInit()
storageMutex = xSemaphoreCreateMutex();

isInit = true;
if (DEFRAG_ON_STARTUP) {
kveDefrag(&kve);
}
}

bool storageTest()
Expand Down
8 changes: 8 additions & 0 deletions src/modules/src/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -239,4 +239,12 @@ config PARAM_SILENT_UPDATES
about parameter updates, so this option should be enabled if you know
what you are doing.

config DEFRAG_STORAGE_ON_STARTUP
bool "Defrag_on_startup"
default y
help
This enables defragmentation of parameter storage memory everytime the
CPU is started. It increases startup time, depending on
fragmentation level.

endmenu

0 comments on commit 9fe3099

Please sign in to comment.