eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaZagwozdka w C Keil.Re: Zagwozdka w C Keil - wyjaśnienie.
  • Data: 2019-02-13 23:01:55
    Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
    Od: q...@t...no1 (Queequeg) szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Janusz <j...@o...pl> wrote:

    >> Wbrew intuicji -- nie :) Modyfikator `volatile` oznacza tylko tyle, że
    >> kompilator nie może robić założeń co do zawartości zmiennej opatrzonej tym
    >> modyfikatorem, bo zmienna może zmienić wartość poza ścieżką wykonania (np.
    >> jest to sprzętowy rejestr, lub inny wątek ją modyfikuje, lub właśnie
    >> przerwanie). `volatile` nie oznacza, że kompilator gwarantuje atomiczny
    >> dostęp do zmiennej (czyli że wyłączy wszystko inne, co może zmienić jej
    >> wartość w trakcie dostępu -- czy to wątki, czy przerwania, czy zewnętrzny
    >> sprzęt).
    > G..o prawda.

    A co konkretnie?

    >> AVR ma to rozwiązane w ten sposób:
    >> https://www.nongnu.org/avr-libc/user-manual/group__u
    til__atomic.html
    > Mylisz pojęcia, atomic blok i voltaile to są zupełnie dwie różne sprawy.

    Nie mylę, może nieprecyzyjnie się wyraziłem. AVR ma wspomniane mechanizmy,
    których programista może użyć, jeśli interesuje go atomiczny dostęp lub
    tak naprawdę jakakolwiek inna sekcja krytyczna.

    > jakbyś zerknął do kodu to byś zobaczył że dla volatile kompilator
    > nigdy nie robi atomic bloków, to musi programista w kodzie
    > zrobić.

    Tak (i prawidłowo), o tym właśnie piszę.

    --
    Eksperymentalnie: http://facebook.com/groups/pl.misc.elektronika

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: