ioremap()
システム DRAMを呼び出すのは悪いことですか。他のプロセスで使用されないシステム DRAM の領域を確保したいと考えています。これはそれを行う方法でしょうか?DRAM は実際には IO メモリではないことを知っているので、これが悪い習慣と見なされるかどうかはわかりませんでした。
質問する
4244 次
2 に答える
1
カーネル コマンド ライン引数で「mem」を使用すると、システムの起動時にメモリを予約できます。
LDD3 Ch-15 Pg 443
たとえば、256 MB がある場合、引数 mem=255M を指定すると、カーネルは最上位メガバイトを使用しなくなります。モジュールは後で次のコードを使用して、そのようなメモリにアクセスできます。
dmabuf = ioremap (0xFF00000 /* 255M /, 0x100000 / 1M */);
ただし、カーネルはこの予約済みメモリを使用できないため、これは効率的な方法ではありません。私が現在取り組んでいる SoC では、SoC ドライバーがこのメモリを使用していないときにメモリを他のプロセスで再利用できるようにする Contiguous Memory Allocator (CMA) を使用してメモリが予約されています。
于 2014-12-25T15:12:44.040 に答える