-
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).
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
Najnowsze wątki
- 2025-01-22 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-22 Warszawa => International Freight Forwarder <=
- 2025-01-22 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-21 Zgromadzenie użytkowników pojazdów :-)
- 2025-01-21 bateria na żądanie
- 2025-01-21 Warszawa => IT Business Analyst <=
- 2025-01-21 Warszawa => IT Assets Manager <=
- 2025-01-21 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=
- 2025-01-20 Białystok => Delphi Programmer <=
- 2025-01-20 Białystok => User Experience Designer <=
- 2025-01-20 Katowice => UX Designer <=
- 2025-01-20 Wrocław => Specjalista ds. Sprzedaży <=
- 2025-01-20 Białystok => Solution Architect (Java background) <=
- 2025-01-20 Szczecin => Senior Field Sales (system ERP) <=
- 2025-01-21 e-doręczenia