eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem lekko OT, ale w WinAVR ;-)Re: Problem lekko OT, ale w WinAVR ;-)
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
    sfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
    From: Grzegorz Kurczyk <g...@c...slupsk.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Problem lekko OT, ale w WinAVR ;-)
    Date: Sat, 13 Jun 2009 12:10:15 +0200
    Organization: TP - http://www.tp.pl/
    Lines: 36
    Message-ID: <h0vu25$dcr$1@atlantis.news.neostrada.pl>
    References: <h0qku7$a6o$1@atlantis.news.neostrada.pl>
    <h0ud45$219$1@atlantis.news.neostrada.pl> <h0udur$2j2d$1@news.mm.pl>
    <h0v0bq$jmg$1@nemesis.news.neostrada.pl>
    <h0vhtr$i32$1@atlantis.news.neostrada.pl> <h0vkgo$2cc7$1@news.mm.pl>
    NNTP-Posting-Host: control.slupsk.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.neostrada.pl 1244887942 13723 80.52.170.66 (13 Jun 2009
    10:12:22 GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Sat, 13 Jun 2009 10:12:22 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.8.1.21) Gecko/20090403
    SeaMonkey/1.1.16
    In-Reply-To: <h0vkgo$2cc7$1@news.mm.pl>
    X-Antivirus: avast! (VPS 090612-0, 2009-06-12), Outbound message
    X-Antivirus-Status: Clean
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:565325
    [ ukryj nagłówki ]

    Użytkownik Zbych napisał:
    >
    > Dlatego napisałem, że do takich rzeczy jak sekcje atomowe są makra
    > zdefiniowane w pliku atomic.h, a ty uparcie chcesz rzeźbić ręcznie
    > (pomijając przy tym barierę).

    Nie, no nie chcę nic robić uparcie. Sugestie Kolegi bardzo mi pomogły,
    za co serdecznie dziękuję. Akurat w moim przypadku wystarczyło volatile,
    ale gdybym nie spojrzał do .lss to żyłbym w błogiej nieświadomości będąc
    pewnym, że zablokowałem przerwania w krytycznej sekcji programu i
    zastanawiając się dlaczego program kiksuje raz na ruski miesiąc. Tym
    bardziej, że w poprzedniej wersji kompilatora kolejność działań była
    taka jak w źródłówce. Z biblioteki atomic.h nie miałem jeszcze okazji
    korzystać, ale widzę, że chyba najwyższy czas :-) Nie narzekam na
    WinAVR, bo to niezły kompilator, ale główny problem w tym, że program,
    który w danej wersji WinAVR bez problemu się kompilował i co
    najważniejsze działał poprawnie, w nowszej wywala błędy kompilacji (co
    nie jest problemem), ale co gorsza kompilacja przechodzi bezbłędnie,
    tylko program chodzi nie do końca tak jak powinien. Z tego powodu z dużą
    rezerwą podchodzę do nowych wersji kompilatora.
    Problem w tym skąd mam wiedzieć (poza "brutalnym" zajrzeniem do pliku
    .lss), w którym momencie muszę posiłkować się sztuczką typu ATOMIC_BLOCK
    lub czymś podobnym, bo kompilator może wygenerować kod, nie do końca
    zgodny z założeniami autora kodu źródłowego. W podanym wcześniej
    przykładzie w jednej procedurze było źle, a w następnej już dobrze i
    nijak nie mogę wydedukować z czego to wynika. W przypadku volatile
    sytuacja jest jasna, ale z tym sei to kompilator zrobił mi psikusa, bo
    jest to pierwszy taki przypadek. Przecież sekcji cli() {..} sei() używa
    się dość często. W większych programach mam ich dużo i to jest jak na
    razie jedyna funkcja, w której takie zjawisko mi wystąpiło (choć po tym
    kwiatku nie jestem już tego taki pewien i dla pewności skorzystam z rady
    Kolegi Zbycha i porobię klamerki ATOMIC_BLOK).


    Pozdrawiam i dziękuję za udział w dyskusji.
    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: