よくある質問(FAQ)

「プログラムの開始アドレス」を確認する方法を教えてください。

シミュレータについて

質問

スタートアップコマンドファイル (SS_STARTUP.txt ) へ「シミュレーション実行開始アドレス」を設定したいのですが、プログラム開始アドレス (スタートアップルーチン) が分かりません。「スタートアップルーチン」のアドレスを確認する方法を教えてください。

■スタートアップコマンドファイル (SS_STARTUP.txt ) への設定 例
set reg pc = プログラム開始アドレス ; ★ ここに設定するアドレスが不明 ★

回答

リンクマップファイル(.map)には、リンクされたファイルや関数のアドレス一覧が表示されています。このアドレス一覧から「スタートアップルーチン」のアドレスを確認することができます。

■スタートアップルーチンとは?
スタートアップルーチンとは,マイクロコントローラをリセットしたあと(main関数を実行する前)の各種初期化(H/W,RAM,etc)処理を行うプログラムのことを言います。一般的な組み込みソフトウェアには「スタートアップルーチン」が組み込まれています。
カバレッジマスターwinAMSでは、通常「スタートアップルーチン」のアドレスを「シミュレーション実行開始アドレス」として設定します。
※アプリの構成やテスト方針等の事情で「スタートアップルーチン」以外のアドレスを「シミュレーション実行開始アドレス」とする場合もあります。

下記はリンクマップファイルの事例です。

【事例1】 MPU:RL78/コンパイラ:CC-RL のリンクマップファイル

【事例2】 MPU:ARM Cortex/コンパイラ:gcc のリンクマップファイル

【事例3】 MPU:ARM Cortex/コンパイラ:armcc のリンクマップファイル