-
Data: 2019-02-14 13:11:16
Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
Od: "J.F." <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Queequeg" napisał w wiadomości grup
dyskusyjnych:c6cda8fa-82c3-48a0-a47d-aba030a5831b@tr
ust.no1...
J.F. <j...@p...onet.pl> wrote:
>> Cos w tym jest, ale z drugiej strony - skoro uzywamy volatile, to
>> wiadomo ze zmienna moze sie zmieniac w przerwaniach czy w inny
>> niekontrolowany sposob, i co - kompilator to olewa ?
>Ale co kompilator może zrobić, jak sam procesor nie obsługuje
>atomicznego
>dostępu do tej zmiennej (bo np. jest 8-bitowy, a zmienna 16-bitowa)?
To samo, co programista ma zrobic :-)
>Zresztą nawet w przypadku zmiennych o rozmiarze równym szerokości
>magistrali danych nie ma gwarancji chociażby w przypadku operacji
>read-modify-write. Przykład:
>#v+ test.c
>volatile int i;
>void fn(void) { ++i; }
>#v-
>#v+ test.s
>ldr r3, [r2] ; odczyt zmiennej z pamięci do rejestru r3
>add r3, r3, #1 ; dodanie do rejestru r3 liczby 1
>str r3, [r2] ; zapis rejestru r3 z powrotem do pamięci
>#v-
>Zmienna może się zmienić między każdą z tych instrukcji.
Cos w tym jest.
>> No coz, przejsc na ARM i zapomniec o problemie ...
>Czemu? Co ma do tego ARM? Chodzi o szerokość magistrali danych? To
>rozwiązuje tylko jeden problem,
Tak, problemu z int nie bedzie :-)
>ale inne (chociażby ten pierwszy przykład wyżej) pozostają.
Ciezkie jest zycie programisty.
I co sie dziwic, ze MS w C# zrobil stringi niemodyfikowalne ...
J.
Następne wpisy z tego wątku
- 14.02.19 13:15 J.F.
- 14.02.19 13:25 Queequeg
- 14.02.19 13:36 Grzegorz Niemirowski
- 14.02.19 13:52 a...@m...uni.wroc.pl
- 14.02.19 13:59 Queequeg
- 14.02.19 14:01 Grzegorz Niemirowski
- 14.02.19 14:02 Queequeg
- 14.02.19 14:04 Queequeg
- 14.02.19 14:07 Queequeg
- 14.02.19 17:03 J.F.
- 14.02.19 17:10 J.F.
- 14.02.19 17:14 Queequeg
- 14.02.19 18:27 J.F.
- 14.02.19 19:42 Grzegorz Niemirowski
- 14.02.19 22:13 Janusz
Najnowsze wątki z tej grupy
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
Najnowsze wątki
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer PIS
- 2025-02-19 Ogrodzenie dla krów szkockich "Highland"
- 2025-02-19 Gdańsk => System Architect (background deweloperski w Java) <=
- 2025-02-19 Gdańsk => Solution Architect (Java background) <=
- 2025-02-19 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-19 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-19 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-19 Rzeszów => International Freight Forwarder <=
- 2025-02-19 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-19 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-02-19 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-19 Nigdy
- 2025-02-19 Katowice => Key Account Manager (ERP) <=