реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Драйвер для PCIe, Написание драйвера PCIe
Anton1990
сообщение Jun 13 2016, 16:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Всем добрый день.
Разработан контроллер PCIe на xilinx virtex6. А как собственно решается вопрос с драйвером для работы с девайсом. На сайте ничего внятного не нашел. Интересует драйвер под win7, но и под младшие винды пойдет. А вообще xilinx какойнибудь драйвер предлагает с библиотекой для работы с ним? Или только своими руками?
Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jun 13 2016, 16:53
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Anton1990 @ Jun 13 2016, 19:41) *
Всем добрый день.
Разработан контроллер PCIe на xilinx virtex6. А как собственно решается вопрос с драйвером для работы с девайсом. На сайте ничего внятного не нашел. Интересует драйвер под win7, но и под младшие винды пойдет. А вообще xilinx какойнибудь драйвер предлагает с библиотекой для работы с ним? Или только своими руками?
Заранее спасибо за ответы.


Jungo WinDriver Вам в помощь


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 14 2016, 15:34
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(Maverick @ Jun 13 2016, 19:53) *
Jungo WinDriver Вам в помощь

Так это все своими ручками. Но нутром чую что должен быть фирменный драйвер от Xilinx с которым нужно научиться работать в программе верхнего уровня.
Go to the top of the page
 
+Quote Post
gosha-z
сообщение Jun 14 2016, 16:20
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 30-10-05
Пользователь №: 10 288



А откуда Xilinx знает, что вы там наворотили в PCIe? Сами, голубчик, сами.
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 15 2016, 15:49
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(gosha-z @ Jun 14 2016, 19:20) *
А откуда Xilinx знает, что вы там наворотили в PCIe? Сами, голубчик, сами.


А что значит наворотили? Корка от Xilinxa, а значит должна поддерживаться стандартным драйвером (банальные операции записи в регистр, чтение регистра).
Go to the top of the page
 
+Quote Post
krux
сообщение Jun 15 2016, 20:13
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(Anton1990 @ Jun 15 2016, 18:49) *
А что значит наворотили? Корка от Xilinxa, а значит должна поддерживаться стандартным драйвером (банальные операции записи в регистр, чтение регистра).

никто вам ничего не должен.

то, про что вы пишете - это запись/чтение слэйвом, без использования bus master dma.
скорость обмена данными с устройством в таком режиме не превышает 1(один) Мбайт/сек.
вот такой вот "стандартный драйвер".


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
vladec
сообщение Jun 16 2016, 07:40
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Вам же порекомендовали WinDriver, очень хорошая и удобная прога, в особенности для "писать в регистры", а для более сложных случаев избавляет от трудностей программирования в "Нулевом кольце".
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 16 2016, 15:40
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



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


А драйверок под win7 x64 на WinDriver получится? Слыхал с этим вообще большие проблемы.
Go to the top of the page
 
+Quote Post
vladec
сообщение Jun 17 2016, 06:53
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Там вся драйверная часть в самом WinDriver-е, Вам надо будет программировать в верхнем кольце просто вызывая соответствующие функции.
Go to the top of the page
 
+Quote Post
novartis
сообщение Jun 19 2016, 16:45
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 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 искать?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 19 2016, 17:38
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 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 это всё умеют.
Go to the top of the page
 
+Quote Post
novartis
сообщение Jun 19 2016, 18:33
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 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.
То есть с помощью драйвера производится преаллокация буфера.
Точно также в линуксе пришлось делать преаллокацию буфера.
Думаю, что новая версия может помочь, вот бы кто подтвердил.



Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016