Új hozzászólás Aktív témák
-
Karma
félisten
Ezt a cikket most találtam, érdemes elolvasni.
A kommentek között az eredeti kérdésedre is választ kapsz, idézem:Here is the best practice for use with structs that define memory-mapped I/O device registers:
typedef struct { ... } volatile newtype_t;
newtype_t * const p_newtype = (newtype_t *) BASEADDR; -
Karma
félisten
A volatile nem azért kell, hogy elérhesd interruptból (ahhoz csak "megfelelő" helyre kell tenned), hanem azért, hogy a fordító ne optimalizálja ki az olyan ifeket és for/while ciklusokat, ahol ennek a struktúrának az elemeit használod fel a feltételben.
Volatile nélkül ugyanis azt gondolhatja a fordító megfelelően magas -O szint mellett, hogy "na ez biztos nem változik meg, ez a feltétel felesleges, kidobom" - és csodálkozhatsz hogy nem reagál a program. A volatile ezt tiltja meg.
BTW szerintem egyszerűbb lenne, ha nem a heapen hoznád létre ezt a struktúrát. Végülis elég kicsi. Az interruptos elérés miatt lehet, hogy globális változónak praktikusabb (más fordítási egységben. pl. az interruptkezelődben meg externnel hivatkozol rá).
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen TV-t vegyek?
- Xiaomi 17 Ultra - jó az optikája
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Filmvilág
- Mibe tegyem a megtakarításaimat?
- Milyen belső merevlemezt vegyek?
- BestBuy topik
- Gumi és felni topik
- Kerékpárosok, bringások ide!
- Realme GT 2 Pro - papírforma
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol Starfield extrákkal garanciával
- Dell Latitude 7400 2 in 1 360 touch, i7 8665U, 16GB, 512GB, jó akku, számla, 6 hó gar
- 27% - ÚJ Corsair VENGEANCE RGB 48GB (2x24GB) DDR5 6000MHz
- BESZÁMÍTÁS! Akár részletfizetés 0% THM ÚJ AMD RYZEN AM4 processzorok 3 év garanciával 27% áfaval
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

