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