Varför konvertera HEX till BIN?
Intel HEX lagrar kompilerad firmware som ASCII-poster i klartext; varje byte kodas som två hex-siffror inramade av adress- och kontrollsummefält. Många verktyg för firmware-flashning, bootloaders och uppdateringsverktyg förväntar sig en platt .bin-avbildning istället - till exempel accepterar STM32-kort en .bin-fil som dras till deras USB-enhet, medan Arduino-verktygskedjan skapar .hex. Konvertering låter dig använda firmware byggd av en verktygskedja med en flasher som förväntar sig det andra formatet.
Hur man konverterar HEX till BIN
avr-objcopy OPEN-SOURCE
Kör avr-objcopy -I ihex -O binary firmware.hex firmware.bin i en terminal. På Linux accepterar den generiska objcopy från systemets binutils samma flaggor utan det AVR-specifika paketet.
SRecord OPEN-SOURCE
Kör srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord hanterar adressluckor i HEX-filen genom att fylla dem med 0xFF, vilket matchar raderat flashminne.
Om dessa format
En .hex-fil är en Intel HEX-fil: kompilerad firmware för en mikrokontroller som en Arduino, AVR eller PIC-chip, lagrad som textposter. Du kör den inte på en PC - du «flashar» den till…
Öppna detaljer för .HEX →En BIN-fil är oftast en rå, sektor-för-sektor-kopia av en CD eller DVD som levereras med en matchande .cue-textfil som beskriver spåren. Montera den med PowerISO eller DAEMON Tools Lite…
Öppna detaljer för .BIN →Kvalitet & vad man bör tänka på
- Den binära utdatafilen är mindre än
.hex-filen eftersom Intel HEX kodar varje byte som två ASCII-hex-siffror plus inramning. - Om HEX-filen har adressluckor - vanligt när både flash- och EEPROM-regioner täcks - fyller SRecord dessa med
0xFFsom standard. - avr-objcopy finns med i Arduino IDE på Windows under
hardware/tools; på macOS är det tillgängligt via Homebrew med paketet avr-gcc.
Vanliga frågor
Går någon data förlorad vid konvertering från HEX till BIN?
Var hittar jag avr-objcopy på Windows?
hardware/tools, eller är tillgängligt via WinAVR-paketet.Kan jag använda denna konvertering för andra chip än AVR?
objcopy från systemets binutils med samma flaggor; SRecord är också arkitekturoberoende.