Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FAT, FATfs, usb Помогите разобраться с файловой системой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
batisto4ka
Помогите разобраться с библиотекой файловой системы fatfs. Ситуация такая.Есть отладочная плата sk-mstm32f107. Нужно сделать на ней хост, чтобы можно было подлючить флешку, записать/считать файл, вобщем порыться в флэшке. Пробовала библиотеку efsl. Эта файловая система не инициализируется, т.к. размер кластера на флешке больше 512 байт. Флешка 16 гектарная. отформатирована в FAT32.
Пробую библиотеку fatfs. Но с ней какие-то непонятки. Вроде флешка инициализируется (имеется в виду функция инит диск библиотеки фатфс). Монтируется диск, а при попытке создания файла внутри функции f_write clst = create_chain(fp->fs, fp->clust);
возвращает 0xFFFFFFFF и соответсвенно функция записи файла возращает FR_DISK_ERR. Подскажите, пожалуйста, что это может быть? Из-за чего?
Есть ли у кого-то примеры для стшки работы с файловой системой?
shmur
Из описания FR_DISK_ERR в файле ff.h: A hard error occured in the low level disk I/O layer. То есть скорее всего ваш физический уровень, который вы сами реализуете и подсовывайте фатфсу, вернул ему ошибку.
dubb
Вы использовали ту библиотеку, которую предлагает ST (USB host device lib)? Там как раз FatFS.
Сейчас тоже разбираюсь с ЮСБ хостом. Из примера в этой либе сделал работоспособный проект (пока тупо пишет и читает rolleyes.gif ) под плату TE-STM32F207.

kan35
не понятно зачем сразу начинать с записи!? Отформатируйте флэшку на компьютере, запишите туда текстовый файл и отработайте чтение для начала.
oman
попробуйте увеличить число эндпоинтов (USBH_MAX_NUM_ENDPOINTS)
batisto4ka
Цитата(kan35 @ Jul 19 2012, 07:16) *
не понятно зачем сразу начинать с записи!? Отформатируйте флэшку на компьютере, запишите туда текстовый файл и отработайте чтение для начала.

Проблема решена. В функциях файла diskio disk_write, disk_read и т.д. взятых из примера юсбишной библиотеки переменная Stat негде не обновляет свое значение, а оставляет инициализированное STA_NOINIT. Заменив эту перменную на вызов функции disk_status(drv) все заработало..теперь на 16 гб флешку записывается и создается файл. Сейчас буду пробовать чтение из файла.
batisto4ka
Цитата(batisto4ka @ Jul 19 2012, 09:51) *
Проблема решена. В функциях файла diskio disk_write, disk_read и т.д. взятых из примера юсбишной библиотеки переменная Stat негде не обновляет свое значение, а оставляет инициализированное STA_NOINIT. Заменив эту перменную на вызов функции disk_status(drv) все заработало..теперь на 16 гб флешку записывается и создается файл. Сейчас буду пробовать чтение из файла.

Собственно, чтение из флешки также опробовано. Все работает. Терь можно обновляться с флешки.
dubb
Всем доброго дня. Чтобы не плодить сущностей, задам в этой теме вопрос по FATFS: Каков максимальный размер накопилтеля с которым оно будет работать. Хочется для одного проекта 128Gb на USB Flash. Реально ли это?
dubb
STMовский встроенный USB не хочет работать с 128Gb флешкой Kingston DataTraveler HyperX 3.0. Пишет USBH_USR_UnrecoveredError.Видимо его смущает поддержка USB 3.0 этой флеш.

А вот с 32Gb Sandisk Cruzer Fit всё работает. Только очень печалит меня имеющаяся скорость записи - около 1.2 Мбит/с. Дописываю в существующий файл по 50000 Байт. Ушла почти вся оперативная память микроконтроллера blush.gif (STM32F207VG).
Начал подумывать о внешней памяти по FSMC, чтобы писать буферами большей длинны, но в ближайшем будущем такой апгрейт нереален.

Пока собираюсь ставить микруху физического уровня для поддержки USB HS. Выбрал USB3300. Надеюсь с ней получиться поднять скорость при таком же размере дописываемого буфера.

Может кто использовал связку STM и USB_HS_PHY? Каких скоростей записи удалось достичь?

ЗЫ: Нашёл тест скорости используемой флешки http://usbflashspeed.com/20182, там её разгоняют до 12.39 MByte/s - значит расти есть куда, вопрос только в том, что окажется слабым звеном))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.