[ECOS] Re: RE : [ECOS] Understanding CYGNUM_HAL_RTC_PERIOD NUMERATOR DENOMINATOR
David Fernandez
dfernandez@cct.co.uk
Thu Jun 22 13:05:00 GMT 2006
On Thu, 2006-06-22 at 13:56 +0100, David Fernandez wrote:
> On Wed, 2006-06-21 at 09:19 +0200, FALL wrote:
> > Good Day, I have successfully compiled and ran ecos on an oki platform.
> > I am however not understanding how to setup the NUMERATOR DENOMINATOR
> > RTC_PERIOD per my platform specs. I have read the documentation but I am
> > still not clear on what values I should use. Specifically, my processor
> > is runningat 33Mhz, when the hal_clock_initialize is called, what is the
> > relationship between that and the above mentioned values.
> >
> > Moussa
> > hi Moussa try this config:
> > cdl_component CYGNUM_HAL_CPUCLOCK {
> > display "cpu clock"
> display "cpu clock (Mhz.)"
> > flavor data
> > calculated 33000000
> > no_define
> > define -file system.h CYGNUM_HAL_CPUCLOCK
> > description "Frequency of cpu clock in Hz."
> > }
> > ....
> > # Real-time clock/counter specifics
> > cdl_component CYGNUM_HAL_RTC_CONSTANTS {
> > display "Real-time clock constants"
> > flavor none
> >
> > cdl_option CYGNUM_HAL_RTC_NUMERATOR {
> > display "Real-time clock numerator"
> display "Real-time clock numerator (nanoseconds per second)"
> > flavor data
> > default_value 1000000000
> > }
> > cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
> > display "Real-time clock denominator"
> display "Real-time clock denominator (wraps per second)"
> > flavor data
> > default_value 100
> > }
> > cdl_option CYGNUM_HAL_RTC_PERIOD {
> > display "Real-time clock period"
> display "Real-time clock period (ticks per wrap)"
> > flavor data
> > default_value (CYGNUM_HAL_CPUCLOCK/CYGNUM_HAL_RTC_DENOMINATOR) -1
> > }
> > }
>
> The way I see that in my intel platform is as modified above.
>
> The DENOMINATOR allows you to calculate ticks and specifies the OS timer
> "tick" (usually 10 milliseconds)
>
> The NUMERATOR allows you to convert periods into frequencies and
> viceversa (periods in nanoseconds to/from frequencies in Mhz.)
>
> The only reason you want to change DENOMINATOR is to get a different
> time granularity in the OS.
>
> The only reason you want to change the NUMERATOR is if you need to use
> different units of periods or frequencies becuase may be that the
> calculi you need to do exceeds the numerical capacity of your scalar
> types.
>
> David.
WARNING: The NUMERATOR value is used when programing some hardware
timer... but hardware could impose limitations on this value that should
be noted in the cdl legal_values..., lets say for example, that if your
CPU/Timer frequency is very high, and your hardware timer counter
register is small (16 bit for example), you can't get good values for
small PERIODs, because won't fit in 0-65535 range.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list