Перейти к содержанию
    

Прикинуться диском при втыкании USB и выглядеть как SDCARD

Добрый день,

 

есть МК, конкретно ESP32-S3, в котором есть USB и SDCARD. На SDCARD имеется обычная файловая система. Я хочу, чтобы если он как девайс воткнется в USB компьютера, то компьютер (в любой операционной системе) бы увидел через усб содержимое SDCARD и смог бы копировать туда-сюда всякие файлы. Гуглил но не понял как. Пожалуйста, посоветуйте, на какие слова гуглить, чтобы найти такой софт, или хотя бы минималистический протокол как USB бы мог представиться для компьютера накопителем.

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 minutes ago, iiv said:

есть МК... Я хочу, чтобы если он как девайс воткнется в USB компьютера, то компьютер (в любой операционной системе) бы увидел через усб содержимое SDCARD и смог бы копировать туда-сюда всякие файлы. Гуглил но не понял как.

Со стороны USB  поднимаете MassStorage через него будут приходить команды SCSI, в том числе считываю 10кб начиная с блока ххх

Со стороны SDCARD поднимаете SDIO и вычитываете оттуда нужные данные.

 

Обмен можно производить любыми порциями кратными 512.

Ваш уровень - сектора. Отформатирует и прочее - ПК.

 

Для отображения в ОС файлов надо поставить бит removable на устройстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может возникнуть серьезная проблема, если нужно одновременно мидифицировать файлы и со стороны PC и из МК. Виндам не объяснить, что нужно перечитать файловую систему не отсоединив USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 17.02.2023 в 19:11, Alex11 сказал:

Может возникнуть серьезная проблема, если нужно одновременно мидифицировать файлы и со стороны PC и из МК. Виндам не объяснить, что нужно перечитать файловую систему не отсоединив USB.

Есть карты SD-WiFi, например. А в них как эта проблема решается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, adnega said:

Есть карты SD-WiFi, например. А в них как эта проблема решается?

никак эта проблема не решается

в ОС эти SD-wifi как представлены? через какую-нибудь прослойку со своим ПО типа яндекс.диска, или вообще через веб?

 

для обмена с USB устройством как с диском нужен rndis и сеть

про сетевой диск винды ещё догадываются что файлы там могут внезапно сами кем-то другим поменяться,

а с флэшкой винды файловую систему закэширововали и потом полагают что меняться сама по себе на устройстве она уже никак не может.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, _pv сказал:

про сетевой диск винды ещё догадываются что файлы там могут внезапно сами кем-то другим поменяться,

а с флэшкой винды файловую систему закэширововали и потом полагают что меняться сама по себе на устройстве она уже никак не может.

Даже если кэширование для этого носителя удастся, каким-то образом, отключить и сделать подобие сетевого диска - все равно, это нетривиальная задача. Не могут две различные OC, через свои файловые системы, управлять одновременно одним и тем же носителем, ничего не зная друг о друге. Обязательно "подерутся". Потребуется какой-то хитрый арбитр, который будет пропускать через себя запросы от обеих ОС, "разруливая" все возможные конфликты. Не факт, что его вообще удастся корректно написать на уровне операций чтения/записи секторов (кластеров). От одновременного доступа лучше сразу отказаться.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понятно что одновременно писать в один и тот же файл - так себе идея.

тем не менее расшаренную через самбу сетевую папку никто не запрещает нескольким ПК подключить себе как сетевой диск и делать с ним что угодно в разумных пределах. или нескольким клиентам одновременно добавлять файлы на ftp сервер или даже читать файл в то время пока кто-то другой в него пишет.

а с USB mass storage нельзя сделать readonly для винды файл, в который пишет только устройство, а ОС только читает и другой файл для наоборот. винда закэширует и не увидит изменения в файле сделанные устройством без её ведома.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, _pv сказал:

тем не менее расшаренную через самбу сетевую папку никто не запрещает нескольким ПК подключить себе как сетевой диск и делать с ним что угодно в разумных пределах. или нескольким клиентам одновременно добавлять файлы на ftp сервер или даже читать файл в то время пока кто-то другой в него пишет.

Предполагаю (к сожалению, не знаю точно), что арбитраж доступа там не на уровне физических кластеров работает. А повыше - на уровне файлов/каталогов. Это значительно проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 17.02.2023 в 23:31, quark сказал:

А повыше - на уровне файлов/каталогов. Это значительно проще.

На уровне повыше и сущности повыше: те же права доступа и т.п. Не сказал бы что это просто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, adnega сказал:

На уровне повыше и сущности повыше: те же права доступа и т.п. Не сказал бы что это просто.

В итоге, получается, чтобы иметь корректный одновременный доступ двух OC к носителю, нужно на устройстве не MassStorage поднимать, а ftp-сервер.
И программно эмулировать сетевой USB-модем для доступа к нему со стороны внешней ОС. Точнее - только интерфейс сетевого модема через USB.
Не сказал бы, что это просто. Но, почему бы и нет? Теоретически, возможно, по-моему.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MTP на уровне доступа к файлу предоставляет доступ. Кажется, на таком уровне совместный доступ можно обеспечить.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, GenaSPB сказал:

MTP на уровне доступа к файлу предоставляет доступ. Кажется, на таком уровне совместный доступ можно обеспечить.

А как это будет выглядеть на уровне ОС? Стандартных программ и файл-менеджеров? Опять какой-то "костыль" потребуется?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...