eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaCzy kolejne wersje win-avr-gcc generują coraz dłuższy kod?
Ilość wypowiedzi w tym wątku: 26

  • 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...


strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: