19 nov 2012 kl. 07:52 skrev Artem Pisarenko <[email protected]>:
>> Once again thanks for the detailed response, much appreciated.
> I faced with exactly same problems and spent a lot of time to debug it. I'm
> glad to share my experience and save other people from such nightmares. :)
>
> Additionally I found that pbuf_alloc() call hierarchy contains sys_mbox_***()
> calls. It may cause non-***FromISR() calls. Even if your lwip configuration
> exclude them, check whether your port do system calls in LWIP_PLATFORM_DIAG()
> and LWIP_PLATFORM_ASSERT() which are used in LWIP_DEBUGF() across all the
> lwip code.
One easy way to get around this kind of trouble is to not do any lwIP calls
from the interrupt handler - just notify the network thread of the pending data
and let it handle it when it gets its turn. It won't perform quite as well, but
make the network task high priority and the difference should be close to zero
in most cases.
regards,
Mikael
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users