LINUX.ORG.RU
ФорумAdmin

Подсобите вытащить инфу с uSD

 ,


0

3

Собственно, накрылась uSD карта на 32 гига, бэкапа не было. Просто перестала определяться всеми возможными SDIO ридерами, в отладке на мелкой эмбеддед железяке видно что даже самая первая команда не проходит. А инфа была нужная. В общем, поняв что SDIO интерфейс труп, решил пнуть легаси SPI. Авось повезет. С матами собрал на STM32VL дискавери тестовый стенд, подцепил карту, наваял немного кода, который инициализирует карту, выводит инфу в консоль на уарт и дампит данные по StLink'у Выглядит оно примерно так на болезной карте в отладочной консольке:

Necromant's SD rescue device
Powered by Antares 0.2-rc1, Insane Mushroom git commit 4b11d5c19e4037f3cca32fd522cf2b5b747b89ae
System running at 24000000
spi: initializing hardware
sd: initialising card
sd: Card ready. type: 2 version: 2 SHDC: yes
sd: manufacturer_id  0x4
sd: oem              A
sd: revision         4.4 
sd: serial           0x3000000
sd: manufactured     6/2001
sd: capacity         31897681920 bytes (30420 MiBs)
sd: content          original
sd: write_prot       off
sd: tmp write_prot   off
stlink: Waiting for st-link terminal
stlink: terminal ready, initiating data dump
Dumping block 6692/62300160 

На вид все хорошо, вот только... Смущает что год выпуска расшифровался как 6/2001 и серийник подозрительный. Но от раза к разу оно не меняется, объем вроде бы правильный из CSD выдергивается.

Ну что же, начинаем дампить данные. И вот тут я вижу лютый треш:

00000000  04 16 41 53 4d 49 2d 53  44 03 00 00 00 00 16 f1  |..ASMI-SD.......|
00000010  00 7f 00 32 1f 5b 80 00  36 db bf bf 96 c0 00 01  |...2.[..6.......|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  6f 00 00 10 00 00 02 2e  00 00 00 00 00 00 00 00  |o...............|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  04 16 41 53 4d 49 2d 53  44 03 00 00 00 00 16 f1  |..ASMI-SD.......|
00000210  00 7f 00 32 1f 5b 80 00  36 db bf bf 96 c0 00 01  |...2.[..6.......|
00000220  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000230  6f 00 00 10 00 00 02 2e  00 00 00 00 00 00 00 00  |o...............|
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*

Это нихрена не похоже на таблицу разделов. Уж ее-то я ночью разбуди узнаю. И этот кусок повторяется насколько хватило начальных 5ти минутных дампов. (Полный дамп делать придется порядка 20 дней как минимум, максимальная скорость которую получилось сделать - поверх StLink'а 24 кбайта/сек, другой отладки под рукой сейчас нет)

Как думаете, что это может значить? И имеет ли смысл снимать полный дамп? Гугл по ASMI-SD не показал ничего вменяемого.

ADD: Так, понял... Это почему-то содержимое CSDшки, но что оно делает на месте блоков данных я что-то не понял.

★★★★★

Последнее исправление: ncrmnt (всего исправлений: 1)

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

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

1. Там она была. 2. Дампится почему-то вместо блока данных CSD, на других shdc картах все нормально. 3. У CSD неверный CRC ещё до кучи. 4. Все плохо.

ncrmnt ★★★★★
() автор топика

судя по всему контроллеру карточки труба. ищи ее брата и перепаивай если это возможно.

MikeDM ★★★★★
()
Ответ на: комментарий от MikeDM

Карта микросд, это ж насколько помню - монтаж чип-на-плату на тончайший текстолит с последующей заливкой компаундом. Перепаивать такое нереал.

ncrmnt ★★★★★
() автор топика

С матами собрал на STM32VL дискавери тестовый стенд, подцепил карту, наваял немного кода, который инициализирует карту, выводит инфу в консоль на уарт и дампит данные по StLink'у

Вот вроде как не дурак, руки растут правильно и должен понимать что железо не вечное, но ...

32 гига, бэкапа не было... инфа была нужная

как-то не коррелирует с вышесказанной похвалой.

P.S. Все это здесь коротко называют «ССЗБ»

sdio ★★★★★
()

так и пиши «µ»! или ты фрибсд на сервере с десктопом васьмёрачькой максимальной?

anonymous
()
Ответ на: комментарий от sdio

Как тебе сказать, у меня бакапы инфы с телефона автоматом, сразу как на зарядку дома ставлю. И надо было накрыться карте именно спустя три дня после последнего синка, когда там осела нужная инфа. Как говорится, и про старуху бывает порнуха (ц)

ncrmnt ★★★★★
() автор топика

Так, методом тыка понял, что проблема кажется в обрыве контакта где-то в карте (поведение меняется при давлении на карту). На выхах буду пробовать нагрев трупика в тисках.

ncrmnt ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

На выхах буду пробовать нагрев трупика в тисках.

Может тогда уж корпус вскрыть и платку перепаять?

Впрочем похоже что в этом вопросе ты тут лучше всех разбираешься

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

На SD это реально. на микро - не вариант, там корпуса нет даже. Только компаунд. Есть конечно вариант стравить компаунд... Хм... В тред призывается Dorif. Dorif, подскажи чем бы стравить компаунд и пластик не повредив меди и текстолиту?

ncrmnt ★★★★★
() автор топика
Ответ на: комментарий от Dorif

Микросд карточки, там стеклотекстолит + медь + свинцовооловянный припой, их трогать не надо. А внешняя часть пластикоподобный компаунд, был бы ты в мск, закинул бы тебе пару китайских на опыты.

ncrmnt ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Пошли по почте неисправных сдшек. Всё равно мне быстро становится нефиг делать в лабе, ибо справляюсь быстро. А тут хоть чем заняться будет.

Dorif ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.