Configuration ARM Cortex M3 + Erreur 137 dans KEIL
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Configuration ARM Cortex M3 + Erreur 137 dans KEIL



  1. #1
    invite5bf08831

    Configuration ARM Cortex M3 + Erreur 137 dans KEIL


    ------

    Bonjour,

    Tout d'abord, j'aimerai savoir si vous saviez où est ce que je pourrai trouver un fichier Header contenant la définition de tous les registres avec les adresses mémoires, pour un STM32F103 (cortex m3). Si je peux rajouter j'aimerai que les noms des registres utilisés dans le fichier respectent les noms données dans la datasheet, car ce n'est pas toujours le cas.

    Je cherche un truc genre:
    #define GPIOA_CRL 0x40010800
    #define GPIOA_CRH 0x40010840
    ....

    Je sais que plein de config toute faite existent sur le net, mais ça ne m’intéresse pas j'aimerai reconfigurer chaque registres moi même (par pur plaisir ).

    Ensuite j'ai écris un mini code sur Keil que voici:

    #define address_GPIOA ((u32)(0x40010800))

    #define GPIOA_CRL address_GPIOA
    #define GPIOA_CRH (address_GPIOA + 0x04)
    #define GPIOA_IDR (address_GPIOA + 0x08)

    main (void){

    while(1){

    GPIOA_CRL = 0x00000100;

    }
    }

    Et keil me donne à la compilation:
    erreur 137: expression must be a modifiable lvalue

    Je suis sur que ça doit être une idiotie, mais quelqu'un serait m’éclairer sur cette erreur?

    Un grand merci d'avance pour les réponses.

    PS: je sais que le code n'a aucune utilité c'est juste pour tester.

    -----

  2. #2
    Jack
    Modérateur

    Re : Configuration ARM Cortex M3 + Erreur 137 dans KEIL

    c'est normal, tu ne déclare nulle part la variable GPIOA_CRL.
    En clair, aucun emplacement mémoire n'a été réservé pour GPIOA_CRL, donc tu ne peux pas lui affecter de valeur.

    A+

  3. #3
    invite5bf08831

    Re : Configuration ARM Cortex M3 + Erreur 137 dans KEIL

    Heu en faisant

    #define address_GPIOA 0x40010800

    #define GPIOA_CRL address_GPIOA

    Je ne définis pas GPIOA_CRL comme étant une adresse mémoire dans laquelle je peux aller écrire par la suite??

  4. #4
    Jack
    Modérateur

    Re : Configuration ARM Cortex M3 + Erreur 137 dans KEIL

    Je ne définis pas GPIOA_CRL comme étant une adresse mémoire dans laquelle je peux aller écrire par la suite??
    Non, #define est une commande du préprocesseur, pas ce qu'on appelle une définition au sens strict du langage C.

    Ta directive #define ne fait que remplacer une chaine de caractère par une autre, un peu comme un copier/coller.

    Donc dans la ligne
    GPIOA_CRL = 0x00000100;
    le préprocesseur va remplacer GPIOA_CRL par address_GPIOA, puis address_GPIOA par ((u32)(0x40010800)), ce qui va donner au final:
    ((u32)(0x40010800)) = 0x00000100;
    ce qui n'a aucun sens. Le compilateur va donc gérérer un message d'erreur.

    A+

  5. A voir en vidéo sur Futura

Discussions similaires

  1. programmation avec keil
    Par invite9270d74a dans le forum Électronique
    Réponses: 2
    Dernier message: 07/05/2011, 20h15
  2. Repartition des electrons dans configuration electronique
    Par invite52ecbcf7 dans le forum Chimie
    Réponses: 3
    Dernier message: 09/09/2010, 20h06
  3. [ARM] Problème dans la génération d'interruptions
    Par invite0bef94e7 dans le forum Électronique
    Réponses: 8
    Dernier message: 14/05/2010, 08h43
  4. Quand il y a erreur dans la saisie des notes dans le logiciel info????
    Par invite77119213 dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 13/07/2009, 19h03
  5. Pb dans le panneau de configuration
    Par invite88ef51f0 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 23/11/2003, 15h13
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...