1
BAR0과 함께 1GB 메모리를 제공하는 PCIe 보드에서 사용자가 메모리에 액세스하려고합니다. 현재 8 바이트 PCIe Gen3에서 매우 느립니다 (1MB/s 읽기 및 16MB/s 쓰기) 문자 디바이스 드라이버의 읽기 및 쓰기 기능 만 사용합니다. PCI BAR 메모리를 MMAP 할 수 있습니까?
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