From d2c59430141b2bc1b978d69e32c3163bc1e78fa4 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 27 Nov 2020 16:23:14 +0100 Subject: [PATCH] configuration --- cube/User/Src/config.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/cube/User/Src/config.c b/cube/User/Src/config.c index ae20464..9090435 100644 --- a/cube/User/Src/config.c +++ b/cube/User/Src/config.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -29,13 +30,18 @@ t_configBlock* getConfig() { void configInit() { - coloredMsg(LOG_BLUE, false, "cfg ci Reading configuration block from eeprom"); - eepromReadConfigBlock(0, &mainConfigBlock); + bool configIsInvalid = false; + do { + coloredMsg(LOG_BLUE, false, "cfg ci Reading configuration block from eeprom"); + eepromReadConfigBlock(0, &mainConfigBlock); - if (mainConfigBlock.configMagic != CONFIG_MAGIC) { - coloredMsg(LOG_BLUE, false, "cfg ci Invalid configuration block read from eeprom"); + if (mainConfigBlock.configMagic != CONFIG_MAGIC) { + configIsValid = true; - eepromWriteConfigBlock(0, &defaultConfigBlock); - coloredMsg(LOG_BLUE, false, "cfg ci Default configuration block written to eeprom"); - } + coloredMsg(LOG_BLUE, false, "cfg ci Invalid configuration block read from eeprom"); + + eepromWriteConfigBlock(0, &defaultConfigBlock); + coloredMsg(LOG_BLUE, false, "cfg ci Default configuration block written to eeprom"); + } + } while (configIsInvalid); } \ No newline at end of file