File indexing completed on 2025-05-11 08:24:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifdef HAVE_CONFIG_H
0030 #include "config.h"
0031 #endif
0032
0033 #include "system.h"
0034 #include "fptest.h"
0035 #include "inttest.h"
0036
0037 rtems_task FP_task(
0038 rtems_task_argument argument
0039 )
0040 {
0041 rtems_status_code status;
0042 rtems_id tid;
0043 rtems_time_of_day time;
0044 uint32_t task_index;
0045 uint32_t previous_seconds;
0046 INTEGER_DECLARE;
0047 FP_DECLARE;
0048
0049 status = rtems_task_ident( RTEMS_WHO_AM_I, RTEMS_SEARCH_ALL_NODES, &tid );
0050 directive_failed( status, "rtems_task_ident of self" );
0051
0052 task_index = task_number( tid );
0053
0054 INTEGER_LOAD( INTEGER_factors[ task_index ] );
0055 FP_LOAD( FP_factors[ task_index ] );
0056
0057 put_name( Task_name[ task_index ], FALSE );
0058 printf(
0059 " - integer base = (0x%" PRIx32 ")\n",
0060 INTEGER_factors[ task_index ]
0061 );
0062 put_name( Task_name[ task_index ], FALSE );
0063 printf( " - float base = (%g)\n", FP_factors[ task_index ] );
0064
0065 previous_seconds = (uint32_t)-1;
0066
0067 while( FOREVER ) {
0068
0069 status = rtems_clock_get_tod( &time );
0070 directive_failed( status, "rtems_clock_get_tod" );
0071
0072 if ( time.second >= 16 ) {
0073 if ( task_number( tid ) == 4 ) {
0074 puts( "TA4 - rtems_task_exit" );
0075 rtems_task_exit();
0076 }
0077 puts( "TA5 - rtems_task_delete - TA3" );
0078 status = rtems_task_delete( Task_id[ 3 ] );
0079 directive_failed( status, "rtems_task_delete of TA3" );
0080
0081 TEST_END();
0082 rtems_test_exit( 0 );
0083 }
0084
0085 if (previous_seconds != time.second) {
0086 put_name( Task_name[ task_index ], FALSE );
0087 print_time( " - rtems_clock_get_tod - ", &time, "\n" );
0088 previous_seconds = time.second;
0089 }
0090
0091 INTEGER_CHECK( INTEGER_factors[ task_index ] );
0092 FP_CHECK( FP_factors[ task_index ] );
0093
0094
0095
0096
0097
0098 if (time.second >= 4) {
0099 status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
0100 directive_failed( status, "rtems_task_wake_after" );
0101 }
0102 }
0103 }