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 :

Erreur compilation avr/pgmspace.h


Sujet :

Embarqué

  1. #1
    Candidat au Club
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Erreur compilation avr/pgmspace.h
    Bonjour, je recherche de l'aide sur la compilation des AVR
    Voulant déclarer un tableau dans la flash du µC, j'ai utilisé la bibliothèque
    <avr/pgmspace.h>
    pour ainsi déclarer mon tableau de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const tab[10][10] PROGMEM = 
    {...
    };
    Mais au moment de la compilation j'ai une erreur immédiate :
    ||=== Test_progmem, Debug ===|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|937|error: expected ‘)’ before ‘src’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|938|error: expected ‘)’ before ‘src’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|939|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|940|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|941|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|942|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|943|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|944|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|945|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|946|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|947|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|948|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|949|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|950|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|951|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    ||=== Build finished: 15 errors, 0 warnings ===|
    J'ai remarqué que l'erreur arrive dès la seule déclaration de la librairie.
    Je ne comprend pas.
    Peut être me manque t'il une librairie sachant que je tourne sous linux.

    Merci d'avance pour votre aide et le temps que vous consacrerez à mon post.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    j'ai trouvé cette documentation à propos de PROGMEM :
    http://playground.arduino.cc/Main/PROGMEM
    je dirais que tu as oublié de préciser le type de tes données.

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    J'ai éxactement le meme probleme et il n'est pas du a mon code, ça c'est certains...


    En faite je suis également sous linux ..
    J'avais une version X de codeblocks, et je suis passez a la derniere version (je voulais voir si au niveau du débuger c'etais mieux : résultat ça l'etait (watches moin bugués)) cependant ensuite je suis repassé en version X, mais en faisant cela j'ai du désinstaller tout un merdier.. J'ai peut etre pas tout réinstaller, j'ai deja corriger des bugs en installant des choses, mais bon .. la j'arrive a bout, apres chaques erreurs j'en est d'autres a résoudre, et la j'arrive sur celle de l'auteur du topic ...

    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|937|error: expected ‘)’ before ‘src’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|938|error: expected ‘)’ before ‘src’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|939|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|940|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|941|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|942|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|943|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|944|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|945|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|946|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|947|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|948|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|949|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|950|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/pgmspace.h|951|error: expected declaration specifiers or ‘...’ before ‘uint_farptr_t’|
    /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h|95|warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"|


    Je ne sais pas se que c'est que se fichier, se qu'il viens faire dans mon projet (surment qu'il est dans un #include d'un fichier en #include, lui meme en #include en tout cas il manque surement quelque chose, le fichier en lui meme n'a pas de raison d'avoir ete modifier, je soupcone donc une lib ou autre a installer ...

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Je commence une désinstallation COMPLETTE de codeblocks ainsi que les libs AVR, car de toute façon je ne pense pas qu'il y auras de réponse, une recherche sur google nous mène sur des sites Russes, ou se topic donc ..

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Quand je lis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataType variableName[] PROGMEM = {};
    et qu'ensuite je lis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const tab[10][10] PROGMEM = 
    {...
    };
    Je me demande où est passé le type de donnée (dataType) ? const ? const n'est pas un type de données, c'est un modificateur qui s'applique à un type. Il faudrait pas rajouter un type genre int, char, uint16_t ?
    Je plussoie donc totalement la remarque de Auteur.

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bon personnellement dans l'absolut je peut compiler mon projet avec un makefile donc directement avec AVR GCC, en revanche depuis codeblocks il est clair que ça ne passe pas ... Pourquoi je ne sais pas, et c'est bien l'avr gcc compiler qui est sélectionné pour moi.

    Peut être quelque chose a lier dont je ne me souviens plus ou j'en sais trop rien, je cherche toujours,

    Mais bon dans l'absolut je peut compiler "a la main" maintenant cela serait mieux avec codeblocks.. J'ai toujours était habituer a codeblocks ...

    Quelqu'un aurait une idée ?

    J'ai essayer de purger codeblocks et de le réinstaller : cela m'a causer plus de mal que de bien.
    Mon cas n'a peut être pas a voir avec le cas de l'auteur

    Quand a ça déclaration elle est effectivement mauvaise, du moins en théorie, il semble que le compilateur par défaut en face un tableau de INT, m'enfin il est préférable de mettre le type de variable devant quand même !

    const Machin[3][3];

    /home/cyber37/Documents/CodeBlocksProjects/tessssssst/main.c||In function ‘main’
    /home/cyber37/Documents/CodeBlocksProjects/tessssssst/main.c|6|attention : type defaults to ‘int’ in declaration of ‘Machin’ [-Wimplicit-int]|
    /home/cyber37/Documents/CodeBlocksProjects/tessssssst/main.c|6|attention : unused variable ‘Machin’ [-Wunused-variable]|
    ||=== Build finished: 2 errors, 0 warnings ===|
    Tu ne devrait mettre le type de variable devant le tableau

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonsoir,

    Quand a ça déclaration elle est effectivement mauvaise, du moins en théorie, il semble que le compilateur par défaut en face un tableau de INT, m'enfin il est préférable de mettre le type de variable devant quand même !
    const n'est pas un type de variable. Ta déclaration est fausse, il faut préciser le type (voir la documentation dans mon précédent message). Peut-être aussi possible que ce genre de variable ne puisse pas être const.

    Quel microcontrôleur cherches-tu à programmer ?

    Si c'est un ATMEL sur une plateforme Arduino tu peux utiliser l'IDE Arduino :
    http://arduino.cc/en/Main/Software#.Uwe0qc4WmVo

Discussions similaires

  1. RXControl RxRichEdit ERREUR Compilation
    Par loleske dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/02/2005, 18h12
  2. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 10h00
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 14h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 16h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 09h04

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