RTV forum PL | NewsGroups PL

Zastosowanie słowa kluczowego volatile w programowaniu z użyciem win-avr

[avrgcc] do czego służy volatile?

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zastosowanie słowa kluczowego volatile w programowaniu z użyciem win-avr

identyfikator: 20040501
Guest

Sun Aug 12, 2007 11:12 am   



szukam informacji których nie znalazłem w dokumentacji do
win-avr, czy ktoś może mi wyjaśnić do czego używa się
volatile?

identyfikator: 20040501
Guest

Sun Aug 12, 2007 11:13 am   



jakby ktoś znał inne haczyki w temacie winavr to też proszę
o informacje - do pdfa z avrlibc na szczęście dotarłem ;o)

Wiktor S.
Guest

Sun Aug 12, 2007 12:39 pm   



Quote:
szukam informacji których nie znalazłem w dokumentacji do
win-avr, czy ktoś może mi wyjaśnić do czego używa się
volatile?

Zapewne do tego samego co w standardzie C, poszukaj w góglach...

--
Azarien

Bogdan G
Guest

Sun Aug 12, 2007 12:46 pm   



Quote:
szukam informacji których nie znalazłem w dokumentacji do win-avr, czy
ktoś może mi wyjaśnić do czego używa się volatile?

Bo to jest nie win-avr ale ANSI C. Zmienna ulotna, czyli taka, która może
zmienić w każdej chwili swoją wartość.
Wyobraź sobie fragment:

w=1;
while (w) do {};

Jeśli zmienna w nie będzie volatile wówczas kompilator najprawdopodobniej
zoptymalizuje kod do bezwarunkowej pętli nieskończonej.
Jeśli jest volatile wówczas nie może tego zrobić, i będzie sprawdzał warunek
w każdym przejściu pętli.
Ot i cała różnica.

Żebyś nie musiał zadawać drugiego pytania to odpowiadam: zmienna w może
zmienić się w przerwaniu.

klosso
Guest

Sun Aug 12, 2007 1:40 pm   



Bogdan G napisał(a):
Quote:
szukam informacji których nie znalazłem w dokumentacji do win-avr, czy
ktoś może mi wyjaśnić do czego używa się volatile?

Bo to jest nie win-avr ale ANSI C. Zmienna ulotna, czyli taka, która może
zmienić w każdej chwili swoją wartość.
Wyobraź sobie fragment:

w=1;
while (w) do {};

Jeśli zmienna w nie będzie volatile wówczas kompilator najprawdopodobniej
zoptymalizuje kod do bezwarunkowej pętli nieskończonej.
Jeśli jest volatile wówczas nie może tego zrobić, i będzie sprawdzał warunek
w każdym przejściu pętli.
Ot i cała różnica.

Żebyś nie musiał zadawać drugiego pytania to odpowiadam: zmienna w może
zmienić się w przerwaniu.


....tudzież też wszystkie rejestry zmieniane z "zewnątrz" których

kompilator nie może "przewidzieć" np. porty itd.

identyfikator: 20040501
Guest

Sun Aug 12, 2007 5:14 pm   



mam jeszcze pytanie, zainstalowałem sobie WinAVR, później
AVR Studio 4.13, napisałem hello world! w AVR studio, dałem
build i się skompilowało - czego nie rozumiem, czy coś
trzeba konfigurować, żeby można było kompilować i symulować
programy w C w AVR Studio?

identyfikator: 20040501
Guest

Sun Aug 12, 2007 5:17 pm   



i jeszcze jedno (wiem, że laickie) jak się symuluje w AVR
studio?

Tomasz Pyra
Guest

Sun Aug 12, 2007 9:53 pm   



identyfikator: 20040501 napisał(a):
Quote:
szukam informacji których nie znalazłem w dokumentacji do win-avr, czy
ktoś może mi wyjaśnić do czego używa się volatile?

Wyłącza mechanizmy optymalizacji ilości dostępów do pamięci w stosunku
do tej zmiennej.

Jeżeli przy deklaracji użyjesz 'volatile', za każdym użyciem zmiennej,
jej wartość będzie pobierana z pamięci i po każdym użyciu wartość będzie
do pamięci zapisywana.

Gdybyś nie użył volatile, kompilator mógłby zoptymalizować ilość
dostępów do pamięci i przez jakiś czas przechować wartość zmiennej w
rejestrze.
Często kompilator wykonuje taką optymalizację w stosunku do liczników
pętli, lub w innych przypadkach gdy wykonujesz wiele działań na jednej
zmiennej.

Volatile używa się tam, gdzie istnieje możliwość że "nagle" wartość
zmiennej będzie pobierał (lub zapisywał) inny wątek lub procedura
obsługi przerwania, a ważne jest żeby wartość była zawsze aktualna.

identyfikator: 20040501
Guest

Mon Aug 13, 2007 6:29 pm   



czy możecie mi jeszcze powiedzieć jak wygenerować plik lst z
kodem assemblerowym programu? w AVR Studio zintegrowanym z
WinAVR oczywiście.

elektroda NewsGroups Forum Index - Elektronika Polska - Zastosowanie słowa kluczowego volatile w programowaniu z użyciem win-avr

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map