Pourquoi convertir UF2 en HEX ?
Le format UF2 enveloppe le micrologiciel pour un flashage par glisser-déposer, tandis que .hex (Intel HEX) est un format ASCII qui encode à la fois les données et leurs adresses mémoire, utilisé par de nombreux flasheurs et programmeurs. Comme uf2conv.py n'émet pas d'Intel HEX, vous passez par un .bin brut et laissez objcopy (de GNU binutils) ajouter les enregistrements d'adresse. C'est courant lorsque le programmeur ou le bootloader d'une cible attend du .hex plutôt que du UF2.
Comment convertir UF2 en HEX
uf2conv.py puis objcopy OPEN-SOURCE
Exécutez uf2conv.py firmware.uf2 -c -o firmware.bin, puis objcopy -I binary -O ihex --change-addresses 0x2000 firmware.bin firmware.hex pour ajouter l'offset de la flash.
objcopy (GNU binutils / arm-none-eabi) FREE
Utilisez l'outil de la chaîne de compilation arm-none-eabi-objcopy -I binary -O ihex firmware.bin firmware.hex. Ajoutez --change-addresses pour placer les données à la bonne adresse mémoire.
SRecord (srec_cat) OPEN-SOURCE
Si la gestion de l'offset par objcopy pose problème, exécutez srec_cat firmware.bin -binary -offset 0x2000 -o firmware.hex -intel pour construire l'Intel HEX avec une adresse précise.
À propos de ces formats
Un fichier UF2 est une image de micrologiciel au format USB Flashing Format de Microsoft, utilisée pour programmer des cartes à microcontrôleur via USB. Vous ne l'ouvrez pas dans une…
Ouvrir les détails de .UF2 →Un fichier .hex est un fichier Intel HEX : un micrologiciel (firmware) compilé pour un microcontrôleur tel qu'une puce Arduino, AVR ou PIC, stocké sous forme d'enregistrements en texte…
Ouvrir les détails de .HEX →Qualité et points de vigilance
- Il n'existe pas de commande unique pour UF2 vers HEX ; le passage par le
.binbrut fait perdre l'adresse, vous devez donc fournir à nouveau l'offset de base de la flash lors de l'étape objcopy/srec. - Si vous vous trompez d'offset, le
.hexplacera le code à la mauvaise adresse mémoire, ce qui peut briquer l'appareil ou empêcher son démarrage. - Certaines versions d'objcopy ont connu des régressions lors de la conversion de binaire vers ihex ; SRecord est la solution de secours recommandée pour des offsets exacts.
Foire aux questions
Pourquoi deux étapes ?
uf2conv.py ne produit que du .bin brut et des tableaux C, pas de l'Intel HEX. Vous convertissez le UF2 en .bin, puis utilisez objcopy ou SRecord pour créer le .hex.Quel offset dois-je utiliser ?
--change-addresses ou l'option -offset de srec.Où puis-je obtenir objcopy ?
arm-none-eabi-objcopy de la chaîne de compilation GNU Arm Embedded.Que faire si objcopy donne des adresses erronées ?
srec_cat de SRecord avec un -offset explicite, qui gère de manière fiable le placement des adresses lors de la conversion binaire vers Intel HEX.