/* * rx_ifアプリケーションのシステムコンフィギュレーションファイル */ #define _MACRO_ONLY #include "framework.h" INCLUDE("\"framework.h\""); /* * 割り込みハンドラの宣言 */ /* SPORT0 受信割り込みハンドラの登録 */ DEF_INH( INHNO_SPORT0_RX, /* ハンドラが応答する割り込みの名前 */ { TA_HLNG, sport0_rx_int_handler /* ハンドラの関数実体 */ } ); /* SPORT0 送信割り込みハンドラの登録 */ DEF_INH( INHNO_SPORT0_TX, /* ハンドラが応答する割り込みの名前 */ { TA_HLNG, sport0_tx_int_handler /* ハンドラの関数実体 */ } ); /* * ペリフェラルの初期化。カーネルがマルチタスク状態に入る前に行われる。 */ ATT_INI( { TA_HLNG, 0, /* 特に引数は渡さない */ init_peripherals /* 初期化子の関数名。kernel_start()から一度だけ呼ばれる */ } ); /* * RX-IFを受信して復調するタスク。最初からアクティブだが、TASK_AFのほうが * 優先順位が高いので、TASK_AFが待ち状態になるまでこちらは走らない。 */ CRE_TSK( TASK_RX_IF, /* ITRON APIで使うハンドル */ { TA_HLNG|TA_ACT, /* タスク状態は最初からActive */ 0, /* 特に渡す引数はない */ rx_if_task, /* タスク本体となる関数名 */ TASK_PRIORITY_RX_IF, /* タスク実行優先順位 */ STACK_SIZE_RX_IF, /* タスクスタックのサイズ[Byte] */ NULL /* タスクスタックはシステムが用意する */ } ); /* * AF信号をSPORT送信DMAに渡すタスク。 */ CRE_TSK( TASK_AF, /* ITRON APIで使うハンドル */ { TA_HLNG|TA_ACT, /* タスク状態は最初はInactive */ 0, /* 特に渡す引数はない */ af_task, /* タスク本体となる関数名 */ TASK_PRIORITY_AF, /* タスク実行優先順位 */ STACK_SIZE_AF, /* タスクスタックのサイズ[Byte] */ NULL /* タスクスタックはシステムが用意する */ } ); /* * モニタタスク。 */ CRE_TSK( TASK_MONITOR, /* ITRON APIで使うハンドル */ { TA_HLNG|TA_ACT, /* タスク状態は最初はInactive */ 0, /* 特に渡す引数はない */ monitor_task, /* タスク本体となる関数名 */ TASK_PRIORITY_MONITOR, /* タスク実行優先順位 */ STACK_SIZE_MONITOR, /* タスクスタックのサイズ[Byte] */ NULL /* タスクスタックはシステムが用意する */ } ); /* * SPORT0の割り込み通知用セマフォ */ CRE_SEM( SEM_SPORT0_RX, /* SPORT0 受信割り込み通知用セマフォ */ { TA_TPRI, /* タスクプライオリティに従う */ 0, /* 初期値は0なので、割り込みハンドラがsignalするまでタスクは待ち状態になる */ 1 /* 最大値は1。signalがどんどん正に増えていくのは異常状態なので考慮しない */ } ); CRE_SEM( SEM_SPORT0_TX, /* SPORT0 送信割り込み通知用セマフォ */ { TA_TPRI, /* タスクプライオリティに従う */ 0, /* 初期値は0なので、割り込みハンドラがsignalするまでタスクは待ち状態になる */ 1 /* 最大値は1。signalがどんどん正に増えていくのは異常状態なので考慮しない */ } ); /* * TASK_AF、TASK_RX_IF間のデータキュー。 * デコード済みデータの受け渡し用。 */ CRE_DTQ( DTQ_AF, /* デコード済みAFデータ受け渡しキュー */ { TA_TFIFO, /* 送信キューイングは送信順(このアプリではなんの影響もない) */ AF_QUESIZE, /* キューのサイズ */ NULL /* キュー用のメモリ領域はシステムが用意する */ } ); #include "kernel/systask/timer.cfg" #include "kernel/systask/serial.cfg" #include "kernel/systask/logtask.cfg"