This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: gets() and task scheduling stopped
- From: "Sam Sortais" <sams at myself dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Fri, 11 Jan 2002 02:22:14 +0800
- Subject: Re: [ECOS] gets() and task scheduling stopped
>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
The problem is that I load my application via
Redboot, so OK to write an IO driver for PC
keyboard now, but then how would it work when
the channel is the serial line or tcp/ip via
Redboot ?
This is what I use all the time and it is much
more convenient than to go type on my target
keyboard. In the futur my target will have no
keyboard so how will I do a gets() at this
time ? Maybe we need something different than
a simple kbd IO driver, what would be your
suggestions ?
Thanks, Sam.
--
_______________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup
1 cent a minute calls anywhere in the U.S.!
http://www.getpennytalk.com/cgi-bin/adforward.cgi?p_key=RG9853KJ&url=http://www.getpennytalk.com