Собственно, накрылась 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 |................|
*
Как думаете, что это может значить? И имеет ли смысл снимать полный дамп? Гугл по ASMI-SD не показал ничего вменяемого.
ADD: Так, понял... Это почему-то содержимое CSDшки, но что оно делает на месте блоков данных я что-то не понял.