-
Data: 2011-01-31 12:25:23
Temat: Re: książka o programowniu AVR w C
Od: Piotr Gałka <p...@C...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
news:ii66p3$56t$1@news.onet.pl...
>W dniu 31.01.2011 10:11, Piotr Gałka pisze:
>> "Przecież tak nie można na AVR! Widać, że gość przeniósł się z 51 gdzie
>> tak było można. Facet użył pól bitowych do przekazywania flag między
>> programem a przerwaniami. Tego się nie da _dobrze_ zrealizować w
>> asemblerze AVR bo zmiana bitu wymaga dwu rozkazów i jak między nimi
>> przyjdzie przerwanie to ustawiona w przerwaniu flaga w tym samym
>> rejestrze zostanie skasowana pierwszym rozkazem po powrocie z
>> przerwania."
> Po pierwsze m.i. od tego jest możliwość zablokowania przerwań aby
> wykonywać operacje atomowe.
>
> Po drugie C (avr-gcc) udostępnia ładne makro po którym od razu widać, że w
> tym miejscu zachodzi synchronizacja:
> ATOMIC_BLOCK(ATOMIC_FORCEON)
> {
> flags |= 0b00001001;
> }
>
Ani nie czytałem tego kursu, ani nie pisałem nigdy nic pod gcc.
Przypuszczam, że w tym kursie było coś takiego:
struct {int a:1;int b:1;...}flags;
i potem zapisy typu: flags.a=1; które prawdopodobnie nie były w nic
robiącego z tego operację atomową ujęte.
O ile widząc flags|=1 można się spodziewać kilku rozkazów, o tyle widząc
flags.a=1 można mieć większe problemy, aby wpaść na to, że to może wymagać
otoczenia blokowaniem przerwań.
Tak z czystej ciekawości:
Czy takie makro patrzy co jest w jego wnętrzu i albo blokuje przerwania,
albo nie (jeśli wnętrze z natury jest operacją atomową) ?
P.G.
Następne wpisy z tego wątku
- 31.01.11 14:11 Marcin Wasilewski
- 31.01.11 14:30 Michoo
- 31.01.11 15:38 J.F.
- 31.01.11 16:22 identifikator: 20040501
- 31.01.11 17:00 Michoo
- 31.01.11 17:27 J.F.
- 31.01.11 19:39 Marcin Wasilewski
- 31.01.11 20:04 Sebastian Biały
- 31.01.11 20:13 kk
- 31.01.11 20:54 Sebastian Biały
- 31.01.11 21:20 kk
- 31.01.11 21:27 JDX
- 31.01.11 21:34 Marcin Wasilewski
- 31.01.11 21:40 JDX
- 31.01.11 23:17 RoMan Mandziejewicz
Najnowsze wątki z tej grupy
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
Najnowsze wątki
- 2025-12-27 pompa CO
- 2025-12-27 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]