¿Por qué convertir HEX a BIN?
Intel HEX almacena firmware compilado como registros ASCII de texto plano; cada byte se codifica como dos dígitos hexadecimales envueltos en campos de dirección y suma de comprobación. Muchas herramientas de flasheo de firmware, cargadores de arranque y utilidades de actualización de dispositivos esperan una imagen plana .bin en su lugar - por ejemplo, las placas STM32 aceptan un archivo .bin arrastrado a su unidad USB, mientras que la cadena de herramientas de Arduino genera .hex. La conversión le permite usar firmware creado por una cadena de herramientas con un flasher que espera el otro formato.
Cómo convertir HEX a BIN
avr-objcopy OPEN-SOURCE
Ejecute avr-objcopy -I ihex -O binary firmware.hex firmware.bin en una terminal. En Linux, el objcopy genérico de binutils del sistema acepta los mismos parámetros sin el paquete específico de AVR.
SRecord OPEN-SOURCE
Ejecute srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord maneja los huecos de dirección en el archivo HEX rellenándolos con 0xFF, coincidiendo con la memoria flash borrada.
Acerca de estos formatos
Un archivo .hex es un archivo Intel HEX: firmware compilado para un microcontrolador como un chip Arduino, AVR o PIC, almacenado como registros de texto plano. No se ejecuta en un PC; se…
Abrir detalles de .HEX →Un archivo BIN es, con mayor frecuencia, una copia bruta sector por sector de un CD o DVD que se entrega con un archivo de texto .cue correspondiente que describe las pistas. Móntelo con…
Abrir detalles de .BIN →Calidad y qué observar
- La salida
.bines más pequeña que el.hexporque Intel HEX codifica cada byte como dos dígitos hexadecimales ASCII más la sobrecarga de enmarcado. - Si el archivo HEX tiene huecos de dirección - común cuando se cubren regiones de flash y EEPROM - SRecord los rellena con
0xFFpor defecto. - avr-objcopy viene incluido dentro del IDE de Arduino en Windows bajo
hardware/tools; en macOS está disponible a través de Homebrew con el paquete avr-gcc.
Preguntas frecuentes
¿La conversión de HEX a BIN pierde algún dato?
¿Dónde encuentro avr-objcopy en Windows?
hardware/tools, o está disponible a través del paquete WinAVR.¿Puedo usar esta conversión para chips que no sean AVR?
objcopy genérico de binutils del sistema con los mismos parámetros; SRecord también es independiente de la arquitectura.