[ECOS] gets() and task scheduling stopped

Jesper Skov jskov@redhat.com
Thu Jan 10 01:44:00 GMT 2002


On Thu, 2002-01-10 at 10:22, Sam Sortais wrote:
[snip]
> For what I understand with gdb it seems to be stuck at the bottom of this
> sequence of calls gets() -> refill_
() -> read() -> readwrite() ->
> dev_fo_read() -> cyg_io_read() -> tty_read() ->cyg_io_read() ->
> serial_read() -> haldiag_getc() -> HAL_DIAG_READ->

> The scheduler is locked at many levels in the previous calls. I was also
> looking at a loop in tty_read() which is done after a lock
 but I do not
> catch all the details of this low level code.
> I updated with the latest CVS to be sure it was not another problem.
> Has anybody else experienced gets() in multithreaded environment ?

You need to use an IO driver to get proper multithreaded behavior. The
HAL keyboard driver is operating in polled mode only, causing the
behavior you observe.

The only IO device keyboard driver I see is for the iPAQ. You need to
write something similar for your platform.

Jesper



More information about the Ecos-discuss mailing list