GenaSPB 11 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Встроенный flash 105-го не корректируется (DocID13902 Rev 16). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Встроенный flash 105-го не корректируется (DocID13902 Rev 16). Вообще-то это следует из той цитаты, которую привёл Сергей Борщ. Там сказано, что значение 0x0000 можно записать поверх любого другого. Это сразу исключает ECC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Это сразу исключает ECC.Я думал, что как раз наоборот. FFFF - стертая память, 0000 - полностью записанная, исправляющий код к этому числу тоже равен нулю и может быть записан поверх любого предыдущего, как и само число 0000 может быть записано поверх любого другого. Т.е. это допустимая комбинация, не приводящая к ошибке ECC. Все остальные "дозаписи" приводят к ошибке ECC и поэтому аппаратно запрещены. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Если мне не изменяет память, то (да, не F105) у L162 очищеная Flash - 00H. Навряд ли будет отличаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба исправляющий код к этому числу тоже равен нулю и может быть записан поверх любого предыдущего Код ECC должен защищать блок размером побольше, чем 2 байта, иначе смысла нет. Не существует такой код ECC, у которого при обнулении любого 16-битного слова в коде биты только сбрасываются и не устанавливаются. Так что не получится. Если же имеется в виду контрольная сумма, то это другое. ECC - error correcting code - код, исправляющий ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Вот что написано в datasheet Reference manual на упомянутый выше STM32L0x1 ECC (Error Correction Code): 6 bits stored for every word to recognize and correct just one error Круто, исправляет одиночную ошибку в слове! Похоже, ECC есть в МК с EEPROM памятью. Флэш тоже корректируется, а то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Код ECC должен защищать блок размером побольше, чем 2 байта, иначе смысла нет.Почему смысла нет? Не существует такой код ECC, у которого при обнулении любого 16-битного слова в коде биты только сбрасываются и не устанавливаются. Так что не получится.Недопонял. У БЧХ нулевое слово дает нулевые проверочные биты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Почему смысла нет? С точки зрения расхода памяти эффективнее защищать более крупные блоки. Хотя, как отметил ViKo, у STM32L0x1 ECC защищает 32-битные слова, так что я был неправ. Недопонял. У БЧХ нулевое слово дает нулевые проверочные биты. Имелся в виду случай, когда размер защищённого блока больше, чем гранулярность операции записи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
umup 0 13 февраля, 2017 Опубликовано 13 февраля, 2017 (изменено) · Жалоба а нельзя писать в 2 разных слова ? [CENSORED], или 2 байт жалко ? Изменено 13 февраля, 2017 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 14 февраля, 2017 Опубликовано 14 февраля, 2017 · Жалоба а нельзя писать в 2 разных слова ? [CENSORED], или 2 байт жалко ? Прочитайте, пожалуйста, вторую строку самого первого сообщения. Оттуда вполне очевидно следует: НЕТ, НЕЛЬЗЯ, censored. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться