Форумчане, прошу помощи. Есть проект, необходимо поднять LWIP и USB. На первое время подключаю все через CubeMX. Версия куба последняя, среда разработки - IAR 8.5 и последняя версия Keil ARM. После сборки проекта LWIP не пингуется. Если работать без FreeRTOS, то проблем нет. Подозреваю проблему в прерываниях, но не знаю как ее отловить.
Сейчас запустил отладку из под IAR через SWO. Проверил в процессе вывод сообщений через printf, сделал вывод каждую секунду сообщения в духе "я живой", чтобы видеть, что процесс не повис. Все прекрасно работает пока я не подключу Ethernet кабель к компу. Как только PHY начинает мигать лампочками FreeRTOS виснет и переходит на
Код:
configASSERT( ucCurrentPriority >= ucMaxSysCallPriority );
в файле port.c
Я так понимаю что-то пытается вызвать функцию FreeRTOS из прерывания с приоритетом выше чем у операционки и крашит ее. Но пошаговая отладка не дает никакой инфы, так как код следующим шагом сразу оказывается в этой строчке.
Оптимизация выключена, HEAP_4, printf из дефолтного процесса закоменчена. Подумываю сделать обертку из семафоров для этой функции, может она непотокобезопасна...
Повторюсь, проект АБСОЛЮТНО чистый с куба. У других людей с забугорья все заводится за 5 минут, а я уже неделю с этим сижу...
Размеры кучи и стека в настройках проекта увеличил, под кучу отдано 50кб памяти.
На работе у коллеги завелось сразу на старом кубе, вроде версии 4.27, но требуется поднять на последних версиях.