eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32F107 + lwIP + FreeRTOSRe: STM32F107 + lwIP + FreeRTOS
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.n
    et!3.eu.feeder.erje.net!feeder.erje.net!newsreader4.netcologne.de!news.netcolog
    ne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highw
    inds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.n
    eostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mai
    l
    Date: Thu, 3 Nov 2022 07:22:49 +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>
    From: JDX <j...@o...pl>
    Organization: N/A
    In-Reply-To: <6362d03b$0$558$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 23
    Message-ID: <63635e39$0$451$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 94.42.46.224
    X-Trace: 1667456569 unt-rea-a-02.news.neostrada.pl 451 94.42.46.224:63452
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2507
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:775173
    [ ukryj nagłówki ]

    On 02.11.2022 21:16, Atlantis wrote:
    [...]
    > Teraz sprawdzanie przycisków ma miejsce w innym tasku niż obsługa
    > maszyny stanów. Domyślam się, że nie mogę tak po prostu w dowolnym
    > momencie z innego tasku zamknąć połączenia, sprawdzić albo zmienić stanu
    > maszyny stanów obsługującej odtwarzanie. Jaki jest najlepszy sposób na
    > upewnienie się, że obsługa przycisków nie wywoła żadnej waznej funkcji
    > zanim w innym tasku nie zakończy się wykonywać VS1003_handle()?
    >
    Poczytaj o mechanizmach synchronizacji w systemach wielowątkowych - nie
    ma znaczenia czy to FreeRTOS, Linux, Windows czy coś innego - podstawy
    są takie same, a API podobne. Na początek sprawdź hasła mutex (aka
    binary semaphore), semafor, condition(al) varialble, bariera (np.
    pthread_barrier, nie mylić z instrukcjami typu "memory barrier"
    dostępnymi w niektórych CPU/MCU bo to co innego, chociaż jedno z drugom
    jest powiązane). No i najważniejsze, to co leży u podstaw w/w pojęć -
    dowiedz się co to jest operacja atomowa; chociaż w przypadku
    programowania bare metal może być to temat trochę zaawansowany, to
    poczytaj też o typach _Atomic (C) i std::atomic (C++), a także popatrz
    jak ja się realizuje operacje atomowe na różnych platformach. Temat do
    dalszych czytanek to lock-free programming (aka non-blocking
    programming) - dosyć gorący temat ze względu na to, że wielordzeniowość
    zeszła już na poziom MCU (Raspberry Pi Pico, ESP32).

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: