Description of Problem:
If someone does a getc operation that uses the virtual vectors to call into
redboot, then the system locks up and no other threads run because interrupts
are disabled and the scheduler is locked.
Instead hal_if_diag_read_char() should call a new CYGACC_COMM_IF_GETC_NONBLOCK
operation so that the looping to detect for a character is done with interrupts
enabled at least some of the time. Slower, but at least not stopped.
I disagree. If you use the polled routines provided by the VV, well, you'll
be polling. If you need an interrupt safe environment, use an IO driver.
I can't disagree with "If you need an interrupt safe environment, use an IO
driver.", but I don't see any harm in changing this behaviour (except arguably
bloat because we can't get rid of the non-block version now it's there).
This bug has moved to http://bugs.ecos.sourceware.org/show_bug.cgi?id=58193