【RH850 固有】
シミュレーション実行の結果、変数の値が正しく設定されない状況が発生しています。考えられる原因を教えてください。
よくある質問(FAQ)
【RH850 固有】
シミュレーション実行の結果、変数の値が正しく設定されない状況が発生しています。考えられる原因を教えてください。
下記、RH850レジスタに正しいアドレスが設定されていない可能性があります。
GP - Global Pointer
TP - Text Pointer
EP - Elementary Pointer
RH850では、GP/TP/EPレジスタ相対のメモリアクセス命令が多用されます。これらのレジスタ値は通常テスト対象のスタートアップ処理の中で値が設定されます。 カバレッジマスターwinAMS のスタートアップコマンドファイル (SS_STARTUP.txt) で「set reg PC = ...」と設定し、テスト対象のスタートアップ処理の実行をスキップしている場合、 これらに適切な値が入らな いままシミュレーション実行されます。
この場合、スタートアップコマンドファイル (SS_STARTUP.txt) に「set reg GP = ...」等と記述して値を設定することによって問題回避できます。 ここで設定すべき値は、ビルド時に生成される「リンクマップファイル」から調べることができます。
■ GreenHills社 コンパイラの事例
.sda_start 00402498+000000 __gp
.rosda_start 00401c78+000000 __tp
.tdata ffff8000+000000 __ep
下記のコマンドで「__gp」「__tp」「__ep」のアドレスを、スタートアップコマンドファイル (SS_STARTUP.txt) に設定してください。
■ スタートアップコマンドファイル (SS_STARTUP,txt)への設定 例
set reg GP = 0x402498
set reg TP = 0x401c78
set reg EP = 0xffff8000