Bug found

Leon Pollak leonp at plris.com
Tue Jun 9 10:36:01 UTC 2009


In 4.8.0 version the file ../c/src/lib/libcpu/powerpc/mpc8260/clock/clock.c 
function clockOn (lines 94-95) has the following text:

 decrementer_value = rtems_configuration_get_microseconds_per_tick() *
         rtems_cpu_configuration_get_clicks_per_usec() - 1;

while should be:

 decrementer_value = rtems_configuration_get_microseconds_per_tick() *
         (rtems_cpu_configuration_get_clicks_per_usec() / 4 ) - 1;

(division by 4 is missing).

See G2 Core Reference Manual. It is said (Section

"The decrementer is a 32-bit register that generates a decrementer interrupt 
exception after a programmable delay. The contents of the decrementer register 
are decremented once every four bus clock cycles, and the decrementer 
exception is generated as the count passes through zero."


More information about the users mailing list