Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
14.05.2010, 21:13
|
|
Частый гость
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
SD-card
Дорогие друзья!, понимаю, что для многих тема избита, но к сожалению только недавно до них «дошел» в связи, с чем вопрос: По команде CMD 17 (адрес-00000000) принимаю данные, которые не соответствуют данным первого сектора(MBR), данные стабильны. В связи счем напрашивается собственно сам вопрос- соответсвует ли адрес 00000000, первому сектору в системе, (MBR)?
Если нет, как определить адрес MBR(Master Boot Recorder)? Спасибо.
|
|
|
|
14.05.2010, 21:30
|
|
Прописка
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
|
Re: SD-card
она может быть и не мбр.
делаю так:
читаю 0 сектор
смотрю по смещению 0x36 - если там FATXX это хорошо
иначе
читаем по смещению 0x1c6 (в этих 512 байтах)
номер сектора где мбр
там 16 бит - номер сектора
читаем этот сектор и смотрим по смещению 0x36 - если там FATXX это хорошо-иначе еррор карта, мы такую не хотим....
вот как-то так.
|
|
|
|
14.05.2010, 22:06
|
|
Частый гость
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: SD-card
Cyber спасибо, но это уже второй шаг, начиная со смещения 1BEh начинается таблица раделов(PT) я это знаю , к стати чаще она отсутствует(MBR совпадает с PBR), а на месте PT текстовая строка "Remove disks or other media.я..Disk errorя..Press any key to restart", но мне надо определить Адрес именно MBR.
Я хочу сказать, что перед MBR видимо идут резервные сектора, которые в системе не видно.
|
|
|
|
14.05.2010, 22:47
|
|
Частый гость
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: SD-card
Частично отвечаю на свой вопрос, думаю с эти столкнутся многие и почему-то он нигде толком не описан.
В начале SD карты перед MBR действительно находятся резервные сектора, их количество написано по смещению 1Ch в MBR это значение различно для разных карт, но! Чтобы его прочитать нужно опять же знать адрес MBR! У меня пока один вариант – перебирать начальные адреса(по 512) пока не встретится значение EBh(jmp), это и будет нулевой сектор(в системе)-MBR.
Может кому-то известно более «веселое» решение. Буду рад любым советам.
|
|
|
|
15.05.2010, 13:14
|
|
Прописка
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
|
Re: SD-card
приведите дамп первых 512 байт вашей sd карты...
что-то у меня с 10-ок sd-шек был от 16мб до 4 гиг и никогда я не заморачивался - и все работало.
|
|
|
Сказали "Спасибо" Cyber_RAT
|
|
|
15.05.2010, 13:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: SD-card
Похоже в этой ветке путаница с MBR и BPB.
MBR(Master Boot Record) содержит информацию об смещении BPB(BIOS Parameter Block), размере и активности разделов. Является обязательной только, если диск планируется разбивать на разделы. Общепринятое расположение MBR - первый физический сектор накопителя.
BPB(BIOS Parameter Block) содержит набор параметров, описывающих логический диск - тип файловой системы, количество секторов на кластер и т.д. Располагается в начальном секторе каждого раздела.
SD карты обычно форматируются с одним разделом, поэтому MBR на них отсутствует, а 0-й сектор занимает BPB этого единственного раздела.
Во вложении перевод спецификации FATxx от мелкософта
Последний раз редактировалось AJScorp; 09.12.2010 в 22:31.
|
|
|
|
15.05.2010, 13:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: SD-card
Обработку ФАТа на SD я делал так:
1. чтение сектора 0х000000
2. проверка сигнатуры 0xAA55 по адресу 0x1FE.
3. проверка поля BPB_BytsPerSec
если значение равно 512, то это BPB и диск единственный, проверяем тип ФС
иначе это MBR
4. проверяем наличие разделов по адресам 1BEh, 1CEh, 1DEh, 1EEh
5. поиск BPB по смещениям в таблице разделов и проверка по пуктам 2,3
Последний раз редактировалось AJScorp; 15.05.2010 в 14:51.
|
|
|
Сказали "Спасибо" AJScorp
|
|
|
15.05.2010, 17:56
|
|
Частый гость
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: SD-card
Большое спасибо. Вроде разобрался. Смутило то, что в начале в HEX-редакторе
Посмотрел нулевой сектор, и решил, что это МВR т.к. все записи в том числе и загрузочная запись присутствуют, а с карты по адресу 00000000 в начале считываются нули(т.е.загрузочная запись отсутствует), поэтому смещение1BEh (таблица разделов-PT) проверять не стал. Сейчас посмотрел несколько SD с адреса
1BEh, и убедился, что таблица разделов на месте, а на месте загрузочной записи
(c адреса 00)либо нули, либо хлам, а в HEX-редакторе открывал как логический диск, т.е. просматривал PBR-загрузочную запись раздела.что и ввело в заблуждение. Спасибо.
Последний раз редактировалось -Dreamer-; 15.05.2010 в 18:53.
|
|
|
|
15.05.2010, 19:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: SD-card
To -Dreamer-, не за что, сам в одно время разбирался с этим, была задача по замене снятых с производства ZIP-накопителей на ZIP-эмуляторы с SD/MMC картами. Если будут еще вопросы - обращайтесь в личку или на форуме )
Cyber_RAT, наличие/отсутствие строки "FATxx" по смещению 0x36, по спеку от MS, не показатель наличия/отсутствия файловой системы FAT на диске. Это зависит от фазы луны в момент написания утилиты форматирования ее разработчиками. Кроме того, строка по этому смещению доступна только для FAT12/FAT16, для FAT32 она находится по адресу 0x52.
Последний раз редактировалось AJScorp; 15.05.2010 в 20:01.
|
|
|
|
15.05.2010, 20:02
|
|
Прописка
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
|
Re: SD-card
а мне за что "не за что?"
p.s. а фат да... я не поддерживаю в своем девайсе фат выше 16... тут согласен-промашку дал.. смещение другое.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:20.
|
|