iiv 25 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба Добрый день, есть МК, конкретно ESP32-S3, в котором есть USB и SDCARD. На SDCARD имеется обычная файловая система. Я хочу, чтобы если он как девайс воткнется в USB компьютера, то компьютер (в любой операционной системе) бы увидел через усб содержимое SDCARD и смог бы копировать туда-сюда всякие файлы. Гуглил но не понял как. Пожалуйста, посоветуйте, на какие слова гуглить, чтобы найти такой софт, или хотя бы минималистический протокол как USB бы мог представиться для компьютера накопителем. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба http://www.gaw.ru/html.cgi/txt/interface/usb/ums.htm Спецификации на usb.org https://docs.espressif.com/projects/arduino-esp32/en/latest/api/usb_msc.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 71 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба https://github.com/search?q=esp32+msc отчасти богомерзкая ардуина, но есть и примеры с tinyUSB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба 57 minutes ago, iiv said: есть МК... Я хочу, чтобы если он как девайс воткнется в USB компьютера, то компьютер (в любой операционной системе) бы увидел через усб содержимое SDCARD и смог бы копировать туда-сюда всякие файлы. Гуглил но не понял как. Со стороны USB поднимаете MassStorage через него будут приходить команды SCSI, в том числе считываю 10кб начиная с блока ххх Со стороны SDCARD поднимаете SDIO и вычитываете оттуда нужные данные. Обмен можно производить любыми порциями кратными 512. Ваш уровень - сектора. Отформатирует и прочее - ПК. Для отображения в ОС файлов надо поставить бит removable на устройстве. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба Может возникнуть серьезная проблема, если нужно одновременно мидифицировать файлы и со стороны PC и из МК. Виндам не объяснить, что нужно перечитать файловую систему не отсоединив USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба В 17.02.2023 в 19:11, Alex11 сказал: Может возникнуть серьезная проблема, если нужно одновременно мидифицировать файлы и со стороны PC и из МК. Виндам не объяснить, что нужно перечитать файловую систему не отсоединив USB. Есть карты SD-WiFi, например. А в них как эта проблема решается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 71 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба 1 hour ago, adnega said: Есть карты SD-WiFi, например. А в них как эта проблема решается? никак эта проблема не решается в ОС эти SD-wifi как представлены? через какую-нибудь прослойку со своим ПО типа яндекс.диска, или вообще через веб? для обмена с USB устройством как с диском нужен rndis и сеть про сетевой диск винды ещё догадываются что файлы там могут внезапно сами кем-то другим поменяться, а с флэшкой винды файловую систему закэширововали и потом полагают что меняться сама по себе на устройстве она уже никак не может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба 19 минут назад, _pv сказал: про сетевой диск винды ещё догадываются что файлы там могут внезапно сами кем-то другим поменяться, а с флэшкой винды файловую систему закэширововали и потом полагают что меняться сама по себе на устройстве она уже никак не может. Даже если кэширование для этого носителя удастся, каким-то образом, отключить и сделать подобие сетевого диска - все равно, это нетривиальная задача. Не могут две различные OC, через свои файловые системы, управлять одновременно одним и тем же носителем, ничего не зная друг о друге. Обязательно "подерутся". Потребуется какой-то хитрый арбитр, который будет пропускать через себя запросы от обеих ОС, "разруливая" все возможные конфликты. Не факт, что его вообще удастся корректно написать на уровне операций чтения/записи секторов (кластеров). От одновременного доступа лучше сразу отказаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 71 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба понятно что одновременно писать в один и тот же файл - так себе идея. тем не менее расшаренную через самбу сетевую папку никто не запрещает нескольким ПК подключить себе как сетевой диск и делать с ним что угодно в разумных пределах. или нескольким клиентам одновременно добавлять файлы на ftp сервер или даже читать файл в то время пока кто-то другой в него пишет. а с USB mass storage нельзя сделать readonly для винды файл, в который пишет только устройство, а ОС только читает и другой файл для наоборот. винда закэширует и не увидит изменения в файле сделанные устройством без её ведома. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба 20 минут назад, _pv сказал: тем не менее расшаренную через самбу сетевую папку никто не запрещает нескольким ПК подключить себе как сетевой диск и делать с ним что угодно в разумных пределах. или нескольким клиентам одновременно добавлять файлы на ftp сервер или даже читать файл в то время пока кто-то другой в него пишет. Предполагаю (к сожалению, не знаю точно), что арбитраж доступа там не на уровне физических кластеров работает. А повыше - на уровне файлов/каталогов. Это значительно проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 февраля, 2023 Опубликовано 17 февраля, 2023 · Жалоба В 17.02.2023 в 23:31, quark сказал: А повыше - на уровне файлов/каталогов. Это значительно проще. На уровне повыше и сущности повыше: те же права доступа и т.п. Не сказал бы что это просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 18 февраля, 2023 Опубликовано 18 февраля, 2023 · Жалоба 6 часов назад, adnega сказал: На уровне повыше и сущности повыше: те же права доступа и т.п. Не сказал бы что это просто. В итоге, получается, чтобы иметь корректный одновременный доступ двух OC к носителю, нужно на устройстве не MassStorage поднимать, а ftp-сервер. И программно эмулировать сетевой USB-модем для доступа к нему со стороны внешней ОС. Точнее - только интерфейс сетевого модема через USB. Не сказал бы, что это просто. Но, почему бы и нет? Теоретически, возможно, по-моему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 18 февраля, 2023 Опубликовано 18 февраля, 2023 (изменено) · Жалоба MTP на уровне доступа к файлу предоставляет доступ. Кажется, на таком уровне совместный доступ можно обеспечить. Изменено 18 февраля, 2023 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 18 февраля, 2023 Опубликовано 18 февраля, 2023 · Жалоба 22 минуты назад, GenaSPB сказал: MTP на уровне доступа к файлу предоставляет доступ. Кажется, на таком уровне совместный доступ можно обеспечить. А как это будет выглядеть на уровне ОС? Стандартных программ и файл-менеджеров? Опять какой-то "костыль" потребуется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться