Everything
2.6.2 応用的なダウンロード方法

ダウンロードの対象となるファイル,およびダウンロード条件は変更することができます。

CS+では,次のファイルをダウンロードすることができます。

表 2.4

ダウンロード可能なファイル

ダウンロード可能なファイル

拡張子

ファイル形式

ロード・モジュール・ファイル

.abs,または制限なし注1

ロード・モジュール・フォーマット

インテル拡張ヘキサ・ファイル

.hex,.run注2

インテル拡張ヘキサ・フォーマット

モトローラ・Sタイプ・ファイル

.mot,.run注2

モトローラ・Sタイプ・フォーマット

-

S0, S1, S9-16ビット

-

S0, S2, S8-24ビット

-

S0, S3, S7-32ビット

バイナリ・ファイル

.bin

バイナリ・フォーマット

注 1.

ビルドツールがGHS CCRH850以外の場合は“.abs”のみ指定可能です。GHS CCRH850の場合は拡張子に制限はありません。

注 2.

“.run”はビルドツールがGHS CCRH850の場合のみ指定可能です。

注意

GHSコンパイラ(Green Hills Software, LLC製)使用上の注意点

-

対応コンパイラ・バージョン,対応オプション,および非対応オプション

対応コンパイラ
・バージョン

対応オプション

非対応オプション

デバッグ・オプション

-cpuオプション注1

最適化オプション

その他

リンカ最適化
オプション注3

Ver.2023.5.4

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=rh850g3mh

-cpu=rh850g3kh

-cpu=rh850g4mh

-cpu=rh850g4kh

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-rh850_abi=ghs2014

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2023.1.4

Ver.2022.1.4

Ver.2021.1.5

Ver.2020.5.5

Ver.2020.1.5

Ver.2019.5.5

Ver.2019.1.5

Ver.2018.5.5

Ver.2018.1.5

Ver.2017.5.5

Ver.2017.1.5

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=rh850g3mh

-cpu=rh850g3kh

-cpu=rh850g4mh

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-rh850_abi=ghs2014

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2016.5.5

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=rh850g3mh

-cpu=rh850g3kh

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-rh850_abi=ghs2014

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2015.1.7

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=rh850g3mh

-cpu=rh850g3kh

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2015.1.5

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2014.1.7

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Osize

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2013.5.5

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2013.1.5

-G

-dual_debug

-cpu=rh850

-cpu=rh850g3k 注2

-cpu=rh850g3m

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

Ver.2012.5.5

-G

-dual_debug

-cpu=rh850

-cpu=v850e3

-Odebug

-Ogeneralまたは-O

-Ospeed

-Onone

-Osize注4

-prepare_dispose

-callt

-shorten_loads

-shorten_moves

-delete

-codefactor

注 1.

詳細については,GHS製品のリリースノートを参照してください。

注 2.

-cpu=rh850と-cpu=rh850g3kは同義です。

注 3.

リンカによって実コードが変更され,デバッグ情報にその変更が反映されません。

注 4.

ステップ実行したのち停止時に逆アセンブル パネルが開く,またはステップ実行が終わらず実行中のままとなる場合があります。

 

-

デバッグ上の注意点

-

GHSコンパイラのロード・モジュール・ファイルを使用するには,以下の3つの方法があります。

-

デバッグ専用プロジェクトを作成し,ビルド済みのロード・モジュール・ファイルを追加する。

-

プロジェクトの種類に[空のアプリケーション(GHS CCRH850)]を指定してプロジェクトを作成し,ビルドする。

-

プロジェクトの種類に[既存のGHSプロジェクト・ファイル使用(GHS CCRH850)]を指定してプロジェクトを作成し,ビルド済みのロード・モジュール・ファイルを追加する。

 

プロジェクトの種類については,「CS+ GHS CCRH850 ビルド・ツール操作編」を参照してください。

-

ロード・モジュール・ファイルを追加する場合は,ダウンロード・ファイル ダイアログの[コンパイラベンダ]プロパティにおいて[GreenHillsSoftware]を選択してください。

-

次のプログラムのデバッグはできません。

-

C++言語

-

C99言語固有の型/修飾子を使用したプログラム

-

GNU C拡張仕様を使用したプログラム

-

ステップ,および実行関連機能について
次の関数内からのリターン・アウト実行は失敗することがあります。この場合は,コール・スタック パネルの呼び出し履歴も正しく表示されません。

-

calltで呼び出された関数

-

割り込み関数

-

式を使用した変数の参照機能について

-

long long 型,またはdouble型の変数がレジスタに割り付いて場合,ウォッチ パネルの[アドレス]エリアには下位4バイト側のレジスタ名のみ表示されます。また,この時,CS+は,上位4バイトの値を表示したレジスタの次のレジスタから値を取得します。

-

例)[アドレス]エリアに“R4”が表示されている場合,CS+は,上位4バイトの値をR5レジスタから取得します。

-

構造体型の変数がレジスタに割り付いた場合,ウォッチ パネルでは構造体メンバの値を正しく表示できません。値は[アドレス]エリアに表示したレジスタをCPUレジスタ パネルで参照してください。

-

スコープ指定付きの式を使用しても関数内に定義したスタティック変数は参照できません(PCカウンタ値が変数を定義した関数内にある場合のみ参照可能です)。

func(){
    static  sta = 100;
} 

 

上記例の場合,

func()関数をデバッグ中の場合,“sta”および“func()#sta”の両方で参照できます。

func()関数以外をデバッグ中の場合,“sta”,または“func()#sta”のどちらでも参照できません。

-

関数の先頭位置ではスタック・フレームを形成していないため,スタック渡しの引数のアドレスが正しくありません。引数の値は,関数内へステップしてから参照してください。

-

その他の機能について

-

シンボル名の入力補完機能を無効化することはできません(ダウンロード・ファイル ダイアログの[入力補完機能用の情報を生成する]項目の指定は無視されます)。

 

ダウンロード・ファイルの変更,およびその際のダウンロード条件の設定は,次のダウンロード・ファイル ダイアログにより行います。

ダウンロード・ファイル ダイアログは,プロパティ パネル[ダウンロード・ファイル設定]タブ上の[ダウンロード]カテゴリ内[ダウンロードするファイル]プロパティを選択することで欄内右端に表示される[...]ボタンをクリックするとオープンします。

図 2.15

ダウンロード・ファイル ダイアログのオープン

図 2.16

応用的なダウンロード方法(ダウンロード・ファイル ダイアログ)

 

ここでは,上記ダウンロード・ファイル ダイアログにおける,次の場合の設定方法を説明します。

 

2.6.2.1 ロード・モジュール・ファイルのダウンロード条件を変更する

2.6.2.2 ダウンロード・ファイル(*.hex/*.mot/*.bin)を追加する

2.6.2.3 複数のロード・モジュール・ファイルをダウンロードする

2.6.2.4 ロード・モジュール・フォーマット以外のファイルでソース・レベル・デバッグを行う