Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программа для тестирования pci
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sergey sva
Чем протестировать pci устройство? И если менять прошифку(после измен.) придется каждый раз перезагружать комп, много времени на это уходит может есть способы как то ускорить это? или испытывать под досом, поделитесь опытом ?
sergey sva
Ну по поводу протестировать наверно универсального не чего нет только свою программу писать,под свой девайс.
А как удобнее отлаживать?, изменил код загрузил в плисину теперь что бы проверить нужно перезагружать комп или может есть способ попроще?
eugen_pcad_ru
У меня та же проблема.
Это ж плагэндплэйное утройство... Так что по моему без перезагрузки никуда. И не важно, дос это, виндовс или линух.
Хотя может я чего-то и не знаю. Если у кого есть какие предположения (пусть даже смешныеsm.gif) всё равно просмотрю
Andrew2000
На то есть CompactPCI HotSwap
или так:
http://www.jungo.com/st/hotswap.html
eugen_pcad_ru
2Andrew:
если можно вкратце о хотсвап от jungo: систему что, перегружать не надо чтоб появилась новая прошивка?
sergey sva
Мучаю PCI платку ужасно не удобно отлаживать, плату вставляю вентиляторы работают биос не стартует, в каком состоянии, в чем именно проблема не понятно не звуков не экранов, может есть софт специальный когда ось загружена как то протестировать плату, какого сигнала ей не хватает.
kovigor
Цитата(sergey sva @ Sep 8 2011, 14:06) *
Мучаю PCI платку ужасно не удобно отлаживать, плату вставляю вентиляторы работают биос не стартует, в каком состоянии, в чем именно проблема не понятно не звуков не экранов, может есть софт специальный когда ось загружена как то протестировать плату, какого сигнала ей не хватает.


Делал и Target, и Master, причем не раз. Отладка осуществлялась обычным осциллографом. А чаще всего от него толку не было, посему приходилось глубоко вникать в спецификацию, менять прошивку и множество раз (раз 100 за одну отладку) перегружаться. Другого пути нет. Разве что покупать очень недешевое спец. оборудование. Ну или же делать PCI - сниффер, захватывающий, например, первые десятки транзакций после включения питания. Один раз я так и сделал. Но у вас-то этот номер не пройдет, поскольку вы пока не можете запустить даже самый первый свой проект, не говоря уже о сниффере ...
Serhiy_UA
Цитата(sergey sva @ Sep 8 2011, 14:06) *
...может есть софт специальный когда ось загружена как то протестировать плату, какого сигнала ей не хватает.

Сначала BIOS должен увидеть Вашу плату в компьютере, для этого подойдет PCISniffer 1.5 (полность free), только запускается он с отдельного CD.
http://www.miray.de/products/sat.pcisniffer.html

А дальше он поможет немного углубиться в тестируемую плату, если она вообще дышит....
sergey sva
Цитата
А дальше он поможет немного углубиться в тестируемую плату, если она вообще дышит....

Да сейчас бы разделить в чем дело либо в плате либо в прошивке.
Только программа не запустится, биос не запускается, кнопку включения нажимаю включаются вентиляторы и все, если плату выдернуть то биос запускается появляется стартовый экран биоса. А так даже монитор не включается,только вентиляторы.
Если другу плату вставить,USB-PCI(заводская) то все запускается PCI master исправен.
Цитата
Но у вас-то этот номер не пройдет, поскольку вы пока не можете запустить даже самый первый свой проект, не говоря уже о сниффере

Да уж без помощи не как)).
Сейчас не могу разделить в чем проблема в железе или в прошивке.
Если вы много раз делали может у вас что завалялось рабочее blush.gif ?
Исходников не надо просто бы untileted.MCS собранный с рабочим кодом, что бы можно было разделить кто не исправен железо или программа.

для XC3S250E XCF04S

вот ucf файл.

Код
NET "AD_p[31]" IOSTANDARD = PCI66_3;
NET "AD_p[30]" IOSTANDARD = PCI66_3;
NET "AD_p[29]" IOSTANDARD = PCI66_3;
NET "AD_p[28]" IOSTANDARD = PCI66_3;
NET "AD_p[27]" IOSTANDARD = PCI66_3;
NET "AD_p[26]" IOSTANDARD = PCI66_3;
NET "AD_p[25]" IOSTANDARD = PCI66_3;
NET "AD_p[24]" IOSTANDARD = PCI66_3;
NET "AD_p[23]" IOSTANDARD = PCI66_3;
NET "AD_p[22]" IOSTANDARD = PCI66_3;
NET "AD_p[21]" IOSTANDARD = PCI66_3;
NET "AD_p[20]" IOSTANDARD = PCI66_3;
NET "AD_p[19]" IOSTANDARD = PCI66_3;
NET "AD_p[18]" IOSTANDARD = PCI66_3;
NET "AD_p[17]" IOSTANDARD = PCI66_3;
NET "AD_p[16]" IOSTANDARD = PCI66_3;
NET "AD_p[15]" IOSTANDARD = PCI66_3;
NET "AD_p[14]" IOSTANDARD = PCI66_3;
NET "AD_p[13]" IOSTANDARD = PCI66_3;
NET "AD_p[12]" IOSTANDARD = PCI66_3;
NET "AD_p[11]" IOSTANDARD = PCI66_3;
NET "AD_p[10]" IOSTANDARD = PCI66_3;
NET "AD_p[9]" IOSTANDARD = PCI66_3;
NET "AD_p[8]" IOSTANDARD = PCI66_3;
NET "AD_p[7]" IOSTANDARD = PCI66_3;
NET "AD_p[6]" IOSTANDARD = PCI66_3;
NET "AD_p[5]" IOSTANDARD = PCI66_3;
NET "AD_p[4]" IOSTANDARD = PCI66_3;
NET "AD_p[3]" IOSTANDARD = PCI66_3;
NET "AD_p[2]" IOSTANDARD = PCI66_3;
NET "AD_p[1]" IOSTANDARD = PCI66_3;
NET "AD_p[0]" IOSTANDARD = PCI66_3;
NET "CBE_p[3]" IOSTANDARD = PCI66_3;
NET "CBE_p[2]" IOSTANDARD = PCI66_3;
NET "CBE_p[1]" IOSTANDARD = PCI66_3;
NET "CBE_p[0]" IOSTANDARD = PCI66_3;
NET "INTAn_p" IOSTANDARD = PCI66_3;
NET "TRDYn_p" IOSTANDARD = PCI66_3;
NET "DEVSELn_p" IOSTANDARD = PCI66_3;
NET "STOPn_p" IOSTANDARD = PCI66_3;
NET "SERRn_p" IOSTANDARD = PCI66_3;
NET "PERRn_p" IOSTANDARD = PCI66_3;
NET "PAR_p" IOSTANDARD = PCI66_3;
NET "IDSEL_p" IOSTANDARD = PCI66_3;
NET "IRDYn_p" IOSTANDARD = PCI66_3;
NET "FRAMEn_p" IOSTANDARD = PCI66_3;
NET "CLK_p" IOSTANDARD = PCI66_3;
NET "RSTn_p" IOSTANDARD = PCI66_3;
# PlanAhead Generated physical constraints
NET "AD_p[0]" LOC = P50;
NET "AD_p[1]" LOC = P49;
NET "AD_p[2]" LOC = P48;
NET "AD_p[3]" LOC = P47;
NET "AD_p[4]" LOC = P42;
NET "AD_p[5]" LOC = P41;
NET "AD_p[6]" LOC = P40;
NET "AD_p[7]" LOC = P39;
NET "AD_p[8]" LOC = P36;
NET "AD_p[9]" LOC = P35;
NET "AD_p[10]" LOC = P34;
NET "AD_p[11]" LOC = P33;
NET "AD_p[12]" LOC = P31;
NET "AD_p[13]" LOC = P30;
NET "AD_p[14]" LOC = P29;
NET "AD_p[15]" LOC = P28;
NET "AD_p[16]" LOC = P25;
NET "AD_p[17]" LOC = P24;
NET "AD_p[18]" LOC = P23;
NET "AD_p[19]" LOC = P22;
NET "AD_p[20]" LOC = P19;
NET "AD_p[21]" LOC = P18;
NET "AD_p[22]" LOC = P16;
NET "AD_p[23]" LOC = P15;
NET "AD_p[24]" LOC = P12;
NET "AD_p[25]" LOC = P11;
NET "AD_p[26]" LOC = P9;
NET "AD_p[27]" LOC = P8;
NET "AD_p[28]" LOC = P5;
NET "AD_p[29]" LOC = P4;
NET "AD_p[30]" LOC = P3;
NET "AD_p[31]" LOC = P2;
NET "CBE_p[0]" LOC = P60;
NET "CBE_p[1]" LOC = P62;
NET "CBE_p[2]" LOC = P202;
NET "CBE_p[3]" LOC = P199;
NET "CLK_p" LOC = P186;
NET "DEVSELn_p" LOC = P68;
NET "FRAMEn_p" LOC = P203;
NET "IDSEL_p" LOC = P181;
NET "INTAn_p" LOC = P193;
NET "IRDYn_p" LOC = P200;
NET "PAR_p" LOC = P45;
NET "PERRn_p" LOC = P64;
NET "RSTn_p" LOC = P180;
NET "SERRn_p" LOC = P63;
NET "STOPn_p" LOC = P65;
NET "TRDYn_p" LOC = P205;
kovigor
Цитата(sergey sva @ Sep 8 2011, 17:43) *
Сейчас не могу разделить в чем проблема в железе или в прошивке.
для XC3S250E XCF04S


Есть только исходники, для XC2S100. Но их придется искать в архиве. До утра надеюсь найти. Подходит такой вариант ?

P.S. если у вас PCI66 (у меня только 33), то придется задавать Constraints. даже для PCI33 это обязательно. а для 66 - так и вовсе необходимо, оно может не работать только из-за этого ...
sergey sva
Цитата
Есть только исходники, для XC2S100. Но их придется искать в архиве. ..

Конечно ,если у вас будет желание и настроение помочь буду очень благодарен ))
PCI Частота сейчас 20МГЦ, убавил в в биосе.
kovigor
Цитата(sergey sva @ Sep 8 2011, 18:26) *
Конечно ,если у вас будет желание и настроение помочь буду очень благодарен ))
PCI Частота сейчас 20МГЦ, убавил в в биосе.



Вот, должно работать, судя по журналу.
высылаю на asv-lab@yandex.ru.
Просьба не распространять ...
sergey sva
Хорошо, попробую, пришло.
sergey sva
Комп стал загружаться но нового устройства нет(ос не видит не чего нового), но и это уже хорошо )) если будут советы пишите.
Serhiy_UA
Цитата(sergey sva @ Sep 8 2011, 22:33) *
...ос не видит не чего нового..

У Вас с правильностью схемы, с согласованием уровней, с сигналами и их целостностью все в порядке? Проверяли осциллографом и что именно? Рекомендации по трассировке выдержаны (длина цепей и конденсаторные фильтры), там ведь с ними достаточно строго.... Еще правильность пайки и очистки от флюса... Вы бы выложили фрагменты схемы и трассировки (лучше в *.pdf или фото), а то получается гадание на кофейной гуще...
kovigor
Цитата(sergey sva @ Sep 8 2011, 22:33) *
Комп стал загружаться но нового устройства нет(ос не видит не чего нового), но и это уже хорошо )) если будут советы пишите.


А в чем была проблема, если не секрет ?

вы на конфиг. запросы хоста отвечаете ? Если нет, то BIOS выключит вам синхросигнал и ОС ничего не увидит ...
sergey sva
Цитата
А в чем была проблема, если не секрет ?

Пока сам еще не понял комп загружается, начал но устройства не находит.
Цитата
вы на конфиг. запросы хоста отвечаете ?

Нужно что то добавить в ваш код ? вы уж простите я еще с vhgl /verelog не освоился.
kovigor
Цитата(sergey sva @ Sep 9 2011, 11:40) *
Нужно что то добавить в ваш код ?


В мой - нет. Надо в ваш, если вы не отвечаете на конфиг. запросы. Иначе будет как минимум то, что вы описали: машина будет загружаться, но ОС вашу плату не увидит ...

P.S.
Так это она с моим проектом запустилась или с вашим ?
sergey sva
Цитата
Так это она с моим проектом запустилась или с вашим ?

С вашим. Только подкорректировал UCF.
kovigor
Цитата(sergey sva @ Sep 9 2011, 12:32) *
С вашим. Только подкорректировал UCF.


У меня он работал нормально. Причем на 33 МГц. BIOS при загрузке выводит табличку с обнаруженными платами. Там ее тоже нет ? Может, у вас со схемотехникой что-то, или с длинами линий, как тут уже предполагали ?
sergey sva
Нет таблички нет
на стартовом экране BIOS
pci listing....
Pci no DeviceID no......
Сейчас тестирую на компе с линуксом, попробую поставить виндовс, и плату проверю всю разводку может какие пины не правильно в ucf указаны.
Плата не моя просто взял для ознакомления, она вроде от рабочего проекта.
PRSNT1 ... не присоединены если не к чему, не должны же влиять ?
kovigor
Цитата(sergey sva @ Sep 9 2011, 12:56) *
Нет таблички нет
на стартовом экране BIOS
pci listing....
Pci no DeviceID no......
Сейчас тестирую на компе с линуксом, попробую поставить виндовс, и плату проверю всю разводку может какие пины не правильно в ucf указаны.
Плата не моя просто взял для ознакомления, она вроде от рабочего проекта.
PRSNT1 ... не присоединены если не к чему, не должны же влиять ?


Не должны, по идее. Проверьте все еще раз. А еще выньте вашу плату и вставьте фабричную. Она в таблице BIOS появляется ?

И еще. Эта плата, что вы взяли, не на 66МГц рассчитана ?
sergey sva
Нет, частота 33мгц. фабричная , работает она pci usb пробовал в нее флешку вставлять.
kovigor
Цитата(sergey sva @ Sep 9 2011, 13:56) *
Нет, частота 33мгц. фабричная , работает она pci usb пробовал в нее флешку вставлять.

Я говорю, вставьте фабричную плату и понаблюдайте за тем, как изменилась табличка BIOS
sergey sva
Тоже самое
pci listing....
Pci no DeviceID no......
но плата работает.
kovigor
Цитата(sergey sva @ Sep 9 2011, 14:31) *
Тоже самое
pci listing....
Pci no DeviceID no......
но плата работает.


Не должно так быть. возьмите другую машину
sergey sva
Пробовал разные pci карточки все появляется все работают,
Стартовый экран биоса всегда
pci listing....
Bus no, Device no......
Но все карточки работаю кроме этой, должна хоть как неопределенное устройство определяться может конечно дело в линуксе,попробую сейчас винду поставить.
Нажмите для просмотра прикрепленного файла
sergey sva
Дело было не в линуксе, ошибся когда ucf файл заполнял IDSEL не туда привязал.
Посмотрел прогой которую порекомендовали в посте номер 8. (отличная прога самое главное быстро загружается )
Ваше устройство определилась как шина. вообщем все работает теперь можно разбираться с VHDL/Verilog Огромное спасибо, очень помогли.
kovigor
Цитата(sergey sva @ Sep 9 2011, 23:26) *
Ваше устройство определилась как шина. вообщем все работает теперь можно разбираться с VHDL/Verilog


Вставил эту плату в свою машину. BIOS говорит, что это MEMORY CONTROLLER (как и должно быть) с VID/PID = 1234/4321. Windows эту плат также видит и соотв. образом отображает в списке устройств. Так должно быть и у вас.

Вот вам программа, досовская (потребуется дискетка или флэшка с DOS), позволяющая находить все PCI - устройства в машине, а также читать/писать данные в их области памяти и ввода/вывода. Очень полезная, я отлаживал свои проекты именно ей:

http://zalil.ru/31675937
sergey sva
Спасибо, то что надо. Очень помогли.
Линукс определил как мемори контроллер, это прграмма PCIsniffer определила как BUS 2.

kovigor
Цитата(sergey sva @ Sep 10 2011, 13:48) *
Спасибо, то что надо. Очень помогли.
Линукс определил как мемори контроллер, это прграмма PCIsniffer определила как BUS 2.


То-то я думаю, странно. У меня эта плата работала добрый месяц на разных машинах. Должна бы заработать и у вас. Да, тесты более глубокие я для нее писал сам. На АСМе, под ДОСом. Переводил процессор в Big Real - режим, после чего мне становилась доступной вся память машины, и можно было как угодно читать/записывать память и пространство ввода/вывода моей платы. А для отладки сгодится и dbg.exe ...
sergey sva
С програмкой dbg не возникало таких проблем
Нажмите для просмотра прикрепленного файла
Ругается ,что устройство не поддерживает BAR0
kovigor
Цитата(sergey sva @ Sep 13 2011, 17:37) *
С програмкой dbg не возникало таких проблем
Ругается ,что устройство не поддерживает BAR0


Это в вашем проекте или в моем ?
sergey sva
Эта ошибка если выбрать любое устройство. (и с вашим также).
Пробовал все ос от дос622 до милениума, пробовал с флешки и с диска грузиться, скачал более новую dbg то же самое.
kovigor
Цитата(sergey sva @ Sep 13 2011, 18:36) *
Эта ошибка если выбрать любое устройство. (и с вашим также).


Шут с ним. Вам-то не это надо. Надо иметь возможность читать и писать данные в память платы
sergey sva
Попробую сделать свою программку под дос для чтения и записи памяти. Под дос не чего толком не программировал,для изучения поставил builder 3.1 на флешку с досом, но не пойму как обращаться к устройству думаю так: нужно проверить все vendors выбрать тот который нужен и прочитать адреса ввода вывода памяти. начала не знаю с чего начать, как перечислить все устройства что бы найти нужное ?
в цикле for?, какими функциями readfile по определенному адресу. может просто ключевые слова по которым искать.
kovigor
Цитата(sergey sva @ Sep 13 2011, 22:04) *
Попробую сделать свою программку под дос для чтения и записи памяти. Под дос не чего толком не программировал,для изучения поставил builder 3.1 на флешку с досом, но не пойму как обращаться к устройству думаю так: нужно проверить все vendors выбрать тот который нужен и прочитать адреса ввода вывода памяти. начала не знаю с чего начать, как перечислить все устройства что бы найти нужное ?
в цикле for?, какими функциями readfile по определенному адресу. может просто ключевые слова по которым искать.


не нужен там Билдер. это надо на АСМе писать. Платы ищутся посредством функций PCIBIOS. Писать и читать в их память можно или в защищенном режиме, или в режиме Big Real, что гораздо проще. Об этом режиме см. у Кулакова в "Специальном справочнике". Исходнике своих программок сейчас выложу, можете ими и пользоваться ...

Отправил.

в первую очередь см. файлы с названиями, начинающимися с "drv..." (drv_mstr.asm можете пока пропустить).

Компиляция:
tasm.exe my_file.asm
tlink.exe /x /t my_file.obj

в результате вы получите файл my_file.com. запускать его нужно из-под DOSа ...

О программировании под DOS см. "Cамоучитель" Финогенова.
Если что непонятно - спрашивайте. Хоть и писал я все это больше трех лет назад, но постараюсь вспомнить ...
sergey sva
Спасибо сейчас посмотрю.
sergey sva
Собрал на флешке набор для программирования под дос, watcom + power view + dos32/g + код для работы с pci на си. Может кому пригодится,пол работы сделано. Осталось написать простенькую прогу для чтения записи по адресам /портам.
Образ флешки сжат 7z, можно образ записать прогой ultraiso на флешку ,перезагрузить ком и выбрать загрузка с флешки.
Есть какие то библиотеки оконные для watcoma, как они называются?
pciboot
kovigor
Цитата(sergey sva @ Sep 20 2011, 22:16) *
Есть какие то библиотеки оконные для watcoma, как они называются?


Дался вам этот Си ... Я же вам готовый проект дал на АСМЕ, там и чтение, и запись. Проще едва ли придумаете ...
sergey sva
Цитата
Дался вам этот Си ... Я же вам готовый проект дал на АСМЕ, там и чтение, и запись. Проще едва ли придумаете

Очень вам благодарен,помогли разобраться,так бы долго пришлось разбираться тем более я под дос не программировал не разу,теперь все проясняется.
Есть еще вопрос устройства которые имеют несколько функций, какая структура у них конфиг. пространства?
Vendorid deviceid по нулям читаются..
kovigor
Цитата(sergey sva @ Sep 27 2011, 22:30) *
Очень вам благодарен,помогли разобраться


Не за что, мне было приятно вам помочь ...

Цитата(sergey sva @ Sep 27 2011, 22:30) *
Есть еще вопрос устройства которые имеют несколько функций, какая структура у них конфиг. пространства?
Vendorid deviceid по нулям читаются..


Не хочу выдумывать, т.к., я этого не делал, не было необходимости. Почитайте того же Гука "Шины PCI, USB и FireWire", а также посмотрите Tom Shanley "PCI System Architecture" (главы 17, 18, 19), еще "PCI bus demystified", ну и, конечно, спецификацию ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.