To reproduce the problem:
1. Create a normal tcp socket thread and put it to listen state. Make sure the
priority of this thread is higher than tcpip thread.
2. When accepting a new connection, data abort may occur in lwip_select()
Code related to it:
sockets.c -> event_callback()
Root cause:
There are 2 main issue related to it:
1 SYS_ARCH_PROTECT is defined to nothing (see
components/net/lwip/src/arch/include/arch/cc.h)
2 implementation of sys_arch_protect is buggy
The scheduler should be locked as well as disabling interupt (A task schedule
may occur during sending a semaphore while interrupt is diabled).
Version of rtthread affected:
Both 1.4 dev and 1.3.2 stable.
Original issue reported on code.google.com by mbb...@gmail.com on 8 Jul 2011 at 1:45
Original issue reported on code.google.com by
mbb...@gmail.com
on 8 Jul 2011 at 1:45