Hvorfor konvertere HEX til BIN?
Intel HEX lagrer kompilert firmware som ASCII-poster i ren tekst; hver byte er kodet som to heksadesimale sifre pakket inn i adresse- og sjekksumfelt. Mange verktøy for flashing av firmware, bootloadere og oppdateringsverktøy for enheter forventer et flatt .bin-bilde i stedet - for eksempel godtar STM32-kort en .bin-fil dratt over til USB-stasjonen, mens Arduino-verktøykjeden produserer .hex. Konvertering lar deg bruke firmware bygget av én verktøykjede med en flasher som forventer det andre formatet.
Hvordan konvertere HEX til BIN
avr-objcopy OPEN-SOURCE
Kjør avr-objcopy -I ihex -O binary firmware.hex firmware.bin i en terminal. På Linux godtar den generiske objcopy fra systemets binutils de samme flaggene uten den AVR-spesifikke pakken.
SRecord OPEN-SOURCE
Kjør srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord håndterer adressehull i HEX-filen ved å fylle dem med 0xFF, som samsvarer med slettet flash-minne.
Om disse formatene
En .hex-fil er en Intel HEX-fil: kompilert fastvare (firmware) for en mikrokontroller som en Arduino, AVR eller PIC-brikke, lagret som ren tekst. Du kjører den ikke på en PC - du «flasher»…
Åpne .HEX-detaljer →En BIN-fil er som oftest en rå, sektor-for-sektor-kopi av en CD eller DVD som leveres med en tilhørende .cue-tekstfil som beskriver sporene. Monter den med PowerISO eller DAEMON Tools Lite…
Åpne .BIN-detaljer →Kvalitet og hva du bør passe på
.bin-utdataene er mindre enn.hexfordi Intel HEX koder hver byte som to ASCII-heksadesimale sifre pluss innramming.- Hvis HEX-filen har adressehull - vanlig når både flash- og EEPROM-regioner er dekket - fyller SRecord disse med
0xFFsom standard. - avr-objcopy er inkludert i Arduino IDE på Windows under
hardware/tools; på macOS er det tilgjengelig via Homebrew med avr-gcc-pakken.
Ofte stilte spørsmål
Går noen data tapt ved konvertering fra HEX til BIN?
Hvor finner jeg avr-objcopy på Windows?
hardware/tools, eller er tilgjengelig via WinAVR-pakken.Kan jeg bruke denne konverteringen for andre brikker enn AVR?
objcopy fra systemets binutils med de samme flaggene; SRecord er også arkitekturnøytral.