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

 
 
> Помехоустойчивая работа с SD-картой
ГУ-49А
сообщение Aug 3 2009, 14:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 26-11-07
Пользователь №: 32 699



Есть устройство с ARM7, которое общается с SD-картой по SPI. На карте - файловая система, и файлы пишутся/читаются. Код работы с SD/MMC взят "стандартный" (IAR'овский), в котором повсюду конструкции вида
Код
while(!SSPSR_bit.TNF)
;
...
while(!SSPSR_bit.RNE)
;

Т.е. они расчитаны на штатную работу, когда все нужные биты выставляются как надо. Однако стоит поднести к устройству с картой работающую электродрель rolleyes.gif, как этот код перестаёт работать (спотыкается на этих ожиданиях и не может из них выйти). К сожалению, такое может произойти и от других внешних факторов.
Интересует программное решение данного вопроса. Т.е. хотелось бы иметь более надёжный robust код, который мог бы восстанавливаться после любой ситуации на шине. Чтобы не изобретать велосипед, поделитесь, пожалуйста, ссылкой на надёжную реализацию MMC/SD или расскажите, как её сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_3m
сообщение Aug 3 2009, 16:38
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(ГУ-49А @ Aug 3 2009, 18:28) *
Есть устройство с ARM7, которое общается с SD-картой по SPI.
...
они расчитаны на штатную работу, когда все нужные биты выставляются как надо. Однако стоит поднести к устройству с картой работающую электродрель rolleyes.gif, как этот код перестаёт работать

Сочуствую. У вас случилась jopa!
Вам придется медленно и печально перелопачивать весь код. Причем еще придется ломать голову над тем в какие состояниия попадает карта под воздействием помехи и как из этого корректно выйти. Кстати в спецификации sd о помехах, сбоях и некорректных состояниях нет ни слова, что там будет вытворять встроенный контроллер - хз cranky.gif
Еще и недокументированные "особенности" порта spi под воздействием помех вылезут.
Ей богу убиться ап стену и то будет не так мучительно.
Может вам подумать об использовании просто голых чипов памяти, хотя бы избавитесь от непредсказуемости?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 3 2009, 16:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(_3m @ Aug 3 2009, 20:38) *
Кстати в спецификации sd о помехах, сбоях и некорректных состояниях нет ни слова, что там будет вытворять встроенный контроллер - хз cranky.gif

В спецификации SD все замечательно прописано - таймауты, ошибки и т.п. Если аккуратно и внимательно ей следовать, то проблем не будет. Другое дело, что какие-то действия в случае отказа карты должен предпринимать верхний уровень - пользователю пожаловаться, переинициализировать/питание передернуть и т.д.
Ну и конечно бороться программными методами с аппаратными проблемами совершенно бесполезно.
Go to the top of the page
 
+Quote Post



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

 


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


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