logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Aktualny toolchain dla AVR32 - przestarzała wersja GCC 4.4.7?

Freddie Chopin 08 Maj 2017 22:15 1737 13
  • #1 16464428
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Z pewnych względów zainteresowałem się AVR32. Ściągnąłem "najnowszego" toolchaina i chyba mi już przeszło. Pomijając to, że "najnowszy" toolchain na stronie Atmela ma prawie 2 (słownie - dwa) lata, to zawiera "najnowszą" wersję GCC z serii 4.4 (słownie cztery-cztery), czyli 4.4.7, wydane - bagatela - 5 (słownie - pięć) lat temu. To w sumie nic, bo pierwsze wydanie z serii 4.4 było 8 (słownie - osiem) lat temu...

    Autentycznie nie chciałem być złośliwy, ale jak można traktować poważnie taką platformę? Przecież ten kompilator to antyk...
  • #2 16464468
    excray
    Poziom 41  
    <ironia>Zrobili tak dobry produkt, że już od kilku lat nie ma co poprawiać.</ironia>
  • #3 16464499
    grko
    Poziom 33  
    Ostatnio mam do czynienia trochę z AVR i postanowiłem pobrać toolchain ze strony producenta. Okazuje się, że oryginalny toolchain do AVR bazuje na gcc sprzed 2.5 roku oraz nie wspiera LTO, które mnie dość mocno interesowało w projekcie, którym się zajmuję. To nie firmowy toolchain z pakietów debiana wspiera LTO. Dodam, że też 4.9.2. Całe szczęście, że jest crosstool-ng :)
  • #4 16464546
    Konto nie istnieje
    Poziom 1  
  • #5 16464670
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Marek_Skalski napisał:
    Atmel ponad 2 lata temu informował, że są to układy NRND. Po przejęciu, Microchip zdecydował się produkować jeszcze przez jakiś czas tylko wersje z pamięcią 128KiB i chyba też 256KiB. Ale to i tak bez sensu.

    Akurat ta informacja jest o serii z literką "L", a są też przecież inne (A, B, C, D), te które teraz kliknąłem dla sprawdzenia są normalnie "in production". Nie wiem czym się różnią od tych z "L" (;

    Ja generalnie jestem ciekawy prawie wszystkiego, więc po prostu się zaciekawiłem takim przedstawicielem świata 32-bitowych mikrokontrolerów [; Na stronce o całej tej rodzinie układów wyglądają one ciekawie, wydajne, FPU, "adekwatne" ilości pamięci itd. Niemniej jednak antyczny toolchain i brak wsparcia w "mainline" GCC raczej działają odstraszającą, zwłaszcza jak się jest miłośnikiem C++ i najnowszych wersji...
  • #6 16464744
    kamyczek
    Poziom 38  
    Może po prostu nie było potrzeby poprawiania rzeczy które działały bez zarzutu . Jak to mówią "lepsze jest wrogiem dobrego..." i nie zawsze to ciągłe poprawianie jest oznaką tego że jest lepiej , a raczej tego że wszystko jest na prędko ,niesprawdzone i potem jest poprawianie niedoróbek i kolejnych byków ,które wychodzą w wyniki poprawiania poprawek .
  • #7 16464886
    Freddie Chopin
    Specjalista - Mikrokontrolery
    kamyczek napisał:
    Może po prostu nie było potrzeby poprawiania rzeczy które działały bez zarzutu .

    Z pewnością (; Pomiędzy GCC 4.4 a najnowszym 7.1 jest tyle zmian, że nawet nie ma co tego wymieniać, jednakże choćby dobre wsparcie dla C++11 jest - wg moich doświadczeń - dopiero od wersji 5.1. Pełne wsparcie dla C++17 - dopiero w wersji 7.1. No chyba że uważasz, że wystarczy używać tylko assemblera i problem rozwiązany (;

    kamyczek napisał:
    i nie zawsze to ciągłe poprawianie jest oznaką tego że jest lepiej , a raczej tego że wszystko jest na prędko ,niesprawdzone i potem jest poprawianie niedoróbek i kolejnych byków ,które wychodzą w wyniki poprawiania poprawek .

    GCC ma 6 milionów linii kodu. Warto by było mieć tego świadomość jak chcesz zarzucać komuś że robi coś "na prędko" czy że jakiś soft jest "niesprawdzony" i pełen "niedoróbek i byków".
  • #8 16464979
    BlueDraco
    Specjalista - Mikrokontrolery
    Biorąc pod uwagę, że gcc ma nieco ponad 30 lat, czyli nieco ponad 12000 dni, to 6 milionów linii kodu daje 500 linii na dzień. Nie powiesz chyba, Freddie, że 500 linii kodu w C dziennie to nie jest "na szybko"... ;)
  • #10 16465085
    kamyczek
    Poziom 38  
    Freddie Chopin napisał:
    wystarczy używać tylko assemblera i problem rozwiązany


    Wnioski prawidłowe tylko czemu tak długo do nich dochodziłeś ;)
    Ja mam sto z kawałkiem rozkazów ,które zawsze działały i działają tak samo .

    Oczywiście to żart żebyś Freddie nie pomyślał że się czepiam . Każdy ma jakieś upodobania jedni wolą gcc inni asm wszystko ma swoje wady i zalety mnie bardziej interesuje powód wycieczki na 32 bitowce atmela . Jak się nimi pobawisz trochę chętnie usłyszę twoją opinię i porównanie ARM VS AVR32 byle to nie było kolejne tendencyjne stwierdzenie że arm jest super a reszta jest bee.
  • #11 16465550
    BlueDraco
    Specjalista - Mikrokontrolery
    Studium porównawcze proponuję zacząć od ceny, dostępności i gwarantowanego przez producenta czasu życia produktu.
  • #12 16466129
    tmf
    VIP Zasłużony dla elektroda
    grko napisał:
    Ostatnio mam do czynienia trochę z AVR i postanowiłem pobrać toolchain ze strony producenta. Okazuje się, że oryginalny toolchain do AVR bazuje na gcc sprzed 2.5 roku oraz nie wspiera LTO, które mnie dość mocno interesowało w projekcie, którym się zajmuję. To nie firmowy toolchain z pakietów debiana wspiera LTO. Dodam, że też 4.9.2. Całe szczęście, że jest crosstool-ng :)


    Dziwne, bo wg dokumentów Atmela:
    AVR 8-bit GCC Toolchain 3.6.0 with upstream versions:
    – gcc 5.4.0
    – Binutils 2.26.20160125
    – avr-libc 2.0.0
    – gdb 7.8
    Nie pobieram go oddzielnie, bo jest ściągany przez Atmel Studio automatycznie. LTO jest od dawna.

    Dodano po 3 [minuty]:

    Co do AVR32 - kilka lat temu chciałem w nie wejść głębiej, bo wtedy to była chyba jedyna rodzina mocniejszych procesorów, sensownie zaprojektowanych. Niestety Atmel zaczął się z niej stopniowo wycofywać (a przynajmniej dostępność była ograniczona), jeszce przez jakiś czas żyła rodzina UC3, coś tam rozwijali, ale i to oklapło. Obecnie są w ofercie z rozpędu, ale chyba aktywnie nie są już rozwijane, stąd i narzędzia zatrzymały się w rozwoju jakiś czas temu. Szkoda, bo zawsze to lepiej jeśli jest wybór a nie monokultura.
  • #13 16466584
    grko
    Poziom 33  
    @tmf Moze niedokładnie się wyraziłem. Chodziło mi o to:

    Cytat:

    -fuse-linker-plugin

    Enables the use of a linker plugin during link-time optimization. This option relies on plugin support in the linker, which is available in gold or in GNU ld 2.21 or newer.

    This option enables the extraction of object files with GIMPLE bytecode out of library archives. This improves the quality of optimization by exposing more code to the link-time optimizer. This information specifies what symbols can be accessed externally (by non-LTO object or during dynamic linking). Resulting code quality improvements on binaries (and shared libraries that use hidden visibility) are similar to -fwhole-program. See -flto for a description of the effect of this flag and how to use it.

    This option is enabled by default when LTO support in GCC is enabled and GCC was configured for use with a linker supporting plugins (GNU ld 2.21 or newer or gold).



    Poza tym da się jakos pobrać tego toolchaina z gcc 5.4 dla Linuxa? Bo na oficjalnych stronach jest toolchain 4.9.2, który z wyżej wymienionego powodu mi nie odpowiada.
  • #14 16467058
    tmf
    VIP Zasłużony dla elektroda
    Z tego co widzę do pobrania osobno jest 3.5.4, czyli zawierający wcześniejszą wersję. To zapewne jakieś przeoczenie, napisz do Marcusa (znajdziesz go na AVRFreaks) i pewnie go dostaniesz.
REKLAMA