реклама на сайте
подробности

 
 
> Инициализация структуры во Flash, Дублирование области flash
pokk
сообщение May 24 2016, 04:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Добрый день , подскажите как можно продублировать инициализированную структуры во flash.
Дело в том, что понадобилось сохранять настройки программы в flash, но для зашиты их решил сделать несколько дубликатов.
Делаю это примерно так:
Код
S_GlobalSettingAllVar DefaultGlobalSettingAllVar={ //Начальные настройки(устанавливаются после нажатия кнопки Reset)
   .NetSetting={
      .mac = {0x00, 0x08, 0xdc, 0xab, 0xc1, 0x11},   //6
      .ip = {192, 168, 1, 4},                     //4
      .sn = {255, 255, 0, 0},
      .gw = {192, 168, 0, 0},
   },
   .Password={"fghfgh"},
}
S_GlobalSettingAllVar GlobalSettingAllVar={ //рабочая структура
   .NetSetting={
      .mac = {0x00, 0x08, 0xdc, 0xab, 0xc1, 0x11},   //6
      .ip = {192, 168, 1, 4},                     //4
      .sn = {255, 255, 0, 0},
      .gw = {192, 168, 0, 0},
   },
   .Password={"fghfgh"},
}

В принципе можно так же сделать и дублирующие структуры, но в этом варианте мне не нравится то что при необходимости поменять значения, то придется менять во всех дублирующих структурах и можно в какой-то ошибиться.
Хотелось бы сделать инициализацию в одной из структур, которая при прошивки разместилась по нескольким адресам.

Как заставить компилятор разместить структуры во flash даже если по коду они не используются?(по коду использую адрес)

Ps. компилятор IAR stm32, но думаю это не сильно принципиально.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение May 24 2016, 06:42
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



А ещё лучше поставить сбоку FRAM и вообще больше не париться.
Писать что угодно, куда, когда и сколько угодно раз.
Счетчик моточасов, например, ежесекундно переписывать.

А с флешью я нынче работаю так:
есть несколько сегментов, в которых лежат одинаковые копии данных, подписанные CRC.

При считывании проверяется CRC и при несовпадении считывается следующая копия, а испорченная восстанавливается.
При записи происходит проверка целостности.

Если все копии испорчены (не представляю, как такое может случиться) записываются дефолтные данные. Собственно, это происходит при первом включении, когда в инфо сегментах FF..FF


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pokk   Инициализация структуры во Flash   May 24 2016, 04:27
- - ViKo   Скопировать пословно. У меня есть структуры с теку...   May 24 2016, 04:42
- - jcxz   Цитата(pokk @ May 24 2016, 10:27) Дело в ...   May 24 2016, 04:51
- - Сергей Борщ   QUOTE (pokk @ May 24 2016, 07:27) В принц...   May 24 2016, 05:34
- - pokk   ЦитатаА какой сакральный смысл в нескольких копиях...   May 24 2016, 06:35
|- - MrYuran   Цитата(pokk @ May 24 2016, 09:35) По этом...   May 24 2016, 06:45
|- - jcxz   Цитата(pokk @ May 24 2016, 12:35) 1) посл...   May 24 2016, 08:40
|- - k155la3   Цитата(pokk @ May 24 2016, 09:35) . . . ....   May 25 2016, 06:01
- - pokk   ЦитатаА с флешью я нынче работаю так: есть несколь...   May 24 2016, 06:45
- - ViKo   Да, у меня тоже есть CRC в структурах. Если она не...   May 24 2016, 06:48
- - Jenya7   я делал так Кодvoid LoadFlashParams(void) ...   May 24 2016, 10:27
- - pokk   ЦитатаЕсли был какой-то сбой, то скорей всего у Ва...   May 24 2016, 10:30
|- - jcxz   Цитата(pokk @ May 24 2016, 16:30) С чего ...   May 25 2016, 04:59
- - pokk   ЦитатаИ какой же у Вас процесс модификации структу...   May 25 2016, 09:13
- - jcxz   Цитата(pokk @ May 25 2016, 15:13) Да все ...   May 25 2016, 09:21
- - ШСА   Цитата(pokk @ May 25 2016, 12:13) Да все ...   May 25 2016, 11:13
- - jcxz   Цитата(ШСА @ May 25 2016, 17:13) Кроме вс...   May 25 2016, 11:22


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016