- OLED TV topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Fejhallgató erősítő és DAC topik
- Hogy is néznek ki a gépeink?
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Apple MacBook
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Melyik tápegységet vegyem?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
Ú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!
- WoW avagy World of Warcraft -=MMORPG=-
- gban: Ingyen kellene, de tegnapra
- OLED TV topic
- Milyen okostelefont vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- A fociról könnyedén, egy baráti társaságban
- Fejhallgató erősítő és DAC topik
- BestBuy topik
- Rengeteg pénzt kapott az USA-tól az Intel, de Trump kért cserébe valamit
- Milyen NAS-t vegyek?
- További aktív témák...
- Western Digital Blue SA510 500GB SATA3 - Új, bontatlan - Eladó!
- Crucial T500 PRO 2TB M.2 NVME PCI-E 4.0 x4 - Új, Hűtőbordás - 7400-7000 MBs - Eladó!
- Crucial T500 PRO 2TB M.2 NVME PCI-E 4.0 x4 - Új, Hűtőbordás - 7400-7000 MBs - Eladó!
- Lexar NM790 2TB M.2 NVME PCI-E 4.0 x4 - Új - 7400-6500 MBs - Eladó!
- Lexar NM1090 PRO 4TB M.2 NVME PCI-E 5.0 x4 - Új - 14.000-13.000 MBs - Eladó!
- BESZÁMÍTÁS! ASUS B450M R5 3500X 16GB DDR4 500GB SSD RTX 2060 Super 8GB Zalman N5 Zalmann 600W
- DELL PowerEdge R730xd 26SFF rack szerver - 2xE5-2680v3 (24c/48t, 2.5/3.3GHz), 64GB RAM, 10G, H730p
- Dell Latitude 5420 i7-1185G7 16GB 256GB magyarbill. 1 év garancia
- Azonnali készpénzes Intel i5 i7 i9 8xxx 9xxx processzor felvásárlás személyesen / csomagküldés
- HIBÁTLAN iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3364
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest