起動プロセスとメモリ管理を腕で理解しようとしていて、メモリマップアドレスとRAMアドレスに関連する質問がありました。
- 私が理解していること:
すべてのSocはメモリマップを持ち、サイズは異なりますアドレッシング能力に関しては、例:32ビットプロセッサは2 ^ 32または4GBのアドレッシング能力を持っています。メモリマップには、マップされたさまざまなペリフェラルのアドレスとベクタテーブルe.t.cが含まれます。例:アドレス0x00000000はリセットベクタ、アドレス0x70000000はUARTレジスタなどです。
同様に、DDRコントローラもRAMを制御するためのメモリマップアドレスを持ちます。
- 私の質問:
RAMのサイズを4GBとした場合、メモリマップ(またはUARTレジスタ)に影響を与えずにRAMのアドレス0x70000000にアクセスするにはどうすればよいですか。
私がそれを誤解したならば、私の理解を訂正してください。
回答:
回答№1は0簡単な答えは、「アクセスできない」ということです。メモリマップされた周辺機器は、同じアドレスのRAMよりも優先されます。
最も有名な例は実際にはWin32です。ビデオカードはメモリマップされていて利用可能なRAMを3.5GBに減らすことがよくあります。