LINUX.ORG.RU

Сообщения atlanta

 

<Вопрос><Как читать память DMA> (C/C++)

Форум — Development

C DMA сталкиваюсь впервые. Маны причитаны самая толковая O'Relly (кажеться так его зовут). Но недопонимаю как читать DMA.

В drname_open вызываю pci_alloc_consistent, получаю виртуальный адрес rx_buf и физический dma_buf, те rx_buf = pci_alloc_consistent(ppci_dev, len_dma, &dma_buf);

Потом записываю в регистры pci Ri...Ri+n физические адреса dma_buf с требуемым смещением. Запись/чтение регистров Ri...Ri+n в BARn все ок (проверяно).

Дальше хочу просто прочитать значение в dma. Делаю это в прерывании/или в ioctl. unsigneg char *pBuf = NULL; for (int i = 0; i < MAX_BYTE_I; i++) { pBuf = &rx_buf[i]; printk(«<1> %x \n», *pBuf); } Может кто толковое скажет?

atlanta
()

RSS подписка на новые темы