batisto4ka 0 18 июля, 2012 Опубликовано 18 июля, 2012 · Жалоба Помогите разобраться с библиотекой файловой системы fatfs. Ситуация такая.Есть отладочная плата sk-mstm32f107. Нужно сделать на ней хост, чтобы можно было подлючить флешку, записать/считать файл, вобщем порыться в флэшке. Пробовала библиотеку efsl. Эта файловая система не инициализируется, т.к. размер кластера на флешке больше 512 байт. Флешка 16 гектарная. отформатирована в FAT32. Пробую библиотеку fatfs. Но с ней какие-то непонятки. Вроде флешка инициализируется (имеется в виду функция инит диск библиотеки фатфс). Монтируется диск, а при попытке создания файла внутри функции f_write clst = create_chain(fp->fs, fp->clust); возвращает 0xFFFFFFFF и соответсвенно функция записи файла возращает FR_DISK_ERR. Подскажите, пожалуйста, что это может быть? Из-за чего? Есть ли у кого-то примеры для стшки работы с файловой системой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shmur 0 18 июля, 2012 Опубликовано 18 июля, 2012 · Жалоба Из описания FR_DISK_ERR в файле ff.h: A hard error occured in the low level disk I/O layer. То есть скорее всего ваш физический уровень, который вы сами реализуете и подсовывайте фатфсу, вернул ему ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dubb 0 18 июля, 2012 Опубликовано 18 июля, 2012 · Жалоба Вы использовали ту библиотеку, которую предлагает ST (USB host device lib)? Там как раз FatFS. Сейчас тоже разбираюсь с ЮСБ хостом. Из примера в этой либе сделал работоспособный проект (пока тупо пишет и читает :rolleyes: ) под плату TE-STM32F207. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 19 июля, 2012 Опубликовано 19 июля, 2012 (изменено) · Жалоба не понятно зачем сразу начинать с записи!? Отформатируйте флэшку на компьютере, запишите туда текстовый файл и отработайте чтение для начала. Изменено 19 июля, 2012 пользователем kan35 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oman 0 19 июля, 2012 Опубликовано 19 июля, 2012 · Жалоба попробуйте увеличить число эндпоинтов (USBH_MAX_NUM_ENDPOINTS) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batisto4ka 0 19 июля, 2012 Опубликовано 19 июля, 2012 (изменено) · Жалоба не понятно зачем сразу начинать с записи!? Отформатируйте флэшку на компьютере, запишите туда текстовый файл и отработайте чтение для начала. Проблема решена. В функциях файла diskio disk_write, disk_read и т.д. взятых из примера юсбишной библиотеки переменная Stat негде не обновляет свое значение, а оставляет инициализированное STA_NOINIT. Заменив эту перменную на вызов функции disk_status(drv) все заработало..теперь на 16 гб флешку записывается и создается файл. Сейчас буду пробовать чтение из файла. Изменено 19 июля, 2012 пользователем batisto4ka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batisto4ka 0 19 июля, 2012 Опубликовано 19 июля, 2012 · Жалоба Проблема решена. В функциях файла diskio disk_write, disk_read и т.д. взятых из примера юсбишной библиотеки переменная Stat негде не обновляет свое значение, а оставляет инициализированное STA_NOINIT. Заменив эту перменную на вызов функции disk_status(drv) все заработало..теперь на 16 гб флешку записывается и создается файл. Сейчас буду пробовать чтение из файла. Собственно, чтение из флешки также опробовано. Все работает. Терь можно обновляться с флешки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dubb 0 6 августа, 2012 Опубликовано 6 августа, 2012 · Жалоба Всем доброго дня. Чтобы не плодить сущностей, задам в этой теме вопрос по FATFS: Каков максимальный размер накопилтеля с которым оно будет работать. Хочется для одного проекта 128Gb на USB Flash. Реально ли это? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dubb 0 8 августа, 2012 Опубликовано 8 августа, 2012 · Жалоба STMовский встроенный USB не хочет работать с 128Gb флешкой Kingston DataTraveler HyperX 3.0. Пишет USBH_USR_UnrecoveredError.Видимо его смущает поддержка USB 3.0 этой флеш. А вот с 32Gb Sandisk Cruzer Fit всё работает. Только очень печалит меня имеющаяся скорость записи - около 1.2 Мбит/с. Дописываю в существующий файл по 50000 Байт. Ушла почти вся оперативная память микроконтроллера (STM32F207VG). Начал подумывать о внешней памяти по FSMC, чтобы писать буферами большей длинны, но в ближайшем будущем такой апгрейт нереален. Пока собираюсь ставить микруху физического уровня для поддержки USB HS. Выбрал USB3300. Надеюсь с ней получиться поднять скорость при таком же размере дописываемого буфера. Может кто использовал связку STM и USB_HS_PHY? Каких скоростей записи удалось достичь? ЗЫ: Нашёл тест скорости используемой флешки http://usbflashspeed.com/20182, там её разгоняют до 12.39 MByte/s - значит расти есть куда, вопрос только в том, что окажется слабым звеном)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться