-
- извините это из другого разряда) Constantin24(689 знак., 11.01.2018 12:34)
- OMG! Оно заработало. Это значит, в функции low_level_init() уже есть NETIF_FLAG_LINK_UP, но оно выполняется только в том случае когда кабель был воткнут во время инициализации. А если это не так, то NETIF_FLAG_LINK_UP уже никогда не присваивался. Sylvan(145 знак., 11.01.2018 13:18, ссылка)
- Я делаю так. При инициализации lwip сразу ставлю флаги netif->flags |= NETIF_FLAG_UP|NETIF_FLAG_LINK_UP; Evgeniy1294(436 знак., 11.01.2018 15:15 - 15:17)
- Это из рубрики "вредные советы". На чужую кривизну накручиваем свою кривизну в надежде, что вместе две кривизны обнулятся. SciFi(175 знак., 11.01.2018 15:17 - 15:19)
- я не разбирался в данном вопросе углубленно - Constantin24(11.01.2018 14:31)
- Нет, это не так. Оно выполняется, если правильно сработает HAL_ETH_Init в которой выполняется инициализация configure ethernet peripheral (GPIOs, clocks, MAC, DMA). Посмотрите внимательно, что внутри этой функции делается и что она возвращает в 0men(13 знак., 11.01.2018 13:24)
- в моем проекте я вижу что HAL_ETH_Init() вызывается при инициализации. Но если инициализация пройдена без подключения кабеля, то потом уже, если включить кабель, эта функция уже не вызывается - Sylvan(11.01.2018 15:32)
- проверю, попозже, у себя, такой проблемы не замечал. Правда, у меня F407, IAR - 0men(11.01.2018 15:40 - 15:42)
- кстати, у меня нет прерывания от физики на изменение статуса линка. Возможно у вас есть. - Sylvan(11.01.2018 15:51)
- Ну, ежели оторвать и выбросить куб так сложно, можно после подключения кабеля делать сброс МК, и тогда HAL_ETH_Init() вызовется :-) - SciFi(11.01.2018 15:35)
- блин, ну непросто это, таки да (про выбросить и вставить заново без HAL) :)) Оно в общем-то уже работает, после искусственного поднятия флага NETIF_FLAG_LINK_UP во время инициализации. - Sylvan(11.01.2018 15:48)
- HAL_ETH_Init внутри low_level_init :) - 0men(11.01.2018 15:38)
- То есть индусские говнокодеры не рассматривают возможность отключения и подключения кабеля? Впрочем, кого этим удивишь? - SciFi(11.01.2018 15:41)
- да вряд ли в этом дело, у меня все работает когда отключаешь-подключаешь - 0men(11.01.2018 15:46)
- Предлагаю такие эксперименты: SciFi(223 знак., 11.01.2018 15:49)
- был не прав, см выше ) - 0men(11.01.2018 18:07)
- да, попозже посмотрю, давно этот проект был.. - 0men(11.01.2018 16:33)
- да, и у меня тоже с самого начала так работало.Не работало если инициализация - без кабеля, а потом засунуть кабель. Сейчас это вылечено (хоть и костыльно) - Sylvan(11.01.2018 15:49)
- Предлагаю такие эксперименты: SciFi(223 знак., 11.01.2018 15:49)
- да вряд ли в этом дело, у меня все работает когда отключаешь-подключаешь - 0men(11.01.2018 15:46)
- То есть индусские говнокодеры не рассматривают возможность отключения и подключения кабеля? Впрочем, кого этим удивишь? - SciFi(11.01.2018 15:41)
- проверю, попозже, у себя, такой проблемы не замечал. Правда, у меня F407, IAR - 0men(11.01.2018 15:40 - 15:42)
- в моем проекте я вижу что HAL_ETH_Init() вызывается при инициализации. Но если инициализация пройдена без подключения кабеля, то потом уже, если включить кабель, эта функция уже не вызывается - Sylvan(11.01.2018 15:32)
- Я делаю так. При инициализации lwip сразу ставлю флаги netif->flags |= NETIF_FLAG_UP|NETIF_FLAG_LINK_UP; Evgeniy1294(436 знак., 11.01.2018 15:15 - 15:17)
- OMG! Оно заработало. Это значит, в функции low_level_init() уже есть NETIF_FLAG_LINK_UP, но оно выполняется только в том случае когда кабель был воткнут во время инициализации. А если это не так, то NETIF_FLAG_LINK_UP уже никогда не присваивался. Sylvan(145 знак., 11.01.2018 13:18, ссылка)
- извините это из другого разряда) Constantin24(689 знак., 11.01.2018 12:34)