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

Embarqué Discussion :

Ecriture dans FRAM au chargement du programme


Sujet :

Embarqué

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Ecriture dans FRAM au chargement du programme
    Bonjour à tous,

    Je cherche à écrire un certains nombre d'informations à une adresse précise de la FRAM de mon MSP430 au moment du flashage. Ces informations ne seront jamais lues par le programme mais par le bootloader (il s'agit en fait de n° de version entre autres). Pour cela, j'ai déclaré une structure en volatile static const mais, même malgré cela, les info ne sont écrites que si j'accède au moins une fois à un champs de cette structure dans le programme (ce qui ne m'intéresse pas). Aucune section ne se créée dans le map file si je n'accède pas aux données.
    Après pas mal de recherches, j'en suis à ce résultat, mais même malgré les "volatile", "attribute((used))" et autres mots clés, je n'arrive pas à écrire ces données sans avoir à y accéder au moins une fois!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #pragma LOCATION(version, 0xFF5C)
    __attribute__((used)) volatile static const Firmware_t version =
    {
    	...
    };
    Pour info, les optimisations sont désactivées, mais j'aimerais pouvoir les activer par la suite!

    Merci d'avance et bonne journée!

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Donnes nous la référence complète de ton micro (pour aller voir sa datasheet)

    Quel compilateur utilises tu ?

    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Salut,

    Le micro que j'utilise est le MSP430FR5969LP et le compilo est le TI-cgt-msp430_4.4.7.

    J'irais bien moi-même faire un tour dans la datasheet mais je ne sais pas ce que je suis censé rechercher!

    Merci de ton aide!

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Ok
    Citation Envoyé par momo l'plus bô Voir le message
    Pour cela, j'ai déclaré une structure en volatile static const mais, même malgré cela, les info ne sont écrites que si j'accède au moins une fois à un champs de cette structure dans le programme (ce qui ne m'intéresse pas). Aucune section ne se créée dans le map file si je n'accède pas aux données.
    Dans le cas où la section se créait, est elle a l'endroit que tu voulais ?



    Dans la doc du compilateur de TI http://www.ti.com/lit/ug/slau132n/slau132n.pdf je vois ceci.

    Nom : Capture du 2017-03-08 23-50-54.png
Affichages : 220
Taille : 47,5 Ko

    Ce qui donne simplement cette syntaxe pour mettre une donnée à une adresse :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #pragma LOCATION(version, 0x1800)
    const unsigned char version =  0x01;
    Fait un essai et regarde si le map ou même dans le .hex si tu vois à l'adresse 0x1800 la valeur 1.
    Je suis presque sur qu'en déclarant une structure à la place de la variable version, ça doit fonctionner.


    Autre point ! Dans ton micro http://www.ti.com/lit/ds/symlink/msp430fr5969.pdf, il y a des espaces réservés pour ce genre d'info. Pourquoi tu souhaites les mettre en 0xFF5C ? En plus, ça pointe où 0xFF5C ? Je ne trouve pas cette adresse.

    Nom : Capture du 2017-03-08 23-50-55.png
Affichages : 183
Taille : 105,6 Ko
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2011, 13h58
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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