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 :

Define composé en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut Define composé en C
    Salut tous le monde,
    voici un code avec define que j'ai pas pu comprendre la structure,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    typedef struct
    {
      vu32 PC0;
      vu32 PC1;
      vu32 PC2;
      vu32 PD;
      vu32 PM;
    } GPIO_TypeDef;
     
    #define PERIPH_BASE 0xFFFF0000
    #define GPIO0_BASE (PERIPH_BASE + 0xE400)
    #define GPIO0 ((GPIO_TypeDef *) GPIO0_BASE)  //j'ai pas compris ceci
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    C'est pour un système embarqué ?

    Ce define veut juste dire que GPIO0 est étendu en ((GPIO_TypeDef *) (0xFFFF0000 + 0xE400))

    Ce qui veut dire en clair, que GPIO0 correspond à un pointeur vers une structure GPIO_Typedef, qui a toujours l'adresse 0xFFFFE400.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Définition d'une constante de type pointeur sur la structure GPIO_TypeDef. Il' sagit juste d'un cast de la valeur numérique (0xFFFF0000 + 0xE400) en une valeur de type pointeur sur la dite structure. Cette valeur numérique correspond sans doute à une adresse mémoire.

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut Merci
    Merci à vous,
    oui c'est pour un systeme embarqué (str750Fv2) que j'essaye de comprendre comment le programmer,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. De quoi est composé un test d'embauche?
    Par Melchisedec dans le forum Emploi
    Réponses: 11
    Dernier message: 15/12/2003, 12h43
  2. Réponses: 2
    Dernier message: 29/10/2003, 23h47
  3. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45
  4. Published property d'un compo conservées pendant l'exécution
    Par bobby-b dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/09/2003, 10h15
  5. define avec GCC.
    Par vagabon dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/06/2003, 14h04

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