Сообщение от Korugo
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели.
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
Сообщение от Frostegater
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
|
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!
Последний раз редактировалось Yokel; 25.11.2011 в 18:16.
Причина: добавил, подумав
|