Informations about TEST.C ------------------------- The test program tests several pico]OS functions. It uses 14 tasks (including the idle task). This file shall help you interpreting the outputted text. _P1_ / _P2_ / _P3_ : The program starts three low priority tasks that are doing busy waiting (that means, they poll for the content of the jiffies variable). All 500 ms the tasks print out their task numbers (P1/P2/P3). If the OS works correctly, every 500 ms all the tasks must have printed out their numbers. :M1_ / :M2_ / :M3_ : Mutexes. Three threads are trying to access a code region that is locked by a mutex. This code region delays task execution for one second. If the OS works correctly, every second one of the task names must appear on the screen, within three seconds all task names must have been printed out. If more than one task has entered the protected code region, an error message is printed. 2S1_ / 2S2_ / 2S3_ : Semaphore test. The program allocates a semaphore and initializes its counter with 2. Three threads are started and are trying to get the semaphore. The leading number in the printed string shows how much threads are currently holding the semaphore. Normally, the leading number is 2, in rare cases it may be a 1. The number after the 'S' is the number of the thread that did the print. If this test fails (more than the allowed two tasks got the semaphore), an error message is printed. The string xS2_ is printed two times within a second. >F2_ / >F3_ / >F6_ : Flag event and timer test. A task waits for a flag object and prints out the number of the set flag. The flag F2 is set by the main task every 3 seconds. The flag F3 is set by a task that is triggered by a timer every 2 seconds. The flag F6 is set by a software interrupt that is rised every 1.67 seconds. Notes: (1) All texts are printed by use of the message box system. A task is waiting for messages and prints the message content (an ASCII string). (2) The underline '_' in the above description denotes a white space ' '.