eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikawinavr problemikRe: winavr problemik
  • Data: 2010-08-19 06:19:33
    Temat: Re: winavr problemik
    Od: shg <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 19 Sie, 05:53, "newxmega" <m...@m...mm> wrote:
    > Mam dużo "swich" -ów lub
    > if
    > elsif
    > elsif
    > ..
    >
    > tak po kilkadziesiąt.
    >
    > Co tu zrobić żeby winavr używał indirect jumpów zamiast zamieniał swich na
    > if wlsif.
    >
    > To bez sensu żeby robić
    > cpi stała
    > cpi stał
    >
    > i tak 60 razy.
    >
    > Mam małe procedurki, a indirecty by mi przyspieszyły kod.

    Tablice skoków są tworzone chyba tylko z bloków switch.
    Do tego wartości przy case muszą spełniać odpowiednie warunki, tzn.
    musi być ich dostatecznie dużo i muszą być ułożone po kolei (wartości
    jako zbiór, w kodzie już kolejność występowania jest dowolna).
    Jest gdzieś do tego jakaś reguła, ale nie jestem w stanie jej znaleźć.
    O ile pamiętam (ale to mogło być akurat w innym kompilatorze) to
    dopuszczalne są niewielkie dziury w wartościach, była na to jakaś
    matematyczna formułka, typu ilość wartości w jednym ciągu / szerokość
    zakresu > jakaś stała, do tego jeszcze musiała być odpowiednio duża
    ilość przypadków, ale to akurat u Ciebie nie jest problemem, to było
    raczej w okolicy 5. Jeżeli się zgadzało to switch był zamieniany na
    tablicę skoków.
    Coś znalazłem, może się przyda, nie za bardzo mam czas żeby
    przeczytać: http://ivoras.sharanet.org/papers/switch-complexity.
    pdf

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: