1
0
forked from me/IronOS

Save settings on change only / All builds OK (#1699) (#1704)

This commit is contained in:
Ivan Zorin
2023-06-18 07:31:05 +03:00
committed by GitHub
parent 4c5e885363
commit 4d7e4f41e3
11 changed files with 12 additions and 13 deletions

View File

@@ -176,3 +176,4 @@
#endif
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))

View File

@@ -10,9 +10,6 @@
#include "stm32f1xx_hal.h"
#include "string.h"
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))
void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
FLASH_EraseInitTypeDef pEraseInit;
pEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;

View File

@@ -218,3 +218,4 @@
#endif
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (63 * 1024))

View File

@@ -10,8 +10,6 @@
#include "stm32f1xx_hal.h"
#include "string.h"
#define SETTINGS_START_PAGE (0x08000000 + (63 * 1024))
void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
FLASH_EraseInitTypeDef pEraseInit;
pEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;

View File

@@ -166,5 +166,6 @@
#endif
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))
#define HAS_POWER_DEBUG_MENU

View File

@@ -10,7 +10,7 @@
#include "gd32vf103_libopt.h"
#include "string.h"
#define FMC_PAGE_SIZE ((uint16_t)0x400U)
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))
void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
/* unlock the flash program/erase controller */

View File

@@ -168,3 +168,5 @@
#endif
#define FLASH_LOGOADDR (0x23000000 + (1022 * 1024))
#define FLASH_PAGE_SIZE (1024)
#define SETTINGS_START_PAGE (1023 * FLASH_PAGE_SIZE) // Hal auto offsets base addr

View File

@@ -10,10 +10,6 @@
#include "hal_flash.h"
#include "string.h"
#define FLASH_PAGE_SIZE (1024)
#define SETTINGS_START_PAGE (1023 * FLASH_PAGE_SIZE) // Hal auto offsets base addr
void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
BL_Err_Type err = flash_erase(SETTINGS_START_PAGE, FLASH_PAGE_SIZE);
err = flash_write(SETTINGS_START_PAGE, buffer, length);

View File

@@ -167,3 +167,4 @@
#endif
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (63 * 1024))

View File

@@ -10,8 +10,6 @@
#include "stm32f1xx_hal.h"
#include "string.h"
#define SETTINGS_START_PAGE (0x08000000 + (63 * 1024))
void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
FLASH_EraseInitTypeDef pEraseInit;
pEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;

View File

@@ -105,7 +105,11 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
};
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));
void saveSettings() { flash_save_buffer((uint8_t *)&systemSettings, sizeof(systemSettingsType)); }
void saveSettings() {
if (memcmp((void *)SETTINGS_START_PAGE, (void *)&systemSettings, sizeof(systemSettingsType))) {
flash_save_buffer((uint8_t *)&systemSettings, sizeof(systemSettingsType));
}
}
bool loadSettings() {
// We read the flash