Hvorfor konvertere HEX til BIN?
Intel HEX gemmer kompileret firmware som ASCII-poster i almindelig tekst; hver byte er kodet som to hex-cifre pakket ind i adresse- og tjeksumfelter. Mange firmware-flashing-værktøjer, bootloadere og enhedsopdateringsværktøjer forventer et fladt .bin-billede i stedet - for eksempel accepterer STM32-boards en .bin-fil trukket over på deres USB-drev, mens Arduino-værktøjskæden spytter .hex ud. Konvertering lader dig bruge firmware bygget af én værktøjskæde med en flasher, der forventer det andet format.
Sådan konverterer du HEX til BIN
avr-objcopy OPEN-SOURCE
Kør avr-objcopy -I ihex -O binary firmware.hex firmware.bin i en terminal. På Linux accepterer den generiske objcopy fra systemets binutils de samme flag uden den AVR-specifikke pakke.
SRecord OPEN-SOURCE
Kør srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord håndterer adressehuller i HEX-filen ved at udfylde dem med 0xFF, hvilket svarer til slettet flash-hukommelse.
Om disse formater
En .hex-fil er en Intel HEX-fil: kompileret firmware til en mikrocontroller som f.eks. en Arduino, AVR eller PIC-chip, gemt som almindelige tekstposter. Du kører den ikke på en PC - du…
Åbn .HEX detaljer →En BIN-fil er oftest en rå, sektor-for-sektor kopi af en CD eller DVD, der leveres sammen med en tilhørende .cue-tekstfil, som beskriver sporene. Monter den med PowerISO eller DAEMON Tools…
Åbn .BIN detaljer →Kvalitet & hvad man skal være opmærksom på
.bin-outputtet er mindre end.hex, fordi Intel HEX koder hver byte som to ASCII-hex-cifre plus indramnings-overhead.- Hvis HEX-filen har adressehuller - hvilket er almindeligt, når både flash- og EEPROM-regioner er dækket - udfylder SRecord dem som standard med
0xFF. - avr-objcopy er bundlet i Arduino IDE på Windows under
hardware/tools; på macOS er det tilgængeligt via Homebrew med avr-gcc-pakken.
Ofte stillede spørgsmål
Går der data tabt ved konvertering fra HEX til BIN?
Hvor finder jeg avr-objcopy på Windows?
hardware/tools, eller tilgængeligt via WinAVR-pakken.Kan jeg bruge denne konvertering til andre chips end AVR?
objcopy fra systemets binutils med de samme flag; SRecord er også arkitektur-agnostisk.