ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 апреля
1208489
klen (14.05.2022 20:50, просмотров: 1030)
похоже я на бронепоезде и в противогазе.. поднял крайнии lwip + FreeRTOS на stm32h750, работает ... но не долго! есть водолазы кто в это говно погружалсо? rx_pool дохнет 

отмораживается на ассерте что при освобождение pbuf счетчик ссылок не нулевой - и превед медвет: lwip куча все . проблемы с приемом пакетов. код взял из примеров который генерит STCube для nucleo-stm32h743zi.


полез отладчикам по этму .. Г.. коду. сделано почему то как всегда через жопу. eth_dma честно выставляет дескрипторы в таблицк и заполняет данными пакета в буферах. А вот теперь самое интересно и пока не понятное для меня - lwip делает еще одно копирование - то есть, выделяет из кучи "свой" pbuf, перекладывает данные из тог оместа куда dma сложило и в формате pbuf отсылает через очередь в задачу где уже парсятся пакеты. после отработки пакета соответствующий pbuf освобождается - тоесть все логично кроме двойного ненужного копирования.


по поводу копирования - я помню времена когда lwip было а FreeRTOS и прочего такого небыло, помню когда ThreadX был мне недоступен и вообще AVR били пиком моды. тут нужны была инфраструктура pbuf покудо небыло в eth переферии никаких буферов и и дма даже в мечтах и все делалось в main на говнокалбЭках. теперь же в новых версиях lwip видимо Адам Дункен по просьбе продавцов платных стеков не стал отрезать нижние протухшие рудименты а тупо заправил их в трусы чтоб не было видно. иначе не продаш ты свой платный закрытый стек за 5000 и 1000 зеленых шекелей.


теперь по поводу корневой проблемы - после некоторой работы котороая за ранее не детерминируется по времени происходит отказ кучи на выделение буфера на прием - все.... ход времени во внутреннней вселенной останвливается.

я еще буду ковырятся но это начинает раздражать.


правильно я понимаю что происходит тупо фрагментация pbuf кучи и в конце концов оно дсдыхает. косвенным подтверждением является то что коллеги сообщают что увеличением размера кучи добились работы в течени суток! невиданный поместный подвиг героизма!


вопрос - я чего не умею (в очто очень хочется верить? иначе прийдется писать самому прослойку с аллокатором) или все татаки оно также как и M$ Win изготовлено...


вопрос покупного стека не рассматриваю - плавали знаем - покупно еще хуже бвает, под сукном не видно какашек. и ваще нужны исходники чтоб исправлять и добавлять.


парралельно подымаю FreeRTOS стек - там все красиво коротко и прилично почти что. но мало. думаю это будет рабочий вариант но lwip теперь из вредность распотрошить хочется.

B-assignment_vanderPloeg.pdf