第2章 システム構築
- 周期ハンドラ
一定の時間(起動周期)を単位として周期的に起動される周期処理専用ルーチンです。
なお,RI78V4では,周期ハンドラを“非タスク(タスクとは独立したもの)”として位置づけています。このため,起動周期に達した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,周期ハンドラに制御が移ります。
一定の時間(起動周期)を単位として周期的に起動される周期処理専用ルーチンです。
なお,RI78V4では,周期ハンドラを“非タスク(タスクとは独立したもの)”として位置づけています。このため,起動周期に達した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,周期ハンドラに制御が移ります。
- 割り込みハンドラ
割り込みが発生した際に起動される割り込み処理専用ルーチンです。
なお,RI78V4では,割り込みハンドラを“非タスク(タスクとは独立したもの)”として位置づけています。このため,割り込みが発生した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,割り込みハンドラに制御が移ります。
割り込みが発生した際に起動される割り込み処理専用ルーチンです。
なお,RI78V4では,割り込みハンドラを“非タスク(タスクとは独立したもの)”として位置づけています。このため,割り込みが発生した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,割り込みハンドラに制御が移ります。
RI78V4に提供するデータを保持した情報ファイル(システム情報テーブル・ファイル,システム情報ヘッダ・ファイル,割り込み情報定義ファイル)を生成する際に必要となるシステム・コンフィギュレーション・ファイルを記述します。
- 割り込みエントリ処理
割り込みが発生した際にCPUが強制的に制御を移すベクタ・テーブル・アドレスに該当処理(割り込みハンドラ,ブート処理など)への分岐命令を割り付けるために割り込み管理機能から切り出されたエントリ処理専用ルーチンです。
割り込みが発生した際にCPUが強制的に制御を移すベクタ・テーブル・アドレスに該当処理(割り込みハンドラ,ブート処理など)への分岐命令を割り付けるために割り込み管理機能から切り出されたエントリ処理専用ルーチンです。
備考2 割り込みハンドラをC言語で記述(システム・コンフィギュレーション・ファイルの割り込みハンドラ定義(DEF_INH)にてTA_HLNG属性を指定)する場合,Cコンパイラが“割り込み要求名に対応した割り込みエントリ処理”を自動的に出力するため,ユーザが割り込みエントリ処理を記述する必要はありません。
- ブート処理
RI78V4が処理を実行するうえで必要となる最低限のハードウエアを初期化するためにシステム構成管理機能から切り出された初期化処理専用ルーチンであり,リセット割り込みが発生した際にCPUが強制的に制御を移すベクタ・テーブル・アドレスに割り付けられた割り込みエントリ処理から呼び出されます。
RI78V4が処理を実行するうえで必要となる最低限のハードウエアを初期化するためにシステム構成管理機能から切り出された初期化処理専用ルーチンであり,リセット割り込みが発生した際にCPUが強制的に制御を移すベクタ・テーブル・アドレスに割り付けられた割り込みエントリ処理から呼び出されます。
- 初期化ルーチン
ユーザの実行環境に依存したハードウエア(周辺コントローラなど)を初期化するためにシステム構成管理機能から切り出された初期化処理専用ルーチンであり,カーネル初期化部から呼び出されます。
ユーザの実行環境に依存したハードウエア(周辺コントローラなど)を初期化するためにシステム構成管理機能から切り出された初期化処理専用ルーチンであり,カーネル初期化部から呼び出されます。
- アイドル・ルーチン
CPUが提供しているスタンバイ機能を有効活用(低消費電力システムの実現)するためにスケジューリング機能から切り出されたアイドル処理専用ルーチンであり,RI78V4のスケジューリング対象となるタスク(RUNNING状態,またはREADY状態のタスク)がシステム内に1つも存在しなくなった際にスケジューラから呼び出されます。
CPUが提供しているスタンバイ機能を有効活用(低消費電力システムの実現)するためにスケジューリング機能から切り出されたアイドル処理専用ルーチンであり,RI78V4のスケジューリング対象となるタスク(RUNNING状態,またはREADY状態のタスク)がシステム内に1つも存在しなくなった際にスケジューラから呼び出されます。
備考1 .kernel_work0,.kernel_work1,.kernel_work2,.kernel_work3については,データ・キュー情報,または固定長メモリ・プール情報で該当セクション名の指定が行われた場合に限り必要となります。
備考3 セクション開始アドレスで指定するセクション名は,RI78V4を使用したCS+環境では自動的に設定されます。開始アドレスを変更したい場合は,リンカの設定で変更してください。リンカの設定についての詳細は,「CS+ RL78ビルド編」を参照してください。
kindnum: OS資源に関する5種類の情報(セマフォ情報,イベントフラグ情報,データ・キュー情報,メールボックス情報,固定長メモリ・プール情報,周期ハンドラ情報)のうち,システム・コンフィギュレーション・ファイルに定義されている種類の総数
data = align2 ( maxtpri+1 )+align2 { ( tsknum×24 )+( semnum×2 )+1 }+align2 ( flgnum×3 )+align2 { ( dtqnum×4 )+1 }+( mbxnum×8 )+align2 ( primbx )+( mpfnum×4 )+( cycnum×8 )+20
data = align2 ( maxtpri+1 )+( tsknum×24 )+align2 ( flgnum×3 )+align2 { ( dtqnum×4 )+1 }+( mbxnum×8 )+align2 ( primbx )+( mpfnum×4 )+( cycnum×8 )+20
「2.2 処理プログラムの記述」から「2.5 セクションの開始アドレスの指定」で作成されたファイル群,トレース情報ファイル,および,RI78V4やCコンパイラ・パッケージが提供しているライブラリ・ファイルに対して,CS+上でビルドを実行し,ロード・モジュールを生成します。
備考 システム・コンフィギュレーション・ファイル名の拡張子は,“cfg”を指定してください。
拡張子が異なる場合は,“cfg”が自動的に付加されます(例えば,ファイル名に“aaa.c”を指定した場合,“aaa.c.cfg”となります)。
拡張子が異なる場合は,“cfg”が自動的に付加されます(例えば,ファイル名に“aaa.c”を指定した場合,“aaa.c.cfg”となります)。
備考1 プロジェクト・ツリー パネルにシステム・コンフィギュレーション・ファイルを追加すると,リアルタイムOS生成ファイル・ノードが表示されます。
リアルタイムOS生成ファイル・ノードには,以下の情報ファイルが表示されます。ただし,この時点では,これらのファイルは生成されません。
リアルタイムOS生成ファイル・ノードには,以下の情報ファイルが表示されます。ただし,この時点では,これらのファイルは生成されません。
備考3 システム・コンフィギュレーション・ファイルは,プロジェクトに複数追加することができますが,有効となるのは最初に追加したファイルです。有効なファイルをプロジェクトから外しても,追加済みのファイルは有効にならないため,再度ファイルを追加してください。
プロパティ パネルの[タスク・アナライザ]タブで,RI78V4が提供しているユーティリティ・ツール“タスク・アナライザ・ツール”を利用して処理プログラムの実行履歴(トレース・データ)を解析する際に必要となる情報を設定します。