Chapter 8 Sample Program Description
- 142 -
8.1 Overview of Sample Program
As an example application of MR308, the following shows a program that outputs a string to the standard output
device from one task and another alternately.
Table 8.1 Functions in the Sample Program
Function
Name
Type ID No. Priority Description
main() Task 1 1 Starts task1 and task2.
task1() Task 2 2 Outputs "task1 running."
task2() Task 3 3 Outputs "task2 running."
cyh1() Handler 1 Wakes up task1().
The content of processing is described below.
• The main task starts task1, task2, and cyh1, and then terminates itself.
• task1 operates in order of the following.
1. Gets a semaphore.
2. Goes to a wakeup wait state.
3. Outputs "task1 running."
4. Frees the semaphore.
• task2 operates in order of the following.
1. Gets a semaphore.
2. Outputs "task2 running."
3. Frees the semaphore.
cyh1 starts every 100 ms to wake up task1.