-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news.uzoreto.com!eternal-s
eptember.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: heby <h...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: C++ ośla łączka
Date: Thu, 16 Feb 2023 19:56:55 +0100
Organization: A noiseless patient Spider
Lines: 53
Message-ID: <tslu9v$3b1u7$1@dont-email.me>
References: <16qbnwht7z74n.8802zax2iioq$.dlg@40tude.net>
<63dad430$0$9589$65785112@news.neostrada.pl>
<trelrs$g0p$1$Janusz@news.chmurka.net>
<trgbkf$st9$1$PiotrGalka@news.chmurka.net>
<63dbd22e$0$9601$65785112@news.neostrada.pl>
<ts6rps$roo$1$PiotrGalka@news.chmurka.net>
<63e9f424$0$19625$65785112@news.neostrada.pl>
<tsg6eb$96a$1$PiotrGalka@news.chmurka.net> <tsgv8m$2kn8s$1@dont-email.me>
<tsiqth$55n$1$PiotrGalka@news.chmurka.net> <tsj9if$2v62r$1@dont-email.me>
<a...@n...neostrada.pl>
<tsjl9d$30gq5$1@dont-email.me>
<63ed6483$0$9597$65785112@news.neostrada.pl>
<tski4a$365ef$1@dont-email.me>
<63ee1784$0$9589$65785112@news.neostrada.pl>
<tsl8hv$38gns$1@dont-email.me>
<63ee3c75$0$19611$65785112@news.neostrada.pl>
<tsln7m$3a7hn$1@dont-email.me>
<63ee71e2$0$19606$65785112@news.neostrada.pl>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 16 Feb 2023 18:57:03 -0000 (UTC)
Injection-Info: reader01.eternal-september.org;
posting-host="6753f9a9e6e28e5f7a0b71608edb3765";
logging-data="3508167";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX18NklTJ4UB/D5e/muOKtR4Y"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.7.2
Cancel-Lock: sha1:wsUrYgRIGHbuEhPySbP7sGcQkrU=
In-Reply-To: <63ee71e2$0$19606$65785112@news.neostrada.pl>
Content-Language: en-US
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778378
[ ukryj nagłówki ]On 16/02/2023 19:11, Grzegorz Niemirowski wrote:
>> Przecież zlinkowałem arykuł, w którym masz jasno wypisane powody i
>> ostrzeżenie.
> I w sumie jako rozwiązanie podają std::atomic. Ciekawe czy atomic z C
> też może być.
A co broni użyć C++, szczególnie na nowej arch? Nawet na AVR to zmiana 2
literek na dwa + w nazwie kompilatora i strata bodaj 4 bajtów na
dodatkową sekcję, którą można łatwo usunąć, jak ktoś sępi. Więc na arch,
gdzie atomic ma implementację, to powinno kosztować asymptotyczne zero.
>>> Cały czas chodzi o programy bare metal, bez schedulera.
>> Przerwania to multitasking, taki sam jak w schedulerze preemptive.
> Chodziło o to, że jak jest scheduler to zwykle też masz pod ręką
> semafory, kolejki itd.
Ich istnienie jest rozdzielne. Do tego stopnia, że trafiłem kiedyś na
urządzenie o nazwie "Tiger" zawierajace "TigerBASIC", taki panel do
kontroli automatyki, z wyświetlaczem graficznym. Gdzie rozdział
poświęcony miltithread miał opis 1 funkcji tworzącej wątek i kończył się
na "należy zwrócić uwagę na dostępie do zmiennych w innych wątkach". I
wsio na temat synchronizacji.
>> W pierdołowatych małych cpu zapewne tak. W dużych absolutnie nie.
>> Pisząc relatywnie duże programy, o dużej złożoności, z masą wątków i
>> wymianą danych między nimi, nie miałem okazji użyć volatile ani razu.
>> Z ciekawostek: w poważnych firmach słowo volatile jest wyłapywane
>> przez linter kodu i wymaga zgody komisji za zielonym suknem.
> Miałem właśnie na myśli MCU.
A ja wskazuje, że granica między dużym systemem i uC/MCU zaciera się
coraz szybciej. Mam przed sobą pdf dwurdzeniowego ARM za normalne $. Do
migania diodą nadaje się tak samo jak AVR. Może nawet konsumuje mniej
energii, nie zdzwiłbym się.
>> Niezliczona ilość postów/stron wyjasnia, dlaczego volatile nie jest
>> tym, o czym myślisz, że do czego jest.
>> Serio, nie zauważyłes?
> Ale cały czas mi chodzi o ten problem cache. Wiem dobrze, że volatile
> nie rozwiązuje zacytowanych wyżej problemów.
volatile źle rozwiązuje równiez "ten problem z cache" w sensie
optymalizacji. Bo zabrania *zawsze* optymalizacji danej zmiennej,a nie
tylko w miejscu, gdzie jest błędem logicznym.
> Zgadza się. Niemniej dlatego wspomniałem, że problem dotyczy MCU.
MCU za chwile będą takie jak duże systemy. Duże systemy idą w szerokość
(ilośc rdzeni) to samo czeka uC. Prawdę mówiąc bardzo mi szkoda, że
Parallax Propeller nie dał rady stać się popularnym, to był bardzo
interesujacy CPU do aplikacji real-time.
Następne wpisy z tego wątku
- 16.02.23 19:57 heby
- 17.02.23 02:28 JDX
- 17.02.23 02:35 JDX
- 17.02.23 07:17 Marek
- 17.02.23 09:18 heby
- 17.02.23 09:30 J.F
- 17.02.23 10:17 JDX
- 17.02.23 10:28 heby
- 17.02.23 10:41 JDX
- 17.02.23 14:31 J.F
- 17.02.23 14:51 heby
- 17.02.23 16:21 Grzegorz Niemirowski
- 17.02.23 18:56 heby
- 17.02.23 20:20 Piotr Gałka
- 17.02.23 20:23 heby
Najnowsze wątki z tej grupy
- Rapsberry Pi i synchronizacja plików
- RCD 300 mA
- rpi i moduł przekaźników
- Falownik do pompy CO
- Lampa ogrodowa rozłączała różnicówkę
- Inteligentne oświetlenie schodów
- Pytanie do Użytkownika
- Emanuel kiedyś szukał gotowca do chłodzenia leków
- Sprzęty z Lidl-a
- idzie nowe
- Wybuchające pagery
- Jak shakować windę
- Sterowanie bezprzewodowe do wbudowania
- NC vs NO
- Jak dzięki mojemu pomysłowi amerykańce z Google przyspieszyli TV
Najnowsze wątki
- 2024-09-30 Rozprawa zdalna brak komputera
- 2024-09-30 Zielona Góra => Spedytor międzynarodowy <=
- 2024-09-30 Hackowanie SS7
- 2024-09-30 Seba strikes back
- 2024-09-30 MĂźnchen => DevOps Engineeer (Azure) <=
- 2024-09-30 MĂźnchen => DevOps Engineer (Azure) <=
- 2024-09-30 Gdańsk => Frontend Developer (Angular area) <=
- 2024-09-30 Warszawa => Spedytor Międzynarodowy <=
- 2024-09-30 Marki => Senior PHP Symfony Developer <=
- 2024-09-30 Warszawa => Technical Leader (Java Background) <=
- 2024-09-30 Warszawa => Key Account Manager <=
- 2024-09-30 Warszawa => Key Account Manager <=
- 2024-09-30 Białystok => Full Stack .Net Engineer <=
- 2024-09-30 Kraków => Ruby Backend Developer <=
- 2024-09-30 dziki wschod