-
Data: 2023-02-16 15:23:50
Temat: Re: C++ ośla łączka
Od: "Grzegorz Niemirowski" <g...@g...net> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]heby <h...@p...onet.pl> napisał(a):
> Tam, wszyscy programiści od volatile, wybiją sobie zęby o protokoły
> synchronizacji cache, out-of-order execution itd itp.
Ale ja nic nie mówiłem o cache procesora ani kolejności operacji. Chodzi o
problem jaki wprowadza kompilator optymalizując dostęp do zmiennej poprzez
przeniesienie jej z RAM-u do rejestru w jakimś fragmencie kodu. Żadne
bariery na to nie pomogą. Powszechnie problem ten rozwiązuje się stosując
volatile.
> Uwaga o volatile dotyczy *języka* C a nie implementacji tego na AVR.
To nie musi być AVR. Wspomniałem o nim, bo on nawet nie ma operacji do
barier jak np. ARM (DSB, DMB, ISB).
> Sam fakt użycia "przerwania" jest z definicji nieistniejącym bytem w C
Kogo to obchodzi? Jak na złość w prawie każdym procesorze są przerwania.
> PS. Zaznaczam, że nic nie pisałeś o AVR w poprzednim poście, wiec w
> ogólnym wypadku, volatile nie może i nie powinno być uzywane w celu
> synchronizacji zmiannych w przerwaniach. W szczególnym, kiedy znasz
> konkretną architekturę, być może.
A dlaczego nie powinno i co polecasz w zamian? Nie podałeś żadnego argumentu
przeciw volatile. Cały czas chodzi o programy bare metal, bez schedulera.
volatile jest powszechnie stosowanym oraz polecanym rozwiązaniem problemu
optymalizacji na MCU, o którym wspomniałem poprzednio, a doprecyzowałem na
początku tego posta, żeby było jasne o co chodzi. I jakoś w Internecie nie
widzę polemiki z tym polecaniem volatile, z wyjątkiem Twoim postów. Pomijam
oczywiście przypadki używania volatile do innych problemów, do których się
nie nadaje, jak atomowość.
Więc mamy kod:
int z = 0;
int main() {
while(!z);
return 0;
}
isr_handler() {
z = 1;
}
Przy kompilacji z -O0 nie ma problemu, przerwanie przerwie pętlę while. Przy
wyższej optymalizacji pętla może czytać kopię zmiennej i przez to nie
zauważyć jej modyfikacji. volatile łatwo i szybko usuwa ten problem. Mam
nadzieję, że teraz już jest wszystko jasne i w końcu dowiem się jakie
straszne efekty spowoduje tutaj wprowadzenie volatile oraz co jest lepszego.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
Następne wpisy z tego wątku
- 16.02.23 15:33 Piotr Gałka
- 16.02.23 15:37 J.F
- 16.02.23 16:05 Piotr Gałka
- 16.02.23 17:56 heby
- 16.02.23 18:01 heby
- 16.02.23 19:11 Grzegorz Niemirowski
- 16.02.23 19:22 Marek
- 16.02.23 19:27 Marek
- 16.02.23 19:56 heby
- 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
Najnowsze wątki z tej grupy
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
- Chińska Telefonia 6G - Chcą Nas Sterować Elektrycznie - Jak Kukiełki w Teatrze Lalek!!!
- RS-485 ale automatycznie dwukierunkowy
- Leżakujące SSD gubią po roku dane
- kolorowy e-paper
- Sterownik kotła CO praca PWM
- Jakie baterie A23 i LR44?
- OLED SSD1306 - degradacja?
- Który symulator AVR jest ,,prawilny"?
- Disk on Module, czym to odczytać?
- Pasta ochronna? Lutownicza?
- zagadka pneumatyczna
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
Najnowsze wątki
- 2025-12-07 Giełdy samochodowe
- 2025-12-07 Proces Brauna rusza 2025-12-08. Jak zostanie uzasadnione wyłączenie jawności procesu Największego Gaśnicowego?
- 2025-12-07 Re: Najgorszy język programowania
- 2025-12-07 Najgorszy język programowania
- 2025-12-07 #Motodziennik 358 - Czy ELEKTRYKI są jak AZBEST? Wyniki badań
- 2025-12-06 weto do ustawy o kryptowalutach
- 2025-12-06 Od nowego roku GOTÓWKA będzie jeszcze bardziej ATRAKCYJNA
- 2025-12-06 Ukraina jest bogata
- 2025-12-06 [OT] Kup!
- 2025-12-06 Laptop z miejscem na dwa dyski i 32 GiB DDR4
- 2025-12-05 podatek od marzeń
- 2025-12-05 Jewgienij Tkaczew czyli dobre imię Piłsudczykowskiej Sanacji trafi na wokandę? [Polska była państwem nazistowskim]
- 2025-12-05 Warszawa => Architekt rozwiązań (Workday) - Legal Systems <=
- 2025-12-05 Warszawa => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Serv
- 2025-12-05 Warszawa => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppo




Ile kosztują tanie mieszkania w polskich metropoliach?