Warum HEX in BIN konvertieren?
Intel HEX speichert kompilierte Firmware als reine ASCII-Textdatensätze; jedes Byte wird als zwei Hex-Ziffern kodiert, die in Adress- und Prüfsummenfelder eingebettet sind. Viele Firmware-Flashing-Tools, Bootloader und Geräte-Update-Utilities erwarten stattdessen ein flaches .bin-Image - zum Beispiel akzeptieren STM32-Boards eine .bin-Datei, die auf ihr USB-Laufwerk gezogen wird, während die Arduino-Toolchain .hex ausgibt. Die Konvertierung ermöglicht es Ihnen, Firmware, die von einer Toolchain erstellt wurde, mit einem Flasher zu verwenden, der das andere Format erwartet.
Wie man HEX in BIN konvertiert
avr-objcopy OPEN-SOURCE
Führen Sie avr-objcopy -I ihex -O binary firmware.hex firmware.bin in einem Terminal aus. Unter Linux akzeptiert das generische objcopy aus den System-binutils dieselben Flags ohne das AVR-spezifische Paket.
SRecord OPEN-SOURCE
Führen Sie srec_cat firmware.hex -Intel -o firmware.bin -Binary aus. SRecord behandelt Adresslücken in der HEX-Datei, indem es diese mit 0xFF füllt, was gelöschtem Flash-Speicher entspricht.
Über diese Formate
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 →Eine BIN-Datei ist meistens eine sektor-für-sektor-Kopie einer CD oder DVD, die mit einer passenden .cue-Textdatei geliefert wird, welche die Spuren beschreibt. Einbinden lässt sie sich mit…
.BIN-Details öffnen →Qualität & worauf zu achten ist
- Die
.bin-Ausgabe ist kleiner als die.hex, da Intel HEX jedes Byte als zwei ASCII-Hex-Ziffern plus Framing-Overhead kodiert. - Wenn die HEX-Datei Adresslücken aufweist - üblich, wenn sowohl Flash- als auch EEPROM-Bereiche abgedeckt sind - füllt SRecord diese standardmäßig mit
0xFFauf. - avr-objcopy ist in der Arduino IDE unter Windows im Verzeichnis
hardware/toolsenthalten; unter macOS ist es über Homebrew mit dem avr-gcc-Paket verfügbar.
Häufig gestellte Fragen
Gehen bei der Konvertierung von HEX zu BIN Daten verloren?
Wo finde ich avr-objcopy unter Windows?
hardware/tools enthalten oder über das WinAVR-Paket verfügbar.Kann ich diese Konvertierung für Nicht-AVR-Chips verwenden?
objcopy aus den System-binutils mit denselben Flags; SRecord ist ebenfalls architekturunabhängig.