ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
12 июля
1529806 Топик полностью
IBAH (Вчера, 15:29, просмотров: 83) ответил Make_Pic на Подскажите как "красиво" загружать и хранить в памяти в микроконтроллера различные конфигурации (константы, значения переменных, условий переходов и т.д.)? Желательно с примерами кода.
Чего-то вы тут реляционную БД уже насоветуете... Красота в простоте! Как делаю я... 

В качестве епром иcпользуется FRAM.


Код.

описываю структуру епром

typedef struct

{

int32 a;

int16 b;

int8 c;

int8 CRC;

}Eprom_t;


Дефайнами определяю значения инициализации.

#define Def_a (10)

#define Def_b (20)

#define Def_c (30)


объявляю два экземпляра структуры один глобальный, один статический

Eprom_t Eprom;

static Eprom_t EpromOld;


Ну и соответственно методы.

Конструктор, вызывается пр старте МК, загружает в из епром оба экземпляра, проверяет их CRC, если СRC не сходится у одного, он востанавливается по другому. Если повреждены оба, или первый старт, то загружаются значения по умолчанию, дописывается CRC.


Главный метод, вызывается в суперлупе, сравнивает оба экземпляра, если имеется расхождение то сохраняются оба экземпляра с CRC.


В результате обращение к Епром идет как к обычным переменным.


Протестированно десятилетиями.