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

 
 
> Инициализация структуры во 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
Ответов
Сергей Борщ
сообщение May 24 2016, 05:34
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (pokk @ May 24 2016, 07:27) *
В принципе можно так же сделать и дублирующие структуры
В ваших структурах есть один большой недостаток - в них нет никакой контрольной суммы, а значит у вас нет критерия для выбора - какая из этих копий содержит правильные данные. Я в своих программах делаю так: в программе хранится один образ настроек "по-умолчанию", в отдельном сегменте для настроек хранятся текущие настройки. В самих исходниках этим текущим настройкам никакое значение не присвоено, этот сегмент даже помечен как незагружаемый, чтобы не забивать настройки заново после каждой перепрошивки. При запуске программа считает контрольную сумму текущих настроек и, если она не совпала, переписывает текущие настройки значениями "по-умолчанию". Вы можете считать контрольную сумму всех копий и копировать в остальные ту, у которой контрольная сумма совпала, но не забудьте каждую копию разместить в своей странице флеша.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
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
- - 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
- - MrYuran   А ещё лучше поставить сбоку FRAM и вообще больше н...   May 24 2016, 06:42
- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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