Virtual FAT disk на STM32. Получаем доступ к несуществующим файлам.

preview_player
Показать описание
В ролике рассматриваются вопросы создания виртуального диска с использованием микроконтроллера STM32. Эта технология позволяет организовать чтение файла журнала или конфигурационных файлов создаваемых "на лету" и не расходующих память микроконтроллера.

------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------
Рекомендации по теме
Комментарии
Автор

ну наконец посмотрел. Ваши видео надо смотреть с кофе и плюшками и чтобы никто не мешал :)

michal
Автор

Делал с помощью библиотеки emFAT загрузчик для устройства. Файл с прошивкой через проводник отправлялся на виртуальный диск после чего и производилось обновление. Кроссплатформенности не получилось, диск некорректно эмулировался на MAC-OS. На Windows только на 8-ке были какие-то проблемы. Отличный проект, тысячу раз пожелал автору emFAT добра.

trinitroDimedrol
Автор

Выражаю почтение! Очень рад, что библиотека emfat кому-то пригодилась ❤

sergey_fetisov
Автор

Спасибо ! интересный ролик, открывает новые пути решения и возможности.

MaChEtE-yncm
Автор

Очень круто, как раз искал нечто подобное.

ShiloXyZ
Автор

Владимир, вы куда-то всё глубже и глубже опускаетесь, мы за вами не успеваем)

Beatleman
Автор

Очень круто, применений реально много можно придумать

CanchezAK
Автор

Гениально! Я никогда бы не подумал, что устройства на stm32 можно превратить в usb накопитель и его настройку проводить просто редактируя файлик!!!

alexlitvinenko
Автор

Спасибо за интересную тему. Сам я не занимаюсь программированием, но это может натолкнуть других энтузиастов сделать из этого контроллера тестер юсб порта инициализации запуска материнской платы, такие тестеры есть, но они прикидываются либо кнопкой капслок клавиатуры, или мышкой, а у вас на виртуальном диске. А если еще сможете сделать диагностику сопротивления и падение напряжения шине юсб со светозвуковой индикацией, то вполне возможен коммерческий проект. Сам бы я хотел научиться эту ремеслу, но пока не располагаю стольким временем на изучение с++. Респект Вам. Извиняюсь если эта тема была ранее уже опробована вами.

andj
Автор

т.е. настройку устройства можно превратить в считывание файла с конфигурацией и записи в этот файл изменённых значений, сразу с проверкой налету!!! т.е. мы же можем не принять файл если ошибки при заполнеии!!!! т.е. конфигурировать можно любым устройством с любым текстовым редактором!!! КЛАСС

lionlinux
Автор

Такие виртуальные ФС удобно использовать для доступа к оборудованию. Например файлик adc0 при чтении из него микроконтроллер выполняет преобразование и отдает полученное значение. Другой пример - запись в файл uart0, передает записанный байт по uart0, и аналогично при чтении.

seawindkiev
Автор

Спасибо за, как всегда, отличный материал. На сколько я понипаю, именно такой механизм работает, например, в отладчиках STLink. В тех версиях (по-моему, начиная с 2.1), где есть возможность залить прошивку просто скопировав ее на виртуальный диск. Там точно так же нет никакого реального хранилища. То же самое встречается в других устройствах. Паяльник TS100 - та же история. Там и конфигурационный файл есть, и обновление ПО.

GudinVladimir
Автор

Отлично! В некоторых случаях может успешно заменять консоле-подобные интерфейсы. Прекрасно, что для такого не нужно пользователю ничего кроме блокнота. Уже не раз сталкивался с конечными пользователями, которым надо конфигурировать иногда устройства, а необходимость любых манипуляций с чем-то типа текстового меню через ком порт вызывает ступор.
Интересно было бы так реализовать функцию прошивки.

bogdan
Автор

Хотел отблагодарить материально и попробовал по первой ссылке перевести хотя бы 100 рублей для проверки. А у меня налог взяли при этом на 383 рубля (т.е. заплатил в итоге 483 рубля по курсу). Это я представляю еще сколько у автора видео отжимают проклятые банки. Чтобы пусто им было за это. Если что я сам из Баку. А что касается видео - то очень нужная тема и спасибо (хотя бы так) Вам!

ajdarseidzade
Автор

Я как-то не уловил из видео. В итоге получился именно FAT8 ? Не вижу в библиотеке прямых на это указаний.

alp
Автор

emfat "от Фирсова" успешно использую с 16 года, в статье на хабре есть оговорка:
"Сразу предупрежу, мы не эмулируем запись на носитель. Наш «носитель» только для чтения. Это связано с повышенной сложностью контроля за формированием файловой таблицы." Функцию-пустышку emfat_write автор, несмотря на свои намерения "Возможно, в будущем будет найдено решение для корректной эмуляции записи", насколько я понял не дописал (не опубликовал?) и реализовать ее самому не очень просто. То есть запись в файлы со стороны хоста невозможна, и если-бы вы захотели, а самое главное смогли ;) это сделать было-бы круто. У меня в свое время не получилось..

ivanivan
Автор

со студенчества занимался на 8-битных компах но о 8 битном фат впервые слышу! 😲
а на ПК, х86 мсдос, была фат16...

highvolthome
Автор

Правильно я понимаю, когда я вставляю 4G модем в USB порт, то устройство распознаётся и как Mass Storage, и как ещё какой-то тип устройства одновременно? Как через куб сгенерировать проект, к примеру HID+Mass Storage?

nangelo
Автор

Добрый вечер, хотел бы еще уточнить про данный тип реализаций. Уменя есть приложение с данными которое отправляет в com порт более 64 байт, а иногда 396 байт. Могу ли я данным методом создать 2 файла конфигураций и писать в них данные с настройками приложения, а там уж микроконтроллер считает данные с этих файлов и запишет куда надо допустим во внешнию память. Как думайте это реализуемо на вашем примере вся цепочка?

АлександрСупов-ющ
Автор

Владимир, не могли бы вы, в одном из следующих видео упомянуть, хотя бы вскользь, о среде программирования Rust. А то, его позиционируют, чуть ли не как убийцу С/С++ для ARM. Лично я только начал изучать С для работы с Stm32, и тут, ползая по форумам наткнулся на панические вопли :"Бросайте свой С, все норм разработчики переходят на Rust!" Так вот теперь терзают сомнения - стоит ли дальше пыхтеть над С/С++?

Benidictich