|
|
  |
xapp1052 и chipscopepro |
|
|
|
Dec 28 2009, 10:52
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010

|
Скачал xapp1052 с примером, поставил драйвер из примера, собрал проект: ядро + dma из примера(как сказано в xapp1052) + chipscopepro, прогрузил кристалл, плата прекрасно опознается, запускаю приложение для обмена паттернами по PCI Express, в chipscopepro на transaction interface(что на trn_rd, что на trn_td) наблюдаю одинаковые пакеты, состоящие из 3 64-битных словофреймов(в соотвествии со всеми управляющими сигналами типа start_of_frame, end_of_frame, сигналами готовности): 730000010000007F 0000808600000080 84000000083AC28F следующих один за другим. Payload, судя по принятому пакету - 1, хотя программа отсылает/принимает 32. Да и сам тип пакета - Message Request - так и дожно быть или я чего-то не понимаю? Отличие между пакетами только в последнем DWORD-e. Глубина данных в chipscopepro стоит 1024 сэмплов, на картинке в даташите обмен нормальными пакетами виден при меньшей глубине. Помогите разобраться, что я делаю не так?
|
|
|
|
|
Dec 28 2009, 18:30
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(kstk @ Dec 28 2009, 14:52)  Скачал xapp1052 с примером, поставил драйвер из примера, собрал проект: ядро + dma из примера(как сказано в xapp1052) + chipscopepro, прогрузил кристалл, плата прекрасно опознается, запускаю приложение для обмена паттернами по PCI Express, в chipscopepro на transaction interface(что на trn_rd, что на trn_td) наблюдаю одинаковые пакеты, состоящие из 3 64-битных словофреймов(в соотвествии со всеми управляющими сигналами типа start_of_frame, end_of_frame, сигналами готовности): 730000010000007F 0000808600000080 84000000083AC28F следующих один за другим. Payload, судя по принятому пакету - 1, хотя программа отсылает/принимает 32. Да и сам тип пакета - Message Request - так и дожно быть или я чего-то не понимаю? Отличие между пакетами только в последнем DWORD-e. Глубина данных в chipscopepro стоит 1024 сэмплов, на картинке в даташите обмен нормальными пакетами виден при меньшей глубине. Помогите разобраться, что я делаю не так? Да скорее всего триггер в чипскопе не на те условия, вот и ловит системные сообщения. А зачем понадобилось смотреть чипскопом пакеты? Что-то не работает?
|
|
|
|
|
Dec 29 2009, 07:02
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010

|
Цитата(dmitry-tomsk @ Dec 28 2009, 21:30)  Да скорее всего триггер в чипскопе не на те условия, вот и ловит системные сообщения. А зачем понадобилось смотреть чипскопом пакеты? Что-то не работает? А на какие условия лучше триггер ставить, чтобы ловить то, что нужно? Чипскоп - можно сказать, первые шаги для отработки самописного драйвера и дальнейшего описания устройства в кристалле. А то у нас тут даже ядра не хотят собираться под 11 Исой, только под 10 отчего-то.
|
|
|
|
|
Dec 30 2009, 12:19
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010

|
Цитата(dmitry-tomsk @ Dec 29 2009, 19:21)  условия на _sof сигнал и старшие биты данных при sof = 0, старшие биты 1-го слова равны 0 для чтения памяти, 1 - для записи (смотрите сами состав tlp пакета) Нашел данные, но в виде пакетов CplD, всвязи с этим возник вопрос. Раз есть completion с данными, стало быть должен быть request. Данные CplD присуствуют на шине trn_rd, т.е. передаются от ядра к пользовательскому приложению(в кристалле), стало быть приложение(в чипе) должно высылать ровно такое же количество запросов Mrd, сколько присутствует подтверждений CplD и высылать оно должно их по шине trn_td. Тогда, может, подскажете мне, как такое происходит, если посылку пакетов я инициирую с приложения из под виндовса на компьютере? Т.е. - запускаю приложение из под виндовса(от ксайлинкса из примера), ставлю крыжик Read, давлю кнопку Start и наблюдаю на trn_rd пакеты CplD с отосланными данными.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|