-
- Было бы неплохо увидеть версию стека и файлы ethernetif.c и lwipopts.h. Поведение явно ненормальное. Ещё неплохо будет выяснить причину падения, это можно узнать через регистры ядра. - evgeniy1294(08.09.2018 15:59)
- Версия? Не смотрел какая - такая как в последнем Кубе. Apтём(262 знак., 08.09.2018 16:24)
- Современно - это по вашему как? HardFault - это обычное прерывание со своим обработчиком. Выясняем причину, делаем запись в ОЗУ или в лог и возвращаем микроконтроллер в работоспособное состояние. О регистрах вы можете прочитать в мануале от ARM на evgeniy1294(353 знак., 08.09.2018 16:56, ссылка)
- Спасибо за ссылки. Apтём(233 знак., 08.09.2018 19:19)
- Чего там возвращать? Для МК не актуально. Просто выявление косяков на этапе отладки. Кстати, лайфхак: обработчик HardFault делаем такой "int volatile i = 1; while (i) ;", в отладчике делаем "i = 0" и по шагам выходим из обработчика. Окажемся там, SciFi(100 знак., 08.09.2018 19:23)
- Падает где-то в ip_reass_free_complete_datagram. - Apтём(10.09.2018 14:50)
- Чего там возвращать? Для МК не актуально. Просто выявление косяков на этапе отладки. Кстати, лайфхак: обработчик HardFault делаем такой "int volatile i = 1; while (i) ;", в отладчике делаем "i = 0" и по шагам выходим из обработчика. Окажемся там, SciFi(100 знак., 08.09.2018 19:23)
- Спасибо за ссылки. Apтём(233 знак., 08.09.2018 19:19)
- Современно - это по вашему как? HardFault - это обычное прерывание со своим обработчиком. Выясняем причину, делаем запись в ОЗУ или в лог и возвращаем микроконтроллер в работоспособное состояние. О регистрах вы можете прочитать в мануале от ARM на evgeniy1294(353 знак., 08.09.2018 16:56, ссылка)
- Версия? Не смотрел какая - такая как в последнем Кубе. Apтём(262 знак., 08.09.2018 16:24)
- Нормальное поведение? Ну, у всех разная норма, наверное. При любых настройках этого быть не должно. Значит, порт убогий в хлам. Это куб, наверное? Тогда удивляться не стоит. Рецепт такой: разбираемся, как это всё должно работать, портируем SciFi(62 знак., 08.09.2018 15:32)
- Ну да, это Куб. Плюс несколько дополнительных настроек - MPU, включение кешей и настройка скрипта линкера, так как Кубовский проект из-каробки не работает совсем (не допилили ещё). Apтём(112 знак., 08.09.2018 16:20)
- Хорошим тоном при работе с подобными библиотеками является понимание принципов их настройки и работы в целом. Я написал меленькую C++ обертку для LwIP. К сожалению, на H7 устройств пока нет, так бы поделился. - evgeniy1294(08.09.2018 17:00)
- Вот-вот. А у этих STM32H ещё и кеши появились, что добавляет головняков при портировании. Ну и надеяться на то, что эти индусские говнокодеры просто возьмут и выдадут что-то реально рабочее - это наивно. - SciFi(08.09.2018 18:26)
- Да, кеши - это отдельная больная тема. Apтём(200 знак., 08.09.2018 18:45)
- Я бы не спешил с выводом "с кешами справились". Это такая штука, которая вылазит в самых неожиданных местах. Как в этом пинге, например. Кстати, в порядке кавалерийского наскока можно отключить опцию IP REASSEMBLY, вдруг отсечёт самый убогий косок SciFi(17 знак., 08.09.2018 18:46)
- OK, в понедельник попробую отключить. Apтём(213 знак., 08.09.2018 19:07)
- Я бы не спешил с выводом "с кешами справились". Это такая штука, которая вылазит в самых неожиданных местах. Как в этом пинге, например. Кстати, в порядке кавалерийского наскока можно отключить опцию IP REASSEMBLY, вдруг отсечёт самый убогий косок SciFi(17 знак., 08.09.2018 18:46)
- Да, кеши - это отдельная больная тема. Apтём(200 знак., 08.09.2018 18:45)
- Вот-вот. А у этих STM32H ещё и кеши появились, что добавляет головняков при портировании. Ну и надеяться на то, что эти индусские говнокодеры просто возьмут и выдадут что-то реально рабочее - это наивно. - SciFi(08.09.2018 18:26)
- Хорошим тоном при работе с подобными библиотеками является понимание принципов их настройки и работы в целом. Я написал меленькую C++ обертку для LwIP. К сожалению, на H7 устройств пока нет, так бы поделился. - evgeniy1294(08.09.2018 17:00)
- Ну да, это Куб. Плюс несколько дополнительных настроек - MPU, включение кешей и настройка скрипта линкера, так как Кубовский проект из-каробки не работает совсем (не допилили ещё). Apтём(112 знак., 08.09.2018 16:20)
- Было бы неплохо увидеть версию стека и файлы ethernetif.c и lwipopts.h. Поведение явно ненормальное. Ещё неплохо будет выяснить причину падения, это можно узнать через регистры ядра. - evgeniy1294(08.09.2018 15:59)