Перейти к содержанию
    

nand + yaffs

Сегодня заметил, что после интенсивной работы с файловой системой появилась несколько десятков битых блоков.

Использую NAND512W3A0AN6, ФС yaffs, ОС uClinux.

Подскажите, люди добрые, куда копать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сегодня заметил, что после интенсивной работы с файловой системой появилась несколько десятков битых блоков.

Использую NAND512W3A0AN6, ФС yaffs, ОС uClinux.

Подскажите, люди добрые, куда копать.

1. Размонтируйте перед выключением.

2. В JFFS2 имеется некий "интелектуальный" алгоритм перепроверки блока перед тем как его пометить бэд. Как в yaffs - не знаю, но наверное нет.

3. Копайте в сторону уменьшения интенсивности работы с файловой системой на стирание/запись.

Пара-тройка десятков бэдблоков на NAND512W3A за примерно 1000 стираний это нормально.

Встречались чипы, на которых бэды появлялись с 2-3 цикла перезаписи. Их количество должно перстать расти где-то на 50 бэдблоке. Статистика крупносерийная.

Хотя встречались и чипы, выдерживающие более 2млн циклов без появления новых.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема проявлась через несколько часов работы. Закончилась тем, что основная масса блоков помечается как bad (подозреваю, что не пометились только блоки которые не пытались перезаписывать).

После стирания всей флеш - ФС снова нормально работает (пока еще).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема проявлась через несколько часов работы. Закончилась тем, что основная масса блоков помечается как bad (подозреваю, что не пометились только блоки которые не пытались перезаписывать).

После стирания всей флеш - ФС снова нормально работает (пока еще).

Ну тогда похоже глюки yaffs.

Помеченный как BAD блок можно стереть, и он будет выглядеть "как новенький". У Samsung не стираются блоки, помеченные производителем. У ST не помню.

Попробуйте посмотреть spare область помесенного yaffs блока. Что там есть и как оно кореспондируется с мануалом. Если не ошибаюсь, сектор 512 байт у этой флеши, значит что записано в spare[5].

Возможно в yaffs (я с этой фс не работал) есть что-то наподобие структуры

struct spare {
char X;
int ECC;
char Y;
}

И тут вопрос с выравниванием.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...