Real Time Clock

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Real Time Clock

Privat
Dear Ecos Developers and Maintainers,

i have a question regarding the real time clock.
I have a FreeSacle which runs at 116 Mhz, which means  i have 1 000 000
000  ns / 116 000 000  or 8ns per cycle.

I set the dividend to 1000, and the divisor to 116 which following the
documentation (http://ecos.sourceware.org/docs-2.0/ref/kernel-clocks.html)
 - should always yield the ratio of ns between clock ticks.
Unfortunatly that does not result in correct values.

Strange as it sounds, the default works near perfect.
But reading the realtime clock resolution i got a dividend 1000000000
and a divisor of 1000 - which would be correct for a 100 Hz processor.

Any help or advice is welcome. I would also like to know, how the system
is able to derive its own cyclerate.

Regards Picasso

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply | Threaded
Open this post in threaded view
|

Re: Real Time Clock

Ilija Kocho [Илија Кочо]
On 17.12.2015 11:31, Privat wrote:
> Dear Ecos Developers and Maintainers,
>
> i have a question regarding the real time clock.
> I have a FreeSacle which runs at 116 Mhz, which means  i have 1 000 000
> 000  ns / 116 000 000  or 8ns per cycle.

Is it a Kinetis?

>
> I set the dividend to 1000, and the divisor to 116 which following the
> documentation (http://ecos.sourceware.org/docs-2.0/ref/kernel-clocks.html)
>  - should always yield the ratio of ns between clock ticks.
> Unfortunatly that does not result in correct values.
>
> Strange as it sounds, the default works near perfect.
> But reading the realtime clock resolution i got a dividend 1000000000
> and a divisor of 1000 - which would be correct for a 100 Hz processor.
>
> Any help or advice is welcome. I would also like to know, how the system
> is able to derive its own cyclerate.
>
> Regards Picasso
>


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply | Threaded
Open this post in threaded view
|

Re: Real Time Clock

Privat
Its a MPC5668x ?

Am 17.12.2015 um 12:07 schrieb Ilija Kocho [Илија Кочо]:

> On 17.12.2015 11:31, Privat wrote:
>> Dear Ecos Developers and Maintainers,
>>
>> i have a question regarding the real time clock.
>> I have a FreeSacle which runs at 116 Mhz, which means  i have 1 000 000
>> 000  ns / 116 000 000  or 8ns per cycle.
> Is it a Kinetis?
>
>> I set the dividend to 1000, and the divisor to 116 which following the
>> documentation (http://ecos.sourceware.org/docs-2.0/ref/kernel-clocks.html)
>>  - should always yield the ratio of ns between clock ticks.
>> Unfortunatly that does not result in correct values.
>>
>> Strange as it sounds, the default works near perfect.
>> But reading the realtime clock resolution i got a dividend 1000000000
>> and a divisor of 1000 - which would be correct for a 100 Hz processor.
>>
>> Any help or advice is welcome. I would also like to know, how the system
>> is able to derive its own cyclerate.
>>
>> Regards Picasso
>>
>


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply | Threaded
Open this post in threaded view
|

Re: Real Time Clock

Jonathan Larmour
In reply to this post by Privat
Privat wrote:

> Dear Ecos Developers and Maintainers,
>
> i have a question regarding the real time clock.
> I have a FreeSacle which runs at 116 Mhz, which means  i have 1 000 000
> 000  ns / 116 000 000  or 8ns per cycle.
>
> I set the dividend to 1000, and the divisor to 116 which following the
> documentation (http://ecos.sourceware.org/docs-2.0/ref/kernel-clocks.html)
>  - should always yield the ratio of ns between clock ticks.
> Unfortunatly that does not result in correct values.

The kernel real time clock doesn't run at 116 MHz though! The clock speed
for the processor is different from the clock you want the kernel to use
to measure time - the latter drives a clock interrupt that is used to
handle e.g. kernel alarms or timeslicing. You can't have a tick (and
therefore a clock interrupt) every CPU cycle :-).

You would need to set it to the number of nanoseconds per clock interrupt
you would get when the clock setting given by CYGNUM_HAL_RTC_PERIOD is
programmed into the PowerPC decrementer.

I don't know your HAL, but if it is derived from the MPC5554demo HAL,
which seems most likely, CYGNUM_HAL_RTC_PERIOD defaults to the expression
(CYGHWR_HAL_POWERPC_MPC55XX_FSYS/CYGNUM_HAL_RTC_DENOMINATOR) (with name
changed for you)

so that it becomes easy to make the denominator correspond to the kernel
clock frequency you want. In other words, if you want the standard 100Hz
kernel clock tick, you probably do indeed want to leave it as it is.

Jifl
--
eCosCentric Limited      http://www.eCosCentric.com/     The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK.       Tel: +44 1223 245571
Registered in England and Wales: Reg No 4422071.
------["Si fractum non sit, noli id reficere"]------       Opinions==mine

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss