-
Data: 2009-06-13 07:44:28
Temat: Re: Problem lekko OT, ale w WinAVR ;-)
Od: J.F. <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sat, 13 Jun 2009 03:35:54 +0200, Grzegorz Kurczyk wrote:
>Pamiętam, że jakaś starsza wersja (chyba z 2006) kompilowała to bez
>przestawiania. Funkcja jest z biblioteki, którą napisałem dawno temu i
>sprawdzałem kod wynikowy. W wersji WinAVR20090313 faktycznie pomogło
>volatile przy definicji wskaźnika int *pEncoderValue. Zaskoczyło mnie,
>że volatile może być tu przydatne, bo jednak bardziej służy ono do
>lokalnego wyłączenia optymalizacji dotyczącej danej zmiennej, a nie do
>zmiany kolejności operacji nie mających nic wspólnego z tą zmienną.
Volatile nie sluzy do optymalizowania, tylko mowi kompilatorowi ze
zmienna moze sie zmienic w dowolnym momencie. W zwiazku z czym nie
wolno mu optymalizowac kodu zakladajac ze sie nie zmienia.
Bo jak zalozyc ze nie zmienia sie w przerwaniach/samoczynnie, to
kompilator moze przeprowadzic bardzo gleboka optymalizacje - np
zalozyc ze zmienna jest zawsze 0 i zlikwidowac caly program.
>Z drugiej strony taka zmiana sekwencji rozkazów sterujących przez
>kompilator wydaje mi się trochę dziwna, bo w pewnych sytuacjach ma ona
>wpływ na wartość obliczeń
Programisci sa przed tym wyraznie ostrzegani, ze program moze to
zrobic, i maja stosownie pisac program.
Albo rybki albo akwarium - albo efektywny program, albo robiacy
dokladnie to co programista zapisal :-)
>(właśnie aby tego uniknąć blokowałem
>przerwania). Idąc tym tropem kompilator mógłby "dojść do wniosku", że
>sekwencję:
>sbi(PORTB, 1);
>sbi(PORTB, 2);
>sbi(PORTB, 3);
>można zamienić na:
>sbi(PORTB, 3);
>sbi(PORTB, 2);
>sbi(PORTB, 1);
Tak to nie, bo to jednak i operacja specjalna i taka "wyjsciowa",
ale juz kolejnosc odczytow z portow moglby przestawic.
J.
Następne wpisy z tego wątku
- 13.06.09 14:35 T.M.F.
- 13.06.09 14:36 T.M.F.
- 13.06.09 14:37 T.M.F.
- 13.06.09 10:10 Grzegorz Kurczyk
- 13.06.09 10:10 Zbych
- 13.06.09 10:18 Zbych
- 13.06.09 10:31 Grzegorz Kurczyk
- 13.06.09 10:34 Grzegorz Kurczyk
- 13.06.09 10:35 J.F.
- 13.06.09 11:01 Grzegorz Kurczyk
- 13.06.09 11:24 J.F.
- 13.06.09 11:37 Grzegorz Kurczyk
- 13.06.09 17:48 T.M.F.
- 13.06.09 12:17 Grzegorz Kurczyk
- 13.06.09 13:09 J.F.
Najnowsze wątki z tej grupy
- [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- NxtPaper
- Programiści nie przestają zadziwiać świat
- Długi kabel zasilający a na końcu procek
- Dlaczego nam nie idzie
- Co czujnik to inna temperatura
- Jak naprawić pilota
- Dlaczego TMP wer. 2.0 nie może być sprzedawany jako patyk USB lub karta PCIe 1x?!?
- produkcja w UE
- Pamięć SRAM nie działa z Z80182
- plyta indukcyjna - naprawa
- założyłem kamerę
- syrenki alarmów
- Czym obecnie programuje się EPROM-y?
- zagadka sieciowa
Najnowsze wątki
- 2025-09-11 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-09-11 Warszawa => Dyrektor IT <=
- 2025-09-11 Wypadek w Chrzanowie. Czas na zmianę w Ustawie?
- 2025-09-11 Własny dzwonek
- 2025-09-11 Lublin => Delphi Programmer <=
- 2025-09-11 Lublin => Programista Delphi <=
- 2025-09-11 Komisja sejmowa odrzuca petycję ws. obowiązkowych kanałów RSS na stronach podmiotów publicznych
- 2025-09-11 Komisja sejmowa odrzuca petycję ws. obowiązkowych kanałów RSS na stronach podmiotów publicznych
- 2025-09-10 [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- 2025-09-10 [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- 2025-09-10 [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- 2025-09-10 kol. sukces po polsku: "Samurai Labs. Technologia do zapobiegania samobójstwom"
- 2025-09-10 Donald Trump ma za sobą najbardziej dochodowy rok w swoim życiu.
- 2025-09-10 kol. sukces po polsku: "Samurai Labs. Technologia do zapobiegania samobójstwom"
- 2025-09-10 Donald Trump ma za sobą najbardziej dochodowy rok w swoim życiu.