FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/nucleus/demo/demo.c @ 339:2f88c5b89113
OSL reconstruction: got to os_GetTaskData()
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Fri, 02 May 2014 23:44:12 +0000 | 
| parents | afceeeb2cba1 | 
| children | 
| rev | line source | 
|---|---|
| 80 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 1 /* Include Nucleus C-Library file */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 2 //#include "ncl\inc\nu_ncl.h" | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 3 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 4 /* Include necessary Nucleus PLUS files. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 5 #include "nucleus.h" | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 6 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 7 /* Define serial output/input functionality. To disable serial I/O, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 8 replace NU_TRUE with NU_FALSE */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 9 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 10 #define NU_SERIAL_OUTPUT NU_TRUE | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 11 #define NU_SERIAL_INPUT NU_TRUE | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 12 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 13 #if (NU_SERIAL_OUTPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 14 #include "nu_sd.h" /* Nucleus Serial Driver interface */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 15 #endif | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 16 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 17 /* Define Application data structures. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 18 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 19 NU_TASK Task_0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 20 NU_TASK Task_1; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 21 NU_TASK Task_2; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 22 NU_TASK Task_3; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 23 NU_TASK Task_4; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 24 NU_TASK Task_5; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 25 NU_QUEUE Queue_0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 26 NU_SEMAPHORE Semaphore_0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 27 NU_EVENT_GROUP Event_Group_0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 28 NU_MEMORY_POOL System_Memory; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 29 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 30 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 31 /* Allocate global counters. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 32 UNSIGNED Task_Time; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 33 UNSIGNED Task_2_messages_received; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 34 UNSIGNED Task_2_invalid_messages; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 35 UNSIGNED Task_1_messages_sent; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 36 NU_TASK *Who_has_the_resource; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 37 UNSIGNED Event_Detections; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 38 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 39 #if (NU_SERIAL_OUTPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 40 NU_SERIAL_PORT port; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 41 #endif | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 42 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 43 #ifdef NU_FIQ_DEMO | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 44 UINT32 FIQ_Count; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 45 #endif | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 46 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 47 extern UNSIGNED TMD_System_Clock; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 48 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 49 /* Define prototypes for function references. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 50 VOID task_0(UNSIGNED argc, VOID *argv); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 51 VOID task_1(UNSIGNED argc, VOID *argv); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 52 VOID task_2(UNSIGNED argc, VOID *argv); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 53 VOID task_3_and_4(UNSIGNED argc, VOID *argv); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 54 VOID task_5(UNSIGNED argc, VOID *argv); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 55 CHAR buffer[12]; /* temp buffer for Itoa conversion */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 56 INT n; /* strlen */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 57 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 58 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 59 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 60 /* Define the Application_Initialize routine that determines the initial | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 61 Nucleus PLUS application environment. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 62 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 63 void Application_Initialize(void *first_available_memory) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 64 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 65 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 66 VOID *pointer; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 67 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 68 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 69 /* Create a system memory pool that will be used to allocate task stacks, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 70 queue areas, etc. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 71 status = NU_Create_Memory_Pool(&System_Memory, "SYSMEM", | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 72 first_available_memory, 25000, 50, NU_FIFO); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 73 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 74 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 75 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 76 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 77 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 78 /* Create each task in the system. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 79 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 80 /* Create task 0. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 81 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 82 status = NU_Create_Task(&Task_0, "TASK 0", task_0, 0, NU_NULL, pointer, 2000, 1, 20, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 83 NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 84 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 85 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 86 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 87 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 88 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 89 /* Create task 1. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 90 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 91 status = NU_Create_Task(&Task_1, "TASK 1", task_1, 0, NU_NULL, pointer, 2000, 10, 5, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 92 NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 93 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 94 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 95 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 96 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 97 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 98 /* Create task 2. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 99 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 100 status = NU_Create_Task(&Task_2, "TASK 2", task_2, 0, NU_NULL, pointer, 2000, 10, 5, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 101 NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 102 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 103 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 104 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 105 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 106 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 107 /* Create task 3. Note that task 4 uses the same instruction area. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 108 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 109 status = NU_Create_Task(&Task_3, "TASK 3", task_3_and_4, 0, NU_NULL, pointer, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 110 2000, 5, 0, NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 111 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 112 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 113 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 114 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 115 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 116 /* Create task 4. Note that task 3 uses the same instruction area. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 117 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 118 status = NU_Create_Task(&Task_4, "TASK 4", task_3_and_4, 0, NU_NULL, pointer, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 119 2000, 5, 0, NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 120 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 121 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 122 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 123 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 124 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 125 /* Create task 5. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 126 NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 127 status = NU_Create_Task(&Task_5, "TASK 5", task_5, 0, NU_NULL, pointer, 2000, 7, 0, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 128 NU_PREEMPT, NU_START); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 129 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 130 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 131 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 132 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 133 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 134 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 135 /* Create communication queue. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 136 NU_Allocate_Memory(&System_Memory, &pointer, 100*sizeof(UNSIGNED), | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 137 NU_NO_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 138 status = NU_Create_Queue(&Queue_0, "QUEUE 0", pointer, 100, NU_FIXED_SIZE, 1, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 139 NU_FIFO); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 140 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 141 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 142 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 143 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 144 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 145 /* Create synchronization semaphore. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 146 status = NU_Create_Semaphore(&Semaphore_0, "SEM 0", 1, NU_FIFO); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 147 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 148 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 149 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 150 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 151 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 152 /* Create event flag group. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 153 status = NU_Create_Event_Group(&Event_Group_0, "EVGROUP0"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 154 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 155 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 156 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 157 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 158 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 159 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 160 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 161 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 162 /* Define the system timer task. More complicated systems might use a | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 163 routine like this to perform periodic message sending and other time | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 164 oriented functions. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 165 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 166 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 167 void task_0(UNSIGNED argc, VOID *argv) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 168 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 169 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 170 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 171 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 172 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 173 #if (NU_SERIAL_OUTPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 174 CHAR msg[40]; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 175 INT i; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 176 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 177 CHAR ch; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 178 #endif /* NU_SERIAL_OUTPUT */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 179 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 180 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 181 #if (NU_SERIAL_OUTPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 182 /* Init the serial port. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 183 port.com_port = DEFAULT_UART_PORT; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 184 port.baud_rate = DEFAULT_UART_BAUD; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 185 port.data_bits = DEFAULT_UART_DATA; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 186 port.stop_bits = DEFAULT_UART_STOP; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 187 port.parity = DEFAULT_UART_PARITY; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 188 port.data_mode = DEFAULT_UART_MODE; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 189 port.communication_mode = SERIAL_MODE; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 190 port.sd_buffer_size = DEFAULT_UART_BUFFER; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 191 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 192 status = NU_SD_Init_Port (&port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 193 if (status != NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 194 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 195 ERC_System_Error(status); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 196 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 197 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 198 #endif /* NU_SERIAL_OUTPUT */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 199 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 200 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 201 /* Access argc and argv just to avoid compilation warnings. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 202 status = (STATUS) argc + (STATUS) argv; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 203 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 204 /* Set the clock to 0. This clock ticks every 18 system timer ticks. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 205 Task_Time = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 206 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 207 while(1) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 208 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 209 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 210 /* Sleep for 100 timer ticks. The value of the tick is programmable | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 211 in INT.S and is relative to the speed of the target system. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 212 NU_Sleep(100); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 213 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 214 #if (NU_SERIAL_OUTPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 215 NU_SD_Put_String("\n\r****************************************", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 216 NU_SD_Put_String("***************************************\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 217 NU_SD_Put_String(NU_Release_Information(), &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 218 NU_SD_Put_String("\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 219 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 220 NU_SD_Put_String("****************************************", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 221 NU_SD_Put_String("***************************************\n\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 222 NU_SD_Put_String("System Variable Status: \n\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 223 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 224 strcpy(msg, "Task 0 time: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 225 sprintf(buffer, "%lu", Task_Time); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 226 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 227 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 228 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 229 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 230 strcat(msg, "\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 231 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 232 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 233 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 234 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 235 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 236 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 237 strcat(msg, "\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 238 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 239 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 240 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 241 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 242 strcpy(msg, "Event detections: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 243 sprintf(buffer, "%lu", Event_Detections); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 244 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 245 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 246 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 247 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 248 strcat(msg, "\n\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 249 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 250 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 251 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 252 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 253 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 254 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 255 strcat(msg, "\n\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 256 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 257 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 258 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 259 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 260 strcpy(msg, "Task 1 messages sent: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 261 sprintf(buffer, "%lu", Task_1_messages_sent); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 262 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 263 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 264 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 265 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 266 strcat(msg, "\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 267 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 268 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 269 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 270 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 271 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 272 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 273 strcat(msg, "\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 274 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 275 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 276 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 277 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 278 strcpy(msg, "Task 2 messages received: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 279 sprintf(buffer, "%lu", Task_2_messages_received); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 280 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 281 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 282 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 283 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 284 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 285 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 286 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 287 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 288 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 289 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 290 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 291 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 292 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 293 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 294 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 295 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 296 strcpy(msg, "Task 2 invalid messages: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 297 sprintf(buffer, "%lu", Task_2_invalid_messages); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 298 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 299 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 300 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 301 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 302 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 303 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 304 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 305 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 306 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 307 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 308 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 309 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 310 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 311 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 312 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 313 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 314 if (Who_has_the_resource == &Task_3) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 315 NU_SD_Put_String("Who has the resource: Task 3", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 316 else if (Who_has_the_resource == &Task_4) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 317 NU_SD_Put_String("Who has the resource: Task 4", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 318 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 319 NU_SD_Put_String("Who has the resource: Nobody", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 320 NU_SD_Put_String("\n\n\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 321 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 322 strcpy(msg, "Timer Interrupts: "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 323 sprintf(buffer, "%lu", TMD_System_Clock); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 324 n = strlen(buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 325 if (n>=8) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 326 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 327 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 328 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 329 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 330 else | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 331 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 332 for (i=0;i<(8-n);i++) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 333 strcat(msg, " "); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 334 strcat(msg, buffer); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 335 strcat(msg, "\n\n\r"); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 336 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 337 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 338 NU_SD_Put_String(msg, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 339 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 340 NU_SD_Put_String("Buffer: ", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 341 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 342 #if (NU_SERIAL_INPUT) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 343 while (NU_SD_Data_Ready(&port)) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 344 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 345 ch = NU_SD_Get_Char(&port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 346 NU_SD_Put_Char(ch, &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 347 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 348 #endif /* NU_SERIAL_INPUT */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 349 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 350 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 351 NU_SD_Put_String("\n\n\r", &port); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 352 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 353 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 354 #endif /* NU_SERIAL_OUTPUT */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 355 /* Increment the time. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 356 Task_Time++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 357 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 358 /* Set an event flag to lift the suspension on task 5. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 359 status = NU_Set_Events(&Event_Group_0, 1, NU_OR); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 360 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 361 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 362 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 363 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 364 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 365 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 366 /* Define the queue sending task. Note that the only things that cause | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 367 this task to suspend are queue full conditions and the time slice | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 368 specified in the configuration file. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 369 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 370 void task_1(UNSIGNED argc, VOID *argv) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 371 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 372 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 373 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 374 UNSIGNED Send_Message; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 375 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 376 /* Access argc and argv just to avoid compilation warnings. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 377 status = (STATUS) argc + (STATUS) argv; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 378 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 379 /* Initialize the message counter. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 380 Task_1_messages_sent = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 381 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 382 /* Initialize the message contents. The receiver will examine the | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 383 message contents for errors. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 384 Send_Message = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 385 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 386 while(1) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 387 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 388 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 389 /* Send the message to Queue_0, which task 2 reads from. Note | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 390 that if the destination queue fills up this task suspends until | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 391 room becomes available. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 392 status = NU_Send_To_Queue(&Queue_0, &Send_Message, 1, NU_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 393 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 394 /* Determine if the message was sent successfully. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 395 if (status == NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 396 Task_1_messages_sent++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 397 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 398 /* Modify the contents of the next message to send. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 399 Send_Message++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 400 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 401 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 402 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 403 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 404 /* Define the queue receiving task. Note that the only things that cause | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 405 this task to suspend are queue empty conditions and the time slice | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 406 specified in the configuration file. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 407 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 408 void task_2(UNSIGNED argc, VOID *argv) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 409 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 410 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 411 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 412 UNSIGNED Receive_Message; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 413 UNSIGNED received_size; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 414 UNSIGNED message_expected; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 415 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 416 /* Access argc and argv just to avoid compilation warnings. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 417 status = (STATUS) argc + (STATUS) argv; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 418 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 419 /* Initialize the message counter. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 420 Task_2_messages_received = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 421 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 422 /* Initialize the message error counter. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 423 Task_2_invalid_messages = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 424 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 425 /* Initialize the message contents to expect. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 426 message_expected = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 427 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 428 while(1) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 429 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 430 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 431 /* Retrieve a message from Queue_0, which task 1 writes to. Note | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 432 that if the source queue is empty this task suspends until | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 433 something becomes available. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 434 status = NU_Receive_From_Queue(&Queue_0, &Receive_Message, 1, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 435 &received_size, NU_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 436 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 437 /* Determine if the message was received successfully. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 438 if (status == NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 439 Task_2_messages_received++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 440 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 441 /* Check the contents of the message against what this task | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 442 is expecting. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 443 if ((received_size != 1) || | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 444 (Receive_Message != message_expected)) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 445 Task_2_invalid_messages++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 446 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 447 /* Modify the expected contents of the next message. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 448 message_expected++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 449 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 450 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 451 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 452 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 453 /* Tasks 3 and 4 want a single resource. Once one of the tasks gets the | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 454 resource, it keeps it for 100 clock ticks before releasing it. During | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 455 this time the other task suspends waiting for the resource. Note that | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 456 both task 3 and 4 use the same instruction areas but have different | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 457 stacks. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 458 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 459 void task_3_and_4(UNSIGNED argc, VOID *argv) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 460 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 461 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 462 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 463 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 464 /* Access argc and argv just to avoid compilation warnings. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 465 status = (STATUS) argc + (STATUS) argv; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 466 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 467 /* Loop to allocate and deallocate the resource. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 468 while(1) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 469 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 470 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 471 /* Allocate the resource. Suspend until it becomes available. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 472 status = NU_Obtain_Semaphore(&Semaphore_0, NU_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 473 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 474 /* If the status is successful, show that this task owns the | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 475 resource. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 476 if (status == NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 477 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 478 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 479 Who_has_the_resource = NU_Current_Task_Pointer(); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 480 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 481 /* Sleep for 100 ticks to cause the other task to suspend on | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 482 the resource. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 483 NU_Sleep(100); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 484 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 485 /* Release the semaphore. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 486 NU_Release_Semaphore(&Semaphore_0); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 487 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 488 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 489 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 490 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 491 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 492 /* Define the task that waits for the event to be set by task 0. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 493 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 494 void task_5(UNSIGNED argc, VOID *argv) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 495 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 496 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 497 STATUS status; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 498 UNSIGNED event_group; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 499 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 500 /* Access argc and argv just to avoid compilation warnings. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 501 status = (STATUS) argc + (STATUS) argv; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 502 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 503 /* Initialize the event detection counter. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 504 Event_Detections = 0; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 505 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 506 /* Continue this process forever. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 507 while(1) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 508 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 509 /* Wait for an event and consume it. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 510 status = NU_Retrieve_Events(&Event_Group_0, 1, NU_OR_CONSUME, | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 511 &event_group, NU_SUSPEND); | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 512 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 513 /* If the status is okay, increment the counter. */ | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 514 if (status == NU_SUCCESS) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 515 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 516 Event_Detections++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 517 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 518 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 519 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 520 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 521 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 522 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 523 #ifdef NU_FIQ_DEMO | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 524 void FIQ_LISR(VOID) | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 525 { | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 526 FIQ_Count++; | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 527 } | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 528 #endif | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 529 | 
| 
39b1c369b67f
nuc-fw: links to an ELF image
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 530 | 
