第2章 システム構築
RI850V4に提供するデータを保持した情報ファイル(システム情報テーブル・ファイル,システム情報ヘッダ・ファイル,エントリ・ファイル)を生成する際に必要となるシステム・コンフィギュレーション・ファイルを記述します。
- 周期ハンドラ
一定の時間が経過した際に起動される周期処理専用ルーチンです。
なお,RI850V4では,周期ハンドラを“タスクとは独立したもの(非タスク)”として位置づけています。このため,一定の時間が経過した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,周期ハンドラに制御が移ります。
一定の時間が経過した際に起動される周期処理専用ルーチンです。
なお,RI850V4では,周期ハンドラを“タスクとは独立したもの(非タスク)”として位置づけています。このため,一定の時間が経過した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,周期ハンドラに制御が移ります。
- 割り込みハンドラ
EIレベル・マスカブル割り込みが発生した際に起動される割り込み処理専用ルーチンです。
なお,RI850V4では,割り込みハンドラを“タスクとは独立したもの(非タスク)”として位置づけています。このため,EIレベル・マスカブル割り込みが発生した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,割り込みハンドラに制御が移ります。
EIレベル・マスカブル割り込みが発生した際に起動される割り込み処理専用ルーチンです。
なお,RI850V4では,割り込みハンドラを“タスクとは独立したもの(非タスク)”として位置づけています。このため,EIレベル・マスカブル割り込みが発生した際には,システム内で最高優先度を持つタスクが処理を実行中であっても,その処理は中断され,割り込みハンドラに制御が移ります。
- 拡張サービス・コール・ルーチン
ユーザ定義の関数をRI850V4に登録したものであり,RI850V4が提供するサービス・コール(cal_svc,またはical_svc)を使用して明示的に呼び出さない限り実行されることのない処理プログラムです。
なお,RI850V4では,拡張サービス・コール・ルーチンを“拡張サービス・コール・ルーチンを呼び出した処理プログラムの延長線”として位置づけています。
ユーザ定義の関数をRI850V4に登録したものであり,RI850V4が提供するサービス・コール(cal_svc,またはical_svc)を使用して明示的に呼び出さない限り実行されることのない処理プログラムです。
なお,RI850V4では,拡張サービス・コール・ルーチンを“拡張サービス・コール・ルーチンを呼び出した処理プログラムの延長線”として位置づけています。
RI850V4では,さまざまな実行環境に対応するために,RI850V4が処理を実行するうえで必要となるハードウエア依存処理,およびRI850V4が処理を実行するうえで必要なる各種情報をユーザ・オウン・コーディング部として切り出しています。
- オーバフロー後処理
RI850V4,および処理プログラム内でスタックがオーバフローした際に呼び出されるオーバフロー処理の後処理用にユーザ・オウン・コーディング部として切り出された後処理専用ルーチン(関数名:_kernel_stk_overflow)であり,スタックがオーバフローした際にRI850V4から呼び出されます。なお,初期起動時の割り込み受付状態は割り込み禁止状態(プログラム・ステータス・ワード(PSW)のIDフラグに1を設定)となります。
RI850V4,および処理プログラム内でスタックがオーバフローした際に呼び出されるオーバフロー処理の後処理用にユーザ・オウン・コーディング部として切り出された後処理専用ルーチン(関数名:_kernel_stk_overflow)であり,スタックがオーバフローした際にRI850V4から呼び出されます。なお,初期起動時の割り込み受付状態は割り込み禁止状態(プログラム・ステータス・ワード(PSW)のIDフラグに1を設定)となります。
- 割り込みエントリ処理
割り込みが発生した際にCPUが強制的に制御を移すハンドラ・アドレスに対して該当処理(割り込み前処理など)への分岐処理を割り付けるためにユーザ・オウン・コーディング部として切り出されたエントリ処理専用ルーチンです。
なお,システム・コンフィギュレーション・ファイル作成時に割り込みハンドラ情報で定義されたEIレベル・マスカブル割り込みに対応した割り込みエントリ処理は,システム・コンフィギュレーション・ファイルに対してコンフィギュレータを実行することにより出力されるエントリ・ファイルに内包されています。したがって,該当EIレベル・マスカブル割り込み以外の割り込み(リセットなど)については,割り込みエントリ処理の記述が必要となります。
割り込みが発生した際にCPUが強制的に制御を移すハンドラ・アドレスに対して該当処理(割り込み前処理など)への分岐処理を割り付けるためにユーザ・オウン・コーディング部として切り出されたエントリ処理専用ルーチンです。
なお,システム・コンフィギュレーション・ファイル作成時に割り込みハンドラ情報で定義されたEIレベル・マスカブル割り込みに対応した割り込みエントリ処理は,システム・コンフィギュレーション・ファイルに対してコンフィギュレータを実行することにより出力されるエントリ・ファイルに内包されています。したがって,該当EIレベル・マスカブル割り込み以外の割り込み(リセットなど)については,割り込みエントリ処理の記述が必要となります。
- 初期化ルーチン
ユーザの実行環境に依存したハードウエア(周辺コントローラなど)を初期化するためにユーザ・オウン・コーディング部として切り出された初期化処理専用ルーチンであり,カーネル初期化部から呼び出されます。
ユーザの実行環境に依存したハードウエア(周辺コントローラなど)を初期化するためにユーザ・オウン・コーディング部として切り出された初期化処理専用ルーチンであり,カーネル初期化部から呼び出されます。
- アイドル・ルーチン
CPUが提供しているスタンバイ機能を有効活用(低消費電力システムの実現)するためにユーザ・オウン・コーディング部として切り出されたアイドル処理専用ルーチンであり,RI850V4のスケジューリング対象となるタスク(RUNNING状態,またはREADY状態のタスク)がシステム内に1つも存在しなくなった際にスケジューラから呼び出されます。
CPUが提供しているスタンバイ機能を有効活用(低消費電力システムの実現)するためにユーザ・オウン・コーディング部として切り出されたアイドル処理専用ルーチンであり,RI850V4のスケジューリング対象となるタスク(RUNNING状態,またはREADY状態のタスク)がシステム内に1つも存在しなくなった際にスケジューラから呼び出されます。
- ブート処理
RI850V4が処理を実行するうえで必要となる最低限のハードウエアを初期化するためにユーザ・オウン・コーディング部として切り出された初期化処理専用ルーチンであり,割り込みエントリ処理から呼び出されます。
RI850V4が処理を実行するうえで必要となる最低限のハードウエアを初期化するためにユーザ・オウン・コーディング部として切り出された初期化処理専用ルーチンであり,割り込みエントリ処理から呼び出されます。
備考 ユーザ・オウン・コーディング部についての詳細は,「第7章 メモリ・プール管理機能」,「第10章 割り込み管理機能」,「第12章 システム構成管理機能」,「第13章 スケジューリング機能」,「第14章 システム初期化処理」を参照してください。
トレース情報ファイル(ファイル名:trcinf.c)は,プロパティ パネル → [タスク・アナライザ]タブ → [トレース]カテゴリ → [トレース・モードの選択]で選択されたトレース・モードに対応するための処理が記述されています。したがって,ユーザが本ファイルの内容を書き換える必要はありません。
「2.2 システム・コンフィギュレーション・ファイルの記述」から「2.4 ユーザ・オウン・コーディング部の記述」で作成されたファイル群,トレース情報ファイル,およびRI850V4,コンパイラ・パッケージが提供しているライブラリ・ファイルに対して,CS+上でビルドを実行し,ロード・モジュールを生成します。
備考 システム・コンフィギュレーション・ファイル名の拡張子は,“cfg”を指定してください。
拡張子が異なる場合は,“cfg”が自動的に付加されます(例:ファイル名に“aaa.c”を指定した場合は,“aaa.c.cfg”となります)。
拡張子が異なる場合は,“cfg”が自動的に付加されます(例:ファイル名に“aaa.c”を指定した場合は,“aaa.c.cfg”となります)。
備考1 プロジェクト・ツリー パネルにシステム・コンフィギュレーション・ファイルを追加すると,リアルタイムOS生成ファイル・ノードが表示されます。
リアルタイムOS生成ファイル・ノードには,以下の情報ファイルが表示されます。ただし,この時点では,これらのファイルは生成されません。
リアルタイムOS生成ファイル・ノードには,以下の情報ファイルが表示されます。ただし,この時点では,これらのファイルは生成されません。
備考3 システム・コンフィギュレーション・ファイルは,プロジェクトに複数追加することができますが,有効となるのは最初に追加したファイルです。有効なファイルをプロジェクトから外しても,追加済みのファイルは有効にならないため,再度ファイルを追加してください。
プロパティ パネルの[システム・コンフィギュレーション・ファイル関連情報]タブで,情報ファイル(システム情報テーブル・ファイル,システム情報ヘッダ・ファイル,エントリ・ファイル)に関する詳細情報を設定します。
プロパティ パネルの[タスク・アナライザ]タブで,RI850V4が提供しているユーティリティ・ツール“タスク・アナライザ・ツール”を利用して処理プログラムの実行履歴(トレース・データ)を解析する際に必要となる情報を設定します。
RI850V4を組み込んで使用する場合,ユーザ・アプリケーションに対して下記に示すオプションの指定が必須となります。また,RI850V4が提供するヘッダ・ファイルを使用する場合は「15.4 条件コンパイル用マクロ」に記載しているオプションの指定も行ってください。