IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

convertisseur de fichiers ".HEX" vers tableau d'octets.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 107
    Par défaut convertisseur de fichiers ".HEX" vers tableau d'octets.
    Slt

    Je souhaite programmer un microcontrôleurs grâce un deuxième microcontrôleur. Mon compilateur GCC me génère un fichier ".HEX" au format classique de type Intel. Ce fichier doit être converti dans le format d'un tableau d'octets pour le langage C. Ce tableau est ensuite inséré dans le Code source du deuxième microcontrôleur. Ce microcontrôleur lie les octets et les envois au premier microcontrôleur à travers un protocole de programmation (liaison PDI pour cible AVR Xmega).

    Je cherche donc un petit convertisseur de fichiers ".HEX" vers tableau d'octets.


    Exemple sur la forme :

    Format .HEX :
    :100220009A89AB89BC89BC01CD0120E030E040E275
    :1002300051E40E94CA01DC01CB018D8B9E8BAF8BF8
    :10024000B88FCE014596FC0180819181A281B38156
    :1002500089839A83AB83BC8389819A81AB81BC817A

    static uint8_t program[102] =
    {
    0x9A,0x89,0xAB,0xBE,0xCF,0xEF,0xDF,0xE3,0xDE,0xBF,0xCD,0xBF,
    0x00,0xE0, 0x0C,0xBF,0x18,0xBE,0x19,0xBE,0x1A,0xBE,0x1B,0xBE,0x10,0xE2,
    };

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    :100220009A89AB89BC89BC01CD0120E030E040E275
    10 = taille (16 octets => 0x10)
    0220 adresse ( 544 = 0x0220)
    00 = data record (type de ligne)

    Le problème est que tu perds l'adresse de destination (le 0220) dans ce cas. Un compilo n'est pas censé forcer l'adresse où il va stocker, même s'il le fait sur certaines versions pour l'embarqué.

    A+

    Pfeuh

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    euh.. c'est pas "dump" ou quelque chose comme ça sur unixoide, qui fait ça tout seul ?

  4. #4
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Bonjour,

    Il y a un petit bout de temps, j'ai du vérifier le contenu d'un fichier HEX avec ce petit programme. Si cela peut t'intéresser.
    Il te suffit de modifier le nom du fichier. J'ai ajouté l'insertion des octets dans un buffer.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [WD9] Fichier HF vers tableau mémoire
    Par Romanops dans le forum WinDev
    Réponses: 8
    Dernier message: 08/06/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo