阅读:952回复:2
请教 内核中的数据访问
我用Kernel Driver开发的驱动程序。 收到板上的中断后,中断处理程序在内核中分配一块缓冲区,将数据通过DMA传送到缓冲区中。我在内核中维护了一个缓冲区的链表,
现在的问题是用户如何访问里面的数据。我提供了一个API,供用户获取缓冲区地址。我在测试的时候发现,用户程序是不能用*直接访问内核中的缓冲区。所以又加了一个API,用户首先调用malloc获得一块内存,然后调用此API,将内核中的数据传到用户的内存中。这个API实际上就是执行了memcpy函数。 我的问题是,还有比这种方式更高效率的方法吗?毕竟memcpy需要CPU将数据从内存中逐个读出,然后写到另外一个地址。 |
|
沙发#
发布于:2005-02-16 19:05
我用Kernel Driver开发的驱动程序。 收到板上的中断后,中断处理程序在内核中分配一块缓冲区,将数据通过DMA传送到缓冲区中。我在内核中维护了一个缓冲区的链表, 有,比如共享内存 |
|
|
板凳#
发布于:2005-02-16 21:34
[/quote] 有,比如共享内存 [/quote] 可是这是kernel中的内存,可以和用户程序共享吗? |
|