[arduino mega] probléme de compilation (`.text' overflow) => PROGMEM usage ??

Bonjour,

Je me remet sur un projet que j'ai fait il y a 3-4 ans. Ce projet compilais bien il y a 3-4 ans, d'ailleurs la board tourne depuis 3-4 ans sans pb !

Je me remet dessus pour faire une petite modif' (toute petite modif, j'ajoute une minuscule option) et là impossible de compiler ... ça planet à l'étape du linkage sur un

`.text' will not fit in region `text' region
region `text' overflowed by 339554 bytes

339554 bytes !!! ça compilais très bien il y a 3-+4 ans.
Je suis sur de mon code, je n'ai pas trop chargé, et surtout ça compilais très bien il y a 3-4 ans quand j'ai fait se projet. Je suis repartit sur le code original et même erreur.

Donc recherche du problème, j'ai une piste, mais besoin d'aide. En allant fouiller mon code, dans monfichier lang (où sont toutes les constantes de texte), je les déclares de la façon suivante :

const char PROGMEM TXT_NON_CONFIGURE[]="non configure";

et dans platformio, quand je passe la souris sur le texte PROGMEM, il me met

unknow attribute progmem ignored

est ce que ça viens de là il ne trouve plus le mot clé PROGMEM ? ou alors celui ci a changé ??

ou est ce une fausse piste ?? dans ce cas, je ne sais pas où chercher le problème... avez vous des idées ?

Je fait ça avec l'ide Atom et platformio. pas mal de librairie mais je ne les ai même pas mise à jour donc ça ne doit pas venir des librairie.
La seule chose qui a été mise à jour c'est atom, atmelavr (autoimatiquement par platformio) et le framework arduino (automatiquement aussi).

help !!

Dans platformio.ini tu as bien ceci ?

board = megaatmega2560

oui !

le contenu de mon fichier platformio.ini

[env:megaatmega2560]
platform = atmelavr
framework = arduino
board = megaatmega2560

Il a pas bougé depuis la précédente compilation qui fonctionnait il y 3-4 ans

et dans platformio, quand je passe la souris sur le texte PROGMEM, il me met

Moi j'ai :

#define PROGMEM ATTR_PROGMEM
\ingroup avr_pgmspace
\def PROGMEM

Attribute to use in order to declare an object being located in
flash ROM.

Expands to:

ATTR_PROGMEM

Et la fin de la compilation ?

Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [ ] 4.7% (used 385 bytes from 8192 bytes)
Flash: [ ] 3.5% (used 8944 bytes from 253952 bytes)

désolé du délais de réponse.

la semaine dernière j'ai pu compiler ! (sans aucun changement du code, ni rien...) et là je rajoute un petite ligne et ça ne recompile plus. j'efface cette ligne ça ne compile plus non plus :frowning:

qd ça marchais ça terminais sur un truc style ram utilisé à 50% et flash dans les 60% donc ok... maintenant que ça ne marche à nouveau plus ça tombe sur ça:

Linking .pio/build/megaatmega2560/firmware.elf
/home/thomas/.platformio/packages/toolchain-atmelavr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld: .pio/build/megaatmega2560/firmware.elf section `.text' w
ill not fit in region `text'
/home/thomas/.platformio/packages/toolchain-atmelavr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld: region `text' overflowed by 366256 bytes
collect2: error: ld returned 1 exit status
*** [.pio/build/megaatmega2560/firmware.elf] Error 1
========================= [FAILED] Took 627.86 seconds =========================

je ne comprend vraiment pas ...

Cela veut dire que ton programme est trop gros (366256)

Ça je comprent bien...

mais comme je disait, ça compilait très bien il y a 3-4 ans quand j'ai lancé ce projet, je retente une compilation il y a 1 mois avec une modif mineure ça ne marche plus puis soudainement ça ce remet à compiler...

Je refait donc ma modif mineure, ça compile.

Et 2 semaines après je refait une autre modif très très mineure, ça ne recompile plus.

y a 2 semaines quand ça a bien voulu compiler, j'avais copié le code sur une clé, pour avoir un backup d'un truc qui marchais.
Aujourd'hui, je refait une petite modif et ça ne compile plus. Je reprend le code d'il y a 2 semaine... ça ne compile plus :frowning:

As-tu essayé avec IDE ARDUINO ?
Si tu as le même problème tu seras fixé.

j'ai lancé l'inspecteur de projet de platformio. ça a fait planter l'ordi.

redemarrage, relancement de la compilation et là miracle ! ça recompile, et avec mes dernières modifs en plus. Je comprend vraiment pas ce qu'il se passe.

Linking .pio/build/megaatmega2560/firmware.elf
Building .pio/build/megaatmega2560/firmware.hex
Checking size .pio/build/megaatmega2560/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [====      ]  39.4% (used 3226 bytes from 8192 bytes)
Flash: [======    ]  61.1% (used 155136 bytes from 253952 bytes)
========================= [SUCCESS] Took 9.20 seconds =========================