Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

SD-card

Непрочитано 14.05.2010, 21:13  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию SD-card

Дорогие друзья!, понимаю, что для многих тема избита, но к сожалению только недавно до них «дошел» в связи, с чем вопрос: По команде CMD 17 (адрес-00000000) принимаю данные, которые не соответствуют данным первого сектора(MBR), данные стабильны. В связи счем напрашивается собственно сам вопрос- соответсвует ли адрес 00000000, первому сектору в системе, (MBR)?
Если нет, как определить адрес MBR(Master Boot Recorder)? Спасибо.
Реклама:
-Dreamer- вне форума  
Непрочитано 14.05.2010, 21:30  
Cyber_RAT
Прописка
 
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
Cyber_RAT на пути к лучшему
По умолчанию Re: SD-card

она может быть и не мбр.
делаю так:
читаю 0 сектор
смотрю по смещению 0x36 - если там FATXX это хорошо
иначе
читаем по смещению 0x1c6 (в этих 512 байтах)
номер сектора где мбр
там 16 бит - номер сектора
читаем этот сектор и смотрим по смещению 0x36 - если там FATXX это хорошо-иначе еррор карта, мы такую не хотим....
вот как-то так.
Cyber_RAT вне форума  
Непрочитано 14.05.2010, 22:06  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию Re: SD-card

Cyber спасибо, но это уже второй шаг, начиная со смещения 1BEh начинается таблица раделов(PT) я это знаю , к стати чаще она отсутствует(MBR совпадает с PBR), а на месте PT текстовая строка "Remove disks or other media.я..Disk errorя..Press any key to restart", но мне надо определить Адрес именно MBR.
Я хочу сказать, что перед MBR видимо идут резервные сектора, которые в системе не видно.
-Dreamer- вне форума  
Непрочитано 14.05.2010, 22:47  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию Re: SD-card

Частично отвечаю на свой вопрос, думаю с эти столкнутся многие и почему-то он нигде толком не описан.
В начале SD карты перед MBR действительно находятся резервные сектора, их количество написано по смещению 1Ch в MBR это значение различно для разных карт, но! Чтобы его прочитать нужно опять же знать адрес MBR! У меня пока один вариант – перебирать начальные адреса(по 512) пока не встретится значение EBh(jmp), это и будет нулевой сектор(в системе)-MBR.
Может кому-то известно более «веселое» решение. Буду рад любым советам.
-Dreamer- вне форума  
Непрочитано 15.05.2010, 13:14  
Cyber_RAT
Прописка
 
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
Cyber_RAT на пути к лучшему
По умолчанию Re: SD-card

приведите дамп первых 512 байт вашей sd карты...
что-то у меня с 10-ок sd-шек был от 16мб до 4 гиг и никогда я не заморачивался - и все работало.
Cyber_RAT вне форума  
Сказали "Спасибо" Cyber_RAT
-Dreamer- (15.05.2010)
Непрочитано 15.05.2010, 13:35  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию 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.
AJScorp вне форума  
Непрочитано 15.05.2010, 13:52  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию 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 вне форума  
Сказали "Спасибо" AJScorp
-Dreamer- (15.05.2010)
Непрочитано 15.05.2010, 17:56  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию Re: SD-card

Большое спасибо. Вроде разобрался. Смутило то, что в начале в HEX-редакторе
Посмотрел нулевой сектор, и решил, что это МВR т.к. все записи в том числе и загрузочная запись присутствуют, а с карты по адресу 00000000 в начале считываются нули(т.е.загрузочная запись отсутствует), поэтому смещение1BEh (таблица разделов-PT) проверять не стал. Сейчас посмотрел несколько SD с адреса
1BEh, и убедился, что таблица разделов на месте, а на месте загрузочной записи
(c адреса 00)либо нули, либо хлам, а в HEX-редакторе открывал как логический диск, т.е. просматривал PBR-загрузочную запись раздела.что и ввело в заблуждение. Спасибо.

Последний раз редактировалось -Dreamer-; 15.05.2010 в 18:53.
-Dreamer- вне форума  
Непрочитано 15.05.2010, 19:19  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию 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.
AJScorp вне форума  
Непрочитано 15.05.2010, 20:02  
Cyber_RAT
Прописка
 
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
Cyber_RAT на пути к лучшему
По умолчанию Re: SD-card

а мне за что "не за что?"
p.s. а фат да... я не поддерживаю в своем девайсе фат выше 16... тут согласен-промашку дал.. смещение другое.
Cyber_RAT вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пытаюсь работать с SD card. Нужна помощь uk8amk Микроконтроллеры, АЦП, память и т.д 29 15.01.2011 13:20


Часовой пояс GMT +4, время: 22:17.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.