ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS
【質問】
RH850の環境でシミュレーションを行っていますが、テスト対象関数内で変数の値が不正になります。どのように対処したらよいですか?
【回答】
RH850のGP(Global Pointer)、TP(Text Pointer)、EP(Elementary Pointer)に正しい値が設定されていない可能性があります。
RH850では、GP/TP/EP相対でのメモリアクセス命令が多用されます。これらのレジスタ値は通常テスト対象のスタートアップ処理の中で値が設定されます。 カバレッジマスターのスタートアップコマンドファイルで「set reg PC = ...」と設定し、テスト対象のスタートアップ処理の実行をスキップしている場合、 これらに適切な値が入らないままシミュレーション実行されます。
この場合、カバレッジマスターのスタートアップコマンドファイルに「set reg GP = ...」等と記述して値を設定することによって問題回避できます。 ここで設定すべき値は、ビルド時に生成されるマップファイルから調べることができます。
例)GreenHills社様のコンパイラをご利用の場合
.sda_start | 00402498+000000 | __gp |
.rosda_start | 00401c78+000000 | __tp |
.tdata | ffff8000+000000 | __ep |
マップファイルに上記のような行があるはずですので、スタートアップコマンドファイルに
のように追記してください。