17.5 静的API情報
システム・コンフィギュレーション・ファイルに記述する静的API情報の記述形式を以下に示します。

ただし,表記中のゴシック書体は予約語であることを,イタリック書体はユーザが該当する数値,シンボル名,キーワードを記述する部分であることを表しています。

また,“[ ]”で囲まれた項目は,省略可能な項目であることを表しています。

17.5.1 タスク情報

タスク情報では,

1 ) ID tskid

2 ) 属性(記述言語,初期起動状態など)tskatr

3 ) 拡張情報exinf

4 ) 起動アドレスtask

5 ) 初期優先度itskpri

6 ) スタック・サイズstksz,メモリ領域名sec_nam

7 ) システム予約領域stk

といった項目を個々のタスクに対して定義します。

なお,タスク情報として定義可能な数は,1つのIDに対して1個に限られます。

以下に,タスク情報の記述形式を示します。

 
 CRE_TSK ( tskid, { tskatr, exinf, task, itskpri, stksz[:sec_nam ], stk } );


以下に,タスク情報で記述する項目について示します。

1 ) ID tskid

タスクのIDを指定します。
なお,tskidとして指定可能な値は“0x1〜0xff,または名前”に限られます。


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

 #define tskid   	数値
2 ) 属性(記述言語,初期起動状態など)tskatr

タスクの属性(記述言語,初期起動状態など)を指定します。
なお,tskatrとして指定可能な値は“TA_HLNG,TA_ASMのいずれか,およびTA_ACT,TA_DISPREEMPT,およびTA_ENAINT,TA_DISINTのいずれか”に限られます。


【 タスクの記述言語 】

TA_HLNG: C言語

TA_ASM: アセンブリ言語

【 タスクの初期起動状態 】

TA_ACT: READY状態

【 プリエンプトの受け付け状態 】

TA_DISPREEMPT: 禁止状態

【 初期割り込み状態 】

TA_ENAINT: EIレベル・マスカブル割り込み(最大割り込み優先度maxintpri最低割り込み優先度)の受け付けを許可

TA_DISINT: EIレベル・マスカブル割り込み(最大割り込み優先度maxintpri最低割り込み優先度)の受け付けを禁止

備考1 TA_ACTの指定を省略した場合,タスクの初期起動状態は“DORMANT状態”となります。

備考2 TA_DISPREEMPTの指定を省略した場合,プリエンプトの受け付け状態は“許可状態”となります。

備考3 TA_ENAINT,およびTA_DISINTの指定を省略した場合,初期割り込み状態は“EIレベル・マスカブル割り込み(最大割り込み優先度maxintpri最低割り込み優先度)の受け付けを許可”となります。

3 ) 拡張情報exinf

タスクに引き渡す拡張情報を指定します。
なお,exinfとして指定可能な値は“0x0〜0xffffffff,またはシンボル名”に限られます。


備考 対象タスクは,exinfを関数パラメータと同様に取り扱うことで操作可能となります。

4 ) 起動アドレスtask

タスクの起動アドレスを指定します。
なお,taskとして指定可能な値は“0x0〜0xfffffffeの2バイト境界値,またはシンボル名”に限られます。


備考 タスクを以下のように記述した場合,taskに指定するシンボル名はfunc_taskになります。

 #include        <kernel.h>
 #include        <kernel_id.h>
 
 void
 func_task ( VP_INT exinf )
 {
         ............
         ............
 
         ext_tsk ( );
 }


5 ) 初期優先度itskpri

タスクの初期優先度を指定します。
なお,itskpriとして指定可能な値は“0x1〜基本情報で定義した最大タスク優先度maxtpri”に限られます。


6 ) スタック・サイズstksz,メモリ領域名sec_nam

タスク・スタックのサイズ(単位:バイト),およびタスク・スタック用に確保するメモリ領域の名前を指定します。
なお,stkszとして指定可能な値は“0x0〜0x7ffffffcの4バイト境界値”に,sec_namとして指定可能な値は“メモリ領域情報で定義したメモリ領域名sec_nam”に限られます。


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

備考2 実際に確保されるスタック・サイズは,指定したスタック・サイズにctxsz(タスクのコンテキスト領域のサイズ)が加算されたサイズです。ctxszについては,「2) タスク・スタック」を参照してください。

7 ) システム予約領域stk

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