Delay::measure function

Martin Schröder martin.schroeder at
Tue Jul 1 17:36:32 CEST 2014

Hi Xavier,

Am 01.07.2014 17:04, schrieb Xavier LEBARS:
> Hi everyone,
> I’m currently trying to port Fiasco + L4re with the « Hello World »
> application on a Zedboard which has a Xilinx Zynq  z7020 processor (ARM
> Cortex A9 MPCore).
> We already configure UART and Timer for the microkernel but boot crash
> after the step : Calibrating Timer loop… Our problem seems to occur
> during the execution of Delay::measure() function. Does anyone know what
> it exactly does and especially update_timer which seems to have no
> effect in our case.

This Delay::measure() function counts the number of calls to 
Proc::pause() which can be made until the 1ms system time elapses.

I had the same problem while porting Fiasco on some other platform 
(i.MX28). The reason why you are stuck in Delay::measure() is that the 
system time of Fiasco does not advance and thus Delay::measure() does 
not return. Most probably the driver of your timer device is not running 
properly, your timer is not configured to generate the periodically 1ms 
system clock and/or the driver of your interrupt controller does not 
handle timer interrupts.

For the first testing steps you can probably skip this loop and return 
some hardcoded arbitrary value to get the Hello World example running.


More information about the l4-hackers mailing list