MAEC TOOL NEWS:
MAECT-MR30-010801D
M16C/60, M16C/20シリーズ用リアルタイムOS MR30の使用上の注意事項を連絡します。
- iwup_tskシステムコール使用時の注意事項
- コンパイラnc30のオプション-fansiを使用する場合の注意事項
- iwup_tskシステムコール使用時の注意事項
- 1.1 該当製品
- MR30 V.1.00 Release 1 ~ V.3.30 Release 1
- 1.2 内容
- 待ち状態のタスクを起動するiwup_tskシステムコールを発行した時、MR30は対象タスクの待ち状態が解除されたことを示すエラーコードE_OKを返すべきですが、返さない場合があります。
- 1.2.1 発生条件
- 以下の条件をすべて満たす場合に問題が発生します。
- (1) iwup_tskシステムコールの対象タスクがslp_tskまたはtslp_tskシステムコールによる待ち状態である。
- (2) 上記のタスクと同じ優先度で、READY状態またはRUN状態のタスクが存在する。
- 1.2.2 発生例
- 以下のソース記述では、通常はID番号1のタスクが起動されて、エラーコードE_OKを返すので、error関数は実行されません。
しかし、上記の条件を満たした場合は、ID番号1のタスクが起動されても、E_OKを返さないので、error関数が実行されます。
----------------------------------------------------------------------
if( iwup_tsk( 1 ) != E_OK ){
error( Q_OVR );
}
----------------------------------------------------------------------
- 1.3 回避策
- 以下のとおり、エラーコードをE_OKで判定せず、E_QOVRで判定させる記述をしてください。
----------------------------------------------------------------------
if( iwup_tsk( 1 ) == E_QOVR ){
error( Q_OVR );
}
----------------------------------------------------------------------
- 1.4 恒久対策
- 次期バージョンアップ時に改定する予定です。
MR30 ご使用上のお願い
MAECT-MR30-010801D
- コンパイラnc30のオプション-fansiを使用する場合の注意事項
- 2.1 該当製品
- MR30 V.1.00 Release 1 ~ V.3.30 Release 1
- 2.2 内容
- プログラムのソースをコンパイラnc30でオプション-fansiを指定してコンパイルした場合に、Syntaxエラーになります。
- 2.3 回避策
- MR30をインストールしたディレクトリの下のINC30ディレクトリにあるインクルードファイルmr30.hを以下のとおり変更してください。
[変更後]
17行目:_asm(" C_inc .EQU 1 \n\
361行目:_asm("__MR_IntEntry .MACRO \n\
[変更前]
17行目:asm(" C_inc .EQU 1 \n\
361行目:asm("__MR_IntEntry .MACRO \n\
- 2.4 恒久対策
- 次期バージョンアップ時に改定する予定です。