-
- У меня есть подобное, только у меня виноват в этом не совсем сам
LWIP, а скорее его порт, взятый из примеров производителя, там
общение с PHY идет путем ожидания готовности в цикле. Физически
общение контроллера с PHY идет по последовательному каналу на не
очень высокой частоте, из-за этого все зависает пока ожидает
окончания инициализации PHY. Мне показалось что проблема в этом, но
переделывать на работу по прерываниям я пока не стал. - AlexBi(19.01.2026 08:51)
- придется искать искать засранца - POV(19.01.2026 10:22)
- А болван ничего не говорит по этому поводу? - SciFi(19.01.2026 10:26)
- Неа.. но он мне помог состряпать логи в нужных местах с измерением
длительности зависонов - я думал что это кеширование символов
тупит. Оказалось периодик_хэндл стека. POV(1 знак., 19.01.2026 10:48, картинка)
- Если около секунды висит в одном месте, можно прикрутить простейшую
вещь - периодически выплёвывать содержимое регистра PC проца в
отладочный интерфейс. Возможно, там висящий код хорошо локализован,
и по адресам можно вычислить через MAP, где именно висит. Так-то
LWIP позволяет всё сделать красиво, но ленивые погромисты портируют
криво, вот у них и висит. - SciFi(19.01.2026 10:55)
- вот оно чё... POV(2 знак., 19.01.2026 20:22, картинка, картинка)
- хых "переделай эти места кроме библиотечного модуля на конечные
автоматы, чтобы не было delay_ms".. дело нехитрое и понятное как и
что писать. Но минута работы против моего определённого времени -
это приятно... POV(94 знак., 19.01.2026 20:50, картинка, картинка)
- Не будет ли глюков из-за того, что МАС и PHY будут
недоинициализированными между шагами? Может лучше во все циклы
ожидания вставить что-то типа xTaskDelay(10)? - AlexBi(19.01.2026 23:27)
- Ну это пока болван навскидку реальзовал. Надо всё тестить. Да и глазами по его коду пробежать. - POV(19.01.2026 23:32)
- Не будет ли глюков из-за того, что МАС и PHY будут
недоинициализированными между шагами? Может лучше во все циклы
ожидания вставить что-то типа xTaskDelay(10)? - AlexBi(19.01.2026 23:27)
- delay_ms(1000) - это прекрасно. Адуринщиков подпустили к lwip :-( - SciFi(19.01.2026 20:44)
- В примерах от производителей такое часто. Это же пример "как
работать с периферией", а не "как правильно реализовать драйвер
lwIP". - LightElf(20.01.2026 10:42)
- Сколько за софт заплатили, столько и получили. Всё честно :-) - SciFi(20.01.2026 10:49)
- Это не LWIP, это проделки программистов Artery который такой порт написали. Этот порт еще зависит от марки PHY. Я его немного переделывал, т.к. моего PHY не было в их списке, эти простые задержки выкидывал, но тормоза все равно остаются, т.к. передача-прием в PHY сделано на циклах опроса битов готовности в МАС, а еще поверх этого цикл ожидания выполнения команды самим PHY, т.е. ожидание от него ответа о готовности. В сумме набегает заметное глазом время, у меня из-за этого AlexBi(38 знак., 19.01.2026 23:17)
- В примерах от производителей такое часто. Это же пример "как
работать с периферией", а не "как правильно реализовать драйвер
lwIP". - LightElf(20.01.2026 10:42)
- хых "переделай эти места кроме библиотечного модуля на конечные
автоматы, чтобы не было delay_ms".. дело нехитрое и понятное как и
что писать. Но минута работы против моего определённого времени -
это приятно... POV(94 знак., 19.01.2026 20:50, картинка, картинка)
- вот оно чё... POV(2 знак., 19.01.2026 20:22, картинка, картинка)
- Если около секунды висит в одном месте, можно прикрутить простейшую
вещь - периодически выплёвывать содержимое регистра PC проца в
отладочный интерфейс. Возможно, там висящий код хорошо локализован,
и по адресам можно вычислить через MAP, где именно висит. Так-то
LWIP позволяет всё сделать красиво, но ленивые погромисты портируют
криво, вот у них и висит. - SciFi(19.01.2026 10:55)
- Неа.. но он мне помог состряпать логи в нужных местах с измерением
длительности зависонов - я думал что это кеширование символов
тупит. Оказалось периодик_хэндл стека. POV(1 знак., 19.01.2026 10:48, картинка)
- А болван ничего не говорит по этому поводу? - SciFi(19.01.2026 10:26)
- придется искать искать засранца - POV(19.01.2026 10:22)
- У меня есть подобное, только у меня виноват в этом не совсем сам
LWIP, а скорее его порт, взятый из примеров производителя, там
общение с PHY идет путем ожидания готовности в цикле. Физически
общение контроллера с PHY идет по последовательному каналу на не
очень высокой частоте, из-за этого все зависает пока ожидает
окончания инициализации PHY. Мне показалось что проблема в этом, но
переделывать на работу по прерываниям я пока не стал. - AlexBi(19.01.2026 08:51)