- 
Data: 2009-06-13 17:48:18
 Temat: Re: Problem lekko OT, ale w WinAVR ;-)
 Od: "T.M.F." <t...@n...mp.pl> szukaj wiadomości tego autora
 [ pokaż wszystkie nagłówki ]W dniu 13.06.2009 06:10, Grzegorz Kurczyk pisze: 
 > Użytkownik Zbych napisał:
 >>
 >> Dlatego napisałem, że do takich rzeczy jak sekcje atomowe są makra
 >> zdefiniowane w pliku atomic.h, a ty uparcie chcesz rzeźbić ręcznie
 >> (pomijając przy tym barierę).
 >
 > Nie, no nie chcę nic robić uparcie. Sugestie Kolegi bardzo mi pomogły,
 > za co serdecznie dziękuję. Akurat w moim przypadku wystarczyło volatile,
 > ale gdybym nie spojrzał do .lss to żyłbym w błogiej nieświadomości będąc
 > pewnym, że zablokowałem przerwania w krytycznej sekcji programu i
 > zastanawiając się dlaczego program kiksuje raz na ruski miesiąc. Tym
 > bardziej, że w poprzedniej wersji kompilatora kolejność działań była
 > taka jak w źródłówce. Z biblioteki atomic.h nie miałem jeszcze okazji
 > korzystać, ale widzę, że chyba najwyższy czas :-) Nie narzekam na
 > WinAVR, bo to niezły kompilator, ale główny problem w tym, że program,
 > który w danej wersji WinAVR bez problemu się kompilował i co
 > najważniejsze działał poprawnie, w nowszej wywala błędy kompilacji (co
 > nie jest problemem), ale co gorsza kompilacja przechodzi bezbłędnie,
 > tylko program chodzi nie do końca tak jak powinien. Z tego powodu z dużą
 > rezerwą podchodzę do nowych wersji kompilatora.
 > Problem w tym skąd mam wiedzieć (poza "brutalnym" zajrzeniem do pliku
 > .lss), w którym momencie muszę posiłkować się sztuczką typu ATOMIC_BLOCK
 > lub czymś podobnym, bo kompilator może wygenerować kod, nie do końca
 > zgodny z założeniami autora kodu źródłowego. W podanym wcześniej
 > przykładzie w jednej procedurze było źle, a w następnej już dobrze i
 > nijak nie mogę wydedukować z czego to wynika. W przypadku volatile
 > sytuacja jest jasna, ale z tym sei to kompilator zrobił mi psikusa, bo
 > jest to pierwszy taki przypadek. Przecież sekcji cli() {..} sei() używa
 > się dość często. W większych programach mam ich dużo i to jest jak na
 > razie jedyna funkcja, w której takie zjawisko mi wystąpiło (choć po tym
 > kwiatku nie jestem już tego taki pewien i dla pewności skorzystam z rady
 > Kolegi Zbycha i porobię klamerki ATOMIC_BLOK).
 
 To nie jest tak jak piszesz. W twoim przykladzie kompilator zachowal sie
 zupelnie poprawnie. Zauwaz, ze nie podales nigdzie, ze pEncoderValue
 jest volatile, w efekcie kompilator slusznie uznal, ze wartosc tej
 zmiennej nie moze sie zmienic nigdzie poza aktualnie kompilowana sekcja,
 a wiec miejsce gdzie nastapi przypisanie:
 int e = *pEncoderValue;
 jest zupelnie dowolne. W koncu skoro nic w miedzyczasie nie modyfikuje
 pEncoderValue to umieszczanie tego w sekcji krytycznej nie ma sensu i
 kompilator sobie zoptymalizowal to tak jak mu pasowalo. Dopiero
 okreslenie tej zmiennej jako volatile mowi kompilatorowi, ze z ta
 zmienna trzeba uwazac i nie mozna sobie dowolnie jej przekladac.
 Z kolei jesli pEncoderValue jest modyfikowane poza procedura, ktora
 pokazales np. w jakims przerwaniu to okreslenie tej zmiennej jako
 volatile jest obowiazkowe! Inaczej masz efekty takie jak pokazales. Co
 wiecej gdybys dalej cops robil z ta zmienna w swojej procedurze to
 kompilator jej pewnie ponownie by nie ladowal, czyli mialbys kolejne
 dziwne bledy. Ale to ciagle twoja wina i nie ma co zwalac na gcc.
 
 
 
 --
 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
- 13.06.09 12:17 Grzegorz Kurczyk
- 13.06.09 13:09 J.F.
- 13.06.09 22:49 Grzegorz Kurczyk
- 14.06.09 14:51 T.M.F.
- 14.06.09 09:34 Zbych
- 14.06.09 10:23 Grzegorz Kurczyk
- 14.06.09 10:46 Grzegorz Kurczyk
- 14.06.09 18:20 T.M.F.
- 14.06.09 18:23 T.M.F.
- 14.06.09 12:35 Zbych
- 15.06.09 02:35 T.M.F.
Najnowsze wątki z tej grupy
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
- Co oni mierzą miernikiem
- 40 lat OrCAD-a
- Multimetr z bluetooth
- Ciekawa mapka z BTS-ami
Najnowsze wątki
- 2025-10-30 Warszawa => Lead SAP PP Consultant <=
- 2025-10-30 Poznań => Konsultant SAP HCM <=
- 2025-10-30 Warszawa => Junior Rekruter <=
- 2025-10-30 Warszawa => Senior SAP Consultant - PP area <=
- 2025-10-30 Zakrzewo => SAP HCM Consultant <=
- 2025-10-30 Gang przestępców napadających przestępców już rozbity! [CBŚP,media,prawny humor]
- 2025-10-30 Kraków => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu
- 2025-10-30 Kraków => Production Coordinator / Representant Product Dev <=
- 2025-10-30 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-10-29 szablon do pasty DIY
- 2025-10-29 Głośnik potrzebny
- 2025-10-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-10-29 Rzeszów => International Freight Forwarder <=
- 2025-10-29 Białystok => Gen AI Engineer <=
- 2025-10-29 Warszawa => Fullstack PHP Developer <=




![Skuteczny artykuł sponsorowany - jak napisać i gdzie publikować? [© Tierney - Fotolia.com] Skuteczny artykuł sponsorowany - jak napisać i gdzie publikować?](https://s3.egospodarka.pl/grafika2/artykul-sponsorowany/Skuteczny-artykul-sponsorowany-jak-napisac-i-gdzie-publikowac-216067-150x100crop.jpg) 
![Kiedy wysłać mailing? Jaki dzień tygodnia i godziny są najlepsze [© ra2 studio - fotolia.com] Kiedy wysłać mailing? Jaki dzień tygodnia i godziny są najlepsze](https://s3.egospodarka.pl/grafika2/mailing/Kiedy-wyslac-mailing-Jaki-dzien-tygodnia-i-godziny-sa-najlepsze-223622-150x100crop.jpg) 
![Najtańsze pożyczki pozabankowe - ranking [© Daniel Krasoń - Fotolia.com] Najtańsze pożyczki pozabankowe - ranking](https://s3.egospodarka.pl/grafika2/pozyczki-pozabankowe/Najtansze-pozyczki-pozabankowe-ranking-212702-150x100crop.jpg) 
![Od 2025 r. zmiany m.in. w składkach ZUS, składce zdrowotnej, podatku VAT i podatku od nieruchomości. Co warto wiedzieć już teraz? [© ksushsh - Fotolia.com] Od 2025 r. zmiany m.in. w składkach ZUS, składce zdrowotnej, podatku VAT i podatku od nieruchomości. Co warto wiedzieć już teraz?](https://s3.egospodarka.pl/grafika2/skladki-ZUS/Od-2025-r-zmiany-m-in-w-skladkach-ZUS-skladce-zdrowotnej-podatku-VAT-i-podatku-od-nieruchomosci-Co-warto-wiedziec-juz-teraz-262291-150x100crop.jpg) 
![Od września deweloperzy pokażą pełne ceny mieszkań. Czy na pewno? [© pixabay.com] Od września deweloperzy pokażą pełne ceny mieszkań. Czy na pewno? [© pixabay.com]](https://s3.egospodarka.pl/grafika2/ceny-mieszkan/Od-wrzesnia-deweloperzy-pokaza-pelne-ceny-mieszkan-Czy-na-pewno-268578-50x33crop.png) Od września deweloperzy pokażą pełne ceny mieszkań. Czy na pewno?
Od września deweloperzy pokażą pełne ceny mieszkań. Czy na pewno? 
 
 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 
 
 
 
 


