Warum UF2 in HEX konvertieren?
UF2 kapselt Firmware für das Drag-and-Drop-Flashing, während .hex (Intel HEX) ein ASCII-Format ist, das sowohl die Daten als auch deren Speicheradressen kodiert und von vielen Flash-Tools und Programmiergeräten verwendet wird. Da uf2conv.py kein Intel HEX ausgibt, nutzen Sie den Umweg über eine rohe .bin-Datei und lassen objcopy (aus den GNU binutils) die Adressdatensätze hinzufügen. Dies ist üblich, wenn der Programmierer oder Bootloader eines Zielgeräts .hex anstelle von UF2 erwartet.
Wie man UF2 in HEX konvertiert
uf2conv.py dann objcopy OPEN-SOURCE
Führen Sie uf2conv.py firmware.uf2 -c -o firmware.bin aus, dann objcopy -I binary -O ihex --change-addresses 0x2000 firmware.bin firmware.hex, um den Flash-Offset hinzuzufügen.
objcopy (GNU binutils / arm-none-eabi) FREE
Verwenden Sie das Toolchain-Tool arm-none-eabi-objcopy -I binary -O ihex firmware.bin firmware.hex. Fügen Sie --change-addresses hinzu, um die Daten an der richtigen Speicheradresse zu platzieren.
SRecord (srec_cat) OPEN-SOURCE
Falls die Offset-Handhabung von objcopy fehlschlägt, führen Sie srec_cat firmware.bin -binary -offset 0x2000 -o firmware.hex -intel aus, um das Intel HEX mit einer präzisen Adresse zu erstellen.
Über diese Formate
Eine UF2-Datei ist ein Firmware-Image im USB Flashing Format von Microsoft, das zur Programmierung von Mikrocontroller-Boards über USB verwendet wird. Sie öffnen sie nicht in einer App -…
.UF2-Details öffnen →Eine .hex-Datei ist eine Intel-HEX-Datei: kompilierte Firmware für einen Mikrocontroller wie Arduino, AVR oder PIC, gespeichert als Klartext-Datensätze. Sie wird nicht auf einem PC…
.HEX-Details öffnen →Qualität & worauf zu achten ist
- Es gibt keinen Ein-Befehl-Weg für UF2-zu-HEX; die rohe
.bindazwischen verliert die Adresse, daher müssen Sie den Flash-Basis-Offset im objcopy/srec-Schritt erneut angeben. - Geben Sie den Offset falsch an, platziert die
.hex-Datei den Code an der falschen Speicheradresse, was das Gerät unbrauchbar machen („bricken“) kann oder den Start verhindert. - Einige objcopy-Versionen hatten Regressionen bei der Konvertierung von Binary zu ihex; SRecord ist die empfohlene Alternative für exakte Offsets.
Häufig gestellte Fragen
Warum zwei Schritte?
uf2conv.py gibt nur rohe .bin und C-Arrays aus, kein Intel HEX. Sie konvertieren UF2 zu .bin und nutzen dann objcopy oder SRecord, um die .hex zu erstellen.Welchen Offset soll ich verwenden?
--change-addresses oder srec -offset.Woher bekomme ich objcopy?
arm-none-eabi-objcopy aus der GNU Arm Embedded Toolchain.Was, wenn objcopy falsche Adressen liefert?
srec_cat von SRecord mit einem expliziten -offset, das die Adressplatzierung von Binary zu Intel HEX zuverlässig handhabt.