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

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


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

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



Цитата
Если был какой-то сбой, то скорей всего у Вас часть структуры окажется стёртой (заполненной FF например) и запросто совпадёт с другой тоже стёртой и вместе они уничтожат 3-ю валидную структуру sm.gif

С чего копии окажутся стертыми? Каждая копия находится на разных страницах, тем самым когда произвожу стирание то уничтожается только 1 копия.

Цитата
И хранить в ОЗУ копию не надо (зачем тратить ОЗУ?), раз структура находится во FLASH МК. Достаточно хранить указатель на валидную копию структуры.

А как тогда перезаписать структуру ? в любом случае её надо будет считать в озу обновить и записать. В моем варианте первый шаг отбрасывается.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 25 2016, 04:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(pokk @ May 24 2016, 16:30) *
С чего копии окажутся стертыми? Каждая копия находится на разных страницах, тем самым когда произвожу стирание то уничтожается только 1 копия.

Потому что подали команду стирания и в этот момент сбой питания произошёл.
И какой же у Вас процесс модификации структуры? Вот изменилась она, что делаете? Все 3 переписываете? Или как?

Цитата(pokk @ May 24 2016, 16:30) *
А как тогда перезаписать структуру ? в любом случае её надо будет считать в озу обновить и записать. В моем варианте первый шаг отбрасывается.

В Вашем варианте я не понимаю как Вы переписываете эти структуры чтобы было безопасно?
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
- - 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 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 - 20:54
Рейтинг@Mail.ru


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