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

После переустановки Windows ситуация не изменилась. Windriver устанавливает INF-файл, в системе появляется созданное устройство, но при попытке выполнить для данного INF-файла uninstall комп виснет.

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


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

После переустановки Windows ситуация не изменилась. Windriver устанавливает INF-файл, в системе появляется созданное устройство, но при попытке выполнить для данного INF-файла uninstall комп виснет.

Пересоберите проект, проверьте параметры ядра

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


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

А как это поможет? Заливаю один и тот же бинарник. После перезаливки FPGA драйвер перестаёт писать/читать память FPGA. Перезагружаю комп и работает. Вот комп каждый раз перезагружать не хочется, поэтому удаляю установленный драйвер, создаю и устанавливаю новый и работаю дальше (раньше именно так работало, пока не сломал и не переустановил систему). Сейчас при удалении драйвера комп всё время виснет, уже переставил систему, но не помогло. Т.е. если менять прошивку FPGA, то дальнейшая работа возможна только с перезагрузкой компа. Хочется как-то исправить это.

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


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

А как это поможет? Заливаю один и тот же бинарник. После перезаливки FPGA драйвер перестаёт писать/читать память FPGA. Перезагружаю комп и работает. Вот комп каждый раз перезагружать не хочется, поэтому удаляю установленный драйвер, создаю и устанавливаю новый и работаю дальше (раньше именно так работало, пока не сломал и не переустановил систему). Сейчас при удалении драйвера комп всё время виснет, уже переставил систему, но не помогло. Т.е. если менять прошивку FPGA, то дальнейшая работа возможна только с перезагрузкой компа. Хочется как-то исправить это.

После смены прошивки стирается конфиг пространство PCIE - прописывает его windows при загрузке, так что придётся каждый раз перезагружать

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


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

может удалять драйвер до прошивки FPGA поможет? Ну и если уж совсем беда, я бы попробовал виртуальную машину, ее куда легче передернуть....

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


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

После смены прошивки стирается конфиг пространство PCIE - прописывает его windows при загрузке, так что придётся каждый раз перезагружать

Это 100%?

Хорошо, тогда ситуация такая - всё происходит в первый раз. Залили FPGA, драйвера в системе ещё нет. Запускаем Windriver-wizard, создаём и устанавливаем драйвер. Система видит новое устройство и может по PCIe писать/читать адресное пространство в ПЛИС.

Пару дней назад после перепрошивки FPGA помогал снос старого и создание/установка нового драйвера. Что-то изменилось и теперь так не работает (при сносе драйвера ОС виснет). Уже начинаю сомневаться, работало ли оно вообще по этому принципу (тогда только-только всё запустил и проверил, что пишет/читает данные в ПЛИС), но работало.

 

может удалять драйвер до прошивки FPGA поможет? Ну и если уж совсем беда, я бы попробовал виртуальную машину, ее куда легче передернуть....

Хорошо, счас ещё раз всё с нуля установлю и попробую. А по поводу виртуальной машины, что-то мне кажется, что там будет ещё больше проблем (с доступом к PCIe).

 

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


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

может удалять драйвер до прошивки FPGA поможет? Ну и если уж совсем беда, я бы попробовал виртуальную машину, ее куда легче передернуть....

Такой способ также не проходит. Windows чистая, пока поставил только Vivado и Jungo Windriver.

 

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


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

Нашёл волшебную последовательность действий при которой всё работает:

1. Удаляем установленное PCIe устройство в менеджере устройств (ставим галку Delete the driver software for this device).

2. Перезаливаем прошивку FPGA.

3. Обновляем конфигурацию оборудования в менеджере устройств.

4. Запускаем Jungo WinDriver (Driver Wizard), создаём и устанавливаем драйвер для нового устройства.

5. Получаем рабочую систему без перезапуска ПК (установленный драйвер пишет/читает память в FPGA).

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


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

Делал на Spartan6, у которого аппаратный Endpoint. Поддержку прерываний и DMA контроллер писал сам, правда DMA только в одну сторону - от устройства в систему. Драйвер сделал в Jungo Windriver. Если интересно, схемку вышлю, опытом поделюсь.

 

Нашёл волшебную последовательность действий при которой всё работает:

...

 

Тоже с таким приходится сталкиваться. Win7 помнит все что в нее втыкали, поэтому иногда приходится делать так:

 

1) Запустить командную строку командой cmd

2) В командной строке выполнить команду set devmgr_show_nonpresent_devices=1

3) затем start devmgmt.msc и запустить Диспетчер устройств

4) В Диспетчере устройств в меню Вид поставить галку Показать скрытые устройства

5) Раскрыть нужную ветку, найти отсутсвующее устройство (оно будет затемненным) и удалить его.

 

Можно в батник оформить.

 

Еще бывает полезно включить Write filter, чтобы ничего не приходилось чистить.

 

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


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

здравствуйте. Если AXI4 to PCIe bridge в использовании проще, чем Gen3 Integrated Block for PCI Express , в котором требуется разбирать транзакции, то объясните пожалуйста, в чем наглядное преимущество  Integrated Block?  Cкорости достигаются больше?

Изменено пользователем shide_3

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


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

Приветствую!

7 minutes ago, shide_3 said:

здравствуйте. Если AXI4 to PCIe bridge в использовании проще, чем Gen3 Integrated Block for PCI Express , в котором требуется разбирать транзакции, то объясните пожалуйста, в чем наглядное преимущество  Integrated Block?  Cкорости достигаются больше?

AXI4 to PCIe bridge проще только в использовании конечным юзером,  а в конструкции сложнее так как bridge в своем составе содержит в том числе и  Gen3 Integrated Block for PCI Express. Если функционал или параметры работы обеспечиваемые AXI4 to PCIe bridge вас не устраивают вы можете навернуть свою обвязку вокруг Gen3 Integrated Block for PCI Express. Может и получите и скорости чуть повыше, и интерфейс чуть поудобнее. 

Удачи! Rob.

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


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

17 hours ago, RobFPGA said:

Приветствую!

AXI4 to PCIe bridge проще только в использовании конечным юзером,  а в конструкции сложнее так как bridge в своем составе содержит в том числе и  Gen3 Integrated Block for PCI Express. Если функционал или параметры работы обеспечиваемые AXI4 to PCIe bridge вас не устраивают вы можете навернуть свою обвязку вокруг Gen3 Integrated Block for PCI Express. Может и получите и скорости чуть повыше, и интерфейс чуть поудобнее. 

Удачи! Rob.

ну, задача в общем то не замудренная - передавать блоки по 2к с загрузкой примерно 10 Мбайт/сек. Насколько целесообразно юзать "чистый" аппаратный блок ?

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


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

1 час назад, shide_3 сказал:

ну, задача в общем то не замудренная - передавать блоки по 2к с загрузкой примерно 10 Мбайт/сек. Насколько целесообразно юзать "чистый" аппаратный блок ?

Это только вам решать. Сколько времени потратите на разработку своей обвязки, сколько ошибок там сделаете и какой прирост получите в скорости - зависит от вас.

Приведу пример - когда Altera/Intel только ввела поддержку AMBA AXI - их переходник с амбы на авалон был ужасен и я написал свой. Выигрыш огромен был по скорости работы. А вот обогнать их вариант DMA удалось лишь по размеру IP блока - а ведь я тратил время на разработку и деньги моего работодателя.

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


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

1 hour ago, shide_3 said:

передавать блоки по 2к с загрузкой примерно 10 Мбайт/сек

Это ни о чем.

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


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

Приветствую!

1 hour ago, shide_3 said:

ну, задача в общем то не замудренная - передавать блоки по 2к с загрузкой примерно 10 Мбайт/сек. Насколько целесообразно юзать "чистый" аппаратный блок ?

Чистый аппаратный блок имеет интерфейс TLP layer.  Соответственно вам придется делать обвязку которая будет формировать/парсить правильные пакеты TLP в соответствии с протоколом PCIe. И если передача данных в направлении из FPGA в PC еще не столь сложна то в обратном направлении  придется попотеть чтобы правильно  выстроить цепочку запрос/ответ.  

Делать свою обвязку для PCIe IP  есть смысл если вам скучно на работе и ближайшие пол-года  вам нечем более заняться :whistle3: Тогда есть смысл потратить это время на изучение потрохов PCIe. 

Удачи! Rob.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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