AVRGCC porblem linkovani
Martin Locker
locker na vosrk.cz
Úterý Květen 13 17:03:53 CEST 2014
Zdravím,
pustil jsem se do projektu, kde jsem byl donucen použít goniometrické funkce.
Kdysi už jsem něco zkoušel a nebyl problém.
Ale v programu pro ATmega128 jsem použil funkci SIN a výsledek nejde slinkovat,
a ne úplně rozumím hlášení linkeru.
Pokud by mi mohl někdo poradit, co je špatně, tak bych byl moc vděčen.
Řádek kódu, který to způsobí (pokud ho zakomentuju, tak to projde)
double A;
long l, x;
x=(long) (l * sin (a));
a hlášení linkeru:
avr-g++.exe -o bin\Maxi.elf bin\IntRS485.o bin\Kompas.o bin\LCD.o bin\Main.o bin\RS485.o bin\Robot.o bin\SMC.o bin\Time.o bin\UART.o bin\i2c.o bin\CRC.o -mmcu=atmega128 -Wl,--gc-sections,-Map=bin\Maxi.map,--cref
d:/codeblocks/avrgcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr51\libm.a(fp_powsodd.o): In function `__fp_powsodd':
(.text.fplib+0x10): relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in d:/codeblocks/avrgcc/bin/../lib/gcc/avr/4.3.2/avr51\libgcc.a(_mul_sf.o)
d:/codeblocks/avrgcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr51\libm.a(fp_powsodd.o): In function `__fp_powsodd':
(.text.fplib+0x20): relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in d:/codeblocks/avrgcc/bin/../lib/gcc/avr/4.3.2/avr51\libgcc.a(_mul_sf.o)
Tipuju, že je problém v realokaci, ale proč?
Díky
Martin Locker
Další informace o konferenci Hw-list