DFU Converter

Беннебой
Вторник 18 декабря 2018 г. 23:10
Mooching On ine в Интернете я обнаружил, что эта статья Hackaday подробно описывает некоторую автоматизацию для преобразования стандартного бинарного бинариза.

https: // chackaday.IO/Project/4139/Инструкции

Кто -нибудь попробовал это?

Squonk42
Ср 19 декабря 2018 г. 5:55 утра
Нет, я на Linux, поэтому я просто использую Objdump, чтобы генерировать .корзин от .HEX-файл и используйте DFU-UTIL, как это:
https: // github.com/libopencm3/libopencm3/wiki/usb-dfu

AG123
Ср 19 декабря 2018 г. 5:56 утра
Поскольку я использовал Linux, DFU-UTIL работает довольно хорошо для меня как для «нормального» DFU, так и для DFUSE (DFU ST), польза для DFU ST заключается в том, что вы можете указать адрес, это расширение для исходного DFU 1.1 спецификации. Я бы подумал, что было бы хорошо, если бы USB Org обновит спецификации, чтобы включить DFU ST в стандартные характеристики :ржу не могу:
http: // dfu-util.Sourceforge.сеть/

Странное чувство состоит в том, что DFU может просто стать методом обновления прошивки DECACTO, по крайней мере для MCUS
Распространенность Maple Mini, Blue Pill и т. Д. Имеет «тихую» эволюцию, мы находимся в эпохе общего USB -устройства
Устройство USB, чье вариант использования зависит от вас для определения и программы

Squonk42
Ср 19 декабря 2018 г., 6:03
DFU является рекомендуемым USB -стандартом для обновления прошивки устройства, так что это больше, чем де -факто ;)

AG123
Ср 19 декабря 2018 г., 6:10
Я бы предпочел это, если бы STM мог бы начать представлять USB -устройства с USB 2.0 высокая скорость (или даже 3.x высокая скорость) встроенный
В эти дни даже дешевые читатели SD -карт 2 USB 2.0 (или USB 3.x) Высокая скорость

Squonk42
Ср 19 декабря 2018 г., 6:35
Имея >Скорость 480 Мбит/с на устройствах MPU < 200 МГц частоты процессора и память < 1 Mbyte, как правило, не очень полезен, за исключением некоторых конкретных приложений для строк, поэтому не стоит лишний кремниевый диск по недвижимости, лучше используется для большего количества периферийных устройств.

Как DFU (SE)!интегрируется в ROM на более новых устройствах STM32, этот предназначен бесплатно для этих MCU и стоит 8 КБ на более старых устройствах, по сравнению с 4 кб для загрузчика HID-интерфейса HID без водителя или 10 КБ для более крупного без водителя без водителя. Загрузчик MSD (Mass Storage Device), но все еще нужна утилита пользователя, чтобы прошивать прошивку в любом случае.

Мне очень нравится загрузчик MSD на основе ROM с поддержкой FAT, предложенной в устройствах NXP LPC13XX, который представляет пользователю знакому.

Беннебой
Ср 19 декабря 2018 г., 7:50 утра
Как бы я ни люблю Linux (и использую его ежедневно), я не могу утащить себя от рабочего стола Windows - мне 47 и все еще зацепил игры FPS :ржу не могу:

Squonk42
Ср 19 декабря 2018 г. 8:39
Это проблема: мне 52 года, но не склонны к игре :ржу не могу:

Тем не менее, DFU-UTIL также существует в Windows:
https: // sourceforge.net/projects/dfu-util/files/

Моду
Ср 19 декабря 2018 г., 9:54
[AG123 - Ср 19 декабря 2018 г., 5:56] - Распространенность Maple Mini, Blue Pill и т. Д. Имеет «тихую» эволюцию, мы находимся в эпохе общего USB -устройства
Интересный момент. Я фактически начал в этой отрасли, делая программное обеспечение «Пользовательская земля» для взаимодействия с пользовательскими устройствами HID (приводится в действие старым добрым Lufa на Atmegas), чтобы клиенты больше не нуждались в водителях, чтобы управлять устройствами компании. В то время (конец 2000 -х годов) это было значительным конкурентным преимуществом, в отличие от конкуренции.
Это почти как делать вещи простыми и надежными для конечного пользователя как значение : D

Беннебой
Ср 19 декабря 2018 г. 10:05
Мечтает о загрузчике F4....

Squonk42
Ср 19 декабря 2018 г. 10:22
F4 имеет загрузчик DFUSE в ПЗУ.

Rogerclark
Ср 19 декабря 2018 г., 11:37
[Беннебой - Ср 19 декабря 2018 г. 10:05] - Мечтает о загрузчике F4....
Hid Bootloader был перенесен на F4

Беннебой
Ср 19 декабря 2018 г., 11:51
[Squonk42 - Ср 19 декабря 2018 г. 10:22] - F4 имеет загрузчик DFUSE в ПЗУ.
Да, но это требует, чтобы загрузка 0 была установлена ​​на высоком уровне. Я хочу, чтобы мой торт и съесть его, чтобы я мог просто программировать через USB, не устанавливая перемычки.

Беннебой
Ср 19 декабря 2018 г. 12:05
[Rogerclark - Ср 19 декабря 2018 г. 11:37] - Hid Bootloader был перенесен на F4
Я посмотрю, я был немного некоторое время, поэтому мне нужно будет прочитать об этом.

Стивестронг
Ср 19 декабря 2018 12:18
[Беннебой - Ср 19 декабря 2018 г. 11:51] - Да, но это требует, чтобы загрузка 0 была установлена ​​на высоком уровне.
Не Boot0, но предопределенный (обычно загрузочный) вывод установлен в режиме HID Bootloader.
И только если вы не используете USB -сериал.
В противном случае, используя USB Serial, вам не нужно иметь дело с настройкой булавок, он работает так же, как и загрузчик F103 STM32Duino.

AG123
Ср 19 декабря 2018 12:20
Я думаю, что на F4 вы можете установить некоторые (мягкие регистры Boot0), чтобы при сбросе он загружается в режим DFU
Небольшая проблема с STM DFU заключается в том, что он может не сделать USB -сброс. я.эн. Правление перезагружается, но для хост -компьютера казалось бы, что ничего не изменилось.
Это может означать необходимость «отключить и подключить» USB -кабель, я подумал, что именно там это несколько более неудобно

Беннебой
Ср 19 декабря 2018 12:34
[Стивестронг - Ср 19 декабря 2018 12:18] -
[Беннебой - Ср 19 декабря 2018 г. 11:51] - Да, но это требует, чтобы загрузка 0 была установлена ​​на высоком уровне.
Не Boot0, но предопределенный (обычно загрузочный) вывод установлен в режиме HID Bootloader.
И только если вы не используете USB -сериал.
В противном случае, используя USB Serial, вам не нужно иметь дело с настройкой булавок, он работает так же, как и загрузчик F103 STM32Duino.
Хм, Deffo нуждается в Boot0 High On Mine, чтобы попасть в режим DFUSE (Black407Vet6) - Неправильная маркировка?

Но, я думаю, вы имеете в виду это в отношении вашей вилки ядра Роджера, меня больше интересует это для ядра STM - есть PR CDC, ожидающий релиза 1.5, который добавит USBERIAL.... Означает ли это, что из коробки, встроенный ROM в DFUSE, будет работать без Boot0 (или 1 : D ) Высокий? Или все еще будет необходимо использовать загрузчик, такой как Hid One. Я думаю, @fpistm будет во всем этом.

Редактировать подождите, вы говорите о HID, я имею в виду DFUSE (согласно сообщению Squonks).

Squonk42
Ср 19 декабря 2018 12:48
Чтобы ввести режим DFU в STM32F4 по программному обеспечению:
https: // Stackoverflow.COM/Вопросы/282 ... STM32-F072

Беннебой
Ср 19 декабря 2018 12:55
[Squonk42 - Ср 19 декабря 2018 12:48] - Чтобы ввести режим DFU в STM32F4 по программному обеспечению:
https: // Stackoverflow.COM/Вопросы/282 ... STM32-F072
Итак, с режимом CDC в ядре это должно быть вне коробки без загрузчика.... Он говорит : D

Squonk42
Чт 20 декабря 2018 г., 6:25
К вашему сведению, Hese - это пост в блоге (на русском языке, с грубым автоматическим переводом) на загрузчике Deviçe Mass Storage STM32:
http: // www.Авислаб.com/blog/stm32-bootloader_ru/

Я не делал этого, поэтому я не могу сказать, чего это стоит. Я потерял интерес, когда увидел необходимый размер вспышки (11 кб), и когда я понял, что в этом размере FAS не был включен.

AG123
Чт 20 декабря 2018 г., 7:03
Один «простой» способ перенести загрузчик STM32Duino в F4, хотя это потребует некоторых усилий, но сейчас я очень счастлив установить штифты загрузки :ржу не могу:

Я не на самом деле фанат загрузчиков Mass Storage, USB Mass Storage представляет «блочное устройство» на хост
И чтобы подделать все эти папки, файлы и т. Д., Потребуется кодировать и «моделировать» жирную файловую систему, которая может быть мойной работой, чем необходимо (на конце MCU), и сложность может ввести ошибки и может занять некоторое время чтобы тренироваться

Но, как упомянул Роджер, загрузчик HID вполне может быть лучшим вариантом. Основываясь на том, что я прочитал в Интернете, вам все равно понадобится приложение для загрузки прошивки
https: // github.com/bootsector/stm32-gid-bootloader
Но разница в том, что вам, возможно, не понадобятся драйверы в окнах, которые имеют дело с аппаратным обеспечением, в отличие от Libusb, который использует общий USB

Беннебой
Чт 20 декабря 2018 г., 7:57 утра
Не заинтересовано в массовом хранилище, но я полагаю, что для переключения устройства в режим DFU _will reft_ загрузочный загрузчик, включение CDC просто добавит USB -сериал к уже запущенным эскизам.

Я добился успеха с USB -сериалом, используя ядро ​​GitHub STM (1.5.0) и PR #388 (CDC). Так что, по крайней мере, было плодотворным в этом отношении.

Я думаю, что портирование загрузчика Роджера, вероятно, мне не подходит, но у меня может быть балова.

AG123
Чт 20 декабря 2018 г. 8:34 утра
Я думаю, что большая часть этой сложности частично связана с самим USB -протоколом

Когда USB -устройство сначала подключено в хосте, перечисляет и выполняет запросы на дескриптор
https: // www.за пределами сложности.org/usbnutshell/usb5.SHTML

Структура данных дескриптора (наиболее важным является класс устройств, я думаю, мы возвращаемся на хост, заставит хост предположить, что мы - тот класс устройства, который мы утверждаем, что это CDC, DFU и т. Д.
Среди осложнений заключается в том, что Libmaple Design впервые объявляет себя ASVID: PID 1EAF: 0003 Class DFU DFU, загрузчик делает это
так называемый сингл -конечный ноль
http: // www.USBMADESIMPLE.сопутствующий.Великобритания/UMS_3.htm
так что хост снова перечислил
И на этот раз, когда мы получаем запрос на дескриптор Get, мы говорим, что мы Vid: PID 1EAF: 0004 и CDC класса устройства (USB-Serial)

По какой -то причине кажется, что некоторые доски E.глин. STM32F407 Black, может быть, синие таблетки, если USB -фериперальный сброс STM32 не выпускайте «USB -сброс» (одиночный конец нулю) на хост. Нам нужно было бы найти способ установить оба D+ / D- LOW, возможно, используя DigitalWrite, чтобы сказать хосту снова перечислять
Там, после того, как мы сможем рассказать хосту, мы VID: PID 1EAF: 0004 и CDC класса устройства (USB-Serial)

USB * трудно вмешиваться в * Я еще предстоит дотронуться до поверхностных теорий поверхности

Чтобы связываться с USB, я предполагаю, что вам понадобится какой -то нецветный протокол USB и т. Д. Я вижу, что многие из этих USB -обратных инженеров сделали таким образом.
Я изо всех сил пытался настроить что -то, что вам нужно, вам понадобится стек S/W и т. Д., чтобы вмешиваться в него. Некоторые люди используют RPI (или какую -то такую ​​доску) в качестве USB Sniffer, который, я думаю, проще и более эффективно. S/W Sniffers обычно не могли захватить событие Get Descriptor
https: // www.Raspberrypi.орг/форумы/Просмотр ... п?T = 167473
может быть проще с доской
http: // beaggleboard.net/project/usbsniffer/
(РЕДАКТИРОВАТЬ: Linux имеет встроенный USBMON в ядро
https: // www.ядро.org/doc/documentation/usb/usbmon.текст
https: // wiki.Wireshark.org/captureSetup/usb
В то время как в Windows необходимы некоторые утилиты S/W, я думаю, что S/W означает, что он будет достаточным, чтобы возиться с USB Dev
Но я все еще нахожу читать эти USB -спецификации «загадочные»,
https: // www.USB.орг/документы
эн.глин. При чтении спецификаций массового хранения USB, на самом деле мало упоминается, что для обычного протокола хранения USB он на самом деле является SCSI по USB
и нужно одновременно просмотреть спецификации команд SCSI, чтобы понять, что происходит

Я думаю, что вполне возможно взломать BP/MM + RPI в USB -протокол, также может быть довольно «трудным» для этого, и сам по себе является в значительной степени проектом
https: // www.плюс.AT/en/Teensy.HTML

Беннебой
Чт 20 декабря 2018 г., 10:36 утра
Усилия по вознаграждению - это предпочтение Boot 0 PIN :ржу не могу: :ржу не могу:

Вассилис
Чт 20 декабря 2018 г. 11:13
Если вы заинтересованы в Hid Bootloader для F4, посмотрите на мою репо
https: // github.com/serasidis/stm32_hid_bootloader

Беннебой
Вторник 01 января 2019 22:01
Что ж, я потратил час, пытаясь заставить загрузчик HID работать, просто не перечисляет вспышку Post Flash. Пытался привлечь Boot1 и все еще ничего не получить :(

PS это на черном 407Vet6. это отлично работает на BluePill.

Беннебой
Ср. 02 января 2019 г., 19:33
Поэтому я установил GNU Make и создал загрузчик из исходного кода, загрузил корзину с помощью ST-Link, и он отлично работает. Не знаю, почему это не сработает, если я использую .гекс версии в репо.

AG123
Чт, 03 января 2019 г., 17:24
Я думаю, что если вы используете DFU-UTIL, он работает только с файлами * bin *, я думаю, что «шестнадцатеричные» файлы не будут работать с dfu-util.
Решение состоит в том, чтобы изменить этот строитель OBJ-DUMP для создания файлов bin, а не шестнадцатеричных файлов

Беннебой
Чт, 03 января 2019 18:34
[AG123 - Чт, 03 января 2019 г., 17:24] - Я думаю, что если вы используете DFU-UTIL, он работает только с файлами * bin *, я думаю, что «шестнадцатеричные» файлы не будут работать с dfu-util.
Решение состоит в том, чтобы изменить этот строитель OBJ-DUMP для создания файлов bin, а не шестнадцатеричных файлов
Я использовал ST-Link.