ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

シミュレータ実行に関する問題

114_05 : RH850の環境でシミュレーションを行っていますが、テスト対象関数内で変数の値が不正になります。

【質問】
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

マップファイルに上記のような行があるはずですので、スタートアップコマンドファイルに

;;; 例 ;;;;;;;;;;;;;;;;;;;;;
set reg GP = 0x402498
set reg TP = 0x401c78
set reg EP = 0xffff8000
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

のように追記してください。

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: RH850| GP/TP/EP

他のキーワード検索


参考情報・リンク