реклама на сайте
подробности

 
 
> Работа с SD card, Работа с SD card, с объемом блока > 512 байт
sergeeff
сообщение Mar 15 2007, 20:08
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Коллеги!

Для теста купил карту Extrememory Allround 2 Gb. У нее оказался блок = 1024 байта. Соответственно библиотека EFSL не работает. Как решать проблему? Я так понимаю, что с ростом обьемов карт и скоростей обмена могут и другие обьемы блоков быть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Abo
сообщение Nov 29 2007, 22:09
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 9-01-06
Пользователь №: 12 967



По моему, поле размера блока в CSD используется лишь для рассчета объема карточки и ни в коем случае не для указания настоящего размера блока, который всегда равен 512 байт. Только таким образом можно объяснить наличие не SDHC карт объемом более 1G. Для SDHC карт размер блока тоже 512 байт, но размер карты в CSD указывается не в байтах а в блоках.
Go to the top of the page
 
+Quote Post
elfsoft
сообщение Nov 30 2007, 11:41
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 6-07-07
Из: Минск, Беларусь
Пользователь №: 28 923



Цитата(Abo @ Nov 30 2007, 00:09) *
По моему, поле размера блока в CSD используется лишь для рассчета объема карточки и ни в коем случае не для указания настоящего размера блока, который всегда равен 512 байт. Только таким образом можно объяснить наличие не SDHC карт объемом более 1G. Для SDHC карт размер блока тоже 512 байт, но размер карты в CSD указывается не в байтах а в блоках.


Всё, таки нашёл, в чём была трабла. Abo, Большое пасиба за подсказку! Я тут полдня писал ответ, попутно проверяя разные вещи, и, в конце концов выяснил, что таки да, с 2/4-гиговой карточкой нужно работать точно так же, как и с обычной (а я зачем-то изначально сделал поддержку 1024-байтных (и более) секторов для больших карточек, думая, что нужно работать такими блоками). Плюс трабла была в READ_MULTIPLE_BLOCK - оно у меня, похоже, неправильно работало. Ответ пришлось стереть smile.gif
Для всех - в Simplified Physical Layer Spec ( http://www.sdcard.org/about/memory_card/pl..._Layer_Spec.pdf ) в пунктах 4.3.2-4.3.4 написано, что, независимо от того, какой размер блока указан в MaxReadDatablock/MaxWriteDataBlock, SetBlockLength всё равно нужно делать не больше, чем 512. И, главное, даже если Read/WriteBlockMisalignment=0, читать/писать с адреса, кратного 512 можно (нельзя читать с совсем произвольного адреса).

Calculator, предположения насчёт размера блока подтолкнули, в общем-то, на правильный путь (только в другую сторону smile.gif )

MiniMax, наши обоюдные предположения ("Самое простое - это подлатать немного драйвер ( то место , где идет запись/чтение 512 байтового сектора в очередной блок данных карточки) используя кэширование. Другими словами, имеем буфер на 1024 байт в RAM, который отображается на два соседних 512-byte сектора FAT. При попытке записи 1-го сектора копируем его только в 1024-байт RAM буфер. Реальную запись делаем только при заполненном 1024-байт буфере. Если очередной записываемый сектор не отображается на 2-й сектор RAM буфера, то cчитать его с SD и закончить операцю записи предыдущего блока. И т.д.") оказались неверными, но, главное, что в конце концов разобрались smile.gif

ЗЫ Всем огромное спасибо!..

ЗЗЫ У кого-нибудь спецификация SDHC есть? Хочется посмотреть, что за зверь такой, и можно ли его заставить работать тут.
Go to the top of the page
 
+Quote Post
MiniMax
сообщение Nov 30 2007, 11:55
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-09-07
Пользователь №: 30 498



Это очень хорошо. Значит и мне не придется ничего латать, когда я перейду на 2GB карты :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergeeff   Работа с SD card   Mar 15 2007, 20:08
- - etoja   Карта на заводе сформатирована под FAT32. Сформати...   Mar 16 2007, 07:08
|- - ivstech   Цитата(etoja @ Mar 16 2007, 10:08) Самые ...   Mar 16 2007, 07:23
|- - sonycman   Цитата(etoja @ Mar 16 2007, 08:08) Карта ...   Mar 16 2007, 22:52
|- - ivstech   Цитата(sonycman @ Mar 17 2007, 01:52) Инт...   Mar 17 2007, 05:34
- - etoja   Сплетни не нужны.   Mar 16 2007, 07:34
|- - ivstech   Цитата(etoja @ Mar 16 2007, 10:34) Сплетн...   Mar 16 2007, 08:09
|- - sergeeff   Переформатировать попробую в понедельник. Два воп...   Mar 16 2007, 20:57
- - sergeeff   Для прояснения. Ну да, наверное, правильнее сказат...   Mar 17 2007, 18:20
- - elfsoft   Здесь явно идёт речь о блоке на SD-карте (аналог с...   Oct 30 2007, 15:35
|- - MiniMax   Цитата(elfsoft @ Oct 30 2007, 18:35) ЗЫ Н...   Oct 30 2007, 16:50
|- - elfsoft   Цитата(MiniMax @ Oct 30 2007, 18:50) Само...   Oct 31 2007, 08:37
|- - MiniMax   Цитата(elfsoft @ Oct 31 2007, 11:37) дело...   Oct 31 2007, 09:00
|- - elfsoft   Цитата(MiniMax @ Oct 31 2007, 11:00) Само...   Nov 6 2007, 08:40
|- - MiniMax   Цитата(elfsoft @ Nov 6 2007, 11:40) ЗЫ Пр...   Nov 6 2007, 09:08
|- - elfsoft   Цитата(MiniMax @ Nov 6 2007, 11:08) Я гов...   Nov 29 2007, 14:06
- - Calculator   В начале работы с карточкой подается команда устан...   Nov 6 2007, 12:24
|- - Abo   Цитата(elfsoft @ Nov 30 2007, 14:41) ЗЗЫ ...   Nov 30 2007, 14:38
- - sergeeff   Вернувшись после некоторого перерыва к работе с SD...   Dec 4 2007, 19:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 15:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016