Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по PCIe и winxp?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
inco
Есть демоплата от Альтеры с коркой PCIe. Переделал их проект под себя немного.

Поставил на xp драйвер giveo.sys доступа к портам. Конфигурировать плату с PCIe получается. Все регистры PCIe
настраиваются правильно.

Теперь прописал в регистре BAR[0] адрес памяти для платы по которому хочу в неё писать. Писать хочу просто побайтно
и смотреть появились ли данные в памяти ПЛИС. И вот тут наступила полная засада!!! Винда напрямую не пускает. Попробовал написать примитивный драйвер. При попытке записи по адресу записанному в BAR[0] получаю синий экран смерти!
Что я делаю не так? Может кто-то по шагам рассказать или у кого-то есть пример, как это сделать со стороны персоналки.

Никакие драйвера (кроме своей поделки) на плату с ПЛИС в винде не устанавливаю (хотя она просит), хочется просто пописать и почитать данные из ПЛИС по PCIe напрямую. Свой драйвер тоже не устанавливаю, а просто регистрирую и запускаю с помощью kmdManager.
dsmv
Можно использовать драйвер UNINSYS: http://insys.ru/download/common/setup_uninsys.zip

Что нужно сделать:


1. Определить физический адрес BAR0

2. Преобразовать его в виртуальный адрес в адресном пространстве приложения

Есть примеры:

  • unpci - поиск PCI устройства
  • unmemmap - преобразование физического адреса в виртуальный
inco
Спасибо большое! Похоже то что надо! Буду разбираться...
_pv
Цитата(dsmv @ Jun 19 2012, 19:20) *
Можно использовать драйвер UNINSYS: http://insys.ru/download/common/setup_uninsys.zip

а нет вот такого же, но чтобы еще х64 и W7?

dsmv
Цитата(_pv @ Jun 19 2012, 16:53) *
а нет вот такого же, но чтобы еще х64 и W7?

Есть новый драйвер - наследник UNINSYS. Называется ISDRV. Есть версии для Win32 и Windows 7 x64


Но он ещё в стадии тестирования. Так что просьба сообщить о результатах использования. Как положительных так и отрицательных.

Flood
Платная альтернатива своему драйверу: Windriver от Jungo.
http://www.jungo.com/st/windriver_usb_pci_...t_software.html

Кроме того, для Windows есть программы типа PCITree, PCIScope, позволяющие читать-писать память PCI-устройств.

В отладочных целях, когда нужно просто читать-писать байтики, проще всего делать это под Linux. Драйвер не нужен, от рута можно обращаться к /dev/mem - написать программу с mmap() или вообще использовать hexedit /dev/mem. Текущий BAR вашего устройства можно узнать через lspci.
http://tldp.org/LDP/khg/HyperNews/get/devices/fake.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.