This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Re: RE: Re: How to set clock related options?
- From: caocangmou <caocangmou at sina dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Fri, 26 Sep 2003 11:23:33 +0800
- Subject: RE: Re: [ECOS] RE: Re: How to set clock related options?
Given the configuration :
Real-time clock numerator : 1000000000
Real-time clock denominator : 100
Real-time clock base prescale : 8192
OSC/Clock Frequency :20000000
and the discription below,should the Real-time clock period be calculated like this ?:
Real-time clock period = 10(ms)/((OSC/Clock Frequency)/base prescale/1000(msecs per sec))
=10/(20000000/8192/1000)
=4
but the value in configuration is 10!Is that right ?
----- Original Message -----
From:Nick Garnett <nickg@ecoscentric.com>
To:Savin Zlobec <savin@elatec.si>
Subject:Re: [ECOS] RE: Re: How to set clock related options?
Date:Thu, 25 Sep 2003 22:48:42 +0800
>Savin Zlobec <savin@elatec.si> writes:
>
>> Savin Zlobec wrote:
>>
>> > caocangmou wrote:
>> >
>> >> But, I got a configuration from template(Akizuki H8/3068) :
>> >> Real-time clock numerator : 1000000000
>> >> Real-time clock denominator : 100
>> >> Real-time clock base prescale : 8192 Real-time
>> >> clock period :10
>> >> OSC/Clock Frequency :20000000
>> >> It seems not the case .What does period really mean?
>> >>
>> > CYGNUM_KERNEL_COUNTERS_RTC_PERIOD which defaults to
>> > CYGNUM_HAL_RTC_PERIOD is
>> > used to initialize you system clock hardware. Ecos tick is usually
>> > implemented with a hw timer which gives
>> > periodic interrupts. The CYGNUM_HAL_RTC_PERIOD is calculated so
>> > that you get an interrupt every
>> > 10ms (the default) and it depends on your timer hardware. Changing
>> > the tick requires setting the
>> > CYGNUM_HAL_RTC_NUMERATOR, CYGNUM_HAL_RTC_DENOMINATOR and
>> > CYGNUM_HAL_RTC_PERIOD (if it is not automatically calculated from
>> > the previous two - look how it is
>> > calculated in cdl - it can only depend on your frequency - in that
>> > case it is probably set to 10ms).
>>
>> I just realized that what I said about the hw timer it is not entirely
>> correct. The timer should only be able to generate
>> an interrupt after a desired amount of time. The kernel takes care of
>> the periodic aspect by resetting the timer with
>> HAL_CLOCK_RESET in ISR.
>
>Well, if the timer can be configured to generate periodic interrupts
>then that is what should be done -- you can then leave the
>HAL_CLOCK_RESET() macro empty. It is much better to let the hardware
>keep time than try to do it in software. Unless you are very careful,
>reloading the timer in HAL_CLOCK_RESET() can lead to clock drift.
>
>--
>Nick Garnett eCos Kernel Architect
>http://www.ecoscentric.com The eCos and RedBoot experts
>
>
>--
>Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
>and search the list archive: http://sources.redhat.com/ml/ecos-discuss
>
>
>
______________________________________
===================================================================
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss