lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Windows 7 Startup crashes LwIP and Free RTOS


From: Marco Jakobs
Subject: Re: [lwip-users] Windows 7 Startup crashes LwIP and Free RTOS
Date: Mon, 19 Jul 2010 21:08:13 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.10) Gecko/20100512 Thunderbird/3.0.5

Hi all,

i reverted in having some looks to it again. Having a deeper look at the EMAC driver task (Richard ;-) ), i see really nothing which may cause the system to hang. The interrupt just sets the semaphore, and the EMAC task reads out all the EMAC buffers if it is triggered by the semaphore.

I discovered this article: http://www.zsoltmolnar.hu/blog/embedded/2006_04_01_archive.html and i have discovered that RXUBR is not handled by the interrupt. However, this should not cause that problems, as - even if the Rx inperrupt is missing, the EMAC driver waits maximum 100 tics for the semaphore and checks the receive buffers again; the system will not hang due to this. But i added the RXUBR to also cause an interrupt and trigger the semaphore.

But let's discuss overruns. When i'm not getting the data fast enough out of the 16 available EMAC buffers, the EMAC encounters an overrun. Nothing should happen, if all buffers are owned by the software, the EMAC will discard the frame. There is no overrun code in the EMAC driver, the packet is gone and finish. So:

Question one:
What is the behaviour of LwIP in that case, if there are still some frames of the packet in the EMAC buffers but some other frames are missing due to the EMAC threw them away because of an overflow?

Question two:
Is there any action needed if the EMAC sets the receive overflow bit?

Thanks for any suggestions
Marco



reply via email to

[Prev in Thread] Current Thread [Next in Thread]