Чиповод
Jul 30 2011, 22:39
Здравствуйте,
работаю с lwIP v.1.3.0, из примера XAPP1026. Проект standalone, режим RAW_API. Передача от платы в сторону PC идет отлично, поток 75МБит/c, который мне и нужен синими TCP пакетиками ниагарским потоком льется в окне WireShark.
А вот при попытке передачи от PC к плате lwIP захлебывается через некоторое время. Без каких-либо видимых причин через секунд 10 lwIP перестает отвечать на приходящие пакеты. PC пытается делать retransmition и через несколько таких попыток делает вывод, что серверъ умер.
Что интересно, если искусственно снижать скорость посылки пакетов с PC, то система начинает работать стабильнее, и на скорости ~300килобит/c вылетов замечено не было в пределах 30 мин. Но 300К это маловато.
Не встречался ли кто с подобными проблемами в lwIP?
Чиповод
Jul 31 2011, 13:24
Вот здесь:
http://lists.gnu.org/archive/html/lwip-use...5/msg00062.html у человека тоже была проблема с lwIP, немного по другому поводу правда.
Народ тамошний ему советует: перекинь lwIP с 1.3.0 на 1.4.0 - делов, мол, на один день, а работает намного стабильнее. И еще выкинь из системы таймеры (NO_SYS_NO_TIMERS=1) и будет тебе полное счастье. Еще и скорость на 20% поднимется.
Человек тот внял совету, портанул свой lwIP (на 1.3.2 правда), таймеры выкинул и действительно счастье к нему пришло.
С ходу проапргейдить lwIP до 1.4.0 не удалось. Структурки lwIP, которые использует netif от Xilinx'а изменились, не могу найти толковый список изменений.
Кто-нибудь апгрейдил lwIP для Микроблейза до 1.4.0?? И как вообще его апргейдить, врукопашную разбирать новый код и сравнивать со старым?
Чиповод
Aug 1 2011, 19:31
Ух, я подстрелил кабанчика!
Портировал lwip 1.3.2, боролся врукопашную с netifом, изменений было немного. Разрывы соединения исчезли! Но до конца разобраться не удалось по какой причине они возникали.
В 1.4.0 ввели очень много новшеств, и говорят работает стабильнее, так, что если кто может - поделитесь инфой как его обновить на MicroBlaze.
P.S. На прямо поставленный вопрос есть ли продвижение у Xilinx в обновлении lwIP ответа не последовало.
http://forums.xilinx.com/xlnx/board/crawl_...message.id=3996Xilinx дает возможность разработчикам повышать свой скилл.
Дмитрий Мазунин
Aug 3 2011, 10:22
Используете MAC-контроллер с DMA ?
Кэш проца включен ?
Чиповод
Aug 6 2011, 20:56
Цитата(Дмитрий Мазунин @ Aug 3 2011, 14:22)

Используете MAC-контроллер с DMA ?
Ага, c DMA. MAC корка - axi_ethernet, DMA - axi_dma
Цитата(Дмитрий Мазунин @ Aug 3 2011, 14:22)

Кэш проца включен ?
Ага, включен.
Дмитрий Мазунин
Aug 8 2011, 12:25
Тогда - читайте про кэш-когерентность !
В описании процессора, про MB не скажу, не работал, а для PPC - PowerPC Processor Reference Guide, Chapter 5: Memory-System Management, Software Management of Cache Coherency.
То же самое должно быть описано для MB, да это верно и для любого процессора с кэш в системе с ДМА.
Добавлю - необходимо просмотреть Xilinx-овский NETIF, там не очень аккуратно сделаны FLUSH/INVALIDATE (по крайней мере, так было в EDK 9.1). Кроме этого, была несовместимость с кэш-когерентностью в самом стеке LWIP - Xilinx не правит стек (видимо, принципиально), мы правили сами. Это относится также к версии 9.1, LWIP 1,2,0
Пока не вычистите все это, так и будет при вкл. кэш данных - то работает, то нет, чуть код или данные поменялись - другая ситуация...
Для контроля, что это именно эта проблема, откл. кэш данных.
Версию LWIP, думаю, менять не надо, используйте пока ту, которая в комплекте и разбирайтесь с кэш-когерентностью.
Успехов.
Чиповод
Aug 9 2011, 09:04
Вон оно как оказывается. Спасибо за наводку, буду разбираться дальше.
Чиповод
Jan 27 2012, 09:25
Кстати, сообщаю что в BSP ISE 13.4 обновился lwIP до 1.4.0
Цитата(Чиповод @ Jan 27 2012, 13:25)

Кстати, сообщаю что в BSP ISE 13.4 обновился lwIP до 1.4.0
Вы уже опробовали 13.4 с LwIp 1.4.0? Стабильнее работает?
Чиповод
Feb 3 2012, 14:47
Цитата(rezuk @ Feb 2 2012, 19:03)

Вы уже опробовали 13.4 с LwIp 1.4.0? Стабильнее работает?
Я только проверил, что оно компилируется и запускается - соеднинение есть. Однако, кажется не все настройки lwIP 1.4.0 были перенесены в BSP Xilinx. По крайней мере NO_SYS_NO_TIMERS я там не нашел. IP core axi_ethernet и драйвер для нее тоже надо обновлять до последней версии в ISE 13.4.
А по поводу стабильности, как выяснилось, сильно влияют настройки lwIP. По крайней мере, я подобрал такие, при которых 1.3.2 работает у меня стабильно. Наверно и 1.3.0 тоже бы так работало.
knirti
Feb 15 2012, 10:20
Цитата(Чиповод @ Feb 3 2012, 18:47)

Я только проверил, что оно компилируется и запускается - соеднинение есть. Однако, кажется не все настройки lwIP 1.4.0 были перенесены в BSP Xilinx. По крайней мере NO_SYS_NO_TIMERS я там не нашел. IP core axi_ethernet и драйвер для нее тоже надо обновлять до последней версии в ISE 13.4.
А по поводу стабильности, как выяснилось, сильно влияют настройки lwIP. По крайней мере, я подобрал такие, при которых 1.3.2 работает у меня стабильно. Наверно и 1.3.0 тоже бы так работало.
Не подскажите что за настройки, интереса ради?
Вопрос к тем, кто реализовывал Eth в XPS-SDK на плис. Замеряли ли Вы как быстро данные посланные с компьютера в плату с реализованным Eth вернутся обратно? У меня получалось на спартане 6 (speedgrade -2) со встроенным примером на С в SDK чуть больше 1 мс, если не превышать размер окна пакета. Замерял Wiresharkом.