Ответ: Завтра пошарю, вроде бы был доковский файл (посмотрите в репозитории на основном сайте он там есть.)
В двух словах - приложения под lwip (те работающее через TCP/IP или по UDP пртоколу можно писать двумя основными способами) - с помощью вызова callback функций и через BSD сокеты. Я в основном пишу через кааллбэки. Пример написания такого приложения - простой http сервер (есть в контрибуциях). Те для каждого приложния пишутся стнадартные функции, что оно должно делать при открытии сокета, приема данных, поллингу, появлении ошибки. Потом эти функции регистрируются и этому приложению и в майне вызывается только функция инициализации.
Посмотрите, как там написан PPP, как открываются сокеты. Вообще - 80% ошибок у lwip - юзерские (драйвер, недопонимание логики работы). Например - сокет может быть уже закрыт, или произошла ошибка, а функция поллинга ее может вызывать. Те во всех каллбэках желательно проверять перед работой arg != 0 и pcb != 0
Если запущено на армах и он перешел на abort или undefined посмотрите в r14 по какому адресу произошел некорректный вызов. Ошибка найдетс ябыстро. Для удобства перестройте без оптимизации.
Проблемы могут быть и со стороны ecos. Далее, посмотрите, какая версия lwip входит в сотав ecos.