RENESAS TOOL NEWS 2008年09月01日 : 080901/tn4
| M3T-MR100/4 V.1.00 Release 00ご使用上のお願い |
M16CファミリR32Cシリーズ用リアルタイムOS M3T-MR100/4 V.1.00 Release 00の
使用上の注意事項を連絡します。
- pol_semおよびipol_semサービスコールの使用に関する注意事項
- 周期ハンドラおよびアラームハンドラの使用に関する注意事項
1. pol_semおよびipol_semサービスコールの使用に関する注意事項
1.1 内容
セマフォカウント値が0であるセマフォを対象に、pol_semもしくはipol_sem
サービスコールを呼び出した場合、戻り値としてE_TMOUTが返されず、
E_OKが返される場合があります。
その時、0であるべきセマフォカウント値が65535になります。
1.2 発生条件
以下の条件をすべて満たす場合に発生します。
(1) セマフォカウント値が0であるセマフォを対象に、pol_semもしくは
ipol_semサービスコールを呼び出している。
(2) (1)項のセマフォの、次のID番号を持つセマフォのセマフォカウント値が
0ではない。
1.3 回避策
以下のいずれかの方法で回避してください。
(1) iref_semサービスコールを使用してセマフォカウント値が0であることを
確認してから、ipol_semサービスコールを呼び出す。
例
-----------------------------------------------------------
void inh1(void)
{
T_RSEM pk_rsem;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iref_sem(sem_ID1,&pk_rsem);
if ( pk_rsem.semcnt != 0){
ipol_sem(sem_ID1);
}
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
}
-----------------------------------------------------------
注: 回避コードを実行中に、多重割り込みによるセマフォ状態が
変化しないことを想定した例です。
(2) タイムアウト値としてTMO_POLを設定し、twai_sem サービスコールを
呼び出す。
例
-----------------------------------------------------------
void task1(VP_INT exinf)
{
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
twai_sem(sem_ID1,TMO_POL);
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
}
-----------------------------------------------------------
1.4 恒久対策
次期リビジョンアップで改修する予定です。
2. 周期ハンドラおよびアラームハンドラの使用に関する注意事項
2.1 内容
周期ハンドラもしくはアラームハンドラを128以上定義した場合、アプリ
ケーションビルド時にアセンブルエラーが発生します。
2.2 解決策
周期ハンドラもしくは、アラームハンドラの定義数は127以下にしてください。
2.3 恒久対策
次期リビジョンアップで改修する予定です。