Обновить
16K+
175

Работаю с железками. Могу паять, могу не паять

365
Рейтинг
79
Подписчики
Отправить сообщение

Спасибо! Линейная алгебра везде.

Делал "приборную панель" в детскую машинку-каталку. Нужно было на экране нарисовать стрелочки. Поворот стрелочки на произвольный угол - вот уже и матричное умножение.)

Мне кажется, или похоже на eMMC?

Большое спасибо за ссылку, очень интересное мероприятие. Увидел много знакомых людей и изделий, например, Микро-80, за которым слежу с самой первой серии.

А историю про "плохо зашитые ячейки" узнал от тех, кто паял/собирал АОНы в то время. В нашем городе Н эти аппараты продавались на радиорынке.

Отлично, а коррекция и сборка дампа через PC3000, Flash Extractor, Visual NAND Reconstructor или что-то другое?

Спасибо, исправил

Спасибо! К сожалению, чаще всего - нет, так как даже если найти SD-карту с такой же микросхемой NAND памяти и повезет, что контроллер тоже совпал, может отличаться его конфигурация. Например, расположение данных на странице. В моем случае идут данные и символы коррекции подряд, а могут идти сначала 8 секций данных, а потом 8 секций корректирующих символов. Или размер сектора быть не 1024, а 512 байт. Ну это по моему мнению.

По 2-3 ошибки было почти в каждом секторе. Секторов без ошибок были единицы на весь дамп.

Кстати, корреляции между какими-то отдельными битами адреса и страницами с невосстановимыми ошибками замечено не было.

Я считывал дамп несколько раз:

Сначала просто полный дамп без инверсии и коррекции, потом полный дамп с 128 попытками чтения и новой коррекции (причем ошибки оставались только в 1 cell из 8 в page), затем отдельно вычитал именно эти страницы на разных напряжениях. И уже в конце, для чистоты эксперимента, после написания всей статьи, повторил последние шаги. Ошибки остались ровно в тех адресах, что и в прошлый раз.

Кстати, одна из проблем, о которой вспомнил: я снижал ток выходных падов stm32 (ведь я думал, что чем круче фронт, тем быстрее и лучше будет работа), но индуктивные выбросы порождали наводки и ошибки. Так что разводка тоже имеет место быть.

Спасибо, у меня опытные учителя.

История от одного из них: на старых АОНах были хитрые кастомные прошивки, которые нельзя было скопировать, так как после простого клонирования микросхемы памяти, они не работали.

Секрет заключался в программировании определенных ячеек памяти на пониженном напряжении. В результате чего получалась не дошитая ячейка, которая нестабильно читалась. В прошивке была проверка, что если из этих ячеек за некоторое количество повторений читаются, хоть иногда, разные данные, то прошивка стартует.

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

Вот такие истории старой школы)

Большое спасибо! Нет, в этом году я последний год, как "молодежь"

Спасибо, я старался сделать так, чтобы почти весь материал, который необходим для понимания статьи, содержался в самой статье. Мне кажется, что это должно упростить порог "входа в тему", чтобы эта область стала чуточку дружелюбней

Спасибо. Не вижу смысла лукавить, хорошая статья пишется долго. Изначально это был "вызов себе", но когда я получил "грязный дамп" из первой части, то точно решил, что опубликую результат.

Возможно, моя продуктивность оставляет желать лучшего, но над некоторыми кусками кода в bchlib.c я думал несколько вечеров, особенно над превращением оптимизированного табличного метода xor в читаемый xor с проверкой и сдвигом.

К сожалению, мне трудно запоминается сухая теория без практического применения. Алгебра с ее фундаментальными понятиями групп, колец, полей и т.д. была в вузе в 2010-2011гг, но когда я стал разбираться в изложенном в статье материале, я выглядел как Ди Каприо из этого мема)

Жаль, не было теории кодирования, но мне кажется, что на тот момент, она бы тоже прошла как "материал для сдачи сессии"

Я поделился статьей с моим преподавателем Алгебры, думаю, что она тоже была приятно удивлена.

Спасибо. Но, честно скажу, было трудно сдержать концентрацию и не потерять мысль на такой большой дистанции.

Когда я собрал первый дамп, до всей математики, тоже думал, что большую часть работы сделал. Но как же я ошибался...

Примерно 5000 секторов по 1кб остались с неисправляемыми ошибками (в реальности с дефектами было около 2% файлов). С учётом того, что примерно столько же удалось исправить "играя напряжением питания", то заряд всё-таки уплыл.

Неожиданно. Это не было пасхалкой)

Только за. Надеюсь, я тоже нигде не допустил грубых ошибок.

Алгоритм оказался намного проще (как мне показалось), чем описанный в вашей статье.

На сколько я понял, это тоже не БЧХ в чистом виде, а что-то оптимизированное под быструю аппаратную обработку.

Используется везде, но что меня удивило: либо я плохо искал, либо нигде нет хоть какого-нибудь разбора такого алгоритма кодирования/декодирования. В том числе, на отличном, от русского, языке.

Информация

В рейтинге
4-й
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность