Делал с помощью библиотеки emFAT загрузчик для устройства. Файл с прошивкой через проводник отправлялся на виртуальный диск после чего и производилось обновление. Кроссплатформенности не получилось, диск некорректно эмулировался на MAC-OS. На Windows только на 8-ке были какие-то проблемы. Отличный проект, тысячу раз пожелал автору emFAT добра.
Хм-м, дружище, где вы были 5-10 лет назад, когда из Ардуины делали чего только не попадя, и джйстики и мышки и флешки и рули и педали, и пр. и пр., только меняй ID девайса в ответе... И-и-и... весь мир у тебя на "ладони", J.Бонд отдыхает за спиной! 👍😁🤪
@@ГеннадийГром-в8ю когда все мучили ардуинки я матросил ATMega8 в CVAVR. И подковывал блох ATtiny13 втрамбовывая максимум возможностей в их ограниченное количество флеша и оперативы. Но с usb усьройствами не было задач.
т.е. настройку устройства можно превратить в считывание файла с конфигурацией и записи в этот файл изменённых значений, сразу с проверкой налету!!! т.е. мы же можем не принять файл если ошибки при заполнеии!!!! т.е. конфигурировать можно любым устройством с любым текстовым редактором!!! КЛАСС
Такие виртуальные ФС удобно использовать для доступа к оборудованию. Например файлик adc0 при чтении из него микроконтроллер выполняет преобразование и отдает полученное значение. Другой пример - запись в файл uart0, передает записанный байт по uart0, и аналогично при чтении.
Спасибо за интересную тему. Сам я не занимаюсь программированием, но это может натолкнуть других энтузиастов сделать из этого контроллера тестер юсб порта инициализации запуска материнской платы, такие тестеры есть, но они прикидываются либо кнопкой капслок клавиатуры, или мышкой, а у вас на виртуальном диске. А если еще сможете сделать диагностику сопротивления и падение напряжения шине юсб со светозвуковой индикацией, то вполне возможен коммерческий проект. Сам бы я хотел научиться эту ремеслу, но пока не располагаю стольким временем на изучение с++. Респект Вам. Извиняюсь если эта тема была ранее уже опробована вами.
Спасибо за, как всегда, отличный материал. На сколько я понипаю, именно такой механизм работает, например, в отладчиках STLink. В тех версиях (по-моему, начиная с 2.1), где есть возможность залить прошивку просто скопировав ее на виртуальный диск. Там точно так же нет никакого реального хранилища. То же самое встречается в других устройствах. Паяльник TS100 - та же история. Там и конфигурационный файл есть, и обновление ПО.
Отлично! В некоторых случаях может успешно заменять консоле-подобные интерфейсы. Прекрасно, что для такого не нужно пользователю ничего кроме блокнота. Уже не раз сталкивался с конечными пользователями, которым надо конфигурировать иногда устройства, а необходимость любых манипуляций с чем-то типа текстового меню через ком порт вызывает ступор. Интересно было бы так реализовать функцию прошивки.
Добрый вечер, хотел бы еще уточнить про данный тип реализаций. Уменя есть приложение с данными которое отправляет в com порт более 64 байт, а иногда 396 байт. Могу ли я данным методом создать 2 файла конфигураций и писать в них данные с настройками приложения, а там уж микроконтроллер считает данные с этих файлов и запишет куда надо допустим во внешнию память. Как думайте это реализуемо на вашем примере вся цепочка?
@@VladimirMedintsev Спасибо, просто я хочу обойти все записи данных с ограничениями cdc в 64 байта , складывать буферы можно, но вижу реализацию интереснее и проще в 512 байт укладываюсь при записи)
Хотел отблагодарить материально и попробовал по первой ссылке перевести хотя бы 100 рублей для проверки. А у меня налог взяли при этом на 383 рубля (т.е. заплатил в итоге 483 рубля по курсу). Это я представляю еще сколько у автора видео отжимают проклятые банки. Чтобы пусто им было за это. Если что я сам из Баку. А что касается видео - то очень нужная тема и спасибо (хотя бы так) Вам!
@@VladimirMedintsev Это Вам большое человеческое спасибо, что находите время и снимаете такие видео. Вот Вы говорите спасибо - хотя около 80% процентов от суммы тут просто-напросто отжал себе банк и даже не пикнул в ответ.
Хм-м, когда-то, поездка на автобусе: Сухум - Зугдиди - Поти - Батуми, и обратно! Это было просто классное путешествие... Билет на самолёт Сухум-Воронеж стоил 26, мать его, рублей! А теперь пересечение 3 границ, жесть и жоп.па в полный рост, и т.д. и т.п., чо говорить, уже начинаешь украинцам завидовать с энтой ейропой (не точно, требует корректировки:)! Да лан, мож как-то всё устаканится, бум ещё с улыбкой вспоминать эти времена, главное успеть на ентот поезд попасть! 👍😁🤪
Правильно я понимаю, когда я вставляю 4G модем в USB порт, то устройство распознаётся и как Mass Storage, и как ещё какой-то тип устройства одновременно? Как через куб сгенерировать проект, к примеру HID+Mass Storage?
@@VladimirMedintsev здравствуйте, Владимир мне сегодня пришла esp 32Wroom , я конечно этому очень рад, но с чего поступиться, ибо я вообще ламер😁, и меня кроме смартфона и этой платы нет, даже роутера🤔, вот я могу на этом модуле в связке с sad, или просто флешки сделать на базе этого модуля типо мини веб сервера?? И еще не знаю какой универсальный программатор к нему?? Подскажите, студенту, пж😊
emfat "от Фирсова" успешно использую с 16 года, в статье на хабре есть оговорка: "Сразу предупрежу, мы не эмулируем запись на носитель. Наш «носитель» только для чтения. Это связано с повышенной сложностью контроля за формированием файловой таблицы." Функцию-пустышку emfat_write автор, несмотря на свои намерения "Возможно, в будущем будет найдено решение для корректной эмуляции записи", насколько я понял не дописал (не опубликовал?) и реализовать ее самому не очень просто. То есть запись в файлы со стороны хоста невозможна, и если-бы вы захотели, а самое главное смогли ;) это сделать было-бы круто. У меня в свое время не получилось..
Это я читал, более того эта цитата есть в комментариях ниже, по факту на коротких файлах все работает, на длинные сделать тоже можно без особых бубнов. Но в результате я и делать не стал, а взял готовую реализацию от ARM и ее применил в проекте. Кстати не сильно от emfat и отличается. Там в итоге еще вопрос будет кто у кого списывал.
@@VladimirMedintsev "Там в итоге еще вопрос будет кто у кого списывал." ;) . А поконкретнее не ткнете носом в какую сторону смотреть насчет "взял готовую реализацию от ARM"
На официальном гитхабе ARM возьмите полную CMSIS, в ней каталог DAP/examples это исходный код программатора для NXP, он у них опенсорсный и в нем найдете шикарную библиотеку виртуального fat. Он у них файл пишешь и программатор на лету прошивает.
Коллеги, у всех CUBEIDE нормально работает? У меня при конфигурировании выводов по три минуты над каждой операцией думает. Версия 1.6.0. Отзовитесь, пожалуйста.
@@VladimirMedintsev , отдельным CubeMX давно не пользовался. Вот обновил до 6.1.2 - тоже работает нормально. А в составе CubeIDE - жутчайшим образом тупит. Но раз у вас работает хорошо, значит это моя локальная проблема. Буду искать решение. Спасибо за помощь.
Владимир, не могли бы вы, в одном из следующих видео упомянуть, хотя бы вскользь, о среде программирования Rust. А то, его позиционируют, чуть ли не как убийцу С/С++ для ARM. Лично я только начал изучать С для работы с Stm32, и тут, ползая по форумам наткнулся на панические вопли :"Бросайте свой С, все норм разработчики переходят на Rust!" Так вот теперь терзают сомнения - стоит ли дальше пыхтеть над С/С++?
Вне всякого сомнения необходимо бросать все и переходить на популярные языки программирования, которые использует большинство разработчиков. Зачем? А для того чтобы пользоваться их советами опытом и наработками. Это прагматичный подход. Библиотеки и поддержка от ВСЕХ производителей микроконтроллеров на Си? Да на языке Си. 99% кода написанного под микроконтроллеры и размещенного на гитхаб тоже на Си? Но по мнению какого-то анонима все должны писать на Руст? Странное мнение. Но на самом деле проблема тут глубже. Проблема не в Русте и не в Си. Проблема в Вас. Если вы реально колеблетесь стоит ли осваивать Си, то лучше вам программированием не заниматься, Си прародитель многих языков и без него вам будет недоступен код написанный за десятилетия его существования.
Спасибо за ответ. Да, побродив по форумам, тоже, пришёл к выводу, что новичкам лучше сначала освоить С. Больше информации и уроков доступно именно по этому языку. А если и захочется, потом, попробовать Rust, то знание С облегчит его освоение, так как они схожи.
@@VladimirMedintsev Вот как раз с целью освоения Раста начал новый проект на нем. В крайнем случае напишу сложный функционал на С и вызову из Раста, все совместимо.
@@ShiloXyZ Зачем нужен этот язык если "сложный функционал напишу на Си". Это теперь будет у меня как новый анекдот - Rust годится только для вызова Сишного кода. Очень мило и смешно. Спасибо, подняли настроение.
А купить не быстрее будет на том же алиэкспресс - SFR1M44-U100 Normal Version 3.5 Inch 1.44MB USB SSD FLOPPY DRIVE EMULATOR GOTEK a.aliexpress.com/_9ui1fW
@@VladimirMedintsev )), ну про этот эмулятор я знаю, )) и купить всегда быстрее, U100 сам производитель рекомендует 2 штуки покупать (один для работы в оборудовании, другой в компе для подготовки и для записи флешки), в отличии от предыдущих моделей - где виртуальные дискеты подготавливались в программе. Ставятся в старые ЧПУ станки, где управляющая программа на дискетах. Но все равно спасибо, интересно, лайк однозначно
Суть шины от этого не меняется. Сделать можно что угодно. И на более примитивных процессорах делали. Только вот смысла нет, а сделать можно что угодно.
Напомнило из военной кафедры, прошу строго не ругать: "Можно Машку, за ляжку, а у нас разрешите!" Прописать ответ устройства и протокол обмена, как говаривали в наше "модемное" время: "Как два байта переслать!" Было бы желание, а реализацию накорябать - надо ток почитать доки на интефейс, напрячь "коробушку", и воочию представить - что оно из себя представляет, и на кой оно мне надо?! 👍😁🤪
@@СергійДзюбленко Начнем с того, что не агитирую, а информирую народ о наличии STM32CubeIDE и ее возможностях. Ей посвящено сколько? Два ролика на канале? Из нескольких сотен роликов. Забавно... Ну а если серьезно, то никто из вас, за исключением двух или трех подписчиков ни разу не видел моего реального кода и реальных проектов. Из живых проектов вообще на канале показано только вскользь и только три ("мозгоправка" без кода, GSM модуль с кодом в Keil и модуль затопления без кода). Я к чему, да к тому что никто из вас не знает что именно, какую IDE я использую в реальной работе. Ходят слухи что это может быть Segger Studio. А что касается показанного в роликах Keil, так по этому поводу я писал наверное раз уже 40-50 - большинство обучающих видео в интернете показывают Keil. И я буду показывать Keil. Ну и может мне немцы за это платят, никто же не знает...
@@Βιτάλης-χ1π Я пользовался Keil, до него - IAR(в основном писал код на asm), но в итоге остановился на СubeIDE...как по моему вполне годный бесплатный софт.Но (имхо) на под Linux CubeIDE работает стабильней. Не сказал бы что Keil или IAR удобней...в СubeIDE все в одном месте и редактор и генератор кода да и другие фишки.
Владимир, хочу поблагодарить Вас за видео. Просмотрел и тут же повторил, и всё заработало как у Вас. Но почему же не сказали о главном? В статье на Хабре и на easyelectronics автор постоянно упоминает о том, что носитель только для чтения. В видео об этом нет ни слова. Возможно у Вас получилось это сделать? Вот что пишет автор: "Сразу предупрежу, мы не эмулируем запись на носитель. Наш «носитель» только для чтения." "Функцяи - emfat_write пустышка, которую, однако, мы вызываем, если от ОС приходит запрос на запись сектора." На вопрос можно ли сделать работающую функцию записи, автор ответил: "К сожалению, качественного решения нет. emfat, позволяет, например, отслеживать перезапись существующего файла. Данное свойство я использовал для перешивки. Но это работает до тех пор пока драйвер хоста использует последовательное размещение кластеров. Сделать как-то иначе в теории он может. Другой подход - контролировать изменение файловой таблицы синхронно с записью, которую проводит хост. Это должно работать устойчиво на большинстве платформ, но есть масса способов как "уронить" устройство. Например, начать копирование нескольких файлов или дифрагментацию..."
Если стоит задача что-то уронить... Тут я бессилен. А по факту я хотел показать куда копать. Я не фанат давать готовые решения, у людей должна и своя голова работать. Но ведь есть и рабочий пример с записью. И прекрасно работает и прочитав его код вы узнаете как доделать emfat, ну если после этого захотите доделывать. Получить рабочий код достаточно просто. 1. Заходите на официальный гитхаб ARM. 2. Качаете последнюю версию CMSIS. 3. Заходите в папку DAP, там внутри папка Example. 4. В ней лежит исходный код программатора поддерживающего drag and drop файлы прошивки. Т.е. он определяется как mass storage и воспринимает копирование файла на виртуальный диск при этом прошивает микроконтроллер. 5. Берете из этого проекта 3 файла и получаете удовольствие. Там же хороший парсер hex файлов лежит... Не благодарите.
Полезная функция доступа к логам. Я второй месяц бьюсь с USB CUSTOM HID DEVICE. Тяжело идёт. Неужели кто-то может с этим всем стеком детально разобраться? А библиотека от СТМ настолько абстрагировалась от байтов/пакетов, что непонятно зачем все эти функции нужны и как ими пользоваться. Дескриптор репорта такой хрупкий и противоречивый, набираешь поля буквально наугад без возможности нормально отладить эти поля. Устройство просто не определяется и никакой дебаг информации взять негде, или просто я не знаю где её искать. В общем USB-это ужас с такой же ужасной документацией.
Вот именно так! Спецификация USB нам была послана с Альдебарана, но до нас дошли лишь обрывки той доки, вот с тех пор все и бьются над этой щепоткой информации, и лишь люди, с повышенной чувствительностью к "силе" могут как-то, что-то, почему-то, накорябать! Хоть это и работает через пень-колоду, ну хоть как-то! 👍😁🤪
Делал с помощью библиотеки emFAT загрузчик для устройства. Файл с прошивкой через проводник отправлялся на виртуальный диск после чего и производилось обновление. Кроссплатформенности не получилось, диск некорректно эмулировался на MAC-OS. На Windows только на 8-ке были какие-то проблемы. Отличный проект, тысячу раз пожелал автору emFAT добра.
ну наконец посмотрел. Ваши видео надо смотреть с кофе и плюшками и чтобы никто не мешал :)
Выражаю почтение! Очень рад, что библиотека emfat кому-то пригодилась ❤
Спасибо вам, хорошая библиотека
Очень круто, как раз искал нечто подобное.
Спасибо ! интересный ролик, открывает новые пути решения и возможности.
Какие возможности открывает?
Очень круто, применений реально много можно придумать
Спасибо за интересный контент.
Гениально! Я никогда бы не подумал, что устройства на stm32 можно превратить в usb накопитель и его настройку проводить просто редактируя файлик!!!
Хм-м, дружище, где вы были 5-10 лет назад, когда из Ардуины делали чего только не попадя, и джйстики и мышки и флешки и рули и педали, и пр. и пр., только меняй ID девайса в ответе... И-и-и... весь мир у тебя на "ладони", J.Бонд отдыхает за спиной! 👍😁🤪
@@ГеннадийГром-в8ю когда все мучили ардуинки я матросил ATMega8 в CVAVR. И подковывал блох ATtiny13 втрамбовывая максимум возможностей в их ограниченное количество флеша и оперативы. Но с usb усьройствами не было задач.
Спасибо, интересная тема.
Спасибо, Владимир. Интересная идея.
Владимир, вы куда-то всё глубже и глубже опускаетесь, мы за вами не успеваем)
Надо поспевать! Иначе все наши телодвижения яйца "перезагруженного" не стоят! 👍😁🤪
Огромное спасибо!
т.е. настройку устройства можно превратить в считывание файла с конфигурацией и записи в этот файл изменённых значений, сразу с проверкой налету!!! т.е. мы же можем не принять файл если ошибки при заполнеии!!!! т.е. конфигурировать можно любым устройством с любым текстовым редактором!!! КЛАСС
Ну типа ДА
Такие виртуальные ФС удобно использовать для доступа к оборудованию. Например файлик adc0 при чтении из него микроконтроллер выполняет преобразование и отдает полученное значение. Другой пример - запись в файл uart0, передает записанный байт по uart0, и аналогично при чтении.
Да, тоже очень хорошая идея.
Спасибо за интересную тему. Сам я не занимаюсь программированием, но это может натолкнуть других энтузиастов сделать из этого контроллера тестер юсб порта инициализации запуска материнской платы, такие тестеры есть, но они прикидываются либо кнопкой капслок клавиатуры, или мышкой, а у вас на виртуальном диске. А если еще сможете сделать диагностику сопротивления и падение напряжения шине юсб со светозвуковой индикацией, то вполне возможен коммерческий проект. Сам бы я хотел научиться эту ремеслу, но пока не располагаю стольким временем на изучение с++. Респект Вам. Извиняюсь если эта тема была ранее уже опробована вами.
Спасибо за, как всегда, отличный материал. На сколько я понипаю, именно такой механизм работает, например, в отладчиках STLink. В тех версиях (по-моему, начиная с 2.1), где есть возможность залить прошивку просто скопировав ее на виртуальный диск. Там точно так же нет никакого реального хранилища. То же самое встречается в других устройствах. Паяльник TS100 - та же история. Там и конфигурационный файл есть, и обновление ПО.
В какой-то части устройств это сделано именно так. Пользуйтесь, теперь и вы это умеете.
Спасибо
Я как-то не уловил из видео. В итоге получился именно FAT8 ? Не вижу в библиотеке прямых на это указаний.
Библиотека изображает из сетя FAT32.
Я хотел писать FAT8.
Отлично! В некоторых случаях может успешно заменять консоле-подобные интерфейсы. Прекрасно, что для такого не нужно пользователю ничего кроме блокнота. Уже не раз сталкивался с конечными пользователями, которым надо конфигурировать иногда устройства, а необходимость любых манипуляций с чем-то типа текстового меню через ком порт вызывает ступор.
Интересно было бы так реализовать функцию прошивки.
Да и с прошивкой не проблема. Там ведь передается по 512 байт, вполне удобно принимать, проверять и самопрошивать. Особенно если есть свободный банк.
@@VladimirMedintsev Да, очень функциональная штука! Спасибо!
Добрый вечер, хотел бы еще уточнить про данный тип реализаций. Уменя есть приложение с данными которое отправляет в com порт более 64 байт, а иногда 396 байт. Могу ли я данным методом создать 2 файла конфигураций и писать в них данные с настройками приложения, а там уж микроконтроллер считает данные с этих файлов и запишет куда надо допустим во внешнию память. Как думайте это реализуемо на вашем примере вся цепочка?
Все в ваших руках. Все можно реализовать.
@@VladimirMedintsev Спасибо, просто я хочу обойти все записи данных с ограничениями cdc в 64 байта , складывать буферы можно, но вижу реализацию интереснее и проще в 512 байт укладываюсь при записи)
Хотел отблагодарить материально и попробовал по первой ссылке перевести хотя бы 100 рублей для проверки. А у меня налог взяли при этом на 383 рубля (т.е. заплатил в итоге 483 рубля по курсу). Это я представляю еще сколько у автора видео отжимают проклятые банки. Чтобы пусто им было за это. Если что я сам из Баку. А что касается видео - то очень нужная тема и спасибо (хотя бы так) Вам!
Налоги ужасная штука. Я не расчитывал, на помощь из-за границы. Честно говоря.
Но огромнейшее вам спасибо.
Да вообще с этими границами... Раньше и я еще помню эти времена можно было просто поехать в Баку... А сейчас блин это заграница.
@@VladimirMedintsev Это Вам большое человеческое спасибо, что находите время и снимаете такие видео. Вот Вы говорите спасибо - хотя около 80% процентов от суммы тут просто-напросто отжал себе банк и даже не пикнул в ответ.
Хм-м, когда-то, поездка на автобусе: Сухум - Зугдиди - Поти - Батуми, и обратно! Это было просто классное путешествие... Билет на самолёт Сухум-Воронеж стоил 26, мать его, рублей! А теперь пересечение 3 границ, жесть и жоп.па в полный рост, и т.д. и т.п., чо говорить, уже начинаешь украинцам завидовать с энтой ейропой (не точно, требует корректировки:)! Да лан, мож как-то всё устаканится, бум ещё с улыбкой вспоминать эти времена, главное успеть на ентот поезд попасть! 👍😁🤪
Правильно я понимаю, когда я вставляю 4G модем в USB порт, то устройство распознаётся и как Mass Storage, и как ещё какой-то тип устройства одновременно? Как через куб сгенерировать проект, к примеру HID+Mass Storage?
Через куб ни как. Есть на Хабре пример как это руками делается.
@@VladimirMedintsev спасибо, поищу там
Добрый день, как я понял можно прошить новой версией прошивку на stm32 просто закинув туда файл .bin?
Ну в начале вам там надо еще немного кода дописать, а потом, можно.
@@VladimirMedintsev здравствуйте, Владимир мне сегодня пришла esp 32Wroom , я конечно этому очень рад, но с чего поступиться, ибо я вообще ламер😁, и меня кроме смартфона и этой платы нет, даже роутера🤔, вот я могу на этом модуле в связке с sad, или просто флешки сделать на базе этого модуля типо мини веб сервера?? И еще не знаю какой универсальный программатор к нему?? Подскажите, студенту, пж😊
emfat "от Фирсова" успешно использую с 16 года, в статье на хабре есть оговорка:
"Сразу предупрежу, мы не эмулируем запись на носитель. Наш «носитель» только для чтения. Это связано с повышенной сложностью контроля за формированием файловой таблицы." Функцию-пустышку emfat_write автор, несмотря на свои намерения "Возможно, в будущем будет найдено решение для корректной эмуляции записи", насколько я понял не дописал (не опубликовал?) и реализовать ее самому не очень просто. То есть запись в файлы со стороны хоста невозможна, и если-бы вы захотели, а самое главное смогли ;) это сделать было-бы круто. У меня в свое время не получилось..
Это я читал, более того эта цитата есть в комментариях ниже, по факту на коротких файлах все работает, на длинные сделать тоже можно без особых бубнов. Но в результате я и делать не стал, а взял готовую реализацию от ARM и ее применил в проекте. Кстати не сильно от emfat и отличается. Там в итоге еще вопрос будет кто у кого списывал.
@@VladimirMedintsev "Там в итоге еще вопрос будет кто у кого списывал." ;) . А поконкретнее не ткнете носом в какую сторону смотреть насчет "взял готовую реализацию от ARM"
На официальном гитхабе ARM возьмите полную CMSIS, в ней каталог DAP/examples это исходный код программатора для NXP, он у них опенсорсный и в нем найдете шикарную библиотеку виртуального fat. Он у них файл пишешь и программатор на лету прошивает.
@@VladimirMedintsev О, спасибо, не знал.
Я тоже не знал пока не прочитал на сайте ARM. Всегда думал там мусор всякий.
Коллеги, у всех CUBEIDE нормально работает? У меня при конфигурировании выводов по три минуты над каждой операцией думает. Версия 1.6.0. Отзовитесь, пожалуйста.
А CubeMX у вас до какой версии обновлен? Должен быть 6.2.0
@@VladimirMedintsev , вот такая 6.2.0.202102191602
CubeMX в моем случае встроен в CubeIDE.
У вас работает?
@@АндрейИ-ф3л Сейчас проверяю. У меня не было последнего обновления IDE сейчас обновляю.
@@АндрейИ-ф3л Все работает нормально но при обновлении вылетел.
@@VladimirMedintsev , отдельным CubeMX давно не пользовался. Вот обновил до 6.1.2 - тоже работает нормально.
А в составе CubeIDE - жутчайшим образом тупит. Но раз у вас работает хорошо, значит это моя локальная проблема. Буду искать решение. Спасибо за помощь.
Владимир, не могли бы вы, в одном из следующих видео упомянуть, хотя бы вскользь, о среде программирования Rust. А то, его позиционируют, чуть ли не как убийцу С/С++ для ARM. Лично я только начал изучать С для работы с Stm32, и тут, ползая по форумам наткнулся на панические вопли :"Бросайте свой С, все норм разработчики переходят на Rust!" Так вот теперь терзают сомнения - стоит ли дальше пыхтеть над С/С++?
Вне всякого сомнения необходимо бросать все и переходить на популярные языки программирования, которые использует большинство разработчиков. Зачем? А для того чтобы пользоваться их советами опытом и наработками. Это прагматичный подход. Библиотеки и поддержка от ВСЕХ производителей микроконтроллеров на Си? Да на языке Си. 99% кода написанного под микроконтроллеры и размещенного на гитхаб тоже на Си? Но по мнению какого-то анонима все должны писать на Руст? Странное мнение.
Но на самом деле проблема тут глубже. Проблема не в Русте и не в Си. Проблема в Вас. Если вы реально колеблетесь стоит ли осваивать Си, то лучше вам программированием не заниматься, Си прародитель многих языков и без него вам будет недоступен код написанный за десятилетия его существования.
Спасибо за ответ. Да, побродив по форумам, тоже, пришёл к выводу, что новичкам лучше сначала освоить С. Больше информации и уроков доступно именно по этому языку. А если и захочется, потом, попробовать Rust, то знание С облегчит его освоение, так как они схожи.
@@VladimirMedintsev Вот как раз с целью освоения Раста начал новый проект на нем. В крайнем случае напишу сложный функционал на С и вызову из Раста, все совместимо.
@@ShiloXyZ Зачем нужен этот язык если "сложный функционал напишу на Си". Это теперь будет у меня как новый анекдот - Rust годится только для вызова Сишного кода. Очень мило и смешно. Спасибо, подняли настроение.
@@VladimirMedintsev по тому что с наскока не осилить, а если не делать конкретный проект то и учить нет мотивации
со студенчества занимался на 8-битных компах но о 8 битном фат впервые слышу! 😲
а на ПК, х86 мсдос, была фат16...
Откройте английскую википедию и прочитайте. Variants 8-bit FAT, FAT12, FAT16 и так далее... Как бы было сказано что для небольших носителей.
@@VladimirMedintsev я заметил что в Википедии вы показали что там есть упоминание, но я больше нигде не видел описания, в какой ОС это применялось?
А можно виртуальный диск пустить по интерфейсу по FDD 3.5” 1.44? Что б комп его считал флоповодом , а то иногда нужно дискеты
А купить не быстрее будет на том же алиэкспресс - SFR1M44-U100 Normal Version 3.5 Inch 1.44MB USB SSD FLOPPY DRIVE EMULATOR GOTEK
a.aliexpress.com/_9ui1fW
@@VladimirMedintsev )), ну про этот эмулятор я знаю, )) и купить всегда быстрее, U100 сам производитель рекомендует 2 штуки покупать (один для работы в оборудовании, другой в компе для подготовки и для записи флешки), в отличии от предыдущих моделей - где виртуальные дискеты подготавливались в программе. Ставятся в старые ЧПУ станки, где управляющая программа на дискетах. Но все равно спасибо, интересно, лайк однозначно
А почему FAT8, а не 32? Будет работать на Win10?
Будет.
FAT8 - самая ламповая, диды одобрят.
@@redtex Одобряю! 👍😁🤪
А под scsi шину можно сделать ?
Можно и под scsi.
@@VladimirMedintsev речь про эмуляцию устройства на шине scsi с стм32.а на другом конце сд карта или жесткий диск сата
Суть шины от этого не меняется. Сделать можно что угодно. И на более примитивных процессорах делали. Только вот смысла нет, а сделать можно что угодно.
Напомнило из военной кафедры, прошу строго не ругать: "Можно Машку, за ляжку, а у нас разрешите!" Прописать ответ устройства и протокол обмена, как говаривали в наше "модемное" время: "Как два байта переслать!" Было бы желание, а реализацию накорябать - надо ток почитать доки на интефейс, напрячь "коробушку", и воочию представить - что оно из себя представляет, и на кой оно мне надо?! 👍😁🤪
Зіткнувся з таблицею переривань: має бути якась обгортка, а взагалі ідея прекрасна.
Почему не пользуетесь СubeIDE?
Пользуюсь, очень активно пользуюсь. Вы даже представить себе не можете насколько я ее использую...
@@VladimirMedintsev Тоже это заметил, агитируете за CubeIDE, используете везде Keil в примерах).
@@СергійДзюбленко Начнем с того, что не агитирую, а информирую народ о наличии STM32CubeIDE и ее возможностях. Ей посвящено сколько? Два ролика на канале? Из нескольких сотен роликов. Забавно...
Ну а если серьезно, то никто из вас, за исключением двух или трех подписчиков ни разу не видел моего реального кода и реальных проектов. Из живых проектов вообще на канале показано только вскользь и только три ("мозгоправка" без кода, GSM модуль с кодом в Keil и модуль затопления без кода).
Я к чему, да к тому что никто из вас не знает что именно, какую IDE я использую в реальной работе. Ходят слухи что это может быть Segger Studio.
А что касается показанного в роликах Keil, так по этому поводу я писал наверное раз уже 40-50 - большинство обучающих видео в интернете показывают Keil. И я буду показывать Keil. Ну и может мне немцы за это платят, никто же не знает...
Как про меня то кейл лучше приятнее что-ли
@@Βιτάλης-χ1π
Я пользовался Keil, до него - IAR(в основном писал код на asm), но в итоге остановился на СubeIDE...как по моему вполне годный бесплатный софт.Но (имхо) на под Linux CubeIDE работает стабильней.
Не сказал бы что Keil или IAR удобней...в СubeIDE все в одном месте и редактор и генератор кода да и другие фишки.
Владимир, хочу поблагодарить Вас за видео. Просмотрел и тут же повторил, и всё заработало как у Вас. Но почему же не сказали о главном? В статье на Хабре и на easyelectronics автор постоянно упоминает о том, что носитель только для чтения. В видео об этом нет ни слова. Возможно у Вас получилось это сделать?
Вот что пишет автор:
"Сразу предупрежу, мы не эмулируем запись на носитель. Наш «носитель» только для чтения."
"Функцяи - emfat_write пустышка, которую, однако, мы вызываем, если от ОС приходит запрос на запись сектора."
На вопрос можно ли сделать работающую функцию записи, автор ответил:
"К сожалению, качественного решения нет.
emfat, позволяет, например, отслеживать перезапись существующего файла. Данное свойство я использовал для перешивки. Но это работает до тех пор пока драйвер хоста использует последовательное размещение кластеров. Сделать как-то иначе в теории он может.
Другой подход - контролировать изменение файловой таблицы синхронно с записью, которую проводит хост. Это должно работать устойчиво на большинстве платформ, но есть масса способов как "уронить" устройство. Например, начать копирование нескольких файлов или дифрагментацию..."
Если стоит задача что-то уронить... Тут я бессилен. А по факту я хотел показать куда копать. Я не фанат давать готовые решения, у людей должна и своя голова работать. Но ведь есть и рабочий пример с записью. И прекрасно работает и прочитав его код вы узнаете как доделать emfat, ну если после этого захотите доделывать. Получить рабочий код достаточно просто.
1. Заходите на официальный гитхаб ARM.
2. Качаете последнюю версию CMSIS.
3. Заходите в папку DAP, там внутри папка Example.
4. В ней лежит исходный код программатора поддерживающего drag and drop файлы прошивки. Т.е. он определяется как mass storage и воспринимает копирование файла на виртуальный диск при этом прошивает микроконтроллер.
5. Берете из этого проекта 3 файла и получаете удовольствие.
Там же хороший парсер hex файлов лежит...
Не благодарите.
@@VladimirMedintsev google - DAPLink
Please provide english subtitles in your video
Sorry I don't have time to do this. But you have to use code and library. Link in the description.
Полезная функция доступа к логам. Я второй месяц бьюсь с USB CUSTOM HID DEVICE. Тяжело идёт. Неужели кто-то может с этим всем стеком детально разобраться? А библиотека от СТМ настолько абстрагировалась от байтов/пакетов, что непонятно зачем все эти функции нужны и как ими пользоваться. Дескриптор репорта такой хрупкий и противоречивый, набираешь поля буквально наугад без возможности нормально отладить эти поля. Устройство просто не определяется и никакой дебаг информации взять негде, или просто я не знаю где её искать. В общем USB-это ужас с такой же ужасной документацией.
Вот именно так! Спецификация USB нам была послана с Альдебарана, но до нас дошли лишь обрывки той доки, вот с тех пор все и бьются над этой щепоткой информации, и лишь люди, с повышенной чувствительностью к "силе" могут как-то, что-то, почему-то, накорябать! Хоть это и работает через пень-колоду, ну хоть как-то! 👍😁🤪
Интересно, но пока сложно(
Цікаво лайк сап
Спасибо