Зачем конвертировать UF2 в BIN?
UF2 - это контейнер прошивки для USB-перетаскивания, который оборачивает реальный образ в 512-байтовые блоки, содержащие адреса флеш-памяти и ID семейства, в то время как .bin - это сырой побайтовый образ прошивки. Разработчики распаковывают UF2 в .bin, когда им нужно прошить устройство через SWD/JTAG, изучить образ или передать его в другой инструментарий, ожидающий обычный бинарный файл. Скрипт uf2conv.py из репозитория microsoft/uf2 делает это в обоих направлениях.
Способы конвертации UF2 в BIN
uf2conv.py (инструменты Microsoft UF2) OPEN-SOURCE
Из репозитория microsoft/uf2 запустите uf2conv.py firmware.uf2 -c -o firmware.bin. Флаг -c/--convert записывает файл вместо прошивки устройства.
uf2conv Python - вывод по умолчанию FREE
Запустите uf2conv.py firmware.uf2 -c без параметра -o, и по умолчанию будет создан файл flash.bin, если обнаружен бинарный вывод. Требуется Python 3.
Об этих форматах
Файл UF2 - это образ прошивки в формате Microsoft USB Flashing Format, используемый для программирования плат микроконтроллеров через USB. Его не открывают в приложении - вы переводите…
Открыть детали .UF2 →Файл BIN чаще всего представляет собой необработанную посекторную копию CD или DVD, которая поставляется вместе с сопутствующим текстовым файлом .cue, описывающим дорожки. Смонтируйте его с…
Открыть детали .BIN →Качество и на что обратить внимание
- Целевой/базовый адрес флеш-памяти, содержащийся в блоках UF2, не сохраняется в плоском
.bin; вы должны сами знать правильное смещение при повторной прошивке. - Если в UF2 были промежутки между диапазонами адресов, результирующий
.binможет быть дополнен пустыми байтами или начинаться с неверного смещения - проверьте базовый адрес. - Файл
.binсам по себе не несет ID семейства, поэтому вы теряете проверку безопасности на соответствие семейству устройств, которую обеспечивает UF2.
Часто задаваемые вопросы
Какая команда точная?
uf2conv.py firmware.uf2 -c -o firmware.bin. Флаг -c означает только конвертацию без прошивки.Нужен ли мне Python?
uf2conv.py - это скрипт на Python 3 из репозитория microsoft/uf2. Также существует порт на Rust - uf2conv-rs.Сохраняется ли адрес прошивки?
.bin является плоским образом, и вам нужно указать смещение при прошивке.Можно ли позже конвертировать обратно в UF2?
uf2conv.py firmware.bin -c -b <base> -f <family> -o firmware.uf2, указав базовый адрес и ID семейства.