Улучшение структуры с флагами
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
- Инициализировать каждый элемент структуры функцией @ref InitSettingsToMem
|
||||
- Добавить @ref WriteSettingsArrayToMem и @ref ReadSettingsArrayFromMem для записи/считывания
|
||||
каждого элемента структуры в память
|
||||
- Выставлять флаг @ref update_settings_flag для записи настроек в память,
|
||||
- Выставлять флаг @ref f.settings_need_to_update для записи настроек в память,
|
||||
когда необходимо это сделать (само по себе оно не может определить когда надо записать,
|
||||
т.к. нет буфера для отслеживания изменений)
|
||||
|
||||
@@ -58,30 +58,36 @@ typedef struct
|
||||
#define MEMORY_ERROR_WRITE ((uint32_t)(1<<1)) ///< Бит ошибки - запись
|
||||
#define MEMORY_ERROR_READ ((uint32_t)(1<<2)) ///< Бит ошибки - чтение
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned settings_need_to_update:1;
|
||||
unsigned settings_is_updated:1;
|
||||
}SettingsFlagsTypeDef;
|
||||
|
||||
/**
|
||||
* @brief Структура для хранения настроек устройства.
|
||||
* @details Содержит указатели на настройки и другие параметры для их обработки.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
MEMSPI_HandleTypeDef *hmemspi; ///< Указатель на хендл для работы с памятью
|
||||
MEMSPI_HandleTypeDef *hmemspi; ///< Указатель на хендл для работы с памятью
|
||||
|
||||
#ifdef SETTINGS_USE_WEAR_LEVELING_FLASH
|
||||
ParamsFlashHandle_t flash_handle; ///< Хендл для равномерного использования флеш памяти
|
||||
ParamsFlashHandle_t flash_handle; ///< Хендл для равномерного использования флеш памяти
|
||||
#endif
|
||||
|
||||
#ifdef SETTINGS_USE_SETTINGS_FROM_BUFFER
|
||||
uint8_t *buffer;
|
||||
#endif
|
||||
|
||||
SettingArrayTypeDef setarr[32]; ///< Структура настроек для хранения в памяти
|
||||
SettingArrayTypeDef setarr[32]; ///< Структура настроек для хранения в памяти
|
||||
uint8_t setarr_count;
|
||||
|
||||
uint32_t start_adr; ///< Начальный адрес в памяти для записи настроек
|
||||
uint32_t settings_size; ///< Размер всего массива настроек
|
||||
uint32_t start_adr; ///< Начальный адрес в памяти для записи настроек
|
||||
uint32_t settings_size; ///< Размер всего массива настроек
|
||||
|
||||
uint8_t update_settings_flag; ///< Флаг для обновления настроек в памяти
|
||||
uint32_t settings_error; ///< Флаг ошибки настроек
|
||||
SettingsFlagsTypeDef f; ///< Флаг для обновления настроек в памяти
|
||||
uint32_t settings_error; ///< Флаг ошибки настроек
|
||||
}SettingsTypeDef;
|
||||
extern SettingsTypeDef Settings;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user