用户空间内存可不可以用作DMA缓存?
我在用户空间malloc一段内存,假设这段内存不大于4K(目的是保证无力地址的连续性),如果可以得到这段内存的物理地址并且不可能被交换出去,那么,这段内存可不可以用作DMA的缓存?
另外,我以前看到有人写过一个得到用户空间内存物理地址的一个函数,但是找不到了,哪位大侠给发一个。
真做项目的时候发现很多细节光看书是不行的。
非常感谢啊!
另外,我以前看到有人写过一个得到用户空间内存物理地址的一个函数,但是找不到了,哪位大侠给发一个。
真做项目的时候发现很多细节光看书是不行的。
非常感谢啊!
作者: liujunwei1234 发布时间: 2011-01-13
"如果可以得到这段内存的物理地址并且不可能被交换出去,那么,这段内存可不可以用作DMA的缓存?"
可以。
找物理地址可以通过遍历PAGE TABLE 来获得。不知道有没有现成的函数。
可以。
找物理地址可以通过遍历PAGE TABLE 来获得。不知道有没有现成的函数。
作者: accessory 发布时间: 2011-01-14
回复 accessory
谢谢您的回答。 我现在就是想DMA必须要特定的物理内存,比如DMA_ZONE里的。 我现在正在实验。
谢谢您的回答。 我现在就是想DMA必须要特定的物理内存,比如DMA_ZONE里的。 我现在正在实验。
作者: liujunwei1234 发布时间: 2011-01-14
有现成函数,不想给你,怎么办?
作者: EZWORD 发布时间: 2011-01-14
只能使用二楼的做法吧
作者: jinxinxin163 发布时间: 2011-01-14