forked from Imagelibrary/rtems
* smp03/init.c, smp03/system.h, smp03/tasks.c: Modified test to force a task to run prior to starting the next task. This allows the last task to always preempt, where if the tasks started in an odd order the last task could run prior the the task it was supposed to preempt.
75 lines
1.5 KiB
C
75 lines
1.5 KiB
C
/*
|
|
* COPYRIGHT (c) 1989-2011.
|
|
* On-Line Applications Research Corporation (OAR).
|
|
*
|
|
* The license and distribution terms for this file may be
|
|
* found in the file LICENSE in this distribution or at
|
|
* http://www.rtems.com/license/LICENSE.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#include "tmacros.h"
|
|
#include "test_support.h"
|
|
|
|
/* functions */
|
|
|
|
rtems_task Init(
|
|
rtems_task_argument argument
|
|
);
|
|
|
|
rtems_task Test_task(
|
|
rtems_task_argument argument
|
|
);
|
|
|
|
/* configuration information */
|
|
|
|
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
|
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
|
|
|
#define CONFIGURE_SMP_APPLICATION
|
|
#define CONFIGURE_SMP_MAXIMUM_PROCESSORS 4
|
|
|
|
#define CONFIGURE_MAXIMUM_TASKS \
|
|
(1 + CONFIGURE_SMP_MAXIMUM_PROCESSORS)
|
|
|
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
|
#define CONFIGURE_INIT_TASK_STACK_SIZE \
|
|
(3 * CONFIGURE_MINIMUM_TASK_STACK_SIZE)
|
|
|
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
|
|
|
#define CONFIGURE_INIT_TASK_PRIORITY 5
|
|
#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_PREEMPT
|
|
|
|
#include <rtems/confdefs.h>
|
|
|
|
|
|
/* global variables */
|
|
|
|
/*
|
|
* Keep the names and IDs in global variables so another task can use them.
|
|
*/
|
|
|
|
TEST_EXTERN volatile bool TaskRan[ CONFIGURE_SMP_MAXIMUM_PROCESSORS + 1 ];
|
|
|
|
/*
|
|
* Keep the names and IDs in global variables so another task can use them.
|
|
*/
|
|
void Loop(void);
|
|
void PrintTaskInfo(
|
|
const char *task_name
|
|
);
|
|
|
|
TEST_EXTERN volatile bool TestFinished;
|
|
|
|
/*
|
|
* Handy macros and static inline functions
|
|
*/
|
|
|
|
/*
|
|
* Macro to hide the ugliness of printing the time.
|
|
*/
|
|
|
|
/* end of include file */
|