我在ARM上使用内核3.18。我正在为我正在编写驱动程序的相机读取数据。 我使用以下内容来设置内存:
remap_pfn_range
这非常有效。我使用相同的内核模块在相机发送数据后读出内存,我可以看到图片。
现在我想启动一个用户空间应用程序来读取相同的数据。
我认为要走的路是public class Person
{
public Person()
{
。
我一直在寻找示例,但他们从未描述的一件事是我从哪里获得vm_area_struct。我假设这必须来自用户应用程序吗?对于第一个参数,它说"用户vma映射到"。那么如何获得指向这个结构的指针呢?
答案 0 :(得分:0)
看起来vma指针来自用户空间应用程序。
在驱动程序(内核空间)中,我必须创建一些方法,以及/ dev文件。
然后在用户应用程序中我打开了/ dev文件,并在其上调用了mmap。这反过来在我的驱动程序中调用了我自己的mmap方法,并且vma(vm_area_struct)被神奇地发送。