-
- В общем пробовал я крутить с DMA - не прокатило. В итоге использовал гигодивайсовский пример с библиотекой 2.2.1. За полчаса поправил - с полтыка завелся. - vesago(25.06.2026 22:05)
- А чего такой старый стек? Сейчас актуальный 2.2.1 - FDA(25.06.2026 09:45)
- А чем он лучше 1.4? - Balda(25.06.2026 17:48)
- Потому что в готовом коде от STM именно старый. Чтобы использовать
новый, нужно уметь его готовить, а ТС только пытается этому
научиться. - SciFi(25.06.2026 09:50)
- ИИшку в руки и вперёд! За один вечер стек запустит :-) - FDA(25.06.2026 10:03)
- Под отладчиком глянул. Прилетают пакеты, разбираются, определяются
как ARP и далее вызывается low_level_output. Там оно в DMA
отправляется. Почему не приходит назад в компьютер - не понятно.
Видно криво DMA работает. Проект у меня под STM32F107 в IAR
скомпилирован. А гружу в GD32F107. Может тут косяк - в мифической
совместимости st и gd. Я уже один раз об USB споткнулся. Пришлось
переписать на гигадивайсовских либах. Придется китайский пример
заюзать. В проекте для ST vesago(69 знак., 25.06.2026 08:10)
- Иишечка накидывает версии: SciFi(2 знак., 25.06.2026 10:31, ссылка)
- Спасибо, большое. Я уже курсором прокатывал и с дипсиком обсуждаю.
Но у вас более глубоко. Попробую скорректировать соответственно.
Тут видите - неприятно, что проект на uIP работает без проблем.
Потом на этой же плате проект на lwip 1.3 с использованием dhcp
тоже работает. Коллега утверждает, что в кубе собрал мелкий пример
- тоже работает. А я решил с нуля собрать из известного примера STM
и обломился. Хотя с виду просто как валенки. И мне любопытно, в чем
суть проблемы. vesago(211 знак., 25.06.2026 11:01)
- Я в своё время (18 лет назад, да, тогда ещё stm32f107 не было)
просто выкачивал lwip из первоисточника. Драйвер для MAC делал сам,
там 300 строк всего, в отличие от монстра в примере STM. И делал
голый проект, добавлял к нему необходимое по кусочкам. Наверное,
есть плюсы и минусы у такого подхода, но в результате хотя бы точно
понятно, что, куда и зачем, и вообще как это всё работает. - SciFi(25.06.2026 11:19)
- Снимаю шляпу. Не уверен, что осилил бы драйвер MAC. Знать глубоко
нужно, как это работает. - vesago(25.06.2026 11:23)
- Да там прощще, чем IP. Это же обычный периферийный модуль на DMA.
Понять только как оно работает с дескрипторами - и дело в шляпе! Я
долго боялся эзернета. А как пришлось погрузиться - подумал, ну и
дураком же я был! Оно аппаратно делает всё. Тебе только дескриптор
составить и бит поставить. И по приёму так же - обработал
прерывание, посмотрел биты, забрал данные по дескрипторам.
Идеально! - Nikolay_Po(25.06.2026 12:18, +1)
- Отправку можно сделать гораздо проще, чем приём. Запихиваем кадр в буфер и вперёд: SciFi(1176 знак., 25.06.2026 13:10, +1)
- Да там прощще, чем IP. Это же обычный периферийный модуль на DMA.
Понять только как оно работает с дескрипторами - и дело в шляпе! Я
долго боялся эзернета. А как пришлось погрузиться - подумал, ну и
дураком же я был! Оно аппаратно делает всё. Тебе только дескриптор
составить и бит поставить. И по приёму так же - обработал
прерывание, посмотрел биты, забрал данные по дескрипторам.
Идеально! - Nikolay_Po(25.06.2026 12:18, +1)
- Снимаю шляпу. Не уверен, что осилил бы драйвер MAC. Знать глубоко
нужно, как это работает. - vesago(25.06.2026 11:23)
- Я в своё время (18 лет назад, да, тогда ещё stm32f107 не было)
просто выкачивал lwip из первоисточника. Драйвер для MAC делал сам,
там 300 строк всего, в отличие от монстра в примере STM. И делал
голый проект, добавлял к нему необходимое по кусочкам. Наверное,
есть плюсы и минусы у такого подхода, но в результате хотя бы точно
понятно, что, куда и зачем, и вообще как это всё работает. - SciFi(25.06.2026 11:19)
- Спасибо, большое. Я уже курсором прокатывал и с дипсиком обсуждаю.
Но у вас более глубоко. Попробую скорректировать соответственно.
Тут видите - неприятно, что проект на uIP работает без проблем.
Потом на этой же плате проект на lwip 1.3 с использованием dhcp
тоже работает. Коллега утверждает, что в кубе собрал мелкий пример
- тоже работает. А я решил с нуля собрать из известного примера STM
и обломился. Хотя с виду просто как валенки. И мне любопытно, в чем
суть проблемы. vesago(211 знак., 25.06.2026 11:01)
- Иишечка накидывает версии: SciFi(2 знак., 25.06.2026 10:31, ссылка)
- Вот что у меня записано: alag57(58 знак., 21.06.2026 18:44)
- Благодарю, попробую. - vesago(21.06.2026 18:55)
- Перед ICMP должен быть ARP. Компьютер не получил ответ на запрос
ARP, до ICMP дело не дошло. - SciFi(21.06.2026 18:05)
- Спасибо!! Теперь понятно. Значит сам стек не шевелится. Или данные
криво идут. - vesago(21.06.2026 18:26)
- Полезно включить отладочный выхлоп (в UART, например). LWIP может выдавать туда много информации. - SciFi(21.06.2026 18:28)
- Спасибо!! Теперь понятно. Значит сам стек не шевелится. Или данные
криво идут. - vesago(21.06.2026 18:26)