forked from Imagelibrary/rtems
Patch from Eric Valette <valette@crf.canon.fr> so this will build
independently of a BSP.
This commit is contained in:
@@ -16,11 +16,11 @@ VPATH = @srcdir@
|
||||
PGM = ${ARCH}/clock.rel
|
||||
|
||||
# C source names, if any, go here -- minus the .c
|
||||
C_PIECES = c_clock
|
||||
C_PIECES = p_clock
|
||||
C_FILES = $(C_PIECES:%=%.c)
|
||||
C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
|
||||
|
||||
H_FILES =
|
||||
H_FILES =
|
||||
|
||||
SRCS = $(C_FILES) $(H_FILES)
|
||||
OBJS = $(C_O_FILES)
|
||||
@@ -61,11 +61,7 @@ CLOBBER_ADDITIONS +=
|
||||
${PGM}: ${SRCS} ${OBJS}
|
||||
$(make-rel)
|
||||
|
||||
preinstall:
|
||||
@$(mkinstalldirs) $(PROJECT_INCLUDE)/bsp
|
||||
@$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)/bsp
|
||||
|
||||
all: ${ARCH} $(SRCS) preinstall $(PGM)
|
||||
all: ${ARCH} $(SRCS) $(PGM)
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
install: all
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
/*
|
||||
* Clock Tick Device Driver
|
||||
*
|
||||
* This routine utilizes the Decrementer Register common to the PPC family.
|
||||
*
|
||||
* The tick frequency is directly programmed to the configured number of
|
||||
* microseconds per tick.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* Copyright assigned to U.S. Government, 1994.
|
||||
*
|
||||
* The license and distribution terms for this file may in
|
||||
* the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* Modified to support the MPC750.
|
||||
* Modifications Copyright (c) 1999 Eric Valette valette@crf.canon.fr
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <stdlib.h> /* for atexit() */
|
||||
#include <assert.h>
|
||||
#include <libcpu/cpu.h>
|
||||
|
||||
/*
|
||||
* Clock ticks since initialization
|
||||
*/
|
||||
|
||||
volatile rtems_unsigned32 Clock_driver_ticks;
|
||||
|
||||
/*
|
||||
* This is the value programmed into the count down timer.
|
||||
*/
|
||||
|
||||
rtems_unsigned32 Clock_Decrementer_value;
|
||||
|
||||
/*
|
||||
* These are set by clock driver during its init
|
||||
*/
|
||||
|
||||
rtems_device_major_number rtems_clock_major = ~0;
|
||||
rtems_device_minor_number rtems_clock_minor;
|
||||
|
||||
void clockOff(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
if (BSP_Configuration.ticks_per_timeslice) {
|
||||
/*
|
||||
* Nothing to do as we cannot disable all interrupts and
|
||||
* the decrementer interrupt enable is MSR_EE
|
||||
*/
|
||||
}
|
||||
}
|
||||
static void clockOn(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
PPC_Set_decrementer( Clock_Decrementer_value );
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock_isr
|
||||
*
|
||||
* This is the clock tick interrupt handler.
|
||||
*
|
||||
* Input parameters:
|
||||
* vector - vector number
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values: NONE
|
||||
*
|
||||
*/
|
||||
void clockIsr()
|
||||
{
|
||||
/*
|
||||
* The driver has seen another tick.
|
||||
*/
|
||||
|
||||
PPC_Set_decrementer( Clock_Decrementer_value );
|
||||
|
||||
Clock_driver_ticks += 1;
|
||||
|
||||
/*
|
||||
* Real Time Clock counter/timer is set to automatically reload.
|
||||
*/
|
||||
|
||||
rtems_clock_tick();
|
||||
}
|
||||
|
||||
int clockIsOn(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
unsigned32 msr_value;
|
||||
|
||||
_CPU_MSR_GET( msr_value );
|
||||
if (msr_value & MSR_EE) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
clockIsr,
|
||||
clockOn,
|
||||
clockOff,
|
||||
clockIsOn};
|
||||
|
||||
|
||||
/*
|
||||
* Clock_exit
|
||||
*
|
||||
* This routine allows the clock driver to exit by masking the interrupt and
|
||||
* disabling the clock's counter.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values: NONE
|
||||
*
|
||||
*/
|
||||
|
||||
void Clock_exit( void )
|
||||
{
|
||||
if ( BSP_Configuration.ticks_per_timeslice ) {
|
||||
BSP_remove_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock_initialize
|
||||
*
|
||||
* This routine initializes the clock driver.
|
||||
*
|
||||
* Input parameters:
|
||||
* major - clock device major number
|
||||
* minor - clock device minor number
|
||||
* parg - pointer to optional device driver arguments
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
* rtems_device_driver status code
|
||||
*/
|
||||
|
||||
rtems_device_driver Clock_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
Clock_Decrementer_value = (BSP_bus_frequency/4000)*
|
||||
(BSP_Configuration.microseconds_per_tick/1000);
|
||||
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
printk("Unable to initialize system clock\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
/* make major/minor avail to others such as shared memory driver */
|
||||
|
||||
rtems_clock_major = major;
|
||||
rtems_clock_minor = minor;
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
} /* Clock_initialize */
|
||||
|
||||
/*
|
||||
* Clock_control
|
||||
*
|
||||
* This routine is the clock device driver control entry point.
|
||||
*
|
||||
* Input parameters:
|
||||
* major - clock device major number
|
||||
* minor - clock device minor number
|
||||
* parg - pointer to optional device driver arguments
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
* rtems_device_driver status code
|
||||
*/
|
||||
|
||||
rtems_device_driver Clock_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
rtems_unsigned32 isrlevel;
|
||||
rtems_libio_ioctl_args_t *args = pargp;
|
||||
|
||||
if (args == 0)
|
||||
goto done;
|
||||
|
||||
Clock_Decrementer_value = (BSP_bus_frequency/4000)*
|
||||
(BSP_Configuration.microseconds_per_tick/1000);
|
||||
|
||||
if (args->command == rtems_build_name('I', 'S', 'R', ' '))
|
||||
clockIsr();
|
||||
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
|
||||
{
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
printk("Error installing clock interrupt handler!\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
}
|
||||
done:
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
37
c/src/lib/libbsp/powerpc/mcp750/clock/p_clock.c
Normal file
37
c/src/lib/libbsp/powerpc/mcp750/clock/p_clock.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Clock Tick interrupt conexion code.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* Copyright assigned to U.S. Government, 1994.
|
||||
*
|
||||
* The license and distribution terms for this file may in
|
||||
* the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* Modified to support the MPC750.
|
||||
* Modifications Copyright (c) 1999 Eric Valette valette@crf.canon.fr
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <libcpu/c_clock.h>
|
||||
|
||||
static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
clockIsr,
|
||||
(rtems_irq_enable)clockOn,
|
||||
(rtems_irq_disable)clockOff,
|
||||
(rtems_irq_is_enabled) clockIsOn};
|
||||
|
||||
|
||||
int BSP_disconnect_clock_handler (void)
|
||||
{
|
||||
return BSP_remove_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
|
||||
int BSP_connect_clock_handler (void)
|
||||
{
|
||||
return BSP_install_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
@@ -16,11 +16,11 @@ VPATH = @srcdir@
|
||||
PGM = ${ARCH}/clock.rel
|
||||
|
||||
# C source names, if any, go here -- minus the .c
|
||||
C_PIECES = c_clock
|
||||
C_PIECES = p_clock
|
||||
C_FILES = $(C_PIECES:%=%.c)
|
||||
C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
|
||||
|
||||
H_FILES =
|
||||
H_FILES =
|
||||
|
||||
SRCS = $(C_FILES) $(H_FILES)
|
||||
OBJS = $(C_O_FILES)
|
||||
@@ -61,11 +61,7 @@ CLOBBER_ADDITIONS +=
|
||||
${PGM}: ${SRCS} ${OBJS}
|
||||
$(make-rel)
|
||||
|
||||
preinstall:
|
||||
@$(mkinstalldirs) $(PROJECT_INCLUDE)/bsp
|
||||
@$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)/bsp
|
||||
|
||||
all: ${ARCH} $(SRCS) preinstall $(PGM)
|
||||
all: ${ARCH} $(SRCS) $(PGM)
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
install: all
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
/*
|
||||
* Clock Tick Device Driver
|
||||
*
|
||||
* This routine utilizes the Decrementer Register common to the PPC family.
|
||||
*
|
||||
* The tick frequency is directly programmed to the configured number of
|
||||
* microseconds per tick.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* Copyright assigned to U.S. Government, 1994.
|
||||
*
|
||||
* The license and distribution terms for this file may in
|
||||
* the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* Modified to support the MPC750.
|
||||
* Modifications Copyright (c) 1999 Eric Valette valette@crf.canon.fr
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <stdlib.h> /* for atexit() */
|
||||
#include <assert.h>
|
||||
#include <libcpu/cpu.h>
|
||||
|
||||
/*
|
||||
* Clock ticks since initialization
|
||||
*/
|
||||
|
||||
volatile rtems_unsigned32 Clock_driver_ticks;
|
||||
|
||||
/*
|
||||
* This is the value programmed into the count down timer.
|
||||
*/
|
||||
|
||||
rtems_unsigned32 Clock_Decrementer_value;
|
||||
|
||||
/*
|
||||
* These are set by clock driver during its init
|
||||
*/
|
||||
|
||||
rtems_device_major_number rtems_clock_major = ~0;
|
||||
rtems_device_minor_number rtems_clock_minor;
|
||||
|
||||
void clockOff(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
if (BSP_Configuration.ticks_per_timeslice) {
|
||||
/*
|
||||
* Nothing to do as we cannot disable all interrupts and
|
||||
* the decrementer interrupt enable is MSR_EE
|
||||
*/
|
||||
}
|
||||
}
|
||||
static void clockOn(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
PPC_Set_decrementer( Clock_Decrementer_value );
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock_isr
|
||||
*
|
||||
* This is the clock tick interrupt handler.
|
||||
*
|
||||
* Input parameters:
|
||||
* vector - vector number
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values: NONE
|
||||
*
|
||||
*/
|
||||
void clockIsr()
|
||||
{
|
||||
/*
|
||||
* The driver has seen another tick.
|
||||
*/
|
||||
|
||||
PPC_Set_decrementer( Clock_Decrementer_value );
|
||||
|
||||
Clock_driver_ticks += 1;
|
||||
|
||||
/*
|
||||
* Real Time Clock counter/timer is set to automatically reload.
|
||||
*/
|
||||
|
||||
rtems_clock_tick();
|
||||
}
|
||||
|
||||
int clockIsOn(const rtems_irq_connect_data* unused)
|
||||
{
|
||||
unsigned32 msr_value;
|
||||
|
||||
_CPU_MSR_GET( msr_value );
|
||||
if (msr_value & MSR_EE) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
clockIsr,
|
||||
clockOn,
|
||||
clockOff,
|
||||
clockIsOn};
|
||||
|
||||
|
||||
/*
|
||||
* Clock_exit
|
||||
*
|
||||
* This routine allows the clock driver to exit by masking the interrupt and
|
||||
* disabling the clock's counter.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values: NONE
|
||||
*
|
||||
*/
|
||||
|
||||
void Clock_exit( void )
|
||||
{
|
||||
if ( BSP_Configuration.ticks_per_timeslice ) {
|
||||
BSP_remove_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock_initialize
|
||||
*
|
||||
* This routine initializes the clock driver.
|
||||
*
|
||||
* Input parameters:
|
||||
* major - clock device major number
|
||||
* minor - clock device minor number
|
||||
* parg - pointer to optional device driver arguments
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
* rtems_device_driver status code
|
||||
*/
|
||||
|
||||
rtems_device_driver Clock_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
Clock_Decrementer_value = (BSP_bus_frequency/4000)*
|
||||
(BSP_Configuration.microseconds_per_tick/1000);
|
||||
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
printk("Unable to initialize system clock\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
/* make major/minor avail to others such as shared memory driver */
|
||||
|
||||
rtems_clock_major = major;
|
||||
rtems_clock_minor = minor;
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
} /* Clock_initialize */
|
||||
|
||||
/*
|
||||
* Clock_control
|
||||
*
|
||||
* This routine is the clock device driver control entry point.
|
||||
*
|
||||
* Input parameters:
|
||||
* major - clock device major number
|
||||
* minor - clock device minor number
|
||||
* parg - pointer to optional device driver arguments
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
* rtems_device_driver status code
|
||||
*/
|
||||
|
||||
rtems_device_driver Clock_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
rtems_unsigned32 isrlevel;
|
||||
rtems_libio_ioctl_args_t *args = pargp;
|
||||
|
||||
if (args == 0)
|
||||
goto done;
|
||||
|
||||
Clock_Decrementer_value = (BSP_bus_frequency/4000)*
|
||||
(BSP_Configuration.microseconds_per_tick/1000);
|
||||
|
||||
if (args->command == rtems_build_name('I', 'S', 'R', ' '))
|
||||
clockIsr();
|
||||
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
|
||||
{
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
printk("Error installing clock interrupt handler!\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
}
|
||||
done:
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
37
c/src/lib/libbsp/powerpc/motorola_powerpc/clock/p_clock.c
Normal file
37
c/src/lib/libbsp/powerpc/motorola_powerpc/clock/p_clock.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Clock Tick interrupt conexion code.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* Copyright assigned to U.S. Government, 1994.
|
||||
*
|
||||
* The license and distribution terms for this file may in
|
||||
* the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* Modified to support the MPC750.
|
||||
* Modifications Copyright (c) 1999 Eric Valette valette@crf.canon.fr
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <libcpu/c_clock.h>
|
||||
|
||||
static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
clockIsr,
|
||||
(rtems_irq_enable)clockOn,
|
||||
(rtems_irq_disable)clockOff,
|
||||
(rtems_irq_is_enabled) clockIsOn};
|
||||
|
||||
|
||||
int BSP_disconnect_clock_handler (void)
|
||||
{
|
||||
return BSP_remove_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
|
||||
int BSP_connect_clock_handler (void)
|
||||
{
|
||||
return BSP_install_rtems_irq_handler (&clockIrqData);
|
||||
}
|
||||
@@ -20,8 +20,7 @@ INSTALL_CHANGE = @INSTALL_CHANGE@
|
||||
|
||||
# wrapup is the one that actually builds and installs the library
|
||||
# from the individual .rel files built in other directories
|
||||
# SUB_DIRS = exceptions mmu clock wrapup
|
||||
SUB_DIRS = exceptions mmu wrapup
|
||||
SUB_DIRS = exceptions mmu clock wrapup
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
|
||||
@@ -18,7 +18,7 @@ C_PIECES = c_clock
|
||||
C_FILES = $(C_PIECES:%=%.c)
|
||||
C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
|
||||
|
||||
H_FILES =
|
||||
H_FILES = $(srcdir)/c_clock.h
|
||||
|
||||
# Assembly source names, if any, go here -- minus the .S
|
||||
S_PIECES =
|
||||
@@ -55,7 +55,10 @@ LDFLAGS +=
|
||||
CLEAN_ADDITIONS +=
|
||||
CLOBBER_ADDITIONS +=
|
||||
|
||||
all: ${ARCH} $(SRCS) $(OBJS)
|
||||
all: ${ARCH} $(SRCS) preinstall $(OBJS)
|
||||
|
||||
preinstall: $(INSTALLDIRS) $(H_FILES)
|
||||
@$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)/libcpu
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
install: all
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <rtems.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <stdlib.h> /* for atexit() */
|
||||
#include <assert.h>
|
||||
#include <libcpu/cpu.h>
|
||||
#include <libcpu/c_clock.h>
|
||||
|
||||
/*
|
||||
* Clock ticks since initialization
|
||||
@@ -46,7 +46,7 @@ rtems_unsigned32 Clock_Decrementer_value;
|
||||
rtems_device_major_number rtems_clock_major = ~0;
|
||||
rtems_device_minor_number rtems_clock_minor;
|
||||
|
||||
void clockOff(const rtems_irq_connect_data* unused)
|
||||
void clockOff(void* unused)
|
||||
{
|
||||
if (BSP_Configuration.ticks_per_timeslice) {
|
||||
/*
|
||||
@@ -55,7 +55,7 @@ void clockOff(const rtems_irq_connect_data* unused)
|
||||
*/
|
||||
}
|
||||
}
|
||||
static void clockOn(const rtems_irq_connect_data* unused)
|
||||
void clockOn(void* unused)
|
||||
{
|
||||
PPC_Set_decrementer( Clock_Decrementer_value );
|
||||
}
|
||||
@@ -90,7 +90,7 @@ void clockIsr()
|
||||
rtems_clock_tick();
|
||||
}
|
||||
|
||||
int clockIsOn(const rtems_irq_connect_data* unused)
|
||||
int clockIsOn(void* unused)
|
||||
{
|
||||
unsigned32 msr_value;
|
||||
|
||||
@@ -99,12 +99,6 @@ int clockIsOn(const rtems_irq_connect_data* unused)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
clockIsr,
|
||||
clockOn,
|
||||
clockOff,
|
||||
clockIsOn};
|
||||
|
||||
|
||||
/*
|
||||
* Clock_exit
|
||||
@@ -123,7 +117,7 @@ static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
|
||||
void Clock_exit( void )
|
||||
{
|
||||
if ( BSP_Configuration.ticks_per_timeslice ) {
|
||||
BSP_remove_rtems_irq_handler (&clockIrqData);
|
||||
(void) BSP_disconnect_clock_handler ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +146,7 @@ rtems_device_driver Clock_initialize(
|
||||
Clock_Decrementer_value = (BSP_bus_frequency/4000)*
|
||||
(BSP_Configuration.microseconds_per_tick/1000);
|
||||
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
if (!BSP_connect_clock_handler ()) {
|
||||
printk("Unable to initialize system clock\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
@@ -186,7 +180,6 @@ rtems_device_driver Clock_control(
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
rtems_unsigned32 isrlevel;
|
||||
rtems_libio_ioctl_args_t *args = pargp;
|
||||
|
||||
if (args == 0)
|
||||
@@ -199,7 +192,7 @@ rtems_device_driver Clock_control(
|
||||
clockIsr();
|
||||
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
|
||||
{
|
||||
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
|
||||
if (!BSP_connect_clock_handler ()) {
|
||||
printk("Error installing clock interrupt handler!\n");
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user