after testing go32 and cvme961

This commit is contained in:
Joel Sherrill
1995-07-21 20:10:49 +00:00
parent 9e738b65b0
commit 1690c6b636
8 changed files with 38 additions and 21 deletions

View File

@@ -42,7 +42,7 @@ const rtems_multiprocessing_table
*/ */
const char _RTEMS_version[] = const char _RTEMS_version[] =
"RTEMS RELEASE V3.2.01 (" CPU_NAME "/" RTEMS_MODEL_NAME ")"; "RTEMS RELEASE V3.2.02 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
/* /*

View File

@@ -42,7 +42,7 @@ const rtems_multiprocessing_table
*/ */
const char _RTEMS_version[] = const char _RTEMS_version[] =
"RTEMS RELEASE V3.2.01 (" CPU_NAME "/" RTEMS_MODEL_NAME ")"; "RTEMS RELEASE V3.2.02 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
/* /*

View File

@@ -86,7 +86,14 @@ void _CPU_ISR_install_raw_handler(
#if __GO32__ #if __GO32__
_go32_dpmi_seginfo handler_info; _go32_dpmi_seginfo handler_info;
*old_handler = 0; /* XXX not supported */ /* get the address of the old handler */
_go32_dpmi_get_protected_mode_interrupt_vector( vector, &handler_info);
/* Notice how we're failing to save the pm_segment portion of the */
/* structure here? That means we might crash the system if we */
/* try to restore the ISR. Can't fix this until i386_isr is */
/* redefined. XXX [BHC]. */
*old_handler = (proc_ptr *) handler_info.pm_offset;
handler_info.pm_offset = (u_long) new_handler; handler_info.pm_offset = (u_long) new_handler;
handler_info.pm_selector = _go32_my_cs(); handler_info.pm_selector = _go32_my_cs();

View File

@@ -40,6 +40,9 @@ static void restore_timer( void )
} }
#else /* pentium */ #else /* pentium */
rtems_isr timerisr(); rtems_isr timerisr();
#define TIMER_ISR_US 10000
#endif /* pentium */ #endif /* pentium */
void Timer_initialize() void Timer_initialize()
@@ -74,10 +77,10 @@ void Timer_initialize()
/* Wait for ISR to be called at least once */ /* Wait for ISR to be called at least once */
WAIT(); WAIT();
/* load timer for 250 microsecond period */ /* load timer for TIMER_ISR_US microsecond period */
outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN ); outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN );
outport_byte( TIMER_CNTR0, US_TO_TICK(250) >> 0 & 0xff); outport_byte( TIMER_CNTR0, US_TO_TICK(TIMER_ISR_US) >> 0 & 0xff);
outport_byte( TIMER_CNTR0, US_TO_TICK(250) >> 8 & 0xff); outport_byte( TIMER_CNTR0, US_TO_TICK(TIMER_ISR_US) >> 8 & 0xff);
} }
/* Wait for ISR to be called at least once */ /* Wait for ISR to be called at least once */
@@ -101,7 +104,7 @@ int Read_timer()
inport_byte( TIMER_CNTR0, lsb ); inport_byte( TIMER_CNTR0, lsb );
inport_byte( TIMER_CNTR0, msb ); inport_byte( TIMER_CNTR0, msb );
clicks = msb << 8 | lsb; clicks = msb << 8 | lsb;
total = Ttimer_val + (250 - TICK_TO_US( clicks )); total = (Ttimer_val * TIMER_ISR_US) + (TIMER_ISR_US - TICK_TO_US( clicks ));
#endif /* pentium */ #endif /* pentium */
if ( Timer_driver_Find_average_overhead == 1 ) if ( Timer_driver_Find_average_overhead == 1 )

View File

@@ -27,7 +27,7 @@
PUBLIC(timerisr) PUBLIC(timerisr)
SYM (timerisr): SYM (timerisr):
addl $250,_Ttimer_val # another 250 microseconds addl $1,_Ttimer_val # another tick
push edx push edx
push eax push eax
movw $0x20,dx movw $0x20,dx

View File

@@ -46,7 +46,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 1 ], Task_name[ 1 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 1 ] &Task_id[ 1 ]
@@ -56,7 +56,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 2 ], Task_name[ 2 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES, RTEMS_DEFAULT_ATTRIBUTES,
&Task_id[ 2 ] &Task_id[ 2 ]
@@ -66,7 +66,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 3 ], Task_name[ 3 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES, RTEMS_DEFAULT_ATTRIBUTES,
&Task_id[ 3 ] &Task_id[ 3 ]
@@ -76,7 +76,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 4 ], Task_name[ 4 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 4 ] &Task_id[ 4 ]
@@ -86,7 +86,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 5 ], Task_name[ 5 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 5 ] &Task_id[ 5 ]
@@ -96,7 +96,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 6 ], Task_name[ 6 ],
1, 1,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 6 ] &Task_id[ 6 ]

View File

@@ -86,7 +86,14 @@ void _CPU_ISR_install_raw_handler(
#if __GO32__ #if __GO32__
_go32_dpmi_seginfo handler_info; _go32_dpmi_seginfo handler_info;
*old_handler = 0; /* XXX not supported */ /* get the address of the old handler */
_go32_dpmi_get_protected_mode_interrupt_vector( vector, &handler_info);
/* Notice how we're failing to save the pm_segment portion of the */
/* structure here? That means we might crash the system if we */
/* try to restore the ISR. Can't fix this until i386_isr is */
/* redefined. XXX [BHC]. */
*old_handler = (proc_ptr *) handler_info.pm_offset;
handler_info.pm_offset = (u_long) new_handler; handler_info.pm_offset = (u_long) new_handler;
handler_info.pm_selector = _go32_my_cs(); handler_info.pm_selector = _go32_my_cs();

View File

@@ -46,7 +46,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 1 ], Task_name[ 1 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 1 ] &Task_id[ 1 ]
@@ -56,7 +56,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 2 ], Task_name[ 2 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES, RTEMS_DEFAULT_ATTRIBUTES,
&Task_id[ 2 ] &Task_id[ 2 ]
@@ -66,7 +66,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 3 ], Task_name[ 3 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES, RTEMS_DEFAULT_ATTRIBUTES,
&Task_id[ 3 ] &Task_id[ 3 ]
@@ -76,7 +76,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 4 ], Task_name[ 4 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 4 ] &Task_id[ 4 ]
@@ -86,7 +86,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 5 ], Task_name[ 5 ],
2, 2,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 5 ] &Task_id[ 5 ]
@@ -96,7 +96,7 @@ rtems_task Init(
status = rtems_task_create( status = rtems_task_create(
Task_name[ 6 ], Task_name[ 6 ],
1, 1,
2048, 8192,
RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_MODES,
RTEMS_FLOATING_POINT, RTEMS_FLOATING_POINT,
&Task_id[ 6 ] &Task_id[ 6 ]