[ECOS] HAL Diagnostic Output Question

Andrew Lunn andrew@lunn.ch
Mon Jan 26 08:12:00 GMT 2004


> 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



More information about the Ecos-discuss mailing list