2016-04-24 69 views
0

我知道這個問題被問到,但我仍然無法提取任何有用的答案。我會很感激,因爲我的linux背景並不那麼深刻,因此我可以提供不太複雜的答案。 我需要在用戶空間中使用物理連續幀的原因是我正在使用硬件設備,並且在用戶空間中模擬此設備的驅動程序,而我應該使用一層薄薄的驅動程序。 我得到的最簡單的建議之一是在驅動程序的內核層使用get_free_pages進行分配,然後以某種方式使用mmap將該內存用於用戶空間。你能否詳細說明並解釋這個建議?或者當然提出任何其他(簡單)解決方案?在用戶空間中使用物理上連續的頁面

謝謝

+0

有用於執行'mmap'的例子靚號。你究竟做了什麼,但你沒有看到它呢? – Tsyvarev

+0

使用kzalloc/kmalloc分配連續的物理內存(或ioremap來映射io)並使用mmap將其映射到用戶。在這裏看到一個簡單的例子:http://blog.discoversdk.com/using-mmap-to-map-kernel-buffer-to-user-space-example/ –

+0

@SamProtsenko:你的引用只對用戶空間操作的問題**的意思,但給出的問題明確告訴**可以寫入內核驅動程序**。 – Tsyvarev

回答

相關問題