¿Por qué convertir UF2 a HEX?
UF2 envuelve el firmware para flasheo mediante arrastrar y soltar, mientras que .hex (Intel HEX) es un formato ASCII que codifica tanto los datos como sus direcciones de memoria, utilizado por muchos flasheadores y programadores. Dado que uf2conv.py no emite Intel HEX, se encamina a través de un .bin puro y se deja que objcopy (de GNU binutils) añada los registros de dirección. Esto es común cuando el programador o el cargador de arranque del objetivo espera un .hex en lugar de UF2.
Cómo convertir UF2 a HEX
uf2conv.py y luego objcopy OPEN-SOURCE
Ejecute uf2conv.py firmware.uf2 -c -o firmware.bin, luego objcopy -I binary -O ihex --change-addresses 0x2000 firmware.bin firmware.hex para añadir el desplazamiento de flash.
objcopy (GNU binutils / arm-none-eabi) FREE
Utilice la herramienta arm-none-eabi-objcopy -I binary -O ihex firmware.bin firmware.hex. Añada --change-addresses para colocar los datos en la dirección de memoria correcta.
SRecord (srec_cat) OPEN-SOURCE
Si el manejo de desplazamientos de objcopy falla, ejecute srec_cat firmware.bin -binary -offset 0x2000 -o firmware.hex -intel para construir el Intel HEX con una dirección precisa.
Acerca de estos formatos
Un archivo UF2 es una imagen de firmware en el formato USB Flashing Format de Microsoft, utilizado para programar placas de microcontroladores a través de USB. No se abre en una aplicación:…
Abrir detalles de .UF2 →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 →Calidad y qué observar
- No existe un comando único de UF2 a HEX; el
.binintermedio pierde la dirección, por lo que debe volver a suministrar el desplazamiento base de flash en el paso de objcopy/srec. - Si se equivoca en el desplazamiento, el
.hexcolocará el código en la dirección de memoria incorrecta, lo que puede bloquear o impedir el arranque del dispositivo. - Algunas versiones de objcopy tuvieron regresiones al convertir binario a ihex; SRecord es la alternativa recomendada para desplazamientos exactos.
Preguntas frecuentes
¿Por qué dos pasos?
uf2conv.py solo genera .bin puro y matrices de C, no Intel HEX. Se convierte UF2 a .bin, luego se usa objcopy o SRecord para crear el .hex.¿Qué desplazamiento debo usar?
--change-addresses o el -offset de srec.¿Dónde obtengo objcopy?
arm-none-eabi-objcopy de la cadena de herramientas GNU Arm Embedded.¿Qué pasa si objcopy da direcciones incorrectas?
srec_cat de SRecord con un -offset explícito, que gestiona de forma fiable la colocación de direcciones de binario a Intel HEX.