diff options
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/shared/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/clockdrv_shell.c | 15 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/console-polled.c | 8 |
3 files changed, 28 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/shared/ChangeLog b/c/src/lib/libbsp/shared/ChangeLog index f2a7aa25f8..25dc15ac5f 100644 --- a/c/src/lib/libbsp/shared/ChangeLog +++ b/c/src/lib/libbsp/shared/ChangeLog @@ -1,3 +1,9 @@ +2001-01-03 Joel Sherrill <joel@OARcorp.com> + + * clockdrv_shell.c: Added fast idle mode which is enabled by defining + CLOCK_DRIVER_USE_FAST_IDLE. + * console-polled.c: Added console_initialize_hardware() hook. + 2000-12-01 Joel Sherrill <joel@OARcorp.com> * console-polled.c: Remove warnings. diff --git a/c/src/lib/libbsp/shared/clockdrv_shell.c b/c/src/lib/libbsp/shared/clockdrv_shell.c index b9dc1ce3e4..af1de48987 100644 --- a/c/src/lib/libbsp/shared/clockdrv_shell.c +++ b/c/src/lib/libbsp/shared/clockdrv_shell.c @@ -51,8 +51,20 @@ rtems_isr Clock_isr( rtems_vector_number vector ) { +#ifdef CLOCK_DRIVER_USE_FAST_IDLE + do { + Clock_driver_ticks += 1; + rtems_clock_tick(); + } while ( _Thread_Executing == _Thread_Idle && + _Thread_Heir == _Thread_Executing) + + Clock_driver_support_at_tick(); + return; +#else /* * Do the hardware specific per-tick action. + * + * The counter/timer may or may not be set to automatically reload. */ Clock_driver_support_at_tick(); @@ -64,7 +76,6 @@ rtems_isr Clock_isr( Clock_driver_ticks += 1; /* - * Real Time Clock counter/timer is set to automatically reload. */ #ifndef CLOCK_DRIVER_ISRS_ARE_ONE_MILLISECOND @@ -72,6 +83,8 @@ rtems_isr Clock_isr( #else #error "Clock driver shell: Does not currently support counting mseconds." #endif + +#endif } /* diff --git a/c/src/lib/libbsp/shared/console-polled.c b/c/src/lib/libbsp/shared/console-polled.c index 165989a779..122f14c975 100644 --- a/c/src/lib/libbsp/shared/console-polled.c +++ b/c/src/lib/libbsp/shared/console-polled.c @@ -29,6 +29,8 @@ int console_inbyte_nonblocking( int port ); +void console_initialize_hardware(void); + /* * Console Termios Support Entry Points * @@ -66,6 +68,12 @@ rtems_device_driver console_initialize( rtems_termios_initialize(); /* + * Make sure the hardware is initialized. + */ + + console_initialize_hardware(); + + /* * Register Device Names */ |