1
我想从一个的PCIe板,其提供了1GB存储器与用户BAR0存取存储器。 目前我只用读,写我的字符设备驱动程序,这是非常缓慢(1MB/s的读取和16MB/s的写入)在8倍的PCIe第3代的功能。是否可以MMAP PCI BAR内存?
static ssize_t
MPD_read(
struct file *filp,
char *buffer,
size_t bufferSize,
loff_t *offset)
{
unsigned long unusedBytes = copy_to_user(
(void *) buffer,
MPD_AdapterBoard.bars[ 0 ].barHWAddress,
bufferSize);
return 0;
}
static ssize_t
MPD_write(
struct file *filp,
const char *buffer,
size_t bufferSize,
loff_t *offset)
{
unsigned long unusedBytes = copy_from_user(
MPD_AdapterBoard.bars[ 0 ].barHWAddress,
(void *) buffer,
bufferSize);
return 0;
}
是否可以使用MMAP(与.mmap文件操作)来获得更多的速度? 或者DMA是唯一的选择?
在此先感谢!
/Jesko