|
|
  |
Драйвер для PCIe, Написание драйвера PCIe |
|
|
|
Jun 14 2016, 15:34
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(Maverick @ Jun 13 2016, 19:53)  Jungo WinDriver Вам в помощь Так это все своими ручками. Но нутром чую что должен быть фирменный драйвер от Xilinx с которым нужно научиться работать в программе верхнего уровня.
|
|
|
|
|
Jun 15 2016, 15:49
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(gosha-z @ Jun 14 2016, 19:20)  А откуда Xilinx знает, что вы там наворотили в PCIe? Сами, голубчик, сами. А что значит наворотили? Корка от Xilinxa, а значит должна поддерживаться стандартным драйвером (банальные операции записи в регистр, чтение регистра).
|
|
|
|
|
Jun 15 2016, 20:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Цитата(Anton1990 @ Jun 15 2016, 18:49)  А что значит наворотили? Корка от Xilinxa, а значит должна поддерживаться стандартным драйвером (банальные операции записи в регистр, чтение регистра). никто вам ничего не должен. то, про что вы пишете - это запись/чтение слэйвом, без использования bus master dma. скорость обмена данными с устройством в таком режиме не превышает 1(один) Мбайт/сек. вот такой вот "стандартный драйвер".
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Jun 16 2016, 15:40
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(vladec @ Jun 16 2016, 10:40)  Вам же порекомендовали WinDriver, очень хорошая и удобная прога, в особенности для "писать в регистры", а для более сложных случаев избавляет от трудностей программирования в "Нулевом кольце". А драйверок под win7 x64 на WinDriver получится? Слыхал с этим вообще большие проблемы.
|
|
|
|
|
Jun 19 2016, 16:45
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Раз речь зашла про WinDriver, может кто подскажет, как для пересылок из ПЛИС в ПК выделить буфер больше 4МБайт на стороне ПК? Использую функцию WDC_DMAContigBufLock():
WDC_DMAContigBufLock(m_hDev, ppBuf, DMA_FROM_DEVICE | DMA_ALLOW_64BIT_ADDRESS | DMA_LARGE_BUFFER, MEM_SIZE, &m_pFpgaDma->pDma)
Если MEM_SIZE задать больше 4 МБайт, то функция возвращает ошибку, что не может выделить такой буфер. 4Мбайта может, но тоже не всегда. 1МБайт стабильно возвращает.
Использую WinDriver 10.10, скачал его с трекера. Читал, что в версии WinDriver 11.7 как раз добавили возможность работы с большими объемами памяти. На самом сайте jungo можно скачать только самую последнюю версию. Скачал 12.2, установил, но она не запускается, какая то ошибка.
Вообщем, подскажите, можно ли в WiDriver 10.10 выделить буфер больше 4 МБайт? Или нужно 11.7 искать?
|
|
|
|
|
Jun 19 2016, 17:38
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(novartis @ Jun 19 2016, 20:45)  Раз речь зашла про WinDriver, может кто подскажет, как для пересылок из ПЛИС в ПК выделить буфер больше 4МБайт на стороне ПК? Использую функцию WDC_DMAContigBufLock():
WDC_DMAContigBufLock(m_hDev, ppBuf, DMA_FROM_DEVICE | DMA_ALLOW_64BIT_ADDRESS | DMA_LARGE_BUFFER, MEM_SIZE, &m_pFpgaDma->pDma)
Если MEM_SIZE задать больше 4 МБайт, то функция возвращает ошибку, что не может выделить такой буфер. 4Мбайта может, но тоже не всегда. 1МБайт стабильно возвращает.
Использую WinDriver 10.10, скачал его с трекера. Читал, что в версии WinDriver 11.7 как раз добавили возможность работы с большими объемами памяти. На самом сайте jungo можно скачать только самую последнюю версию. Скачал 12.2, установил, но она не запускается, какая то ошибка.
Вообщем, подскажите, можно ли в WiDriver 10.10 выделить буфер больше 4 МБайт? Или нужно 11.7 искать? Это не windriver - это ограничение ос. Используйте scatter-gather, благо сейчас мосты в плис для pcie это всё умеют.
|
|
|
|
|
Jun 19 2016, 18:33
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Хотел ведь написать, что scatter-gather использовать не будем, но подумал, зачем усложнять.... scatter-gather использовать не будем, нельзя! Боролся с этой же проблемой под линуксом, там победил, перекомпилив ядро линукса с определенными опциями. http://electronix.ru/forum/index.php?showtopic=133258Но сейчас нужно перейти под виндоус. Вот в WinDriver Release Notes Version 11.4.0 пункт есть: PCI on Windows: Added support for preallocating bidirectional contiguous DMA buffers (DMA_TO_FROM_DEVICE) using INF-file configuration. То есть с помощью драйвера производится преаллокация буфера. Точно также в линуксе пришлось делать преаллокацию буфера. Думаю, что новая версия может помочь, вот бы кто подтвердил.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|