- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- btz: Internet fejlesztés országosan!
- urandom0: Kicsit most elfáradtam...
- sziku69: Fűzzük össze a szavakat :)
- sh4d0w: Árnyékos sarok
- Gurulunk, WAZE?!
- Geri Bátyó: Agglegénykonyha 6 – Néhány egyszerű tésztaétel
- sziku69: Szólánc.
Ú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!
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512B SSD GTX 1070 8GB Chieftec BD-25B-350GPB Zalman 500W
- BESZÁMÍTÁS! ASROCK B650M R5 7600X 32GB DDR5 2TB SSD RX 6900XT 16GB Zalman Z1 PLUS GIGABYTE 850W
- BESZÁMÍTÁS! ASROCK B650M R5 7600X 32GB DDR5 1TB SSD RX 6900XT OCF 16GB Zalman Z1 PLUS CM 1200W
- BESZÁMÍTÁS! MSI B450 R7 3800X 16GB DDR4 512GB SSD RTX 2070 SUPER 8GB ZALMAN T7 FSP 650W
- BESZÁMÍTÁS! MSI B450 R7 5800X 32GB DDR4 1TB SSD RTX 3080 10GB ZALMAN S2 TG Cooler Master 700W
- BESZÁMÍTÁS! ASUS B760M i7 13700K 32GB DDR4 512GB SSD RX 6800XT 16GB Phanteks Eclipse P400 Glacier
- HIBÁTLAN iPhone 14 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3236
- Apple iPhone 16 128GB,Újszerű,Kábel,12 hónap garanciával
- HPE Aruba switch, 48 port, Layer 3, PoE+
- 16 GB RTX 4080 SUPER HP OMEN - garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest