eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32F107 + lwIP + FreeRTOSRe: STM32F107 + lwIP + FreeRTOS
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.man.poznan.pl!newsfeed.pionier.net
    .pl!3.eu.feeder.erje.net!feeder.erje.net!feeds.phibee-telecom.net!newsreader4.n
    etcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!
    peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neos
    trada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neost
    rada.pl.POSTED!not-for-mail
    Date: Thu, 3 Nov 2022 15:02:37 +0100
    MIME-Version: 1.0
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
    Thunderbird/102.4.1
    Subject: Re: STM32F107 + lwIP + FreeRTOS
    Content-Language: pl
    Newsgroups: pl.misc.elektronika
    References: <6357a2b4$0$458$65785112@news.neostrada.pl>
    <6362d03b$0$558$65785112@news.neostrada.pl>
    <63635e39$0$451$65785112@news.neostrada.pl>
    <63636ede$0$563$65785112@news.neostrada.pl>
    From: JDX <j...@o...pl>
    Organization: N/A
    In-Reply-To: <63636ede$0$563$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 34
    Message-ID: <6363c9fd$0$549$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 94.42.46.224
    X-Trace: 1667484158 unt-rea-b-01.news.neostrada.pl 549 94.42.46.224:56316
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2674
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:775191
    [ ukryj nagłówki ]

    On 03.11.2022 08:33, Atlantis wrote:
    [...]
    > podobnego mechanizmu z binary semaphoirami, ale najwyraźniej robię coś
    > źle, bo po jego dodaniu mam dość mocny spadek wydajności - w tym
    > przypadku słyszalny.
    >
    Zwróć uwagę na to, że ,,sekcje krytyczne" obudowane muteksem/semaforem
    powinny być możliwie krótkie, aby wątki nie blokowały się na zbyt długo
    na tych muteksach/semaforach.

    > Na chwilę obecną przeszedł mi do głowy jeszcze pomysł, żeby zastosować
    > kolejkę wiadomości. Na zasadzie:
    >
    > Task I/O:
    > - Sprawdza stan kolejnych przycisków
    > - Jeśli wykryte zostanie naciśnięcie przycisku na kolejkę wysyłana jest
    > wiadomość z kodem operacji do wykonania
    >
    > Główny task:
    > - Cyklicznie wywołuje funkcję obsługującą maszynę stanów urządzenia
    > - Następnie pobiera wiadomość z kolejki i wykonuje odpowiadającą jej
    > operację, modyfikującą stan maszyny stanów.
    > - W kolejnym przebiegu maszyna będzie już obsługiwana w swoim nowym stanie.
    >
    > Dzięki temu task I/O nigdy nie będzie wywoływał funkcji modyfikujących
    > stan maszyny działającej w drugim tasku.
    Właśnie wynalazłeś przekazywanie wiadomości i kolejkę komunikatów. :-)
    https://en.wikipedia.org/wiki/Message_passing
    https://en.wikipedia.org/wiki/Message_queue

    To niezły pomysł, ale wydaje mi się, że czytanie kilku klawiszy i
    enkodera da się załatwić kilkoma współdzielonymi (globalnymi) zmiennymi
    obudowanymi muteksem bądź semaforem. Tak czy inaczej, synchronizacja
    musi być jakoś zapewniona.

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: