-
11. Data: 2011-03-23 20:18:36
Temat: Re: Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Od: Adam Dybkowski <a...@4...pl>
W dniu 2011-03-23 14:26 Andrzej napisał(a):
> 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.
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ż.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
12. Data: 2011-03-23 20:40:57
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: "Andrzej" <d...@o...pl>
Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
news:imdjpf$fsg$1@news.onet.pl...
> On 2011-03-23 20:09, Andrzej wrote:
>>> Poka? sposób tworzenia ihex.
>> Nie wiem, co to takiego.
>
> W wyniku kompilacji i obróbki pliku .elf dostaniesz albo plik bin albo hex
> (intel hex). Jakie polecenie i z jakimi argumentami go wygenerowało?
OK. Załapałem ihex to Intel hex.
I cały pic polega na tym, że autorowi z tą samą wersją gcc wychodzi plik,
który mieści się w pamięci attiny2313.
A u mnie:
rm -rf proba.o proba.elf dep/* proba.hex proba.eep
Build succeeded with 0 Warnings...
avr-gcc.exe -mmcu=attiny2313 -Wall -gdwarf-2 -Os -fsigned-char -MD -MP -MT
proba.o -MF dep/proba.o.d -c ../proba.c
avr-gcc.exe -mmcu=attiny2313 proba.o -o proba.elf
avr-objcopy -O ihex -R .eeprom proba.elf proba.hex
avr-objcopy -j
.eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma
.eeprom=0 --no-change-warnings -O ihex proba.elf proba.eep || exit 0
c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
AVR Memory Usage
----------------
Device: attiny2313
Program: 4968 bytes (242.6% Full)
(.text + .data + .bootloader)
Data: 74 bytes (57.8% Full)
(.data + .bss + .noinit)
-
13. Data: 2011-03-23 20:56:22
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: Sebastian Biały <h...@p...onet.pl>
On 2011-03-23 21:40, Andrzej wrote:
> avr-gcc.exe -mmcu=attiny2313 -Wall -gdwarf-2 -Os -fsigned-char -MD -MP -MT
Wywal -gdwarf-2 i zobacz co się stanie.
-
14. Data: 2011-03-23 21:17:04
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: Michoo <m...@v...pl>
W dniu 23.03.2011 21:40, Andrzej pisze:
> AVR Memory Usage
odpal:
avr-size.exe proba.elf
--
Pozdrawiam
Michoo
-
15. Data: 2011-03-24 03:23:53
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: Tom <t...@n...spam.invalid>
On 24/03/2011 6:40 AM, Andrzej wrote:
> Użytkownik "Sebastian Biały"<h...@p...onet.pl> napisał w wiadomości
> news:imdjpf$fsg$1@news.onet.pl...
>> On 2011-03-23 20:09, Andrzej wrote:
>>>> Poka? sposób tworzenia ihex.
>>> Nie wiem, co to takiego.
>>
>> W wyniku kompilacji i obróbki pliku .elf dostaniesz albo plik bin albo hex
>> (intel hex). Jakie polecenie i z jakimi argumentami go wygenerowało?
>
> OK. Załapałem ihex to Intel hex.
> I cały pic polega na tym, że autorowi z tą samą wersją gcc wychodzi plik,
> który mieści się w pamięci attiny2313.
> A u mnie:
> rm -rf proba.o proba.elf dep/* proba.hex proba.eep
> Build succeeded with 0 Warnings...
> avr-gcc.exe -mmcu=attiny2313 -Wall -gdwarf-2 -Os -fsigned-char -MD -MP -MT
> proba.o -MF dep/proba.o.d -c ../proba.c
> avr-gcc.exe -mmcu=attiny2313 proba.o -o proba.elf
> avr-objcopy -O ihex -R .eeprom proba.elf proba.hex
> avr-objcopy -j
> .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma
> .eeprom=0 --no-change-warnings -O ihex proba.elf proba.eep || exit 0
> c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
> AVR Memory Usage
> ----------------
> Device: attiny2313
> Program: 4968 bytes (242.6% Full)
> (.text + .data + .bootloader)
> Data: 74 bytes (57.8% Full)
> (.data + .bss + .noinit)
Kod jest autora, skad masz makefile?
Tomek
-
16. Data: 2011-03-24 09:17:05
Temat: Re: Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Od: "Andrzej" <d...@o...pl>
Użytkownik "Andrzej" <d...@o...pl> napisał w wiadomości
news:imcsdc$ujm$1@news.onet.pl...
> 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
>
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
-
17. Data: 2011-03-24 09:56:40
Temat: Re: Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Od: Tom <t...@n...spam.invalid>
On 24/03/2011 7:17 PM, Andrzej wrote:
> Użytkownik "Andrzej"<d...@o...pl> napisał w wiadomości
> news:imcsdc$ujm$1@news.onet.pl...
>> 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
>>
> 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
>
>
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
-
18. Data: 2011-03-24 10:48:35
Temat: Re: Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Od: "Robbo" <y...@m...com>
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.
-
19. Data: 2011-03-24 17:40:28
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d?u?szy kod?
Od: Sebastian Biały <h...@p...onet.pl>
On 2011-03-24 10:17, Andrzej wrote:
> Stary gcc te? generuje kod ok. 4kB.
Więc pokaż źródła i makefile.
> Po prostu wezme wiekszy procesor.
Nie. Po prostu zobaczymy dlaczego generuje duzo bo może generuje
*dobrze* a autor kodu sciemnia.
-
20. Data: 2011-03-24 21:23:32
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: "Andrzej" <d...@o...pl>
Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
news:imfvme$ran$1@news.onet.pl...
> On 2011-03-24 10:17, Andrzej wrote:
>> Stary gcc te? generuje kod ok. 4kB.
>
> Więc pokaż źródła i makefile.
>
>> Po prostu wezme wiekszy procesor.
>
> Nie. Po prostu zobaczymy dlaczego generuje duzo bo może generuje *dobrze*
> a autor kodu sciemnia.
Będę bardzo wdzięczny.
Ten kod stąd:
http://www.cappels.org/dproj/nlglcm/Pretty%20Good%20
LC%20Meter%20Project.html
Jest 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...