Ú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!
- sziku69: Fűzzük össze a szavakat :)
- Azonnali alaplapos kérdések órája
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- E-roller topik
- exHWSW - Értünk mindenhez IS
- Kedvenc zene a mai napra
- Kicombosította az M5-ös SoC-családot az Apple
- Megérkezett az Apple 5K-s, 120 Hz-et biztosító monitora
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- További aktív témák...
- Gtx 1080/ Intel I7 8700K/ 16GB Ram/ 256GB M2 SSD/ 1TB HDD/ Win11
- Gtx 1050Ti/ Intel I5 7500/ 16GB Ram/ 256GB Sata SSD/ 1.5TB HDD/ Win11
- Gtx 1050Ti/ Intel I5 7500/ 16GB Ram/ 128GB M2 SSD/ 1.5TB HDD/ Win11
- Acer Aspire 3 A317-53-76NV. Intel 11.gen I7 / 16Gb ram / 512Gb ssd / 17,3"
- Intel 545S 512GB M2 Sata SSD
- BESZÁMÍTÁS! Sapphire B650M R7 8700F 32GB DDR5 512GB SSD RX 9070 XT 16GB CM MasterBox 5 fehér 750W
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- iKing.Hu - Használt, karcmentes Google Pixel 9 Pro Fold Obsidian színben, 256 GB tárhellyel, 6 hónap
- BESZÁMÍTÁS! MSI B760M i5 14400 16GB DDR5 512GB SSD RX 6700 XT 12GB Lian LI LANCOOL 207 GIGABYTE 750W
- iKing.hu Apple MacBook Pro 14 (2021) 16GB / 1TB használt, karcmentes 83% akku
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
