source: rtems/testsuites/sptests/sp30/task1.c @ 35fc6bf9

4.104.114.84.95
Last change on this file since 35fc6bf9 was 35fc6bf9, checked in by Joel Sherrill <joel.sherrill@…>, on 08/18/03 at 15:29:06

2003-08-18 Eiichiro Kawaguchi <e-kawaguchi@…>

PR 458/tests

  • sp30/task1.c: Correct indexing problem.
  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*  Task_1_through_3
2 *
3 *  This task is a cyclic version of test1 to asssure that the times
4 *  displayed are not skewed as in test1.  "TA1" is printed once every
5 *  5 seconds, "TA2" is printed once every 10 seconds, and "TA3" is
6 *  printed once every 15 seconds.  The times displayed should be
7 *  in multiples of 5, 10, and 15 for TA1, TA2, and TA3 respectively.
8 *  If the times are skewed from these values, then the calendar time
9 *  does not correspond correctly with the number of ticks.
10 *
11 *  COPYRIGHT (c) 1989-2002.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.OARcorp.com/rtems/license.html.
17 *
18 *  $Id$
19 */
20
21#include "system.h"
22
23rtems_task Task_1_through_3(
24  rtems_task_argument argument
25)
26{
27  rtems_id          tid;
28  rtems_time_of_day time;
29  rtems_status_code status;
30
31  status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid );
32  directive_failed( status, "rtems_task_ident of self" );
33
34  while ( FOREVER )  {
35    status = rtems_timer_server_fire_after(
36      Timer_id[ argument ],
37      (task_number( tid ) - 1) * 5 * TICKS_PER_SECOND,
38      Resume_task,
39      NULL
40    );
41    directive_failed( status, "rtems_timer_server_fire_after failed" );
42
43    status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time );
44    directive_failed( status, "rtems_clock_get failed" );
45
46    if ( time.second >= 35 ) {
47      puts( "*** END OF TEST 30 ***" );
48      rtems_test_exit( 0 );
49    }
50
51    put_name( Task_name[ task_number( tid ) - 1 ], FALSE );
52    print_time( " - rtems_clock_get - ", &time, "\n" );
53
54    status = rtems_task_suspend( RTEMS_SELF );
55    directive_failed( status, "rtems_task_suspend" );
56  }
57}
Note: See TracBrowser for help on using the repository browser.