私のドライバーでは、返されたアドレスioremapをユーザー空間アドレスにマップしようとしています。
- からどのようなアドレスが返され
ioremapますか? kmalloc住所とどう違うの?- から返されたアドレスをマップするにはどうすればよい
ioremapですか? - どのアドレスを に挿入する必要があります
remap_pfn_rangeか?
私のドライバーでは、返されたアドレスioremapをユーザー空間アドレスにマップしようとしています。
ioremapますか?kmalloc住所とどう違うの?ioremapですか?remap_pfn_rangeか?ioremap()を使用している場合は必要ありませんremap_pfn_range()。 ioremap()物理アドレスをカーネル仮想アドレスにマップします。 remap_pfn_range()物理アドレスをユーザー空間に直接マップします。物理アドレス (pfn を生成するために PAGE_SHIFT でシフトダウン) を に直接渡すだけremap_pfn_range()です。質問順:
virt_to_phys()最初に呼び出して、カーネルの仮想アドレスを物理アドレスに変換すると、これを行うことができます。ただし、このメモリ範囲へのカーネル アクセスが実際に必要ない場合は、手順をスキップしてください。