[ECOS] scheduler/printf questions

Mathieu Lacage mathieu_lacage@realmagic.fr
Thu Nov 15 04:35:00 GMT 2001


le ven 23-11-2001 à 16:33, Andrew Lunn a écrit :
> > I am currently trying to understand the basic architecture of the eCos
> > HAL (and yes, I read the docs which are excellent btw :).
> 
> These questions deal with more than the HAL....
> 
> > 
> > I have two questions:
> > 	- so that the scheduler can interrupt a task which reached the end of
> > its timeslice, there must be a timer somewhere to trigger an interrupt
> > which asks for a reschedule. So, where is this setup ? And where can I
> > find this interrupt handler's code ? I have tried to find it in the
> > ARM/Integrator example but failed miserably.
> 
> Im not familiar with that target. I know the EBSA well....
> 
> hal_hardware_init() starts the hardware timer by calling
> hal_clock_initialize with the correct timer period. 

this is not the case on the INTEGRATOR board. I guess it must be
somwhere else... Dunno where though :)

> 
> Then in the kernel clock.cxx 
> 
> Cyg_RealTimeClock::Cyg_RealTimeClock()
>     : Cyg_Clock(rtc_resolution),
>       interrupt(CYGNUM_HAL_INTERRUPT_RTC, 1, (CYG_ADDRWORD)this, isr, dsr)
> 
> Installs the isr/dsr which are just bellow in the source code. The dsr
> calls the scheduler to do a timeslice.

I see.

> 
> > 	- what are the semantics of a printf call ? I have tried to trace in
> > the package/langage libc source what happens but I still cannot figure
> > out where the data will be printed. I would expect there is a way to
> > configure this on different targets. For example, if the target has an
> > output serial port, I would expect the bytes to be written there. Is
> > this a safe assumption ? If so, where can such configuration options be
> > found ?
> 
> Its all configurable via CDL and the ecos.ecc file. There are a number
> of virtual devices which map onto the physical drivers. eg /dev/tty0
> is a virtual device which is normally mapped onto the physical device
> /dev/ser0. Similarly /dev/termios0 is mapped to /dev/ser0. I think
> normal printf is mapped to the console, which defaults to
> /dev/ttydiag.  

right.


Thanks for your answer,

Mathieu 

> 
>         Andrew
> 
-- 
Mathieu Lacage <mathieu_lacage@realmagic.fr>
#p: +33 1 69 19 61 97



More information about the Ecos-discuss mailing list