File indexing completed on 2025-05-11 08:24:42
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 <tmacros.h>
0034 #include "test_support.h"
0035 #include <rtems/cpuuse.h>
0036
0037 const char rtems_test_name[] = "SMP 9";
0038
0039 volatile int killtime;
0040
0041 rtems_task Init(
0042 rtems_task_argument argument
0043 );
0044
0045 rtems_task Test_task(
0046 rtems_task_argument argument
0047 );
0048
0049 rtems_task Test_task(
0050 rtems_task_argument argument
0051 )
0052 {
0053 while (1)
0054 ;
0055
0056 }
0057
0058 rtems_task Init(
0059 rtems_task_argument argument
0060 )
0061 {
0062 uint32_t i;
0063 char ch;
0064 uint32_t cpu_num;
0065 rtems_id id;
0066 rtems_status_code status;
0067
0068 TEST_BEGIN();
0069
0070 locked_print_initialize();
0071
0072 for ( killtime=0; killtime<1000000; killtime++ )
0073 ;
0074
0075 for ( i=0; i<rtems_scheduler_get_processor_maximum() -1; i++ ) {
0076 ch = '1' + i;
0077
0078 status = rtems_task_create(
0079 rtems_build_name( 'T', 'A', ch, ' ' ),
0080 1,
0081 RTEMS_MINIMUM_STACK_SIZE,
0082 RTEMS_DEFAULT_MODES,
0083 RTEMS_DEFAULT_ATTRIBUTES,
0084 &id
0085 );
0086 directive_failed( status, "task create" );
0087
0088 cpu_num = rtems_scheduler_get_processor();
0089 locked_printf(" CPU %" PRIu32 " start task TA%c\n", cpu_num, ch);
0090
0091 status = rtems_task_start( id, Test_task, i+1 );
0092 directive_failed( status, "task start" );
0093 }
0094
0095 locked_printf(" kill 10 clock ticks\n" );
0096 while ( rtems_clock_get_ticks_since_boot() < 10 )
0097 ;
0098
0099 rtems_cpu_usage_report();
0100
0101 TEST_END();
0102 rtems_test_exit(0);
0103 }
0104
0105
0106
0107 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0108 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
0109
0110 #define CONFIGURE_MAXIMUM_PROCESSORS 4
0111
0112 #define CONFIGURE_MAXIMUM_TASKS \
0113 (1 + CONFIGURE_MAXIMUM_PROCESSORS)
0114 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0115
0116 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0117
0118 #define CONFIGURE_MAXIMUM_SEMAPHORES 1
0119
0120 #define CONFIGURE_INIT
0121
0122 #include <rtems/confdefs.h>
0123