Goto page 1, 2 Next
slawek7
Guest
Thu Sep 09, 2010 7:19 am
Podczas kompilacji programu w WinAVR dostaje taki komunikat z
kompilatora
c:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/bin/ld.exe: region
text is full (main.elf section .text)
Zupełnie nie wiem o co chodzi?
LemonPL
Guest
Thu Sep 09, 2010 7:19 am
W dniu 2010-09-09 07:19, slawek7 pisze:
Quote:
Podczas kompilacji programu w WinAVR dostaje taki komunikat z
kompilatora
c:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/bin/ld.exe: region
text is full (main.elf section .text)
Zupełnie nie wiem o co chodzi?
Tak
Lemon
shg
Guest
Thu Sep 09, 2010 9:08 am
On 9 Wrz, 07:19, slawek7 <sholo...@wp.pl> wrote:
Quote:
text is full (main.elf section .text)
Zupełnie nie wiem o co chodzi?
Tu masz napisane o co chodzi, sekcja "text" to kod programu, brakło
miejsca we flashu.
Sebastian Biały
Guest
Thu Sep 09, 2010 3:50 pm
On 2010-09-09 07:19, slawek7 wrote:
Quote:
c:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/bin/ld.exe: region
text is full (main.elf section .text)
Zabraklo miejsca w pamięci. Spróbuj dodać opcje kompilatora -Os jesli
juz jej nie masz.
Sebastian Biały
Guest
Thu Sep 09, 2010 6:23 pm
On 2010-09-09 19:44, slawek7 wrote:
Quote:
Było kompilowane z -Os.
Dziwne, ponieważ powinno być wszystko dobrze, poniewaz zostało to
ściagniete z EdW a tam podobno sie kompiluje bez kłopotów
Pokaż polecenia kompilacji i dumpowania hex-a, może poza .text do flash
ląduja jakies inne sekcje.
Dodatkowo zainteresuj się:
avr-objdump -S -h <main.elf >main.lst
Bedzie widac co tyle zajmuje.
No i jesli flash był wypełniony na maxa to zmaiana kompilatora mogła
spowodowac kłopoty z pomieszczeniem się bo generuje się inny kod.
slawek7
Guest
Thu Sep 09, 2010 7:44 pm
Było kompilowane z -Os.
Dziwne, ponieważ powinno być wszystko dobrze, poniewaz zostało to
ściagniete z EdW a tam podobno sie kompiluje bez kłopotów
Adam Dybkowski
Guest
Thu Sep 09, 2010 11:31 pm
W dniu 2010-09-09 19:44 slawek7 napisał(a):
Quote:
Było kompilowane z -Os.
Dziwne, ponieważ powinno być wszystko dobrze, poniewaz zostało to
ściagniete z EdW a tam podobno sie kompiluje bez kłopotów
Zmień na chwilę procesor na większy (dla kompilatora). Zobaczysz ile
przekroczył program w stosunku do możliwości MCU, pod który obecnie
kompilujesz. Zajrzyj też do pliku .map, który wypluwa linker. Może
wystarczy coś małego wyciąć, skorzystać z prostszej wersji funkcji
printf itp.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
slawek7
Guest
Fri Sep 10, 2010 5:45 am
Do kompilacji używam AVRStudio w połączeniu z WinAVR.
Zminiłem procesor na Atmega32 i za to pojawia się inny błąd:
c:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/
avr5\libc.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 c:/winavr/bin/../
lib/gcc/avr/4.3.0/avr5\libgcc.a(_mul_sf.o)
c:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/
avr5\libc.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 c:/winavr/bin/../
lib/gcc/avr/4.3.0/avr5\libgcc.a(_mul_sf.o)
Build failed with 1 errors and 1 warnings...
shg
Guest
Fri Sep 10, 2010 9:06 am
On 9 Wrz, 19:44, slawek7 <sholo...@wp.pl> wrote:
Quote:
Było kompilowane z -Os.
Dziwne, ponieważ powinno być wszystko dobrze, poniewaz zostało to
ściagniete z EdW a tam podobno sie kompiluje bez kłopotów
Jeżeli było kompilowane starszą wersja gcc, to mogło być mniejsze.. gcc
ma niestety taką przykrą cechę, że wraz ze wzrostem numeru wersji
generowany kod jest coraz gorszy i coraz większy, trafia tam kupa
bezsensownych operacji, typu "pogrubianie zmiennych", czyli
zapisywanie kilka razy tego samego i to do rejestrów które potem nie
są używane, ale jakby tego było mało, to jeszcze jest kawałek kodu,
który sprawdza, czy aby na pewno zapisało się to co miało.
slawek7
Guest
Fri Sep 10, 2010 12:34 pm
A może mi ktoś pomóc rozszyfrowac to co tam wyskoczyło w błędzie?
Zbych
Guest
Fri Sep 10, 2010 12:59 pm
W dniu 2010-09-10 12:34, slawek7 pisze:
Quote:
A może mi ktoś pomóc rozszyfrowac to co tam wyskoczyło w błędzie?
Wystaw archiwum z programem na jakimś publicznym serwerze, to może jakaś
dobra dusza się zlituje i ci pomoże to skompilować.
shg
Guest
Fri Sep 10, 2010 2:55 pm
On 10 Wrz, 12:34, slawek7 <sholo...@wp.pl> wrote:
Quote:
A może mi ktoś pomóc rozszyfrowac to co tam wyskoczyło w błędzie?
Ściągnij stare WinAVR, zainstaluj i skompiluj, problem z głowy w 10
minut.
Prawdopodobnie nie linkujesz biblioteki z funkcjami
zmiennoprzecinkowymi (libm) i kompilator dodaje własne z glibc, które
są 36,1 razy gorsze (bo pisane w z C, aczkolwiek tym z libm też daleko
do rewelacyjności)
Pokaż Makefile (skąd go masz?) i kod.
Próbowałeś w ogóle wpisać fragmenty tych komunikatów w ulubioną
wyszukiwarkę?, bo ja tak.
Sebastian Biały
Guest
Fri Sep 10, 2010 4:05 pm
On 2010-09-10 17:22, slawek7 wrote:
Quote:
1000*cos(latstopnie*3.1415/180)
To nie jest najlepszy pomysł na mikrokontroler. Zobacz jak wiele symboli
plik gpc.c probuje dociągnąć:
000011da T __addsf3x
00001256 T cos
00001262 T __divsf3
00001268 T __divsf3x
000012ee T dtostrf
000013fe T __fixsfsi
000013fe T __fixunssfsi
00001424 T __fp_lneg
00001434 T __floatunssisf
00001438 T __floatsisf
0000144c T fmod
i wiele więcej. Ten "cos" to twój dodatek?
slawek7
Guest
Fri Sep 10, 2010 5:22 pm
Bardziej mi zalezy aby sie czegos nauczyc np co oznaczaja błedy i jak
sobie z nimi radzić.
Instalacja starej wersji to wiecej niz 10min bo musialbym poustawiac z
powrtotem kilka rzeczy np pliki wsadowe. To juz łatwiej zmienic
program aby poszło na nowszej wersji.
Quote:
Nie wiem jak zmienic te bibloteki?
Adam Dybkowski
Guest
Fri Sep 10, 2010 9:21 pm
W dniu 2010-09-10 18:05 Sebastian Biały napisał(a):
Quote:
Dlaczego by nie? Jeżeli potrzeba to przecież jest dostarczana biblioteka
matematyczna, wystarczy ją dolinkować opcją -lm. Kwestia tylko czy
wszystkie funkcje potrzebne do zadziałania tego jednego cosinusa wejdą
do Flasha.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Goto page 1, 2 Next