jcxz 242 7 мая, 2015 Опубликовано 7 мая, 2015 · Жалоба Ни разу не терялись, Это не довод. Вероятность низкая, но всё равно не годится если нужна надёжность. 1000раз не случилось в 1001й раз попадёт сбой во время записи. Если не проблема переконфигурить устройство при таком случае - то тогда на страшно. Но если ответственная область, где важна надёжность работы и трудно будет переконфигурить заново - не годится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 7 мая, 2015 Опубликовано 7 мая, 2015 · Жалоба Это не довод. Вероятность низкая, но всё равно не годится если нужна надёжность. 1000раз не случилось в 1001й раз попадёт сбой во время записи. Если не проблема переконфигурить устройство при таком случае - то тогда на страшно. Но если ответственная область, где важна надёжность работы и трудно будет переконфигурить заново - не годится. Ну в таком случае, конечно хорошо бы иметь резервную копию последних настроек, запись основных и запись копии происходит соответственно в разное время. Я такое делал, но правда не с целью защитить от потери, а с целью защитить пользователя от неумелых действий. Настроил что-то не то, откатил назад, на предыдущую конфигурацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 7 мая, 2015 Опубликовано 7 мая, 2015 · Жалоба Буду использовать внутреннюю память. Скачал исходники eeprom emulation протестировал немного мне не подходит как там реализовано, переделал вроде все работает, только почему то FLASH_EraseSector() не стирает, стирание должно заполнять сектор 0xff ? А там прошлая запись остается. Если вначале стираю потом записываю данные, данные сохраняются проблем нет. Но после стирания должно же быть 0xff? Не писать же в цикле 0xff если есть стирание. FLASH_Unlock(); while(FLASH_EraseSector(FLASH_Sector_2,VoltageRange_3)!=FLASH_COMPLETE); for(copyf = SECTOR2_ADRESS_0,dtaindex = 0; copyf<(SECTOR2_ADRESS_0+SIZE_ROM_DATA);copyf++,dtaindex++){ while(FLASH_ProgramByte(copyf,DBROM.byte[dtaindex])!=FLASH_COMPLETE); }//for FLASH_Lock(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба 1000раз не случилось в 1001й раз попадёт сбой во время записи. Это запись в обычную память, вероятность сбоя не больше, чем запись в любую ячейку памяти и уж куда меньше, чем процедура записи во флеш, т.к. там пишет не байтами, а страницами. Если произойдет сбой при записи в память, то потеряете байт или 4 байта, а в случае флеши - всю страницу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Если произойдет сбой при записи в память, то потеряете байт или 4 байта, а в случае флеши - всю страницу. Забавная выдумка. Не обманывайте неокрепшие умы. Флеш стирается постранично. А запись происходит гораздо меньшими порциями. У тех же STM32 в зависимости от подсемейства может быть и побайтовая запись, и запись 16-битными словами. Это очень удобно для эмуляции EEPROM, реализации всяческих журналов и т.п. Это только убогие флеши типа как у LPC требуют записывать гораздо более крупными пачками, потому что каждая пачка защищается кодом коррекции ошибок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Это только убогие флеши типа как у LPC требуют записывать гораздо более крупными пачками, потому что каждая пачка защищается кодом коррекции ошибок. О как! Оказывается, наличие ECC свидетельствует об убогости. Пачка 16 байт всего. Не сказал бы, что это сильно мешает эмулировать EEPROM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Это запись в обычную память, вероятность сбоя не больше, чем запись в любую ячейку памяти и уж куда меньше, чем процедура записи во флеш, т.к. там пишет не байтами, а страницами. Если произойдет сбой при записи в память, то потеряете байт или 4 байта, а в случае флеши - всю страницу. Под "сбоем" я имел в виду сбой питания (или перезагрузку по иной причине: помеха и т.п.). И вообще это относилось к Вашему подужать до 4кб, и используете встроенные часы с батарейкой, то можно просто писать в backup RAM Если так сделать, то при любом прерывании записи потеряется вся структура хранения (так как резерва по ёмкости нет). Будут потеряны все настройки и устройство возможно перестанет функционировать. Если использовать журнал, с несколькими записями и несколькими минимальными элементами стирания (>=2), то потеряется только последняя структура хранения. Но всегда будет валидная предыдущая. И при сбое питания не портится вся страница, только записываемая часть её. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба потому что каждая пачка защищается кодом коррекции ошибок. Ирония в том, что при эмуляции EEPROM в STM32 я это тоже делаю, но своими ручками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Пачка 16 байт всего. Не сказал бы, что это сильно мешает эмулировать EEPROM. Если в такой флешь хранится журнал, минимальным элементом хранения (запись) которого является структура с настройками устройства, то такая запись обычно имеет размер десятки байт (или больше). Ничего не мешает её размер подровнять до 16 байт - потери минимальны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба О как! Оказывается, наличие ECC свидетельствует об убогости. Именно так. Приблизительно как калека легко распознаётся по наличию костылей. А здоровый человек и без костылей может передвигаться. Ирония в том, что при эмуляции EEPROM в STM32 я это тоже делаю, но своими ручками. Что, прямо настоящий код, исправляющий ошибки? Или банальная контрольная сумма, как у всех? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Пачка 16 байт всего. Не сказал бы, что это сильно мешает эмулировать EEPROM.LPC177x, 178x вроде достаточно свежий? Упоминания про 16 байт в руководстве пользователя не нашел. Param2: Number of bytes to be written. Should be 256 | 512 | 1024 | 4096.Нет, я помню про раскрученный много лет назад встроенный загрузчик, и тем не менее 16 байт можно записать только недокументированными методами. Или я что-то неправильно понял? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Именно так. Приблизительно как калека легко распознаётся по наличию костылей. А здоровый человек и без костылей может передвигаться. То, что выглядит как костыль, совсем не обязательно таковым является. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба То, что выглядит как костыль, совсем не обязательно таковым является. Конечно, калека может внушить себе, что его костыли - вовсе не костыли, и вообще это классно и модно. Но это его личные проблемы :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба LPC177x, 178x вроде достаточно свежий? Упоминания про 16 байт в руководстве пользователя не нашел. Действительно, у них такого нет. Для LPC11, LPC13 написано явно. Конечно, калека может внушить себе, что его костыли - вовсе не костыли, и вообще это классно и модно. Но это его личные проблемы :-) То есть серверную технику и всякие поделия на Cortex-R4 с ECC всего и вся записываем в калеки автоматом? Тут уж надо или представлять данные о (не)надежности флеш NXP, или не заниматься домыслами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 8 мая, 2015 Опубликовано 8 мая, 2015 · Жалоба Тут уж надо или представлять данные о (не)надежности флеш NXP, или не заниматься домыслами. У нас свобода слова, так что извините. Что хочу, то и говорю. Ну и то, что мнения по этому вопросу у нас отличаются, - тоже не проблема, у нас же разрешён плюрализм мнений :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться