From 795030965e6a216bf4c7520414c89f9459b32988 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 2 Aug 1995 19:56:51 +0000 Subject: Added test cases: + some from Andy Bray (andy@i-cubed.demon.co.uk) which do not include task start up cost. + cases for interrupt disable, enable, and flash --- testsuites/tmtests/tm26/task1.c | 73 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) (limited to 'testsuites/tmtests') diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c index c2a5610a23..b3962b07e8 100644 --- a/testsuites/tmtests/tm26/task1.c +++ b/testsuites/tmtests/tm26/task1.c @@ -8,7 +8,7 @@ * to the copyright license under the clause at DFARS 252.227-7013. This * notice must appear in all copies of this file and its derivatives. * - * $Id$ + * task1.c,v 1.3 1995/06/05 23:55:00 joel Exp */ #include @@ -32,6 +32,8 @@ Objects_Locations location; /* uses internal RTEMS type */ Thread_Control *Middle_tcb; /* uses internal RTEMS type */ +Thread_Control *Low_tcb; /* uses internal RTEMS type */ + rtems_task High_task( rtems_task_argument argument ); @@ -166,6 +168,44 @@ rtems_task High_task( rtems_task_argument argument ) { + rtems_interrupt_level level; + + Timer_initialize(); + rtems_interrupt_disable( level ); + end_time = Read_timer(); + + put_time( + "INTERRUPT DISABLE", + end_time, + 1, + 0, + 0 + ); + + Timer_initialize(); + rtems_interrupt_flash( level ); + end_time = Read_timer(); + + put_time( + "INTERRUPT FLASH", + end_time, + 1, + 0, + 0 + ); + + Timer_initialize(); + rtems_interrupt_enable( level ); + end_time = Read_timer(); + + put_time( + "INTERRUPT ENABLE", + end_time, + 1, + 0, + 0 + ); + Timer_initialize(); _Thread_Disable_dispatch(); end_time = Read_timer(); @@ -178,7 +218,6 @@ rtems_task High_task( 0 ); - Timer_initialize(); _Thread_Enable_dispatch(); end_time = Read_timer(); @@ -238,6 +277,9 @@ rtems_task Middle_task( Timer_initialize(); _Context_Switch( &Middle_tcb->Registers, &_Thread_Executing->Registers ); + + Timer_initialize(); + _Context_Switch(&Middle_tcb->Registers, &Low_tcb->Registers); } rtems_task Low_task( @@ -258,6 +300,33 @@ rtems_task Low_task( executing = _Thread_Executing; + Low_tcb = executing; + + Timer_initialize(); + _Context_Switch( &executing->Registers, &executing->Registers ); + + end_time = Read_timer(); + + put_time( + "CONTEXT_SWITCH (SELF)", + end_time, + 1, + 0, + 0 + ); + + _Context_Switch(&executing->Registers, &Middle_tcb->Registers); + + end_time = Read_timer(); + + put_time( + "CONTEXT_SWITCH (Initialised)", + end_time, + 1, + 0, + 0 + ); + _Thread_Executing = (Thread_Control *) _Thread_Ready_chain[201].first; -- cgit v1.2.3