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

 
 
> SD-card дурит
Chestor
сообщение Oct 19 2011, 03:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-11-10
Пользователь №: 61 098



Добрый день.
Работаю с внешней карточкой памяти SD. Наблюдаю некоторые странные особенности: если я записываю один сектор на карту, а потом делаю ресет устройства, то сектор оказывается пустым (старые данные, не прошла запись). А если я записываю сектор, а после этого делаю чтение этого сектора, то после ресета сектор содержит правильную информацию.
Странно... такое впечатление, что карта памяти кэширует данные в своей внутренней оперативке. У кого ест опыт работы с такими устройствами, подскажите, где копать? В инете лазил, но на запросы типа "SD data cache" очень много левой информации.
Спасибо за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Altemir
сообщение Oct 19 2011, 05:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



А запись каким образом организована? Проц, файловая система, ОСь? Если пишете напрямую, минуя уровень файловой системы, то нужно чесать репу. Если же работа через файловую систему, то следует делать fsync, чтобы закэшированные данные слились на SD.
Go to the top of the page
 
+Quote Post
Chestor
сообщение Oct 20 2011, 05:20
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-11-10
Пользователь №: 61 098



Цитата(Altemir @ Oct 19 2011, 09:31) *
...Если пишете напрямую, минуя уровень файловой системы, то нужно чесать репу...

Надо чесать репу... =(
При чем, интересный момент:
Если я записываю сектор 1, а затем сектор 0, то сектор 1 оказывается битым (в начале сектора несколько байт забиты нулями)
Если я записываю секторы 1 и 2, а затем 0, то все секторы оказываются нормальными.

Go to the top of the page
 
+Quote Post
Lotor
сообщение Oct 20 2011, 09:35
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



С адресацией секторов не напутали (проверьте бит CCS[30] в регистре OCR)?


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
strannyi
сообщение Nov 3 2011, 08:18
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-07-07
Из: Ярославль
Пользователь №: 28 962



Цитата(Chestor @ Oct 19 2011, 06:47) *
Добрый день.
Работаю с внешней карточкой памяти SD. Наблюдаю некоторые странные особенности: если я записываю один сектор на карту, а потом делаю ресет устройства, то сектор оказывается пустым (старые данные, не прошла запись). А если я записываю сектор, а после этого делаю чтение этого сектора, то после ресета сектор содержит правильную информацию.
Странно... такое впечатление, что карта памяти кэширует данные в своей внутренней оперативке. У кого ест опыт работы с такими устройствами, подскажите, где копать? В инете лазил, но на запросы типа "SD data cache" очень много левой информации.
Спасибо за ответы.



А вы обратили внимание что после записи сектора нужно подождать, после байта подтверждения данных карта посылает 0x00 - BISY, и чтоб дождаться завершения записи нужно посылать 0xff до тех пор пока назад не вернется 0xff.

Сообщение отредактировал strannyi - Nov 3 2011, 08:21
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:09
Рейтинг@Mail.ru


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