- Azonnali hatállyal felpörgeti az Apple az iPhone 17 gyártást
- Nagy csokor frissítéssel kíván jó hétvégét a Samsung
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- Rekordeladásokkal állt talpra a Tesla, küszöbön a „filléres” Model Y
- Elindult az Android 16 alapú Nothing OS 4.0 nyílt bétája
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Apple iPhone Air - almacsutka
- Samsung Galaxy S25 - végre van kicsi!
- Okosóra és okoskiegészítő topik
- Mobil flották
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Apple iPhone 17 - alap
- Samsung Galaxy S23 Ultra - non plus ultra
- Rekordérdeklődés a Xiaomi hátsó kijelzője iránt
- iPhone topik
Ú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
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HP Elite Dragonfly G3, érintőkijelző ,i5-1235U ,16GB RAM ,512GB SSD, gyári garancia 2026.10.17-ig
- PlayStation Portal (garanciális) + AJÁNDÉKOK, csere is
- Dell Latitude 9520 27% ÁFA , i7-1185G7 ,16GB RAM ,512GB SSD ,1 év garancia
- Lenovo ThinkPad X1 Carbon 9th, i5-1135G7 ,16GB RAM , 256GB SSD, 1 év garancia
- Realme GT7T 16/512Gb
- HGST HUH721010AL5200 10TB 7.2k SAS HDD, DELL branded, nettó 40000Ft + ÁFA, 1 év garancia
- Apple iPhone 14 Pro Max / Kártyafüggetlen / 256GB / 12Hó Garancia / 87% akku
- Bomba ár! HP EliteBook 820 G2 - i5-5GEN I 8GB I 256GB SSD I 12,5" FHD I Cam I W10 I Garancia!
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
- PlayStation DualSense Edge kontroller AKCIÓ!!! // Számla + Garancia //
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest