การระบุที่อยู่ I / O ของหน่วยความจำทำงานอย่างไร
การระบุที่อยู่ I / O ของหน่วยความจำทำงานอย่างไร ฉันกำลังพยายามที่จะเข้าใจตัวอย่างที่ให้มาI2S: ทุกคนทำงานได้หรือไม่ . การกำหนดค่านาฬิกา: #define BCM2708_PERI_BASE 0x20000000 #define CLOCK_BASE (BCM2708_PERI_BASE + 0x101000) /* Clocks */ ก่อนจะจับคู่รหัสอย่างนั้น ... clk_map = (unsigned char *)mmap( (caddr_t)clk_mem, MAP_BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, mem_fd, CLOCK_BASE ); ถ้าอย่างนั้นมันก็ทำอะไร ... // Always use volatile pointer! clk = (volatile unsigned *)clk_map; และเมื่อมีการอ้างอิงจะมีส่วนเพิ่มเติมแปลก ๆ ของ 0x26 …