[U-Boot] [RFC] Review of U-Boot timer API
Wolfgang Denk
wd at denx.de
Tue May 24 21:19:48 CEST 2011
Dear Graeme Russ,
In message <4DDBE22D.6050806 at gmail.com> you wrote:
>
> >> Why must get_timer() be used to perform "meaningful time measurement?"
> >
> > Excellent question! It was never intended to be used as such.
>
> Because get_timer() as it currently stands can as it is assumed to return
> milliseconds
Yes, but without any guarantee for accuracy or resolution.
This is good enough for timeouts, but nothing for time measurements.
> OK, let's wind back - My original suggestion made no claim towards changing
> what the API is used for, or how it looks to those who use it (for all
> practical intents and purposes). I suggested:
> - Removing set_timer() and reset_timer()
> - Implement get_timer() as a platform independent function
Trying to remember what I have read in this thread I believe we have
an agreement on these.
> Exposing ticks and tick_frequency to everyone via a 'tick' HAL
I skip this. I don't even read it.
> =======================
> Not exposing ticks and tick_frequency to everyone
>
> In /lib/timer.c
>
> void prescaler(u32 ticks, u32 tick_frequency)
> {
> u32 current_ms;
>
> /* Bill's algorithm */
>
> /* result stored in gd->timer_in_ms; */
> }
>
> In /arch/cpu/soc/timer.c or /arch/cpu/timer.c or /board/<board>/timer.c
>
> static u32 get_ticks(void)
Currently we have unsigned long long get_ticks(void) which is better
as it matches existing hardware.
Note that we also have void wait_ticks(u32) as needed for udelay().
> static u32 get_tick_frequency(void)
> {
> u32 tick_frequency;
>
> /* Determine tick frequency */
>
> return tick_frequency;
> }
Note that we also have u32 usec2ticks(u32 usec) and u32 ticks2usec(u32 ticks).
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Madness has no purpose. Or reason. But it may have a goal.
-- Spock, "The Alternative Factor", stardate 3088.7
More information about the U-Boot
mailing list