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

 
 
> KEIL FlashFS и USB Mass Storage: слишком просто и... неправильно, Портятся данные на SD карте
KnightIgor
сообщение Dec 14 2011, 08:55
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Привет, коллеги.

Имеется:
    STM32F103RC;
    SD карта через SPI;
    KEIL 4.22a;
    RL FlashFS и RL USB, версии 4.2x;
    Композитное USB устройство (HID, CDC, MSC).


Предыстория: на устройстве, похожем на MCBSTM32 карту от KEIL, успешно работает программа с файловой системой RL FlashFS от KEIL с поддержкой SD карты через SPI (кстати, в процессе обнаружилась ошибка в "драйвере" SPI_STM32F103.c версии 4.20 касаемо установки скорости SPI, о которой я писал в ветке, если кому интересно). Кроме того, было реализовано композитное USB устройство с HID и CDC (виртуальный COM-порт). Все гладко.

Решили добавить поддержку Mass Storage (MSC). Все распозналось, Винда открыла каталог карты, все показала правильно, можно читать. HID и CDC работали по-прежнему.
И тут началось: попробовали записать файл из PC через MSC на карту. С точки зрения Винды записалось все успешно, каталог обновился, да и встроенный в устройство терминал показал тот же правильный каталог карты. Затем устройство "размонтировали", переткнули по-новой, и... карта уже содержала чушь:
    многие файлы имели длину 0;
    файлы с длиными именами стали отображаться в формате 8.3 (то есть, с "~");
    SD карта, будучи проверена на вшивость в PC, содержала множественные ошибки файловой системы.

Короче, полная фигня.
Очевидно, где-то не происходит запись буфера/кэша на карту даже после размонтирования устройства, но тут возник вопрос, а поддерживается ли такое в FlashFS: MSC согласно примеру, взятому за основу, реализуется двумя функциями, которые даже результата не возвращают, если что пошло не так. К тому же, не нашел возможности сообщить Винде удаление карты из слота (я не могу сделать disconnect USB, т.к. есть еще HID и CDC, которые должны и дальше работать, даже если карта удалена из слота).

Есть какие идеи из опыта работы с указанными библиотеками?

Заранее благодарю.

Сообщение отредактировал KnightIgor - Dec 14 2011, 08:57
Go to the top of the page
 
+Quote Post



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

 


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


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