-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.neostrada.pl!a
tlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: "T.M.F." <t...@n...mp.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Problem lekko OT, ale w WinAVR ;-)
Date: Sun, 14 Jun 2009 14:20:34 -0400
Organization: TP - http://www.tp.pl/
Lines: 32
Message-ID: <h12qge$hbr$1@nemesis.news.neostrada.pl>
References: <h0qku7$a6o$1@atlantis.news.neostrada.pl>
<h0ud45$219$1@atlantis.news.neostrada.pl> <h0udur$2j2d$1@news.mm.pl>
<h0v0bq$jmg$1@nemesis.news.neostrada.pl>
<h0vhtr$i32$1@atlantis.news.neostrada.pl>
<h0voto$eke$1@nemesis.news.neostrada.pl>
<h0vvnn$q5t$1@nemesis.news.neostrada.pl>
<8...@4...com>
<h101gv$s44$1@nemesis.news.neostrada.pl>
<7...@4...com>
<h103jc$1c4$1@nemesis.news.neostrada.pl>
<6...@4...com>
<h11av0$ivi$1@nemesis.news.neostrada.pl>
<h12dpj$5vq$1@atlantis.news.neostrada.pl>
<h12j6a$hve$1@atlantis.news.neostrada.pl>
Reply-To: t...@n...mp.pl
NNTP-Posting-Host: dvi64.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.neostrada.pl 1244982606 17787 83.22.42.64 (14 Jun 2009 12:30:06
GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Sun, 14 Jun 2009 12:30:06 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513
Fedora/3.0-2.3.beta2.fc11 Thunderbird/3.0b2
In-Reply-To: <h12j6a$hve$1@atlantis.news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:565387
[ ukryj nagłówki ]>> Alez byla. Twoja zmienna jest typu int, czyli ma 2 bajty. AVR nie ma
>> instrukcji ladowania z pamieci 2 bajtow jednoczesnie, a wiec takie
>> przeslanie nie jest atomowe. Dlatego musisz okreslic ta zmienna jako
>> volatile i zapewnic atomowosc operacji przez blokowanie przerwan.
>> Zauwaz, ze gdyby uzyte przeslanie 16-bitowe bylo atomowe to blokowanie
>> przerwan w ogole nie byloby potrzebne.
>
> No dokładnie taki był mój tok rozumowania. Ponieważ pobranie zmiennej
> int wymaga dwóch rozkazów blokuję możliwość przerwania tej operacji
> przez inny wątek poprzedzając je rozkazem cli wstawionym "z palca". W
> momencie gry program staje się jednowątkowy trudno mówić o ulotności
> zmiennych.
Teoretycznie tak. Problem w tym, ze skad kompilator ma wiedziec, ze
wartosc zmiennej moze sie zmieniac poza glownym ciagiem instrukcji? Do
tego wlasnie sluzy volatile. Bez tego kompilator nic nie wie, ze cos
moze zmienic twoja zmienna np. w przerwaniu, w efekcie optymalizuje to
sobie jak uwaza za stosowne i z tego punktu widzenia umiejscowienie cli
w stosunu do pobrania zmiennej jest bez znaczenia.
> P.S. Choroba... w WinAVR_20071221 program wynikowy zajmował 15023 bajty,
> a po skompilowaniu w WinAVR_20090313 wyszło już 16154. Całe szczęście,
> że to nie ATmega16 ;-)
Zapewne problem z bardziej agresywnym inlinowaniem funkcji. Mozna to
wylaczyc.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-25 Drastycznie rośnie import stali - w hucie w Dąbrowie Górniczej zostanie wygaszony wielki piec
- 2025-07-25 Drastycznie rośnie import stali - w hucie w Dąbrowie Górniczej zostanie wygaszony wielki piec
- 2025-07-25 I kolejny inżynier...
- 2025-07-25 Kobiety, bójcie się inżynierów...
- 2025-07-25 Warszawa => Konsultant Wiodący SAP PP <=
- 2025-07-25 Re: Brawo !!! Osy chronione w Niemczech. Za usunięcie gniazda grozi mandat
- 2025-07-25 cudzoziemiec bez biletu
- 2025-07-25 Gdynia => Sales Executive / KAM <=
- 2025-07-25 Inżynierzy z prawomocnym...
- 2025-07-25 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-25 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-25 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-25 Skrobanie
- 2025-07-25 Lublin => Konsultant ds. Wdrożeń ERP (moduł FK) <=
- 2025-07-25 Warszawa => Senior Frontend Developer (React + React Native) <=