Everything

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


本章では,RI600PXが提供するサービス・コールを発行する際に使用するデータ・タイプ,マクロについて解説しています。
備考 <ri_root>は,RI600PXのインストール・フォルダを表しています。
デフォルトは,“ C:\Program Files\Renesas Electronics\CubeSuite+\RI600PX”です。
18.1 データ・タイプ
以下に,サービス・コールを発行する際に指定する各種パラメータのデータ・タイプ一覧を示します。
データ・タイプのマクロ定義は,<ri_root>\inc600\kernel.h,またはkernel.hから呼び出される<ri_root>\inc600\itron.hで行われています。
表18-1  データ・タイプ
マクロ

意味
B
signed char
符号付き8ビット整数
H
signed short
符号付き16ビット整数
W
signed long
符号付き32ビット整数
D
signed long long
符号付き64ビット整数
UB
unsigned char
符号なし8ビット整数
UH
unsigned short
符号なし16ビット整数
UW
unsigned long
符号なし32ビット整数
UD
unsigned long long
符号なし64ビット整数
VB
signed char
データ・タイプが一定しない値(8ビット)
VH
signed short
データ・タイプが一定しない値(16ビット)
VW
signed long
データ・タイプが一定しない値(32ビット)
VD
signed long long
データ・タイプが一定しない値(64ビット)
VP
void *
データ・タイプが一定しない値(ポインタ)
FP
void ( * )
処理プログラムの起動アドレス(ポインタ)
INT
signed long
符号付き32ビット整数
UINT
unsigned long
符号なし32ビット整数
BOOL
signed long
真偽値(TRUEまたはFALSE)
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_ID
signed long
エラー・コード,またはオブジェクトID
ER_UINT
signed long
エラー・コード,または符号なし32ビット整数
ER_BOOL
signed long
エラー・コード,または真偽値(TRUEまたはFALSE)
ACPTN
unsigned short
アクセス許可パターン
FLGPTN
unsigned long
イベントフラグのビット・パターン
IMASK
unsigned short
割り込みマスクレベル
TEXPTN
unsigned long
タスク例外要因

18.2 定数マ ク ロ
以下に,定数マクロ一覧を示します。
なお,定数マクロの定義は,以下のいずれかで行われています。
- <ri_root>\inc600\kernel.h
- kernel.hから呼び出される<ri_root>\inc600\itron.h
- cfg600pxが出力するシステム情報ヘッダファイルkernel_id.
本ファイルの内容は,システム・コンフィギュレーション・ファイルの定義内容によって変化します。
表18-2  定数マクロ
分類
マクロ
定義内容
定義場所
説明
一般
NULL
0
itron.h
無効ポインタ
TRUE
1
itron.h

FALSE
0
itron.h

E_OK
0
itron.h
正常終了
属性
TA_NULL
0
itron.h
オブジェクト属性を指定しない
TA_HLNG
0x0000
kernel.h
高級言語用インタフェース
TA_TFIFO
0x0000
kernel.h
タスクの待ち行列はFIFO順
TA_TPRI
0x0001
kernel.h
タスクの待ち行列はタスクの現在優先度順。ただし,同じ現在優先度のタスクの中ではFIFO順。
TA_MFIFO
0x0000
kernel.h
メッセージ・キューはFIFO順
TA_MPRI
0x0002
kernel.h
メッセージ・キューはメッセージ優先度順。ただし,同じメッセージ優先度のメッセージの中ではFIFO順。
TA_ACT
0x0002
kernel.h
タスクを生成と同時に起動
TA_WSGL
0x0000
kernel.h
イベント・フラグに複数タスクの待ちを許さない
TA_WMUL
0x0002
kernel.h
イベント・フラグに複数タスクの待ちを許す
TA_CLR
0x0004
kernel.h
待ち解除時にイベント・フラグをクリア
TA_CEILING
0x0003
kernel.h
優先度上限プロトコル
TA_STA
0x0002
kernel.h
周期ハンドラを動作状態で生成
TA_PHS
0x0004
kernel.h
周期ハンドラ位相を保存
タイム
アウト
TMO_POL
0
itron.h
ポーリング
TMO_FEVR
-1
itron.h
永久待ち
動作
モード
TWF_ANDW
0x0000
kernel.h
イベント・フラグのAND待ち
TWF_ORW
0x0001
kernel.h
イベント・フラグのOR待ち
タスク
例外
TTEX_ENA
0x0000
kernel.h
タスク例外許可状態
TTEX_DIS
0x0001
kernel.h
タスク例外禁止状態
状態
TTS_RUN
0x0001
kernel.h
RUNNING状態
TTS_RDY
0x0002
kernel.h
READY状態
TTS_WAI
0x0004
kernel.h
WAITING状態
TTS_SUS
0x0008
kernel.h
SUSPENDED状態
TTS_WAS
0x000C
kernel.h
WAITING-SUSPENDED状態
TTS_DMT
0x0010
kernel.h
DORMANT状態
TTW_SLP
0x0001
kernel.h
起床待ち状態
TTW_DLY
0x0002
kernel.h
時間経過待ち状態
TTW_SEM
0x0004
kernel.h
セマフォ資源獲得待ち状態
TTW_FLG
0x0008
kernel.h
イベント・フラグ待ち状態
TTW_SDTQ
0x0010
kernel.h
データ・キューへの送信待ち状態
TTW_RDTQ
0x0020
kernel.h
データ・キューからの受信待ち状態
TTW_MBX
0x0040
kernel.h
メールボックスからの受信待ち状態
TTW_MTX
0x0080
kernel.h
ミューテックス待ち状態
TTW_SMBF
0x0100
kernel.h
メッセージ・バッファへの送信待ち状態
TTW_RMBF
0x0200
kernel.h
メッセージ・バッファからの受信待ち状態
TTW_MPF
0x2000
kernel.h
固定長メモリ・ブロック獲得待ち待ち状態
TTW_MPL
0x4000
kernel.h
可変長メモリブ・ロック獲得待ち待ち状態
TCYC_STP
0x0000
kernel.h
周期ハンドラ非動作状態
TCYC_STA
0x0001
kernel.h
周期ハンドラ動作状態
TALM_STP
0x0000
kernel.h
アラーム・ハンドラ非動作状態
TALM_STA
0x0001
kernel.h
アラーム・ハンドラ動作状態
その他
TSK_SELF
0
kernel.h
自タスク指定
TSK_NONE
0
kernel.h
該当するタスクがない
TPRI_SELF
0
kernel.h
自タスクのベース優先度の指定
TPRI_INI
0
kernel.h
タスクの起動時優先度の指定
カーネル構成
TMIN_TPRI
1
kernel.h
タスク優先度の最小値
TMAX_TPRI
system.priority
kernel_id.h
タスク優先度の最大値
TMIN_MPRI
1
kernel.h
メッセージ優先度の最小値
TMAX_MPRI
system.message_pri
kernel_id.h
メッセージ優先度の最大値
TKERNEL_MAKER
0x011B
kernel.h
カーネルのメーカー・コード
TKERNEL_PRID
0x0004
kernel.h
カーネルの識別番号
TKERNEL_SPVER
0x5403
kernel.h
ITRON仕様のバージョン番号
TKERNEL_PRVER
0x0120
kernel.h
カーネルのバージョン番号
TMAX_ACTCNT
255
kernel.h
タスク起動要求キューイング数の最大値
TMAX_WUPCNT
255
kernel.h
タスク起床要求キューイング数の最大値
TMAX_SUSCNT
1
kernel.h
タスク強制待ち要求ネスト数の最大値
TBIT_FLGPTN
32
kernel.h
イベントフラグのビット数
TBIT_TEXPTN
32
kernel.h
タスク例外要因のビット数
TIC_NUME
system.tic_nume
kernel_id.h
基本クロック割り込み周期の分子
TIC_DENO
system.tic_deno
kernel_id.h
基本クロック割り込み周期の分母
TMAX_MAXSEM
65535
kernel.h
セマフォの最大資源数の最大値
VTMAX_DOMAIN
備考1参照
kernel_id.h
最大ドメインID
VTMAX_TSK
備考1参照
kernel_id.h
最大タスクID
VTMAX_SEM
備考1参照
kernel_id.h
最大セマフォID
VTMAX_FLG
備考1参照
kernel_id.h
最大イベントフラグID
VTMAX_DTQ
備考1参照
kernel_id.h
最大データ・キューID
VTMAX_MBX
備考1参照
kernel_id.h
最大メールボックスID
VTMAX_MTX
備考1参照
kernel_id.h
最大ミューテックスID
VTMAX_MBF
備考1参照
kernel_id.h
最大メッセージ・バッファID
VTMAX_MPF
備考1参照
kernel_id.h
最大固定長メモリ・プールID
VTMAX_MPL
備考1参照
kernel_id.h
最大可変長メモリ・プールID
VTMAX_CYH
備考1参照
kernel_id.h
最大周期ハンドラID
VTMAX_ALH
備考1参照
kernel_id.h
最大アラーム・ハンドラID
VTSZ_MBFTBL
4
kernel.h
メッセージ・バッファのメッセージ管理テーブルのサイズ(単位:バイト)
VTMAX_AREASIZE
0x10000000
kernel.h
各種領域サイズの最大値(単位:バイト)
VTKNL_LVL
system.system_IPL
kernel_id.h
カーネル割り込みマスクレベル
VTIM_LVL
clock.IPL
kernel_id.h
基本クロック用タイマ割り込み優先レベル
エラー・コード
E_SYS
-5
itron.h
システム・エラー
E_NOSPT
-9
itron.h
未サポート機能
E_RSFN
-10
itron.h
予約機能コード
E_RSATR
-11
itron.h
予約属性
E_PAR
-17
itron.h
パラメータ・エラー
E_ID
-18
itron.h
不正ID番号
E_CTX
-25
itron.h
コンテキスト・エラー
E_MACV
-26
itron.h
メモリ・アクセス違反
E_OACV
-27
itron.h
オブジェクト;アクセス違反
E_ILUSE
-28
itron.h
サービス・コール不正使用
E_NOMEM
-33
itron.h
メモリ不足
E_NOID
-34
itron.h
ID番号不足
E_OBJ
-41
itron.h
オブジェクト状態エラー
E_NOEXS
-42
itron.h
オブジェクト未生成
E_QOVR
-43
itron.h
キューイング・オーバフロー
E_RLWAI
-49
itron.h
待ち状態の強制解除
E_TMOUT
-50
itron.h
ポーリング失敗またはタイムアウト
E_DLT
-51
itron.h
待ちオブジェクトの削除
E_CLS
-52
itron.h
待ちオブジェクトの状態変化
EV_RST
-127
itron.h
オブジェクト・リセットによる待ち解除
保護
機能
拡張
TDOM_SELF
0
kernel.h
自タスクが所属するドメイン
TACP_SHARED
((1u <<
(VTMAX_DOMAIN)) -1)
kernel.h
すべてのドメインがアクセスできることを示すアクセス許可パターン
TACT_SRW
{TACP_SHARED,
TACP_SHARED,
TACP_SHARED}
kernel.h
すべてのアクセスがすべてのドメインに許可されることを示すアクセス許可ベクタ
備考2参照
TACT_SRO
{TACP_SHARED,
0,
TACP_SHARED}
kernel.h
オペランド・ライト・アクセスはすべてのドメインに禁止され,オペランド・リードアクセスおよび実行アクセスはすべてのドメインに許可されていることを示すアクセス許可ベクタ
備考2参照
TPM_READ
1
kernel.h
オペランド・リード・アクセス
TPM_WRITE
2
kernel.h
オペランド・ライト・アクセス
TPM_EXEC
4
kernel.h
実行アクセス

備考1 「20.7 最大ID(maxdefine)」を参照してください。
備考2 初期代入文の右辺にのみ記述できます。
18.3 関数マクロ
以下に,関数マクロ一覧を示します。
なお,関数マクロの定義は,以下のいずれかで行われています。
- <ri_root>\inc600\kernel.h
- kernel.hから呼び出される<ri_root>\inc600\itron.h
18.3.1 エラー・コード関連
1 ) ER MERCD ( ER ercd )
ercdのメイン・エラー・コードを返します。
2 ) ER SERCD ( ER ercd )
ercdのサブ・エラー・コードを返します。
3 ) ER ERCD ( ER mercd, ER sercd )
mercdのメイン・エラー・コードとsercdのサブ・エラー・コードからなるエラー・コードを返します。
備考 RI600PXのサービス・コールが返すエラー・コードのサブ・エラー・コードはすべて-1,メイン・エラー・コードは表18-2に記載の値です。
18.3.2 データ・キュー関連
1 ) SIZE TSZ_DTQ ( UINT dtqcnt )
データ数がdtqcntのデータ・キュー領域のサイズ(単位:バイト)を返します。
18.3.3 固定長メモリ・プール関連
1 ) SIZE TSZ_MPF ( UINT blkcnt, UINT blksz )
blkszバイトのメモリ・ブロックをblkcnt個獲得可能な固定長メモリ・プール領域のサイズ(単位:バイト)を返します。
2 ) SIZE TSZ_MPFMB ( UINT blkcnt, UINT blksz )
blkszバイトのメモリ・ブロックをblkcnt個獲得可能な固定長メモリ・プールの管理領域のサイズ(単位:バイト)を返します。
18.3.4 ドメイン関連
1 ) ATR TA_DOM ( ID domid )
domidで指定されたドメインに所属することを示すタスク属性値を返します。本マクロは,タスク生成時に指定するtskatr(タスク属性)のbit7-4を設定するために使用します。
18.3.5 アクセス許可関連
1 ) ACPTN TACP( ID domid )
domidで指定されたドメインからのみアクセス可能であることを示すアクセス許可パターンを返します。
2 ) ACVCT TACT_PRW( ID domid )
すべてのアクセス(オペランド・リード,オペランド・ライト,実行)が,domidで指定されたドメインにのみ許可されていることを示すアクセス許可ベクタを返します。
本マクロは,初期代入文の右辺にのみ記述できます。
3 ) ACVCT TACT_PRO( ID domid )
オペランド・リード・アクセスおよび実行アクセスがdomidで指定されたドメインにのみ許可され,オペランド・ライト・アクセスがすべてのドメインに禁止されていることを示すアクセス許可ベクタを返します。
本マクロは,初期代入文の右辺にのみ記述できます。
4 ) ACVCT TACT_SRPW( ID domid )
オペランド・リード・アクセスおよび実行アクセスがすべてのドメインにのみ許可され,オペランド・ライト・アクセスがdomidで指定されたドメインにのみ許可されていることを示すアクセス許可ベクタを返します。
本マクロは,初期代入文の右辺にのみ記述できます。