Hi Guennadi, Guennadi Liakhovetski schrieb: > On Thu, 7 Aug 2008, Jens Gehrlein wrote: > >> Hi Guennadi, >> >> Guennadi Liakhovetski schrieb: >> >>> diff --git a/cpu/arm1176/s3c64xx/interrupts.c >>> b/cpu/arm1176/s3c64xx/interrupts.c >> [snip] >>> +void udelay(unsigned long usec) >>> +{ >>> + unsigned long long tmp; >>> + ulong tmo; >>> + >>> + tmo = (usec + 9) / 10; >>> + tmp = get_ticks() + tmo; /* get current timestamp */ >>> + >>> + while (get_ticks() < tmp)/* loop till event */ >>> + /*NOP*/; >>> +} >> I tried to follow the interrupt init function, but it's difficult. >> What is the least possible delay with the udelay function? >> I remember that i.mx31 udelay cannot currently be below 30 microsseconds due >> to the low input clock. If someone uses udelay(1) in polling loops with >> timeout, the actual duration is much more longer than assumed. > > Actually, the "/ 10" and this comment > > /* > * We use the following scheme for the timer: > * Prescaler is hard fixed at 167, divider at 1/4. > * This gives at PCLK frequency 66MHz approx. 10us ticks > * The timer is set to wrap after 100s, at 66MHz this obviously > * happens after 10,000,000 ticks. A long variable can thus > * keep values up to 40,000s, i.e., 11 hours. This should be > * enough for most uses:-) Possible optimizations: select a > * binary-friendly frequency, e.g., 1ms / 128. Also calculate > * the prescaler automatically for other PCLK frequencies. > */ > > shall make it clear, that the timer resolution is configured to 10us, > which is also the minimum udelay. The timer could also do better, but then > we get other disadvantages, e.g., shorter wrap-around time.
Okay. Thank you. I think, it's very useful for a developer to know the limits of high resolution timers and to see it immediately, so he can consider it in his code. Kind regards, Jens ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users