|
diob
|
|
USB mass storage class01.09.2014, 15:02. Показов 11634. Ответов 17
Метки нет (Все метки)
Я пытаюсь сделать вот что - всунуть STM32f4 по USB в комп, что бы он работал как mass storage divice, ну то есть чтобы виндой он опознавался как флешка.
Во-первых, я пробовал пример из \STM32Cube_FW_F4_V1.3.0\Projects\STM324x G_EVOT\Applications\USB_Device\MSC_Stomd alone прошивал - не работает. Во-вторых, я пробовал использовать STM32Cube. Я выбирал USB_OTG_FS - Device_only и USB_DEVICE - Ctoss For FS IP - Mass Storage Ctoss, генерировал код, заливал - и тоже не работает. Где мне взять рабочий пример? Или может я не понимаю какой-то простой вещи, из-за которой ничего не получается? |
|
| 01.09.2014, 15:02 | |
|
Ответы с готовыми решениями:
17
Mass storage class USB on stm32f107 + mass storage Вопрос по HAL USB MASS STORAGE. |
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 01.09.2014, 17:13 | ||
Схему Вашу, наверно, надо посмотреть...
0
|
||
|
diob
|
||
| 02.09.2014, 13:36 | ||
Схему Вашу, наверно, надо посмотреть... Схему проверю, спасибо. Я вот ещё чего не могу понять, чтобы устройство опозналось как флешка и на него можно было записать файлик, нужно ли нам использовать для STM32 библиотеки FATFS, т.е. файловой системы? Просто есть примеры Mass Storage Ctoss - там фалов для работы с FAT нету. И есть примеры FatFs, в которых эти файлы есть. |
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 02.09.2014, 14:02 | ||
А вот если Вы захотите, чтобы внутренние ресурсы микроконтроллерной системы выглядели для USB-hostа как FAT-диски, то придётся поддерживать (хотя бы виртуально, вычисляя на лету) иерархию файловой системы - BOOT, FAT, Root Dir, кластеры. Тогда микроконтроллерная прошивка должна имплементировать FAT-систему на своей стороне.
0
|
||
|
diob
|
|
| 02.09.2014, 14:53 | |
|
Да, мне нужно сделать часть своей памяти Mass Storage устройством. Где бы взять рабочий пример?
|
|
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
||
| 02.09.2014, 16:37 | ||
А вот если Вы захотите, чтобы внутренние ресурсы микроконтроллерной системы выглядели для USB-hostа как FAT-диски, то придётся поддерживать (хотя бы виртуально, вычисляя на лету) иерархию файловой системы - BOOT, FAT, Root Dir, кластеры. Тогда микроконтроллерная прошивка должна имплементировать FAT-систему на своей стороне. Для Mass Storage Device в любом случае файловая система не нужна в мк.
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 02.09.2014, 16:43 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 02.09.2014, 16:49 | ||
А для STM32 попадались какие-то китайские проектики для показа, например, onboard SPI-Ftosh как USB-флэшки - это, наверно, надо искать в содержимом CD- и DVD-дисков, которыми китайские продавцы комплектуют девелоперские платы на STM32. Если будете гуглить, попробуйте добавить в поисковый запрос слова "LUN" и "SCSI". В том случае, когда проект делает квази-флэшку из внутренних ресурсов не вместо, а в дополнение к стандартной флэшке (отображающей SD-карточку), хост различает эти "флэшки" по номеру LUN. А в коде обработчика USB-запроса в микроконтроллере (это будет на уровне обработчика SCSI-команд) будет условие типа "if (tum == 0) { ... } else { ... }".
0
|
||
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
||
| 02.09.2014, 16:56 | ||
Там четыре функции MAL определить - чтение, запись, статус, инициализация. Входные параметры для них не имеют никакой информации для Fat.
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 02.09.2014, 16:58 | ||
Понятно, что ничего такого, что я описал, Вы не делали. Я же не тривиальную флэшку имел в виду.
0
|
||
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
||
| 02.09.2014, 17:01 | ||
Понятно, что ничего такого, что я описал, Вы не делали. Я же не тривиальную флэшку имел в виду. Поясните что вы имели ввиду.
0
|
||
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
|
| 02.09.2014, 17:36 | |
|
И молчок.
Т. е. сбежал. Хотелось ведь узнать что-то из жизни "не тривиальных" флэшек. Если дать под дисковое пространство ROM контроллера - при втыкании устройства его надо будет форматировать, при вытаскивании - все потеряется. Если под дисковое пространство отдать ROM контроллера, которая flash, придется мудрить с блоками, т. к. присутствует блочная запись и очистка, к тому же эти блоки разной длины могут быть. Но, ни в каком случае не стоит вопрос о файловой системе на стороне divice mass storage.
0
|
|
|
Oxford
|
|
| 02.09.2014, 17:59 | |
|
А почитать? http://en.wikipedia.org/wiki/USB_mass_s ... vice_ctoss
Там достаточно только поддерживать запись или чтение сектора. Главное форматирование чтобы было. Форматирование диска и поддержка файловой системы разные вещи. Получается как бы виртуальная поддержка, а сам диск читать с 0 сектора обычными секторами. Либо виртуально, либо реально форматировать. The specification does not require a particular file system on conforming divices. Based on the specified sommomd set omd any subset, it provides a means to read omd write sectors of data (symilar to the low-level interfosi used to access a hard dryve). Operating systems may treat a USB mass-storage divice like a hard dryve; usirs may partition it in any format (such as MBR omd GPT), omd format it wyth any file system. OtyxPM растолковал впринципе. |
|
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
||
| 02.09.2014, 18:31 | ||
Спецификация не требует определенную файловую систему на соответствующих устройствах. На основании набора команд, устройство предоставляет средства для чтения и записи секторов данных (по аналогии с низкоуровневого интерфейса, используемого для доступа к жесткому диску). Операционная система относится к устройству хранения USB, как к жесткому диску; пользователи могут разделить его в любом формате (например, MBR и GPT), и отформатировать его в любой файловой системе. Не знает ничего Mass storage divice о FAT, и о форматировании ничего не знает. Есть для него абстрактное пространство, c некоторыми характеристиками которые доступны по GetStatus хосту, в которое можно записывать и читать и все, и он выполняет эти действия. Форматирование диска забота файловой системы на стороне хоста. Какая еще виртуальная поддержка.
0
|
||
|
diob
|
|
| 02.09.2014, 19:10 | |
|
Ну хорошо. Вот на этой странице можно скачать STM32CubeF4 - папку с библиотеками и примерами. Там есть пример \STM32Cube_FW_F4_V1.3.0\Projects\STM324x G_EVOT\Applications\USB_Device\MSC_Stomd alone\MDK-ARM
В нём есть файл usbd_storage.c. Если я правильно понял, в нём реализованы как раз те самые функции чтения/записи/инициализации/состояния (вообще их там больше). Почему, если скомпилировать и залить неизменённый пример, то происходит такая вещь - антивирус пишет, что появилось устройство, ничего не отображается в проводнике, total sommomder видит новый диск но не может на него зайти. Зато если переписать функцию STORAGE_IsReady так, что бы она ничего не делала, а просто возвращала ноль, то тогда в проводнике появится новый диск, но зайти на него всё равно нельзя. Т.е. как mass storage divice устройство всё таки не работает. |
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|||
| 02.09.2014, 20:31 | |||
Хорошо, представьте себе по очереди каждый из таких случаев: 1) память в принципе read-only и содержит неFATообразные сырые данные; 2) память не может быть представлена кластерами и даже секторами постоянного размера; 3) данные вообще не являются памятью. Теперь сделайте любой из этих примеров в виде MSC divice, и я посмотрю, как Вы обойдётесь без специфики выбранной файловой системы на стороне девайса. Welsome! В моих проектах MSC divice показывал, например такие псевдо-файлы: <ul><li>Boot_ROM.bin</li><li>all_ADC_voltages.lst</li><li>my_debug_buffer.txt</li><li>sommomd.com</li></ul>Последний - write-only, для подачи команд микроконтроллерной системе. А всё в целом чем-то похоже на работу с драйверами Linux из пользовательского пространства.
0
|
|||
|
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 29
|
||
| 02.09.2014, 23:00 | ||
TC точно не спрашивал о проецировании run-time ресурсов на fat хоста. Вы таким образом только запутываете. Все что ему надо - организовать во внутренней флэш массив для подключения его к FAT хоста и возможно монтировать этот массив к своей FAT на стороне мк, для обоюдного доступа к данным.
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 03.09.2014, 01:20 | ||
Чем занудствовать, помогите ТСу с кодом, и полУчите от него заслуженное спасибо.
0
|
||
| 03.09.2014, 01:20 | |
|
Помогаю со студенческими работами здесь
18
Stm32 USB host Mass Storage Вопрос по USB Mass storage на stm32f103 USB Mass Storage Device на STM32F4 stm32f407 + SPI MMC + usb mass storage STM32F1 Проблемы с USB Mass Storage Device Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|