[ECOS] Scheduler problems, thread delay

Andrew Lunn andrew@lunn.ch
Tue Oct 21 14:30:00 GMT 2003

On Tue, Oct 21, 2003 at 03:23:44PM +0100, James Yates wrote:
> I have been having problems trying to get timeslicing to work.

> I have successfully created a two threaded app, both at the same
> priority, one waits on a semaphore, one it gets it, it flashes a led
> and posts a semaphore that the other is waiting for etc etc.  This
> all works fine and I can have 2 threads flashing 2 different leds,
> continually giving control to each other by 2 semaphores.  I tried
> removing the semaphores and placing a small delay after each LED
> flash to see if the two threads would each be allowed to run. This
> didn't work and after some investigation, when I make a call to
> cyg_thread_delay, this never seems to return and so hangs.  I have
> read lots in the archives of the mailing lists regarding similar
> problems but nothing seems to work.  I have tried running some of
> the tests, basic and context HAL tests run. I tried running some of
> the kernel tests, bin_sem2 failed. I looked into the code for the
> test and have traced it hanging at a call to cyg_thread_delay.

Its probably your clock is broken. Try running the clock* tests.
Check your setup of the timer, make sure you are getting timer
interrupts etc.
> Strangely, I have also tried testing hal_delay_us which works and provides me with the correct delay.

This busy waits so does not need interrupts.


Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

More information about the Ecos-discuss mailing list