3. 3. 1. 1 バジェット追加プログラムの基本処理

ここで基本ブロックとはC 言語プログラムの中で分岐を持たないコードのかたまりをいいます。

これを以下のように、分岐が生じる枝ごとにターゲットマシンでの命令実行ステップ数を静的に解析し、 実行時間に相当するwait文を挿入します。


ここで基本ブロックとはC 言語プログラムの中で分岐を持たないコードのかたまりをいいます。

これを以下のように、分岐が生じる枝ごとにターゲットマシンでの命令実行ステップ数を静的に解析し、 実行時間に相当するwait文を挿入します。

バジェット追加プログラムでwait文を入れる場合、 wait文を実際に挿入するタイミングを制御するオプションがあります。 これは SystemCでのシミュレーションを高速に実行するためです。
wait文はSystemC のカーネルでコンテキスト・スイッチを起こすため、 頻繁にwait文を実行すると、シミュレーション速度の低下を招きます。 そのため、動的に実行される命令数を積算し、 命令数がある閾値を超えたら、実際のwait文を挿入する、というオプション「積算閾値モード」があります。
また、RTOS のようにコンテキスト・スイッチを限定したコード領域のみで許す場合、 人手で、wait文の挿入個所を制御できます。 その場合、「積算モード」で基本ブロックごとに命令実行数を積算しておきます。 コンテキスト・スイッチを許可する領域まできたとき、はじめて、これまで積算した命令数を考慮したwait文を発行し、積算した命令数をFlushします。
以下に、バジェット追加プログラムの処理オプションについて説明します。 詳しくは、「バジェット追加ツール for ARM (評価版) 使用手引書」 を参照してください。
登録されている選択肢からプロセッサ名を選択します。選択肢に応じて、プロセッサ詳細設定の各項目の有効・無効状態が切り替わります。
SystemCソースコードにおけるモジュール名を指定します。デフォルト値は「TimedModule」です。
必要に応じて設定します。何も指定しないことも可能です。複数指定する場合はカンマ区切りで記述します。
必要に応じてオプションを追加します。ここで指定できるオプションには次のものがあります。
Cソースをコンパイルするときに指定するインクルードファイルパスを追加指定します。
「非積算モード」「積算モード」「積算閾値モード」の中から一つを選択します。このとき、「積算閾値モード」を選択したときのみ、閾値が選択可能になります。
選択可能なときのみ書き換えることが可能になります。デフォルト値は1000です。
「使用しない」「使用する」のうち、どちらかを選択します。