--- c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c | 125 +++++++++----------------- 1 file changed, 41 insertions(+), 84 deletions(-)
diff --git a/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c b/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c index d308531..de3df6e 100644 --- a/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c @@ -1,6 +1,8 @@ /* * This routine initializes the MC68340/349 Periodic Interval Timer - * + */ + +/* * Based on the `gen68360' board support package, and covered by the * original distribution terms. * @@ -14,11 +16,7 @@ */ /* - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -26,12 +24,12 @@ * http://www.rtems.org/license/LICENSE. */ -#include <stdlib.h> /* for atexit() */ +#include <stdlib.h> /* for atexit() */ #include <bsp.h> #include <m68340.h> -#define CLOCK_VECTOR 120 /* clock isr routine vector in the vbr */ -#define CLOCK_IRQ_LEVEL 6 /* clock isr level */ +#define CLOCK_VECTOR 120 /* clock isr routine vector in the vbr */ +#define CLOCK_IRQ_LEVEL 6 /* clock isr level */ /* * Clock_driver_ticks is a monotonically increasing counter of the @@ -40,107 +38,66 @@ volatile uint32_t Clock_driver_ticks; /* - * These are set by clock driver during its init - */ -rtems_device_major_number rtems_clock_major = ~0; -rtems_device_minor_number rtems_clock_minor; - -/* * Periodic interval timer interrupt handler */ - -/****************************************************** - Name: Clock_isr - Input parameters: irq vector - Output parameters: none - Description: update # of clock ticks - *****************************************************/ -rtems_isr +static rtems_isr Clock_isr (rtems_vector_number vector) { - /* - * Announce the clock tick - */ - Clock_driver_ticks++; - rtems_clock_tick(); + /* + * Announce the clock tick + */ + Clock_driver_ticks++; + rtems_clock_tick(); } -/****************************************************** - Name: clock_exit - Input parameters: - - Output parameters: - - Description: turn off periodic time at shutdown - *****************************************************/ void Clock_exit (void) { - /* - * Turn off periodic interval timer - */ - SIMPITR = 0; + /* + * Turn off periodic interval timer + */ + SIMPITR = 0; } -/****************************************************** - Name: Install_clock - Input parameters: the Clock Interrupt Subroutine - Output parameters: - - Description: initialize the periodic interval ticker - called by Clock_Initialize - *****************************************************/ static void Install_clock (rtems_isr_entry clock_isr) { - uint32_t pitr_tmp; - uint32_t usecs_per_tick; - - Clock_driver_ticks = 0; + uint32_t pitr_tmp; + uint32_t usecs_per_tick; - set_vector (clock_isr, CLOCK_VECTOR, 1); + Clock_driver_ticks = 0; - /* sets the Periodic Interrupt Control Register PICR */ - /* voir a quoi correspond exactement le Clock Vector */ + set_vector (clock_isr, CLOCK_VECTOR, 1); - SIMPICR = ( CLOCK_IRQ_LEVEL << 8 ) | ( CLOCK_VECTOR ); + /* sets the Periodic Interrupt Control Register PICR */ + SIMPICR = ( CLOCK_IRQ_LEVEL << 8 ) | ( CLOCK_VECTOR ); - /* sets the PITR count value */ - /* this assumes a 32.765 kHz crystal */ + /* sets the PITR count value */ + /* this assumes a 32.765 kHz crystal */ - usecs_per_tick = rtems_configuration_get_microseconds_per_tick(); - /* find out whether prescaler should be enabled or not */ - if ( usecs_per_tick <= 31128 ) { - pitr_tmp = ( usecs_per_tick * 8192 ) / 1000000 ; - } else { - pitr_tmp = ( usecs_per_tick / 1000000 ) * 16; - /* enable it */ - pitr_tmp |= 0x100; - } + usecs_per_tick = rtems_configuration_get_microseconds_per_tick(); + /* find out whether prescaler should be enabled or not */ + if ( usecs_per_tick <= 31128 ) { + pitr_tmp = ( usecs_per_tick * 8192 ) / 1000000 ; + } else { + pitr_tmp = ( usecs_per_tick / 1000000 ) * 16; + /* enable it */ + pitr_tmp |= 0x100; + } - SIMPITR = (unsigned char) pitr_tmp; + SIMPITR = (unsigned char) pitr_tmp; - atexit (Clock_exit); + atexit (Clock_exit); } -/****************************************************** - Name: Clock_initialize - Input parameters: major & minor numbers - Output parameters: - - Description: main entry for clock initialization - calls the bsp dependant routine - *****************************************************/ rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp ) { - Install_clock (Clock_isr); - - /* - * make major/minor avail to others such as shared memory driver - */ - rtems_clock_major = major; - rtems_clock_minor = minor; + Install_clock (Clock_isr); - return RTEMS_SUCCESSFUL; + return RTEMS_SUCCESSFUL; } -- 1.9.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel