-
21. Data: 2011-03-24 21:38:11
Temat: Re: Czy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Od: "Marcin Wasilewski" <j...@a...pl>
Użytkownik "Robbo" <y...@m...com> napisał w wiadomości
news:4d8b2170$0$2506$65785112@news.neostrada.pl...
> 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.
Starą czyli jaką? Jakiś numerek możesz podać?
-
22. Data: 2011-03-24 23:41:42
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: shg <s...@g...com>
On Mar 24, 10:23 pm, "Andrzej" <d...@o...pl> wrote:
>
> B d bardzo wdzi czny.
> Ten kod st d:http://www.cappels.org/dproj/nlglcm/Pretty%20Good%
20LC%20Meter%20Proj...
> 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...
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.
-
23. Data: 2011-03-25 07:22:08
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: JDX <j...@o...pl>
On 2011-03-24 22:23, Andrzej wrote:
[.....]
> Ten kod stąd:
> http://www.cappels.org/dproj/nlglcm/Pretty%20Good%20
LC%20Meter%20Project.html
Na początku zaznaczę, że AVR-y to dla mnie nowość. Ale mikrokontrolery
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:
D:\Temp\LCMeter>make clean
-------- begin --------
Cleaning project:
rm -f 2313LCmeter.hex
rm -f 2313LCmeter.eep
rm -f 2313LCmeter.cof
rm -f 2313LCmeter.elf
rm -f 2313LCmeter.map
rm -f 2313LCmeter.sym
rm -f 2313LCmeter.lss
rm -f 2313LCmeter.o
rm -f 2313LCmeter.lst
rm -f 2313LCmeter.s
rm -f 2313LCmeter.d
rm -f .dep/*
-------- end --------
D:\Temp\LCMeter>make
-------- 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.
Compiling: 2313LCmeter.c
avr-gcc -c -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os
-funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-
adhlns=2313LCmeter.lst -std=gnu99 -MD -MP -MF .dep/2313LCmeter.o.d
2313LCmeter.
c -o 2313LCmeter.o
Linking: 2313LCmeter.elf
avr-gcc -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os
-funsigned-char -fu
nsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes
-Wa,-adh
lns=2313LCmeter.o -std=gnu99 -MD -MP -MF .dep/2313LCmeter.elf.d
2313LCmeter.o -
-output 2313LCmeter.elf -Wl,-Map=2313LCmeter.map,--cref -lm
Creating load file for Flash: 2313LCmeter.hex
avr-objcopy -O ihex -R .eeprom 2313LCmeter.elf 2313LCmeter.hex
Creating load file for EEPROM: 2313LCmeter.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex 2313LCmeter.elf
2313LCmeter.eep
c:\Tools\WinAVR\bin\avr-objcopy.exe: --change-section-lma
.eeprom=0x00000000 nev
er used
Creating Extended Listing: 2313LCmeter.lss
avr-objdump -h -S 2313LCmeter.elf > 2313LCmeter.lss
Creating Symbol Table: 2313LCmeter.sym
avr-nm -n 2313LCmeter.elf > 2313LCmeter.sym
Size after:
2313LCmeter.elf :
section size addr
.text 2158 0
.data 54 8388704
.bss 12 8388758
.debug_aranges 32 0
.debug_pubnames 292 0
.debug_info 872 0
.debug_abbrev 399 0
.debug_line 922 0
.debug_frame 208 0
.debug_str 343 0
.debug_loc 106 0
Total 5398
-------- end --------
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.
-
24. Data: 2011-03-25 07:41:27
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: "Andrzej" <d...@o...pl>
Użytkownik "shg" <s...@g...com> napisał w wiadomości
news:1500ebc6-1112-4010-b151-719c5533c532@d16g2000yq
d.googlegroups.com...
[ciach]
> Zmieniłeś też wersję avr-libc
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.
>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.
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ć.
-
25. Data: 2011-03-25 08:44:48
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: shg <s...@g...com>
On Mar 25, 8:41 am, "Andrzej" <d...@o...pl> wrote:
> 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ć.
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.
-
26. Data: 2011-03-25 12:01:27
Temat: Re: Czy kolejne wersje win-avr-gcc generuj? coraz d3u?szy kod?
Od: "Andrzej" <d...@o...pl>
Użytkownik "JDX" <j...@o...pl> napisał w wiadomości news:imhfr8$ecc$1@news.onet.pl...
> On 2011-03-24 22:23, Andrzej wrote:
> [.....]
>> Ten kod stąd:
>> http://www.cappels.org/dproj/nlglcm/Pretty%20Good%20
LC%20Meter%20Project.html
> Na początku zaznaczę, że AVR-y to dla mnie nowość. Ale mikrokontrolery
> 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:
>
> D:\Temp\LCMeter>make clean
>
> -------- begin --------
>
> Cleaning project:
> rm -f 2313LCmeter.hex
> rm -f 2313LCmeter.eep
> rm -f 2313LCmeter.cof
> rm -f 2313LCmeter.elf
> rm -f 2313LCmeter.map
> rm -f 2313LCmeter.sym
> rm -f 2313LCmeter.lss
> rm -f 2313LCmeter.o
> rm -f 2313LCmeter.lst
> rm -f 2313LCmeter.s
> rm -f 2313LCmeter.d
> rm -f .dep/*
> -------- end --------
>
>
> D:\Temp\LCMeter>make
>
> -------- 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.
>
>
> Compiling: 2313LCmeter.c
> avr-gcc -c -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os
> -funsigned-char
> -funsigned-bitfields -fpack-struct -fshort-enums -Wall
> -Wstrict-prototypes -Wa,-
> adhlns=2313LCmeter.lst -std=gnu99 -MD -MP -MF .dep/2313LCmeter.o.d
> 2313LCmeter.
> c -o 2313LCmeter.o
>
> Linking: 2313LCmeter.elf
> avr-gcc -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os
> -funsigned-char -fu
> nsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes
> -Wa,-adh
> lns=2313LCmeter.o -std=gnu99 -MD -MP -MF .dep/2313LCmeter.elf.d
> 2313LCmeter.o -
> -output 2313LCmeter.elf -Wl,-Map=2313LCmeter.map,--cref -lm
>
> Creating load file for Flash: 2313LCmeter.hex
> avr-objcopy -O ihex -R .eeprom 2313LCmeter.elf 2313LCmeter.hex
>
> Creating load file for EEPROM: 2313LCmeter.eep
> avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
> --change-section-lma .eeprom=0 -O ihex 2313LCmeter.elf
> 2313LCmeter.eep
> c:\Tools\WinAVR\bin\avr-objcopy.exe: --change-section-lma
> .eeprom=0x00000000 nev
> er used
>
> Creating Extended Listing: 2313LCmeter.lss
> avr-objdump -h -S 2313LCmeter.elf > 2313LCmeter.lss
>
> Creating Symbol Table: 2313LCmeter.sym
> avr-nm -n 2313LCmeter.elf > 2313LCmeter.sym
>
> Size after:
> 2313LCmeter.elf :
> section size addr
> .text 2158 0
> .data 54 8388704
> .bss 12 8388758
> .debug_aranges 32 0
> .debug_pubnames 292 0
> .debug_info 872 0
> .debug_abbrev 399 0
> .debug_line 922 0
> .debug_frame 208 0
> .debug_str 343 0
> .debug_loc 106 0
> Total 5398
>
>
>
> -------- end --------
>
>
> 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.
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