Pages: [1]   Go Down
Author Topic: [RÉSOLU] Erreur compilation : relocation truncated to fit: R_AVR_13_PCREL  (Read 1059 times)
0 Members and 1 Guest are viewing this topic.
Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

Je viens vous demander un peu d'aide concernant cette erreur de compil :
Code:
d:/programmes/arduino-1.0.2/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr6/crtm2560.o: In function `__vector_default':
(.vectors+0x1c): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_7' defined in .text.__vector_7 section in core.a(WInterrupts.c.o)

Il y a à peine 20 minutes j'étais tout content d'avoir réussi à faire marcher mon programme quand tout à coup j'ai eu ce message quand j'ai réordonné mon code pour qu'il soit à peu près lisible après mes multiples tests ^^ Et puis juste à bouger les lignes de place (les prototypes de fonctions principalement) j'ai eu cette erreur. Google n'a pas été capable de me dire ce que j'ai fait de mal... Et le moteur de recherche d'Arduino non plus.

Quelqu'un saurait me dire sur quel bouton j'aurais pas du appuyer ?  smiley-lol

Ne sachant pas quoi vous donner comme code au vue de l'erreur j'ai tout mis dans un ptit rar en pièce jointe.

Merci d'avance,

* Arduino2.rar (11.09 KB - downloaded 10 times.)
« Last Edit: March 13, 2013, 02:47:15 am by Reynosa » Logged

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Personne n'a eu ce problème et à trouvé la solution ?

Bonne journée,
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Vu la gueule de l'erreur c'est une fonction d'interruption dans la table de vecteurs qui passe pas.

Déja :
- quelle version de l'ide arduino ?
- quelle carte ?

Juste pour info :
http://stackoverflow.com/questions/8188849/avr-linker-error-relocation-truncated-to-fit

Ps: la librairie Wire officielle (pour l'I2C) fait exactement la même chose que ta librairie "I2C" qui n'est qu'un clone ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci d'avoir répondu !

La crius All In One Pro, elle utilise un ATMEGA 2560
J'utilise Arduino pour windows 1.0.2 sur windows 7 64bits à jour.

Dans ton lien je vois que pour lui c'était dû à trop de variable globale, j'ai souvent vu ça sur google. Je n'ai qu'un tableau de 5 cases... Si jamais c'est ça le problème je vois mal comment terminer mon projet... Ce qui est étonnant c'est que ça soit depuis que j'ai déplacé mes prototypes...
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La dernière version est la 1.0.3, essaye on ne sait jamais tu as peu être un bug isolé.

Sinon donne un coup de ccleaner pour virer les fichiers temporaires de ton ordi, ferme l'ide, re-ouvre ton projet et tente de recompiler le tout.
Ce n'est pas un tableau de 5 éléments qui va empêcher une table d'interruptions de passer en RAM smiley-mr-green
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai donc passé Ccleaner et installé le 1.0.4
et toujours cette belle erreur :
Code:
d:/programmes/arduino-1.0.4/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr6/crtm2560.o: In function `__vector_default':
(.vectors+0x1c): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_7' defined in .text.__vector_7 section in core.a(WInterrupts.c.o)
Logged

France
Offline Offline
Full Member
***
Karma: 0
Posts: 154
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai donc ...... ....... et installé le 1.0.4

Mise à jour faite, merci.
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Essaye d'utiliser la librairie Wire pour mettre de côté tout bug "externe" à ton code.
Si ça marche toujours pas fait un zip (pas un rar svp) de ton nouveau code que je test avec un compilateur plus récent (on sait jamais).
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu as raison le problème provient bien de la librairie I2C que j'utilise... plus précisément le problème vient de la méthode "read()"

Je vais donc être obligé de repartir sur la lib de base  smiley-sad

Merci de ton aide !
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je vais donc être obligé de repartir sur la lib de base  smiley-sad
Et c'est quoi le soucis avec la librairie de base ?
Elle fait exactement la même chose ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

À la fin oui normalement (pas tout à fait si tu as vu mon mp)
D'après la description de lib c'est une amélioration de la lib de base en terme de performance et de logique.
Mais pour moi c'est surtout la simplicité d'utilisation en une ligne avec un simple read je récupère 6 registres différent de mon gyroscope avec ou sans bit de stop. alors qu'avec la lib de base... c'est toute une épopée et c'est moins clair à la relecture du code, ça prend énormément plus de place... bref j'aime moins la lib de base, mais je vais être obligé de l'utiliser vu les problèmes causés par l'autre 
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

À la fin oui normalement (pas tout à fait si tu as vu mon mp)
Actuellement j'ai une trentaine d'onglets et 3 googledoc d'ouvert, ton Mp est quelque pars dans ce bordel smiley-sweat

D'après la description de lib c'est une amélioration de la lib de base en terme de performance et de logique.
Mais pour moi c'est surtout la simplicité d'utilisation en une ligne avec un simple read je récupère 6 registres différent de mon gyroscope avec ou sans bit de stop. alors qu'avec la lib de base... c'est toute une épopée et c'est moins clair à la relecture du code, ça prend énormément plus de place... bref j'aime moins la lib de base, mais je vais être obligé de l'utiliser vu les problèmes causés par l'autre 
Je vois mal quelles optimisations (de manière vraiment significative j'entends) pourrait être faites vu que l'I2C est géré par le hardware.
A par virer toutes la partie qui gère les fonctions avancé (print(), println(), readBytesUntil(), ...) ya pas grand chose à faire.

La lib Wire de base est pas super compliqué :
Wire.requestFrom() pour demander les données
boucle sur Wire.available() pour attendre les données
Wire.read() ou  Wire.readBytes(buf, len) pour lire les données
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Behind you
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui mais entre deux il y a tous les write qui servent à choisir le registre ensuite les requestFrom les boucles et les read pour 6 registres.. je passe d'une ligne à 30. m'enfin ça encore je m'en fous ce n'est qu'un problème de présentation, tant que ça marche je prend moi ^^ mais actuellement ça déconne dans le vent pour rien et ça commence à me les geler... mon code marchait auparavant

Quote
Actuellement j'ai une trentaine d'onglets et 3 googledoc d'ouvert, ton Mp est quelque pars dans ce bordel  smiley-sweat
Ma Moman m'a toujours dit de faire une chose après l'autre  : smiley-lol
« Last Edit: March 13, 2013, 04:39:31 pm by Reynosa » Logged

Pages: [1]   Go Up
Jump to: