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 :

Débutant ne comprenant les message d'erreur! [Débutant(e)]


Sujet :

C

  1. #21
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    j'ai mis les definition dans mon .h
    lorsque que je le compile sa marche : BUILD SUCCEEDED.

    maitenant qd je compile le .c
    <...>
    pk qd je compile le .h seul sa marche. et lorsque je compile le .c, cela plante a la ligne qui appelle le .h
    Il faut cesser le bricolage. Donne une url avec l'ensemble du code original et la référence de la cible et de ton environnement de développement.

    Ca nécessite un diagnostic complet. En principe, je facture ce genre de prestation 8h/j, soit 480 euros/j, alors c'est ton jour de chance...

    Comme je te l'ai dit au début, ce n'est pas un travail de débutant mais de professionnel confirmé...
    Pas de Wi-Fi à la maison : CPL

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    eee je ne suis qu'un simple electronicien lol ....
    mais j'arriverais à m'en sortir lol

  3. #23
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    pk qd je compile le .h seul sa marche. et lorsque je compile le .c, cela plante a la ligne qui appelle le .h
    Parce-que avant la ligne qui appelle ton fichier .h, tu as d'autres includes vers des fichiers qui déclarent les mêmes types que toi, donc ton compilateur n'est pas content...

    A priori tes types sont déclarés à la fois dans "GenericTypeDefs.h" et dans "PPP.h", d'après ton compilateur...

  4. #24
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    En lisant ce fil, on se demande vraiment si le code dont tu disposes a un jour compile sur la plateforme d'origine ! Toutes les erreurs que tu cites semblent provenir d'un manque d'inclusion d'un fichier entete qui definit les types adequats. Es-tu certain d'avoir l'ensemble du code source original ? As-tu verifie par toi meme s'il compile et fonctionne sur la plateforme d'origine ?

  5. #25
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    eee je ne suis qu'un simple electronicien
    Moi aussi (Bac F2) ... mais avec 17 ans d'informatique embarquée en plus...
    Pas de Wi-Fi à la maison : CPL

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    eee je ne peut pas l'affirme qu'il est marché un jour.
    quand a ma platforme d'origine sa devait soit disant tournée sous borland c++,
    pour ma part j'ai installer devc++ et sa plante.

    la je tourne avec Mplab vu que le programme doit etre implanter ds un pic...


    OOUUHHH la honte, j'avais pas lu que: include/GenericTypeDefs était indiqué....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Moi aussi (Bac F2) ... mais avec 17 ans d'informatique embarquée en plus...
    eee moi fini mes etudes et periode d'essais...lol

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    c'est bon c'est régler pour le probleme de types...

    il me reste plus que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-elf-gcc.exe" -mcpu=24FJ64GA002 -c -x c  -I"." -I"..\Microchip\Include" -I"..\..\TCPIP Demo App" -I"..\Include" -I"%PROGRAMFILES%\MPLAB C30\include" "PPP.c" -o"OBJECT~1\PPP.o" -g -mlarge-code
    PPP.c: In function 'ipcp_rx_handler':
    PPP.c:448: error: request for member 'l' in something not a structure or union
    PPP.c:450: error: request for member 'l' in something not a structure or union
    PPP.c:450: error: request for member 'l' in something not a structure or union
    BUILD FAILED: Mon Aug 20 15:03:13 2007

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     void ipcp_rx_handler(void)
     
    {
     
    	BYTE opt, optlen;
        BYTE rejects=0;
    	DWORD hostip,myip;
     
        ppp_pcol = PPP_IPCP;
     
    ...
     
       ====>   else if (!hostip.l)  
    	   {
    ===>   hostip.l = myip.l + 1;              // ..give host my IP addr + 1
                ipcp_event_handler(EVENT_RCR_ERR);  // (for want of anthing else)
                if (ipcp_action & SCN)
                {                                   // If OK to NAK, do so
                    put_byte(IPCP_OPT_ADDR);
                    put_byte(6);
                    put_lword(&hostip);             // ..with new address as hint
                    send_ppp(PPP_CFG_NAK, ppp_rxid, 1);
                }
            }
    .....
    la fin des ennuis serait elle proche lol

  8. #28
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	DWORD hostip,myip;
     
       ====>   else if (!hostip.l)  
    	   {
    ===>   hostip.l = myip.l + 1;              // ..give host my IP addr + 1
    Le type de hostip n'est pas DWORD ou alors DWORD n'est pas un type simle, mais une union etre un unsigned long et une structure. Manip horriblement pas portable...
    Pas de Wi-Fi à la maison : CPL

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    en fait DWORD est defini de la facon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef unsigned long		DWORD;

    mais je dois quand meme donner un type a hostip et myip ?

    lorsque je fait des recherche concernant mon erreur, cela viendrais d'un probleme de priorité.

    mais je ne sais pas trop comment l'interpréter....

    de plus je ne comprend pas le code :

    en gros cela voudrait il dire :

    si la valeure de hostip est différente de 0 on retourne 0
    .l est un oprérateur pour avoir acces a un membre d'une structure
    mais alors l'ensemble je vois pas trop.

    qd je mentraine avec un exemple simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    struct x {int a; int b; int c;} ;
     
    	main()
    	{
    	  struct x z;
     
    	  z.a = 10;
    	  z.a++;
     
    	  printf(" first member is %d \n", z.a);
    	}
    cela marche

    cela retourne 11....

  10. #30
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    en fait DWORD est defini de la facon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef unsigned long		DWORD;
    C'est impossible avec hostip.l. Il y a une incohérence quelque part.
    Pas de Wi-Fi à la maison : CPL

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    alors hier soir je me suis inspirer de l'exemple plus haut concernant les structures.

    cela compile, mais étant tout juste débutant je m'attend a une réponse du genre :

    cela ne marchera pas tres bien... sa va pas marcher correctement... ou alors cela ne peut pas du tout marché..lol

    donc voila ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    struct o {int l;};
     
    void lcp_rx_handler(void)
    {
        struct o lw;
    	char opt, optlen, code;
        char rejects=0;
        WORD auth=0;
    	//DWORD lw;
     
    ...
     
      if ((lcp_state&0xf) == PPP_OPENED && get_lword(&lw))
            {                                       // Get magic num
    			lw.l++;                             // Return magic num + 1
                put_lword(&lw);
                copy_rx_tx(net_rxin-rxout);         // Echo the data
                send_ppp(PPP_ECHO_REP, ppp_rxid, 1);
            }                  
     
    ....

    et de meme plus loin dans le programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    struct x {int l;}; 
     
    void ipcp_rx_handler(void)
     
    {
        struct x hostip;
    	struct x myip;
     
    	BYTE opt, optlen;
        BYTE rejects=0;
    //	BOOL hostip,myip;
     
     
    ....
       else if (!hostip.l)                     // If null IP address
            {
               hostip.l = myip.l + 1;              // ..give host my IP addr + 1
                ipcp_event_handler(EVENT_RCR_ERR);  // (for want of anthing else)
                if (ipcp_action & SCN)
                {                                   // If OK to NAK, do so
                    put_byte(IPCP_OPT_ADDR);
                    put_byte(6);
                    put_lword(&hostip);             // ..with new address as hint
                    send_ppp(PPP_CFG_NAK, ppp_rxid, 1);
                }
            }
     
    ...


    mon raisonnement :

    dans l'exemple de structure on definit une structure, avec les types a utiliser, avant la fonction.
    une foi dans la fonction on appelle la structur avec la variable qui va permettre d'accéder a un membre via l'opérateur .

    j'ai donc fais la meme chose...lol

    ai-je bon? ou suis je a coter de la plaque?

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    voili voilou nous avons résolu le probleme, le compilateur compile...lol

    desormais le programme doit etre implanté dans la stack...

    et la evidemment cela ne peut marcher du premier coup ...

    je sais je suis débutant, mais j'arrive a créer des structures qui marche, certe pour des cas simplisime. et la j'ai un probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MPLAB C18 v3.12 (demo)
    Copyright 1999-2005 Microchip Technology Inc.
    Days remaining until demo becomes feature limited:  60
    C:\Microchip Solutions\Microchip\Include\TCPIP Stack\MAC.h:106:Error: syntax error
    la ligne concerné est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    .....
    #define MAC_TX_BUFFER_SIZE          (250ul)
        #define MAC_TX_BUFFER_COUNT         (1u)
     
     
    	typedef struct _ETHER_HEADER
    	{
    	} ETHER_HEADER;
    #endif
    je vais cherhcer de mon coté...;-)

  13. #33
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	typedef struct _ETHER_HEADER
    	{
    	} ETHER_HEADER;
    Pas du C (la structure est vide). Il faut au moins un élément, sinon, ça n'a aucun sens.
    Pas de Wi-Fi à la maison : CPL

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    gnnnnn gnnnn
    le mec qui leve pas la tete...

    j'avais commencer a fait la structure.... et en faite je l'es refaite plus haut....

    gnnnnn


    aller a l'assaut d'autre probleme....

    merci beaucoup.

    ;-)

  15. #35
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    re coucou c'est encore moi.....

    juste pour confirmé ce que je pense, le code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           if (skip_byte() && skip_byte() &&       // Skip HDLC addr & ctrl bytes
                 get_word(&ppp_pcol))                // Get PPP protocol
            {
    appel bien une fonction get_word en lui donnant le contenu de l'adresse de ppp_pcol, et appel également la fonction skip_byte.

    or ces fonction ne sont pas présente dans mon code, lorsque je le compile je n'est que des warnint du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Pojet_mplab\Microchip Solutions\Microchip\TCPIP Stack\PPPUSART.c:547:Warning [2058] call of function without prototype
    lorsque je fait un build all, il me ressort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error - could not find definition of symbol 'get_word' in file 'C:\Pojet_mplab\Microchip Solution.......
    en gros je dois créer la fonction get_word, c'est bien cela?
    commence a me poser serieusement si ce code a vraiment marché, meme sur une platforme dépassée.... lol

  16. #36
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           if (skip_byte() && skip_byte() &&       // Skip HDLC addr & ctrl bytes
                 get_word(&ppp_pcol))                // Get PPP protocol
            {
    appel bien une fonction get_word en lui donnant le contenu de l'adresse de ppp_pcol, et appel également la fonction skip_byte.
    C'est exact... Il faut donc que ces deux fonctions soient définies quelque part...

    En fait lors de la compilation, si le compilateur ne (re)connait pas une fonction, il va juste mettre un warning devant : il espère que la fonction sera définie plus tard. Cependant lors de l'édition des liens, l'éditeur de liens va vérifier que toutes les fonctions utilisées sont bien définies... Et là, si une fonction n'est pas définie il y a une erreur...

    En gros, on peut utiliser dans un programme une fonction non déclarée (dans une certaine zone de code) mais pas une non définie...

  17. #37
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           if (skip_byte() && skip_byte() &&       // Skip HDLC addr & ctrl bytes
                 get_word(&ppp_pcol))                // Get PPP protocol
            {
    appel bien une fonction get_word en lui donnant le contenu de l'adresse de ppp_pcol, et appel également la fonction skip_byte.
    Je dirais plutôt que la fonction get_word() est appelé et l'adresse de la variable ppp_pcol est passé en argument (et non le contenu de l'adresse de ppp_pcol). La fonction get_word() est appelée si et seulement la fonction skip_byte() revoie à deux reprises une valeur vrai i.e. différente de 0 ou NULL.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #38
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 43
    Points
    43
    Par défaut
    c'est bon !!!!! et UN GRAND MERCI A TOUT CEUX QUI PRENNE DE LEUR TEMPS POUR M'AIDER!!!!



    j'ai trouver les fonctions dans d'autre fichier..... mais bizarement il ni a aucin include appelant les fichier contenent les fonction présédement d'ecrites...

    il y a d'autre moyen d'appeler des fichier que

    #include<prg.h> ?

    maitenant je suis confronter a d'autre problemes mais la cela ne vient plus du programme mais de la config materiel je pense.

    car j'obtiens ce genre de message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PLINK 4.12, Linker
    Copyright (c) 2007 Microchip Technology Inc.
    Error - section '.udata_PPPok.o' can not fit the section. Section '.udata_PPPok.o' length=0x0000025b
    Errors    : 1
     
    Link step failed.
    BUILD FAILED: Fri Aug 24 15:12:13 2007
    apres recherche cela vient du fait que le C n'entre pas dans une bank de plus de 256octet, donc je modifier mon linker de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ACCESSBANK NAME=accessram  START=0x0            END=0x5F
    DATABANK   NAME=gpr0       START=0x60           END=0xFF
    //DATABANK   NAME=grossebank START=0x100			END=0x3FF
    DATABANK   NAME=gpr1       START=0x100          END=0x1FF
    DATABANK   NAME=gpr2       START=0x200          END=0x2FF
    DATABANK   NAME=gpr3       START=0x300          END=0x3FF
    DATABANK   NAME=gpr4       START=0x400          END=0x4FF
    DATABANK   NAME=gpr5       START=0x500          END=0x5FF
    DATABANK   NAME=gpr6       START=0x600          END=0x6FF
    DATABANK   NAME=gpr7       START=0x700          END=0x7FF
    DATABANK   NAME=gpr8       START=0x800          END=0x8FF
    DATABANK   NAME=gpr9       START=0x900          END=0x980
    DATABANK   NAME=grossebank START=0x981			END=0xBFF // je rajoute cette ligne
    //DATABANK   NAME=gpr10      START=0xA00          END=0xAFF
    //DATABANK   NAME=gpr11      START=0xB00          END=0xBFF
    DATABANK   NAME=gpr12      START=0xC00          END=0xCFF
    //DATABANK   NAME=gpr13      START=0xD00          END=0xDF3
    //DATABANK   NAME=dbgspr     START=0xDF4          END=0xDFF          PROTECTED
    DATABANK   NAME=gpr14      START=0xE00          END=0xE7F
    DATABANK   NAME=sfr14      START=0xE80          END=0xEFF          PROTECTED
    DATABANK   NAME=gpr15      START=0xF00          END=0xF5F
    ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED
    
    SECTION    NAME=CONFIG     ROM=config
    
    STACK SIZE=0x100 RAM=gpr12

    et un autre message d'erreur arrive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MPLINK 4.12, Linker
    Copyright (c) 2007 Microchip Technology Inc.
    Error - section '.idata_PPPok.o' can not fit the section. Section '.idata_PPPok.o' length=0x00000157
    Errors    : 1
     
    Link step failed.
    BUILD FAILED: Fri Aug 24 15:15:07 2007
    j'utilise MPlab IDE 7.61 avec MCC18. et je n'est que a pein un mois d'expérience de Mplab...lol comme le C..... MAIS SA RENTRE..... ;-)

    bon pas au point de créer un programme de plus de 100 lignes mdr



    je ne sais pas si je suis au bon endroit pour poster cela?

  19. #39
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    j'ai trouver les fonctions dans d'autre fichier..... mais bizarement il ni a aucin include appelant les fichier contenent les fonction présédement d'ecrites...
    Oui, c'est de la déclaration implicite de fonction. Ce n'est pas forcément préconisé et constitue un warning à la compilation.
    En C, si le compilateur rencontre une fonction qu'il ne connaît pas, il la déclare implicitement pour pouvoir compiler. Par contre, la fonction doit absolument être définie au moment de linker.

  20. #40
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tiya17 Voir le message
    maitenant je suis confronter a d'autre problemes mais la cela ne vient plus du programme mais de la config materiel je pense.

    car j'obtiens ce genre de message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PLINK 4.12, Linker
    Copyright (c) 2007 Microchip Technology Inc.
    Error - section '.udata_PPPok.o' can not fit the section. Section '.udata_PPPok.o' length=0x0000025b
    Errors    : 1
     
    Link step failed.
    BUILD FAILED: Fri Aug 24 15:12:13 2007
    Il est évident que pour qu'un programme une fois compilé a besoin de certaines ressources pour s'exécuter. Il faut :
    • De la mémoire code (ou programme) pour stocker le programme (séquence d'octets représentant des instructions machines)
    • De la mémoire de données pour
      • La mémoire automatique (le plus souvent, une pile / stack), qui sert à stocker :
        • Les adresses de retour des appels de fonction
        • Les paramètres passés aux fonctions
        • Les variables locales
      • La mémoire statique (données permanentes pendant la durée d'exécution du programme, aka 'globales' ou 'statiques')
      • La mémoire dynamique (ou tas / heap) qui sert à la création de données à l'exécution (malloc() / free())

    Pour tout celà, il faut que la cible possède les ressources suffisantes.
    • C'est quoi comme processeur ?
    • Quelle est taille de la mémoire code ?
    • Quelle est la taille de la mémoire de données ?
    • Y'a-t-il une zone de données interne et une zone de données externe ?

    Rien ne prouve que l'application envisagée puisse trouver sa place sur cette plateforme, surtout si c'est un simple micro contrôleur.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Mettre les messages d'erreur apache en francais
    Par Invité(e) dans le forum Apache
    Réponses: 1
    Dernier message: 16/02/2006, 19h33
  2. Rediriger les messages d'erreur
    Par goblin dans le forum Langage
    Réponses: 3
    Dernier message: 25/12/2005, 20h04
  3. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  4. [Message d'erreur] gérer les message d'erreurs
    Par heid dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2004, 14h57
  5. recuperer les messages d'erreurs de interbase
    Par devalender dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/06/2004, 11h45

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