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

Ada Discussion :

[Débutant] Récupérer l'adresse d'un champ d'une structure


Sujet :

Ada

  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut [Débutant] Récupérer l'adresse d'un champ d'une structure
    Bonjour,
    Débutant en ADA, je souhaiterai savoir s'il est possible, en ayant déclaré une structure, de récupérer l'adresse de l'un de ses champs?
    Je m'explique:
    je déclare une structure d'un type représentant un registre d'un composant hard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    type DSPI_REG is
        record
            I_MCR: UINT32;                                         -- Module Configuration Register
            I_DSPI_RESERVED_1: UINT32;                             -- ***Reserved***
            I_TCR: UINT32;                                         -- Transfer Count Register
            A_CTAR: UINT32_ARRAY(1 .. 8);                          -- Clock and Transfer Attributes Registers
            I_SR: UINT32;                                          -- Status Register
        end record;
     
    S_DSPIA_REG : DSPI_REG;  -- Declaration of DSPI A structure register
    ensuite je lui donne son adresse de base (dans le hard):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for S_DSPIA_REG'Address use System.Storage_Elements.To_Address(K_DSPIA_BASE);
    Est-il possible de cette maniere de récupérer l'adresse du champ I_TCR par exemple, pour l'envoyer en paramètre à une fonction?

    Ou peut etre existe-t-il une méthode plus appropriée pour représenter/manipuler des registres hard?

    Merci d'avance si vous avez des eclaircissements à m'apporter!

    J.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Par défaut
    Bonjour,

    Bien sur. il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     My_address := S_DSPIA_REG.I_TCR'Address;

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut
    et My_address devant être de quel type?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Par défaut
    Il sera du type : System.Address

  5. #5
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut
    Merci bien ca marche nickel !

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

Discussions similaires

  1. [Débutant] Récupérer l'adresse IP
    Par hm1ch dans le forum Services Web
    Réponses: 1
    Dernier message: 06/07/2007, 14h21
  2. Adresse/offset du champs d'une structure
    Par ludo894 dans le forum C
    Réponses: 29
    Dernier message: 24/01/2007, 11h58
  3. Réponses: 6
    Dernier message: 09/01/2007, 12h38
  4. Réponses: 3
    Dernier message: 21/08/2006, 12h31
  5. Récupérer la valeur d'un champ dans une requête
    Par romaintaz dans le forum JDBC
    Réponses: 7
    Dernier message: 18/08/2006, 10h13

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