-
Data: 2011-02-10 18:35:49
Temat: Re: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
Od: Zbych <a...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2011-02-10 17:00, Michoo pisze:
> W dniu 10.02.2011 16:16, Zbych pisze:
>> Nie używaj cli i sei do robienia sekcji atomowych, te makra nie są
>> zabezpieczone przed optymalizacją i kompilator może zmienić kolejność
>> instrukcji (choć oczywiście nie musi).
> Chyba nie - definicja wyglądają tak:
> # define sei() __asm__ __volatile__ ("sei" ::)
> # define cli() __asm__ __volatile__ ("cli" ::)
>
> Co zabrania kompilatorowi zamiany kolejności ewaluacji wyrażeń.
volatile zabrania usunięcia, optymalizacji, ale nie zabroni przesunięcia
czegoś co jest pomiędzy sei i cli, czyli z kodu
cli();[coś];sei();
może wyjść:
cli();sei(); [coś];
Dodatkowo taka konstrukcja nie zmusza kompilatora do zapisania wartości
tymczasowych trzymanych w rejestrach do pamięci, więc może się okazać,
że zapis wielobajtowej zmiennej nastąpi już przy włączonych przerwaniach.
Przykłady można znaleźć na liście dyskusyjnej avr-gcc.
> Dziwne swoją drogą, że nie jest to zapisane na wszelki wypadek jako
> # define sei() __asm__ __volatile__ ("sei" :::"memory")
No właśnie o tę barierę na pamięci chodzi.
Następne wpisy z tego wątku
- 10.02.11 18:56 Zbych
- 10.02.11 20:56 Robbo
- 10.02.11 21:31 Michoo
- 11.02.11 07:36 Zbych
- 11.02.11 11:05 Robbo
- 11.02.11 11:43 Michoo
- 11.02.11 12:15 Zbych
- 11.02.11 12:22 Robbo
- 11.02.11 12:24 Zbych
- 11.02.11 12:33 Zbych
- 11.02.11 12:58 Robbo
- 11.02.11 13:09 Robbo
Najnowsze wątki z tej grupy
- stara idea nowe hardware
- Dzwonek gong z transformatorem
- espnow przerywa na jeziorze?
- 8080
- Portowanie CP/M
- radyjko
- Re: Basen i chłodzenie w w wentylacji mechanicznej
- Akumulatory VRLA
- ładowarka zmarła
- Podstawa bezpiecznikowa jako rozłącznik DC
- Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
Najnowsze wątki
- 2024-07-05 eSIM na czym polega
- 2024-07-15 Roaming poza unią
- 2024-07-16 Jak tanio dzwonic do Wielkiej Brytani?
- 2024-07-16 Dzień bez ICE
- 2024-07-15 Spalinówki płoną doszczętnie
- 2024-07-15 Pojemność akumulatora
- 2024-07-15 Elektryk8i dalej płoną.
- 2024-07-15 Motodziennik #284 NOWY MG HS z hybrydą oraz wraca FORD CAPRI (jako SUV)
- 2024-07-14 [FILM] SAMOCHODY ELEKTRYCZNE DO WIELKIE ŚCIEMA? TYLKO FAKTY!
- 2024-07-14 Znieczulica w narodzie
- 2024-07-13 Protect Your PC with IObit Malware Fighter Pro 11.3.0.1346 Multilingual
- 2024-07-13 Advanced SystemCare Pro 17.5.0.255: Complete Performance and Health Optimization
- 2024-07-15 stara idea nowe hardware
- 2024-07-14 Dzwonek gong z transformatorem
- 2024-07-14 espnow przerywa na jeziorze?