mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-02-06 13:22:57 +08:00
testsuites/sptests: reformat with clang-format
Updates #3860. Updates #5358.
This commit is contained in:
committed by
Kinsey Moore
parent
c9101cef19
commit
689913555d
@@ -35,10 +35,11 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 1";
|
||||
|
||||
static RTEMS_NOINIT RTEMS_ALIGNED( RTEMS_TASK_STORAGE_ALIGNMENT ) char
|
||||
Task_1_storage[
|
||||
RTEMS_TASK_STORAGE_SIZE( 2 * RTEMS_MINIMUM_STACK_SIZE, RTEMS_FLOATING_POINT )
|
||||
];
|
||||
static RTEMS_NOINIT RTEMS_ALIGNED( RTEMS_TASK_STORAGE_ALIGNMENT )
|
||||
char Task_1_storage[ RTEMS_TASK_STORAGE_SIZE(
|
||||
2 * RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_FLOATING_POINT
|
||||
) ];
|
||||
|
||||
static const rtems_task_config Task_1_config = {
|
||||
.name = rtems_build_name( 'T', 'A', '1', ' ' ),
|
||||
@@ -51,9 +52,7 @@ static const rtems_task_config Task_1_config = {
|
||||
.attributes = RTEMS_FLOATING_POINT
|
||||
};
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
|
||||
@@ -30,13 +30,9 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1_through_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1_through_3( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
@@ -59,8 +55,8 @@ rtems_task Task_1_through_3(
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 3 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE 1
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1_through_3(
|
||||
rtems_task_argument index
|
||||
)
|
||||
rtems_task Task_1_through_3( rtems_task_argument index )
|
||||
{
|
||||
rtems_time_of_day time;
|
||||
rtems_status_code status;
|
||||
@@ -46,7 +44,7 @@ rtems_task Task_1_through_3(
|
||||
|
||||
ticks = RTEMS_MILLISECONDS_TO_TICKS( index * 5 * 1000 );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
status = rtems_clock_get_tod( &time );
|
||||
directive_failed( status, "rtems_clock_get_tod" );
|
||||
|
||||
|
||||
@@ -35,9 +35,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 2";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -63,37 +61,37 @@ rtems_task Init(
|
||||
status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
Task_name[ 1 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA1" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
Task_name[ 2 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA2" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
Task_name[ 3 ],
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA3" );
|
||||
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Preempt_task(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Preempt_task( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
|
||||
@@ -30,25 +30,15 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Preempt_task(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Preempt_task( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
@@ -58,19 +48,19 @@ rtems_task Task_3(
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
|
||||
/*
|
||||
* Deliberately configure the IDLE Task's stack as greater than minimum
|
||||
* so it will have to be increased.
|
||||
*/
|
||||
#define CONFIGURE_IDLE_TASK_STACK_SIZE (2 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_IDLE_TASK_STACK_SIZE ( 2 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
|
||||
/* end of include file */
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -42,7 +40,7 @@ rtems_task Task_1(
|
||||
rtems_id tid3;
|
||||
rtems_status_code status;
|
||||
rtems_name tid2_name;
|
||||
uint32_t previous_priority;
|
||||
uint32_t previous_priority;
|
||||
|
||||
puts( "TA1 - rtems_task_wake_after - sleep 1 second" );
|
||||
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
|
||||
@@ -52,19 +50,23 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_task_ident of TA2" );
|
||||
|
||||
printf(
|
||||
"TA1 - rtems_task_ident - tid of TA2 (0x%.8" PRIxrtems_id ")\n", tid2
|
||||
"TA1 - rtems_task_ident - tid of TA2 (0x%.8" PRIxrtems_id ")\n",
|
||||
tid2
|
||||
);
|
||||
status = rtems_object_get_classic_name( tid2, &tid2_name );
|
||||
directive_failed( status, "rtems_object_get_classic_name of TA2" );
|
||||
|
||||
printf( "TA1 - rtems_get_classic_name - id -> name of TA2 %sOK\n",
|
||||
(tid2_name != Task_name[2]) ? "NOT " : "" );
|
||||
printf(
|
||||
"TA1 - rtems_get_classic_name - id -> name of TA2 %sOK\n",
|
||||
( tid2_name != Task_name[ 2 ] ) ? "NOT " : ""
|
||||
);
|
||||
|
||||
status = rtems_task_ident( Task_name[ 3 ], RTEMS_SEARCH_ALL_NODES, &tid3 );
|
||||
directive_failed( status, "rtems_task_ident of TA3" );
|
||||
|
||||
printf(
|
||||
"TA1 - rtems_task_ident - tid of TA3 (0x%.8" PRIxrtems_id ")\n", tid3
|
||||
"TA1 - rtems_task_ident - tid of TA3 (0x%.8" PRIxrtems_id ")\n",
|
||||
tid3
|
||||
);
|
||||
|
||||
status = rtems_task_set_priority( tid3, 2, &previous_priority );
|
||||
|
||||
@@ -32,15 +32,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
rtems_status_code status;
|
||||
|
||||
puts( "TA2 - rtems_task_wake_after - sleep 1 minute" );
|
||||
status = rtems_task_wake_after( 60*rtems_clock_get_ticks_per_second() );
|
||||
status = rtems_task_wake_after( 60 * rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after in TA2" );
|
||||
}
|
||||
|
||||
@@ -32,16 +32,14 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_3( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
rtems_status_code status;
|
||||
|
||||
puts( "TA3 - rtems_task_wake_after - sleep 5 seconds" );
|
||||
status = rtems_task_wake_after( 5*rtems_clock_get_ticks_per_second() );
|
||||
status = rtems_task_wake_after( 5 * rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after in TA3" );
|
||||
|
||||
puts( "TA3 - rtems_task_delete - delete self" );
|
||||
|
||||
@@ -35,9 +35,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 3";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
|
||||
@@ -30,17 +30,11 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
@@ -51,8 +45,8 @@ rtems_task Task_2(
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (1 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_MAXIMUM_TASKS 3
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 1 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
#define CONFIGURE_MAXIMUM_TASKS 3
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -53,7 +51,7 @@ rtems_task Task_1(
|
||||
put_name( name, FALSE );
|
||||
print_time( " sets clock: ", &time, "\n" );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
status = rtems_clock_get_tod( &time );
|
||||
directive_failed( status, "rtems_clock_get_tod" );
|
||||
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -45,7 +43,7 @@ rtems_task Task_2(
|
||||
status = rtems_object_get_classic_name( rtems_task_self(), &name );
|
||||
directive_failed( status, "rtems_object_get_classic_name" );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
|
||||
|
||||
@@ -59,9 +59,7 @@ rtems_extensions_table Extensions = {
|
||||
.thread_terminate = NULL
|
||||
};
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -74,7 +72,7 @@ rtems_task Init(
|
||||
status = rtems_clock_set( &time );
|
||||
directive_failed( status, "rtems_clock_set" );
|
||||
|
||||
Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' );
|
||||
Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' );
|
||||
|
||||
status = rtems_extension_create(
|
||||
Extension_name[ 1 ],
|
||||
@@ -83,41 +81,41 @@ rtems_task Init(
|
||||
);
|
||||
directive_failed( status, "rtems_extension_create" );
|
||||
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
|
||||
Run_count[ 1 ] = 0;
|
||||
Run_count[ 2 ] = 0;
|
||||
Run_count[ 3 ] = 0;
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT|RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT | RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA1" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT|RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 2 ]
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT | RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 2 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA2" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT|RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_PREEMPT | RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA3" );
|
||||
|
||||
|
||||
@@ -34,55 +34,44 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
void Task_switch(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *heir
|
||||
);
|
||||
void Task_switch( rtems_tcb *unused, rtems_tcb *heir );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MAXIMUM_TIMERS 1
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 3 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MAXIMUM_TIMERS 1
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_id Extension_id[ 4 ];
|
||||
TEST_EXTERN rtems_name Extension_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_name Extension_name[ 4 ]; /* array of task names */
|
||||
|
||||
/* array of task run counts */
|
||||
TEST_EXTERN volatile uint32_t Run_count[ 4 ];
|
||||
TEST_EXTERN volatile uint32_t Run_count[ 4 ];
|
||||
|
||||
/*
|
||||
* Keep track of task switches
|
||||
@@ -94,8 +83,7 @@ struct taskSwitchLog {
|
||||
};
|
||||
|
||||
extern struct taskSwitchLog taskSwitchLog[];
|
||||
extern unsigned int taskSwitchLogIndex;
|
||||
extern volatile int testsFinished;
|
||||
|
||||
extern unsigned int taskSwitchLogIndex;
|
||||
extern volatile int testsFinished;
|
||||
|
||||
/* end of include file */
|
||||
|
||||
@@ -41,15 +41,14 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
static void
|
||||
showTaskSwitches (void)
|
||||
static void showTaskSwitches( void )
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int switches = taskSwitchLogIndex;
|
||||
|
||||
for (i = 0 ; i < switches ; i++) {
|
||||
put_name( Task_name[taskSwitchLog[i].taskIndex], FALSE );
|
||||
print_time( "- ", &taskSwitchLog[i].when, "\n" );
|
||||
for ( i = 0; i < switches; i++ ) {
|
||||
put_name( Task_name[ taskSwitchLog[ i ].taskIndex ], FALSE );
|
||||
print_time( "- ", &taskSwitchLog[ i ].when, "\n" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,8 +70,8 @@ static void high_task( rtems_task_argument arg )
|
||||
sc = rtems_event_transient_send( Task_id[ 1 ] );
|
||||
rtems_test_assert( sc == RTEMS_SUCCESSFUL );
|
||||
|
||||
rtems_task_suspend(RTEMS_SELF);
|
||||
rtems_test_assert(0);
|
||||
rtems_task_suspend( RTEMS_SELF );
|
||||
rtems_test_assert( 0 );
|
||||
}
|
||||
|
||||
static void low_task( rtems_task_argument arg )
|
||||
@@ -82,8 +81,8 @@ static void low_task( rtems_task_argument arg )
|
||||
rtems_test_assert( test_no_preempt_step == 1 );
|
||||
test_no_preempt_step = 2;
|
||||
|
||||
rtems_task_suspend(RTEMS_SELF);
|
||||
rtems_test_assert(0);
|
||||
rtems_task_suspend( RTEMS_SELF );
|
||||
rtems_test_assert( 0 );
|
||||
}
|
||||
|
||||
static void no_preempt_timer( rtems_id id, void *arg )
|
||||
@@ -106,7 +105,7 @@ static void no_preempt_timer( rtems_id id, void *arg )
|
||||
static void test_no_preempt( void )
|
||||
{
|
||||
rtems_status_code sc;
|
||||
rtems_id id;
|
||||
rtems_id id;
|
||||
|
||||
rtems_test_assert( test_no_preempt_step == 0 );
|
||||
|
||||
@@ -157,19 +156,17 @@ static void test_no_preempt( void )
|
||||
rtems_test_assert( test_no_preempt_step == 3 );
|
||||
}
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
uint32_t seconds;
|
||||
uint32_t old_seconds;
|
||||
uint32_t seconds;
|
||||
uint32_t old_seconds;
|
||||
rtems_mode previous_mode;
|
||||
rtems_time_of_day time;
|
||||
rtems_status_code status;
|
||||
uint32_t start_time;
|
||||
uint32_t end_time;
|
||||
uint32_t start_time;
|
||||
uint32_t end_time;
|
||||
|
||||
puts( "TA1 - rtems_task_suspend - on Task 2" );
|
||||
status = rtems_task_suspend( Task_id[ 2 ] );
|
||||
@@ -184,12 +181,13 @@ rtems_task Task_1(
|
||||
|
||||
puts( "TA1 - killing time" );
|
||||
|
||||
for ( ; ; ) {
|
||||
for ( ;; ) {
|
||||
status = rtems_clock_get_seconds_since_epoch( &end_time );
|
||||
directive_failed( status, "rtems_clock_get_seconds_since_epoch" );
|
||||
|
||||
if ( end_time > (start_time + 2) )
|
||||
if ( end_time > ( start_time + 2 ) ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
puts( "TA1 - rtems_task_resume - on Task 2" );
|
||||
@@ -216,7 +214,7 @@ rtems_task Task_1(
|
||||
|
||||
old_seconds = time.second;
|
||||
|
||||
for ( seconds = 0 ; seconds < 6 ; ) {
|
||||
for ( seconds = 0; seconds < 6; ) {
|
||||
status = rtems_clock_get_tod( &time );
|
||||
directive_failed( status, "rtems_clock_get_tod" );
|
||||
|
||||
@@ -236,16 +234,16 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
|
||||
while ( !testsFinished );
|
||||
showTaskSwitches ();
|
||||
showTaskSwitches();
|
||||
|
||||
puts( "TA1 - rtems_extension_delete - successful" );
|
||||
status = rtems_extension_delete( Extension_id[1] );
|
||||
status = rtems_extension_delete( Extension_id[ 1 ] );
|
||||
directive_failed( status, "rtems_extension_delete" );
|
||||
|
||||
test_no_preempt();
|
||||
|
||||
TEST_END();
|
||||
rtems_test_exit (0);
|
||||
rtems_test_exit( 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,11 +41,9 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
while( FOREVER );
|
||||
while ( FOREVER );
|
||||
}
|
||||
|
||||
@@ -41,11 +41,9 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_3( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
while( FOREVER );
|
||||
while ( FOREVER );
|
||||
}
|
||||
|
||||
@@ -38,24 +38,21 @@
|
||||
*/
|
||||
#define MAX_TASK_SWITCH_LOGS 25
|
||||
|
||||
struct taskSwitchLog taskSwitchLog[MAX_TASK_SWITCH_LOGS];
|
||||
unsigned int taskSwitchLogIndex;
|
||||
volatile int testsFinished;
|
||||
struct taskSwitchLog taskSwitchLog[ MAX_TASK_SWITCH_LOGS ];
|
||||
unsigned int taskSwitchLogIndex;
|
||||
volatile int testsFinished;
|
||||
|
||||
void Task_switch(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *heir
|
||||
)
|
||||
void Task_switch( rtems_tcb *unused, rtems_tcb *heir )
|
||||
{
|
||||
(void) unused;
|
||||
|
||||
uint32_t index;
|
||||
uint32_t index;
|
||||
rtems_time_of_day time;
|
||||
rtems_status_code status;
|
||||
|
||||
index = task_number( heir->Object.id ) - task_number( Task_id[1] ) + 1;
|
||||
index = task_number( heir->Object.id ) - task_number( Task_id[ 1 ] ) + 1;
|
||||
|
||||
switch( index ) {
|
||||
switch ( index ) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
@@ -64,13 +61,14 @@ void Task_switch(
|
||||
status = rtems_clock_get_tod( &time );
|
||||
directive_failed_with_level( status, "rtems_clock_get_tod", 1 );
|
||||
|
||||
if (taskSwitchLogIndex < MAX_TASK_SWITCH_LOGS ) {
|
||||
taskSwitchLog[taskSwitchLogIndex].taskIndex = index;
|
||||
taskSwitchLog[taskSwitchLogIndex].when = time;
|
||||
if ( taskSwitchLogIndex < MAX_TASK_SWITCH_LOGS ) {
|
||||
taskSwitchLog[ taskSwitchLogIndex ].taskIndex = index;
|
||||
taskSwitchLog[ taskSwitchLogIndex ].when = time;
|
||||
taskSwitchLogIndex++;
|
||||
}
|
||||
if ( time.second >= 16 )
|
||||
testsFinished = 1;
|
||||
if ( time.second >= 16 ) {
|
||||
testsFinished = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0:
|
||||
|
||||
@@ -47,9 +47,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 5";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -57,37 +55,37 @@ rtems_task Init(
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA1" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA2" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA3" );
|
||||
|
||||
|
||||
@@ -34,39 +34,31 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
|
||||
/* end of include file */
|
||||
|
||||
@@ -43,15 +43,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
rtems_id tid2;
|
||||
rtems_id tid3;
|
||||
uint32_t pass;
|
||||
uint32_t pass;
|
||||
rtems_status_code status;
|
||||
|
||||
status = rtems_task_ident( Task_name[ 2 ], 1, &tid2 );
|
||||
@@ -60,19 +58,18 @@ rtems_task Task_1(
|
||||
status = rtems_task_ident( Task_name[ 3 ], 1, &tid3 );
|
||||
directive_failed( status, "rtems_task_ident of TA3" );
|
||||
|
||||
for ( pass=1 ; pass <= 3 ; pass++ ) {
|
||||
|
||||
for ( pass = 1; pass <= 3; pass++ ) {
|
||||
puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" );
|
||||
status = rtems_task_wake_after( 5*rtems_clock_get_ticks_per_second() );
|
||||
status = rtems_task_wake_after( 5 * rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after of TA1" );
|
||||
|
||||
puts( "TA1 - rtems_task_suspend - suspend TA3" );
|
||||
status = rtems_task_suspend( tid3 );
|
||||
if ( pass == 1 ) {
|
||||
fatal_directive_status(
|
||||
status,
|
||||
RTEMS_ALREADY_SUSPENDED,
|
||||
"rtems_task_suspend of TA3"
|
||||
status,
|
||||
RTEMS_ALREADY_SUSPENDED,
|
||||
"rtems_task_suspend of TA3"
|
||||
);
|
||||
} else {
|
||||
directive_failed( status, "rtems_task_suspend of TA3" );
|
||||
@@ -83,7 +80,7 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_task_resume of TA2" );
|
||||
|
||||
puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" );
|
||||
status = rtems_task_wake_after( 5*rtems_clock_get_ticks_per_second() );
|
||||
status = rtems_task_wake_after( 5 * rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
|
||||
puts( "TA1 - rtems_task_suspend - suspend TA2" );
|
||||
|
||||
@@ -41,9 +41,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -53,7 +51,7 @@ rtems_task Task_2(
|
||||
status = rtems_task_suspend( RTEMS_SELF );
|
||||
directive_failed( status, "rtems_task_suspend of TA2" );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
puts( "TA2 - rtems_task_wake_after - sleep 1 second" );
|
||||
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after of TA2" );
|
||||
|
||||
@@ -41,9 +41,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_3( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -53,7 +51,7 @@ rtems_task Task_3(
|
||||
status = rtems_task_suspend( RTEMS_SELF );
|
||||
directive_failed( status, "rtems_task_suspend of TA3" );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
puts( "TA3 - rtems_task_wake_after - sleep 1 second" );
|
||||
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
|
||||
directive_failed( status, "rtems_task_wake_after of TA3" );
|
||||
|
||||
@@ -47,9 +47,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 6";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -58,40 +56,40 @@ rtems_task Init(
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
|
||||
Argument = 0;
|
||||
Restart_argument = 1;
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA1" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA2" );
|
||||
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
10,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
Task_name[ 3 ],
|
||||
10,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create of TA3" );
|
||||
|
||||
|
||||
@@ -34,40 +34,32 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_task_argument Argument; /* generic task argument */
|
||||
TEST_EXTERN rtems_task_argument Restart_argument; /* task 1 restart argument */
|
||||
|
||||
@@ -41,11 +41,9 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
uint32_t pass;
|
||||
uint32_t pass;
|
||||
rtems_status_code status;
|
||||
|
||||
puts( "TA1 - is beginning to run" );
|
||||
|
||||
@@ -51,7 +51,7 @@ rtems_task Task_2( rtems_task_argument argument )
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
}
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
puts( "TA2 - rtems_task_wake_after - sleep 1/2 second" );
|
||||
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() / 2 );
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
|
||||
@@ -41,9 +41,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_3( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
|
||||
@@ -35,9 +35,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 7";
|
||||
|
||||
static void Task_harmless_extension_one(
|
||||
rtems_tcb *unused_one
|
||||
)
|
||||
static void Task_harmless_extension_one( rtems_tcb *unused_one )
|
||||
{
|
||||
(void) unused_one;
|
||||
|
||||
@@ -90,9 +88,7 @@ rtems_extensions_table Extensions = {
|
||||
.thread_terminate = NULL
|
||||
};
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -101,23 +97,32 @@ rtems_task Init(
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', '1' );
|
||||
Extension_name[ 2 ] = rtems_build_name( 'E', 'X', 'T', '2' );
|
||||
Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', '1' );
|
||||
Extension_name[ 2 ] = rtems_build_name( 'E', 'X', 'T', '2' );
|
||||
|
||||
puts ( "rtems_extension_create - bad table -- RTEMS_INVALID_ADDRESS" );
|
||||
puts( "rtems_extension_create - bad table -- RTEMS_INVALID_ADDRESS" );
|
||||
status = rtems_extension_create( 0xa5a5a5a5, NULL, &id );
|
||||
fatal_directive_status(
|
||||
status, RTEMS_INVALID_ADDRESS, "rtems_extension_create" );
|
||||
status,
|
||||
RTEMS_INVALID_ADDRESS,
|
||||
"rtems_extension_create"
|
||||
);
|
||||
|
||||
puts ( "rtems_extension_create - bad id pointer -- RTEMS_INVALID_ADDRESS" );
|
||||
puts( "rtems_extension_create - bad id pointer -- RTEMS_INVALID_ADDRESS" );
|
||||
status = rtems_extension_create( 0xa5a5a5a5, &Extensions, NULL );
|
||||
fatal_directive_status(
|
||||
status, RTEMS_INVALID_ADDRESS, "rtems_extension_create" );
|
||||
status,
|
||||
RTEMS_INVALID_ADDRESS,
|
||||
"rtems_extension_create"
|
||||
);
|
||||
|
||||
puts ( "rtems_extension_create - bad name -- RTEMS_INVALID_NAME" );
|
||||
puts( "rtems_extension_create - bad name -- RTEMS_INVALID_NAME" );
|
||||
status = rtems_extension_create( 0, &Extensions, &id );
|
||||
fatal_directive_status(
|
||||
status, RTEMS_INVALID_NAME, "rtems_extension_create #1" );
|
||||
status,
|
||||
RTEMS_INVALID_NAME,
|
||||
"rtems_extension_create #1"
|
||||
);
|
||||
|
||||
puts( "rtems_extension_create - first one -- OK" );
|
||||
status = rtems_extension_create(
|
||||
@@ -135,7 +140,7 @@ rtems_task Init(
|
||||
);
|
||||
directive_failed( status, "rtems_extension_create #2" );
|
||||
|
||||
puts ( "rtems_extension_create -- RTEMS_TOO_MANY" );
|
||||
puts( "rtems_extension_create -- RTEMS_TOO_MANY" );
|
||||
status = rtems_extension_create( 0xa5a5a5a5, &Extensions, &id );
|
||||
fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_extension_create" );
|
||||
|
||||
@@ -151,16 +156,20 @@ rtems_task Init(
|
||||
"rtems_extension_delete #2 bad"
|
||||
);
|
||||
|
||||
puts ( "rtems_extension_ident -- OK" );
|
||||
status = rtems_extension_ident( Extension_name[1], &id );
|
||||
puts( "rtems_extension_ident -- OK" );
|
||||
status = rtems_extension_ident( Extension_name[ 1 ], &id );
|
||||
directive_failed( status, "rtems_extension_ident" );
|
||||
|
||||
puts ( "rtems_extension_ident - bad name -- RTEMS_INVALID_NAME" );
|
||||
status = rtems_extension_ident( Extension_name[2], &id );
|
||||
fatal_directive_status( status, RTEMS_INVALID_NAME, "rtems_extension_ident" );
|
||||
puts( "rtems_extension_ident - bad name -- RTEMS_INVALID_NAME" );
|
||||
status = rtems_extension_ident( Extension_name[ 2 ], &id );
|
||||
fatal_directive_status(
|
||||
status,
|
||||
RTEMS_INVALID_NAME,
|
||||
"rtems_extension_ident"
|
||||
);
|
||||
|
||||
puts ( "rtems_extension_ident - bad name -- RTEMS_INVALID_ADDRESS" );
|
||||
status = rtems_extension_ident( Extension_name[2], NULL );
|
||||
puts( "rtems_extension_ident - bad name -- RTEMS_INVALID_ADDRESS" );
|
||||
status = rtems_extension_ident( Extension_name[ 2 ], NULL );
|
||||
fatal_directive_status(
|
||||
status,
|
||||
RTEMS_INVALID_ADDRESS,
|
||||
@@ -202,7 +211,7 @@ rtems_task Init(
|
||||
directive_failed( status, "rtems_task_create of TA2" );
|
||||
assert_extension_counts( &Task_created[ 0 ], 0x2 | 0x4 );
|
||||
|
||||
#define TA3_PRIORITY (RTEMS_MAXIMUM_PRIORITY - 4u)
|
||||
#define TA3_PRIORITY ( RTEMS_MAXIMUM_PRIORITY - 4u )
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
TA3_PRIORITY,
|
||||
@@ -214,7 +223,7 @@ rtems_task Init(
|
||||
directive_failed( status, "rtems_task_create of TA3" );
|
||||
assert_extension_counts( &Task_created[ 0 ], 0x2 | 0x4 | 0x8 );
|
||||
|
||||
#define TA4_PRIORITY (RTEMS_MAXIMUM_PRIORITY - 1u)
|
||||
#define TA4_PRIORITY ( RTEMS_MAXIMUM_PRIORITY - 1u )
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
TA4_PRIORITY,
|
||||
|
||||
@@ -34,74 +34,50 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_4(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_4( rtems_task_argument argument );
|
||||
|
||||
bool Task_create_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *created_task
|
||||
);
|
||||
bool Task_create_extension( rtems_tcb *unused, rtems_tcb *created_task );
|
||||
|
||||
void Task_delete_extension(
|
||||
rtems_tcb *running_task,
|
||||
rtems_tcb *deleted_task
|
||||
);
|
||||
void Task_delete_extension( rtems_tcb *running_task, rtems_tcb *deleted_task );
|
||||
|
||||
void Task_restart_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *restarted_task
|
||||
);
|
||||
void Task_restart_extension( rtems_tcb *unused, rtems_tcb *restarted_task );
|
||||
|
||||
void Task_start_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *started_task
|
||||
);
|
||||
void Task_start_extension( rtems_tcb *unused, rtems_tcb *started_task );
|
||||
|
||||
void Task_exit_extension(
|
||||
rtems_tcb *running_task
|
||||
);
|
||||
void Task_exit_extension( rtems_tcb *running_task );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 2
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 2
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (4 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_MAXIMUM_TASKS 5
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 4 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
#define CONFIGURE_MAXIMUM_TASKS 5
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 5 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 5 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 5 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 5 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_id Extension_id[ 4 ];
|
||||
TEST_EXTERN rtems_name Extension_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_name Extension_name[ 4 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN int Task_created[ RTEMS_ARRAY_SIZE( Task_id ) ];
|
||||
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -50,17 +48,19 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
printf(
|
||||
"TA1 - rtems_task_set_priority - get initial "
|
||||
"priority of self: %02" PRIdrtems_task_priority "\n",
|
||||
"priority of self: %02" PRIdrtems_task_priority "\n",
|
||||
the_priority
|
||||
);
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
if ( --the_priority == 0 ) {
|
||||
puts( "TA1 - rtems_task_suspend - suspend TA2" );
|
||||
status = rtems_task_suspend( Task_id[ 2 ] );
|
||||
directive_failed( status, "rtems_task_suspend" );
|
||||
|
||||
puts( "TA1 - rtems_task_set_priority - set priority of TA2 ( blocked )" );
|
||||
puts(
|
||||
"TA1 - rtems_task_set_priority - set priority of TA2 ( blocked )"
|
||||
);
|
||||
status = rtems_task_set_priority( Task_id[ 2 ], 5, &previous_priority );
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
|
||||
@@ -72,13 +72,13 @@ rtems_task Task_1(
|
||||
|
||||
printf(
|
||||
"TA1 - rtems_task_set_priority - set TA2's priority: "
|
||||
"%02" PRIdrtems_task_priority "\n",
|
||||
"%02" PRIdrtems_task_priority "\n",
|
||||
the_priority
|
||||
);
|
||||
status = rtems_task_set_priority(
|
||||
Task_id[ 2 ],
|
||||
the_priority,
|
||||
&previous_priority
|
||||
Task_id[ 2 ],
|
||||
the_priority,
|
||||
&previous_priority
|
||||
);
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
}
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -49,36 +47,37 @@ rtems_task Task_2(
|
||||
);
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
if ( --the_priority == 0 ) {
|
||||
puts( "TA2 - rtems_task_suspend - suspend TA1" );
|
||||
status = rtems_task_suspend( Task_id[ 1 ] );
|
||||
directive_failed( status, "rtems_task_suspend" );
|
||||
|
||||
puts( "TA2 - rtems_task_set_priority - set priority of TA1 ( blocked )" );
|
||||
puts(
|
||||
"TA2 - rtems_task_set_priority - set priority of TA1 ( blocked )"
|
||||
);
|
||||
status = rtems_task_set_priority( Task_id[ 1 ], 5, &previous_priority );
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
|
||||
status = rtems_task_delete( Task_id[ 1 ] ); /* TA1 is blocked */
|
||||
status = rtems_task_delete( Task_id[ 1 ] ); /* TA1 is blocked */
|
||||
directive_failed( status, "rtems_task_delete of TA1" );
|
||||
assert_extension_counts( &Task_deleted[ 0 ], 0x0 );
|
||||
|
||||
status = rtems_task_delete( Task_id[ 3 ] ); /* TA3 is ready */
|
||||
status = rtems_task_delete( Task_id[ 3 ] ); /* TA3 is ready */
|
||||
directive_failed( status, "rtems_task_delete of TA3" );
|
||||
assert_extension_counts( &Task_deleted[ 0 ], 0x0 );
|
||||
|
||||
rtems_task_exit();
|
||||
} else {
|
||||
|
||||
printf(
|
||||
"TA2 - rtems_task_set_priority - set TA1's priority: "
|
||||
"%02" PRIdrtems_task_priority "\n",
|
||||
"%02" PRIdrtems_task_priority "\n",
|
||||
the_priority
|
||||
);
|
||||
status = rtems_task_set_priority(
|
||||
Task_id[ 1 ],
|
||||
the_priority,
|
||||
&previous_priority
|
||||
Task_id[ 1 ],
|
||||
the_priority,
|
||||
&previous_priority
|
||||
);
|
||||
directive_failed( status, "rtems_task_set_priority" );
|
||||
}
|
||||
|
||||
@@ -41,15 +41,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_3( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
rtems_status_code status;
|
||||
|
||||
while( FOREVER ) {
|
||||
while ( FOREVER ) {
|
||||
status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
||||
directive_failed( status, "rtems_task_wake_after" );
|
||||
}
|
||||
|
||||
@@ -42,14 +42,12 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_4(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_4( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
rtems_status_code status;
|
||||
rtems_id id;
|
||||
rtems_id id;
|
||||
|
||||
assert_extension_counts( &Task_created[ 0 ], 0x2 | 0x4 | 0x8 | 0x10 );
|
||||
assert_extension_counts( &Task_started[ 0 ], 0x2 | 0x4 | 0x8 | 0x10 );
|
||||
|
||||
@@ -39,9 +39,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
void Task_exit_extension(
|
||||
rtems_tcb *running_task
|
||||
)
|
||||
void Task_exit_extension( rtems_tcb *running_task )
|
||||
{
|
||||
if ( task_number( running_task->Object.id ) > 0 ) {
|
||||
puts_nocr( "RTEMS_TASK_EXITTED - extension invoked for " );
|
||||
|
||||
@@ -41,16 +41,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
bool Task_create_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *created_task
|
||||
)
|
||||
bool Task_create_extension( rtems_tcb *unused, rtems_tcb *created_task )
|
||||
{
|
||||
(void) unused;
|
||||
|
||||
ssize_t task = task_number( created_task->Object.id );
|
||||
|
||||
if (task > 0) {
|
||||
if ( task > 0 ) {
|
||||
++Task_created[ task ];
|
||||
}
|
||||
|
||||
|
||||
@@ -41,14 +41,11 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
void Task_delete_extension(
|
||||
rtems_tcb *running_task,
|
||||
rtems_tcb *deleted_task
|
||||
)
|
||||
void Task_delete_extension( rtems_tcb *running_task, rtems_tcb *deleted_task )
|
||||
{
|
||||
ssize_t task = task_number( deleted_task->Object.id );
|
||||
|
||||
if (task > 0) {
|
||||
if ( task > 0 ) {
|
||||
++Task_deleted[ task ];
|
||||
}
|
||||
|
||||
|
||||
@@ -41,16 +41,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
void Task_restart_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *restarted_task
|
||||
)
|
||||
void Task_restart_extension( rtems_tcb *unused, rtems_tcb *restarted_task )
|
||||
{
|
||||
(void) unused;
|
||||
|
||||
ssize_t task = task_number( restarted_task->Object.id );
|
||||
|
||||
if (task > 0) {
|
||||
if ( task > 0 ) {
|
||||
++Task_restarted[ task ];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,16 +41,13 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
void Task_start_extension(
|
||||
rtems_tcb *unused,
|
||||
rtems_tcb *started_task
|
||||
)
|
||||
void Task_start_extension( rtems_tcb *unused, rtems_tcb *started_task )
|
||||
{
|
||||
(void) unused;
|
||||
|
||||
ssize_t task = task_number( started_task->Object.id );
|
||||
|
||||
if (task > 0) {
|
||||
if ( task > 0 ) {
|
||||
++Task_started[ task ];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,16 +37,14 @@
|
||||
const char rtems_test_name[] = "SP 8";
|
||||
|
||||
/* forward declarations to avoid warnings */
|
||||
rtems_task Init(rtems_task_argument argument);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
#define PRIxrtems_mode PRIx32
|
||||
#define PRIxrtems_mode PRIx32
|
||||
|
||||
#define put_mode( _comment, _output_mode ) \
|
||||
printf( "%s %08" PRIxrtems_mode "\n", _comment, _output_mode );
|
||||
printf( "%s %08" PRIxrtems_mode "\n", _comment, _output_mode );
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -55,7 +53,7 @@ rtems_task Init(
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
/* BEGINNING OF RTEMS_ASR */
|
||||
/* BEGINNING OF RTEMS_ASR */
|
||||
|
||||
status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
@@ -64,42 +62,30 @@ rtems_task Init(
|
||||
previous_mode
|
||||
);
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_NO_ASR,
|
||||
RTEMS_ASR_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
status = rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &previous_mode );
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
put_mode(
|
||||
"TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
|
||||
previous_mode
|
||||
);
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_NO_ASR,
|
||||
RTEMS_ASR_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
status = rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &previous_mode );
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
put_mode(
|
||||
"TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
|
||||
previous_mode
|
||||
);
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_ASR,
|
||||
RTEMS_ASR_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
put_mode(
|
||||
"TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ",
|
||||
previous_mode
|
||||
);
|
||||
|
||||
/* END OF RTEMS_ASR */
|
||||
/* END OF RTEMS_ASR */
|
||||
|
||||
/* BEGINNING OF RTEMS_TIMESLICE */
|
||||
/* BEGINNING OF RTEMS_TIMESLICE */
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_NO_TIMESLICE,
|
||||
@@ -145,9 +131,9 @@ rtems_task Init(
|
||||
previous_mode
|
||||
);
|
||||
|
||||
/* END OF RTEMS_TIMESLICE */
|
||||
/* END OF RTEMS_TIMESLICE */
|
||||
|
||||
/* BEGINNING OF RTEMS_PREEMPT */
|
||||
/* BEGINNING OF RTEMS_PREEMPT */
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_PREEMPT,
|
||||
@@ -198,7 +184,7 @@ rtems_task Init(
|
||||
/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
|
||||
#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE
|
||||
status = rtems_task_mode(
|
||||
RTEMS_INTERRUPT_LEVEL(3),
|
||||
RTEMS_INTERRUPT_LEVEL( 3 ),
|
||||
RTEMS_INTERRUPT_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
@@ -209,7 +195,7 @@ rtems_task Init(
|
||||
);
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_INTERRUPT_LEVEL(5),
|
||||
RTEMS_INTERRUPT_LEVEL( 5 ),
|
||||
RTEMS_INTERRUPT_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
@@ -226,20 +212,19 @@ rtems_task Init(
|
||||
);
|
||||
fatal_directive_status( status, RTEMS_NOT_IMPLEMENTED, "rtems_task_mode" );
|
||||
#endif
|
||||
/* END OF RTEMS_INTERRUPT_LEVEL */
|
||||
/* END OF RTEMS_INTERRUPT_LEVEL */
|
||||
|
||||
/* BEGINNING OF COMBINATIONS */
|
||||
/* BEGINNING OF COMBINATIONS */
|
||||
|
||||
status = rtems_task_mode(
|
||||
#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
|
||||
RTEMS_INTERRUPT_LEVEL(0) |
|
||||
RTEMS_INTERRUPT_LEVEL( 0 ) |
|
||||
#else
|
||||
RTEMS_INTERRUPT_LEVEL(3) |
|
||||
RTEMS_INTERRUPT_LEVEL( 3 ) |
|
||||
#endif
|
||||
RTEMS_NO_ASR |
|
||||
RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
|
||||
RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
|
||||
RTEMS_NO_ASR | RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | RTEMS_TIMESLICE_MASK |
|
||||
RTEMS_PREEMPT_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
@@ -250,14 +235,13 @@ rtems_task Init(
|
||||
|
||||
status = rtems_task_mode(
|
||||
#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
|
||||
RTEMS_INTERRUPT_LEVEL(0) |
|
||||
RTEMS_INTERRUPT_LEVEL( 0 ) |
|
||||
#else
|
||||
RTEMS_INTERRUPT_LEVEL(3) |
|
||||
RTEMS_INTERRUPT_LEVEL( 3 ) |
|
||||
#endif
|
||||
RTEMS_NO_ASR |
|
||||
RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
|
||||
RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
|
||||
RTEMS_NO_ASR | RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | RTEMS_TIMESLICE_MASK |
|
||||
RTEMS_PREEMPT_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
@@ -267,9 +251,10 @@ rtems_task Init(
|
||||
);
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
|
||||
RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
|
||||
RTEMS_INTERRUPT_LEVEL( 0 ) | RTEMS_ASR | RTEMS_NO_TIMESLICE |
|
||||
RTEMS_PREEMPT,
|
||||
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | RTEMS_TIMESLICE_MASK |
|
||||
RTEMS_PREEMPT_MASK,
|
||||
&previous_mode
|
||||
);
|
||||
directive_failed( status, "rtems_task_mode" );
|
||||
@@ -278,9 +263,9 @@ rtems_task Init(
|
||||
previous_mode
|
||||
);
|
||||
|
||||
/* END OF COMBINATIONS */
|
||||
/* END OF COMBINATIONS */
|
||||
|
||||
/* BEGINNING OF CURRENT MODE */
|
||||
/* BEGINNING OF CURRENT MODE */
|
||||
|
||||
status = rtems_task_mode(
|
||||
RTEMS_CURRENT_MODE,
|
||||
@@ -293,9 +278,9 @@ rtems_task Init(
|
||||
previous_mode
|
||||
);
|
||||
|
||||
/* END OF CURRENT MODE */
|
||||
/* END OF CURRENT MODE */
|
||||
|
||||
/* TEST BEING IN A SYSTEM STATE OTHER THAN UP */
|
||||
/* TEST BEING IN A SYSTEM STATE OTHER THAN UP */
|
||||
puts( "TA1 - FORCE system state to before multitasking" );
|
||||
_System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
|
||||
|
||||
@@ -322,7 +307,7 @@ rtems_task Init(
|
||||
puts( "TA1 - Restore system state" );
|
||||
_System_state_Set( SYSTEM_STATE_UP );
|
||||
|
||||
/* END OF TEST BEING IN A SYSTEM STATE OTHER THAN UP */
|
||||
/* END OF TEST BEING IN A SYSTEM STATE OTHER THAN UP */
|
||||
|
||||
TEST_END();
|
||||
rtems_test_exit( 0 );
|
||||
@@ -332,7 +317,7 @@ rtems_task Init(
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
@@ -47,9 +47,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 11";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
|
||||
@@ -34,51 +34,45 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_timer_service_routine TA1_send_18_to_self_5_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA1_send_8_to_self_60_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA1_send_9_to_self_60_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA1_send_10_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA1_send_1_to_self_every_second(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA1_send_11_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
rtems_timer_service_routine TA2_send_10_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
);
|
||||
|
||||
/* configuration information */
|
||||
@@ -86,24 +80,24 @@ rtems_timer_service_routine TA2_send_10_to_self(
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_MAXIMUM_TASKS 3
|
||||
#define CONFIGURE_MAXIMUM_TIMERS 6
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_MAXIMUM_TASKS 3
|
||||
#define CONFIGURE_MAXIMUM_TIMERS 6
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (2 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 2 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_id Timer_id[ 7 ]; /* array of timer ids */
|
||||
TEST_EXTERN rtems_name Timer_name[ 7 ]; /* array of timer names */
|
||||
TEST_EXTERN rtems_id Timer_id[ 7 ]; /* array of timer ids */
|
||||
TEST_EXTERN rtems_name Timer_name[ 7 ]; /* array of timer names */
|
||||
|
||||
/* end of include file */
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_1( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -49,7 +47,7 @@ rtems_task Task_1(
|
||||
|
||||
puts(
|
||||
"TA1 - rtems_event_receive - waiting forever on "
|
||||
"RTEMS_EVENT_14 and RTEMS_EVENT_15"
|
||||
"RTEMS_EVENT_14 and RTEMS_EVENT_15"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_14 | RTEMS_EVENT_15,
|
||||
@@ -60,7 +58,7 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA1 - RTEMS_EVENT_14 and RTEMS_EVENT_15 received - "
|
||||
"eventout => %08" PRIxrtems_event_set "\n",
|
||||
"eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
);
|
||||
|
||||
@@ -70,7 +68,7 @@ rtems_task Task_1(
|
||||
|
||||
puts(
|
||||
"TA1 - rtems_event_receive - waiting with 10 second timeout "
|
||||
"on RTEMS_EVENT_14"
|
||||
"on RTEMS_EVENT_14"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_14,
|
||||
@@ -81,7 +79,7 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA1 - RTEMS_EVENT_14 received - eventout => "
|
||||
"%08" PRIxrtems_event_set "\n",
|
||||
"%08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
);
|
||||
|
||||
@@ -93,7 +91,9 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_clock_get_tod" );
|
||||
print_time( "TA1 - rtems_clock_get_tod - ", &time, "\n" );
|
||||
|
||||
puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 1 ],
|
||||
5 * rtems_clock_get_ticks_per_second(),
|
||||
@@ -102,7 +102,7 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_after 5 seconds" );
|
||||
|
||||
puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18" );
|
||||
puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18" );
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_18,
|
||||
RTEMS_DEFAULT_OPTIONS,
|
||||
@@ -125,7 +125,7 @@ rtems_task Task_1(
|
||||
|
||||
puts(
|
||||
"TA1 - rtems_event_receive - RTEMS_EVENT_3 or "
|
||||
"RTEMS_EVENT_22 - NO_WAIT and ANY"
|
||||
"RTEMS_EVENT_22 - NO_WAIT and ANY"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_3 | RTEMS_EVENT_22,
|
||||
@@ -143,9 +143,9 @@ rtems_task Task_1(
|
||||
status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_4 );
|
||||
directive_failed( status, "rtems_event_send" );
|
||||
|
||||
puts (
|
||||
"TA1 - rtems_event_receive - RTEMS_EVENT_4 or "
|
||||
"RTEMS_EVENT_5 - forever and ANY"
|
||||
puts(
|
||||
"TA1 - rtems_event_receive - RTEMS_EVENT_4 or "
|
||||
"RTEMS_EVENT_5 - forever and ANY"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_4 | RTEMS_EVENT_5,
|
||||
@@ -156,10 +156,12 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA1 - RTEMS_EVENT_4 received - eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
eventout
|
||||
);
|
||||
|
||||
puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 1 ],
|
||||
5 * rtems_clock_get_ticks_per_second(),
|
||||
@@ -168,11 +170,15 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_after 5 seconds" );
|
||||
|
||||
puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18");
|
||||
puts(
|
||||
"TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18"
|
||||
);
|
||||
status = rtems_timer_cancel( Timer_id[ 1 ] );
|
||||
directive_failed( status, "rtems_timer_cancel" );
|
||||
|
||||
puts( "TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 1 ],
|
||||
60 * rtems_clock_get_ticks_per_second(),
|
||||
@@ -181,7 +187,9 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_after 60 seconds" );
|
||||
|
||||
puts( "TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 2 ],
|
||||
60 * rtems_clock_get_ticks_per_second(),
|
||||
@@ -201,7 +209,9 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_after 60 seconds" );
|
||||
|
||||
puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8" );
|
||||
puts(
|
||||
"TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8"
|
||||
);
|
||||
status = rtems_timer_cancel( Timer_id[ 1 ] );
|
||||
directive_failed( status, "rtems_timer_cancel" );
|
||||
|
||||
@@ -221,7 +231,6 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_timer_fire_after 1 second" );
|
||||
|
||||
for ( index = 0; index < 3; index++ ) {
|
||||
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_1,
|
||||
RTEMS_EVENT_ANY,
|
||||
@@ -234,9 +243,9 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_clock_get_tod" );
|
||||
|
||||
printf(
|
||||
"TA1 - RTEMS_EVENT_1 received - eventout => %08"
|
||||
PRIxrtems_event_set " - ",
|
||||
eventout
|
||||
"TA1 - RTEMS_EVENT_1 received - eventout => %08" PRIxrtems_event_set
|
||||
" - ",
|
||||
eventout
|
||||
);
|
||||
print_time( "at ", &time, "\n" );
|
||||
|
||||
@@ -244,10 +253,11 @@ rtems_task Task_1(
|
||||
status = rtems_timer_reset( Timer_id[ 1 ] );
|
||||
directive_failed( status, "rtems_timer_reset" );
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1" );
|
||||
puts(
|
||||
"TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1"
|
||||
);
|
||||
status = rtems_timer_cancel( Timer_id[ 1 ] );
|
||||
directive_failed( status, "rtems_timer_cancel" );
|
||||
|
||||
@@ -271,7 +281,7 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_when 1 day" );
|
||||
|
||||
time.hour = 8; /* so code below has correct time/date */
|
||||
time.hour = 8; /* so code below has correct time/date */
|
||||
time.day = 14;
|
||||
puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days" );
|
||||
status = rtems_timer_fire_when(
|
||||
@@ -282,7 +292,9 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_when 2 days" );
|
||||
|
||||
puts("TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day");
|
||||
puts(
|
||||
"TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day"
|
||||
);
|
||||
status = rtems_timer_cancel( Timer_id[ 1 ] );
|
||||
directive_failed( status, "rtems_timer_cancel" );
|
||||
|
||||
@@ -318,7 +330,7 @@ rtems_task Task_1(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA1 - RTEMS_EVENT_11 received - eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
eventout
|
||||
);
|
||||
|
||||
puts( "TA1 - rtems_event_send/rtems_event_receive combination" );
|
||||
@@ -346,7 +358,7 @@ rtems_task Task_1(
|
||||
|
||||
time.day = 13;
|
||||
puts( "TA1 - rtems_event_receive all outstanding events" );
|
||||
status = rtems_event_receive(
|
||||
status = rtems_event_receive(
|
||||
RTEMS_ALL_EVENTS,
|
||||
RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
|
||||
0,
|
||||
@@ -384,16 +396,20 @@ rtems_task Task_1(
|
||||
status = rtems_clock_set( &time );
|
||||
directive_failed( status, "rtems_clock_set" );
|
||||
|
||||
status = rtems_event_receive(
|
||||
status = rtems_event_receive(
|
||||
RTEMS_ALL_EVENTS,
|
||||
RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
|
||||
RTEMS_NO_TIMEOUT,
|
||||
&eventout
|
||||
);
|
||||
if ( eventout )
|
||||
printf( "ERROR -0x%08" PRIxrtems_event_set " events received\n", eventout );
|
||||
else
|
||||
if ( eventout ) {
|
||||
printf(
|
||||
"ERROR -0x%08" PRIxrtems_event_set " events received\n",
|
||||
eventout
|
||||
);
|
||||
} else {
|
||||
puts( "TA1 - no events received" );
|
||||
}
|
||||
fatal_directive_status(
|
||||
status,
|
||||
RTEMS_UNSATISFIED,
|
||||
@@ -407,19 +423,25 @@ rtems_task Task_1(
|
||||
status = rtems_clock_set( &time );
|
||||
directive_failed( status, "rtems_clock_set" );
|
||||
|
||||
status = rtems_event_receive(
|
||||
status = rtems_event_receive(
|
||||
RTEMS_ALL_EVENTS,
|
||||
RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
|
||||
RTEMS_NO_TIMEOUT,
|
||||
&eventout
|
||||
);
|
||||
if ( eventout == RTEMS_EVENT_10 )
|
||||
if ( eventout == RTEMS_EVENT_10 ) {
|
||||
puts( "TA1 - RTEMS_EVENT_10 received" );
|
||||
else
|
||||
printf( "ERROR -0x%08" PRIxrtems_event_set " events received\n", eventout );
|
||||
} else {
|
||||
printf(
|
||||
"ERROR -0x%08" PRIxrtems_event_set " events received\n",
|
||||
eventout
|
||||
);
|
||||
}
|
||||
directive_failed( status, "rtems_event_receive all events" );
|
||||
|
||||
puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 1 ],
|
||||
100,
|
||||
@@ -428,7 +450,9 @@ rtems_task Task_1(
|
||||
);
|
||||
directive_failed( status, "rtems_timer_fire_after 100 ticks" );
|
||||
|
||||
puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks");
|
||||
puts(
|
||||
"TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks"
|
||||
);
|
||||
status = rtems_timer_fire_after(
|
||||
Timer_id[ 1 ],
|
||||
200,
|
||||
@@ -446,7 +470,7 @@ rtems_task Task_1(
|
||||
puts(
|
||||
"TA1 - rtems_event_receive - RTEMS_EVENT_4 AND RTEMS_EVENT_5 - UNSATISFIED"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_4 | RTEMS_EVENT_5,
|
||||
RTEMS_NO_WAIT | RTEMS_EVENT_ALL,
|
||||
RTEMS_NO_TIMEOUT,
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Task_2( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -55,7 +53,7 @@ rtems_task Task_2(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA2 - RTEMS_EVENT_16 received - eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
eventout
|
||||
);
|
||||
|
||||
puts(
|
||||
@@ -66,7 +64,7 @@ rtems_task Task_2(
|
||||
|
||||
puts(
|
||||
"TA2 - rtems_event_receive - RTEMS_EVENT_17 or "
|
||||
"RTEMS_EVENT_18 - forever and ANY"
|
||||
"RTEMS_EVENT_18 - forever and ANY"
|
||||
);
|
||||
status = rtems_event_receive(
|
||||
RTEMS_EVENT_17 | RTEMS_EVENT_18,
|
||||
@@ -77,7 +75,7 @@ rtems_task Task_2(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA2 - RTEMS_EVENT_17 or RTEMS_EVENT_18 received - "
|
||||
"eventout => %08" PRIxrtems_event_set "\n",
|
||||
"eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
);
|
||||
|
||||
@@ -116,7 +114,7 @@ rtems_task Task_2(
|
||||
|
||||
printf(
|
||||
"TA2 - RTEMS_EVENT_10 received - eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
eventout
|
||||
);
|
||||
print_time( "TA2 - rtems_clock_get_tod - ", &time, "\n" );
|
||||
|
||||
@@ -140,7 +138,7 @@ rtems_task Task_2(
|
||||
directive_failed( status, "rtems_event_receive" );
|
||||
printf(
|
||||
"TA2 - RTEMS_EVENT_19 received - eventout => %08" PRIxrtems_event_set "\n",
|
||||
eventout
|
||||
eventout
|
||||
);
|
||||
|
||||
puts( "TA2 - rtems_task_delete - deletes self" );
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
#include "system.h"
|
||||
|
||||
rtems_timer_service_routine TA1_send_18_to_self_5_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -54,8 +54,8 @@ rtems_timer_service_routine TA1_send_18_to_self_5_seconds(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA1_send_8_to_self_60_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -68,8 +68,8 @@ rtems_timer_service_routine TA1_send_8_to_self_60_seconds(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA1_send_9_to_self_60_seconds(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -82,8 +82,8 @@ rtems_timer_service_routine TA1_send_9_to_self_60_seconds(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA1_send_10_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -96,8 +96,8 @@ rtems_timer_service_routine TA1_send_10_to_self(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA1_send_1_to_self_every_second(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -110,8 +110,8 @@ rtems_timer_service_routine TA1_send_1_to_self_every_second(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA1_send_11_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
@@ -124,8 +124,8 @@ rtems_timer_service_routine TA1_send_11_to_self(
|
||||
}
|
||||
|
||||
rtems_timer_service_routine TA2_send_10_to_self(
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
rtems_id ignored_id,
|
||||
void *ignored_address
|
||||
)
|
||||
{
|
||||
(void) ignored_id;
|
||||
|
||||
@@ -47,9 +47,7 @@
|
||||
|
||||
const char rtems_test_name[] = "SP 12";
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
)
|
||||
rtems_task Init( rtems_task_argument argument )
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
@@ -57,11 +55,11 @@ rtems_task Init(
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' );
|
||||
Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' );
|
||||
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' );
|
||||
Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' );
|
||||
|
||||
Priority_task_name[ 1 ] = rtems_build_name( 'P', 'R', 'I', '1' );
|
||||
Priority_task_name[ 2 ] = rtems_build_name( 'P', 'R', 'I', '2' );
|
||||
@@ -69,9 +67,9 @@ rtems_task Init(
|
||||
Priority_task_name[ 4 ] = rtems_build_name( 'P', 'R', 'I', '4' );
|
||||
Priority_task_name[ 5 ] = rtems_build_name( 'P', 'R', 'I', '5' );
|
||||
|
||||
Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' );
|
||||
Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' );
|
||||
Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' );
|
||||
Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' );
|
||||
Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' );
|
||||
Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' );
|
||||
|
||||
status = rtems_semaphore_create(
|
||||
Semaphore_name[ 1 ],
|
||||
@@ -104,7 +102,7 @@ rtems_task Init(
|
||||
Priority_test_driver( 0 );
|
||||
|
||||
puts( "INIT - Backward priority queue test" );
|
||||
Priority_test_driver( (RTEMS_MAXIMUM_PRIORITY / 2u) + 1u );
|
||||
Priority_test_driver( ( RTEMS_MAXIMUM_PRIORITY / 2u ) + 1u );
|
||||
|
||||
puts( "INIT - Binary Semaphore and Priority Inheritance Test" );
|
||||
|
||||
|
||||
@@ -32,24 +32,22 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
void Priority_test_driver(
|
||||
rtems_task_priority priority_base
|
||||
)
|
||||
void Priority_test_driver( rtems_task_priority priority_base )
|
||||
{
|
||||
rtems_task_priority previous_priority;
|
||||
uint32_t index;
|
||||
rtems_status_code status;
|
||||
|
||||
for ( index = 1 ; index <= 5 ; index++ ) {
|
||||
for ( index = 1; index <= 5; index++ ) {
|
||||
switch ( index ) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
Task_priority[ index ] = priority_base + index;
|
||||
break;
|
||||
default:
|
||||
Task_priority[ index ] = priority_base + 3;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
Task_priority[ index ] = priority_base + index;
|
||||
break;
|
||||
default:
|
||||
Task_priority[ index ] = priority_base + 3;
|
||||
break;
|
||||
}
|
||||
|
||||
status = rtems_task_create(
|
||||
@@ -61,11 +59,10 @@ void Priority_test_driver(
|
||||
&Priority_task_id[ index ]
|
||||
);
|
||||
directive_failed( status, "rtems_task_create loop" );
|
||||
|
||||
}
|
||||
|
||||
if ( priority_base == 0 ) {
|
||||
for ( index = 1 ; index <= 5 ; index++ ) {
|
||||
for ( index = 1; index <= 5; index++ ) {
|
||||
status = rtems_task_start(
|
||||
Priority_task_id[ index ],
|
||||
Priority_task,
|
||||
@@ -74,7 +71,7 @@ void Priority_test_driver(
|
||||
directive_failed( status, "rtems_task_start loop" );
|
||||
}
|
||||
} else {
|
||||
for ( index = 5 ; index >= 1 ; index-- ) {
|
||||
for ( index = 5; index >= 1; index-- ) {
|
||||
status = rtems_task_start(
|
||||
Priority_task_id[ index ],
|
||||
Priority_task,
|
||||
@@ -93,10 +90,10 @@ void Priority_test_driver(
|
||||
&previous_priority
|
||||
);
|
||||
printf(
|
||||
"PDRV - change priority of PRI5 from %" PRIdrtems_task_priority
|
||||
" to %" PRIdrtems_task_priority "\n",
|
||||
previous_priority,
|
||||
priority_base + 4
|
||||
"PDRV - change priority of PRI5 from %" PRIdrtems_task_priority
|
||||
" to %" PRIdrtems_task_priority "\n",
|
||||
previous_priority,
|
||||
priority_base + 4
|
||||
);
|
||||
directive_failed( status, "PDRV rtems_task_set_priority" );
|
||||
}
|
||||
@@ -108,7 +105,7 @@ void Priority_test_driver(
|
||||
directive_failed( status, "PDRV rtems_task_set_priority CURRENT" );
|
||||
printf(
|
||||
"PDRV - priority of PRI5 is %" PRIdrtems_task_priority "\n",
|
||||
previous_priority
|
||||
previous_priority
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -118,7 +115,7 @@ void Priority_test_driver(
|
||||
directive_failed( status, "rtems_task_wake_after after loop" );
|
||||
|
||||
if ( priority_base == 0 ) {
|
||||
for ( index = 1 ; index <= 5 ; index++ ) {
|
||||
for ( index = 1; index <= 5; index++ ) {
|
||||
status = rtems_semaphore_release( Semaphore_id[ 2 ] );
|
||||
directive_failed( status, "rtems_semaphore_release loop" );
|
||||
}
|
||||
@@ -135,7 +132,7 @@ void Priority_test_driver(
|
||||
status = rtems_task_delete( Priority_task_id[ 5 ] );
|
||||
directive_failed( status, "rtems_task_delete of PRI5" );
|
||||
} else {
|
||||
for ( index = 1 ; index <= 5 ; index++ ) {
|
||||
for ( index = 1; index <= 5; index++ ) {
|
||||
status = rtems_task_delete( Priority_task_id[ index ] );
|
||||
directive_failed( status, "rtems_task_delete loop" );
|
||||
}
|
||||
|
||||
@@ -32,9 +32,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
rtems_task Priority_task(
|
||||
rtems_task_argument its_index_arg
|
||||
)
|
||||
rtems_task Priority_task( rtems_task_argument its_index_arg )
|
||||
{
|
||||
rtems_interval timeout;
|
||||
rtems_task_priority its_priority;
|
||||
@@ -46,10 +44,11 @@ rtems_task Priority_task(
|
||||
its_index = (int) its_index_arg;
|
||||
its_priority = Task_priority[ its_index ];
|
||||
|
||||
if ( its_priority < 3 )
|
||||
if ( its_priority < 3 ) {
|
||||
timeout = 5 * rtems_clock_get_ticks_per_second();
|
||||
else
|
||||
} else {
|
||||
timeout = RTEMS_NO_TIMEOUT;
|
||||
}
|
||||
|
||||
put_name( Priority_task_name[ its_index ], FALSE );
|
||||
puts( " - rtems_semaphore_obtain - wait forever on SM2" );
|
||||
@@ -64,8 +63,8 @@ rtems_task Priority_task(
|
||||
if ( its_priority < PRIORITY_INHERIT_BASE_PRIORITY ) {
|
||||
printf(
|
||||
"PRI%d - WHY AM I HERE? (pri=%" PRIdrtems_task_priority ")",
|
||||
its_index,
|
||||
its_priority
|
||||
its_index,
|
||||
its_priority
|
||||
);
|
||||
rtems_test_exit( 0 );
|
||||
}
|
||||
@@ -76,29 +75,33 @@ rtems_task Priority_task(
|
||||
rtems_task_priority old_priority;
|
||||
|
||||
puts( "Set priority of self while holding resource" );
|
||||
status =
|
||||
rtems_task_set_priority( RTEMS_SELF, RTEMS_CURRENT_PRIORITY, &priority );
|
||||
status = rtems_task_set_priority(
|
||||
RTEMS_SELF,
|
||||
RTEMS_CURRENT_PRIORITY,
|
||||
&priority
|
||||
);
|
||||
directive_failed( status, "rtems_task_set_priority get current" );
|
||||
status = rtems_task_set_priority( RTEMS_SELF, priority, &old_priority );
|
||||
directive_failed( status, "rtems_task_set_priority with resource" );
|
||||
if ( priority != old_priority ) {
|
||||
printf(
|
||||
"priority != old_priority (%" PRIdrtems_task_priority
|
||||
" != %" PRIdrtems_task_priority ")\n",
|
||||
priority,
|
||||
old_priority
|
||||
" != %" PRIdrtems_task_priority ")\n",
|
||||
priority,
|
||||
old_priority
|
||||
);
|
||||
rtems_test_exit(0);
|
||||
rtems_test_exit( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( its_index == 5 )
|
||||
if ( its_index == 5 ) {
|
||||
puts( "PRI5 - rtems_task_suspend - until all priority tasks blocked" );
|
||||
}
|
||||
status = rtems_task_suspend( RTEMS_SELF );
|
||||
directive_failed( status, "rtems_task_suspend" );
|
||||
|
||||
puts( "PRI5 - rtems_task_delete - all tasks waiting on SM2" );
|
||||
for ( index = 1 ; index < 5 ; index++ ) {
|
||||
for ( index = 1; index < 5; index++ ) {
|
||||
status = rtems_task_delete( Priority_task_id[ index ] );
|
||||
directive_failed( status, "rtems_task_delete loop" );
|
||||
}
|
||||
@@ -127,7 +130,7 @@ rtems_task Priority_task(
|
||||
directive_failed( status, "PRI5 rtems_task_set_priority CURRENT" );
|
||||
printf(
|
||||
"PRI5 - priority of PRI5 is %" PRIdrtems_task_priority "\n",
|
||||
current_priority
|
||||
current_priority
|
||||
);
|
||||
|
||||
(void) rtems_task_suspend( RTEMS_SELF );
|
||||
|
||||
@@ -36,68 +36,51 @@
|
||||
|
||||
/* functions */
|
||||
|
||||
rtems_task Init(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Init( rtems_task_argument argument );
|
||||
|
||||
void Priority_test_driver(
|
||||
rtems_task_priority priority_base
|
||||
);
|
||||
void Priority_test_driver( rtems_task_priority priority_base );
|
||||
|
||||
rtems_task Priority_task(
|
||||
rtems_task_argument its_index
|
||||
);
|
||||
rtems_task Priority_task( rtems_task_argument its_index );
|
||||
|
||||
rtems_task Task_1(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_1( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_2(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_2( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_3(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_3( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task_4(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task_4( rtems_task_argument argument );
|
||||
|
||||
rtems_task Task5(
|
||||
rtems_task_argument argument
|
||||
);
|
||||
rtems_task Task5( rtems_task_argument argument );
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE * 2)
|
||||
#define CONFIGURE_MAXIMUM_TASKS 8
|
||||
#define CONFIGURE_MAXIMUM_SEMAPHORES 10
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
#define CONFIGURE_INIT_TASK_STACK_SIZE ( RTEMS_MINIMUM_STACK_SIZE * 2 )
|
||||
#define CONFIGURE_MAXIMUM_TASKS 8
|
||||
#define CONFIGURE_MAXIMUM_SEMAPHORES 10
|
||||
#define CONFIGURE_TICKS_PER_TIMESLICE 100
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (6 * RTEMS_MINIMUM_STACK_SIZE)
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS ( 6 * RTEMS_MINIMUM_STACK_SIZE )
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* global variables */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 6 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 6 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_id Task_id[ 6 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Task_name[ 6 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_id Priority_task_id[ 6 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Priority_task_name[ 6 ]; /* array of task names */
|
||||
TEST_EXTERN rtems_id Priority_task_id[ 6 ]; /* array of task ids */
|
||||
TEST_EXTERN rtems_name Priority_task_name[ 6 ]; /* array of task names */
|
||||
|
||||
TEST_EXTERN rtems_task_priority Task_priority[ 6 ];
|
||||
|
||||
TEST_EXTERN rtems_id Semaphore_id[ 4 ]; /* array of semaphore ids */
|
||||
TEST_EXTERN rtems_name Semaphore_name[ 4 ]; /* array of semaphore names */
|
||||
TEST_EXTERN rtems_id Semaphore_id[ 4 ]; /* array of semaphore ids */
|
||||
TEST_EXTERN rtems_name Semaphore_name[ 4 ]; /* array of semaphore names */
|
||||
|
||||
/* end of include file */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user