[En-Nut-Discussion] NutNetIfConfig() blocks other threads

urbi Urban.Battaglia at ch.TRUMPF.com
Tue May 26 09:00:28 CEST 2009


I have a Problem with initializing the ethernet without a physical
connection. In this case the function NutNetIfConfig() is blocking all other
threads. I have tryed to give different priority to the other threads, but
the function NutNetIfConfig() is still blocking.

The reason I found in the function EmacReset(uint32_t tmo) in the module
at91_emac.c. I am using a AT91SAM7x256 microcontroller. If no physical
connection is detected the function is waiting in a while loop. To give the
other threads CPU-time I add a NutSleep(0) statement in this while loop:

        while (--tmo) {
            if (phy_inw(NIC_PHY_BMSR) & NIC_PHY_BMSR_ANCOMPL) {

In this way all other threads are not blocked when no physical connation is
Has anyone else the same problem?

Regardes, Urban

View this message in context: http://www.nabble.com/NutNetIfConfig%28%29-blocks-other-threads-tp23717701p23717701.html
Sent from the MicroControllers - Ethernut mailing list archive at Nabble.com.

More information about the En-Nut-Discussion mailing list