17.5.7 固定長メモリ・プール情報

固定長メモリ・プール情報では,

1 ) ID mpfid

2 ) 属性(キューイング方式)mpfatr

3 ) 全メモリ・ブロック数blkcnt

4 ) ブロック単位サイズblksz,メモリ領域名sec_nam

5 ) システム予約領域mpf

といった項目を個々の固定長メモリ・プールに対して定義します。

なお,固定長メモリ・プール情報として定義可能な数は,1つのIDに対して1個に限られます。

以下に,固定長メモリ・プール情報の記述形式を示します。

 
 CRE_MPF ( mpfid, { mpfatr, blkcnt, blksz[:sec_nam ], mpf } );


以下に,固定長メモリ・プール情報で記述する項目について示します。

1 ) ID mpfid

固定長メモリ・プールのIDを指定します。
なお,mpfidとして指定可能な値は“0x1〜0xff,または名前”に限られます。


備考 mpfidに“名前”を指定した場合,CF850V4はIDの自動割り付け処理を行います。なお,名前とIDの対応は,下記形式でシステム情報ヘッダ・ファイルに出力されます。

 #define mpfid   	数値
2 ) 属性(キューイング方式)mpfatr

固定長メモリ・プールの属性(キューイング方式)を指定します。
なお,mpfatrとして指定可能な値は“TA_TFIFO,TA_TPRIのいずれか”に限られます。


TA_TFIFO: 固定長メモリ・ブロックの獲得要求を行った順

TA_TPRI: タスクの優先度順

3 ) 全メモリ・ブロック数blkcnt

固定長メモリ・プールの全メモリ・ブロック数を指定します。
なお,blkcntとして指定可能な値は“0x1〜0x7fff”に限られます。


4 ) ブロック単位サイズblksz,メモリ領域名sec_nam

1ブロック当たりのサイズ(単位:バイト),および固定長メモリ・プール用に確保するメモリ領域の名前を指定します。
なお,blkszとして指定可能な値は“0x1〜0x7ffffffcの4バイト境界値”に,sec_namとして指定可能な値は“メモリ領域情報で定義したメモリ領域名sec_nam”に限られます。


備考 sec_namの指定を省略した場合,固定長メモリ・プール用に確保するメモリ領域は“.kernel_workセクション”となります。

5 ) システム予約領域mpf

システム予約領域です。
なお,mpfとして指定可能な値は“NULL”に限られます。