2
メモリマップド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と0x27のこれらの奇妙な追加があります、それはどうですか? printf("Disabling I2S clock\n"); *(clk+0x26) = 0x5A000000; *(clk+0x27) = 0x5A000000; …