Hirdetés
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mr Dini: Mindent a StreamSharkról!
- gban: Ingyen kellene, de tegnapra
- gerner1
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- MasterDeeJay: Egy nem átlagos Asus videókártya (GTX950M 2GB GDDR3)
Ú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á).
-
Karma
félisten
1) Kellene egy malloc függvény először. Legegyszerűbb esetben ennyi megoldja:
#include <stdlib.h>
2) Ezt sajnos nem tudom, de első próbának a pwm változód deklarálásához tenném. Azaz a bemásold sorodat kezdeném úgy, hogy volatile. Nem tudom, hogy a fordító hogy viselkedik pointerrel elért struktúráknál, nekiáll-e egyáltalán optimalizálni...
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Gyúrósok ide!
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- TCL LCD és LED TV-k
- Kertészet, mezőgazdaság topik
- Építő/felújító topik
- Autós topik
- WLAN, WiFi, vezeték nélküli hálózat
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
- Samsung 75 QE75QN90A Neo QLED 4K UHD Smart TV Mini LED + Quantum Dot eladó
- ASUS ROG Zephyrus G16 (2024) RTX 4090 (!!) / Ultra 9 / GAR 2027 brutál erős, csúcs modell
- Cooler Master CK550 RGB mechanikus billentyűzet (Gateron Brown, HU)
- Elgato Stream Deck 15 gombos (MK.1) + állvány
- Gamer PC Ryzen 7 5800X + RTX 3060 12GB / 32GB RAM / vízhűtés / RGB
- Eladó Samsung Galaxy A16 5G 4/128GB fehér / 12 hónap jótállás
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB DDR5 RAM RTX 5070 12GB GAMER termékbeszámítással
- BESZÁMÍTÁS! Gigabyte B450M R5 3600X 32GB DDR4 512GB SSD RTX 3060 12GB NZXT Source 340 Bitfenix 550W
- Samsung Galaxy S26 Ultra 512 GB Égkék Karcmentes állapot 12 GB RAM SN: R5GL22FEBCW 6 hónap g
- BESZÁMÍTÁS! ASUS B760 i7 13700K 32GB DDR5 512GB SSD RTX 4070 12GB Aerocool P500B Digi ARGB 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
