Everything

第15章  データ・タイプとマクロ


本章では,RI850V4が提供するサービス・コールを発行する際に使用するデータ・タイプ,データ構造体,マクロについて解説しています。
 なお,マクロ,およびデータ構造体の定義は,<ri_root>\include\osに格納されている各ヘッダ・ファイルで行わ
れています。
備考 <ri_root> は,RI850V4 のインストール・フォルダを表しています。 デフォルトでは,“C:\Program Files\Renesas Electronics\CS+\CC\RI850V4RH”となります。
15.1 データ・タイプ
以下に,サービス・コールを発行する際に指定する各種パラメータのデータ・タイプ一覧を示します。
 なお,データ・タイプのマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共
通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル
<ri_root>\include\os\types.hで行われています。
表15-1  データ・タイプ
マクロ

意味
B
signed char
符号付き8ビット整数
H
signed short
符号付き16ビット整数
W
signed long
符号付き32ビット整数
UB
unsigned char
符号なし8ビット整数
UH
unsigned short
符号なし16ビット整数
UW
unsigned long
符号なし32ビット整数
VB
signed char
データ・タイプが一定しない値(8ビット)
VH
signed short
データ・タイプが一定しない値(16ビット)
VW
signed long
データ・タイプが一定しない値(32ビット)
VP
void *
データ・タイプが一定しない値(ポインタ)
FP
void ( * )
処理プログラムの起動アドレス(ポインタ)
INT
signed int
符号付き32ビット整数
UINT
unsigned int
符号なし32ビット整数
BOOL
signed long
真偽値(TRUE,またはFALSE)
FN
signed short
拡張サービス・コール・ルーチンの機能コード番号
ER
signed long
サービス・コールからの戻り値
ID
signed short
管理オブジェクトのID
ATR
unsigned short
管理オブジェクトの属性
STAT
unsigned short
管理オブジェクトの状態
MODE
unsigned short
サービス・コールの動作モード
PRI
signed short
タスク,またはメッセージの優先度
SIZE
unsigned long
領域のサイズ(単位:バイト)
TMO
signed long
タスクの待ち時間(単位:ミリ秒)
RELTIM
unsigned long
相対時間(単位:ミリ秒)
VP_INT
signed long
データ・タイプが一定しない値(ポインタ),または符号付き32ビット整数
ER_BOOL
signed long
真偽値(TRUE,またはFALSE)
ER_ID
signed long
管理オブジェクトのID
ER_UINT
signed int
符号なし32ビット整数
FLGPTN
unsigned long
イベントフラグのビット・パターン
INTNO
signed short
例外コード

15.2 データ構造体
RI850V4が提供するサービス・コールを発行する際に使用するデータ構造体(タスク詳細情報,タスク基本情報など)について以下に示します。なお,各データ構造体のシステム予約領域はプログラムから参照しないようにしてください。
15.2.1 タスク詳細情報
以下に,ref_tsk,およびiref_tskを発行する際に使用するタスク詳細情報T_RTSKを示します。
 なお,タスク詳細情報T_RTSKの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出される
ヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rtsk {
         STAT    tskstat;        /*現在状態*/
         PRI     tskpri;         /*現在優先度*/
         PRI     tskbpri;        /*システム予約領域*/
         STAT    tskwait;        /*待ち要因*/
         ID      wobjid;         /*管理オブジェクトのID*/
         UH      RFU1;           /*システム予約領域*/
         TMO     lefttmo;        /*残り時間*/
         UINT    actcnt;         /*起動要求数*/
         UINT    wupcnt;         /*起床要求数*/
         UINT    suscnt;         /*サスペンド要求数*/
         ATR     tskatr;         /*属性*/
         PRI     itskpri;        /*初期優先度*/
         ID      memid;          /*システム予約領域*/
         UH      RFU2;           /*システム予約領域*/
 } T_RTSK;

以下に,タスク詳細情報T_RTSKの詳細を示します。
- tskstat
タスクの現在状態が格納されます。
TTS_RUN: RUNNING状態
TTS_RDY: READY状態
TTS_WAI: WAITING状態
TTS_SUS: SUSPENDED状態
TTS_WAS: WAITING-SUSPENDED状態
TTS_DMT: DORMANT状態
- tskpri
タスクの現在優先度が格納されます。
- tskwait
タスクの待ち要因(WAITING状態の種類)が格納されます。
TTW_SLP: slp_tsk,またはtslp_tskによる起床待ち状態
TTW_DLY: dly_tskによる時間経過待ち状態
TTW_SEM: wai_sem,またはtwai_semによる資源獲得待ち状態
TTW_FLG: wai_flg,またはtwai_flgによるイベントフラグ待ち状態
TTW_SDTQ: snd_dtq,またはtsnd_dtqによるデータ送信待ち状態
TTW_RDTQ: rcv_dtq,またはtrcv_dtqによるデータ受信待ち状態
TTW_MBX: rcv_mbx,またはtrcv_mbxによるメッセージ受信待ち状態
TTW_MTX: loc_mtx,またはtloc_mtxによるミューテックス待ち状態
TTW_MPF: get_mpf,またはtget_mpfによる固定長メモリ・ブロック獲得待ち状態
TTW_MPL: get_mpl,またはtget_mplによる可変長メモリ・ブロック獲得待ち状態
- wobjid
タスクがWAITING状態へと遷移するきっかけとなった管理オブジェクト(セマフォ,イベントフラグなど)のIDが格納されます。
なお,タスクがWAITING状態以外の場合には,0が格納されます。
- lefttmo
タスクの時間経過待ち状態が解除されるまでの残り時間(単位:ミリ秒)が格納されます。
- actcnt
タスクの起動要求数が格納されます。
- wupcnt
タスクの起床要求数が格納されます。
- suscnt
タスクのサスペンド要求数が格納されます。
- tskatr
タスクの属性(記述言語,初期起動状態など)が格納されます。
タスクの記述言語(ビット0)
TA_HLNG: C言語
TA_ASM: アセンブリ言語
タスクの初期起動状態(ビット1)
TA_ACT: READY状態
プリエンプトの受け付け状態(ビット14)
TA_DISPREEMPT: 禁止状態
初期割り込み状態(ビット15)
TA_ENAINT: EIレベル・マスカブル割り込み(最大割り込み優先度maxintpri最低割り込み優先度)の受け付けを許可
TA_DISINT: EIレベル・マスカブル割り込み(最大割り込み優先度maxintpri最低割り込み優先度)の受け付けを禁止
【 tskatrの構造 】
- itskpri
タスクの初期優先度が格納されます。
15.2.2 タスク基本情報
以下に,ref_tst,およびiref_tstを発行する際に使用するタスク基本情報T_RTSTを示します。
 なお,タスク基本情報T_RTSTの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出される
ヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rtst {
         STAT    tskstat;        /*現在状態*/
         STAT    tskwait;        /*待ち要因*/
 } T_RTST;

以下に,タスク基本情報T_RTSTの詳細を示します。
- tskstat
タスクの現在状態が格納されます。
TTS_RUN: RUNNING状態
TTS_RDY: READY状態
TTS_WAI: WAITING状態
TTS_SUS: SUSPENDED状態
TTS_WAS: WAITING-SUSPENDED状態
TTS_DMT: DORMANT状態
- tskwait
タスクの待ち要因(WAITING状態の種類)が格納されます。
TTW_SLP: slp_tsk,またはtslp_tskによる起床待ち状態
TTW_DLY: dly_tskによる時間経過待ち状態
TTW_SEM: wai_sem,またはtwai_semによる資源獲得待ち状態
TTW_FLG: wai_flg,またはtwai_flgによるイベントフラグ待ち状態
TTW_SDTQ: snd_dtq,またはtsnd_dtqによるデータ送信待ち状態
TTW_RDTQ: rcv_dtq,またはtrcv_dtqによるデータ受信待ち状態
TTW_MBX: rcv_mbx,またはtrcv_mbxによるメッセージ受信待ち状態
TTW_MTX: loc_mtx,またはtloc_mtxによるミューテックス待ち状態
TTW_MPF: get_mpf,またはtget_mpfによる固定長メモリ・ブロック獲得待ち状態
TTW_MPL: get_mpl,またはtget_mplによる可変長メモリ・ブロック獲得待ち状態
15.2.3 セマフォ詳細情報
以下に,ref_sem,およびiref_semを発行する際に使用するセマフォ詳細情報T_RSEMを示します。
 なお,セマフォ詳細情報T_RSEMの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出される
ヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rsem {
         ID      wtskid;         /*待ちタスクの有無*/
         UH      RFU1;           /*システム予約領域*/
         UINT    semcnt;         /*現在資源数*/
         ATR     sematr;         /*属性*/
         UH      RFU2;           /*システム予約領域*/
         UINT    maxsem;         /*最大資源数*/
 } T_RSEM;

以下に,セマフォ詳細情報T_RSEMの詳細を示します。
- wtskid
セマフォの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- semcnt
セマフォの現在資源数が格納されます。
- sematr
セマフォの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: 資源の獲得要求を行った順
TA_TPRI: タスクの優先度順
【 sematrの構造 】
- maxsem
セマフォの最大資源数が格納されます。
15.2.4 イベントフラグ詳細情報
以下に,ref_flg,およびiref_flgを発行する際に使用するイベントフラグ詳細情報T_RFLGを示します。
 なお,イベントフラグ詳細情報T_RFLGの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出
されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rflg {
         ID      wtskid;         /*待ちタスクの有無*/
         UH      RFU1;           /*システム予約領域*/
         FLGPTN  flgptn;         /*現在ビット・パターン*/
         ATR     flgatr;         /*属性*/
         UH      RFU2;           /*システム予約領域*/
 } T_RFLG;

以下に,イベントフラグ詳細情報T_RFLGの詳細を示します。
- wtskid
イベントフラグの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- flgptn
イベントフラグの現在ビット・パターンが格納されます。
- flgatr
イベントフラグの属性(キューイング方式,キューイング可能なタスクの最大数など)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: ビット・パターンのチェックを行った順
TA_TPRI: タスクの優先度順
キューイング可能なタスクの最大数(ビット1)
TA_WSGL: 1個
TA_WMUL: 複数
ビット・パターンのクリア(ビット2)
TA_CLR: 要求条件が満足した際,ビット・パターンをクリア(0x0の設定)
【 flgatrの構造 】
15.2.5 データ・キュー詳細情報
以下に,ref_dtq,およびiref_dtqを発行する際に使用するデータ・キュー詳細情報T_RDTQを示します。
 なお,データ・キュー詳細情報T_RDTQの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出
されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rdtq {
         ID      stskid;         /*データ送信待ちタスクの有無*/
         ID      rtskid;         /*データ受信待ちタスクの有無*/
         UINT    sdtqcnt;        /*未受信データの総数*/
         ATR     dtqatr;         /*属性*/
         UH      RFU1;           /*システム予約領域*/
         UINT    dtqcnt;         /*データ数*/
         ID      memid;          /*システム予約領域*/
         UH      RFU2;           /*システム予約領域*/
 } T_RDTQ;

以下に,データ・キュー詳細情報T_RDTQの詳細を示します。
- stskid
データ・キューの送信待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 送信待ちキューにタスクはキューイングされていない
その他: 送信待ちキューの先頭にキューイングされているタスクのID
- rtskid
データ・キューの受信待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 受信待ちキューにタスクはキューイングされていない
その他: 受信待ちキューの先頭にキューイングされているタスクのID
- sdtqcnt
データ・キューのデータ・キュー領域にキューイングされている未受信データの総数が格納されます。
- dtqatr
データ・キューの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: データの送信要求を行った順
TA_TPRI: タスクの優先度順
【 dtqatrの構造 】
- dtqcnt
データ・キューのデータ・キュー領域にキューイング可能なデータの最大数が格納されます。
15.2.6 メッセージ
以下に,snd_mbxisnd_mbxrcv_mbxprcv_mbxiprcv_mbx,およびtrcv_mbxを発行する際に使用するメッセージT_MSG,T_MSG_PRIを示します。
 なお,メッセージT_MSG,T_MSG_PRIの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,および
ITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル
<ri_root>\include\os\types.hで行われています。
【 TA_MFIFO属性用メッセージT_MSGの構造 】
 typedef struct  t_msg {
         struct  t_msg   *msgnext;       /*システム予約領域*/
 } T_MSG;

【 TA_MPRI属性用メッセージT_MSG_PRIの構造 】
 typedef struct  t_msg_pri {
         struct  t_msg   msgque;         /*システム予約領域*/
         PRI     msgpri;                 /*優先度*/
         UH      RFU;                    /*システム予約領域*/
 } T_MSG_PRI;

以下に,メッセージT_MSG,T_MSG_PRIの詳細を示します。
- msgpri
メッセージの優先度が格納されます。
備考1 RI850V4におけるメッセージの優先度は,その値が小さいほど,高い優先度であることを意味します。
備考2 メッセージの優先度として指定可能な値は,システム・コンフィギュレーション・ファイル作成時にメールボックス情報最大メッセージ優先度maxmpri)で定義された値域に限定されます。
15.2.7 メールボックス詳細情報
以下に,ref_mbx,およびiref_mbxを発行する際に使用するメールボックス詳細情報T_RMBXを示します。
 なお,メールボックス詳細情報T_RMBXの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出
されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rmbx {
         ID      wtskid;         /*待ちタスクの有無*/
         UH      RFU1;           /*システム予約領域*/
         T_MSG   *pk_msg;        /*待ちメッセージの有無*/
         ATR     mbxatr;         /*属性*/
         UH      RFU2;           /*システム予約領域*/
 } T_RMBX;

以下に,メールボックス詳細情報T_RMBXの詳細を示します。
- wtskid
メールボックスの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- pk_msg
メールボックスの待ちキューにメッセージがキューイングされているか否かが格納されます。
NULL: 待ちキューにメッセージはキューイングされていない
その他: 待ちキューの先頭にキューイングされているメッセージの先頭アドレス
- mbxatr
メールボックスの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: メッセージの受信要求を行った順
TA_TPRI: タスクの優先度順
メッセージ・キューイング方式(ビット1)
TA_MFIFO: メッセージの送信要求を行った順
TA_MPRI: メッセージの優先度順
【 mbxatrの構造 】
15.2.8 ミューテックス詳細情報
以下に,ref_mtx,およびiref_mtxを発行する際に使用するミューテックス詳細情報T_RMTXを示します。
 なお,ミューテックス詳細情報T_RMTXの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出
されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rmtx {
         ID      htskid;         /*ロックの有無*/
         ID      wtskid;         /*待ちタスクの有無*/
         ATR     mtxatr;         /*属性*/
         PRI     ceilpri;        /*システム予約領域*/
 } T_RMTX;

以下に,ミューテックス詳細情報T_RMTXの詳細を示します。
- htskid
ミューテックスをロックしているタスクが存在しているか否かが格納されます。
TSK_NONE: ロックしているタスクは存在しない
その他: ロックしているタスクのID
- wtskid
ミューテックスの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- mtxatr
ミューテックスの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0~1)
TA_TFIFO: ミューテックスのロック要求を行った順
TA_TPRI: タスクの優先度順
【 mtxatrの構造 】
15.2.9 固定長メモリ・プール詳細情報
以下に,ref_mpf,およびiref_mpfを発行する際に使用する固定長メモリ・プール詳細情報T_RMPFを示します。
 なお,固定長メモリ・プール詳細情報T_RMPFの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから
呼び出されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rmpf {
         ID      wtskid;         /*待ちタスクの有無*/
         UH      RFU;            /*システム予約領域*/
         UINT    fblkcnt;        /*空き固定長メモリ・ブロックの総数*/
         ATR     mpfatr;         /*属性*/
         ID      memid;          /*システム予約領域*/
 } T_RMPF;

以下に,固定長メモリ・プール詳細情報T_RMPFの詳細を示します。
- wtskid
固定長メモリ・プールの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- fblkcnt
固定長メモリ・プールから獲得可能な空き固定長メモリ・ブロックの総数が格納されます。
- mpfatr
固定長メモリ・プールの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: 固定長メモリ・ブロックの獲得要求を行った順
TA_TPRI: タスクの優先度順
【 mpfatrの構造 】
15.2.10 可変長メモリ・プール詳細情報
以下に,ref_mpl,およびiref_mplを発行する際に使用する可変長メモリ・プール詳細情報T_RMPLを示します。
なお,可変長メモリ・プール詳細情報T_RMPLの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rmpl {
         ID      wtskid;         /*待ちタスクの有無*/
         UH      RFU;            /*システム予約領域*/
         SIZE    fmplsz;         /*空き可変長メモリ・ブロックの合計サイズ*/
         UINT    fblksz;         /*空き可変長メモリ・ブロックの最大サイズ*/
         ATR     mplatr;         /*属性*/
         ID      memid;          /*システム予約領域*/
 } T_RMPL;

以下に,可変長メモリ・プール詳細情報T_RMPLの詳細を示します。
- wtskid
可変長メモリ・プールの待ちキューにタスクがキューイングされているか否かが格納されます。
TSK_NONE: 待ちキューにタスクはキューイングされていない
その他: 待ちキューの先頭にキューイングされているタスクのID
- fmplsz
可変長メモリ・プールから獲得可能な空き可変長メモリ・ブロックの合計サイズ(単位:バイト)が格納されます。
- fblksz
可変長メモリ・プールから獲得可能な空き可変長メモリ・ブロックの最大サイズ(単位:バイト)が格納されます。
- mplatr
可変長メモリ・プールの属性(キューイング方式)が格納されます。
タスク・キューイング方式(ビット0)
TA_TFIFO: 可変長メモリ・ブロックの獲得要求を行った順
TA_TPRI: タスクの優先度順
【 mplatrの構造 】
15.2.11 システム時刻情報
以下に,set_timiset_timget_tim,およびiget_timを発行する際に使用するシステム時刻情報SYSTIMを示します。
なお,システム時刻情報SYSTIMの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\types.hで行われています。
 
 typedef struct  t_systim {
         UW      ltime;          /*システム時刻(下位32ビット)*/
         UH      utime;          /*システム時刻(上位16ビット)*/
         UH      RFU;            /*システム予約領域*/
 } SYSTIM;

以下に,システム時刻情報SYSTIMの詳細を示します。
- ltime
システム時刻(単位:ミリ秒)の下位32ビットが格納されます。
- utime
システム時刻(単位:ミリ秒)の上位16ビットが格納されます。
15.2.12 周期ハンドラ詳細情報
以下に,ref_cyc,およびiref_cycを発行する際に使用する周期ハンドラ詳細情報T_RCYCを示します。
なお,周期ハンドラ詳細情報T_RCYCの定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\packet.hで行われています。
 
 typedef struct  t_rcyc {
         STAT    cycstat;        /*現在状態*/
         UH      RFU1;           /*システム予約領域*/
         RELTIM  lefttim;        /*残り時間*/
         ATR     cycatr;         /*属性*/
         UH      RFU2;           /*システム予約領域*/
         RELTIM  cyctim;         /*起動周期*/
         RELTIM  cycphs;         /*初期起動位相*/
 } T_RCYC;

以下に,周期ハンドラ詳細情報T_TCYCの詳細を示します。
- cycstat
周期ハンドラの現在状態が格納されます。
TCYC_STP: 停止状態(STP状態)
TCYC_STA: 動作状態(STA状態)
- lefttim
周期ハンドラが次に起動するまでの残り時間(単位:ミリ秒)が格納されます。
- cycatr
周期ハンドラの属性(記述言語,初期起動状態など)が格納されます。
周期ハンドラの記述言語(ビット0)
TA_HLNG: C言語
TA_ASM: アセンブリ言語
周期ハンドラの初期起動状態(ビット1)
TA_STA: 動作状態(STA状態)
起動位相保存の有無(ビット2)
TA_PHS: 保存
【 cycatrの構造 】
- cyctim
周期ハンドラの起動周期(単位:ミリ秒)が格納されます。
- cycphs
周期ハンドラの初期起動位相(単位:ミリ秒)が格納されます。
なお,RI850V4における初期起動位相は,周期ハンドラの生成処理が完了してから1回目の起動要求が発行されるまでの相対時間間隔を意味しています。
15.3 マ ク ロ
RI850V4が提供するサービス・コールを発行する際に使用するマクロ(管理オブジェクトの現在状態,処理プログラムの属性など)について以下に示します。
15.3.1 管理オブジェクトの現在状態
以下に,サービス・コール(ref_tskref_semなど)の発行により獲得される各種管理オブジェクトの現在状態一覧を示します。
なお,現在状態のマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\option.hで行われています。
表15-2  管理オブジェクトの現在状態
マクロ

意味
TTS_RUN
0x01
RUNNING状態
TTS_RDY
0x02
READY状態
TTS_WAI
0x04
WAITING状態
TTS_SUS
0x08
SUSPENDED状態
TTS_WAS
0x0c
WAITING-SUSPENDED状態
TTS_DMT
0x10
DORMANT状態
TCYC_STP
0x00
停止状態(STP状態)
TCYC_STA
0x01
動作状態(STA状態)
TTW_SLP
0x0001
slp_tsk,またはtslp_tskによる起床待ち状態
TTW_DLY
0x0002
dly_tskによる時間経過待ち状態
TTW_SEM
0x0004
wai_sem,またはtwai_semによる資源獲得待ち状態
TTW_FLG
0x0008
wai_flg,またはtwai_flgによるイベントフラグ待ち状態
TTW_SDTQ
0x0010
snd_dtq,またはtsnd_dtqによるデータ送信待ち状態
TTW_RDTQ
0x0020
rcv_dtq,またはtrcv_dtqによるデータ受信待ち状態
TTW_MBX
0x0040
rcv_mbx,またはtrcv_mbxによるメッセージ受信待ち状態
TTW_MTX
0x0080
loc_mtx,またはtloc_mtxによるミューテックス待ち状態
TTW_MPF
0x2000
get_mpf,またはtget_mpfによる固定長メモリ・ブロック獲得待ち状態
TTW_MPL
0x4000
get_mpl,またはtget_mplによる可変長メモリ・ブロック獲得待ち状態
TSK_NONE
0
タスクはキューイングされていない

15.3.2 処理プログラムの属性
以下に,サービス・コール(ref_tskref_cycなど)の発行により獲得される各種処理プログラムの属性一覧を示します。
なお,属性のマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\option.hで行われています。
表15-3  処理プログラムの属性
マクロ

意味
TA_HLNG
0x0000
C言語
TA_ASM
0x0001
アセンブリ言語
TA_ACT
0x0002
READY状態
TA_DISPREEMPT
0x4000
DORMANT状態からREADY状態へと遷移した際には,受け付け禁止状態
TA_ENAINT
0x0000
DORMANT状態からREADY状態へと遷移した際には,受け付け禁止状態
TA_DISINT
0x8000
DORMANT状態からREADY状態へと遷移した際には,受け付け禁止状態
TA_STA
0x0002
動作状態(STA状態)
TA_PHS
0x0004
保存

15.3.3 管理オブジェクトの属性
以下に,サービス・コール(ref_semref_flgなど)の発行により獲得される各種管理オブジェクトの属性一覧を示します。
なお,属性のマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\option.hで行われています。
表15-4  管理オブジェクトの属性
マクロ

意味
TA_TFIFO
0x0000
要求を行った順
TA_TPRI
0x0001
タスクの優先度順
TA_WSGL
0x0000
1個
TA_WMUL
0x0002
複数
TA_CLR
0x0004
ビット・パターンをクリア
TA_MFIFO
0x0000
要求を行った順
TA_MPRI
0x0002
メッセージの優先度順

15.3.4 サービス・コールの動作モード
以下に,サービス・コール(act_tskwup_tskなど)を発行する際に使用する各種サービス・コールの動作モード一覧を示します。
なお,動作モードのマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\option.hで行われています。
表15-5  サービス・コールの動作モード
マクロ

意味
TSK_SELF
0
自タスク
TPRI_INI
0
初期優先度
TMO_FEVR
-1
永久待ち
TMO_POL
0
ポーリング
TWF_ANDW
0x00
AND待ち
TWF_ORW
0x01
OR待ち
TPRI_SELF
0
自タスクの現在優先度

15.3.5 戻 り 値
以下に,サービス・コールからの戻り値一覧を示します。
なお,戻り値のマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\error.h,およびoption.hで行われています。
表15-6  戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_NOSPT
-9
未サポートの機能である
E_RSFN
-10
コンフィギュレーション時に使用するサービス・コールとして定義されていない
E_RSATR
-11
属性の指定が不正である
E_PAR
-17
パラメータの指定が不正である
E_ID
-18
IDの指定が不正である
E_CTX
-25
サービス・コールの発行状態が不正(コンテキスト・エラー)である
E_ILUSE
-28
サービス・コールの使用方法が不正である
E_NOMEM
-33
メモリ領域が確保できない
E_OBJ
-41
管理オブジェクトの状態が不正である
E_NOEXS
-42
管理オブジェクトが生成されていない
E_QOVR
-43
カウンタがオーバフローした
E_RLWAI
-49
rel_wai,またはirel_waiの発行により,WAITING状態を強制的に解除された
E_TMOUT
-50
待ち時間が経過した
FALSE
0

TRUE
1


15.3.6 構成定数
以下に,構成定数の一覧を示します。
なお,構成定数のマクロ定義は,標準ヘッダ・ファイル<ri_root>\include\kernel.h,およびITRON仕様共通マクロ定義ファイル<ri_root>\include\itron.hから呼び出されるヘッダ・ファイル<ri_root>\include\os\component.hで行われています。ただし,一部数値が可変なマクロ定義に関しては,システム・コンフィギュレーション・ファイルの設定内容にしたがい,システム情報ヘッダ・ファイルで行われています。
表15-7  優先度範囲
マクロ
数値
意味
TMIN_TPRI
1
タスク優先度の最小値
TMAX_TPRI
可変
タスク優先度の最大値
TMIN_MPRI
1
メッセージ優先度の最小値
TMAX_MPRI
0x7fff
メッセージ優先度の最大値

表15-8  バージョン情報
マクロ
数値
意味
TKERNEL_MAKER
0x011b
カーネルのメーカー・コード
TKERNEL_PRID
0x0000
カーネルの識別番号
TKERNEL_SPVER
0x5403
ITRON仕様のバージョン番号
TKERNEL_PRVER
0x02xx
カーネルのバージョン番号

表15-9  キューイング数の最大値
マクロ
数値
意味
TMAX_ACTCNT
127
タスク起動要求キューイング数の最大値
TMAX_WUPCNT
127
タスク起床要求キューイング数の最大値
TMAX_SUSCNT
127
サスペンド要求キューイング数の最大値

表15-10  ビット・パターンのビット数
マクロ
数値
意味
TBIT_FLGPTN
32
イベントフラグのビット数

表15-11  基本クロック周期
マクロ
数値
意味
TIC_NUME
可変
基本クロック周期(単位:ミリ秒)の分子
TIC_DENO
1
基本クロック周期(単位:ミリ秒)の分母

15.4 条件コンパイル用マクロ
RI850V4のヘッダ・ファイルは以下のマクロにより条件コンパイルされます。
RI850V4のヘッダ・ファイルをインクルードしているソース・ファイルをビルドする際に,
使用する環境にあわせて以下のマクロを定義(コンパイラの-D起動オプションなど)してください。
表15-12  条件コンパイル用マクロ
分類
マクロ
内容
コンパイラ・パッケージ
__rel__
CC-RHを使用。
relの前後にアンダーバーが二つ必要です。
__ghs__
CCV850を使用。
ghsの前後にアンダーバーが二つ必要です。
記述言語
__asm__
アセンブリ言語。
asmの前後にアンダーバーが二つ必要です。