Renesas 70 Manuel D’Utilisation

Page de 162
Chapter 3 Introduction to MR308 
   
- 34 - 
3.5.4 
Synchronization functions attached to task 
The task-dependent synchronization functions attached to task is used to accomplish synchronization between 
tasks by placing a task in the WAIT, SUSPENDED, or WAIT-SUSPENDED state or waking up a WAIT state task. 
The MR308 offers the following task incorporated synchronization service calls. 
• 
Put Task to sleep (slp_tsk,tslp_tsk) 
• 
Wakeup task (wup_tsk, iwup_tsk) 
Wakeups a task that has been placed in a WAIT state by the slp_tsk or tslp_tsk service call. 
No task can be waked up unless they have been placed in a WAIT state by.
If a wakeup request is issued to a task that has been kept waiting for conditions other than the slp_tsk 
or tslp_tsk service call or a task in other than DORMANT state    by the wup_tsk or iwup_tsk service 
call, that wakeup request only will be accumulated. 
Therefore, if a wakeup request is issued to a task RUNNING state, for example, this wakeup request 
is temporarily stored in memory. Then, when the task in RUNNING state is going to be placed into 
WAIT state by the slp_tsk or tslp_tsk service call, the accumulated wakeup request becomes effective, 
so that the task continues executing again without going to WAIT state.    (See Figure 3.23). 
• 
Cancel Task Wakeup Requests (can_wup) 
Clears the stored wakeup request.(See Figure 3.24). 
 
slp_tsk
slp_tsk 
wup_tsk
wup_tsk
wup_tsk
Wakeup request count 
Task 
 
Figure 3.23 Wakeup Request Storage 
 
slp_tsk
slp_tsk 
wup_tsk
wup_tsk can_wup
Wakeup request count 
Task 
 
Figure 3.24 Wakeup Request Cancellation 
 
• 
Suspend task (sus_tsk, isus_tsk) 
• 
Resume suspended task (rsm_tsk, irsm_tsk) 
These service calls forcibly keep a task suspended for execution or resume execution of a task. If a 
suspend request is issued to a task in READY state, the task is placed into SUSPENDED state; if is-
sued to a task in WAIT state, the task is placed into WAIT-SUSPENDED state. Since MR308 allows 
                                                      
32
  Note that tasks in WAIT state, but kept waiting for the following conditions are not awaken. 
Eventflag wait state, semaphore wait state, data transmission wait state, data reception wait state, timeout wait state, fixed length 
memory pool acquisition wait, short data transmission wait, or short data reception wait