Цитата:
Сергей из soft-center.ru говорит, что если "изменить ECC на один байт (в предалах кооректирующей способности кода), то контроллер возможно пересчитает его на верный", кто первый проверит? gregorio куда то пропал. |
Цитата:
|
Цитата:
|
пробовал менять целиком, карта работать перестаёт.
на один байт менять не пробовал, сегодня займусь |
Yokel, будут гарантии, скинемся, говновопрос.
|
Yokel, ну это ведь только для одной карты по сути.. ибо на всех он в разных местах лежит
gregorio добавил 24.11.2011 в 16:31 поменял один байт в ecc, интересно себя ведёт. возможно из-за непропая, щас проверю еще gregorio добавил 24.11.2011 в 16:42 мило. после изменения одного байта ecc заработала(правда потребовалал себя форматнуть) gregorio добавил 24.11.2011 в 16:51 но увы, на особой карте, файлы которой очень привередливы к карте памяти она в очередной раз выдала NG(((( |
что выдала, какой NG? Выпаяй микруху посмотри что с блоком!
|
Yokel, байт как был изменён, так и остался)
|
gregorio, карта перестала работать или, что с ней случилось?
|
Yokel, карта как карта работает, мсид правильный выдаёт, но как сервисная не работает(ошибку выдаёт)
gregorio добавил 24.11.2011 в 19:47 почти полностью уверен что с известным всем значением msid она всё-равно будет работать, и прошивать консоль. но для моих целей вариант не подходит. |
Я думаю, что смена ECC ни к чему не приведёт. Это равнозначно, что смена MSID, как и смена ECC.
И в том и в другом случае ECC будет неадекватна. Поэтому контроллёр занесёт такой блок в bad-block. Я считаю, что ECC должен подсчитать сам контроллёр или научиться подсчитывать его самостоятельно. А чтобы контроллёр подсчитывал ECC, нужно логически через него записывать этот блок/сектор. Тогда контроллёр сам подсчитает контролку всем переданным через него секторам. Это можно сделать, только если ему разрешить запись в защищённую сервисную область. Но, как мы знаем, эта область защищена от перезаписи. Чтобы разрешить запись, нужно замкнуть ножку протектора на землю. |
ErikPshat, правильно мыслите товарищ)
а по теме, щас займусь поиском. после ремонта своей приставки, убил тестами этих карт ей картридер.( |
Кто в Си шарит? Вот исходники Рида-Соломона http://www.schifra.com/downloads/schifra.zip надо их курить! По екзамплу получается для 249 байт данных рассчитать 6 байт ECC, по котором можно потом опять данные восстановить!
|
Вложений: 1
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач). Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени. |
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели. http://www.elnec.com/sw/an_elnec_nand_flash.pdf http://www.elnec.com/sw/samsung_ecc_...m_for_512b.pdf В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков. 1,2,3 байты - номер блока 4, 5 - зарезервировано 6 - метка бэд-блока 7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан 10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке? 12-16 - зарезервировано. с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим. |
Цитата:
Yokel добавил 25.11.2011 в 18:16 Цитата:
|
Цитата:
Вот чем Samsung пользуется: Hamming code ECC is recommended to recover the error. Источник |
Карта 2 Гига имеет 2 банка по 1 Гигу.
1 Гб = 1073741824 байт. Значит 2097152 секторов. Получается 524288 страницы. А это всего лишь 8192 блоков. Значит в двух банках 16384 блоков или 0х4000. |
Цитата:
|
Frostegater, вот здесь какой-то пак:
http://rscode.sourceforge.net/ http://sourceforge.net/projects/rscode/ |
Текущее время: 02:39. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.