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