この呼び出しから返されるDMAアドレスは物理アドレスと同じですか? LDD3は、DMAアドレスがドライバによって不透明として扱われるべきだと言います。私はこのDMAバッファをmmapして、ユーザ空間がそれに直接読み書きできるようにしたい。問題は、remap_pfn_rangeにPFNを指定する必要があることです(これは私の気持ちが驚くほど(カーネル3.4+)はI/Oメモリと同じような従来のメモリでも機能します)。 DMAアドレスを符号なしlongにキャストしてPFNに変換できますか?これは、LDD3が不透明感について語ったことの違反ではありませんか?dma_alloc_coherentに関するいくつかの質問
dma_alloc_coherent
は常に内部で__get_free_pages
を使用しますか?これは、領域が常にオーバー割り当てされる可能性があることを意味しますか?(最初の関数はバイトを使用しますが、2番目の関数はページ単位で割り当てます)__get_free_pages
を呼び出して取得した複数の連続するページに対して、単一のストリーミングマッピングを設定する方法はありますか?dma_map_page
は1ページにのみ適用されます。
16
A
答えて
11
いいえ、返されたアドレスは、そうしないと、カーネル空間からアクセスすることはできないであろう、仮想アドレスです。物理アドレスを表すdma_handleですが、不透明です。返されるアドレスにvirt_to_physを使用し、remap_pfn_rangeに渡す必要があります。
私は(それはプラットフォームに依存する可能性が高い)とは思わないが、ページを割り当てる。 DMAのメモリ量を少なくしたい場合は、dma_pool_createを使用してそこから領域を割り当てる必要があります。
dma_map_pageの代わりにdma_map_singleを使用できます。
このようなものの詳細については、DMA-API.txtにお問い合わせください。
関連する問題
- 1. Pythonの "append"関数に関するいくつかの質問
- 2. ELFフォーマットに関するいくつかの愚かな質問
- 3. JavaのOOPに関するいくつかの質問
- 4. いくつかのiPhoneのコアプロットに関する質問
- 5. C# - asp.net - このコーディングに関するいくつかの質問
- 6. NALUのスタートコードに関するいくつかの質問
- 7. Spring MVCのApache Shiroに関するいくつかの質問
- 8. db4oの作業に関するいくつかの質問
- 9. CRCの基礎に関するいくつかの質問
- 10. SonarLint - VB.NETのいくつかの規則に関する質問
- 11. アンドロイド:いくつかのカメラのAPIに関する質問
- 12. App ServicesのKudu Consoleに関するいくつかの質問
- 13. WindowsのDLLに関するいくつかの質問?
- 14. ConcurrentDictionaryの使用に関するいくつかの質問
- 15. いくつかのCSSに関する質問
- 16. いくつかのDテンプレートに関する質問
- 17. XmlTextWriterに関するいくつかの質問
- 18. PHPセッションに関するいくつかの質問
- 19. 形状作成に関するいくつかの質問
- 20. フォーム処理に関するいくつかの質問?
- 21. Pyradに関するいくつかの質問
- 22. マルチプロセッシングに関するいくつかの質問。
- 23. IPv6に関するいくつかの質問
- 24. $ GOPATHに関するいくつかの質問
- 25. Asp.net MVCに関するいくつかの質問
- 26. AsyncTaskに関するいくつかの質問
- 27. いくつかのUIScrollViewに関する質問
- 28. Qtプロファイルに関するいくつかの質問
- 29. Silverlightに関するいくつかの質問
- 30. ゲームループ、ダニ、リアルタイムプログラミングに関するいくつかの質問
remap_pfn_rangeメモリにdmaメモリを接続する正しい方法がありますか? – Luca