This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: HAL Diagnostic Output Question


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]