На данный момент процесс примерно таков: :
[*]Найдите адрес устройства с помощью lspci (например, 04:0e.0)
[*]Запрос /proc/iomem, чтобы получить адрес памяти устройства из предыдущего шага.
[*]Используйте этот код, чтобы попытаться получить сопоставленное местоположение в памяти для DMA.
Код: Выделить всё
int file = open("/dev/mem", O_RDWR);
int addr_from_proc_iomem = 0xb1400000;
void* data = mmap(nullptr, data_size, PROT_READ | PROT_WRITE, MAP_SHARED, file, addr_from_proc_iomem );
Знает ли кто-нибудь полный пример драйвера Linux, который делает то, что я пытаюсь сделать (чтение DPRAM через DMA в Linux)? Или у вас есть указатели на шаги, которые мне не хватает. Я использую Debian с ядром 6.1.
Подробнее здесь: https://stackoverflow.com/questions/790 ... d-pci-card