Go Down

Topic: [Resolu] Pb linkage (Read 1 time) previous topic - next topic

gerse

Jun 22, 2012, 01:05 am Last Edit: Jun 24, 2012, 04:04 pm by gerse Reason: 1
Bonsoir tout le monde,
Je fais des essais avec mon shield internet.
Tout fonctionne correctement sauf que j'ai ajouté une nouvelle page d'essai qui mesure la température sur l'arduino (un truc que j'ai trouvé sur le blog Skyduino ) mais j'aurais très bien pu afficher la recette des crêpes. Du coup  j'ai un problème de linkage. Je suppose qu'il manque une option au linker..?

J'utilise ATMEL Studio avec les libs Arduino 1.0....

les messages du linker:

Code: [Select]
"F:\Program Files\Atmel\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-g++.exe" -o EthernetSrv2.elf  EthernetSrv2.o index1.o temperature.o   -Wl,-Map="EthernetSrv2.map" -Wl,--start-group -Wl,-lm -Wl,-lArduinoCore101 -Wl,-lSPI -Wl,-lEthernet  -Wl,--end-group -Wl,-L"F:\Arduino\Atmel\ArduinoCore101\ArduinoCore101\Release" -Wl,-L"F:\Arduino\Atmel\ArduinoCore101\Ethernet\Ethernet\Release" -Wl,-L"F:\Arduino\Atmel\ArduinoCore101\SPI\SPI\Release"  -Wl,--gc-sections  -mmcu=atmega328p  
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/fixsfsi.S:55:(.text.avr-libc.fplib+0x6): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_szero' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/fixunssfsi.S:69:(.text.avr-libc.fplib+0x0): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_splitA' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/fixunssfsi.S:94:(.text.avr-libc.fplib+0x26): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_zero' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/fixunssfsi.S:98:(.text.avr-libc.fplib+0x2c): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_zero' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3.S:37:(.text.avr-libc.fplib+0x2): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_round' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:44:(.text.avr-libc.fplib+0x0): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_pscA' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:46:(.text.avr-libc.fplib+0x4): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_pscB' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:50:(.text.avr-libc.fplib+0xc): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_inf' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:51:(.text.avr-libc.fplib+0xe): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_nan' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:53:(.text.avr-libc.fplib+0x12): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_szero' defined in .text.avr-libc.fplib section in f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
f:/program files/atmel/extensions/atmel/avrgcc/3.4.0.65/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o):/home/tools/hudson/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/mulsf3x.S:56:(.text.avr-libc.fplib+0x14): additional relocation overflows omitted from the output
collect2: ld returned 1 exit status
make: *** [EthernetSrv2.elf] Error 1
Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "EthernetSrv2.cppproj" -- FAILED.
Done building project "EthernetSrv2.cppproj" -- FAILED.


ET le bout de code qui genere ca :
Code: [Select]

void getInternalTempArduino(float *pval)
{
float val;
ADMUX = 0xC8;                // Sélectionne le port analogique 8 + référence interne 1v1
   ADCSRA |= (1 << ADEN);       // Active le convertisseur analogique -> numérique
ADCSRA |= (1 << ADSC);       // Lance une conversion analogique -> numérique
while(ADCSRA & (1 << ADSC)); // Attend la fin de la conversion
uint16_t raw = ADCL | (ADCH << 8); // Récupère le résultat de la conversion
//float raw = ADCL | (ADCH << 8); // Récupère le résultat de la conversion
val=(raw - 324.31 )/1.22 ;          // Ligne d'affectation
*pval=val;  /*** SI CETTE LIGNE alors erreur***/

}


j'ai également essayé en utilisant la fonction comme à son original soit en retournant un float: le return plante de la même manière..
Je pensais que c'était une erreur de conversion implicite et j'ai rajouter la ligne d'affectation, qui passe sans pb;
Le bug couillon car ce n'etait vraiment pas là le but de mes essais...je seche!


skizoh

dit moi toi tu donnerai pas dans le compliqué alors qu'on peut faire simple? ^^ je vois pas trop ou est l'erreur mais pourquoi tu utilise pas le simple analogRead()..?
Un tien vaux mieux que deux tu l'auras !

skywodd


Tout fonctionne correctement sauf que j'ai ajouté une nouvelle page d'essai qui mesure la température sur l'arduino (un truc que j'ai trouvé sur le blog Skyduino ) mais j'aurais très bien pu afficher la recette des crêpes. Du coup  j'ai un problème de linkage. Je suppose qu'il manque une option au linker..?

Tu pourrais donner le liens du "truc", tout le monde ne connais pas mon blog et ses articles par coeur ;)
http://skyduino.wordpress.com/2012/05/22/arduino-connaitre-la-temperature-ambiante-sans-capteur-de-temperature/


j'ai également essayé en utilisant la fonction comme à son original soit en retournant un float: le return plante de la même manière..
Je pensais que c'était une erreur de conversion implicite et j'ai rajouter la ligne d'affectation, qui passe sans pb;

C'est bizarre tu as pourtant bien -lm qui inclut la librairie libm.a dans ta ligne de compilation ...

Essaye de compiler en utilisant la toolchain winAVR (derniére version).
Tu utilises avr-gcc 3.4.0 pour compiler, alors que la version la plus récente est gcc 4.3.3, ça fait un sacrée train de retard ;)


dit moi toi tu donnerai pas dans le compliqué alors qu'on peut faire simple? ^^ je vois pas trop ou est l'erreur mais pourquoi tu utilise pas le simple analogRead()..?

Si tu avais pris le temps de regarder le nom de la fonction tu comprendrais ;)
"getInternalTempArduino" -> obtenir la température du capteur interne de l'ATmega328p
Va faire ça avec analogRead, c'est juste impossible ;)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

gerse

Helo
desoled Skywodd je suis mauvais en marketing :)
J essaye ca demain. c'est marrant que je sois si en retard: j'ai pourtant la derniere version de studio et le linker livré avec arduino1.x...
Je reviens vers vous pour vous dire.
Serge

barbudor

#4
Jun 22, 2012, 08:55 pm Last Edit: Jun 22, 2012, 09:26 pm by barbudor Reason: 1
Dans les paramètres de compilation, section Optimization, est-ce que par hasard tu aurais coché "Use rjump/rcall (limited range) on >8K devices (-mshorts-call)"
(a vérifier dans les paramètres de comilation C et C++)
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Go Up