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

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

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

13.4.1 タスク情報

タスク情報では,

1 ) タスク名tskid

2 ) 属性(記述言語,初期起動状態,初期割り込み状態)tskatr

3 ) 拡張情報exinf

4 ) 起動アドレスtask

5 ) 初期優先度itskpri

6 ) スタック・サイズstksz

7 ) システム予約領域stk

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

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

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

 
 CRE_TSK ( tskid, { tskatr, exinf, task, itskpri, stksz, stk } );


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

1 ) タスク名tskid

タスクの名前を指定します。
なお,tskidとして指定可能な値は,“オブジェクト名”に限られます。


備考 CF78V4では,タスク名とIDの対応を以下に示した形式でシステム情報ヘッダ・ファイルに出力します。このため,処理プログラム内で該当システム情報ヘッダ・ファイルをインクルードすることにより,タスク名をIDの代わりに利用することが可能となります。

【 システム情報ヘッダ・ファイル(C言語用)への出力形式 】

 #define tskid   ID
 

【 システム情報ヘッダ・ファイル(アセンブリ言語用)への出力形式 】

 tskid   .EQU    ID
 

2 ) 属性(記述言語,初期起動状態,初期割り込み状態)tskatr

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


【 タスクの記述言語 】

TA_HLNG: C言語

TA_ASM: アセンブリ言語

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

TA_ACT: READY状態

【 タスクの初期割り込み状態 】

TA_ENAINT: マスカブル割り込みの受け付けを許可

TA_DISINT: マスカブル割り込みの受け付けを禁止

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

備考2 TA_ENAINT,および,TA_DISINTの指定を省略した場合,初期割り込み状態は“受け付け許可状態”となります。

3 ) 拡張情報exinf

タスクの拡張情報を指定します。
なお,exinfとして指定可能な値は,“0〜1048575,またはC言語で記述する際のシンボル名”に限られます。


備考 exinfは,タスクをact_tsk,またはiact_tskで起動した際,起動コードとして対象タスクに引き渡されます。したがって,対象タスクは,exinfを関数パラメータと同様に取り扱うことで操作することができます。

4 ) 起動アドレスtask

タスクの起動アドレスを指定します。
なお,taskとして指定可能な値は,“C言語で記述する際のシンボル名”に限られます。


備考1 以下のようにタスクをC言語で記述した場合,本項目で指定する値は,“func_task”となります。

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

備考2 以下のようにタスクをアセンブリ言語で記述した場合,本項目で指定する値は,“func_task”となります。

 $INCLUDE        (kernel.inc)
 $INCLUDE        (kernel_id.inc)
 
         .PUBLIC  _func_task
         .SECTION .text, TEXT
 _func_task:
         PUSH    BC
         PUSH    AX
 
         ............
         ............
 
         BR      !!_ext_tsk
 

5 ) 初期優先度itskpri

タスクの初期優先度を指定します。
なお,itskpriとして指定可能な値は,“1〜優先度範囲maxtpri”に限られます。


6 ) スタック・サイズstksz

タスクのスタック・サイズ(単位:バイト)を指定します。
なお,stkszとして指定可能な値は,“0〜65534の2バイト境界値”に限られます。


備考1 タスク・スタックの割り付け先は,“.kernel_stackセクション”となります。

備考2 タスクのスタック・サイズの見積もりについては,「13.5.2 タスクのスタック・サイズ」を参照してください。

7 ) システム予約領域stk

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