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

Проблема с lwIP на microblaze

Здравствуйте,

 

работаю с 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?

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


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

Вот здесь: 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?? И как вообще его апргейдить, врукопашную разбирать новый код и сравнивать со старым?

Изменено пользователем Чиповод

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


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

Ух, я подстрелил кабанчика!

 

Портировал lwip 1.3.2, боролся врукопашную с netifом, изменений было немного. Разрывы соединения исчезли! Но до конца разобраться не удалось по какой причине они возникали.

 

В 1.4.0 ввели очень много новшеств, и говорят работает стабильнее, так, что если кто может - поделитесь инфой как его обновить на MicroBlaze.

 

P.S. На прямо поставленный вопрос есть ли продвижение у Xilinx в обновлении lwIP ответа не последовало.

 

http://forums.xilinx.com/xlnx/board/crawl_...message.id=3996

 

Xilinx дает возможность разработчикам повышать свой скилл.

Изменено пользователем Чиповод

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


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

Используете MAC-контроллер с DMA ?

Ага, c DMA. MAC корка - axi_ethernet, DMA - axi_dma

 

Кэш проца включен ?
Ага, включен.

 

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


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

Тогда - читайте про кэш-когерентность !

 

В описании процессора, про 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, думаю, менять не надо, используйте пока ту, которая в комплекте и разбирайтесь с кэш-когерентностью.

 

Успехов.

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


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

Вон оно как оказывается. Спасибо за наводку, буду разбираться дальше.

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


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

Кстати, сообщаю что в BSP ISE 13.4 обновился lwIP до 1.4.0

Вы уже опробовали 13.4 с LwIp 1.4.0? Стабильнее работает?

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


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

Вы уже опробовали 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 тоже бы так работало.

 

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


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

Я только проверил, что оно компилируется и запускается - соеднинение есть. Однако, кажется не все настройки 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ом.

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


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

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

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

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

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

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

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

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

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

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