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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Доступ к flash памяти STM32 из программы, Дописать незаписанный байт в слово
Genadi Zawidowsk...
сообщение Feb 9 2017, 09:46
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Встроенный flash 105-го не корректируется (DocID13902 Rev 16).
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 9 2017, 10:33
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Genadi Zawidowski @ Feb 9 2017, 12:46) *
Встроенный flash 105-го не корректируется (DocID13902 Rev 16).

Вообще-то это следует из той цитаты, которую привёл Сергей Борщ.
Там сказано, что значение 0x0000 можно записать поверх любого другого. Это сразу исключает ECC.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2017, 10:40
Сообщение #18


Гуру
******

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



QUOTE (scifi @ Feb 9 2017, 12:33) *
Это сразу исключает ECC.
Я думал, что как раз наоборот. FFFF - стертая память, 0000 - полностью записанная, исправляющий код к этому числу тоже равен нулю и может быть записан поверх любого предыдущего, как и само число 0000 может быть записано поверх любого другого. Т.е. это допустимая комбинация, не приводящая к ошибке ECC. Все остальные "дозаписи" приводят к ошибке ECC и поэтому аппаратно запрещены.


--------------------
На любой вопрос даю любой ответ
"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
Obam
сообщение Feb 9 2017, 10:49
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Если мне не изменяет память, то (да, не F105) у L162 очищеная Flash - 00H. Навряд ли будет отличаться.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 9 2017, 11:01
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Сергей Борщ @ Feb 9 2017, 13:40) *
исправляющий код к этому числу тоже равен нулю и может быть записан поверх любого предыдущего

Код ECC должен защищать блок размером побольше, чем 2 байта, иначе смысла нет. Не существует такой код ECC, у которого при обнулении любого 16-битного слова в коде биты только сбрасываются и не устанавливаются. Так что не получится.
Если же имеется в виду контрольная сумма, то это другое. ECC - error correcting code - код, исправляющий ошибки.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 9 2017, 11:38
Сообщение #21


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Вот что написано в datasheet Reference manual на упомянутый выше STM32L0x1
Цитата
ECC (Error Correction Code): 6 bits stored for every word to recognize and correct just one error

Круто, исправляет одиночную ошибку в слове!
Похоже, ECC есть в МК с EEPROM памятью. Флэш тоже корректируется, а то.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2017, 12:21
Сообщение #22


Гуру
******

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



QUOTE (scifi @ Feb 9 2017, 13:01) *
Код ECC должен защищать блок размером побольше, чем 2 байта, иначе смысла нет.
Почему смысла нет?
QUOTE (scifi @ Feb 9 2017, 13:01) *
Не существует такой код ECC, у которого при обнулении любого 16-битного слова в коде биты только сбрасываются и не устанавливаются. Так что не получится.
Недопонял. У БЧХ нулевое слово дает нулевые проверочные биты.


--------------------
На любой вопрос даю любой ответ
"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
scifi
сообщение Feb 9 2017, 12:49
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Сергей Борщ @ Feb 9 2017, 15:21) *
Почему смысла нет?

С точки зрения расхода памяти эффективнее защищать более крупные блоки.
Хотя, как отметил ViKo, у STM32L0x1 ECC защищает 32-битные слова, так что я был неправ.

Цитата(Сергей Борщ @ Feb 9 2017, 15:21) *
Недопонял. У БЧХ нулевое слово дает нулевые проверочные биты.

Имелся в виду случай, когда размер защищённого блока больше, чем гранулярность операции записи.
Go to the top of the page
 
+Quote Post
umup
сообщение Feb 13 2017, 12:11
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 2-06-06
Пользователь №: 17 720



а нельзя писать в 2 разных слова ? [CENSORED], или 2 байт жалко ?

Сообщение отредактировал IgorKossak - Feb 13 2017, 19:12
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Feb 14 2017, 07:14
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(umup @ Feb 13 2017, 15:11) *
а нельзя писать в 2 разных слова ? [CENSORED], или 2 байт жалко ?

Прочитайте, пожалуйста, вторую строку самого первого сообщения.
Оттуда вполне очевидно следует: НЕТ, НЕЛЬЗЯ, censored.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 05:58
Рейтинг@Mail.ru


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