Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   176 / 176
(#) vargham válasza sdrlab hozzászólására (») Kedd, 19:11 /
 
A volatile annyit mond a compilernek, hogy a változó tartalma megváltozhat két elérés között akkor is, ha az adott kódban nem változtat rajta semmi. Ezért mindig az adott címen éri el.
Tipikus esete ennek, amikor valami megszakíthatja a kód futását, például interrupt handler vagy OS esetén másik task. Ahogy fentebb írtam a cache egy transzparens hardver, az ellen nem véd.
Harvard architektúra esetén ez annyival bonyolódik, hogy a programkód és az adatok külön memóriában (buszon) vannak és ha van cache, az sem közös. Mikrokontrollerek esetén a konstans adatok is a programkóddal együtt a flashben tárolódnak, hogy ne vesszenek el. Ezért ott bevett dolog, hogy bekapcsoláskor ezeket a konstansokat beolvassa a RAM-ba, ahol a többi adat is van, és soha többé nem nézi meg őket a flashban. Általában speciális flash elérési utasításokkal lehet rávenni a CPU-t, hogy ott keresse midnen egyes alkalommal az adatot. A volatile ebben sem segít.
(#) sdrlab válasza vargham hozzászólására (») Kedd, 19:22 /
 
Idézet:
„Általában speciális flash elérési utasításokkal lehet rávenni a CPU-t, hogy ott keresse midnen egyes alkalommal az adatot. A volatile ebben sem segí”

Akkor ezt beszéld meg a fordítókkal is, hogy eszerint működjenek, mert amikkel nekem dolgom volt, azok konzekvensen úgy működtek, ahogy már leírtam!!
Amúgy örülök, hogy begugliztad magadnak a leírásokat, és azokat adod itt elő egy az egyben, ezt más is meg tudja tenni! Ami már nehezebb, az a gyakorlati tényekkel szembemenni...
Egyébként, az még lehetséges, hogy optimalizációs beállítás kérdése is ennek a működése..., nálam általában szinte mindig méretre van maximálisan optimalizálva a kód, néha egyes modulok sebességre, de olyan szinte sohasincs, hogy optimalizálás/debug nélküli verzió fut...
Következő: »»   176 / 176
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem