реклама на сайте
подробности

 
 
> Проблемы со стеком uip на АРМ, контроллер перестаёт отвечать на пакеты
athlon64
сообщение May 17 2011, 08:25
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Контроллер SAM7X512.
Стек uIp был взят из атмеловского примера веб сервера и скорректирован id под мой PHY KSZ8001. Веб сервер прекрасно работает.
После некоторого времени работы заметил что контроллер перестаёт отвечать на ethernet-пакеты, пинг не идёт, веб-интерфейс не открывается. После сброса (контроллера и PHY) всё нормализуется.
Сам контроллер при этом не зависает, микросхема PHY продолжает мигать светодиодом Link/Act как и при нормальной работе.
Такое проявляется довольно редко, последний раз контроллер проработал нормально 4 суток. Контроллер включен в корпоративную сеть.
В каком направлении копать?

Сообщение отредактировал athlon64 - May 17 2011, 08:27


--------------------
Руслан
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nemod
сообщение Jun 1 2012, 12:20
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754



Цитата(athlon64 @ May 17 2011, 11:25) *
Контроллер SAM7X512.
Стек uIp был взят из атмеловского примера веб сервера и скорректирован id под мой PHY KSZ8001. Веб сервер прекрасно работает.
После некоторого времени работы заметил что контроллер перестаёт отвечать на ethernet-пакеты, пинг не идёт, веб-интерфейс не открывается. После сброса (контроллера и PHY) всё нормализуется.
Сам контроллер при этом не зависает, микросхема PHY продолжает мигать светодиодом Link/Act как и при нормальной работе.
Такое проявляется довольно редко, последний раз контроллер проработал нормально 4 суток. Контроллер включен в корпоративную сеть.
В каком направлении копать?


Смотрите бит AT91C_EMAC_BNA,
если такое случилось лучше очистить весь приемный буфер (я обычно просто выкачиваю все пакеты оттуда, recieve пока есть пакеты буфере)
и сбросить этот бит
AT91C_BASE_EMAC->EMAC_RSR |= AT91C_EMAC_BNA;

Остальные приемы которые раньше я делал типа переинициализации периферии не помогали.

Вообще в сетях где много мусора (смотрите снифером wireshark), забивается буфер 16-32 кб довольно быстро (2-4 мс при трафике 60мегабит/с например, 1,5 - 3 мс считая фрагментирование данных по 128 байт).
Если пришел пакет срочно его выгребайте из DMA буфера. 50мгц это очень мало для работы с Ethernet.

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016