--- /dev/null
+------------------------------------------------------------------------------
+ Hyper Operating System V4 Advance --μITRON4.0仕様OS
+ カーネル ドキュメント
+
+ Copyright (C) 1998-2007 by Project HOS
+ http://sourceforge.jp/projects/hos/
+------------------------------------------------------------------------------
+
+
+(注意)
+ 現時点では未実装の機能も含みます。
+
+
+
+1. 概要
+
+ 本ドキュメントは Hyper Operating System V4 Advance (以下 HOS-V4a)の
+カーネルについての説明を記載します。
+
+
+2. カーネルのビルド
+
+ kernel/build ディレクトリの下に、各ターゲットプロセッサ毎に
+ビルド環境を用意しています。
+ 現時点では、環境は GNU make 系のみ用意しております。
+ 近年では、Windows系 及び UNIX系 どちらでも GNU make が利用可能に
+なってきておりますので、別途入手をお願いします。
+ 将来的には nmake などその他の環境も考慮に入れたいと考えています。
+
+ ターゲットプロセッサのディレクトリで
+
+ make -f gmake.mak
+
+ など、と実行すれば、カーネルライブラリが出来上がります。
+
+
+3. カーネルの使い方
+
+ HOS-V4aカーネルは、ユーザーアプリケーションにライブラリを
+リンクする形で利用します。
+ ライブラリ形式での提供ですので、スタートアップルーチンや
+割込みベクタテーブルなどは、サンプル等を参考に、ユーザー側で
+準備する必要があります。
+ これにコンフィギュレータ(h4acfg.txt参照)にて、作成した
+kernel_cfg.c をコンパイルしてリンクすることで HOSのAPIが
+利用可能となります。
+
+ ユーザーアプリケーションをコンパイルする場合には、
+ kernel/include にインクルードパスを指定しておく必要があります。
+ 利用するコンパイラの仕様にしたがって、インクルードパスを
+適切に設定してください。
+
+
+4. HOS-V4a独自API
+
+ HOS-V4aはμITRON4.0仕様準拠のAPIの他に、独自のAPIを備えています。
+ μITRON4.0仕様では、実装依存APIは vxxx_xxx の形で提供することと
+定めており、HOS-V4a の独自APIもこの形式を取ります。
+
+
+4.1 カーネルの起動
+ 【API】
+ ER vsta_knl(void);
+
+ 【機能】
+ カーネル動作を開始します。
+ ハードウェア初期化やライブラリ初期化など、C言語の前処理が終わった後に
+ 呼び出してください。
+
+
+4.2 割込み要因のクリア
+ 【API】
+ ER vclr_int(INTNO intno);
+
+ 【機能】
+ 割込みコントローラ(IRC)に、割込み要因の保留&クリア機構があった場合に、
+ intnoで指定した割込み番号の割込み要因クリアを行います。
+
+ 【補足】
+ ターゲット依存である為、提供されないプロセッサも存在します。
+
+ 本APIはIRCに割込み要因の保留があった場合に適用されるもので、周辺
+ デバイス側の割込み要因をクリアするものではないので注意が必要です。
+
+ 割込みサービスルーチン(ISR)は1つの定割込み番号に複数のサービスを
+ 登録することも可能である為、適切なタイミングでクリアしてください。
+ 一般的にはエッジトリガの割込み(発生時のみトリガが起こる)では、
+ 割込み処理の前にクリア、レベル割込み(割込み要因が解決するまで割込み
+ 信号が消えない)では割込み処理の後にクリアします。
+
+
+4.3 割込みレベル変更
+ 【API】
+ ER vchg_ilv(INTNO intno, INT ilv);
+
+ 割込みコントローラ(IRC)に、割込み要因毎に割込み優先レベル設定が
+ あった場合に、intnoで指定した割込み番号の割込み優先レベルをilvに
+ 設定します。
+
+ 【補足】
+ ターゲット依存である為、提供されないプロセッサも存在します。
+ 本APIはIRCに割込みレベル機能があった場合に適用されるものです。
+
+
+4.4 割込みレベル取得
+ 【API】
+ ER vget_ilv(INTNO intno, INT *p_ilv);
+
+ 割込みコントローラ(IRC)に、割込み要因毎に割込み優先レベル設定が
+ あった場合に、intnoで指定した割込み番号の現在の割込み優先レベルを
+ p_ilv の指すアドレスに格納します。
+
+ 【補足】
+ ターゲット依存である為、提供されないプロセッサも存在します。
+ 本APIはIRCに割込みレベル機能があった場合に適用されるものです。
+
+
+
+
+
+------------------------------------------------------------------------------
+ end of file
+------------------------------------------------------------------------------