Perché convertire HEX in BIN?
Intel HEX memorizza il firmware compilato come record ASCII di testo semplice; ogni byte è codificato come due cifre esadecimali racchiuse in campi di indirizzo e checksum. Molti strumenti di flashing del firmware, bootloader e utility di aggiornamento dei dispositivi richiedono invece un'immagine piatta .bin - ad esempio, le schede STM32 accettano un file .bin trascinato sulla loro unità USB, mentre la toolchain Arduino produce .hex. La conversione consente di utilizzare firmware creati da una toolchain con un flasher che si aspetta l'altro formato.
Come convertire HEX in BIN
avr-objcopy OPEN-SOURCE
Esegui avr-objcopy -I ihex -O binary firmware.hex firmware.bin in un terminale. Su Linux, il comando generico objcopy dai binutils di sistema accetta gli stessi flag senza il pacchetto specifico per AVR.
SRecord OPEN-SOURCE
Esegui srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord gestisce i vuoti di indirizzamento nel file HEX riempiendoli con 0xFF, corrispondente alla memoria flash cancellata.
Informazioni su questi formati
Un file .hex è un file Intel HEX: firmware compilato per un microcontrollore come un chip Arduino, AVR o PIC, memorizzato come record di testo semplice. Non si esegue su un PC - viene…
Apri dettagli .HEX →Un file BIN è solitamente una copia grezza, settore per settore, di un CD o DVD accompagnata da un file di testo .cue corrispondente che descrive le tracce. Montalo con PowerISO o DAEMON…
Apri dettagli .BIN →Qualità e a cosa prestare attenzione
- L'output
.binè più piccolo del.hexperché Intel HEX codifica ogni byte come due cifre esadecimali ASCII più il sovraccarico della struttura dei record. - Se il file HEX presenta lacune negli indirizzi - comune quando sono coperte sia le regioni flash che EEPROM - SRecord le riempie con
0xFFper impostazione predefinita. - avr-objcopy è incluso all'interno dell'IDE di Arduino su Windows nella cartella
hardware/tools; su macOS è disponibile tramite Homebrew con il pacchetto avr-gcc.
Domande frequenti
La conversione da HEX a BIN comporta la perdita di dati?
Dove trovo avr-objcopy su Windows?
hardware/tools, oppure disponibile tramite il pacchetto WinAVR.Posso usare questa conversione per chip non AVR?
objcopy dai binutils di sistema con gli stessi flag; anche SRecord è indipendente dall'architettura.