eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProgramowanie uC - Pascal, czy C ?Re: Programowanie uC - Pascal, czy C ?
  • Data: 2014-01-27 22:11:16
    Temat: Re: Programowanie uC - Pascal, czy C ?
    Od: Grzegorz Kurczyk <g...@c...slupsk.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 27.01.2014 21:55, Grzegorz Niemirowski pisze:
    > Grzegorz Kurczyk <g...@c...slupsk.pl> napisał(a):
    >> Zapis ze wskaźnikiem stosowałem w związku z optymalniejszym kodem
    >> wynikowym avr-gcc. Przy konstrukcji Buff[i++] umieszczonym w pętli w
    >> kodzie wynikowym za każdym razem był liczony wskaźnik do i-tego
    >> elementu tablicy. Czyli gdy np elementami tablicy Buff były zmienne
    >> typu long, to w pętli za każdym przejściem było liczone wskaźnik do
    >> elementu wg wzoru ptr = adres_bazowy_tablicy_Buff + i * 4; Przy
    >> zastosowaniu wskaźnika był on ustawiany na adres początku tablicy
    >> tylko raz przed pętlą, a potem wewnątrz pętli inkrementację wskaźnika
    >> załatwiał jeden rozkaz procesora ADIW Z, 4
    >> Pozdrawiam
    >> Grzegorz
    >
    > Hm, to ciekawe. Może to przypadłość konkretnej wersji avr-gcc lub
    > kwestia ustawień kompilacji. Z tego co wiem, współczesne kompilatory na
    > tyle radzą sobie z optymalizacją, że potrafią wygenerować tak samo
    > szybki kod dla dostępu wskaźnikowego jak i tablicowego.
    > http://stackoverflow.com/questions/2305770/efficienc
    y-arrays-vs-pointers
    >

    To nie tylko kwestia kompilatora ale i możliwości procesora. Przykład,
    który podałeś tyczy "dużych" procesorów posiadających rozbudowane tryby
    adresowania (32bitowy procesor z rodziny 686). On potrafi sobie policzyć
    wskaźnik do elementu tablicy w jednym rozkazie i tu faktycznie nie ma
    różnicy. W małym AVR-ku już tak słodko nie ma :-( Wyliczenie wskaźnika
    do elementu tablicy to już kilka rozkazów. A jak tablica ma elementy
    typu rekordowego o "dziwnej" liczbie bajtów w rekordzie, to w
    wyliczeniach wskaźnika pojawia się czasochłonne mnożenie.

    Pozdrawiam
    Grzegorz


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: