1. Products and Versions Concerned
(1) All the versions of the real-time OS for the SH-4- and SH-4A-cored
MCUs, HI7750/4 V1.00r1 through V.2.02 Release 02
(2) All the versions of the real-time OS for the SH-4A- and SH4AL-DSP-
cored MCUs, HI7300/PX V.1.00 Release 00 through V.1.02 Release 00
(3) All the versions of the real-time OS for the SH4AL-DSP-, SH-3-, and
SH3-DSP-cored MCU, HI7700/4 V1.00r1 through V.2.03 Release 00
(4) All the versions of the real-time OS for the SH2A-DUAL-cored MCUs,
HI7200/MP V.1.00 Release 00 and V.1.00 Release 01
(5) All the versions of the real-time OS for the SH2-DSP-, SH-1-, SH-2-,
SH-2A-, and SH2A-FPU-cored MCUs, HI7000/4 V1.00r1 through V.2.02
Release 02
2. Problem
If the program is running through the following steps, the ivset_tfl
service call issued in Step (4) may prevent task event flag specific to
the task in Step (1) from being set by the vset_tfl or ivset_tfl service
call in Step (2).
(1) A task, here called A, is in WAITING state for task event flag.
(2) A program makes the vset_tfl or ivset_tfl service call to set any
bits that task A is waiting for.
(3) An interrupt (including a timer interrupt) is occurred while the
kernel is servicing the call in (2).
(4) The handler (an interrupt-, cyclic-, alarm-, or overrun handler)
invoked by the interrupt in (3) issues the ivset_tfl service call to
task A to set any bits that task A is waiting for.
3. Workaround
Use general event flag instead of task event flag as follows:
(1) Create an event flag as follows:
- Attribute of event flag (T_CFLG.flgatr): TA_WSGL|TA_CLR
- Initial value of bit pattern (T_CFLG.iflgptn): 0
(2) Set an event flag using set_flg or iset_flg in place of vset_tfl
or ivset_tfl.
(3) Clear an event flag using clr_flg or iclr_flg in place of vclr_tfl
or ivclr_tfl.
(4) Wait for an event flag using wai_flg, twai_flg, or pol_flg in place
of vwai_tfl, vtwai_tfl, or vpol_tfl with TWF_ORW for parameter
'wfmode' (waiting mode).
4. Schedule of Fixing the Problem
We plan to fix this problem in the next release of the products.