forked from Imagelibrary/rtems
* SUPPORT, LICENSE: New files. * Numerous files touched as part of merging the 4.5 branch onto the mainline development trunk and ensuring that the script that cuts snapshots and releases works on the documentation.
89 lines
2.1 KiB
Plaintext
89 lines
2.1 KiB
Plaintext
@c
|
|
@c COPYRIGHT (c) 1988-2002.
|
|
@c On-Line Applications Research Corporation (OAR).
|
|
@c All rights reserved.
|
|
@c
|
|
@c $Id$
|
|
@c
|
|
|
|
@ifinfo
|
|
@node Example Application, Glossary, Directive Status Codes, Top
|
|
@end ifinfo
|
|
@chapter Example Application
|
|
|
|
@example
|
|
/*
|
|
* This file contains an example of a simple RTEMS
|
|
* application. It instantiates the RTEMS Configuration
|
|
* Information using confdef.h and contains two tasks:
|
|
* a * user initialization task and a simple task.
|
|
*
|
|
* This example assumes that a board support package exists.
|
|
*/
|
|
|
|
#include <rtems.h>
|
|
|
|
rtems_task user_application(rtems_task_argument argument);
|
|
|
|
rtems_task init_task(
|
|
rtems_task_argument ignored
|
|
)
|
|
@{
|
|
rtems_id tid;
|
|
rtems_status_code status;
|
|
rtems_name name;
|
|
|
|
name = rtems_build_name( 'A', 'P', 'P', '1' )
|
|
|
|
status = rtems_task_create(
|
|
name, 1, RTEMS_MINIMUM_STACK_SIZE,
|
|
RTEMS_NO_PREEMPT, RTEMS_FLOATING_POINT, &tid
|
|
);
|
|
if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
|
|
printf( "rtems_task_create failed with status of %d.\n", status );
|
|
exit( 1 );
|
|
@}
|
|
|
|
status = rtems_task_start( tid, user_application, 0 );
|
|
if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
|
|
printf( "rtems_task_start failed with status of %d.\n", status );
|
|
exit( 1 );
|
|
@}
|
|
|
|
status = rtems_task_delete( SELF ); /* should not return */
|
|
printf( "rtems_task_delete returned with status of %d.\n", status );
|
|
exit( 1 );
|
|
@}
|
|
|
|
|
|
rtems_task user_application(rtems_task_argument argument)
|
|
@{
|
|
/* application specific initialization goes here */
|
|
|
|
while ( 1 ) @{ /* infinite loop */
|
|
|
|
/* APPLICATION CODE GOES HERE
|
|
*
|
|
* This code will typically include at least one
|
|
* directive which causes the calling task to
|
|
* give up the processor.
|
|
*/
|
|
@}
|
|
@}
|
|
|
|
#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER /* for stdio */
|
|
#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER /* for time services */
|
|
|
|
#define CONFIGURE_MAXIMUM_TASKS 2
|
|
|
|
#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'E', 'X', 'A', 'M' )
|
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
|
|
|
#define CONFIGURE_INIT
|
|
|
|
#include <confdefs.h>
|
|
@end example
|
|
|
|
|
|
|