This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: HAL Diagnostic Output Question
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Jeffrey Szczepanski <jrs at inscitek dot com>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Mon, 26 Jan 2004 09:12:47 +0100
- Subject: Re: [ECOS] HAL Diagnostic Output Question
- References: <00ad01c3e2b0$138bdb00$03b9a8c0@MACEDON>
> Specifically, when an application thread makes calls to diag_printf() type
> functionality that is mapped through the virtual vectors, what happens
> relative to thread scheduling? It is not 100% clear to me while the output
> is happening, does something in that whole pile of macros and such disable
> interrupts/stop task pre-emption, or is the scheduler still running normally
> with interrupts enabled while that output is occurring?
>
> Perhaps more to the point, it is clear to me that the output is completely
> synchronous relative to the thread making the virtual vector I/O calls, but
> do other threads have the opportunity to run while this is happening?
The serial driver, which is part of each HAL, that provides diagnostic
output is very simple with polled IO. Interrupts are turned off during
output. So time slicing will not happen and the thread will not yield
the processor to other threads.
If you need to have other threads scheduled while doing diag_printf
you should use the full serial driver and map diagnostic IO to that
driver.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss