summaryrefslogtreecommitdiff
path: root/led
diff options
context:
space:
mode:
authorGlenn Humphrey <glenn.humphrey@oarcorp.com>2009-10-12 21:02:40 +0000
committerGlenn Humphrey <glenn.humphrey@oarcorp.com>2009-10-12 21:02:40 +0000
commitb1d5a734778cef6046560a9cdee8ef8b789e6633 (patch)
tree76b0f605dfbbe9e474d15738d759ccce7fb4552c /led
parent778e80da0eda4526bd2977d9399800e010d4088c (diff)
2009-10-12 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* delay/init.c, event_server/init.c, msg_server/init.c, ratemon1/init.c, ratemon2/init.c, sem_server/init.c, timeout_event/init.c: Cleaned up unused variables and standardized for inclusion into RTEMS class materials.
Diffstat (limited to 'led')
-rw-r--r--led/ChangeLog7
-rw-r--r--led/delay/init.c5
-rw-r--r--led/event_server/init.c27
-rw-r--r--led/msg_server/init.c28
-rw-r--r--led/ratemon1/init.c3
-rw-r--r--led/ratemon2/init.c7
-rw-r--r--led/sem_server/init.c34
-rw-r--r--led/timeout_event/init.c12
8 files changed, 54 insertions, 69 deletions
diff --git a/led/ChangeLog b/led/ChangeLog
index 43b91ba..3114aa6 100644
--- a/led/ChangeLog
+++ b/led/ChangeLog
@@ -1,5 +1,12 @@
2009-10-12 Glenn Humphrey <glenn.humphrey@OARcorp.com>
+ * delay/init.c, event_server/init.c, msg_server/init.c,
+ ratemon1/init.c, ratemon2/init.c, sem_server/init.c,
+ timeout_event/init.c: Cleaned up unused variables and standardized
+ for inclusion into RTEMS class materials.
+
+2009-10-12 Glenn Humphrey <glenn.humphrey@OARcorp.com>
+
* Makefile, timer/init.c: Split the timer example into two examples
and cleaned up resource usage.
* timer_server/Makefile, timer_server/init.c: New files.
diff --git a/led/delay/init.c b/led/delay/init.c
index d1b34bb..4b11413 100644
--- a/led/delay/init.c
+++ b/led/delay/init.c
@@ -12,7 +12,6 @@
#include <stdio.h>
#include <bsp.h>
-#include "../../testmacros.h"
#include "../led.h"
rtems_task Init(
@@ -27,9 +26,9 @@ rtems_task Init(
while (1) {
- (void) rtems_task_wake_after( 1 * get_ticks_per_second() );
+ (void) rtems_task_wake_after( 1 * rtems_clock_get_ticks_per_second() );
LED_ON();
- (void) rtems_task_wake_after( 1 * get_ticks_per_second() );
+ (void) rtems_task_wake_after( 1 * rtems_clock_get_ticks_per_second() );
LED_OFF();
}
diff --git a/led/event_server/init.c b/led/event_server/init.c
index f629621..c726e6b 100644
--- a/led/event_server/init.c
+++ b/led/event_server/init.c
@@ -13,7 +13,6 @@
#include <inttypes.h>
#include <stdio.h>
-#include "../../testmacros.h"
#include "../led.h"
rtems_task Test_task(
@@ -23,8 +22,6 @@ rtems_task Test_task(
rtems_event_set events;
rtems_status_code status;
- LED_INIT();
-
for ( ; ; ) {
events = 0;
status = rtems_event_receive(
@@ -44,40 +41,38 @@ rtems_task Test_task(
}
}
-/*
- * Keep the names and IDs in global variables so another task can use them.
- */
-
-rtems_id Task_id[ 4 ]; /* array of task ids */
-rtems_name Task_name[ 4 ]; /* array of task names */
rtems_task Init(
rtems_task_argument argument
)
{
- rtems_status_code status;
uint32_t count = 0;
rtems_event_set events;
+ rtems_status_code status;
+ rtems_id task_id;
+ rtems_name task_name;
puts( "\n\n*** LED BLINKER -- event receive server ***" );
- Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+ LED_INIT();
+
+ task_name = rtems_build_name( 'T', 'A', '1', ' ' );
status = rtems_task_create(
- Task_name[ 1 ], 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ]
+ task_name, 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES, &task_id
);
- status = rtems_task_start( Task_id[ 1 ], Test_task, 1 );
+ status = rtems_task_start( task_id, Test_task, 1 );
while (1) {
events = ( (count++ % 2) == 0 ) ? RTEMS_EVENT_1 : RTEMS_EVENT_2;
- status = rtems_event_send( Task_id[ 1 ], events );
+ status = rtems_event_send( task_id, events );
if ( status != RTEMS_SUCCESSFUL )
fputs( "send did not work\n", stderr );
- status = rtems_task_wake_after( get_ticks_per_second() );
+ status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
}
status = rtems_task_delete( RTEMS_SELF );
diff --git a/led/msg_server/init.c b/led/msg_server/init.c
index 721aa08..83654cf 100644
--- a/led/msg_server/init.c
+++ b/led/msg_server/init.c
@@ -12,18 +12,10 @@
#include <stdio.h>
#include <bsp.h>
-#include "../../testmacros.h"
#include "../led.h"
-/*
- * Keep the names and IDs in global variables so another task can use them.
- */
-
-rtems_id Task_id[ 4 ]; /* array of task ids */
-rtems_name Task_name[ 4 ]; /* array of task names */
rtems_id Queue_id;
-
rtems_task Test_task(
rtems_task_argument unused
)
@@ -32,8 +24,6 @@ rtems_task Test_task(
size_t received;
rtems_status_code status;
- LED_INIT();
-
for ( ; ; ) {
count = 0xFFFFFFFF;
status = rtems_message_queue_receive(
@@ -56,19 +46,23 @@ rtems_task Init(
rtems_task_argument argument
)
{
- rtems_status_code status;
uint32_t count = 0;
+ rtems_status_code status;
+ rtems_id task_id;
+ rtems_name task_name;
puts( "\n\n*** LED BLINKER -- message receive server ***" );
- Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+ LED_INIT();
+
+ task_name = rtems_build_name( 'T', 'A', '1', ' ' );
status = rtems_task_create(
- Task_name[ 1 ], 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ]
+ task_name, 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES, &task_id
);
- status = rtems_task_start( Task_id[ 1 ], Test_task, 1 );
+ status = rtems_task_start( task_id, Test_task, 1 );
status = rtems_message_queue_create(
rtems_build_name( 'Q', '1', ' ', ' ' ),
@@ -85,7 +79,7 @@ rtems_task Init(
if ( status != RTEMS_SUCCESSFUL )
fputs( "send did not work\n", stderr );
- status = rtems_task_wake_after( get_ticks_per_second() );
+ status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
}
status = rtems_task_delete( RTEMS_SELF );
@@ -98,7 +92,7 @@ rtems_task Init(
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-#define CONFIGURE_MAXIMUM_TASKS 4
+#define CONFIGURE_MAXIMUM_TASKS 2
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/led/ratemon1/init.c b/led/ratemon1/init.c
index 6f2bffa..1df7a59 100644
--- a/led/ratemon1/init.c
+++ b/led/ratemon1/init.c
@@ -12,7 +12,6 @@
#include <stdio.h>
#include <bsp.h>
-#include "../../testmacros.h"
#include "../led.h"
rtems_task Init(
@@ -34,7 +33,7 @@ rtems_task Init(
);
count = 0;
- ticks = get_ticks_per_second();
+ ticks = rtems_clock_get_ticks_per_second();
while (1) {
status = rtems_rate_monotonic_period( period_id, ticks );
diff --git a/led/ratemon2/init.c b/led/ratemon2/init.c
index 167db5f..1dcb95d 100644
--- a/led/ratemon2/init.c
+++ b/led/ratemon2/init.c
@@ -12,7 +12,6 @@
#include <stdio.h>
#include <bsp.h>
-#include "../../testmacros.h"
#include "../led.h"
rtems_task Init(
@@ -38,12 +37,12 @@ rtems_task Init(
&period_id2
);
- ticks = get_ticks_per_second();
+ ticks = rtems_clock_get_ticks_per_second();
status = rtems_rate_monotonic_period( period_id1, 2 * ticks );
LED_ON();
- (void) rtems_task_wake_after( 1 * get_ticks_per_second() );
+ (void) rtems_task_wake_after( 1 * rtems_clock_get_ticks_per_second() );
status = rtems_rate_monotonic_period( period_id2, 2 * ticks );
LED_OFF();
@@ -64,7 +63,7 @@ rtems_task Init(
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-#define CONFIGURE_MAXIMUM_TASKS 4
+#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_MAXIMUM_PERIODS 2
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/led/sem_server/init.c b/led/sem_server/init.c
index d0792eb..f59406c 100644
--- a/led/sem_server/init.c
+++ b/led/sem_server/init.c
@@ -13,15 +13,8 @@
#include <bsp.h>
#include <assert.h>
-#include "../../testmacros.h"
#include "../led.h"
-/*
- * Keep the names and IDs in global variables so another task can use them.
- */
-
-rtems_id Task_id[ 4 ]; /* array of task ids */
-rtems_name Task_name[ 4 ]; /* array of task names */
rtems_id Sem_id;
rtems_task Test_task(
@@ -30,9 +23,9 @@ rtems_task Test_task(
{
rtems_status_code status;
- LED_INIT();
-
for ( ; ; ) {
+
+ /* Semaphore not available, ensured to block */
status = rtems_semaphore_obtain(
Sem_id,
RTEMS_DEFAULT_OPTIONS,
@@ -43,9 +36,10 @@ rtems_task Test_task(
LED_OFF();
- status = rtems_task_wake_after( get_ticks_per_second() );
+ status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
assert( status == RTEMS_SUCCESSFUL );
+ /* Transfers semaphore to Init task */
status = rtems_semaphore_release( Sem_id );
if ( status != RTEMS_SUCCESSFUL )
fputs( "Task - release did not work\n", stderr );
@@ -57,14 +51,18 @@ rtems_task Init(
)
{
rtems_status_code status;
+ rtems_id task_id;
+ rtems_name task_name;
puts( "\n\n*** LED BLINKER -- semaphore ping/pong ***" );
- Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+ LED_INIT();
+
+ task_name = rtems_build_name( 'T', 'A', '1', ' ' );
status = rtems_semaphore_create(
rtems_build_name( 'S', 'E', 'M', ' ' ),
- 0,
+ 0, /* created locked */
RTEMS_DEFAULT_ATTRIBUTES,
0,
&Sem_id
@@ -72,24 +70,26 @@ rtems_task Init(
assert( status == RTEMS_SUCCESSFUL );
status = rtems_task_create(
- Task_name[ 1 ], 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ]
+ task_name, 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES, &task_id
);
assert( status == RTEMS_SUCCESSFUL );
- status = rtems_task_start( Task_id[ 1 ], Test_task, 1 );
+ status = rtems_task_start( task_id, Test_task, 1 );
assert( status == RTEMS_SUCCESSFUL );
while (1) {
LED_ON();
- status = rtems_task_wake_after( get_ticks_per_second() );
+ status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
assert( status == RTEMS_SUCCESSFUL );
+ /* Transfers semaphore to TA1 */
status = rtems_semaphore_release( Sem_id );
if ( status != RTEMS_SUCCESSFUL )
fputs( "init - release did not work\n", stderr );
+ /* Semaphore not available, ensured to block */
status = rtems_semaphore_obtain(
Sem_id,
RTEMS_DEFAULT_OPTIONS,
@@ -110,7 +110,7 @@ rtems_task Init(
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-#define CONFIGURE_MAXIMUM_TASKS 4
+#define CONFIGURE_MAXIMUM_TASKS 2
#define CONFIGURE_MAXIMUM_SEMAPHORES 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/led/timeout_event/init.c b/led/timeout_event/init.c
index 71cce63..ee9fc23 100644
--- a/led/timeout_event/init.c
+++ b/led/timeout_event/init.c
@@ -13,16 +13,8 @@
#include <stdint.h>
#include <stdio.h>
-#include "../../testmacros.h"
#include "../led.h"
-/*
- * Keep the names and IDs in global variables so another task can use them.
- */
-
-rtems_id Task_id[ 4 ]; /* array of task ids */
-rtems_name Task_name[ 4 ]; /* array of task names */
-
rtems_task Init(
rtems_task_argument argument
)
@@ -38,7 +30,7 @@ rtems_task Init(
while (1) {
status = rtems_event_receive( RTEMS_EVENT_1,
- RTEMS_DEFAULT_OPTIONS, get_ticks_per_second(), &events );
+ RTEMS_DEFAULT_OPTIONS, rtems_clock_get_ticks_per_second(), &events );
if ( status != RTEMS_TIMEOUT )
fputs( "receive did not timeout\n", stderr );
@@ -58,7 +50,7 @@ rtems_task Init(
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-#define CONFIGURE_MAXIMUM_TASKS 4
+#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE