我在哪里可以获得remap_pfn_range的vm_area_struct?

时间:2016-07-31 14:27:48

标签: linux arm dma

我在ARM上使用内核3.18。我正在为我正在编写驱动程序的相机读取数据。 我使用以下内容来设置内存:

remap_pfn_range

这非常有效。我使用相同的内核模块在相机发送数据后读出内存,我可以看到图片。

现在我想启动一个用户空间应用程序来读取相同的数据。 我认为要走的路是public class Person { public Person() {

我一直在寻找示例,但他们从未描述的一件事是我从哪里获得vm_area_struct。我假设这必须来自用户应用程序吗?对于第一个参数,它说"用户vma映射到"。那么如何获得指向这个结构的指针呢?

1 个答案:

答案 0 :(得分:0)

看起来vma指针来自用户空间应用程序。

在驱动程序(内核空间)中,我必须创建一些方法,以及/ dev文件。

然后在用户应用程序中我打开了/ dev文件,并在其上调用了mmap。这反过来在我的驱动程序中调用了我自己的mmap方法,并且vma(vm_area_struct)被神奇地发送。

相关问题