Перейти к содержанию
    

Вопрос по PCIe и winxp?

Есть демоплата от Альтеры с коркой PCIe. Переделал их проект под себя немного.

 

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

настраиваются правильно.

 

Теперь прописал в регистре BAR[0] адрес памяти для платы по которому хочу в неё писать. Писать хочу просто побайтно

и смотреть появились ли данные в памяти ПЛИС. И вот тут наступила полная засада!!! Винда напрямую не пускает. Попробовал написать примитивный драйвер. При попытке записи по адресу записанному в BAR[0] получаю синий экран смерти!

Что я делаю не так? Может кто-то по шагам рассказать или у кого-то есть пример, как это сделать со стороны персоналки.

 

Никакие драйвера (кроме своей поделки) на плату с ПЛИС в винде не устанавливаю (хотя она просит), хочется просто пописать и почитать данные из ПЛИС по PCIe напрямую. Свой драйвер тоже не устанавливаю, а просто регистрирую и запускаю с помощью kmdManager.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно использовать драйвер UNINSYS: http://insys.ru/download/common/setup_uninsys.zip

 

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

 

 

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

 

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

 

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

 

  • unpci - поиск PCI устройства
  • unmemmap - преобразование физического адреса в виртуальный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно использовать драйвер UNINSYS: http://insys.ru/download/common/setup_uninsys.zip

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

 

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

 

isdrv.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Платная альтернатива своему драйверу: 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...