Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Mar 23, 2011 13 Replies
A
Andrzej
Zaczynam zabawę z AVR-ami. Mam program skompilowany przez autora pod Win-avr-3.4.6 i zajmuje on ok.
2kB. Ten sam program skompilowany ze źródła pod wersją 4.1.2 zajmuje ponad 4kB (opcja -0s). Podobno następne wersje generują coraz dłuższe kody, ale taka zmiana - to chyba niemożliwe. pozdrawiam, Andrzej
Didn't find your answer? Ask the community — no account required.
Z
Zakarm
W dniu 2011-03-23 14:26, Andrzej pisze:
pewnie ten sam kod napisany poprostu w assemblerze zajalby kilkaset bajtow.
A
Adam Dybkowski
W dniu 2011-03-23 14:26 Andrzej napisał(a):
Możliwe i właśnie tak jest. Niestety dodanie wsparcia nowych/dużych procków spowodowało pogorszenie kodu wynikowego nawet w małych prockach. Wróć do starego gcc i już.
A
Andrzej
Użytkownik "Andrzej" snipped-for-privacy@op.pl napisał w wiadomości news:imcsdc$ujm$ snipped-for-privacy@news.onet.pl...
No niestety. Żadne pomysły nie zadziałały. Stary gcc też generuje kod ok. 4kB. Po prostu wezmę większy procesor. Będę miał możliwość większych modyfikacji kodu, więc może więcej się nauczę. ATTiny poczeka w cieple na jakiś mniejszy projekt. Dziękuję wszystkim za pomoc. PS. Chciałem podziałać w C. Tyle się mówi o przenośności kodu. W asemblerze już programowałem: 6800, 8080, 8068 (ach, te segmenty!), najwięcej Z-80. Potem była długa przerwa. pozdrawiam, Andrzej
T
Tom
Co to za kod, mozna go skads sciagnac? Moze ktos inny odkryje w czym problem.
Swoja droga wiekszy procesor na poczatek to niezly pomysl, poeksperymentujesz z C a nie bedziesz sie rozpraszal na uboczne problemy.
Tomek
R
Robbo
Używam starego WinAVR. Chciałem przesiąść się na nową wersję. Gdy zobaczyłem, że binarka jest znacząco większa w nowym WinAVR, to szybciutko wróciłem do starej wersji i tyle.
R.
S
Sebastian Biały
Więc pokaż źródła i makefile.
Nie. Po prostu zobaczymy dlaczego generuje duzo bo może generuje
*dobrze* a autor kodu sciemnia.
A
Andrzej
Bêdê bardzo wdziêczny. Ten kod st±d:
formatting link
to miernik LC. Autor zrobi³ wy¶wietlanie wyniku na drugim procesorze AtTiny 2313. Ja upro¶ci³em trochê jego ¼ród³o i dopisa³em obs³ugê LCD na tym samym procesorze. My¶la³em, ¿e mo¿e siê zmie¶ci, albo tylko trochê przekroczy pojemno¶æ, a tu masz - prawie 5kB. Wiêc skompilowa³em jego ¼ród³o - tylko nieco mniej. Policzy³em wielko¶æ pliku hex (znam format) - poni¿ej 2kB Zmieni³em gcc, na tak± wersjê jak on podaje - niewielka ró¿nica w wielko¶ci kodu. W makefile nic nie grzeba³em, w³±czy³em tylko optymalizacjê -os uzyskane po wyklikaniu w AvrStudio. Mysla³em, ¿e pójdzie lekko, ³atwo i przyjemnie, a tu przyjdzie siê uczyæ tych wszystkich opcji z makefile...
M
Marcin Wasilewski
Użytkownik "Robbo" snipped-for-privacy@mmm.com napisał w wiadomości news:4d8b2170$0$2506$ snipped-for-privacy@news.neostrada.pl...
Starą czyli jaką? Jakiś numerek możesz podać?
S
shg
Zmieniłeś też wersję avr-libc? Widzę tam operacje na float (double, ale to i tak float), od którejś wersji avr-libc te procedury bardzo "spuchły". Dowolna operacja na float to chyba 3 kB kodu na dzień dobry. We wcześniejszej wersji było dużo mniej, około 1 kB.
J
JDX
On 2011-03-24 22:23, Andrzej wrote: [.....]
tak ogólnie i gcc to już nie... W każdym bądź razie ściągnąłem plik
2313LCmeter_070217A_project.zip, rozpakowałem i odpaliłem serię komend:
-------- begin -------- avr-gcc (WinAVR 20100110) 4.3.3 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
D:\Temp\LCMeter>avr-size 2313LCmeter.elf text data bss dec hex filename 2158 54 12 2224 8b0 2313LCmeter.elf
I jak widać w powyższej linii, wychodzi mi, że program zajmuje ~2,2kB.
A
Andrzej
U¿ytkownik "shg" snipped-for-privacy@gmail.com napisa³ w wiadomo¶ci news: snipped-for-privacy@d16g2000yqd.googlegroups.com... [ciach]
Wyci±³em z komputera WinAvr i zainstalowa³em wersjê z gcc 3.4.6 ze wszystkimi bibliotekami. Jak mówi³em do tej wersji gcc przyznaje siê autor.
A nie pamiêtasz czym siê chwalili, jak powsta³a ta nowa wersja. Musia³a czym¶ siê ró¿niæ skoro "spuch³a". Tak na razie nie wiem, której wersji szukaæ.
S
shg
Różni się pierdołami, które przydają się od święta. Obsługa NaN-ów, liczb zdenormalizowanych itp. Jest też chyba kilka razy szybsza.
A
Andrzej
Dziêki. Czyli nie nowa wersja AVR-gcc. Mój b³±d. Poniewa¿ zmienia³em kod, wygenerowa³em makefile klikaj±c w Avr-studio. Potem, gdy mi pokaza³o rozmiar ponad 4 kB, wgra³em ¼ród³o autora, ale u¿ywa³em swojego makefile. Teraz prze weekend spokojnie porównam oba makefile i znajdê (mam nadziejê przyczynê. Jeszcze raz dziekujê i pozdrawiam, Andrzej
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.