|
NANDFlash + микроконтроллер - как бороться с битыми секторами? |
|
|
|
May 17 2016, 12:02
|
Местный
  
Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041

|
Доброго времени суток! Пишу драйвер для вот этой NAND и озадачился вопросом о битых секторах. В даташите написано, что на каждой флешке уже с завода может быть определенное количество битых секторов, и прежде чем ей пользоваться нужно при первом включении пробежаться алгоритмом, который указан все в том же даташите и запомнить адреса битых секторов. Я правильно понимаю, что мне нужна другая энергонезависимая память (например флеш на процессоре), чтобы хранить таблицу битых адресов? И нет других способов борьбы с ними?
|
|
|
|
|
 |
Ответов
|
May 17 2016, 12:26
|
Местный
  
Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041

|
Цитата(aaarrr @ May 17 2016, 17:10)  1. Битыми считаются блоки, а не сектора. Разница существенная. 2. Таблицу можно хранить в той же памяти в двух экземплярах. Да, верно блоки. Цитата(XVR @ May 17 2016, 17:10)  Зачем их запоминать? Они никуда не денуться, так что можно просто их не использовать при записи информации. Неправильно понимаете. Нужен такой алгоритм работы с FLASH, что бы он мог не использовать (как то обходить) сектора, которые являются битыми (более того, новые битые сектора могут появиться и в процессе работы) А по какому признаку отличать битый блок от небитого? В даташите ясно сказано, что при первом запуске все небитые блоки во отлчии от битых равны 0xFF, и показано, как отличить битый блок от небитого. Но как только я начал писать во флешку это признак теряется. Следовательно таблицу битых блоков можно хранить в самой же флешке, но по какому адресу ее разместить, ведь от флешки к флешке один и тот же адрес может оказаться битым. А по поводу алгоритма неиспользования битых секторов можно по-подробнее - этот как?
|
|
|
|
|
May 18 2016, 07:29
|
Знающий
   
Группа: Участник
Сообщений: 518
Регистрация: 29-09-11
Пользователь №: 67 450

|
Цитата(jcxz @ May 18 2016, 07:42)  Что значит битые блоки? Блоки которые нельзя стереть (перевести в сост. "все FF")? А дописать в них можно? битый блок содержит одну или более сбойную ячейку, т.е. может искажать информацию. Эти блоки могут беспроблемно стираться, но при последующей записи возможны ошибки, причем за счет кода с исправлением ошибок (Хэмминга и т.п.) возможно исправление этой единичной ошибки. Лучше в помеченные сбойными блоки ничего не записывать, а при штатной записи оставлять байт с признаком небитого блока равным FF. По поводу того, где хранить таблицу битых блоков - я делал считывание заголовков всех блоков при включении питания и хранение таблицы в ОЗУ.
|
|
|
|
Сообщений в этой теме
yanvasiij NANDFlash + микроконтроллер - как бороться с битыми секторами? May 17 2016, 12:02 aaarrr 1. Битыми считаются блоки, а не сектора. Разница с... May 17 2016, 12:10 XVR Цитата(yanvasiij @ May 17 2016, 15:02) В ... May 17 2016, 12:10 XVR ЦитатаНо как только я начал писать во флешку это п... May 17 2016, 13:07 yanvasiij Резюмируя вышесказанное XVR, dm.pogrebnoy , jcxz:
... May 18 2016, 06:51 jcxz Цитата(yanvasiij @ May 18 2016, 12:51) Вт... May 18 2016, 08:28  esaulenka Цитата(jcxz @ May 18 2016, 11:28) Вы увер... May 18 2016, 08:59   jcxz Цитата(esaulenka @ May 18 2016, 14:59) Во... May 18 2016, 18:26    aaarrr Цитата(jcxz @ May 18 2016, 21:26) Неужто ... May 18 2016, 20:30    sonycman Цитата(jcxz @ May 18 2016, 22:26) В обычн... May 23 2016, 09:22     jcxz Цитата(sonycman @ May 23 2016, 15:22) А в... May 23 2016, 09:35      sonycman Цитата(jcxz @ May 23 2016, 13:35) А в чём... May 23 2016, 09:44  novikovfb Цитата(jcxz @ May 18 2016, 11:28) Вы увер... May 18 2016, 12:13 esaulenka Второй способ более правильный. Табличка битых бло... May 18 2016, 07:40 yanvasiij Что-то посидел, подумал, порисовал алгоритмы всего... May 18 2016, 11:39 yanvasiij Цитата(jcxz @ May 18 2016, 23:26) ...
Это... May 19 2016, 04:02 _Ivan_33 У меня похожая задача, только нужно реализовать на... May 23 2016, 17:10 _3m Цитата(_Ivan_33 @ May 23 2016, 20:10) Воп... May 23 2016, 18:05 sonycman А вот по поводу ECC (Error Correction Code).
Как п... May 24 2016, 03:26 yanvasiij Удалось мне поднять yaffs на моем STM32F429. Единс... Jun 27 2016, 04:00 sonycman А как решили хранить таблицу бэдов?
Какой использу... Jun 27 2016, 19:26 yanvasiij Цитата(sonycman @ Jun 28 2016, 00:26) А к... Jun 28 2016, 04:33 jcxz Цитата(yanvasiij @ Jun 28 2016, 10:33) Ко... Jun 28 2016, 05:00  esaulenka Цитата(jcxz @ Jun 28 2016, 08:00) Хм.. А ... Jun 28 2016, 06:51 sonycman Цитата(yanvasiij @ Jun 28 2016, 08:33) Ес... Jun 28 2016, 07:45  esaulenka Цитата(sonycman @ Jun 28 2016, 10:45) А е... Jun 28 2016, 15:03   sonycman Цитата(esaulenka @ Jun 28 2016, 19:03) Да... Jun 28 2016, 16:29 yanvasiij Сектор 16 kB без учета spare.
Я хотел сказать ра... Jun 28 2016, 05:15 jcxz Цитата(yanvasiij @ Jun 28 2016, 11:15) Се... Jun 28 2016, 06:04 yanvasiij ЦитатаА если на нанд есть бэды до разворачивания ф... Jun 29 2016, 06:52 sonycman Цитата(yanvasiij @ Jun 29 2016, 10:52) На... Jun 29 2016, 07:32 yanvasiij ЦитатаМаркер битого блока находится не в первых дв... Jun 29 2016, 09:15 sonycman Цитата(yanvasiij @ Jun 29 2016, 13:15) Ту... Jun 29 2016, 09:51 yanvasiij Я решил описать процесс портирования yaffs, если к... Aug 31 2017, 07:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|