public inbox for ecos-bugs@sourceware.org
help / color / mirror / Atom feed
From: bugzilla-daemon@bugs.ecos.sourceware.org
To: ecos-bugs@ecos.sourceware.org
Subject: [Bug 21968] select does not work on stdin
Date: Mon, 19 Nov 2012 16:02:00 -0000	[thread overview]
Message-ID: <20121119160158.280B14680011@mail.ecoscentric.com> (raw)
In-Reply-To: <bug-21968-13@http.bugs.ecos.sourceware.org/>

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=21968

--- Comment #7 from Ken <kenkyee@excite.com> 2012-11-19 16:01:56 GMT ---
> Where is it locked? What's the backtrace when you interrupt it from a debugger?

The backtrace when I hit the stop button in Insight is:
Cyg_HardwareThread::thread_entry(Cyg_Thread*)
Cyg_HardwareThread::thread_entry(Cyg_Thread*)
ConsoleTask() <--- this is my console thread
read(int, void* size_t)  <-- it went past the select and is blocked here
readwritev(int, cyg_iovec const*, int, int)
dev_fo_read(CYG_FILE_TAG*, CYGUIO_TAG*)
cyg_io_read
tty_read
cyg_io_read
serial-read
haldiag_getc
hal_if_diag_read_char
__call_COMM_IF_GETC
cyg_hal_plf_serial_getc
cyg_hal_plf_serial_getc_nonblock

Ironically, it ends up in a nonblocking function that blocks :-)


> That seems to tell me that you're trying to use select with a HAL diagnostic
> channel as your stdin. Don't do that. The HAL diagnostic channel is there for
> debug only for simple output. It is polled only with interrupts off. Use a

The problem is, with this board, we're short one port.  It has 3 serial ports. 
Two are used for system usage (modem and board-board communication).  The 3rd
is our console port which we sent stdin/stdout to.  eCos has a diag port where
Assert messages are printed and we'd prefer that to go to the stdout port as
well since we can't catch them and save them in our logs...unfortunately
disabling the ROM monitor doesn't seem to help...it still seems to want to do
blocking diag calls to the same port we're sharing stdin/stdout to.

Sounds like we have to write a dummy serial port driver that writes the Assert
to a known location in memory instead of having it dump to the stdin/stdout
port?


> What port is this?

It's a port to a board based on an archaic 10yr old Atmel AT91M55800A chip that
Atmel is no longer recommending for new designs :-P


> what is fileno(stdin) in your environment?

Matches what it should be according to the POSIX API..0 which matches the
STDIN_FILENO macro

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


  parent reply	other threads:[~2012-11-19 16:02 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-21968-13@http.bugs.ecos.sourceware.org/>
2012-11-15 21:13 ` bugzilla-daemon
2012-11-16  3:14 ` bugzilla-daemon
2012-11-18  9:18 ` bugzilla-daemon
2012-11-18 17:26 ` bugzilla-daemon
2012-11-19 16:02 ` bugzilla-daemon [this message]
2012-11-19 16:05 ` bugzilla-daemon
2012-11-19 16:41 ` bugzilla-daemon
     [not found] <bug-21968-776@http.bugs.ecos.sourceware.org/>
2012-11-15 21:13 ` bugzilla-daemon
2012-11-16  3:14 ` bugzilla-daemon
2012-11-18  9:18 ` bugzilla-daemon
2012-11-18 17:26 ` bugzilla-daemon
2012-11-19 16:02 ` bugzilla-daemon
2012-11-19 16:05 ` bugzilla-daemon
2012-11-19 16:41 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121119160158.280B14680011@mail.ecoscentric.com \
    --to=bugzilla-daemon@bugs.ecos.sourceware.org \
    --cc=ecos-bugs@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).