00001 #pragma once 00002 /** \file cec.h 00003 * \brief コア・イベント管理ヘッダーファイル 00004 * \author アナログ・デバイセズ株式会社 00005 * 00006 * コア・イベント・ハンドラ登録用のヘッダーファイルである。 00007 */ 00008 00009 00010 /** コア・イベント管理 00011 * 00012 * アプリケーション・プログラム用のコア・イベント管理名前空間。 00013 * Blackfinコアの各イベントに対応するイベント・ハンドラをこの名前空間 00014 * におく。通常は割込みに対応するイベント・ハンドラを置く。 00015 * 00016 * cecの中のイベント・ハンドラ内部には処理の実体をおかず、各デバイスの 00017 * サービス・ルーチンを呼ぶようにする。サービス・ルーチン内部は 00018 * 呼び出されたら自分が担当する割り込みが発生しているかを調べ、 00019 * 発生しているなら処理を行って真を返す。発生していないなら 00020 * 偽を返す。 00021 * cec内部のイベント・ハンドラ内部では 00022 * \code 00023 if ( デバイス1の割り込みサービス・ルーチン() ) 00024 return; 00025 if ( デバイス2の割り込みサービス・ルーチン() ) 00026 return; 00027 if ( デバイス3の割り込みサービス・ルーチン() ) 00028 return; 00029 * \endcode 00030 * のようにサービス・ルーチンを並べることで、同じイベント順位に複数のデバイスからの割り込みが 00031 * 同居している場合も記述を簡潔に行える 00032 */ 00033 namespace cec{ 00034 /** コア・イベント・ハンドラの登録 00035 * 00036 * cec内部のイベントハンドラをシステムに登録する 00037 */ 00038 void init(void); 00039 /** 処理の開始 00040 * 00041 * ダミー関数。何もしない。 00042 */ void start(void); 00043 }; 00044 00045