問題タブ [ioremap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - システム メモリの予約、ioremap()?
ioremap()
システム DRAMを呼び出すのは悪いことですか。他のプロセスで使用されないシステム DRAM の領域を確保したいと考えています。これはそれを行う方法でしょうか?DRAM は実際には IO メモリではないことを知っているので、これが悪い習慣と見なされるかどうかはわかりませんでした。
linux-kernel - 物理メモリ アドレスに書き込まれたデータの予期しない変更
プラットフォームは MIPS、カーネルは Linux 2.6.31 です。
まず、合計 64M の RAM のうち 8M の RAM ゾーンを予約するので、カーネルは 56M の RAM ゾーンのみを使用します。次に、このioremap()
関数を使用してカーネル内で物理アドレスを仮想アドレスに変換し、データを書き込みます。このような:
次に、uboot でデータを読み取ります。電源を維持し、システムを再起動して、uboot に入ります。Uboot は物理アドレスを使用するため、0x83800000 から始まるデータを読み取ります。問題は次のとおりです。0x83800000(0M) で 1 バイトのデータが間違っており、0x83c00000(4M) で 1 バイトのデータが間違っており、0x84000000(8M) で 1 バイトのデータが間違っています。しかし、残りのデータはすべて buf と同じです。とても奇妙!!原因がわかりません、どなたか教えてください。ありがとう...
linux-device-driver - remap_pfn_range を使用して、ブート時のリザーバー メモリをユーザー空間にマップします
remap_pfn_range を使用して、ブート時に予約済みメモリ (2G のオフセットで 30M) (ブート カーネル パラメータ mem=2G memmap=30M$2G) をユーザー空間にマップしようとしています。 以下は私のドライバー コードです。
私のユーザー空間アプリは以下です
モジュールを挿入すると、戻ります
しかし、ユーザー空間アプリを実行するとエラーが返されます