Waarom HEX naar BIN converteren?
Intel HEX slaat gecompileerde firmware op als ASCII-records in platte tekst; elke byte is gecodeerd als twee hex-cijfers, verpakt in adres- en checksum-velden. Veel firmware-flash-tools, bootloaders en hulpprogramma's voor apparaatupdates verwachten in plaats daarvan een platte .bin-image - STM32-boards accepteren bijvoorbeeld een .bin-bestand dat naar hun USB-station wordt gesleept, terwijl de Arduino-toolchain .hex uitvoert. Door te converteren kunt u firmware die met de ene toolchain is gebouwd, gebruiken met een flasher die het andere formaat verwacht.
Hoe HEX naar BIN te converteren
avr-objcopy OPEN-SOURCE
Voer avr-objcopy -I ihex -O binary firmware.hex firmware.bin uit in een terminal. Op Linux accepteert de generieke objcopy uit de system binutils dezelfde vlaggen zonder het AVR-specifieke pakket.
SRecord OPEN-SOURCE
Voer srec_cat firmware.hex -Intel -o firmware.bin -Binary uit. SRecord gaat om met adresgaten in het HEX-bestand door deze te vullen met 0xFF, wat overeenkomt met gewist flashgeheugen.
Over deze formaten
Een .hex-bestand is een Intel HEX-bestand: gecompileerde firmware voor een microcontroller zoals een Arduino, AVR of PIC-chip, opgeslagen als records in platte tekst. Je voert het niet uit…
Open .HEX details →Een BIN-bestand is meestal een ruwe, sector-voor-sector kopie van een CD of DVD die wordt geleverd met een bijbehorend .cue-tekstbestand dat de tracks beschrijft. Koppel het met PowerISO of…
Open .BIN details →Kwaliteit & waar op te letten
- De
.bin-uitvoer is kleiner dan de.hexomdat Intel HEX elke byte codeert als twee ASCII-hex-cijfers plus de overhead van de omkadering. - Als het HEX-bestand adresgaten heeft - gebruikelijk wanneer zowel flash- als EEPROM-regio's worden gedekt - vult SRecord deze standaard met
0xFF. - avr-objcopy is gebundeld in de Arduino IDE op Windows onder
hardware/tools; op macOS is het beschikbaar via Homebrew met het avr-gcc pakket.
Veelgestelde vragen
Gaat er bij het converteren van HEX naar BIN data verloren?
Waar vind ik avr-objcopy op Windows?
hardware/tools, of beschikbaar via het WinAVR-pakket.Kan ik deze conversie gebruiken voor niet-AVR-chips?
objcopy uit de system binutils met dezelfde vlaggen; SRecord is ook architectuur-agnostisch.