151
平成14年6月12日 日立ソフトウェアエンジニアリング株式会社 〒231-0015 横浜市中区尾上町6丁目81番地 (045)681-2111 (大代表) SuperH RISC engine C/C++ Compiler Simulato Windows ® V7.0.03 ソフトウェア添付資料 HSK-03893

SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

平成14年6月12日

日立ソフトウェアエンジニアリング株式会社

〒231-0015 横浜市中区尾上町6丁目81番地

TEL (045)681-2111(大代表)

SuperH RISC engine

C/C++ Compiler Simulator Package

Windows®版V7.0.03

ソフトウェア添付資料

HSK-03893

Page 2: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

はじめに

今回納入致しますSuperH RISC engine C/C++ Compiler Simulator Package について説明致します。

目     次

1.記録媒体 ------------------------------------------ 1

2.インストール方法 ---------------------------------- 1

3.使用上の注意事項 ---------------------------------- 3

4.ソフトウェアマニュアル ----------------------------- 3

5.メモリ所要量及びディスク占有量 -------------------- 3

6.アップデート内容 ----------------------------------- 4

7.一時的制限事項 ------------------------------------- 4

8.マニュアル正誤表 ----------------------------------- 4

9.テクニカルサポート --------------------------------- 4

付録1-1 V7.0Bアップデート内容

  付録1-2 V7.0.01アップデート内容

付録1-3 V7.0.02アップデート内容

付録1-4 V7.0.03アップデート内容

付録2-1 ご使用上の注意事項

付録2-2 SH7055使用上の注意事項

付録2-3 SuperH RISC engine シミュレータ・デバッガ 制限事項

付録3-1 「Hitachi Embedded Workshop 2.0 HEW Builder ユーザーズマニュアル」正誤表

付録3-2 「SuperH RISC engine C/C++コンパイラ、アセンブラ、最適化リンケージエディタユーザーズマニュアル」正誤表

付録3-3 「SuperH RISC engine シミュレータ・デバッガユーザーズマニュアル」正誤表

付録3-4 Hitachi Embedded Workshop 2 更新資料(V2.0->V2.1)

All Rights Reserved, Copyright (C) 1992,2001,

Hitachi, Ltd.,

Hitachi Software Engineering Co., Ltd.,

Hitachi ULSI Systems Co., Ltd.

Page 3: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 1 -

1.記録媒体

本パッケージはCD-ROM 1枚で提供します。

本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

(Acrobat® Reader)をインストールすることができます。

AdobeおよびAcrobat® Readerはアドビシステムズ社の商標です。

2.インストール方法

2.1 インストール

 以下の手順でインストールを実行します。インストールは、実行中のアプリケーションをあらかじ

め終了させてから実行してください。なお、HEW Ver.2.1(以下 HEW2.1)は、HEW Ver.1.xとは別ディ

レクトリにインストールしてください。また、HEW Ver.1.0xで作成したプロジェクトはそのまま使え

ません。HEW Ver.1.0xで作成したプロジェクトを使う場合は、HEW1.1x用に変換(HEW1.1xでオープン

してセーブ)してからHEW2.1で使ってください。

2.1.1 統合開発環境のインストール

(1) 統合開発環境のCD-ROMをCD-ROMドライブに挿入します。(以下、仮にDドライブとします)

(2) Windows®スタートメニューの[ファイル名を指定して実行...]をクリックします。

(3) CD-ROMのルートディレクトリにあるSETUP.EXEを[ファイル名を指定して実行]ダイアログボッ

クスで指定し(例D:¥setup.exe)、[OK]をクリックします。

(4) 画面に表示されるインストールの指示に従います。

統合開発環境のインストールの注意事項:

(1) 統合開発環境は半角英数字と半角下線のみからなるディレクトリパスにインストールしてく

ださい。特に、全角文字や空白のないディレクトリパスを使用してください。

(2) HEW2.1をHitachi Integration Managerまたは、Hitachi Embedded Workshopと同じディレクト

リにインストールしないでください。

(3) Hitachi Embedded Workshop及びSuperH RISC engineシミュレータ・デバッガは各PCの

ドライブにインストールしてください。複数部数のライセンスをご購入の場合、ツールチェイ

ン、ライブラリアンインタフェース、オンラインマニュアルはネットワークドライブにインス

トール可能です。他のPCでインストールしたツールチェイン、ライブラリアンインタフェース

を自分のPCに登録する方法はHitachi EmbeddedWorkshop2.0ユーザーズマニュアル4章「ツー

ル管理」を参照してください。

(4) HEWをインストールした直後に[Hitachi Embedded Workshop 2]がWindows® スタートメニュー

の[プログラム]の中に表示されない場合はWindows®を再起動してください。

(5) インストール中にインストーラが異常終了した場合、コンピュータを再起動してから再度イン

ストールしてください。

2.1.2 Acrobat® Readerのインストール

(1) 統合開発環境のCD-ROMをCD-ROMドライブに挿入します。(以下、仮にDドライブとします)

(2) Windows®スタートメニューの[ファイル名を指定して実行...]をクリックします。

(3) CD-ROMの[PDF_Read¥Japanese]ディレクトリにあるAr505jpn.exe (日本語版)または

[PDF_Read¥English] ディレクトリにあるAr505eng.exe (英語版)を[ファイル名を指定して実

行] ダイアログボックスで指定し(例D:¥PDF_Read¥Japanese¥Ar505jpn.exe)、[OK]をクリックし

Page 4: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 2 -

ます。

(4) 画面に表示されるインストールの指示に従います。

2.2 プログラムの削除

インストールしたプログラムは以下の手順で削除します。削除は、実行中のアプリケーションをあ

らかじめ終了させてから実行してください。

2.2.1 統合開発環境の削除

(1)Windows®スタートメニューの[設定]の中にある[コントロールパネル]をクリックします。

(2) [アプリケーションの追加と削除]アイコンをダブルクリックします。

(3) [セットアップと削除]タブから[Hitachi Embedded Workshop Ver2.0]をクリックし、

 [追加 と削除]ボタンをクリックします。

(4) 画面に表示される指示に従います。

2.2.2 Acrobat® Readerの削除

(1)Windows®スタートメニューの[設定]の中にある[コントロールパネル]をクリックします。

(2) [アプリケーションの追加と削除]アイコンをダブルクリックします。

(3) [セットアップと削除]タブから[Adobe Acrobat 5.0]をクリックし、[追加と削除]ボタンをク

リックします。

(4) 画面に表示される指示に従います。

2.3 プログラムの起動または終了

2.3.1 統合開発環境の起動と終了

・ 起動:Windows®スタートメニューの[プログラム]の中にある[Hitachi Embedded Workshop 2]メ

ニュー内の[Hitachi Embedded Workshop 2]をクリックします。

・ 終了:HEWの[File]メニューの[Exit]をクリックします。

2.3.2 オンラインマニュアルおよび添付資料の参照

・ オンラインマニュアルをインストールした場合

Windows®スタートメニューの[プログラム]の中にある[Hitachi Embedded Workshop 2]メニュー

内のPDFファイルOnline Manuals [SuperH] –English(xx xx)(英語版)または

Online Manuals [SuperH] –Japanese(xx xx)(日本語版)をクリックします。(xx xxは、年月

のキーワードを表示しています)

(例 Online Manuals [SuperH] -Japanese(01 10))

・ オンラインマニュアルをインストールしていない場合

(1) 統合開発環境のCD-ROMをCD-ROMドライブに挿入します。(ここでは、仮にDドライブとしま

す)

(2) Windows®スタートメニューの[ファイル名を指定して実行...]をクリックします。

(3) CD-ROMの[Manuals]ディレクトリにある,jSH_xxxx.PDF(日本語版)またはeSH_xxxx.PDF(英

語版)(xxxxは、年月のキーワードを表示しています)を[ファイル名を指定して実行]ダイ

アログボックスで指定し(例D:¥Manuals¥jSH_0110.PDF)、[OK]をクリックします。

Page 5: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 3 -

3.使用上の注意事項

必要な機器構成は以下の通りです。

・ ホストコンピュータ:IBM PC互換機、PC-9800シリーズ機

(CPU:日本語Windows®98、Windows®Me、WindowsNT®4.0、Windows®2000またはWindows®XPが動作

するもの)

・ OS:日本語Windows®98、Windows®Me、WindowsNT®4.0、Windows®2000またはWindows®XP

・ ディスプレイ:SVGA以上

・ I/O装置:CD-ROMドライブ

・ その他:マウス等のポインティングデバイス

IBM PCは、米国IBM社により管理されている計算機の名称です。

PC-9800シリーズは、日本電気(株)により管理されている計算機の名称です。

Windows®、Windows®98、Windows®Me、WindowsNT®、Windows®2000およびWindows®XPは、米国マイクロソフト社により管

理されているオペレーティングシステムの名称です。

4.ソフトウェアマニュアル

マニュアルはCD-ROMに添付しているオンラインマニュアルを参照ください。

別途、製本マニュアル(MS001-001-70)を販売しております。

詳細については、SHCコンパイラホームページ(http://www.hitachi-sk.co.jp/Products/SH-C/Home

Page.html)をご覧ください。

5.メモリ所要量及びディスク占有量

・ メモリ容量:最低64MB、128MB以上を推奨

・ ディスク容量:統合開発環境:空き容量100MB以上(フルインストールに必要な容量)

Acrobat® Reader:空き容量10MB以上

Page 6: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 4 -

6.アップデート内容 以下の付録を参照ください。 「付録1-1 V7.0B アップデート内容」  「付録1-2 V7.0.01アップデート内容」(Windows®版)  「付録1-2 V7.0.02アップデート内容」(SPARC版/HP版)  「付録1-3 V7.0.02アップデート内容」(Windows®版)  「付録1-3 V7.0.03アップデート内容」(SPARC版/HP版)  「付録1-4 V7.0.03アップデート内容」(Windows®版)  「付録1-4 V7.0.04アップデート内容」(SPARC版/HP版)

7.一時的制限事項

以下の付録を参照ください。

「付録2-1 ご使用上の注意事項」

「付録2-2 SH7055使用上の注意事項」

「付録2-3 SuperH RISC engine シミュレータ・デバッガ 制限事項」

8.マニュアル正誤表(Windows®版)

以下の付録を参照ください。

「付録3-1 「Hitachi Embedded Workshop 2.0 HEW Builder ユーザーズマニュアル」正誤表」

「付録3-2 「SuperH RISC engine C/C++コンパイラ、アセンブラ、最適化リンケージエディタユーザーズマニュアル」正誤表」

「付録3-3 「SuperH RISC engine シミュレータ・デバッガユーザーズマニュアル」正誤表」

「付録3-4 Hitachi Embedded Workshop 2 更新資料(V2.0->V2.1)」

9.テクニカルサポート

 弊社テクニカルサポートのご利用方法について説明いたします。

 弊社テクニカルサポートはFAXおよびフリーダイヤルにてご利用いただくことができます。FA

Xは次のページ以降に添付してあるサポート依頼書をコピーしてご利用ください。送付いただいた依

頼事項について、後ほど弊社担当より回答をさしあげます。

【受付時間】 受付日 : 月曜日 ~ 金曜日 (ただし祝日を除く) 受付時間: 10:00 ~ 17:00 【問合せ先】 第4産業システム部 第1グループ SHC/C++コンパイラ テクニカルサポート係 FAX 045-681-2401 フリーダイヤル 0120-78-7750 もしくは 第3品質保証部 第2品質保証課 SHC/C++コンパイラ テクニカルサポート係 FAX 045-451-5158

 なお、E-mailによるお問い合わせの受け付け、ホームページによる情報の提供も行っており

ます。ご利用ください。

【E-mailによるお問い合わせ】

FAXの場合と同様に必要事項を明記の上、下記アドレスへお問い合わせください。

[email protected]

【SHCコンパイラホームページ】

下記アドレスにてSHC/C++コンパイラに関する情報提供を行っております。

http://www.hitachi-sk.co.jp/Products/SH-C/HomePage.html

Page 7: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 5 -

サポート依頼書製品型名 P- (リリース媒体のラベルに表示されている:P-xxxx-xxxxxx)

バージョン

製番 (使用許諾契約書に表示されている番号)

使用機種名

使用OS バージョン

(フ リ ガ ナ)

御登録社

 (者)名

所属部名

FAX番号 電話番号     (内線     )

弊社記入欄(記入しないでください。)

受付番号  分 類 担 当 者

Page 8: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 6 -

 現 象 (入力ソース、指定オプション、コンパイル結果、実行結果を詳細に記述)

-以上

Page 9: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 1 -

付録1-1

Ver.7.0Bのアップデート内容

各ツールのバージョンは、下表の通りです。

は変更ツールを示しています。

表 1 ツールバージョン一覧

Windows®版 SPARC版/HP版

HEW 2.0

シミュレータ 8.00 4.0

C/C++コンパイラ 7.0B 7.0B

標準ライブラリ構築ツール 2.0 2.0

アセンブラ 5.1 5.1

フォーマットコンバータ 1.0C 1.0C

最適化リンケージエディタ 7.1 7.1

Page 10: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 2 -

1. Hitachi Embedded Workshop (Ver. 1.2 -> Ver. 2.0) (Windows®版)

1.1 シミュレータデバッガの統合

HEW Ver.2.0では、プロジェクトの作成からソース編集、ビルド、デバックまで一つの

  開発環境で実施可能になりました。

  また、プロジェクト作成時に、デバッガの選択やデバッガ起動時に必要なオプションの

  設定も可能になりました。

1.2 ツールチェインオプション設定の簡素化

  HEW Ver.2.0では、ツールチェインオプションの設定が容易になりました。

  (1)今までコンパイラ、アセンブラ、最適化リンカなどツール個別に設定していた

   オプションを、単一のダイアログで設定できます。これにより、各ツール間での

   オプション整合性が保たれます。

  (2)単一ダイアログ上で、複数のプロジェクトやコンフィグレーションに対する

   オプション設定が可能です。

  (3)今まで個別に設定していたCコンパイラにより出力されたアセンブリソースの

   オプションも、通常のアセンブリソースと一緒にオプション設定できます。

  (4)最適化リンカで設定するセクションアドレス(最適化リンカオプション)に合わせ、

   シミュレータデバッガのメモリリソースの設定が可能です。

  (5)メモリリソース設定の際、CPUのハードウェアマップを参照できます。

1.3 MAP最適化カスタムフェーズ

  Cコンパイラで最適化リンケージエディタが出力した外部シンボル割り付け情報を活用

  した最適化を実行するためのカスタムフェーズを提供します。詳しくは、「Hitachi 

  Embedded Workshop 2.0リリースノート」を参照してください。

1.4 複数プロジェクト、複数コンフィグレーションのビルド

  HEW2.0では、ワークスペース内の全プロジェクトからコンフィグレーションを選択して、

一括してビルド実行が可能になりました。

1.5 プロジェクトの複製

  HEW2.0では、使用中のプロジェクトをカスタムプロジェクトとして保存して、新規にプロジェクト

を作成する時に利用できるようになりました。

1.6 リセットプログラム、およびスタック設定プログラムのC言語対応

プロジェクトジェネレータは、リセットプログラムとスタック設定プログラムをC言語記述で生成

するようになりました。

1.7 プロジェクトデータの追加他

HEW Ver.2.0では、新たに以下のプロジェクト生成を追加しました。

SH7053F, SH7054F, SH7706, SH7709S, SH7727, SH7729R

また、SH7709、SH7709A、SH7729のI/O定義ファイルの記述誤りを変更しました。

Page 11: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 3 -

2. SuperH RISC engineシミュレータ・デバッガ (Ver. 7.11 -> Ver. 8.00)

2.1 HEWとの一体化

HEWにデバッグインタフェース機能を持たせました。

  これにより、HEW上でコーディングからデバッグまで行えるようになりました。

2.2 ブレーク機能でイベントをサポート

ブレーク条件成立時の動作(イベント)として下記を設定可能

   ・プログラム停止、

   ・ファイルからメモリへのデータリード

   ・メモリからファイルへのデータライト

   ・割り込み動作

2.3 IMAGE、WAVE表示機能サポート

メモリ内容を画像(IMAGE)および波形(WAVE)で表示する機能を追加しました。

2.4 カバレッジ機能サポート

  アセンブラ命令レベルでの、命令実行回数、分岐条件の成立/不成立情報を取得します。

2.5 プロファイル機能強化

  メモリ種別(内蔵メモリ、外部メモリ等)ごとのメモリアクセス回数表示を追加しました。

3 コンパイラ (Ver.6.0A -> Ver.7.0B)

3.1 オプションの追加・変更

 以下のオプションを追加しました。

(1) map=<ファイル名>

     外部変数アクセス最適化を行う。

(2) gbr={auto|user}

     GBR相対アクセス命令、論理演算をコンパイラが自動生成する。

(3) shift={inline|runtime}

     シフト演算をインライン展開/実行時ルーチン呼び出しで行う。

(4) blockcopy={inline|runtime}

     転送コードをインライン展開/実行時ルーチン呼び出しで行う。

(5) latin1

     latin1コードをサポート。

 以下のオプションについて内容変更しました。

(6) division=cpu={inline|runtime}

     除算をインライン展開/実行時ルーチン呼び出しで行う。

(7) inline=<数値>

     コードが<数値>%増加するまでインライン展開を行う。

(8) show=tab={4|8}

Page 12: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 4 -

     タブのカラム数を指定。

(9) nomessage[=<番号>[,...]]

     informationレベルのメッセージ出力の制御。

 またnestinlineオプションは廃止し、コンパイラが自動的に判断してインライン展開を行います。

3.2 #pragma拡張子の追加・変更

 以下の#pragma拡張子を追加しました。

(1) #pragma entry

     エントリ関数の指定。

(2) #pragma stacksize

     スタックサイズの指定。

 また、以下の#pragma拡張子について内容変更しました。

(3) #pragma interrupt

     (sp=symbol+定数)をサポート。

(4) #pragma gbr_base/#pragma gbr_base1

     gbr=auto指定時は無効となる。

3.3 セクションアドレス演算子のサポート

 以下のセクションアドレス演算子をサポートしました。

(1) _ _sectop("<セクション名>")

     <セクション名>の先頭アドレスを参照。

(2) _ _secend("<セクション名>")

     <セクション名>の末尾+1アドレスを参照。

3.4 組込み関数の追加

 以下の組込み関数を追加しました。

(1) 64bit乗算

     dmuls_h, dmuls_l, dmulu_h, dmulu_l

  (2) SWAP命令、エンディアン変換

     swapb, swapw, end_cnvl

(3) LDTLB/NOP命令

     ldtlb, nop

3.5 アドレスキャストのエラー緩和

外部変数初期化時のアドレス初期化に対するキャスト式のエラーを緩和しました。

3.6 malloc確保サイズ、入出力ファイル数の可変化

変数_sbrk_sizeでmalloc確保サイズを、変数_nfilesで入出力ファイル数を指定できる

 ようになりました。

Page 13: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 5 -

4 標準ライブラリ構築ツール (Ver.1.0A -> Ver2.0)

4.1 リエントラントライブラリサポート

 reentオプションを指定すると、リエントラントライブラリを生成します。

4.2 簡易I/Oサポート

nofloatオプションを指定すると、浮動小数点変換をサポートしない、サイズの小さい

 I/Oルーチンを生成します。

5 アセンブラ (Ver.5.0B -> Ver5.1)

5.1 マクロ展開不正

マクロ定義に0x5cを含む文字(漢字の「能」等)がある場合、マクロ展開時にエラー620

 (UNDEFINED PREPROCESSOR VARIABLE)が発生する問題点を解決しました。

.MACRO M_SVC_JUMP

XOR R0,R0 ; 機能コードFETCH  <-"能"を含んでいる

MOV.B @_OP_SYS_PRM,R0 ;

AND #H'07F,R0 ; bit 7(機能種別) mask

.ENDM

;

M_SVC_JUMP ; マクロ展開

【発生条件】

 下記条件を満たす時、発生します。

 (1) マクロ定義内(コメントも含む)に、下記に示す文字(記号、カタカナ、ロシア文字、

   アラビア数字、漢字)が存在する。

 <記号> :―

 <カタカナ> :ソ

 <ロシア文字> :Ы

 <アラビア数字>:Ⅸ

 <漢字> :噂,浬,欺,圭,構,蚕,十,申,曾,箪,貼,能,表,暴,予,禄,兔,喀,媾,彌,拿,杤,歃

5.2 マクロ展開時リストコメント不正

PC版でoutcode=eucを指定し、マクロ本体内のコメントが日本語で終わっている場合、

 リスト上のマクロ展開部分のコメントが不正となる問題点を解決しました。

ソース リスト

.MACRO MM 1 .MACRO MM

NOP ;機能symbol 2 NOP ;機能symbol

NOP ;機能 3 NOP ;機能

.ENDM 4 .ENDM

MM 5 MM

Page 14: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 6 -

~ M NOP ;機能symbol

M NOP ;機能symbol←正しくはsymbol不要

5.3 ローカルラベル、.ASSIGN 定義シンボル使用時の制限事項解除

ローカルラベルまたは.ASSIGNシンボルを使用時に、相対値となる命令のリロケーションが不正と

 なる問題点を解決しました。

.IMPORT isym

MOV.L #(isym-?lab),R0 ;?labの情報が不正

?lab: ;.ASSIGNで$定義しても同様の不正

 

【発生条件】

 下記条件をいずれかを満たす時、発生します。

 (1) .ASSIGNラベル、ローカルラベルへのJMP/JSR分岐を記述。

(2) .ASSIGNラベル、ローカルラベルと外部シンボル(定義/参照)との式を記述。

6 フォーマットコンバータ (Ver.1.0B -> Ver.1.0C)

6.1 アセンブリセクション切り替え後の行情報不正

 アセンブリファイル中にセクション切り替えがあるオブジェクトファイルの場合、セクション

切り替え後の行情報が不正になる問題点を解決しました。

6.2 セクションのアライン不正

ELF/DWARF2ファイルをELF/DWARF1またはSYSROFに変換する時、不正に2003エラーを出力する

 問題点を解決しました。

6.3 デバッグ情報なしオブジェクト内シンボルの割り付けアドレス不正

アブソリュートファイルにデバッグ情報の有り/無しのオブジェクトが混在する場合、デバッグ

 情報がないオブジェクトに存在するシンボルアドレスが不正になる問題点を解決しました。

6.4 キャッシュ最適化されたアブソリュートファイル変換不正

optlnkでキャッシュ最適化が行われた場合、アプリケーションエラーとなる問題点を

 解決しました。

7 最適化リンケージエディタ (Ver.7.0A -> Ver7.1)

7.1 オプションの追加

 以下のオプションを追加しました。

(1) map[=<ファイル名>]

     コンパイラで外部変数アクセス最適化を行うためのファイルを出力。

Page 15: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 7 -

(2) compress/nocompress

     デバッグ情報の圧縮有無を指定する。

7.2 Internal error解決

 以下のInternal errorとなる問題点を解決しました。

 (1703) "File:oc_updat.cpp Line:5496 /This lDisp is Limit Over" /"oc_update_jsrdsp()"

 (1704) "File:oc_updat.cpp Line:6129 /This lDisp is Limit Over" /"oc_update_movdsp()"

 (3061) "File:dw_arng.cpp Line:209 /Cannot find relocation table" /"DWArangeList::createAr

ange()"

 (3081) "File:dw_loc.cpp Line:191 /Illegal address size" /"createLocation()"

 (8090) "File:in_devtb.cpp Line:9177 /Unexpected table end(add,sub,mov...etc..)" /"in_last

code_chk_SH"

 (8833) "File : ca_updat.cpp Line : 3163 /The contents of the OFFINF_SH->LITRINF table ar

e not literal

     data." /"ca_update_Add_Literal _Operation"

 (8870) "File:oc_updat.cpp Line:10251 /Position is NULL" /"OBF_AT"

 (8874) "File:oc_serch.cpp Line:2583 /Position is NULL" /"SUB_AT"

7.3 ライブラリ作成時エラー

  UNIX版ライブラリ構築ツールを用いて、標準ライブラリ作成時にHLNK_DIRが指定されている時、

 「L3310 (F) Cannot open temporary file」のエラーメッセージが表示されライブラリが作成できな

い問題点を解決しました。

7.4 絶対アドレスセクション同士のリンク時不正

 

絶対アドレスセクションの後ろに同名でサイズ0の絶対アドレスセクションをリンクすると、オブ

ジェクト不正となる問題点を解決しました。

7.5 goptimizeによる実行不正

 

goptimizeオプション指定無しの関数(アセンブリ関数を含む)と指定有りの関数からgoptimizeオプ

ション指定有りの関数呼び出し関係がある時、実行不正になる問題点を解決しました。

7.6 シンボル分岐幅不正

 

下記発生条件を同時に満たす時、共通コードの最適化で作成したシンボルへの分岐幅が不正になる

問題点を解決しました。

【発生条件】

 (1) 入力オブジェクトは、goptimizeオプション指定有り。

 (2) romオプションでコードセクションを指定。

 (3) リンク時、optimizeオプション指定あり。

Page 16: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 8 -

7.7 不当シンボル削除

下記条件を同時に満たす時、不当にシンボル削除を行う問題点を解決しました。

【発生条件】

 (1) goptimizeオプション無しオブジェクトからgoptimizeオプション有りオブジェクトを参照する

コードが存在する。

 (2) ENTRY指定有り。

 (3) 未参照変数/関数削除最適化(optimize=symbol_delete指定時)を行う。

7.8 退避/回復レジスタ不正

同一Cソース内のある関数から次に定義されている関数を呼び出した場合、レジスタ退避/回復コード

 最適化を不正に行う問題点を解決しました。

7.9 リテラルプール値不正

レジスタ退避/回復コードの最適化で下記条件を同時に満たす時、リテラルプールの値が不正になる

 問題点を解決しました。

【発生条件】

 (1) 該当関数のレジスタ退避/回復コードが最適化される。

 (2) 該当関数には、レジスタ退避/回復領域をまたぐスタックアクセスが存在する。

 (3) スタック渡し引数があり、そのSPオフセットが2byteである。

Page 17: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 1 -

付録1-2

Ver.7.0.01のアップデート内容(Windows®版)

Ver.7.0.02のアップデート内容(SPARC版/HP版)

各ツールのバージョンは、下表の通りです。

は変更ツールを示しています。

表 1 ツールバージョン一覧

Windows®版 SPARC版/HP版

HEW 2.0        

シミュレータ 8.0.01 4.11

C/C++コンパイラ 7.0.03 7.0.03

標準ライブラリ構築ツール 2.0 2.0

アセンブラ 5.1 5.1

フォーマットコンバータ 1.0C 1.0C

最適化リンケージエディタ 7.1.02 7.1.02

Page 18: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 2 -

1. Hitachi Embedded Workshop(Ver. 2.0 Windows®版)

1.1 プロジェクトジェネレータ生成データの修正

  以下のCPUのI/O定義ファイル(iodefine.h)を修正しました。

  SH7046, SH7047, SH7049, SH7148 : st_dtc DTCSR 定義

  SH7055F: st_bsc RAMER, st_aut10 TIOR 定義

  SH7065 : st_pg DR, st_pfc PFIORL 定義

  SH7604 : st_frt OCR 定義

  SH7702, SH7707, SH7708, SH7708R, SH7709 : st_bsc PCR 定義

  SH7750 : PWM1,2のアドレス定義

  また、以下のCPUシリーズのリセットプログラム(resetprg.c)のVBR設定記述を修正しました。

  SH-1, SH-2, SH2-DSP, SH-2E

1.2 コンパイラDefineオプション削除不正の対策

  [Options- "toolchain name"]で設定可能なコンパイラDefineオプションの中で、"Value"未設定の

  定義が削除できなかった問題を対策しました。

1.3 コンパイラでアセンブリソース出力時のオプション引継ぎ不正の対策

  [Options- "toolchain name"]でコンパイラでアセンブリソースを出力し、出力したアセンブリソ

  ースに対しオプションを設定しても、ビルド時アセンブラオプションが正しく設定されない問題を

  対策しました。

2. SuperH RISC engineシミュレータ・デバッガ (Ver. 8.00 -> Ver. 8.0.01 Windows®版)

2.1 Watch/Localウィンドウ

  下記不具合を修正しました。

  ロードモジュール(.ABS)のサイズが大きいと(ファイルサイズ約64Kバイト以上)、Watchウィン

  ドウの変数が"Not available now."と表示される場合があります。

  また、関数内で定義した変数(ローカル変数)がLocalsウィンドウに表示されない場合があります。

Page 19: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 3 -

3. SuperH RISC engineシミュレータ・デバッガ

(Ver. 4.00 -> Ver. 4.11 SPARC版/HP版)

3.1 SH-4Rサポート

 SH-4R(SH7750R)シミュレータをサポートしました。

SH-4Rの16KB、2WAYキャッシュをサポートしています。

3.2 倍精度浮動小数点演算の不具合修正

 下記不具合を修正しました。

SH-4シミュレータでは、倍精度浮動小数点演算の結果が不正になります。

倍精度浮動小数点演算を行なう場合、SH-4 BSCシミュレータをご使用ください。

なお、単精度浮動小数点演算は正常な結果となります。

4 コンパイラ (Ver. 7.0B -> Ver. 7.0.03)

4.1 符号拡張/ゼロ拡張不正

  【内容】

   関数内に結果が同じ整数型の部分式が存在する場合、その結果の下位2バイトまたは1バイトを不

   正に符号拡張/ゼロ拡張する場合がある不具合を修正しました。

   short sub(long);

   short a,b,c,d;

   void f()

   {

    if (d) {

     b = sub((long)a * (long)b * (long)c / 0x4000);

      /* ^^^^^^^^^^^^^^^^^ */

    } else {

     b = sub((long)a * (long)b * / 0x80);

      /* ^^^^^^^^^^^^^^^^^ */

    }

   }

  【発生条件】

   以下条件をすべて満たす時、発生します。

   (1) 関数内に結果が同じである共通な部分式がある(上記例の^^^^^)。

   (2) その部分式の変数の値が2バイトまたは1バイト以下であることが保証できる(上記例ではsh

     ort型の変数を型変換しているので、値としてはshort型の範囲内であることが保証できる)

4.2 レジスタ破壊不正

  【内容】

Page 20: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 4 -

   optimize=1指定時、使用中のレジスタを不正に破壊する場合がある不具合を解決しました。

  【発生条件】

   以下条件をすべて満たす時、発生します。

   (1) optimize=1を指定する。

   (2) 関数内に分岐先(ループ文、return文も含む)が同一になる複数の基本ブロック(分岐、ラベ

     ルのない命令列)が存在する。

   (3) (2)の複数基本ブロックの中に同じ変数への代入文がある。

4.3 1ビットフィールドメンバ定数代入不正

  【内容】

   同じ構造体の1ビットフィールドメンバへの定数代入文が連続し、かつ同じビットフィールドメ

   ンバへの代入文が複数存在する時、インターナルエラー もしくはオブジェクト不正になる場合

   がある不具合を解決しました。

   struct {

    unsigned char b1:1;

    unsigned char b2:1;

   } ST;

   /* インターナルエラー */

   void f() {

    ST.b1=1;

    ST.b2=0;

    ST.b2=0;

   }

   /* オブジェクト不正 */

   void g() {

    ST.b1=1;

    ST.b2=1;

    ST.b2=0;

   }

  【発生条件】

   下記条件を全て満たす時、発生します。

   (1) 同じ構造体の1ビットフィールドメンバへの定数代入文が連続している。

   (2) 同じビットフィールドメンバに同じ値を代入している(インターナルエラー)、 もしくはビ

     ットフィールドメンバに0以外の定数を代入し、直後に同じビットフィールドメンバに0を代

     入している。

4.4 レジスタ退避・回復不正

  【内容】

Page 21: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 5 -

   割り込み関数内で、R0,R1,R3が使用されているにも関わらず退避・回復されない場合がある不具

   合を解決しました。

  【発生条件】

   下記条件を全て満たす時、発生します。

   (1) 当該関数が割り込み関数である。

   (2) 当該関数内で関数呼び出しがない(実行時ルーチンを含む)。

   (3) 当該関数内に以下のいずれかを含む。

    ・switch文

    ・#pragma inline_asm指定関数(サイズが255以上もしくは指定なし)の呼び出し

    ・関数内分岐が8bitで届かない場合

4.5 R0レジスタの不正破壊

  【内容】

   optimize=1指定時に使用中のレジスタR0を不正に破壊してしまうことがある不具合を解決しま

   した。

  【発生条件】

   下記条件を全て満たす時、発生する可能性があります。

   (1) optimize=1を指定する。

   (2) スタック渡しの仮引数が存在する。

4.6 switch文条件式中の構造体メンバ参照不正

  【内容】

   switch文の条件式にネストした構造体のメンバ参照を記述した場合、メンバへのオフセットが不

   正となる場合がある不具合を解決しました。

  【発生条件】

   下記条件を全て満たす時、発生する可能性があります。

   (1) ネストした構造体のメンバ参照がある。

   (2) そのメンバの参照を、'.'ではなく、(&member)->という形で行っている。

   (3) その構造体参照式が、switch文の条件式にある

4.7 デバッグ情報不正

  【内容】

   構造体メンバが関数へのポインタで、その関数の型がプロトタイプ形式で宣言されている場合に、

   デバッグ情報が不正になる不具合を解決しました。

  【発生条件】

   下記条件を全て満たす時、発生します。

   (1) C言語で記述されている。

   (2) 関数型へのポインタである構造体または共用体のメンバが存在する。

Page 22: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 6 -

4.8 インターナルエラー

  【内容】

   以下の場合、インターナルエラーが発生する不具合を解決しました。

   (1) ファイル名(パスを含む)に空白を含む場合。

   (2) mapオプションでファイル名(パスを含む)に日本語を指定した場合。

5 最適化リンケージエディタ(Ver. 7.1 -> Ver. 7.1.02)

5.1 rename指定時のデバッグ情報不正

  【内容】

   -form=relocate 指定時に-rename を指定すると、当該セクション内シンボルのデバッグ情報が

   削除される不具合を解決しました。

  【発生条件】

   下記条件を全て満たす時、発生します。

   (1) -form=relocateを指定している。

   (2) -renameを指定している。

5.2 const、リテラルデータ最適化不正

  【内容】

   -optimize=string_unifyを指定すると不正にシンボルの統合最適化を実施する不具合を解決し

   ました。

  【発生条件】

   下記条件を全て満たす時、発生する可能性があります。

   (1) Cソースファイルを-goptimizeオプション指定でコンパイルする。

   (2) 最適化リンカで、-optimize=string_unifyを指定する。

5.3 キャッシュ最適化指定時内部エラー

  【内容】

   -optimizeオプションと-cacheオプションを同時に指定すると内部エラーが発生する不具合を解

   決しました。

Page 23: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 1 -

付録1-3

Ver.7.0.02のアップデート内容(Windows®版)

Ver.7.0.03のアップデート内容(SPARC版/HP版)

各ツールのバージョンは、下表の通りです。

は変更ツールを示しています。

表 1 ツールバージョン一覧

Windows®版 SPARC版/HP版

HEW 2.0        

シミュレータ 8.0.01 4.11

C/C++コンパイラ 7.0.04 7.0.04

標準ライブラリ構築ツール 2.0 2.0

アセンブラ 5.1 5.1

フォーマットコンバータ 1.0C 1.0C

最適化リンケージエディタ 7.1.04 7.1.04

Page 24: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 2 -

1. Hitachi Embedded Workshop(Ver. 2.0 Windows®版)

1.1 HIMプロジェクトの変換不正

  Cコンパイラフェーズを含まないHIMプロジェクトをHEW2.0用に変換した時、CコンパイラのCPUタブ

  上のデフォルトオプションを正しく設定できない問題を対策しました。

1.2 Denormalizeアセンブラオプションのビルド時設定不正

  ワークスペースが、アセンブラオプションDenormalize"=ON"と"=OFF"の両プロジェクトを持つ場合、

  Denormalize"=ON"のプロジェクトをビルド(アセンブル)時、Denormalize"=ON"を設定しない問題

  を対策しました。

1.3 プロジェクトジェネレータ生成データの修正

  以下のCPUのI/O定義ファイル(iodefine.h)を修正しました。

  SH7708 : st_sci 定義

  SH7709S : st_scif, st_irda 定義他

1.4 Runtime Libraryのスタックサイズ表示不正

  ユーティリティツールの一つ、スタック解析ツールでRuntime Libraryのスタックサイズを正しく

  表示できない問題を対策しました。

2 コンパイラ(Ver. 7.0.03 -> Ver. 7.0.04)

2.1 副作用のある式を含むif文の不正削除

  if文の削除最適化で、副作用のある条件式が削除される場合がある不具合を解決しました。

  <例>

   extern int sub();

   main() {

     int i=0;

     if(sub()) {  /* if文内の関数sub()の呼び出しが不正に削除されます */

       i=10;  /* ローカル変数iはこの後どこでも使用されないので */

     }  /* 最適化によりi=10が削除されます */

   }

  【発生条件】

  以下の条件をすべて満たす場合、発生することがあります。

  (1) optimize=1を指定する。

  (2) if文のthen節、else節とも空文である(最適化により空文になる場合を含む)。

2.2 スタックアクセス不正

  スタックに対するロード・ストアが不正になる場合がある不具合を解決しました。

Page 25: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 3 -

  <例>

        :

    MOV      R15,R2

    ADD      #72,R2

    MOV      #104,R0 ; H'00000068

    MOV.L     R2,@(R0,R15) <- (SP+72)にデータを保存

    MOV      R15,R3

    ADD      #92,R3 <- 正しくは#72

    MOV.L     @R3,R6 <- (SP+92)からデータ取り出し NG

    MOV.L     L37+60,R4 ; L52

    BSR      _func

    MOV      #52,R5 ; H'00000034

        :

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) スタックへのアクセスがある。

   (2) 1関数の最適化対象範囲が複数に分割されている

     (分割される条件は、サイズ、変数、関数呼び出しの数等に起因します)。

2.3 #pragma interrupt関数のレジスタ退避・回復不正

  #pragma interrupt関数から#pragma inline_asm指定関数を呼び出し時、#pragma inline_asm 関数

  内で使用したレジスタが破壊されることがある不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) #pragma interrupt関数から#pragma inline_asm指定関数の呼び出しがある

   (2) 当該#pragma interrupt関数内に他の関数呼び出しがない

2.4 MACレジスタ退避・回復不正

  macsave=1オプション指定時、#pragma regsave指定関数でMACレジスタが退避・回復されない不具

  合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生します。

   (1) macsave=1を指定する。

   (2) #pragma regsaveを指定する。

2.5 2重ループ内式のオブジェクト不正

  2重ループのある式でspeedオプションまたはloopオプションを指定すると、コード不正になる場合

  がある不具合を解決しました。

Page 26: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 4 -

  <例>

      :

   for(...)

     for(...)

       x = x + i; /* xの値が不正になることがある */

      :

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) speedオプションまたはloopオプションを指定する。

   (3) 2重ループがあり、ループの内側にx=x+a;のように左辺と同じ変数を右辺で使用している。

2.6 拡張命令の削除不正

  不要なロード・ストア命令削除または複数ロード命令削除で不正にEXTS命令を削除してしまう場合

  がある不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 代入先(または複数ロード命令の2回目以降)サイズ < 参照元サイズ <= 4byteである。

2.7 switch文展開不正

  switch文がテーブル方式展開される場合、遅延スロットにケーステーブルのリテラルデータが入り、

  コード不正になる場合がある不具合を解決しました。

   <例>

        SHLL    R6

        MOVA L204,R0

        MOV.W @(R0,R6),R0

        BRAF R0

        NOP

     L203:

        .RES.W 1

        .DATA.L _fl

        .DATA.L _f2

        .DATA.L _f3

        .DATA.L _f4

   .DATA.L _f5

   .DATA.L _f6

     L204:

  .DATA.W L143-L203

   .DATA.W L143-L203

Page 27: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 5 -

   BRA L180

   .DATA.W L143-L203 ←遅延スロットに入る

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) switch文があり、分岐方式がテーブル展開である。

2.8 定数演算不正

  定数演算でコード不正になる場合がある不具合を確認しました。

  <例>

   void f() {

sl = 0x80000001l;

  :

    if (*scp16==(char)(0x80000001L)) /* 0x80000001を1byteに型変換した結果(1)と比較 */

: /* すべきところ、0x80000001と比較 */

   }

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 同一関数内に、サイズの異なる部分的に等しい定数式がある。

2.9 ポインタ指示先への設定不正

  ポインタの指示先への値の設定が正しく行われない場合がある不具合を解決しました。

  <例>

   int *gp;

   void g(int *p) {

   gp = p;

   }

   int f(int *q) {

   static int i, *p = &i;

   g(p); /* gpがiを指すように設定される */

   :

   i = 1;

   *gp = 2; /* *gpとiが同一である可能性があることが認識できていない */

   :

   return i; /* i = 1が定数伝播され、2ではなく1が返される */

   }

  【発生条件】

Page 28: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 6 -

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 静的変数及び外部変数の初期値にアドレス参照式を指定、または&演算子を用いない配列の

   アドレス参照がある

2.10 #pragma interrupt関数のFPSCR退避・回復不正

  #pragma interrupt指定関数でFPSCRが退避・回復されない不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生します。

   (1) cpu=sh2e/sh4を指定する。

   (2) #pragma interrupt関数内に関数呼び出しがない。

   (3) #pragma interrupt関数内にオペランドにFPSCRのあるコードが無い。

   (4) #pragma interrupt関数内にFPU演算(FABS,FSQRT,FNEG,FCNVDS,FCNVSD,FLOAT,FTRC,FADD,FS

     UB,FMUL,FDIV,FCMP/EQ,FCMP/GT,FMAC)がある。

2.11 組込み関数の移動不正

  以下の組み込み関数を跨いで命令が移動することがある不具合を解決しました。

  set_cr, get_cr, set_imask, get_imask, set_vbr, get_vbr, trapa, trapa_svc, prefetch

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 以下の組み込み関数を使用。

    set_cr, get_cr, set_imask, get_imask, set_vbr, get_vbr, trapa, trapa_svc, prefetch

2.12 乗算結果の拡張命令削除不正

   乗算結果を1/2byteに代入時、不正に拡張命令が削除される場合がある不具合を解決しました。

  <例>

   unsigned short eus=32768,eus2=32769;

   void func () {

   unsigned short aus;

   aus= (eus--) * (eus2--); /* 乗算結果のゼロ拡張が不正に削除 */

   if (aus!=(unsigned short)((1+eus)*(1+eus2))){

   : /* (1+eus)*(1+eus2)の結果はゼロ拡張される */

     }

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 乗算結果を1byteまたは2byteに代入する。

Page 29: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 7 -

2.13 volatileへのキャスト不正

  volatileへのポインタに型変換を指定時、ループ内の式のvolatile指定が無効になる場合がある不

  具合を解決しました。

  <例>

   #define ADDRESS1 0xf0000000

   #define ADDRESS2 0xf0000004

   #define BIT0 0x0001

   void shc_test(void) {

   unsigned short dataW,read_val;

   read_val = *((unsigned short*)ADDRESS1);

   while(1) {

   /* volatileが無効になりループ外に移動 */

   dataW = *((volatile unsigned short*)ADDRESS2);

        if(dataW & BIT0) {

/* volatileが無効になりループ外に移動 */

   *((volatile unsigned short*)ADDRESS2) &= ~BIT0;

   break;

   }

   }

   }

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 指示先がvolatileであるポインタキャストが存在する。

   (3) そのポインタの間接参照式がループ内で使用されている。

2.14 GBR相対論理演算化不正

  外部変数の複合論理演算指定時に、コード不正になる場合がある不具合を解決しました。

  <例>

   unsigned char guc1=255;

   void func001() {

   if (guc1 & 254){ /* guc1をロード(A) */

   guc1 &= 253; /* AND.B #253,@(R0,GBR) メモリ上のguc1を書き換え */

   }

      if (guc1==253) ok(1); /* guc1を再ロードせず、(A)をそのまま使用 */

    else ng(1);

    }

  【発生条件】

Page 30: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 8 -

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定している。

   (2) gbr=autoを指定している、またはgbr=user指定時#pragma global_base/#pragma global_ba

     se1を使用している。

   (3) 外部変数を複合論理演算式(&=, |=, ^=)で使用している。

   (4) 複合論理演算式を「op.B #xx,@(R0,GBR)」(op:AND/OR/XOR)でコード生成している。

2.15 #pragma global_register指定時の拡張命令削除不正

  1/2byte変数を#pragma global_register指定すると、不正にEXTS/EXTU命令が削除される場合が

  ある不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) (unsigned) char/short型変数を#pragma global_registerに指定している。

2.16 構造体・共用体配列メンバを含む構造体・共用体使用時のオブジェクト不正

   構造体・共用体に構造体・共用体配列メンバがある場合にオブジェクト不正になる場合がある不

   具合を解決しました。

  <例>

   void func() {

   struct tag {

   union {

   short u11;

   char u12[2];

   } u1[2];

   } st= {{{0x1234},{0x5678}}};

   char ans1;

   ans1=st.u1[1].u12[1]; /* st.u1[1].u12[1]設定前にans1をコピー(A) */

   printf("%x¥n",ans1); /* (A)のans1をそのまま使用 */

     if(ans1 == 0x78) /* (A)のans1をそのまま使用 */

:

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 構造体・共用体に構造体・共用体配列メンバが存在する。

   (3) 上記の領域を配列メンバとそれ以外の直接参照式(構造体全体を表す式や共用体の別メン 

     バ)の両方で参照している。

Page 31: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 9 -

2.17 goptimize指定時のoptlnk最適化不正

  goptimize指定時に、レジスタ退避・回復コードが遅延スロットに移動した場合、optlnkで不正に

  退避・回復コードを削除する場合がある不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) goptimizeを指定する。

   (3) optlnkでoptimize=registerを指定する。

   (4) 遅延スロットにレジスタ退避・回復コードがある (MOV.L @R15+,Rn/MOV.L Rn,@-R15など)。

2.18 組込み関数nopの遅延スロット移動抑止

  組込み関数nopを引用した場合、不当に遅延スロットにNOP命令を移動し指定位置に設定できない不

  具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 組込み関数nopを使用する。

2.19 符号付き整数型定数値のキャスト不正

  定数値をcharまたはshort型に明示的型変換指定をした場合、コード不正になる場合がある不具合

  を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 定数値を符号付きのchar, short型に型変換している。

   (3) その定数値は型変換後、負の値となる。

2.20 副作用のある実引数の演算不正

  関数パラメタにvolatile変数に対する後置++/--式を記述した時、呼び出し関数内で当該変数が後

  置++/--前の値になる場合がある不具合を解決しました。

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) optimize=1を指定する。

   (2) 関数のパラメタがvolatileで変数である。

   (3) 当該パラメタが副作用(後置++/--)式である。

Page 32: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 10 -

2.21 rtnext指定時の返却値の符号/ゼロ拡張不正

  rtnextオプション指定時、1/2byteのリターン値が不正になる場合がある不具合を解決しました。

  <例>

   int a;

   unsigned char func(){

   return a; /* aの上位3byteは不定値が返る */

   }

  【発生条件】

   以下の条件をすべて満たす場合、発生することがあります。

   (1) rtnextを指定している。

   (2) 関数のリターン値が1byteまたは2byteである。

   (3) 関数の原型宣言を行っていない。

2.22 無名ビットフィールドデータ配置不正

  endian=little指定時、構造体メンバに無名ビットフィールドがあるとデータ配置が不正となる場

  合がある不具合を解決しました。

  【発生条件】

   以下の(1)-(4)もしくは(5)-(8)の条件をすべて満たす場合、発生することがあります。

   (1) endian=littleを指定する。

   (2) 構造体メンバにビット幅が8以上の無名ビットフィールドがある。

   (3) その無名ビットフィールドは構造体先頭ではない。

   (4) 構造体変数の定義で初期値が設定されている。

   (5) endian=littleを指定する。

   (6) 構造体に配列メンバがあり、その次がビットフィールドメンバである。

   (7) 配列メンバとビットフィールドメンバの間に境界調整のギャップが入る。

   (8) 構造体変数の定義で初期値が設定されている。

2.23 volatile指定変数参照削除の抑止

  volatile宣言された変数について以下のような式を記述した場合、変数の参照を保証するように変

  更しました。

  a &= 0;

2.24 デバッグ情報不正

  ローカル配列、構造体・共用体(スタックに領域を確保した時)のデバッグ情報が出力されなかった

  不具合を解決しました。

2.25 インターナルエラー

  以下の場合、インターナルエラーが発生することがある不具合を解決しました。

Page 33: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 11 -

  (1) code=machinecode指定時に、コンパイル実行するドライブのルートディレクトリにファイルを

  生成する権限がない場合(PC版のみ)

  (2) 無限ループがあり関数出口に到達する制御フローのないプログラムをコンパイルした場合。

3. 最適化リンケージエディタ(Ver. 7.1.02 -> Ver. 7.1.04)

3.1 compressオプション指定時のデバッグ情報不正

  compressオプション指定によりデバッグ情報を圧縮した際、型情報の参照先が不正となる不具合を

  解決しました。

3.2 外部変数アクセス最適化に関するアドレスチェック

  コンパイラのmapオプション指定(外部変数アクセス最適化)時のシンボルアドレスについて、リン

  ク時にmapオプションを指定したときのみチェックしていたのを、常にアドレスチェックを行うよ

  うに修正しました。

3.3 binaryファイル入力指定時のセクション属性不正

  下記条件全てを満たした際に、セクションの属性が不正となる不具合を解決しました。

  (1) objectファイルとbinaryファイルを入力

  (2) objectファイル内でサイズ0のセクションを定義

  (3) binaryオプションでサイズ0のセクションを指定

  (4) ファイルの入力指定順:(2)のobjectファイル -> (3)のbinaryファイル

3.4 relocateファイル生成時の異常終了

  下記条件全てを満たした際に異常終了する不具合を解決しました。

  (1) 入力objectファイルの先頭:-goptimizeオプション指定ありのファイル入力objectファイルの

    2番目以降の入力:goptimizeオプション指定なしのファイルもしくはアセンブラ出力ファイル

  (2) 出力形式にrelocateファイルを指定

  (3) profileオプション指定あり

  (4) 最適化指定あり

3.5 未参照シンボル削除とレジスタ最適化実施時の内部エラー(1703)

  下記条件全てを満たした際に内部エラーが生じる不具合を解決しました。

  (1) goptimizeオプション指定ありのobjectファイルを入力

  (2) (1)のobjectファイル内に分岐幅が境界(-4096または4094)のBSR、またはBRA命令が存在

  (3) 未参照シンボル削除最適化、およびレジスタ最適化を指定

3.6 複数関数が同一リテラルを指す場合のリテラル参照不正

  下記条件全てを満たした際に参照するリテラルの値が不正となる不具合を解決しました。

  (1) goptimizeオプション指定ありのobjectファイルを入力

  (2) (1)のobjectファイル内で、複数関数が同一リテラルを参照

  (3) レジスタ退避/回復コード最適化を指定

Page 34: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 1 -

付録1-4

Ver.7.0.03のアップデート内容(Windows®版)

各ツールのバージョンは、下表の通りです。

は変更ツールを示しています。

表 1 ツールバージョン一覧

Windows®版

HEW 2.1

シミュレータ 8.1.00

C/C++コンパイラ 7.0.06

標準ライブラリ構築ツール 2.0

アセンブラ 5.1

フォーマットコンバータ 1.0.04

最適化リンケージエディタ 7.1.05

Page 35: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 2 -

1. Hitachi Embedded Workshop(Ver. 2.0 -> Ver. 2.1 Windows®版)

1.1 MAP最適化カスタムフェーズ

本パッケージより、カスタムフェーズを使用しないでツールチェインのオプション設定だけでMAP

最適化を実行可能になりました。「1.6 MAP最適化対応の自動ビルド」を参照してください。

1.2 プロジェクトのロードとアンロード

ワークスペース内で複数のプロジェクトを利用している場合、ワークスペースオープン時は

  カレントプロジェクトのみロードされ参照可能になります。

  他のプロジェクトを参照する場合は、ワークスペースウィンドウ上で該当する

  プロジェクトを選択し、マウス右ボタンでポップアップメニューの[Load Project]

  を指定することで参照可能になります。

また、参照不要となったプロジェクトは、同様の操作でポップアップメニュー[Unload Project]

を指定することで、HEW上の管理から一時的に開放されます。(メモリの節約になります)

1.3 ワークスペースウィンドウ Navigationタブ設定

ワークスペースウィンドウのNavigationタブ上でポップアップメニュー

(マウス右ボタンをクリック)の[Configure view...]を選択すると、

Navigationタブ上で表示する情報を設定することができます。

初期設定では、"ANSI C Functions"と"C Defines"を表示します。

1.4 印刷時のヘッダ、フッダ設定

[File - Page Setup...]メニューで、印刷時のヘッダ、フッダの設定が可能になりました。

1.5 カスタムプレースフォルダの設定

[Tools - Customize]メニューのPlaceholderタブで、ユーザ固有のプレース

ホルダの設定が可能になりました。HEW全体で使用する場合は、

"Application wide custom placeholders:"に、また、ワークスペース個別に

使用する場合は、"Workspace wide custom placeholders:"に設定してください。

1.6 MAP最適化対応の自動ビルド

HEW2.0では、Cコンパイラで最適化リンケージエディタが出力した外部シンボル

割り付け情報を活用した最適化を実行するためにカスタムフェーズを提供していましたが、

HEW2.1では、オプション設定だけで最適化ビルドが実行可能になりました。

ツールチェインオプションダイアログのC/C++タブでOptimizeとして"Include

map file"を指定しすると、最適化リンケージエディタ実行後、自動的に、

再度Cコンパイラからのビルド処理を実行します。

1.7 プロジェクトジェネレータ生成データの追加、修正

新たに以下のCPUのプロジェクト生成を追加しました。

    SH7055SF, SH7058F, SH7290

また、以下のCPUのI/O定義ファイル(iodefine.h)を修正しました。

    SH7727

Page 36: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 3 -

2. SuperH RISC engineシミュレータ・デバッガ

(Ver. 8.0.01 -> Ver. 8.1.00 Windows®版)

2.1 セッションサポート

ターゲット固有の情報はセッションに保存します。

1つのコンフィギュレーションに複数のセッションを持つことが可能です。

2.2 コマンドバッチファイルの実行順序を指定可能に

コマンドバッチファイルを自動実行する順番を指定できます。

実行するタイミングは、ターゲット接続時、ユーザプログラムロード前、後から選択できます。

2.3 Sourceウィンドウの強化

Sourceウィンドウ上に対応するアドレスとカバレッジ情報を表示します。

また、表示/非表示も選択できます。

Cソースレベルでカバレッジ情報を表示することが可能になります。

2.4 カバレッジ機能強化

  カバレッジ情報のセーブ/ロードをサポートします。過去のカバレッジ方法とのマージが可能

になります。

2.5 Watch機能の強化

Watch情報のリアルタイム表示をサポートします。プログラム実行中にリアルタイムに情報を

更新します。また、Watch情報のファイルへのセーブをサポートします。

2.6 Trace機能の強化

Trace取得情報の統計解析機能をサポートします。

解析する項目を指定することにより、どういった情報が何回取得されたかを表示することが

可能になります。

2.7 Triggerウィンドウサポート

Triggerウィンドウをサポートしました。これにより、任意のタイミングで擬似割り込みを

発生することが可能になります。

2.8 SH3-DSP(core)シミュレータサポート

SH3-DSP(core)シミュレータをサポートしました。ASIC向けSH3-DSPのデバッグが可能になります。

Page 37: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 4 -

3. コンパイラ(Ver. 7.0.04 -> Ver. 7.0.06)

3.1 オプションの追加

以下のオプションを追加しました。

(1) global_volatile={0|1}

外部変数のvolatile化

(2) opt_range={all|noloop|noblock}

外部変数最適化範囲指定

(3) del_vacant_loop={0|1}

空ループ削除

(4) max_unroll=<数値>

ループ最大展開数の指定

(5) infinite_loop={0|1}

無限ループ前の式削除

(6) global_alloc={0|1}

外部変数のレジスタ割り付け

(7) struct_alloc={0|1}

構造体/共用体メンバのレジスタ割り付け

(8) const_var_propagate={0|1}

const定数伝播

(9) const_load={inline|literal}

定数ロードの命令展開

(10) schedule={0|1}

命令並べ替え

詳細については「SuperH ROSC engine C/C++コンパイラVer.7.0.06 添付資料」を参照ください。

3.2 R0レジスタの不正破壊

スタック渡しのパラメタがあるとき、R0を不正に書き換える場合がある不具合を対策しました。

<例>

short func1(short a0, int *a1, int a2, short a3, short a4, short a5, short a6,

int a7, int a8, int a9);

void func0(short a0, int *a1, int a2, short a3, short a4, short a5, short a6) {

:

r1=func1(0,a1,0,0,0,0,0,0,0,0);

if((r1>0)&&(r1!=1)) {

func1(a0,a1,0,a3,a4,a5,a6,0,0,0);

}

:

}

:

MOV.L R0,@(32,R15); -> R0を@(32,R15)に退避

Page 38: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 5 -

MOV R8,R5

MOV #66,R0 ; -> R0を破壊

MOV.W @(R0,R15),R3

MOV R9,R6

MOV #70,R0 ; -> R0を破壊

MOV.W @(R0,R15),R1

MOV R0,R4 ; ->MOV.L @(32,R15),R4をMOV R0,R4に置換えコード不正

MOV.L R3,@(4,R15)

MOV.L R1,@(8,R15)

MOV.L R9,@(12,R15)

MOV.L R9,@(16,R15)

BSR _func1

MOV.L R9,@(20,R15)

:

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) optimize=1を指定している。

(2) 当該関数にスタック渡しのパラメタが存在する。

3.3 BRA命令飛び先不正

無条件分岐を含むプログラムにおいて、分岐をBRA命令で行いかつ飛び先までの距離が4094バイトの

時、飛び先が不正になるコードを生成する場合がある不具合を対策しました。

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) code=machinecodeを指定している。またはcodeオプションを指定していない。

(2) BRA命令から飛び先までの距離が4094バイトである。

3.4 PRレジスタ退避・回復命令の不当削除

以下Cソースをspeedオプションでコンパイル時、不当にPRレジスタの退避・回復命令を削除し、

実行時無限ループする場合がある不具合を解決しました。

<例>

int x;

extern void f1();

extern void f2();

void f() {

if (x == 2){

f1(); // then節が関数呼び出しで終わっている

}

f2(); // 関数の最後の処理が関数呼び出し

return;

}

Page 39: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 6 -

_f:

MOV.L L14,R6 ; _x

MOV.L @R6,R0

CMP/EQ #2,R0

BT L11

L12:

MOV.L L14+4,R2 ; _f2

JMP @R2 ; 関数の最後が関数呼び出しのため、JMP命令に

NOP ; 変換し、RTS を削除

L11:

MOV.L L14+8,R2 ; _f1

JSR @R2 ; ここに関数呼び出し命令があるにも関わらず

NOP ; PRレジスタの退避回復が行われていない

BRA L12

NOP

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) speedオプションを指定している。

(2) 関数の最後の処理が関数呼び出しである。

(3) (2)の関数呼び出しの直前にif-then節があり、then節の最後が関数呼び出しである。

(4) (2)の関数呼び出しがインライン展開されない。

3.5 Tビットの不当参照

以下のケースにおいて、不当に条件分岐を行う場合がある不具合を解決しました。

(1) 以下Cプログラムをコンパイルした場合

<例>

#include <machine.h>

extern void f();

int a;

void func() {

int b;

b = (a == 0); // 比較結果を変数に格納(A)

f(); // 関数呼び出しまたは組み込み関数set_cr()

if (b) { // (A)の変数を0/1比較

a=1;

}

}

_func:

STS.L PR,@-R15

MOV.L L13,R6 ; _a

Page 40: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 7 -

MOV.L @R6,R2

TST R2,R2 ; 比較結果をTビットに格納

MOV.L L13+4,R2 ; _f

JSR @R2 ; 関数呼び出し先でTビットが

NOP ; 破壊される可能性あり

BF L12 ; Tビットを参照し分岐

MOV.L L13,R6 ; _a

MOV #1,R2

MOV.L R2,@R6

L12:

LDS.L @R15+,PR

RTS

NOP

(2) C++プログラムで、関数内のローカルブロック内で宣言されたデストラクタ呼び出しの

あるクラスを記述した場合

【発生条件】

以下の(1)~(3)または(4)~(5)の条件をすべて満たす場合、発生することがあります。

(1) optimize=1を指定する。

(2) Cプログラムで比較結果を変数に格納している。

(3) (2)の変数を関数呼び出しまたは組み込み関数set_cr()使用後に0/1比較している。

 または

(4) optimize=1を指定する。

(5) C++プログラムで関数内のローカルブロック内で宣言されたデストラクタ呼び出しのある

クラスを記述している。

3.6 定数値の不当共通化

以下Cソースをoptimize=1でコンパイル時、定数値を不当に共通化し、参照時の値が実際と

異なる場合がある不具合を解決しました。

<例>

#define a (*(volatile unsigned short *)0x400)

#define b (*(volatile unsigned short *)0x4000)

#define c (*(volatile unsigned short *)0x402)

int d;

void func() {

a = 0x8000; /* (A) */

b = 0x8000; /* (A') */

d = c + 0x8000; /* (B) */

}

_func:

Page 41: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 8 -

MOV.W L15,R6 ; H'8000 R6に0xFFFF8000を設定

MOV #4,R5

MOV #64,R2

SHLL8 R5

SHLL8 R2

MOV.W R6,@R5 ; (A) aに0x8000を設定

MOV.W R6,@R2 ; (A') bに0x8000を設定

MOV.W @(2,R5),R0

EXTU.W R0,R2

ADD R6,R2 ; R2にc+0xFFFF8000の結果を設定

MOV R2,R6

MOV.L L15+4,R2 ; _d

RTS

MOV.L R6,@R2 ; (B) dにc+0xFFFF8000の結果を格納しNG

【発生条件】

以下の条件をすべて満たす場合、発生します。

(1) optimize=1を指定する。

(2) 関数内で128~255もしくは32768~65535の範囲の同じ定数値を複数回使用している。

(3) (2)の定数値が無符号で、異なるサイズで使用される。

上記例では(A)(A')では2バイト、(B)では4バイト

3.7 リテラルプール出力位置不正

align16オプションを指定してコンパイルした場合、リテラルプールの参照が届かなくなる

場合がある不具合を解決しました。

(1) code=machinecodeを指定した場合

goptimizeオプションを指定時はリンク時内部エラー、指定しない場合はオブジェクト

不正になる場合がある。

(2) code=asmcodeを指定した場合

アセンブル時エラーになる場合がある。

<例>

:

MOV.L L154+2,R2 ; L158 リテラル(A)を参照(1)

MOV.L R2,@R15

MOV.L L154+6,R2 ; _printf リテラル(B)を参照(2)

JSR @R2

NOP

:

.ALIGN 16

L86:

ADD #1,R2

BRA L153 ; 無条件分岐を生成しリテラルを出力

MOV.L R2,@R4

Page 42: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 9 -

L154:

.RES.W 1

.DATA.L L158 ; (A) (1)からdispが届かない位置にリテラル出力

.DATA.L _printf ; (B) (2)からdispが届かない位置にリテラル出力

.ALIGN 16

L153:

:

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) align16オプションを指定する。

(2) 無条件分岐命令を生成してリテラルプールを出力する。

3.8 遅延スロットへの不当命令移動

 optimize=1を指定してコンパイルした場合、不当に遅延スロットに命令を移動し、レジスタを

破壊する場合がある不具合を解決しました。

<移動前>

:

SHLL R2

MOV R2,R0

MOVA L88,R0

BRA L144

NOP

:

<移動後>

:

SHLL R2

; 遅延スロットに移動

MOVA L88,R0 ; R0に値を設定

BRA L144

MOV R2,R0 ; MOVAで設定したR0を破壊

:

【発生条件】

以下の条件を満たす場合、発生することがあります。

(1) 同一レジスタに値を設定するコードが連続する。

3.9 GBR相対論理演算生成時のoffset不正

 optimize=1を指定してコンパイルし、かつ1バイト構造体メンバの論理演算をGBR相対で

行うコードを生成した場合、そのoffset値が不正になる場合がある不具合を解決しました。

<例>

struct {

int a;

Page 43: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 10 -

unsigned char b;

} ST;

char c;

void f() {

ST.b |= 1;

c &= 1;

}

_f:

STC GBR,@-R15

MOV #0,R0 ; H'00000000

LDC R0,GBR

MOV.L L11+2,R0 ; H'00000008+_ST <- 実際は(ST+4)

OR.B #1,@(R0,GBR)

MOV.L L11+6,R0 ; _c

AND.B #1,@(R0,GBR)

RTS

LDC @R15+,GBR

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) optimize=1を指定する。

(2) gbr=userを指定しかつ#pragma gbr_base/gbr_base1を使用している、またはgbr=autoを

指定しかつmapオプションを指定していない。

(3) サイズが1のメンバを含むグローバル構造体が存在する。

(4) サイズ1の構造体メンバは構造体先頭でない。

(5) (3)のメンバが関数内で論理演算で使用されている。

(6) (3)のメンバは論理演算以外では使用されていない。

(7) 関数内に論理演算のみで使用される外部変数が(3)以外に存在する。

3.10 SWAP命令直後の不当ゼロ拡張

optimize=1を指定してコンパイルした場合、組み込み関数swapb、swapw、end_cnvlの結果

代入先にポインタを指定すると、不当にゼロ拡張を行う場合がある不具合を解決しました。

<例>

#include <machine.h>

unsigned short *a,*b;

void func() {

*b=swapb(*a);

}

_func:

MOV.L L13+2,R2 ; _a

MOV.L L13+6,R5 ; _b

Page 44: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 11 -

MOV.L @R2,R6

MOV.W @R6,R2

SWAP.B R2,R6

MOV.L @R5,R2

EXTU.B R6,R6 ; SWAP結果を不正にゼロ拡張

RTS

MOV.W R6,@R2

【発生条件】

以下の条件をすべて満たす場合、発生することがあります。

(1) optimize=1を指定する。

(2) 組み込み関数swapb、swapw、end_cnvlを使用している。

(3) (2)の組み込み関数の結果代入先がポインタである。

3.11 ビットフィールドデータ出力不正

 無名ビットフィールドを含む構造体に初期値を設定した場合、その初期値が不正になる場合がある

不具合を解決しました。

<例>

struct st {

short a:4;

short b;

short :12; // 無名ビットフィールド

short c:4;

} ST={1,1,3};

_ST:

.DATA.W H'1000

.DATA.W H'0001

.DATAB.B 1,0 ; 正しくは

.DATA.W H'0300 ; .DATA.W H'0003

【発生条件】

 以下の条件をすべて満たす場合、発生することがあります。

(1) 構造体の中にビットフィールド、無名ビットフィールド、ビットフィールドでない

メンバが混在し、以下の順番で定義されている。

struct A{

:

ビットフィールド

:

ビットフィールドでないメンバ

無名ビットフィールド // (A)

ビットフィールド // (B)

:

Page 45: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 12 -

};

(2) (A)(B)のメンバの型サイズが2バイト以上である。

(3) (A)の無名ビットフィールドのサイズが8ビット以上である。

(4) (A)(B)のビットフィールドのサイズの合計が以下の通りである。

(a) (A)(B)の型サイズがともに2バイトの場合 :16ビット以下

(b) (A)(B)の型サイズがともに4バイトの場合 :32ビット以下

(5) 構造体の変数が定義時に初期値設定されている。

3.12 ループ展開不正

speedオプションまたはloopオプション指定時、ループ展開最適化でループ判定式を不当に置きかえ

る場合がある不具合を解決しました。

<例>

int a[100];

void main(int n) {

int i;

for (i=0; i<n; i++) {

a[i] = 0;

}

}

_main:

MOV R4,R7

ADD #-1,R4 ; R4が0x80000000の場合、アンダフローとなり

; R4は0x7FFFFFFFとなる

MOV R4,R6

CMP/PL R4 ; 比較結果が実際の結果と逆になる

MOV #0,R4

BF L12

ADD #-1,R6

:

【発生条件】

 以下の条件をすべて満たす場合、発生することがあります。

(1) speedオプションまたはloopオプションを指定している。

(2) 関数内でループ文を使用している。

(3) ループ上限値が以下の通りである。

(a) 制御変数がインクリメントされていくループの場合(i += step)

ループ上限値が0x80000000~0x80000000+step-1の範囲である。

(b) 制御変数がデクリメントされていくループの場合(i -= step)

ループ上限値が0x7FFFFFFF~0x7FFFFFFF-step+1の範囲である。

上限値が変数の場合、変数に(a)または(b)を満たす値が設定されている場合に動作不正になる。

3.13 構造体、配列引数の不当参照

Page 46: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 13 -

 関数の引数に構造体/共用体または配列を使用した場合、そのメンバや配列要素を参照する時に、

不正なアドレスを参照する場合がある不具合を対策しました。

<例>

typedef struct{

int A[10];

double B;

char F[20];

} ST;

extern ST f(ST a,ST b);

ST S;

extern int X;

void func(ST a,ST b) {

ST t;

if (a.B!=f(S,t).B){

X++;

}

if (a.B!=b.B){

X++;

}

}

:

L12:

MOV R15,R2

MOV.W L15+2,R0 ; H'014C

ADD R0,R2

MOV R15,R0

MOV.W L15+4,R0 ; H'0190 R0を不正に破壊

ADD R0,R0

MOV.L @R2,R4

MOV.L @(4,R2),R7

MOV R0,R2

MOV.L @R2,R6 ; b.Bでない場所をアクセス

:

【発生条件】

 以下の条件をすべて満たす場合、発生することがあります。

(1) 引数が構造体/共用体または配列である関数が存在する。

(2) 該当関数内で引数の構造体/共用体メンバまたは配列要素を参照している。

3.14 JMP命令の不当削除

 speedオプションを指定してコンパイルした場合、JMP命令を不当に削除する場合がある不具合を

対策しました。

Page 47: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 14 -

<例>

void f(){

int i,j=0;

for (i=0; i<10; i++)

if (j%2) j++;

sub();

}

void sub() {

:

}

_f:

:

L20:

ADD #-1,R5

TST R5,R5

BF L11

MOV.L L23,R2 ; _sub 以下3命令が削除される

JMP @R2 ; |

NOP ; V

L18:

MOV R6,R0

AND #1,R0

BRA L16

MOV R0,R2

L13:

MOV R6,R0

AND #1,R0

BRA L14

MOV R0,R2

_sub:

:

【発生条件】

 以下の条件をすべて満たす場合、発生することがあります。

(1) speedオプションを指定する。

(2) 該当関数の最後の処理が関数呼び出しである。

(3) (2)の関数呼び出しがインライン展開されない。

(4) (2)の関数呼び出し先が該当関数の直下にある。

(5) 該当関数内でループ文や条件文を使用している。

3.15 ループ判定式不正

 以下Cソースをoptimize=1でコンパイル時、ループ判定式を不当に置きかえる場合がある不具合を

Page 48: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 15 -

対策しました。

<例>

void f1() {

int i;

for (i=-1; i<INT_MAX; i++) {

a[i] = 0;

}

}

_f1:

MOV.L L13,R2 ; _a

MOV #-4,R6 ; H'FFFFFFFC

MOV R6,R5

MOV #0,R4 ; H'00000000

ADD #-4,R2

L11:

ADD #4,R6

MOV.L R4,@R2

CMP/GE R5,R6 ; H'FFFFFFFCと比較

ADD #4,R2

BF L11

RTS

NOP

【発生条件】

 以下の条件をすべて満たす場合、発生することがあります。

(1) optimize=1を指定している。

(2) 関数内でループ文を使用している。

(3) ループ上限値 - ループ下限値がオーバフローする。

例えば、for (i=-1; i < 0x7FFFFFFF; i++)

4. フォーマットコンバータ(Ver. 1.0C -> Ver. 1.0.04)

4.1 圧縮フォルダ内のファイルの入力

圧縮フォルダ内のファイルを入力しようとした場合、ファイルを認識できない(G3002エラー)

不具合を解決しました。

Page 49: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

- 16 -

5. 最適化リンケージエディタ(Ver. 7.1.04 -> Ver. 7.1.05)

5.1 -outputオプションでアドレス範囲指定時の内部エラー(7041)

outputオプションを指定した際、アドレス範囲で出力指定した場合に内部エラー(7041)

となる場合がある不具合を解決しました。

5.2 最適化抑止指定時の不当な最適化

下記条件を全て満たした際に、最適化抑止範囲が有効にならない不具合を解決しました。

(1) goptimizeオプション指定ありのファイルを入力

(2) optlnkで最適化を指定

(3) absolute_forbidオプションを指定

(4) 最適化抑止範囲を二つ以上記述(二つ目以降の指定が無効となる)

5.3 relocateファイル生成時のObject不正

下記条件を全て満たした際に不正なObjectコードが生成される不具合を解決しました。

(1) 入力にrelocateファイルを指定

(2) 出力にrelocateファイルを指定

(3) delete,もしくはrenameオプションを指定

5.4 map最適化使用時の不当なエラー(L2410)出力

map最適化指定時、オーバーレイを使用している場合に不当なエラーが出力される

不具合を解決しました。

5.5 レジスタ退避/回復コード最適化指定時のインターナルエラー(1703)

 レジスタ退避/回復コード最適化を指定時に、インターナルエラー(1703)となる場合がある

不具合を解決しました。

Page 50: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

P0700CAS7-NB020528

1/2

ご使用上の注意事項

同封しておりますクロスソフトウェアには、下記に示します注意事項がございます。

ご留意いただきますようお願い申し上げます。

1.CPU による制限事項

同梱しておりますクロスソフトウェアは、使用する CPU により一部機能に制限事項がござ

います。

下記をご参照の上、ご使用下さい。

 (1)ソフトウェアのバージョン

C コンパイラ Ver.7.0.06

アセンブラ     Ver.5.1

シミュレータ・デバッガ Ver.8.1.00(Windows®版)

Ver.4.2.00(UNIX 版)

(2)制限事項

表 1 CPU別制限事項

CPU コア DSP ライブラリ

サポート

CPU

シミュレーショ

キャッシュ

シミュレーション

SH-1 - ○ -

SH-2 - ○ ×

SH2-DSP ○ ○*1 ○*1

SH-2E - ○ ×

SH-3 - ○ ○

SH3-DSP ○ ○ ○

SH-4 - ○ ○

○:対応、×:非対応

*1:UNIX版は SH7065をサポートしていません。

付録 2-1

Page 51: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

P0700CAS7-NB020528

2/2

2.C++ ソースレベルデバッガについての注意

同梱のシミュレータデバッガにつきましては、 C++ 言語のソースレベルデバッグ可能です。

別売のエミュレータにつきましては、C++ 言語のソースレベルデバッグは、デバイス、エミュ

レータの組み合わせによってサポートされていない場合があります。

弊社製エミュレータ(MY-ICE)の対応状況につきましては、弊社営業へお問い合わせくだ

さい。

(株)日立製作所製エミュレータにつきましては、2002 年 5 月現在の対応状況の可否を下記

に示します。

また、3rdParty 製エミュレータに関する C++ 言語サポートの可否は、各エミュレータメー

カにお問い合わせください。

表 2 (株)日立製作所製エミュレータの C++ ソースレベルデバッグ可否状況

ホスト E7000 E8000 E8000S E6000 E20 E10A

EWS ○ △*1 -*2 -*2 -*2 -*2

PC ×*3 ○ ○ ○ ○ ○

*1:SH7410 及び SH7612 のみ EWS 対応しております。

*2:同梱ソフトで EWS をサポートしておりません。

*3:PC 版 E7000 で C++ のサポート予定はありません。

                                                   以上

Page 52: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

1/1

付録 2-2

P0700CAS7-HN1

SH7055 使用上の注意事項

 SH7055 には FPU フェッチサイクル-DMAC/AUD バスサイクルの競合時に FPU が誤動作する

不具合があります。SH7055 をご使用の場合は、次の手順に従って開発してください。

1.C/C++プログラム

 オプション"-patch=7055"を指定してコンパイルしてください。

 HEW(日立統合開発環境)をご使用の場合は、コンパイラオプションダイアログボックスの

other->[Miscellaneous options:][Avoid illegal SH7055 instructions]をチェックしてください。

2.アセンブリプログラム

「3.不具合内容の詳細」に従ってプログラムを作成してください。

3.不具合内容の詳細

(「SH-2E SH7055F-ZTAT ハードウェアマニュアル 3.6 使用上の注意」より抜粋)

(1)FPUを使用(FPU命令もしくはFPUに関するCPU命令を使用)する場合

(a)BT、BF命令を使用せず、かわりにBT/S、BF/S命令を使用してください。

(b)TRAP命令、割り込み/例外処理の分岐先を4n番地に配置してください。その際、4n番地と

4n+2番地にFPU命令もしくはFPUに関するCPU命令を配置しないでください。

(2)FPUを使用(FPU命令もしくはFPUに関するCPU命令を使用)しない場合

 パワーオンリセット後、DMACもしくはAUDのバスサイクルが発生するまでにFPUをモ

ジュールスタンバイ状態にしてください。

 具体的には、モジュールスタンバイコントロールレジスタのビット1 に1を書いてください。

 この操作は、消費電流を低減させる上でも有効です。

 FPUがモジュールスタンバイ状態になると、以後のFPU命令およびFPUに関するCPU命令は

不当命令として例外処理されます。

以上

Page 53: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

P0700WSD8-RE020530

1/3

SuperHTM RISC engine シミュレータ・デバッガ 制限事項

この度お買い上げ戴いた SuperHTM RISC engine シミュレータ・デバッガには、以下に示す制限事項

がありますのでご注意ください。

1.ウィンドウおよびダイアログボックス

1.1 スクロール

インテリジェントマウスで上スクロールができない場合があります。

この場合は、ウィンドウ上のスクロールボタンを使用してください。

1.2 Memory ウィンドウ

1.2.1 MEMORY_EDIT コマンド

文字を一重引用符(‘)で囲っても ASCII 文字列をデータとして入力できません。

文字列をデータとして入力する場合は対応する数値を入力してください。

1.2.2 スクロール

ワードサイズでの表示時にスクロールにより表示が乱れる場合があります。

この場合は、リフレッシュを実行してください。

1.2.3 In-Place エディット機能

UNICODE フォーマットでの表示時に In-Place エディット機能が正常に動作しない場合があります。

1.3 I/O ウィンドウ

I/O レジスタ内容を編集するための Edit ダイアログボックスを開くと Current Value および New Value

に不正な値を表示する場合があります。その状態で OK を選択すると I/O レジスタ内容が不正となります。

Edit ダイアログボックスで不正な値を表示した場合は、Cancel を選択するか正しい値を入力後に OK を

選択してください。

1.4 Debug Settings...ダイアログボックス

1.4.1 Connect up to target on debug go

Option タブの”Connect up to target on debug go”チェックボックスの設定にかかわらず Debug Settings

完了時にターゲットを接続します。

1.4.2 Command batch file load timing

(1) Option タブの"Command batch file load timing"で"At target connection"を選択したコマンドファイ

ル中に INITIALIZE コマンドを指定した場合、Command Line ウィンドウで INITIALIZE コマンド

を実行しないでください。初期化する場合は、[Debug -> Initialize]を選択してください。

付録 2-3

Page 54: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

P0700WSD8-RE020530

2/3

(2) Option タブの"Command batch file load timing"で"At target connection"を選択したコマンドファイ

ルに以下のコマンドは指定しないでください。

(a) OPEN_WORKSPACE コマンド

(b) CHANGE_PROJECT コマンド

(c) CHANGE_CONFIGURATION コマンド

(3) Option タブの"Command batch file load timing"で"Before download of modules"または"After

download modules"を選択したコマンドファイルに以下のコマンドは指定しないでください。

(a) OPEN_WORKSPACE コマンド

(b) CHANGE_PROJECT コマンド

(c) CHANGE_CONFIGURATION コマンド

(d) GO コマンド

(e) GO_RESET コマンド

(f) GO_TILL コマンド

(g) STEP コマンド

(h) STEP_OUT コマンド

(i) STEP_OVER コマンド

1.4.3 Command Line Batch Processing

Option タブの Command Line Batch Processing ではプレースフォルダのうち"File directory"および

"Command directory"を使用できません。また、相対パス形式でコマンドファイルを指定すると正しくファ

イルにアクセスできない場合があります。

プレースフォルダを適用できないコマンドファイルは絶対パス形式で指定してください。

2.式

2.1 シンボル

式のシンボルに C++プログラムの関数名は指定できません。

2.2 演算子

下記単項演算子を含む式を評価できない場合があります。

!,~,+,-

Page 55: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

P0700WSD8-RE020530

3/3

3.その他

3.1 MAC.L 命令での演算結果不正

3.1.1 現象

 MAC.L 命令での飽和演算時,実機と演算結果が異なる場合があります。

3.1.2 発生条件

 MAC.L 命令での飽和演算時,MAC レジスタの初期値が H'FFFF800000000000 (最小値 )から

H'00007FFFFFFFFFFF (最大値)の範囲を越えている場合。

3.1.3 回避策

 MAC.L 命令での飽和演算時は,かならず MAC レジスタの初期値を H'FFFF800000000000(最小値)か

ら H'00007FFFFFFFFFFF(最大値)の範囲内として演算を開始してください。

4.マニュアルおよびヘルプ

4.1 HEW チュートリアル

Hitachi Embedded Workshop 2 チュートリアル(HS6400EWIW2SJH)の表示内容と、実際の実行結果

は、使用される HEW、コンパイラ、最適化リンケージエディタのバージョンにより、異なる場合があり

ます。注意してご使用いただくようお願いいたします。

特に、スタック領域、実行命令数、実行サイクル数、トレース情報、メモリ内容については、異なる場合

がありますので、ご注意ください。

4.2 ヘルプ

英語版 Windows でヘルプ使用時に、以下のようなメッセージボックスが表示される場合があります。

Download ボタンを押して、”Japanese Text Display Support”をダウンロードするか、Never download

any of these componebts.チェックボックスをチェックしてから Cancel ボタンを押してくださ

い。”Japanese Text Display Support” をダウンロードしなくても、ヘルプの表示には影響ありません。

以上

Page 56: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

付録 3-1

1/1

HS6400EWIW2SJB-ER011105

「Hitachi Embedded Workshop 2.0 HEW Builder ユーザーズマニュアル」正誤表

Hitachi Embedded Workshop 2.0 HEW Builder ユーザーズマニュアル(HS6400EWIW2SJB)に下記に示

す誤りがありますので、お詫びするとともに、マニュアルを訂正してくださるようお願いいたします。

表 「Hitachi Embedded Workshop 2.0 HEW Builder ユーザーズマニュアル」正誤表

No. ページ 項目 誤 正

1 21 2.6.4 複 数 の プ ロ

ジェクトをビルド実

行する

(変更)

4. すべてのプロジェクトにビル

ド実行したい場合、” Build all”

ボタンをクリックしてくださ

い。自動的に全プロジェクトとコ

ンフィグレーションを選択し、す

べてのビルド実行を行います。

4. また、選んだ項目に対して、

全ビルド実行したい場合、

” Build all” ボタンをクリックし

てください。

以上

Page 57: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700CLCS7SJ-ER020522

1/2

SuperH RISC engine C/C++コンパイラ、

アセンブラ、最適化リンケージエディタ

ユーザーズマニュアル 正誤表

 SuperH RISC engine C/C++コンパイラ、アセンブラ、最適化リンケージエディタユーザーズマ

ニュアル(HS0700CLCS7SJ)に以下に示す誤りがありますので、お詫びするとともに、マニュア

ルを訂正してくださるようお願い申し上げます。

No. ページ 内容1 195 <修正>

(f) ビットフィールド

Little Endian: 0x100 番地 0x020x101 番地 0x000x102 番地 0x010x103 番地 0x000x104 番地 0x000x105 番地 0x080x106 番地 空き領域

0x107 番地 空き領域

Little Endian: 0x100 番地 0x010x101 番地 0x000x102 番地 0x020x103 番地 0x000x104 番地 0x000x105 番地 0x080x106 番地 空き領域

0x107 番地 空き領域2 206 <修正>

#pragma interrupt (f(sp=STK+100,tn=10,A::g)extern int STK[100];

extern int STK[100];#pragma interrupt (f(sp=STK+100,tn=10,A::g)

付録 3-2

Page 58: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700CLCS7SJ-ER020522

2/2

No. ページ 内容3 537 <修正>

H’FFFF0004 番地から H’FFFF000F 番地は、.ORG によって変化しません。

H’FFFF0004 番地から H’FFFF000F 番地には H’00 が埋めこまれます。

4 538 <修正>

コードセクションに.ALIGN を記述すると、アセンブラは NOP 命令のオ

ブジェクトコード*をメモリ上に埋めこみ、ロケーションカウンタ値を補

正します。半端なバイトサイズの領域には H'09を埋めこみます。

データセクション、ダミーセクション、スタックセクションに.ALIGN を

記述すると、アセンブラは単にロケーションカウンタ値を補正するだけ

で、メモリ上にオブジェクトコードを埋めこみません。

コードセクション、データセクションに.ALIGN を記述すると、アセンブ

ラは NOP 命令のオブジェクトコード*をメモリ上に埋めこみ、ロケーショ

ンカウンタ値を補正します。半端なバイトサイズの領域には H'09 を埋め

こみます。5 715 <追加>  部分

L2410(E)Address value specified by map file differs fromone after linkage as to "シンボル"

"シンボル"のアドレス値がコンパイル時に使用した外部シンボル割り付け情報ファイル内のアドレスとリンク後のアドレスで異なっています。コンパイル時の map オプション指定前後でプログラムを変更していない

か確認してください。または、optlnk の最適化によって、コンパイル時

の map オプション指定前後のシンボル並び順が変ることがあります。コ

ンパイル時 map オプションを無効にするか、optlnk の最適化オプショ

ンを無効にしてください。

以上

Page 59: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

1/38

SuperHTM RISC engine シミュレータ・デバッガ ユーザーズマニュアル正誤表

SuperHTM RISC engine シミュレータ・デバッガ ユーザーズマニュアル(HS0700SDIW8SJ)に以下に示す誤りがあ

りますので、お詫びするとともに、マニュアルを訂正してくださるようにお願い申し上げます。

1. はじめに

ページ番号 項番 分類 誤 正

1 1.1 (3) 追加 アセンブラソースレベルのカバレジ

表示

C/C++およびアセンブラソースレベ

ルのカバレジ表示

2 1.2 変更 ELF/DWARFフォーマット ELF/DWARF2フォーマット

3 1.3 (1) 追加 - SH3-DSP シリーズには DSP 機能

の異なる SH3-DSP(Core)と SH3-DSP があります。

SH3-DSP シリーズと表記した場合

は、SH3-DSP(Core)、SH3-DSPをあらわします。

1.3 (2) 追加 - 表 1-1 のデバッグプラットフォーム

に SH3-DSP(Core)を追加

下表参照

表1-1 シミュレータ・デバッガの機能と CPU の対応

デバッグ

プラットフォーム名

エンディアン指定 MMU キャッシュ 制御レジスタ BSC DMAC

SH3-DSP(Core) ◯ ◯ ◯ ◯ ― ―

【注】○はサポート -は未サポート △は部分サポート

2. システムの概要

ページ番号 項番 分類 誤 正

5 2.2 変更 ELF/DWARF フォーマットのオブ

ジェクト DLL を使用している場合

に、

ELF/DWARF2 フォーマットを使用

している場合は、

2.2.2 変更 [Option->Radix] [Options->Radix]

付録 3-3

Page 60: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

2/38

3. シミュレータ・デバッガの機能

ページ番号 項番 分類 誤 正

7 3.2 変更 SH-3/SH-3E/SH3-DSP/SH-4 シ

リーズ

SH-3/SH-3E/SH3-DSP シリーズ

/SH-4 シリーズ

8 3.49 3.515 3.1018 3.12 変更 System Configuration ダイアロ

グボックス

Simulator System ダイアログボッ

クス

26 3.13 (1) 追加 - ブレーク条件成立時の動作を

[Stop]と指定した場合、そのブレー

ク条件が成立するとプログラムを中

断します。詳しくは「5.1 Break」を

参照してください。

変更 デバッグ対象プログラム実行中に

ブレーク条件が成立した場合、

デバッグ対象プログラム実行中に

ブレーク条件が成立しプログラムが

中断した場合、

3.13 (2) 変更 System Configuration ダイアロ

グボックス

Simulator System ダイアログボッ

クス

29 3.16(1) (2) (3)

変更 Called (グローバル変数アクセス

回数)Times (関数呼出し回数またはグ

ローバル変数アクセス回数)30 3 追加 - 「疑似割込み」 追加

下記参照

追加 - 「カバレジ」 追加

下記参照

擬似割込み

シミュレータ・デバッガでは、シミュレーション中に擬似割込みを発生させることができます。擬似割

込みを発生させるには、以下の 2 通りの方法があります。

(1) ブレーク条件成立時の動作による擬似割込み発生

ブレーク系コマンドで、ブレーク条件成立時の動作に[Interrupt]を指定することにより、擬似割込みを

発生させることができます。

詳しくは、「5.1 Break」を参照してください。

(2) Trigger Window による擬似割込み発生

Trigger Window のボタンをクリックすることにより、擬似割込みを発生させることができます。

詳しくは、「5.21 Trigger」を参照してください。

なお、擬似割込みが発生してからその割込みを受け付けるまでの間に、次の擬似割込みが発生した場合

は、優先順位の高い割込みだけを残します。

【注】 割込みを受け付けるかどうかの判定は、選択されたデバッグプラットフォームの CPU の仕様に

従います。ただし、優先順位に H’11 を指定した場合は、常に割込みを受け付けます。また、割

込みコントローラはシミュレーションしていません。

Page 61: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

3/38

カバレジ

シミュレータ・デバッガでは、ユーザが指定したアドレス範囲について命令実行中に命令カバレジ情報

を収集できます。

収集した命令カバレジ情報はカバレジウィンドウに表示します。表示内容は以下のとおりです。

Times(命令実行回数)

Pass(条件分岐命令の実行結果)

T:分岐のみ実行

F:未分岐のみ実行

T/F:分岐および未分岐実行

-:分岐命令でないかまたは命令未実行

Address(命令アドレス)

Assembler(逆アセンブル表示)

Source(C/C++またはアセンブラソース)

命令カバレジ情報は命令実行済のソース行に対応するカラムを強調表示することでエディタウィンドウ

にも表示します。

命令カバレジ情報はファイルへの保存およびファイルからのロードが行えます。ロードできるのは.COV

ファイル形式のみです。

命令カバレジ情報を利用することで各命令の実行状態を観察できます。さらにプログラムのどの部分が

未実行であるかを容易に特定できます。

詳しくは「5.57 Coverage」から「5.64 Save Coverage Dataダイアログボックス」を参照してください。

Page 62: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

4/38

4. メニュー

ページ番号 項番 分類 誤 正

33 4.1.16 削除 「4.1.16 TLB」 削除 -

4.1.18 削除 「4.1.18 Cache」 削除 -

34 4.1 追加 - 「Trigger」 追加

下記参照

36 4.3.15 変更 「4.3.15 Download」 「4.3.15 Download Modules」

4.3 追加 - 「Unload Modules」 追加

下記参照

4.4.1 追加 - 検索条件として、一致/不一致、検

索方向を指定できます。

4.4.2 追加 - コピー元とコピー先のデータを比較

しながらコピーすることも指定でき

ます。

TriggerTrigger ウィンドウを開きます。シミュレーション中に手動で割り込みを発生させるためのトリガボ

タンを表示します。

Unload Modulesオブジェクトプログラムをアンロードします。

Page 63: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

5/38

5. ウィンドウおよびダイアログボックス

5.1 Break(変更)ページ番号 項番 分類 誤 正

39 5.1 変更 [Condition]の BCY 時

Cycle=サイクル数(10 進表示)[Condition]の BCY 時

Cycle=サイクル数(16 進表示)40 削除 【注】 の記述削除 -

5.1.3 変更 「5.1.3 Enable / Disable」 「Enable」 と「Disable」に分割

下記参照

41 5.1.8 変更 「Close All File」 「Close All Files」

Enable選択しているブレークポイントを有効にします。

Disable選択しているブレークポイントを無効にします。無効にした場合は、ブレークポイントはリストには残

りますが、指定した条件が一致してもブレークは成立しません。

5.3 Set Break ダイアログボックス(Action シート)(変更)ページ番号 項番 分類 誤 正

44 5.3 変更 [Interrupt Type1]の説明

CPU ごとに下記を指定します。

CPU ごとに下記を指定します。

(接頭辞省略時は 16 進入力、16進表示)

変更 [Interrupt Type2]の説明

SH3-DSP シリーズのみ下記を指

定可能です。

SH3-DSP シリーズのみ下記を指定可能です。

(接頭辞省略時は 16 進入力、16進表示)

変更 【注】の最終行

最初に成立した条件のみが有効に

なります

最初に成立した動作のみが有効に

なります

5.4 Command Line(変更)ページ番号 項番 分類 誤 正

45 5.4 追加 - 最終行で Ctrl+↑または Ctrl+↓を押すと過去に実行したコマンド

行を呼び出すことができます。

5.4.1 変更 - 下記参照

5.4.2 変更 最後に実行したコマンドファイルを

実行します。

Set Batch File ダイアログボックスで指定したコマンドファイルを実行します。

46 5.4 追加 - 「Placeholder」追加

下記参照

Page 64: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

6/38

5.4.1 Set Batch File...

Set Batch File ダイアログボックスを表示します。コマンドファイル名(*.hdc)を入力できます。 [Play]ボ

タンをクリックすることにより、ダイアログボックスを閉じて、設定したコマンドファイルを実行します。

[OK]ボタンをクリックすると、設定したコマンドファイル名を、ウィンドウタイトルに表示します。[Cancel]

ボタンをクリックすると、設定を変更しないでダイアログボックスを閉じます。

図5-5 Set Batch Fileダイアログボックス

Placeholder選択したプレースホルダをカーソル位置に貼り付けます。カーソルが最終行にある場合のみ使用できま

す。

5.5 Disassembly(変更)ページ番号 項番 分類 誤 正

47 5.5 削除 「n イベントを設定している」 削除 -

48 5.5.2 変更 Go To Cursor Go to cursor変更 本機能はブレーク条件を使用して

います。ブレーク条件がすでに 255個設定してある場合は、本機能は

使用できません。

本機能は PC ブレークポイントを使用しています。PC ブレークポイントがすでに 255 個設定してある場合は、本機能は使用できません。

5.5.3 変更 Set Address Set Address…変更 Go to Address ダイアログボックス

を表示します。

Set Address ダイアログボックスを表示します。

5.5.5 変更 Edit Edit…5.5.6 変更 Code Byte Code Bytes5.5.7 変更 Toggle BP Toggle Breakpoint

5.6 IO(変更)ページ番号 項番 分類 誤 正

49 5.6 変更 ウィンドウ内で右クリックすると使用可能なオプションをポップアップメニューで表示します。

名前をダブルクリックすると EditRegister ダイアログボックスを表示します。制御レジスタの値を変更できます。

5.6.1 削除 「5.6.1 Edit」 削除 -

5.6.2 削除 「5.6.2 Toggle Bit」 削除 -

Page 65: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

7/38

5.7 Label(変更)ページ番号 項番 分類 誤 正

50 5.7 変更 ・ BP の説明

標準ブレークポイント

・ BP の説明

PC ブレークポイント

削除 「・Address」 削除 -

削除 「・Name」 削除 -

削除 「右クリックするとBP 列に現在サ

ポートしている標準ブレークポイン

トタイプを表示します。現在、選択し

ているブレークポイントタイプをメ

ニューの左側にチェックしていま

す。」 削除

5.7.1 変更 Valueフィールド Address フィールド

5.7.251 5.7.3 変更 Yes ボタンをクリックすると [OK]を押すと

5.7.452 5.7.5 変更 Open をクリックすると [Open]を押すと

5.7.75.7.8 削除 「5.7.8 PC Break」 削除 -

53 5.7.12 削除 「5.7.12 Copy」 削除 -

5.9 Memory(変更)ページ番号 項番 分類 誤 正

55 5.9 追加 - 「Lock Refresh」 追加

下記参照

5.9.1 追加 - 「5.9.1 Search…」の説明追加

検索条件として、一致/不一致、検索方向を指定できます。検索条件に合ったデータのアドレスからMemory ウィンドウを表示します。

5.9.2 変更 「5.9.2 Start Address…」の説明

新しい開始アドレスを入力すると、

「5.9.2 Start Address…」の説明新しい開始アドレスと終了アドレスを入力すると、

追加 - 「5.9.2 Start Address…」の説明追加

詳細は、「HEW デバッガ ユーザーズマニュアル 7.3 複数ラベルをサポートする」を参照してください。データ表示サイズを指定することができます。

5.9.3 追加 - 「5.9.3 Copy」の説明追加

コピー元とコピー先のデータを比較しながらコピーすることも指定できます。

Lock Refreshユーザプログラム実行停止時などに、自動的に Memoryウィンドウ内容を更新しないようにします。

Page 66: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

8/38

5.10 Performance Analysis(変更)ページ番号 項番 分類 誤 正

57 5.10.1 追加 - また、’Insert’キーでもPerformance Option ダイアログボックスを開くことができます。

5.10.2 追加 - また、’Enter’キーでもPerformance Option ダイアログボックスを開くことができます。

5.10.5 追加 - また、’Delete’キーでも範囲設定を削除することができます。

5.13 Source(変更)ページ番号 項番 分類 誤 正

59 5.13 追加 - また、カバレジ情報も表示します。

削除 「n イベントを設定している」 削除 -

5.13.2 変更 「Enable/Disabel Breakpoint」 「Enable/Disable Breakpoint」60 5.13 追加 - 「Instant Watch…」 追加

下記参照

5.13.3 変更 「5.13.3 Go To Cursor」の説明

本機能はブレーク条件を使用して

います。ブレーク条件がすでに 255個設定してある場合は、本機能は

使用できません。

「5.13.3 Go To Cursor」の説明

本機能は PC ブレークポイントを使用しています。PC ブレークポイントがすでに 255 個設定してある場合は、本機能は使用できません。

5.13.5 変更 「Go to Disassembly」 「Go To Disassembly」

Instant Watch…Instant Watch ダイアログボックスが開き、カーソル上の変数を表示します。

図5-12 Instant Watch ダイアログボックス

変数名の左側の‘+’記号はクリックすれば情報を拡張表示できることを、‘-’記号は情報を縮小表示でき

ることを示します。[Add]を押すと、変数を Watch ウィンドウに登録して、ダイアログボックスを閉じま

す。[Close]を押すと、変数を Watch ウィンドウに登録しないで、ダイアログボックスを閉じます。

Page 67: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

9/38

Source address カラム(追加)

プログラムをダウンロードすると、現在のソースファイルに対して、Source ウィンドウがアドレスを更

新したり表示したりします。アドレスは Source ウィンドウの左側に表示します。本機能は PC 値やブレー

クポイントをどこに設定するかを決めるときに便利です。図 5-23 にSource ウィンドウと address カラム

を示します。

図5-23 Source ウィンドウと address カラム

すべてのファイルについて address カラムを表示/非表示にする手順は以下のとおりです。

1. エディタウィンドウ上で右クリックしてください。

2. [Define Column Format...]メニュー項目をクリックしてください。

3. [Global Editor Column States]ダイアログボックスを表示します。

4. Check status はカラム表示/非表示を示します。チェックがある時にカラムを表示します。チェックボッ

クスがグレーの場合、一部のファイルではカラム表示が有効で、他のファイルでは無効であること

を意味します。

5. OK をクリックして、新しいカラム設定を有効にしてください。

一つのファイルについて address カラムを表示/非表示にする手順は以下のとおりです。

1. カラム表示を変更したいエディタウィンドウ上で右クリックしてください。エディタポップアップ

メニューを表示します。

2. [Columns]メニュー項目をクリックしてください。メニュー項目を一覧表示します。各カラムは、

このポップアップメニューに表示します。カラムが表示状態ならば名前の横にチェックマークが付いて

います。カラム名のクリックにより表示/非表示を切り替えてください。

Page 68: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

10/38

図5-24  Global Editor Column States ダイアログボックス

Debugger カラム(追加)

どのコンポーネントも Disassembly および Source ウィンドウにカラムを追加することができます。カラ

ムの例として、デバッガ実行中にコードカバレジをグラフィカルに表示するカバレジカラムや、ターゲッ

トに設定しているハードウェアブレークポイントを表示するターゲットコンポーネントカラムがあります。

カラム上で右クリックすると、そのカラムに対するポップアップメニューを表示します。メニューはカ

ラムごとに異なり、またカラム上でのダブルクリックもカラムごとに異なった働きをします。例えば、ター

ゲットカラムではハードウェアブレークポイントの設定となります。

5.14 Status(変更)ページ番号 項番 分類 誤 正

60 5.14 削除 「ウィンドウ内でマウスの右ボタンをクリックするとポップアップメニューを表示します。このメニューは以下のオプションを含みます。」 削除

61 5.14.1 削除 「5.14.1 Update」 削除 -

5.14.2 削除 「5.14.2 Copy」 削除 -

Page 69: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

11/38

5.15 Trace(変更)ページ番号 項番 分類 誤 正

61 5.15 (1) 変更 [CYCLE] [Cycle]変更 [ADDR] [Address]変更 [PIPELINE] [Pipeline]

62 変更 [INSTRUCTION]命令ニーモニックとデータアクセス(転送先←転送データの形式で表示)

[Instruction]命令ニーモニック

62 追加 - [Access Data]データアクセス(転送先←転送データの形式で表示)

5.15 (2) 変更 [CYCLE] [Cycle]変更 [ADDR-BUS] [Address Bus]変更 [DATA-BUS] [Data Bus]変更 [CODE] [Code]変更 [INSTRUCTION] [Instruction]追加 [ACCESS DATA] [Access Data]

63 5.15 (3) 変更 [CYCLE] [Cycle]変更 [ADDRESS] [Address]変更 [CODE] [Code]変更 [INSTRUCTION]

命令ニーモニックおよびデータアクセスの内容(転送先←転送データの形式で表示)

[Instruction]命令ニーモニック

追加 - [Access Data]データアクセスの内容(転送先←転送データの形式で表示)

64 5.15 (4) 変更 [CYCLE] [Cycle]変更 [ADDRESS] [Address Bus]変更 [code1] [Code1]変更 [code2] [Code2]追加 - [No]

命令の番号(各ステージの実行番号と対応しています)

追加 - [Address]実行した命令アドレス

追加 - [Code]実行した命令コード

変更 [INSTRUCTION]実行した命令の番号、実行する命令のメモリ上のアドレス、命令コード、ニーモニック

[Instruction]実行した命令ニーモニック

変更 [ACCESS DATA] [Access Data]65 5.15.6 変更 「5.15.6 View Source」の説明

該当アドレスに対応したソースプログラムや逆アセンブルを表示します。

「5.15.6 View Source」の説明

該当アドレスに対応したソースプログラムを表示します。

5.15 追加 - 「Statistic」 追加

下記参照

Statistic指定された条件で統計情報の解析を実行します。

Page 70: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

12/38

5.16 Trace Acquisition ダイアログボックス(変更)ページ番号 項番 分類 誤 正

65 5.16 変更 [Trace start/Stop] [Trace Start/Stop]変更 [Instruction type] [Instruction Type]変更 [Trace buffer full handling] [Trace Buffer Full Handling]変更 [Trace capacity] [Trace Capacity]

Trace Statistic ダイアログボックス(追加)

図5-32 Trace Statistic ダイアログボックス

本ダイアログボックスは、トレース情報の統計情報解析に使用します。[Item]で解析対象項目を指定し、

[Start]および[end]で入力値または文字列を指定します。

[Default]を選択すると入力値または文字列を範囲で指定することはできません。範囲で指定する場合は

[Range]を選択してください。

[Set] 現在の条件に追加設定します

[New] 新しい条件を指定します

[Result] 統計情報解析の結果を取得します

[Clear] すべての条件と統計情報解析結果を削除します

[Close]ボタンをクリックすると、ダイアログボックスを閉じます。

Page 71: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

13/38

Trigger(追加)

本ウィンドウは、手動で割込みを発生させるためのトリガボタンを表示します。トリガボタン押下時に

発生する割込みの内容は、Trigger Setting ダイアログボックスで設定します。

トリガボタンは最大 16 個まで設定できます。

シミュレータ・デバッガの割込み処理については、「3.17 擬似割込み」を参照してください。

図5-33 Trigger ウィンドウ

ウィンドウ内でマウスの右ボタンをクリックするとポップアップメニューを表示します。このメニュー

は以下のオプションを含みます。

Setting...Trigger Setting ダイアログボックスを表示します。各トリガボタン押下時に発生する割込みの内容を設

定します。

SizeTrigger ウィンドウに表示するトリガボタンのサイズを指定できます。サブメニューでトリガボタンサ

イズを Large、Normal、Small から選択します。

Page 72: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

14/38

Trigger Setting ダイアログボックス(追加)

図5-34 Trigger Setting ダイアログボックス

本ダイアログボックスでは、トリガボタン押下時に発生する割込みの内容を設定します。

[Trigger No.] 設定するトリガボタンを選択します。

[Name] Trigger ウィンドウに表示するトリガボタンの名前を指定します。

[Enable] チェックするとトリガボタンが有効になります。

[Interrupt Type1] CPU ごとに下記を指定します。

・ SH-1、SH-2、SH2-DSP シリーズ

割込みベクタ番号(0~H‘FF)

・ SH-3、SH-4、SH3-DSP シリーズ

INTEVT 値(0~H‘FFF)

[Interrupt Type2] SH3-DSP シリーズのみ下記を指定可能です。

INTEVT2 値(0~H‘FFF)

[Priority] 割込み優先順位を指定します。(接頭辞省略時は 16 進入力、16 進表示)(0~H‘11)

H‘10 指定時は、SR の I ビットによらず割込みが発生しますが、SR の BL によってマ

スクします。

H‘11 指定時は、SR の I ビット、BL ビットによらず、割込みが発生します。

指定した内容は、[OK]ボタンをクリックすることにより設定します。[Cancel]ボタンをクリックすると、

設定しないでダイアログボックスを閉じます。

【注】 複数のトリガボタンの設定を変更した後に[Cancel]ボタンをクリックすると、全てのトリガボタ

ンの設定変更が無効になります。

Page 73: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

15/38

5.18 Watch(変更)

図 5-4 Watch ウィンドウ

ページ番号 項番 分類 誤 正

67 5.18 変更 C/C++ソースファイルとのリンクが取れれば表示します。リンクが取れない場合には、表示しません。

C/C++ソースプログラムの情報がある場合にのみ表示します。コンパイラ等の最適化により、ソースプログラムの情報としてデバッグ情報にない場合は表示できません。また、マクロ宣言されたものについても表示できません。

変更 変数をリスト表示し、‘+’記号は変数名をダブルクリックすれば情報を拡張表示できることを、‘-’記号は情報を収縮表示できることを示します。また、‘+’/‘-’キーでも拡張/収縮表示することができます。

変数名の左側の‘+’記号はクリック

すれば情報を拡張表示できること

を、‘-’記号は情報を収縮表示できる

ことを示します。また、‘+’/‘-’キーで

も拡張/収縮表示することができ

ます。 Rマークはその変数がリアルタイムに更新できることを示します。Rマークが太字のとき、その変数の値をプログラムの実行時に従ってリアルタイムに更新します。

追加 - ポップアップメニュー

「Auto Update」 追加

下記参照

追加 - ポップアップメニュー

「Auto Update All」 追加

下記参照

追加 - ポップアップメニュー

「Delete Auto Update」 追加

下記参照

追加 - ポップアップメニュー

「Delete Auto Update All」 追加

下記参照

5.18.1 変更 「5.18.1 Add Watch…」の説明

監視する変数または式を入力します。

監視する変数を入力します。

Page 74: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

16/38

ページ番号 項番 分類 誤 正

67 5.18.3 変更 「5.18.3 Delete」の説明

テキストカーソル(マウスカーソルではありません)の位置によって示した変数を

「5.18.3 Delete」の説明

選択している変数を

68 5.18.5 変更 「5.18.5 Radix」の説明

選択しているウォッチ項目の

「5.18.5 Radix」の説明

選択している変数の

5.18 追加 - ポップアップメニュー

「Save As…」 追加

下記参照

追加 - ポップアップメニュー

「Go To Memory…」 追加

下記参照

Auto Update選択している変数の R マークが太字になり、リアルタイム更新します。

Auto Update Allすべての R マークが太字になり、リアルタイム更新します。

Delete Auto Update選択している変数の R マークが中抜きになり、リアルタイム更新を解除します。

Delete Auto Update Allすべての R マークが中抜きになり、リアルタイム更新を解除します。

Save As...Save As ダイアログボックスを表示します。ファイル名を指定し、Watch ウィンドウに表示している内

容をセーブします。Append チェックボックスにチェックすると追加書きこみ、チェックしないと上書き

します。

Go To Memory...選択している変数が割り付いているメモリ内容を Memoryウィンドウに表示します。

Page 75: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

17/38

5.19 Simulator System ダイアログボックス(変更)ページ番号 項番 分類 誤 正

69 5.19 変更 [Step Unit]の説明

SH3-DSPSH-3DSP シリーズ

変更 [Memory Map]の説明

SH-1/SH-2/SH-2E/SH-3/SH-3E シリーズ

[Memory Map]の説明

SH-1/SH-2/SH-2E/SH-3/SH-3E

追加 - [Memory Map]の説明

SH-3DSP(Core)を追加

下記参照

[Memory Map]には、メモリ情報として、先頭アドレス・終了アドレス、メモリ種別、データバス幅、

アクセスサイクル数の順に表示します。表示するメモリ種別は次の通りです。

・ SH3-DSP(Core)XRAM(内蔵XRAM)、YRAM(内蔵YRAM)、URAM(ユーザRAM)、

EXT(外部メモリ)、I/O(内蔵I/O)

5.22 Simulator Memory Resource ダイアログボックス(変更)ページ番号 項番 分類 誤 正

73 5.22 変更 本ダイアログボックスは、対象 CPUに関する情報とメモリマップを表示します。

本ダイアログボックスは、対象 CPUに関する情報とメモリマップの設定および変更を行います。

5.42 Stack Trace(変更)ページ番号 項番 分類 誤 正

93 5.42.2 変更 Stack Trace Setting ダイアログボックスが開き、

Stack Trace Setting ダイアログボックスを表示します。

5.43 Profile(List シート)(変更)ページ番号 項番 分類 誤 正

94 5.43 変更 Called (グローバル変数アクセス回数)

Times(関数呼出し回数またはグローバル変数アクセス回数)

変更 カラムヘッダをクリックすると、アルファベット順または昇降順にソートして表示します。

カラムヘッダをクリックすると、アルファベットまたは数値の昇降順にソートして表示します。

変更 Function/Variable 列またはAddress 列をダブルクリックすると、該当するアドレスに対応したソースプログラムまたは逆アセンブルを表示します。

Function/Variable 列またはAddress 列をダブルクリックすると、該当するアドレスに対応したソースプログラムを表示します。

Page 76: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

18/38

5.44 Profile(Tree シート)(変更)ページ番号 項番 分類 誤 正

95 5.44 追加 - Times(関数呼出し回数)

96 変更 Address 列をダブルクリックすると、該当するアドレスに対応したソースプログラムまたは逆アセンブルを表示します。

Address 列をダブルクリックすると、該当するアドレスに対応したソースプログラムを表示します。

5.44.3 変更 プロファイルデータ測定がアクティブであれば、メニューテキストの左にチェックマークを表示します。

プロファイルデータ測定がON のとき、メニューテキストの左にチェックマークを表示します。

- 追加 - ポップアップメニュー

「Not trace the function call」 追加

下記参照

97 5.44.7 追加 - 【注】を追加

Not trace the function callメニューをチェックして測定した結果のプロファイル情報では、最適化リンケージエディタによる最適化は行えません。

5.44.9 (2) 変更 Show Functions/Variables Show Functions5.44.9 (3) 変更 Show Variables5.44.9 (4) 変更 未実行関数の表示を抑止することが

できます。最適化リンケージエディタが出力するスタック使用量情報

ファイル(拡張子:sni)がロードモ

ジュールと同一ディレクトリに存在しない場合、このチェックボックス

の設定に関わらず、未実行関数は表

示しません。

実行した関数のみ表示することがで

きます。最適化リンケージエディタが出力するスタック使用量情報ファ

イル(拡張子:sni)がロードモジュー

ルと同一ディレクトリに存在しない場合、このチェックボックスの設定

に関わらず、実行関数のみ表示しま

す。

5.44 追加 - ポップアップメニューに

「Properties...」 追加

下記参照

Not trace the function call本メニューをチェックすると、プロファイルデータ測定時に関数呼び出しをトレースしません。例えば、

OS のタスクスイッチのように通常の方法以外で関数が呼び出されるプログラムのデータを測定する場合

に使用します。

Profile ウィンドウの Tree シートで関数呼び出し関係を表示するためには、本メニューをチェックせ

ずにプロファイルデータを測定してください。また、測定結果のプロファイル情報ファイルを使用して、

最適化リンケージエディタによる最適化を行う場合も、本メニューをチェックしないでください。

Properties...本シミュレータ・デバッガでは使用できません。

Page 77: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

19/38

5.45 Profile-Chart(変更)ページ番号 項番 分類 誤 正

98 5.45.3 変更 プロファイルデータ測定がアクティブであれば、メニューテキストの左にチェックマークを表示します。

プロファイルデータ測定がON のとき、メニューテキストの左にチェックマークを表示します。

5.46 Image View(変更)ページ番号 項番 分類 誤 正

100 5.46.3 変更 Image Property ダイアログボックスを表示します。

Image Property ダイアログボックスを表示します。表示する画像データのフォーマットを指定します。

5.47 Image Properties ダイアログボックス(変更)ページ番号 項番 分類 誤 正

102 5.47 変更 【Color Information】【Bit/Pixel】の説明

選択した【Mode】によって、Bit/Pixel を指定します。(RGB/BGR/YcbCr 選択時有効)

選択した【Mode】によって、Bit/Pixel を指定します。(RGB/BGR 選択時有効)

変更 【Buffer Information】【Palette Address】の説明

カラーパレットデータのメモリ開始アドレスを指定します。(16 進表示)

カラーパレットデータのメモリ開始アドレスを指定します。(16 進表示)

(RGB/ BGR の 8Bit 選択時有効)

変更 【Buffer Information】【Width/Hight Size】の説明

画像の幅と高さを指定します。(RGB/ BGR の 8Bit 選択時有効)

画像の幅と高さを指定します。

変更 【View Information】【Start Position】の

【Buttom】

【Bottom】

変更 【View Information】【Width/Height Size】の説明

部分表示画像の幅と高さを指定します。

部分表示する画像の幅と高さを指定します。

5.49 Waveform(変更)ページ番号 項番 分類 誤 正

104 5.49 変更 「Waveform View」 「Waveform」

5.49.1 変更 表示対象メモリを変更したときに表示を更新します。

命令実行が停止したときに表示を更新します。

5.50 Waveform Properties ダイアログボックス(変更)ページ番号 項番 分類 誤 正

105 5.50 変更 [Data Size]の説明

データのフォーマットを指定します。

8Bit / 16Bit を指定します。

Page 78: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

20/38

5.51 Sample Information ダイアログボックス(変更)ページ番号 項番 分類 誤 正

106 5.51 変更 [Data Size]の説明

データのフォーマットを指定します。

8Bit / 16Bit を指定します。

変更 [Channel]の説明

データの Chanelを表示します。

データの Channel を表示します。

5.52 Coverage(変更)ページ番号 項番 分類 誤 正

107 5.52 変更 アセンブラレベルでの命令実行情報を表示します。

C/C++およびアセンブラレベルでの命令実行情報を表示します。

変更 なお、命令実行情報の取得条件は、Coverage Range ダイアログボックスで設定します。

なお、命令実行情報の取得条件は、Open Coverageダイアログボックスまたは Coverage Range ダイアログボックスで設定します。

108 5.52.3 変更 Coverage Range ダイアログボックスを表示します。

Coverage Range ダイアログボックスを表示します。命令実行情報の取得条件を設定します。

5.52.5 変更 「Clear Data」 「Clear Data…」

5.52 追加 - ポップアップメニューに

「Save Data...」 追加

下記参照

追加 - ポップアップメニューに

「Load Data...」 追加

下記参照

追加 - ポップアップメニューに

「Lock Refresh」 追加

下記参照

Save Data...カバレジ情報をファイルに保存するための Save Data ダイアログボックスを表示します。

Load Data...カバレジ情報をファイルからロードするための Load Data ダイアログボックスを表示します。

Lock Refreshカバレジ情報を更新する/しないを指定します。[Lock Refresh]を ON にすると、プログラム実行停止時

に[Times]および[Pass]のみ更新します。

Page 79: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

21/38

Open Coverage ダイアログボックス(追加)

図5-79 Open Coverage ダイアログボックス

カバレジアイコンをクリックすると、Open Coverage ダイアログボックスが開きます。

Open Coverage ダイアログボックスでは、[New Window]、[Open a recent coverage file]、または[Browse to

another coverage file]のいずれかを選択します。

[New Window]では、開始アドレスおよび終了アドレスを指定します。指定範囲についてカバレジ情報

を表示します。指定項目は以下のとおりです。

[Start Address] カバレジ情報表示の開始アドレスを指定します。(接頭辞省略時は 16 進で入力)

[End Address] カバレジ情報表示の終了アドレスを指定します。(接頭辞省略時は 16 進で入力)

[Open a recent coverage file]では、最近保存されたファイルを 4 個まで表示します。

[Browse to another coverage file]では、カバレジ情報ファイルを選択するファイルオープンダイアログボッ

クスを表示します。

Go To Address ダイアログボックス(追加)

図5-80 Go To Address ダイアログボックス

Coverage ウィンドウの表示アドレスを変更します。

Page 80: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

22/38

Save Data ダイアログボックス(追加)

図5-82 Save Dataダイアログボックス

保存するカバレジ情報ファイルの場所と名前を指定します。プレースホルダまたはブラウズボタンが使

用できます。

ファイル拡張子の入力を省略すると、ファイル拡張子として“.COV”を自動的に付加します。ファイル

拡張子として、“.COV”および“.TXT”以外を入力するとエラーメッセージを出力します。

Load Data ダイアログボックス(追加)

図5-83 Load Dataダイアログボックス

ロードするカバレジ情報ファイルの場所と名前を指定します。プレースホルダまたはブラウズボタンが

使用できます。

ロードできるファイル拡張子は“.COV”のみです。その他のファイル拡張子を入力するとエラーメッセー

ジを出力します。

Confirmation Request ダイアログボックス(追加)

図5-84 Confirmation Request ダイアログボックス

“Clear Data”、“Set Range...”をクリックするか、カバレジウィンドウを閉じようとすると、確認のダイア

ログボックスを表示します。

Page 81: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

23/38

Save Coverage Data ダイアログボックス(追加)

図5-85 Save Coverage Dataダイアログボックス

[File->Save Session]メニューオプションをクリックすると、Save Coverage Data ダイログボックスが表示

され、カバレジウィンドウのデータを別々またはまとめて保存することができます。

カバレジウィンドウが複数開いているとウィンドウ数分の Save Coverage Data ダイアログボックスが開

きます。

“No To All”ボタンをクリックすると、すべてのカバレジ情報を保存しないでダイアログボックスを閉じ

ます。

“Yes To All”ボタンをクリックすると、すべてのカバレジウィンドウデータを 1 個のファイルに保存し

ます。

Page 82: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

24/38

6. コマンドライン

6.7 BREAKPOINT(変更)

ページ番号 項番 分類 誤 正

114 6.7 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

115 変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

6.8 BREAK_ACCESS(変更)

ページ番号 項番 分類 誤 正

115 6.8 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

6.10 BREAK_CYCLE(変更)

ページ番号 項番 分類 誤 正

117 6.10 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

118 変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

6.11 BREAK_DATA(変更)

ページ番号 項番 分類 誤 正

119 6.11 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

120 変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

Page 83: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

25/38

6.14 BREAK_REGISTER(変更)

ページ番号 項番 分類 誤 正

121 6.14 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

122 変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

6.15 BREAK_SEQUENCE(変更)

ページ番号 項番 分類 誤 正

123 6.15 変更 シンタックス

<Action> Interrupt の説明

割込みを発生する

擬似割込みを発生する

124 変更 書式

<Interrupt><priority>の説明

割込み優先順位(デフォルト=0)

割込み優先順位(任意、デフォルト=0)

6.16 CLOCK_RATE(変更)

項番 分類 誤 正

124 6.16 変更 シンタックス

ckr <rate>ckr [<rate>]下記参照

パラメータ 型 説明

なし 現在のクロック比を表示します

<rate> 数値 外部クロックを 1 とした時の内部クロック比

1~16(デフォルト=1)

ただし、SH-4withBSC のみデフォルトは 3

Page 84: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

26/38

6.20 DEFAULT_OBJECT_FORMAT(変更)

ページ番号 項番 分類 誤 正

126 6.20 変更 説明:オブジェクト(プログラム)ファイルをロードするときのデフォルトフォーマットを表示します。FILE_LOADコマンドでフォーマットの指定を省略した場合に、このコマンドで表示したフォーマットが有効になります。

オブジェクト(プログラム)ファイルをロードするときのデフォルトフォーマットを表示します。FILE_LOADコマンドでフォーマットの指定を省略した場合に、このコマンドで表示したフォーマットが有効になります。

変更 シンタックス

dodo [<format>]下記参照

追加 - 例:

下記参照

シンタックス

do [<format>]パラメータ 型 説明

なし デフォルトフォーマットの設定を表示します

キーワード オブジェクトフォーマット

Binary バイナリタイプ

Elf/Dwarf2 Elf/Dwarf2 タイプ

IntelHex Intel Hex タイプ

<format>

S-Record S タイプ

例:

DO binary デフォルトフォーマットをバイナリに設定します

6.24 FILE_LOAD(変更)

ページ番号 項番 分類 誤 正

128 6.24 変更 シンタックス

fl <filename> [ <offset> ][ <state> ] [ <format> ]

fl [ <format> ] <filename>[ <offset> ] [ <state> ]

下記参照

シンタックス

fl [ <format> ] <filename> [ <offset> ] [ <state> ]パラメータ 型 説明

<format> キーワード オブジェクトフォーマット

(任意、デフォルト=DEFAULT_OBJECT_FORMAT の設定)

Binary バイナリタイプ

Elf/Dwarf2 Elf/Dwarf2 タイプ

IntelHex Intel Hex タイプ

S-Record S タイプ

<filename> 文字列 ファイル名

<offset> 数値 ロードアドレスに加えるオフセットを設定します

(任意、デフォルト=0)

<state> キーワード ベリファイフラグ(任意、デフォルト=V)

V ベリファイあり

N ベリファイなし

Page 85: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

27/38

6.25 FILE_SAVE(変更)

ページ番号 項番 分類 誤 正

129 6.25 変更 説明:メモリ内容をファイルへ保存します。 データはモトローラ S レコードフォーマットで保存します。すでに存在するファイル名を指定した場合は、上書きするかどうかユーザに確認します。ファイルの拡張子のデフォルトは、".MOT"です。シンボルは自動的にセーブしません。

メモリ内容をファイルへ保存します。すでに存在するファイル名を指定した場合は、上書きするかどうかユーザに確認します。ファイルの拡張子のデフォルトは、".MOT"です。シンボルは自動的にセーブしません。

変更 シンタックス

fs <filename> <start><end>

fs [ <format> ] <filename><start> <end>下記参照

シンタックス

fs [ <format> ] <filename> <start> <end>パラメータ 型 説明

キーワード オブジェクトフォーマット

(任意、デフォルト=DEFAULT_OBJECT_FORMAT の設定)

Binary バイナリタイプ

IntelHex Intel Hex タイプ

<format>

S-Record S タイプ

<filename> 文字列 ファイル名

<start> 数値 開始アドレス

<end> 数値 終了アドレス

6.29 GO_TILL(変更)

ページ番号 項番 分類 誤 正

131 6.29 変更 パラメータ<state>の説明

プログラム実行中でのコマンド処理の有効/無効

プログラム実行中でのコマンド処理の有効/無効

(任意、デフォルト= wait )

6.38 MEMORY_MOVE(変更)

ページ番号 項番 分類 誤 正

136 6.38 変更 パラメータ<start>の説明

ソース開始アドレス

開始アドレス

変更 パラメータ<end>の説明

ソース終了アドレス(この値を含む)終了アドレス(この値を含む)

Page 86: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

28/38

6.40 PROFILE(変更)

ページ番号 項番 分類 誤 正

137 6.40 追加 - パラメータに「なし」 追加

下記参照

追加 - パラメータ<state>に「tree-off」 追加

下記参照

シンタックス

pr [ <state> ]パラメータ 型 説明

なし プロファイラ情報を表示します

キーワード プロファイラの有効/無効表示、切り替え、クリアを行いま

enable プロファイラを有効にする

tree-off プロファイラを有効にしますが、プロファイラ情報測定時に

関数呼び出しをトレースしません

disable プロファイラを無効にする

<state>

reset プロファイラ情報をクリアする

6.42 PROFILE_SAVE(変更)

ページ番号 項番 分類 誤 正

138 6.42 変更 説明:プロファイラ情報をファイルに保存します。

プロファイラ情報をファイルに保存します。ファイル拡張子は”.PRO”をデフォルトとします。

変更 シンタックス

ps <filename>ps [<filename>]下記参照

シンタックス

ps [<filename>]パラメータ 型 説明

なし すべてのダウンロードモジュールのプロファイル情報を保存

します

<filename> 文字列 プロファイラ情報を出力するファイル名を指定します

6.46 REGISTER_SET(変更)

ページ番号 項番 分類 誤 正

140 6.46 変更 シンタックス

rs <register> <value><mode>

rs <register> <value>[<mode>]

Page 87: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

29/38

6.48 RESPONSE(変更)

ページ番号 項番 分類 誤 正

141 6.48 変更 説明:ウィンドウをリフレッシュするタイミングを指定します。

ウィンドウをリフレッシュするタイミン

グを指定します。

リフレッシュ間隔を長くするとシミュレーション速度は上がりますが、ブレークボタン等の反応が遅くなります。お使いのマシンに合わせて設定してください。

変更 パラメータ<instruction number>の説明

1~H’FFFF(任意、デフォルト=H’1000)何命令実行ごとにウィンドウをリフレッシュするかを指定します

1~65535(任意、デフォルト=40000)何命令実行ごとにウィンドウをリフレッシュするかを指定します

6.49 SLEEP(変更)

ページ番号 項番 分類 誤 正

141 6.49 変更 基数 D’ は、明示して使わないとデフォルトの基数(必ずしも 10 進ではありません)を使用します。

基数は、10 進数固定です。

6.53 STEP_RATE(変更)

ページ番号 項番 分類 誤 正

143 6.53 変更 説明:値が 1 の場合は最も遅いステップです。

値が 0 の場合は最も遅いステップです。

変更 パラメータ<rate>の説明

ステップレート 1 から 6で 6 が最も速くなります

ステップレート 0 から 6で 6 が最も速くなります

6.54 STEP_UNIT(変更)

ページ番号 項番 分類 誤 正

144 6.54 変更 シンタックス

sm [ <mode> ]sn [ <mode> ]

Page 88: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

30/38

6.59 SYMBOL_SAVE(変更)

ページ番号 項番 分類 誤 正

146 6.59 変更 説明:すべてのシンボルをファイルへ保存します。 ファイルは XLINKPentica-b フォーマットで、 シンボルファイル拡張子は".SYM" をデフォルトとします。 ファイル名は、既に存在するときファイルを上書きするプロンプトを表示します。

すべてのシンボルをファイルへ保存します。 ファイルは XLINKPentica-b フォーマットで、 シンボルファイル拡張子は".SYM" をデフォルトとします。

6.60 SYMBOL_VIEW(変更)

ページ番号 項番 分類 誤 正

146 6.60 変更 パラメータ<pattern>の説明

文字列を含んでいるシンボル

表示するシンボルに含まれる文字列

6.61 TCL(変更)

ページ番号 項番 分類 誤 正

147 6.61 変更 説明:TCL の情報を表示します

TCL を有効、または無効にします。

変更 シンタックス

tcltcl [ <state> ]下記参照

追加 - 例: 追加

下記参照

シンタックス

tcl [ <state> ]パラメータ 型 説明

なし TCL の情報を表示します

<state> キーワード TCL の有効/無効を設定します

enable TCL を有効にします

disable TCL を無効にします

例:TCL TCL の情報を表示します

TCL enable TCL を有効にします

TCL d TCL を無効にします

Page 89: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

31/38

6.62 TRACE(変更)

ページ番号 項番 分類 誤 正

147 6.62 変更 シンタックス

tr [ <start rec> [ <count> ] ]tr [[<start rec> [<count>]] |[<clear>]]下記参照

追加 - 例: 追加

下記参照

シンタックス

tr [[<start rec> [<count>]] | [<clear>]]パラメータ 型 説明

<start rec> 数値 表示を始めるレコード(任意、デフォルト=最も新しいレコー

ド-9)

<count> 数値 表示するレコード数(任意、デフォルト= 10)

<clear> キーワード すべてのトレースレコードクリア(任意)

clear すべてのトレースレコードクリア

例:TR 0 20 トレースバッファ先頭から 20 行の内容を表示します

TR トレースバッファ最後の 10 行(最近実行した 10 行)の内容を表示します

TR –20 10 トレースバッファの、PTR が–20 から-11 の内容を表示します

TR C すべてのトレースレコードをクリアします

6.64 TRACE_SAVE(変更)

ページ番号 項番 分類 誤 正

148 6.64 変更 説明:トレース情報をファイルに保存します。ファイルはテキスト形式で、ファイル拡張子は”.TXT”をデフォルトとします。指定したファイル名のファイルが既に存在するとき、ファイルを上書きするプロンプトを表示します。

トレース情報をファイルに保存します。ファイルはテキスト形式で、ファイル拡張子は”.TXT”をデフォルトとします。

Page 90: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

32/38

CHANGE_CONFIGURATION(追加)

短縮形: CC

説明:現在のコンフィギュレーションを設定します。

シンタックス

cc <config name>

パラメータ 型 説明

<config name> 文字列 コンフィギュレーション名

例:CC Debug 現在のコンフィギュレーションを“Debug”に設定します

CHANGE_PROJECT(追加)

短縮形: CC

説明:現在のプロジェクトを設定します。

シンタックス

cp <project name>

パラメータ 型 説明

<project name> 文字列 プロジェクト名

例:CP PROJ2 現在のプロジェクトを“ PROJ2”に設定します

COVERAGE_LOAD(追加)

短縮形: CVL

説明:カバレジ情報を.COVファイルからロードします。

異なるファイルフォーマットの入力や指定ファイルが存在しない場合はウォーニングメッセージ

を表示します。

シンタックス

cvl <filename>パラメータ 型 説明

<filename> 文字列 ファイル名

例:COVERAGE_LOAD TEST TEST.COV ファイルからカバレジ情報をロードします

CVL COVERAGE.COV COVERAGE.COV ファイルからカバレジ情報をロードします

Page 91: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

33/38

COVERAGE_RANGE(追加)

短縮形: CVR

説明:カバレジの範囲を設定するか、またはパラメータなしでカバレジ測定の範囲を表示します。

シンタックス

cvr [ <start> <end> ]パラメータ 型 説明

なし カバレジ測定の範囲を表示します

<start> 数値 カバレジ測定範囲の開始アドレス

<end> 数値 カバレジ測定範囲の終了アドレス

例:COVERAGE_RANGE H’1000 H’10FF H’1000 から H’10FF のカバレジ測定を行います

CVR カバレジ測定の範囲を表示します

COVERAGE_SAVE(追加)

短縮形: CVS

説明:カバレジ情報を.COVファイルまたは.TXTファイルに保存します。

.COVまたは.TXT以外のファイル拡張子を入力するとエラーメッセージを表示します。

シンタックス

cvs <filename>パラメータ 型 説明

<filename> 文字列 ファイル名

例:COVERAGE_SAVE TEST TEST.COV ファイルにカバレジ情報を保存します

CVS COVERAGE.COV COVERAGE.COV ファイルにカバレジ情報を保存します

OPEN_WORKSPACE(追加)

短縮形: OW

説明:ワークスペースを開きます。

シンタックス

ow <filename>パラメータ 型 説明

<filename> 文字列 ワークスペースファイル名

例:OW WKSP.HWS ” WKSP.HWS”を開きます

Page 92: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

34/38

STEP_MODE(追加)

短縮形: SM

説明:ステップモードを選択します。

シンタックス

sm <mode>パラメータ 型 説明

<mode> キーワード ステップモードの選択

Auto 自動選択

Assembly アセンブラの 1 命令を基準にステップします

Source ソースコードの 1 行を基準にステップします

例:STEP_MODE auto ステップモードを自動選択に設定します

Source ウィンドウが現在アクティブならば、ソースコードの 1 行を基準にステッ

プ実行します

Disassembly ウィンドウが現在アクティブならば、アセンブラの 1 命令を基準にステップ実行します

TRACE_STATISTIC(追加)

短縮形: TST

説明:指定された条件で統計情報解析を行います。

シンタックス

tst <item> <string>パラメータ 型 説明

<item> 文字列 統計情報解析項目

<string> 文字列 条件文字列

例:TST CODE1 E630 条件 CODE1=E630 で統計情報解析を行います

Page 93: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

35/38

付録 A GUI コマンド一覧

メニュー メニューオプション ショートカットキー ツールバーボタン

View Workspace Alt+K

Output Alt+U

Breakpoints Shift+Ctrl+B

Coverage... Shift+Ctrl+O

Command Line Ctrl+L

Disassembly Ctrl+D

IO Ctrl+I

Image... Shift+Ctrl+G

Labels Shift+Ctrl+A

Locals Shift+Ctrl+W

Memory... Ctrl+M

Performance Analysis Shift+Ctrl+P

Profile Shift+Ctrl+F

Registers Ctrl+R

Status Ctrl+U

Trace Ctrl+T

Watch Ctrl+W

Waveform... Shift+Ctrl+V

TLB...

Cache...

Localized Dump... Shift+Ctrl+D

Simulated I/O Shift+Ctrl+I

Trigger Shift+Ctrl+R

Stack Trace Ctrl+K

Page 94: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

36/38

メニュー メニューオプション ショートカットキー ツールバーボタン

Options Debug Settings...

Radix    Ø

Hex

Decimal

Oct

Bin

   

   

Simulator    Ø

System...

Memory Resource...    

Debug Reset CPU

Go F5

Reset Go Shift+F5

Go to Cursor

Set PC To Cursor

Run...

Step In F11

Step Over F10

Step Out Shift+F11

Step...

Step Mode     Ø

Auto

Assembly

Source

   

Halt Program Esc

Initialize

Disconnect

Download Modules

Unload Modules

Page 95: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS0700SDIW8SJ-ER020604

37/38

メニュー メニューオプション ショートカットキー ツールバーボタン

Memory Search...

Copy...

Compare...

Fill...

Refresh

Configure Overlay...

Page 96: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

1/57

Hitachi Embedded Workshop 2 更新資料(V2.0->V2.1)

Hitachi Embedded Workshopの Ver .2 .0から Ver .2 .1へのリビジョンアップに伴い、製本マニュアルの

参照時、以下の節または項も合わせて参照いただきますようお願いいたします。

本資料は下記の構成になっております。

1. Hitachi Embedded Workshop 2 ユーザーズマニュアル  ・・・・・・・・・・・・・・・・・・・・  2ページ

2. Hitachi Embedded Workshop 2 HEW Builder ユーザーズマニュアル ・ ・・・・・・・ 14ページ

3. HEWデバッガユーザーズマニュアル ・ ・ ・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 15ページ

4.チュートリアル ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 38ページ

付録3-4

Page 97: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

2/57

1. Hitachi Embedded Workshop 2 ユーザーズマニュアル 

追加・変更1 表紙

 サポート対象として”Windows® XP”を追加

追加・変更2 2.1.3 相対プロジェクトパス

2.1.3 相対プロジェクトパス

HEW では、プロジェクトファイルを追加する場合、相対パスを使用してプロジェクトに追加することが選択できます。

これにより、ファイルをプロジェクトディレクトリの上に置くことができ、HEW プロジェクトの再配置も正確にできます。

ファイルは常にプロジェクトと相対的であるため、ファイルが移動される前にプロジェクト上で 1 つのディレクトリであ

る場合、再配置のあと、HEW は、同じ相対場所でプロジェクトを見つけようとします。このことは、複数のプロジェクト

に共通のソースディレクトリを使用するとき、特に便利です。

HEW の古いバージョンでは、このファイルは再配置されておらず、オリジナルのファイルパスをアクセスしようとしま

した。また、プロジェクトディレクトリを含むパスのファイルを再配置することのみ可能でした。これは現在のバージョ

ンでも、HEW の標準的な動作です。

Ü 相対パスをプロジェクトに追加するには

1. [Project->Add Files…]を選択するか、“Workspace”ウィンドウのポップアップメニュー(図2.1参照)から[Add Files…]を選択してください。あるいは、“Workspace”ウィンドウが選択されたとき、ISNを押してください。図2.5.1に示

すダイアログボックスが表示されます。

2. HEWプロジェクトの相対パスをファイルで使用するため、“Relative path”チェックボックスをクリックし、Addをクリックしてください。

図 2.5.1AddFiles ダイアログボックス

Ü プロジェクトファイル相対パスフラグを変更するには

1. ワークスペースウィンドウで、1つまたは複数のファイルを選択してください。

2. マウスの右ボタンをクリックしてプロパティを選択してください。図2.5.2に示すダイアログボックスが表示され

ます。

3. “Project relative file path”チェックボックスをクリックし、相対ファイルパスの特徴を切り替えてください。

4. “OK”ボタンをクリックしてください。

Page 98: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

3/57

図 2.5.2Properties ダイアログボックス

追加・変更3 2.9 アクティブプロジェクトを設定する

2.9 アクティブプロジェクトを設定する

ワークスペースには複数のプロジェクトを含めることができます。また、プロジェクトの状態には、アクティブプロジ

ェクト、ロードプロジェクト、アンロードプロジェクトの 3 つがあります。ワークスペースにおいて、ひとつのプロジェ

クトのみアクティブプロジェクトとして指定することができます。ビルド動作とデバッグ動作は、アクティブプロジェク

トに対して行います。ロードプロジェクトに対して、ワークスペースにあるプロジェクトファイルディレクトリを展開し

たり、ファイルをオープンすることができます。また、ビルドやデバッガのオプションを変更できます。ロードプロジェ

クトは、[Tools]メニューからツールを実行させることができます。アンロードプロジェクトは、“Workspace”ウィンドウの

“Projects”タブでアイコンがグレー表示になり、ビルドやデバッグの動作を実行できません。ワークスペースでは、どのプ

ロジェクトをアクティブプロジェクトにするかの設定ができます。

Ü プロジェクトをアクティブにするには

1. “Workspace”ウィンドウの “Projects”タブからプロジェクトを選んでください。

2. 右マウスボタンをクリックしてポップアップメニューから[Set as Current Project] オプションを選んでください。

または、

1. 非アクティブのプロジェクトを [Project->Set Current Project] サブメニューから選んでください。

Ü プロジェクトをワークスペースにロードするには

1. “Workspace”ウィンドウの “Projects”タブからロードしていないプロジェクトを選んでください。

2. 右マウスボタンをクリックしてポップアップメニューから[Load Project] オプションを選んでください。

Ü プロジェクトをアンロードするには

1. “Workspace”ウィンドウの “Projects”タブから非アクティブのロード済みプロジェクトを選んでください。

2. 右マウスボタンをクリックしてポップアップメニューから[Unload Project] オプションを選んでください。

追加・変更4 2.10 デバッガセッション

2.10 デバッガセッション

 デバッグ設定はセッションに保存します。このセッションには、プラットフォーム情報、ダウンロードモジュール、各

Viewのデバッグ設定の設定を保存しています。

 また、デバッガセッションは、ひとつのコンフィグレーションに対して、複数のデバッガセッションを持つことが可能

です。また、コンフィグレーションとデバッガセッションは、独立しているため、別のコンフィグレーションで作成した

デバッガセッションも使用することが可能です。

各セッションのデータは、別々のファイルでプロジェクトに保存されます。セッションファイルは、複数のユーザで共

有でき、また変更することも可能です。詳細については、次節で説明します。

Page 99: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

4/57

追加・変更5 2.11 セッションを選択する

2.11 セッションを選択する

 現在のセッションは、2とおりの方法で設定できます。

Üセッションを選択するには

1. ツールバーのドロップダウンリストボックス(図2.21)からセッションを選んでください。

図 2.21: ツールバーの選択

または、

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスが表示されます(図2.22)。

図 2.22: Debug Sessions ダイアログボックス

2. “Current session”ドロップダウンリストから使用したいセッションを選んでください。

3. “OK”ボタンをクリックして、セッションを設定してください。

2.11.1 セッションの追加と削除

 別のセッションから設定をコピーしたり、セッションを削除したりして、新しいセッションを追加することができます。

これらの3つの方法を以下に述べます。

Ü新しいセッションを追加するには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスが表示されます(図2.22)。

2. “Add...”ボタンをクリックしてください。“Add Session”ダイアログボックスが表示されます(図2.23)。

Page 100: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

5/57

図 2.23: Add Session ダイアログボックス

Add new session ダイアログボックスには、セッションデータを管理する機能がいろいろあります。

Ü新しい空のセッションを追加するには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Add...”ボタンをクリックしてください。“Add Session”ダイアログボックスが表示します(図2.23)。

3. “Add new session”ラジオボタンをクリックしてください。

4. “Name”フィールドにセッションの名前を入力してください。

5. “OK”ボタンをクリックし、“Debug Sessions”ダイアログボックスを閉じてください。

6. 以上の作業により、プロジェクトディレクトリに新しい空のセッションが生成されます。これは、新しいファイル

名としてセッション名を使用します。そのファイル名が既に存在する場合は、エラーを表示します。

Ü既存のセッションを新しいセッションファイルにインポートするには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Add...”ボタンをクリックしてください。“Add Session”ダイアログボックスを表示します(図2.23)。

3. “Add an existing session file”ラジオボタンをクリックしてください。

4. “Name”フィールドにセッション名を入力してください。

5. “Session file path”フィールドに現在のプロジェクトにインポートする既存のセッションファイルの場所を入力して

ください。

6. “OK”ボタンをクリックし、“Debug Sessions”ダイアログボックスを閉じてください。

7. 以上の作業により、別のファイルからセッションデータをインポートし、プロジェクトディレクトリに新しいセッ

ションファイルを生成します。情報はすべて、データがインポートされたファイルのコピーになります。

Page 101: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

6/57

Ü既存のセッションファイルと共有するには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Add...”ボタンをクリックしてください。“Add Session”ダイアログボックスを表示します(図2.23)。

3. “Add an existing session file”ラジオボタンをクリックしてください。

4. “Name”フィールドにセッション名を入力してください。

5. “Session file path”フィールドに現在のプロジェクトに共有する既存のセッションファイルの場所を入力してくださ

い。

6. “Open and maintain link to”チェックボックスをチェックしてください。このファイルの場所は、ステップ5で入力さ

れた場所にあるセッションデータを共有します。

7. “OK”をクリックし、“Debug Sessions”ダイアログボックスを閉じてください。

8. 以上の作業により、セッションファイルを共有させます。これは、ネットワーク環境で他のユーザとデバッガ情報

を共有するときに便利です。

Ü既存のセッションファイルに共有し、リードオンリーにするには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Add...”ボタンをクリックしてください。“Add Session”ダイアログボックスを表示します(図2.23)。

3. Add an existing session fileラジオボタンをクリックしてください。

4. “Name”フィールドにセッション名を入力してください。

5. “Session file path”フィールド現在のプロジェクトに共有する既存のセッションファイルの場所を入力してくださ

い。

6. “Open and maintain link to”チェックボックスをチェックしてください。このファイルの場所は、ステップ5で入力さ

れた場所にあるセッションデータを共有します。

7. “Make session link read only”チェックボックスをクリックしてください。このセッションのデータをリードのみでき

ます。

8. “OK”ボタンをクリックし、“Debug Sessions”ダイアログボックスを閉じてください。

9. 以上の作業により、セッションファイルをリードオンリー属性として共有させます。これは、ネットワーク環境で

他のユーザはデバッガ情報を参照するのみのために共有する場合には便利です。

Üセッションを削除するには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. 削除するセッションを選んでください。

3. “Remove”ボタンをクリックしてください。

4. 現在ロードしているセッションを削除することはできません。

5. “OK”をクリックし、“Debug Sessions”ダイアログボックスを閉じてください。

Üセッションのプロパティを見るには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Debug Sessions”のリストからセッションを選んでください。

3. “Properties”ボタンをクリックしてください。Propertiesダイアログボックスを表示します(図2.24)。

図 2.24: Session properties ダイアログボックス

Page 102: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

7/57

Üセッションをリードオンリーにするには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Debug Sessions”のリストからセッションを選んでください。

3. “Properties”ボタンをクリックしてください。Propertiesダイアログボックスを表示します(図2.24)。

4. “Read only”チェックボックスをチェックしてください。セッションファイルをリードオンリーにします。

5. “OK”ボタンをクリックしてください。

Üセッションを別名で保存するには

1. [Options->Debug Sessions...]を選んでください。“Debug Sessions”ダイアログボックスを表示します(図2.22)。

2. “Debug Sessions”のリストからセッションを選んでください

3. “Save as”ボタンをクリックしてください。Save Sessionダイアログボックスを表示します(図2.25)。

4. 保存する場所の選択および、名前を入力してください。

5. セッションファイルをエクスポートする場合は、”Maintain link”チェックボックスをチェックしないでください。保

存するファイルをインポートする場合には、”Maintain link”チェックボックスをチェックしてください。

6. “OK”ボタンをクリックしてください。

図 2.25: Save Session ダイアログボックス

2.11.2 セッション情報を保存する

Üセッションを保存するには

1. メニューバーから”File”メニューを選んでください。ファイルメニューを表示します(図2.26)。

2. “Save Session”メニュー項目を選択してください。

3. [Tools->Options…]で開く”Option”ダイアログボックスのWorkspaceタブの“Prompt before saving session”チェックボッ

クスがチェックされている場合、ダイアログボックスを表示します。(図2.27)。

Page 103: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

8/57

図 2.26: Fileメニュー

Page 104: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

9/57

図 2.27: Tools->Options ダイアログボックス-Workspace タブ

Page 105: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

10/57

追加・変更6 3.5.3 テキストを置換する

3.5.3 テキストを置換する

テキストの置換は前節で説明したテキストの検索に似ています。異なる点は、テキスト検索後、他のテキストに置き換

えるところです。

Üファイルのテキストを置換するには

1. 内容を置換するウィンドウがアクティブであることを確認してください。

2. 検索を始める位置にカーソルを置いてください。

3. [Edit->Replace...]を選ぶか、CTRL+Hキーを押下するか、エディタウィンドウのローカルメニューから

“Replace...”を選んでください。“Replace”ダイアログボックスが表示されます(図 3.4)。

4. “Find what”フィールドに置換前のテキストを入力してください。または、ドロップダウンリストボックスか

ら以前に検索した文字列を選んでください。ファイルウィンドウでテキストを選んでから“Replace”ダイアロ

グボックスを開くと、選んだテキストが自動的に“Find what”フィールドに入ります。

5. “Replace with”フィールドに置換後のテキストを入力してください。または、ドロップダウンリストボックス

から以前に検索した文字列を選んでください。

図 3.4: Replace ダイアログボックス

6. 単語単位で文字列を探す場合は、“Match whole word only”チェックボックスをチェックしてください。この

オプションを選択しない場合は、一部でも一致する文字列が検索されます。

7. 大文字と小文字を識別したいときは“Match case”チェックボックスをチェックしてください。

8. 正規表現を使ってテキストを検索したいときは、“Regular expressions”チェックボックスをチェックしてくだ

さい。 詳細は付録 B, 「正規表現」を参照してください。

9. “Find Next”をクリックすると、検索文字列、条件に合致したものの次を検索します。置換したい場合は

“Replace”をクリックしてください。“Replace All”をクリックすると、該当するすべての文字列を置換します。

“Cancel”をクリックすると、置換動作を停止します。

なお、”Replace In”で”Selection”を選択している場合はテキストの選択範囲が置換対象となり、”whole file”を選択している場合はファイル全体が置換対象となります。”All open files”を選択している場合は、エディタで

現在開いているファイルがすべて置換対象となります。

Page 106: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

11/57

追加・変更7 3.8.1 ページ設定

3.8.1 ページ設定

HEW エディタからファイルを印刷するとき、印刷ダイアログボックスの設定により、印刷方法が変わります(例えば、

片面印刷、両面印刷など)。また、“Page Setup”ダイアログボックスでは、印刷するテキストの余白(上下左右)を指定で

きます。プリンタによっては、A4 サイズの端まで印刷できない場合があるので、この指定が必要です。また、用紙の左端

にとじしろを残したい場合などにも便利です。

Üページの余白を設定するには

1. [File->Page Setup...]を選んでください。“Page Setup”ダイアログボックスが表示されます(図3.6)。

2. “編集”フィールドに必要な余白を入力してください (“inch”または “mm”ラジオボタンを選んでください)。

3. “OK”ボタンをクリックすると余白が設定されます。

図 3.6: Page Setup ダイアログボックス

Üページのヘッダとフッタを設定するには

1. [File->Page Setup...]を選んでください。“Page Setup”ダイアログボックスが表示されます(図3.6)。

2. ヘッダおよびフッタの編集フィールドに表示するテキストを入力してください。ページ番号、テキスト配置、

日付の各フィールドとともに通常のプレースホルダが利用できます。これらは、ページが印刷される前にす

べて拡張されます。

3. “OK”ボタンをクリックすると、新しい設定が有効になります。

Page 107: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

12/57

追加・変更8 5.4.7 Prompt before saving sessionエディットボックス

5.4.7 Prompt before saving sessionエディットボックス

このオプションをチェックすると、HEW はセッションをディスクに保存する前にプロンプトを表示します。

追加・変更9 5.8 カスタムプレースホルダを使う

5.8 カスタムプレースホルダを使う

HEW では、ディレクトリを定義するときに、以前に定義したプレースホルダを指定することができます。これによって、

プロジェクトを再配置することができます。

また、HEW では、カスタムプレースホルダを定義することもできます。このことは、ユーザがカスタムプレースホルダ

を定義し、そのディレクトリの値を決められることを意味します。一度定義されると、このプレースホルダは HEW の別

の場所で有効になります。

“Application wide custom placeholder”に定義したプレースホルダは、HEW で使用するすべてのワークスペースやプロジェ

クトに対して有効です。それに対して、”Workspace wide custom placeholder”に定義したプレースホルダは、現在のワークス

ペースにおいてのみ有効です。

図 5.14: Customize ダイアログボックス Placeholder タブ

Üカスタムプレースホルダを追加するには

1. [Tools->Customize...]を選んでください。図5.1に示すダイアログボックスが表示されます。

“Placeholder”タブを選んでください(図5.14)。

2. “Application wide custom placeholder”、あるいは”Workspace wide custom placeholder”のどちらを使いたいか、

選んでください。リスト横にある”Add”ボタンをクリックしてください。

3. “New Custom Placeholder”ダイアログボックスが表示されます(図5.15)。

4. このフィールドでは、プレースホルダの適切な名前、およびプレースホルダが意味する内容の説明を選んで

ください。

5. 次に、このプレースホルダと関連するディレクトリを選んでください。$(PROJDIR)のように、オプション設

定等で定義済みのプレースホルダとして使用することができます。

Page 108: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

13/57

図 5.15: New Custom Placeholder ダイアログボックス

Page 109: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

14/57

2. Hitachi Embedded Workshop 2 HEW Builder ユーザーズマニュアル

追加・変更1 表紙

 サポート対象として”Windows® XP”を追加

追加・変更2 2.13 ワークスペースの相対プロジェクトパス

2.13 ワークスペースの相対プロジェクトパス

HEW では、プロジェクトをワークスペースに追加する場合、相対パスを使用してワークスペースに追加することが選択

できます。これにより、プロジェクトをワークスペースディレクトリの上に置くことができ、HEW ワークスペースの再配

置も正確にできます。プロジェクトは常にワークスペースと相対的であるため、プロジェクトがワークスペースの上のデ

ィレクトリにある場合、再配置のあと、HEW は、同じ相対場所でプロジェクトを見つけようとします。このことは、複数

のワークスペース間で共有したプロジェクトを使用するとき、特に便利です。

HEW の古いバージョンでは、このプロジェクトは再配置されておらず、オリジナルのプロジェクトパスをアクセスしよ

うとしました。また、ワークスペースディレクトリのサブディレクトリにあったプロジェクトを再配置することのみ可能

でした。これは現在のバージョンでも、HEW の標準的な動作です。

Ü プロジェクト相対パスフラグを変更するには

1. ワークスペースウィンドウでプロジェクトを選択してください。

2. マウスの右ボタンをクリックしてプロパティを選択してください。

3. “Project relative file path”チェックボックスをクリックし、相対ファイルパスの特徴を切り替えてください(図2.25)。4. “OK”ボタンをクリックしてください。

図 2.25: Properties ダイアログボックス

Page 110: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

15/57

3. HEW デバッガユーザーズマニュアル

追加1 1.9 デバッガセッション

1.9 デバッガセッション

 HEWは、ビルダオプションをコンフィグレーションへ保存することができます。同様に、HEWは、デバッガ

オプションをセッションに保存することもできます。セッションには、デバッギングプラットフォーム、ダウン

ロードするプログラム、各デバッギングプラットフォームのオプションを保存することができます。

 セッションは、コンフィグレーションとは直接関連がありません。これは、複数のセッションが同じダウンロ

ードモジュールを共有し、プログラムの不要なリビルドを避けられることを意味します。

各セッションのデータは、別々のファイルで HEW プロジェクトに保存します。詳細については、以下で説明

します。

追加2 1.10 セッションを選択する

1.10 セッションを選択する

セッション選択するには、次の2通りの方法があります。

・ツールバーから選択する

1. ツールバーのドロップダウンリストボックス(図1.5)からセッションを選んでください。

図 1.5: ツールバーの選択

Page 111: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

16/57

・ダイアログボックスから選択する

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

図 1.6: Debug Sessions ダイアログボックス

2. “Current session”ドロップダウンリストから使用したいセッションを選んでください。

3. “OK”をクリックして、セッションを設定してください。

追加3 1.10.1 セッションの追加と削除

1.10.1 セッションの追加と削除

 別のセッションから設定をコピーしたり、セッションを削除したりして、新しいセッションを追加することが

できます。

・新しい空のセッションを追加する

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. “Add...”ボタンをクリックしてください。Add new sessionダイアログボックスを表示します(図1.7)。

3. “Add new session”ラジオボタンをクリックしてください。

4. セッションの名前を入力してください。

5. “OK”をクリックし、Debug Sessionsダイアログボックスを閉じてください。

6. 入力したセッション名のファイルを新しく作成します。ファイルが既に存在する場合は、エラーを表示し

ます。

Page 112: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

17/57

図 1.7: Add new sessions ダイアログボックス

・既存のセッションを新しいセッションファイルにインポートする

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. “Add...”ボタンをクリックしてください。Add new sessionダイアログボックスを表示します(図1.7)。

3. “Use an existing session file”ラジオボタンをクリックしてください。

4. セッションの名前を入力してください。

5. 現在のプロジェクトにインポートしたい既存のセッションファイルをブラウズしてください。

“Open and maintain link to session file”チェックボックスをクリックしない場合、プロジェクトディレクトリ

にインポートした新しいセッションファイルを生成します。

“Open and maintain link to session file”チェックボックスをクリックした場合、プロジェクトディレクトリに

新しいセッションファイルは生成せず、既存のセッションファイルにリンクします。

“Make session file link read only”チェックボックスをクリックした場合、リンクしたセッションファイルを

リードオンリーで使用します。

6. “OK”ボタンをクリックし、Debug Sessionsダイアログボックスを閉じてください。

・セッションを削除する

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. 修正したいセッションを選んでください。

3. “Remove”ボタンをクリックしてください。

現在のセッションを削除することはできません。

4. “OK”ボタンをクリックし、Debug Sessionsダイアログボックスを閉じてください。

・セッションのプロパティを見る

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. 見たいプロパティのあるセッションを選んでください。

3. “Properties”ボタンをクリックしてください。Propertiesダイアログボックスを表示します(図1.8)。

図 1.8: Session properties ダイアログボックス

Page 113: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

18/57

・セッションをリードオンリーにする

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. プロパティを見たいセッションを選んでください。

3. “Properties”ボタンをクリックしてください。Propertiesダイアログボックスを表示します(図1.8)。

4. “Read only”チェックボックスをクリックしてください。リンクをリードオンリーにします。これは、デバ

ッガ設定ファイルを共有する場合、およびデータを間違って修正したくない場合に便利です。

5. “OK”ボタンをクリックしてください。

・セッションを別名で保存するには

1. [Options->Debug Sessions...]を選んでください。Debug Sessionsダイアログボックスを表示します(図1.6)。

2. 保存したいセッションを選んでください。

3. “Save as”ボタンをクリックしてください。Save Sessionダイアログボックスを表示します(図1.9)。

4. 新しいファイルの場所をブラウズしてください。

5. セッションファイルを別の場所へエクスポートしたい場合は、”Maintain link”チェックボックスをチェッ

クしないでください。現在のセッションの場所の代わりに、この場所をHEWで使用したい場合は、”Maintainlink”チェックボックスをチェックしてください。

6. “OK”ボタンをクリックしてください。

図 1.9: Session save as ダイアログボックス

Page 114: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

19/57

追加4 1.10.2 セッションの情報を保存する

1.10.2 セッションの情報を保存する

Üセッションを保存するには

1. [File->Save Session]を選んでください。

Page 115: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

20/57

追加・変更5 デバッギングプラットフォームを選択する

2.2 デバッギングプラットフォームを選択する

 デバッギングプラットフォームの選択はHEWのインストール方法に大きく依存します。HEWにツールチェイ

ンをインストールしている場合、アプリケーションプロジェクトジェネレータはツールチェインおよびデバッガ

のターゲットを同時にセットアップすることができます。これによってターゲットおよびツールチェインオプシ

ョンを一致させ、矛盾が起こらないようにします。ツールチェインをインストールしていない場合には、デバッ

グ専用プロジェクトのみ選択することができます。HEWはデフォルトの設定で、New Workspaceダイアログボッ

クスの中に、生成するそれぞれのCPUファミリのデバッグ専用プロジェクト生成タイプを表示します。このプロ

ジェクトタイプは、前バージョンのHDI sessionダイアログボックスと同じ動作を提供します。

図 2.1: New Workspace ダイアログボックス

 図2.1に示すダイアログボックスを使用して、ターゲットCPUに合ったプロジェクト生成タイプを選択すること

ができます。

Ü標準のデバッグプロジェクトタイプを使ってデバッグ専用のプロジェクトを生成するには

1. [File->New Workspace…]を選んでください。図2.1に示すダイアログボックスを表示します。

2. “Debug Only”プロジェクトタイプを選び、“OK”ボタンをクリックしてください。

3. “Debug Only”プロジェクトウィザードを表示します。図2.2に示すダイアログボックスを表示します。

注意 ツールチェインとシミュレータ・デバッガをインストールしている場合は、“Empty Application”がデバ

ッグ専用プロジェクトになります。

Page 116: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

21/57

図 2.2: New Project ダイアログボックス

4. 現在インストールしている有効なデバッガターゲットをすべて表示します。ユーザは、この新しいデバ

ッグプロジェクトでデバッグに使用するプラットフォームを選択することができます。ターゲットは複数選

択することができ、各ターゲット用にデバッガセッションを生成します。

5. “Finish”ボタンをクリックして生成処理を完了します。Summaryダイアログボックスを表示します。生成

処理が完了すると、デバッガプロジェクトジェネレータはプロジェクトを作成し、そのプロジェクトはそれ

ぞれのデバッガセッションに対し、Debugオプションを正しく設定します。またジェネレータは、デフォル

トのコンフィグレーションを1つ作成します。

図 2.3: Summary ダイアログボックス

Page 117: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

22/57

追加・変更6 2.3 デバッギングプラットフォームを構築する

2.3 デバッギングプラットフォームを構築する

 デバッギングプラットフォームにプログラムをロードする前に、アプリケーションシステムに合うようにプラ

ットフォームを設定しなければなりません。必要な設定内容は、デバイスの種類、動作モード、クロックスピー

ド、およびメモリマップなどです。その中でも特にメモリマップの設定が大切です。HEWでは、プロジェクトの

生成処理でこの作業のほとんどが完了します。しかし、標準とは異なるボードのコンフィグレーションを使用す

る場合には、カスタマイズが必要になります。

追加・変更7 2.3.1 メモリマップ

2.3.1 メモリマップ

 デバッギングプラットフォームは、デバイスのアドレス空間がROM、RAM、オンチップレジスタ、またはメモ

リのない領域なのかを知る必要があります。そのため、メモリマップを設定する必要があります。

プロジェクトジェネレータでデバイスの種類およびモードを選択すると、HEWは自動的にそのデバイスのマッ

プおよびそのプロセッサが動作するモードを設定します。例えば、内部ROMおよびRAMを持つデバイスにおい

て、これらのメモリがデバイスメモリマップ内で位置する領域をデフォルトで設定します。

 また、外部メモリを使用する場合には、デバッギングプラットフォームに知らせる必要があります。

シミュレータを使用する場合、Simulator Systemダイアログボックスによりメモリマップの設定を変更すること

ができます。詳細はデバッグプラットフォームのマニュアルを参照下さい。

また、シミュレータを使用する場合、Standard Toolchainダイアログボックスの”Simulator”タブで、設定内容を

参照することができます。Standard Toolchainダイアログボックス(図2.4)の”View”ボタンをクリックすると、CPUhardware mapダイアログボックス(図2.5)を表示します。

図 2.4: Standard Toolchain ダイアログボックス

Page 118: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

23/57

図 2.5: CPU hardware map ダイアログボックス

 以下の情報を表示します。

[Operation] アドレス範囲を表示します。

[Memory view] メモリマップおよびメモリリソース情報を表示します。

追加・変更8 2.3.3 メモリリソース

2.3.3 メモリリソース

シミュレータを使用する場合、使用するアドレス範囲のメモリリソースを確保しなければ行けません。メモリ

リソースは、Simulator Memory Resourceダイアログボックスにより設定を変更することができます。詳細はデバ

ッグプラットフォームのマニュアルを参照下さい。

また、シミュレータを使用する場合、図2.4のStandard Toolchainダイアログボックスの”Simulator”タブで、設定

内容を参照することができます。”Simulator”タブには下記のボタンがあります。

[View] メモリマップ情報を表示します。

[Add] メモリリソースを追加します。

[Modify] 選択したメモリリソースを変更します。

[Remove] 選択したメモリリソースを削除します。

“Add”ボタンをクリックするとAdd memory resourceダイアログボックス(図2.6)を表示します。

Page 119: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

24/57

図 2.6: Add memory resource

Add memory resourceダイアログボックスには下記を設定してください。

[Start] 先頭アドレス

[End] 終了アドレス

[Attribute] 属性(R:リードのみ、R/W:リード/ライト可)

Simulator Memory Resourceダイアログボックス変更したメモリリソース情報は、Standard Toolchainダイアログ

ボックスに反映され、Standard Toolchainダイアログボックスの変更もSimulator Memory Resourceダイアログボッ

クスに反映されます。

追加・変更9 2.3.3 プログラムをダウンロードする

2.3.3 プログラムをダウンロードする

プログラムをダウンロードするためのメモリがシステムに十分あるならば、デバッグするプログラムをダウン

ロードすることができます。デフォルト設定では、現在のプロジェクトのリンカが出力したプログラムを自動的

にダウンロードします。

 また、プロジェクトを作成したあとにダウンロードモジュールを手動で選択することができます。これは、図

2.8に示すDebug Settingsダイアログボックスを使用して行うことができます。このダイアログボックスでは、ワー

クスペース全体に渡りデバッグの設定を制御することができます。ダイアログボックスの左にあるツリーは、現

在のプロジェクトをすべて含みます。このツリーでプロジェクトを選ぶと、そのプロジェクトの設定の表示、お

よびセッションドロップダウンリストには、セッションの選択を表示します。このリストボックスでは、複数の

セッションを選択することもできますし、すべてのセッションを選択することもできます。複数のセッションを

選択した場合には、1つまたは複数のセッションの設定を同時に修正することができます。Debug Settingsダイア

ログボックスは、以下のデバッグオプションを表示します。

• 現在のプロジェクトのための現在のデバッグターゲットおよびセッションの選択

• 現在のプロジェクトのためのダウンロードモジュールおよびセッションの選択

 ダウンロードモジュールリストは、ターゲットにダウンロードするファイルの順番を表示します。このリスト

の中でモジュールを追加、削除、修正、上へ移動、下へ移動することができます。

Page 120: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

25/57

Ü新規のダウンロードモジュールを追加するには

1. [Options->Debug Settings…]を選択してください。図2.8に示すダイアログボックスを表示します。

2. tree controlにおいて、ダウンロードモジュールを追加するプロジェクトおよびコンフィグレーションを選

択します。

3. “Add”ボタンをクリックしてください。図2.7に示すダイアログボックスを表示します。

4. “Format”リストボックスは、サポートしているオブジェクトフォーマットリーダのリストを含みます。こ

れによってプロジェクトに追加するダウンロードモジュールのリーダを正しく選択することができます。

5. “Filename”フィールドを使うと、使用中のディスクにあるダウンロードモジュールをブラウズすることが

できます。また、まだモジュールをビルドしていなければ、edit controlに入力することができます。

6. “Offset”フィールドにはオフセットアドレスを入力してください(一部のオブジェクトフォーマットに対

してのみ入力できます)。

7. ユーザが“OK”ボタンをクリックすると、デバッグダウンロードモジュールをリストの最後に追加しま

す。そのモジュールを他のモジュールと関連した別の位置に変えたいときには、モジュールを選択して“Up”および“Down”ボタンを使用してモジュールの位置を正しく設定してください。

図 2.7: Download Moduleダイアログボックス

Page 121: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

26/57

図 2.8: Debug Settings ダイアログボックス(Target タブ)

 Debug Settingsダイアログボックスで行った変更はすべて、“OK”ボタンをクリックするまで更新しません。現

在のターゲットに対し、ダウンロードモジュールに変更があった場合には、モジュールに印がつき、次回のデバ

ッグの際、プログラムを実行するときにダウンロードすることができます。

 デフォルトのデバッグフォーマットは、リスト中の最初のダウンロードモジュールに設定しています。1セッ

ションにつき、デフォルトのデバッグオブジェクトフォーマットを1つだけ指定することができます。現在イン

ストールしているデバッガフォーマットはすべてここに表示します。

Page 122: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

27/57

図 2.9: Debug Settings ダイアログボックス(Options タブ)

 Debug Settingsダイアログボックスの“Options”タブ(図 2.9)では、ターゲットをいつ接続するのかを決定する

ことができます。このオプションをチェックしていると、ユーザが[Build->Debug ->Go]を選択するまでターゲッ

トを接続しません。チェックしていないと、コンフィグレーションを開く度にターゲットを接続します。新しい

ワークスペースやプロジェクトを開いたときやツールバーやBuild Configurationsダイアログボックスを使ってコ

ンフィグレーションを切り替えたときにコンフィグレーションを開きます。

 また、このタブの“Command Line Batch Processing”リストでは、コマンドラインバッチコマンドを指定できます。

コマンドラインバッチコマンドは、コマンドラインを経由してデバッグを行います。このコマンドをいつ実行す

るか、”Command batch file load timing”ドロップダウンリストで選択することができます。”Command batch file loadtiming”ドロップダウンリストを選択してから、実行するバッチファイルを追加してください。リスト内の順番は、

タイミングイベントが発生したときにコマンドラインバッチファイルを実行する順番です。

追加・変更10 2.3.4 モジュールを手動でダウンロードする

2.3.4 モジュールを手動でダウンロードする

 いったんターゲットにダウンロードするモジュールを決定したら、接続したターゲット上のモジュールを手動

で更新することができます。これは[Debug->Download Modules]で行います。ダウンロードするモジュールは、1

つまたはすべてのモジュールを選択できます。また、Workspaceウィンドウにある”Download Module”フォルダの

下のモジュールを右クリックしても更新できます。

追加・変更11 2.3.5 モジュールを自動的にダウンロードする

2.3.5 モジュールを自動的にダウンロードする

 [Debug->Run] を選択すると、HEWは前回のダウンロードからモジュールに影響を与えるファイルまたはデバ

ッガの設定に変更があったかどうかをチェックします。HEWは変更を見つけると、それぞれのモジュールをダウ

ンロードする必要があるかどうかをユーザに問い合わせます。ユーザが”Yes”を選択すると、モジュールをター

ゲットにダウンロードします。

 複数のモジュールを同じ開始アドレスに構築した場合、そのアドレスの最初のモジュールのみをデフォルトで

ダウンロードします。よって、[Debug->Download Modules]および[Debug->Unload Modules]メニュー項目から、他

のモジュールを手動でロードしたりアンロードしたりすることができます。

Page 123: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

28/57

追加・変更12 2.3.6 モジュールをアンロードする

2.3.6 モジュールをアンロードする

 [Debug->Unload Modules]メニュー項目から、ダウンロードしたモジュールを手動でアンロードすることができ

ます。また、Workspaceウィンドウの”Download Module”ポップアップメニューからアンロードすることもできま

す。

 モジュールをアンロードすると、そのモジュールのシンボルは、HEWデバッギングシステムからなくなります

が、ターゲットのメモリ内容は変更しません。一度アンロードしたモジュールは、再度ロードするまでデバッグ

することはできません。

追加・変更13 2.3.9 レジスタの内容を修正する

2.3.9 レジスタの内容を修正する

 レジスタの内容を修正するには、以下のいずれかの方法でEdit Register ダイアログボックスを開きます。

(1) 修正したいレジスタをダブルクリックします。

(2) 修正したいレジスタを選択して、ポップアップメニューの[Edit…]を選択します。

図 2.12: Edit Register ダイアログボックス

 “Value”フィールドには数字またはC/C++の式を入力することができます。ドロップダウンリストからオプショ

ンを選択して、レジスタの内容のすべて、マスクした領域、フローティングビットまたはフラグビットを修正す

ることができます(このリスト内容は、CPUのモデルおよび選択したレジスタによって異なります)。

 新しい数字および式を入力したら“OK”ボタンをクリックするかENTERキーを押します。ダイアログボックス

は閉じて、新しい値をレジスタに書き込みます。

追加・変更14 3.1.1 レジスタの内容を使用する

3.1.1 レジスタの内容を使用する

 DisassemblyまたはMemoryウィンドウのアドレス指定など、HEWの別のところで値を入力する場合、CPUレジ

スタの中にある値を使用するためには、#R1、#PC、#R6L、または#ER3などのように、レジスタ名の先頭に“#”記号をつけてください。

Page 124: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

29/57

追加15 3.8 ソースアドレスカラム

3.8 ソースアドレスカラム

 プログラムをダウンロードすると、Sourceウィンドウにソースファイルに対するアドレスを表示することがで

きます。(図 3.6)アドレスは、Sourceウィンドウの左側に表示します。この機能は、PCまたはハードウェアブ

レークポイントを設定するときに便利です。

図 3.6: Source ウィンドウとアドレスカラム

Üすべてのソースファイルでカラムをオフにするには

1. Editorウィンドウを右クリックしてください。

2. “Define Column Format...”メニュー項目をクリックしてください。

3. Global Editor Column Statesダイアログボックスを表示します。

4. “Check status”チェックボックスは、そのカラムが有効か無効かを示します。チェックしている場合は有効

です。チェックボックスがグレー表示の場合、一部のファイルではカラムが有効で、別のファイルでは無

効であることを意味します。

5. “OK”ボタンをクリックして、新しいカラム設定を有効にしてください。

図 3.7: Global column stateダイアログボックス

Ü1つのソースファイルでカラムをオフにするには

1. 削除したいカラムのあるEditorウィンドウを右クリックしてください。ポップアップメニューを表示しま

す。

2. “Columns”メニュー項目をクリックしてください。カスケードしたメニュー項目が現れます。各カラムを、

このポップアップメニューに表示します。カラムが有効である場合、名前の横にチェックマークがありま

Page 125: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

30/57

す。エントリをクリックすると、カラムの表示、非表示を切り替えます。

追加16 3.9 デバッガカラム

3.9 デバッガカラム

 デバッグプラットフォームによりSourceウィンドウに追加することができるカラムが変わります。カラムの例

としては”Coverage”カラムがあり、デバッガの実行中に、プログラムカバレージをグラフィカルに表示します。

別の例としては”Target”カラムがあり、ターゲットに設定したハードウェアブレークポイントを示します。

 カラムを右クリックすると、そのカラムに対するポップアップメニューを表示します。また、カラム上でのダ

ブルクリックは、カラムごとに異なった働きをします。例えば、”Editor”カラム、および”Target”カラムでは、ダ

ブルクリックによりPCあるいはハードウェアブレークポイントを設定します。

追加・変更17 4.1 メモリ領域を見る

4.1 メモリ領域を見る

 メモリ領域を見るには、Ctrl+Mアクセラレータを使用して[View->Memory…]を選択するか、Memoryウィンド

ウツールバーボタン をクリックしてMemoryウィンドウを開きます。これにより、図4.1に示すSet Addressダイ

アログボックスが開きます。

図 4.1: Set Address ダイアログボックス

 “Address” フィールドに表示したいアドレスの開始アドレスまたは同等のシンボル、および終了アドレスを入

力します。”Display Data As”ドロップダウンリストから表示するデータサイズを選択します。”OK”ボタンをクリ

ックするか、ENTERキーを押すとダイアログボックスは閉じてMemoryウィンドウが開きます。入力した表示開

始および終了アドレス内でスクロールすることができます。

図 4.2: Memory ウィンドウ

Page 126: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

31/57

 コラムを3つ表示します。

1. Address この行のDataコラムの最初のアドレス

2. Data デバッギングプラットフォーム物理メモリからアクセス幅でデータを読み出

し、表示幅に変換します。

3. Value 他のフォーマットで表示するデータ

追加・変更18 4.4 メモリの内容を修正する

4.4 メモリの内容を修正する

 メモリ内容は、Editダイアログボックスで変更します。変更したいメモリユニット上にカーソルを移動します

(Memoryウィンドウ表示選択にしたがって)。メモリユニットをダブルクリックするか、ENTERキーを押しま

す。図4.4のダイアログボックスを表示します。

図 4.4: Edit Memory ダイアログボックス

 また、メモリユニット上にマウスカーソルを移動し、キーボードより16進数を入力することにより、メモリの

内容を変更することもできます。

 “New Value”フィールドには数字またはC/C++の式を入力することができます。新しい数字または式を入力した

ら、”OK”ボタンをクリックまたはENTERキーを押すと、新しい値をメモリに書き込みます。

追加・変更19 4.4.2 メモリ内の値を探す

4.4.2 メモリ内の値を探す

 メモリ内の値を探すには、Memoryウィンドウを開き、ポップアップメニューから[Search]を選択しなければな

りません。あるいはMemoryウィンドウがすでに開いているときは、単にF3キーを押します。

図4.5に示すように、Search Memoryダイアログボックスを表示します。

図 4.5: Search Memory ダイアログボックス

 検索するアドレス範囲の開始および終了アドレス(Memoryウィンドウの中のメモリ領域を選択している場合

には、開始および終了アドレス値を自動的にフィルします)、および検索するデータ値を入力します。また、検

索条件として、一致/不一致、検索方向を指定できます。終了アドレスには先頭に'+'記号をつけることができ、

この記号を入力すると、入力した値を範囲として使用します。(先頭アドレス+入力した値が終了アドレスにな

ります)

Page 127: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

32/57

 検索フォーマットを選択し、”OK”ボタンをクリックするかENTERキーを押します(デフォルトは、data displayフォーマットです)。ダイアログボックスは閉じてHEWは指定したデータの領域を検索します。データが見つか

ると、Memoryウィンドウにハイライト表示し、データが見つかったアドレスをStatusバーにメッセージとして表

示します。

 データを見つけることができなかった場合、Memoryウィンドウのカーソルの位置は以前と変わらず、データ

を見つけることができなかったことを知らせるメッセージをステータスバーに表示します。

追加・変更20 4.6 メモリ領域をコピーする

4.6 メモリ領域をコピーする

 メモリコピー機能を使用してメモリ領域をコピーすることができます。メモリ領域を選択してポップアップメ

ニューから[Copy…]を選択すると、Copy Memoryダイアログボックスを表示します。(図4.7)

図 4.7: Copy Memory ダイアログボックス

 

Page 128: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

33/57

 Memoryウィンドウで選択したコピー元の開始アドレスおよび終了アドレスは、”Begin”および”End”フィールド

に表示します。”Verify”チェックボックスをチェックすることによりコピー元とコピー先を比較しながらコピー

することもできます。”Format”リストボックスでコピー単位を選択することもできます。コピー先の開始アドレ

スを”Destination”フィールドに入力して”OK”ボタンをクリックするか、ENTERキーを押すと、ダイアログボック

スを閉じてメモリブロックを新しいアドレスにコピーします。

追加・変更21 メモリ領域をテストする

4.7 メモリ領域をテストする

注意 メモリ領域のテストを行なう場合、メモリの現在の内容を上書きします。作成したプログラムまたはデ

ータを消去しますのご注意ください。

なお、メモリテスト機能は、選択したデバッグプラットフォームによってはサポートしていない場合が

あります。

 メモリテスト機能を使用してアドレス空間のメモリ領域をテストすることができます。メモリを選択してポッ

プアップメニューから[Test]を選択します。Test Memoryダイアログボックスを表示します。(図4.8)

図 4.8: Test Memory ダイアログボックス

 Memoryウィンドウに指定した開始および終了アドレスは、”Start”および”End”フィールドに表示します。”OK”ボタンをクリックするかENTERキーを押すと、ダイアログボックスを閉じて、HEWはメモリ領域をテストしま

す。

追加・変更22 4.8 メモリ領域を保存、検証する

4.8 メモリ領域を保存、検証する

 メモリ保存機能を使用してアドレス空間のメモリ領域をディスクファイルに保存することができます。[File->Save Memory...]を選択してSave Memory Asダイアログボックスを開きます。

図 4.9: Save Memory As ダイアログボックス

保存するメモリブロックの開始および終了アドレス、ファイル名、ファイルフォーマットを入力します。“Filename”ドロップダウンリストには、メモリを保存するために使用した過去4つのファイル名を表示します。

また“Browse…”ボタンをクリックすると、標準のFile Save Asダイアログボックスを開きます。“OK”ボタンをク

リックするかENTERキーを押すと、ダイアログボックスを閉じて、メモリブロックをモトローラSレコードフォ

ーマットファイルとしてディスクに保存します。ファイルの保存が完了すると、確認のメッセージボックスを表

Page 129: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

34/57

示することがあります。

 メモリベリファイ機能を使用してアドレス空間のメモリ領域を検証することができます。[File->VerifyMemory...]を選択してVerify Memoryダイアログボックスを開きます。

図 4.10: Verify Memory ダイアログボックス

追加・変更23 6. プログラムを停止する

6.プログラムを停止する

 この章では、作成したプログラムの実行を停止する方法を説明します。停止手段として、Haltコマンドを使用

して停止する方法、および作成したコードの特定の場所にブレークポイントを設定することによって停止する方

法について説明します。

6.1 Haltによる停止

 作成したプログラムが実行中の場合、Haltツールバーボタン (赤い停止の印)を使用することができます。し

かし、プログラムが停止している場合は、使用できません (STOPの印が灰色になります)。プログラムを停止

させるには、Haltツールバーボタンをクリックするか、[Debug->Halt Program]を選択することによりプログラムが

停止します。

 Haltによりプログラムが停止したとき、Outputウィンドウの”Debug”タブに”Stop”というメッセージを表示しま

す。

6.2 標準のブレークポイント(PCブレークポイント) 作成したプログラムをデバッグする場合、PCブレークポイントにより指定した行または命令でプログラムの実

行を停止させることができます。標準的なPCブレークポイントを設定したり解除したりする方法を以下に示しま

す。より複雑な設定をする場合には、Breakpointsウィンドウを使用します。Breakpointsウィンドウは ボタンを

クリックするか、[View->Breakpoints]を選択することにより表示します。

ÜPCブレークポイントを設定するには

1. PCブレークポイントを設定する位置のDisassembleまたはSourceウィンドウが開いていることを確認しま

す。

2. プログラムを停止したい行でポップアップメニューの[Toggle Breakpoint] を選択するか、F9キーを押すかし

ます。

3. 左余白に赤丸を表示します。これは、PC ブレークポイントを設定したことを示します。

4. [Edit->Source Breakpoints]を選択することによって表示するBreakpointsダイアログボックスにより、現在設定

しているブレークポイントの有効/無効の切り替えおよび削除ができます。

 作成したプログラムを実行して PCブレークポイントを設定したアドレスに達すると、Outputウィンドウ

の”Debug”タブに" PC Breakpoint"というメッセージを表示し、実行を停止し、SourceまたはDisassemblyウィンド

ウを更新し、停止位置を左余白に矢印で表示します。

注意 ブレーク発生時には、PC ブレークポイントを設定した行または命令を実行する直前で停止します。そ

の PC ブレークポイントで停止した後に Go または Step を選択した場合、矢印で表示した行から実行し

ます。

Page 130: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

35/57

6.2.1 Breakpointダイアログボックスを使用する

 Breakpointダイアログボックスを図6.1に示します。このダイアログボックスに現在設定しているブレークポイ

ントを表示します。”Edit Code”ボタンによりブレークポイントが存在するソースを見ることができます。

“Remove”、”Remove All”ボタンによりプレークポイントを1つまたはすべてを削除することができます。また、

各ブレークポイントのチェックボックスにより有効/無効の切り替えができます。

図 6.3: Breakpoints ダイアログボックス

6.2.3 PCブレークポイントを切り替える

 PCブレークポイントを設定している行のBPカラムをダブルクリックするか、その行にカーソルを置いてF9キーを使用すると、PC Breakpointsの設定を切り替えることができます。切り替わる設定内容はデバッグプラットフ

ォームによって異なります。

Page 131: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

36/57

追加・変更24 8.5 測定方法を指定する

8.5 測定方法を指定する

 プロファイルデータの測定時に、関数呼び出しをトレースするかどうかを指定できます。関数呼び出しをトレースする

と、ユーザプログラム実行時の関数呼び出し関係をツリー形式で表示できるようになります。関数呼び出しをトレースし

ないと、関数呼び出し関係を表示できませんが、Profileデータの測定時間を短縮することができます。

 関数呼び出しをトレースしないようにするためには、ProfileウィンドウのPop-upメニュー”Disable Tree (Not traces functioncall)”を選択します。(メニューにチェックマークが付きます。)

 また、OSによるタスクスイッチなど、通常の方法以外で関数を呼び出しているプログラムの場合、関数呼び出しを正し

く表示できない場合がありますので、関数呼び出しをトレースせずにプロファイルデータを測定してください。

追加・変更25 8.6.2 Treeタブ

8.6.2 Treeタブ

 関数の呼び出し関係を表示し、各呼び出し位置におけるプロファイルデータを表示します。

 ”Tree”タブは、Profileウィンドウのポップアップメニュー”Disable Tree (Not traces function call)”をチェックしていない時

のみ有効です。

図 8.5: Tree タブ

Page 132: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

37/57

追加・変更26 付録A I/Oファイルフォーマット

付録A I/Oファイルフォーマット

 HEWは、I/Oレジスタ定義ファイルで取得する情報に基づいて、IOウィンドウをフォーマットします。デバッギングプラットフォ

ームを選択すると、HEWは、選択したデバイスに対応する“<device>.IO”ファイルを検索し、存在する場合にはこのファイルをロー

ドします。これは、I/Oモジュール、およびそのレジスタのアドレスやサイズを記述するフォーマット済みテキストファイルです。

ユーザはテキストエディタでこのファイルを編集し、ユーザアプリケーションに特有のメモリマップレジスタや周辺レジスタ(例え

ば、マイコンのアドレス空間にマップしたASICデバイスのレジスタ)のサポートを追加することができます。

A.1 ファイルフォーマット

 各モジュール名を[Modules]定義セクションで定義し、モジュールの番号を、順番に付けていなければなりません。各モジュールは

レジスタ定義セクションに対応しており、セクション内のエントリは、I/Oレジスタを定義します。

 “BaseAddress”はデバイスのための定義であり、そのデバイスでは、CPUモードによってアドレス空間のI/Oレジスタの場所が移動

します。この場合、”BaseAddress”値は、ある特有モードのI/Oレジスタのベースアドレスです。また、レジスタ定義で使用するアド

レスは、同じモードにおけるレジスタのアドレス位置です。I/Oレジスタファイルを実際に使用する場合、定義したレジスタアドレ

スから”BaseAddress”値を引き、その結果のオフセットを選択したモードのベースアドレスに加算します。

 各モジュールにはセクションがあり、オプションの依存性によって形成するレジスタを定義します。依存性は、モジュールがイネ

ーブルかどうかを確認するためにチェックします。各レジスタ名をセクションで定義し、レジスタの番号を、順番に付けていなけれ

ばなりません。依存性は、dep=<reg> <bit> <value>のようにセクションに入力します。

1. <reg>は依存性のレジスタIDです。

2. <bit>はレジスタのビット位置です。

3. <value>は値で、ビットは、イネーブルであるモジュールに使用しなければなりません。

 [Register]定義エントリは、id=<name> <address> [<size>[<absolute>[<format>[<bitfields>]]]]のフォーマットで入力します。

1. <name>は表示するレジスタ名です。

2. <address>はレジスタのアドレスです。

3. <size>は、Bがバイトサイズ、Wがワードサイズ、Lがロングワードサイズを意味します(デフォルトはバイトで

す)。

4. <absolute>は、レジスタが絶対アドレスにある場合、Aと設定します。これは、異なるモードのCPUによってI/O空間アドレス範囲が移動する場合のみ関連します。レジスタが絶対アドレスにあると定義すると、ベースアドレス

オフセットは計算せず、指定したアドレスを直接使用します。

5. <format>はレジスタを出力するためのフォーマットです。有効な値は、16進数の場合はH、10進数はD、2進数はBです。

6. <bitfields>セクションは、レジスタのビットを定義します。

 ビットフィールドセクションは、各エントリがbit<no>=<name>タイプのレジスタ内のビットを定義します。

1. <no>はビット番号です。

2. <name>はビットのシンボル名です。

 コメント行を入れる場合、“;”で始めなければなりません。

 次に例を示します。

Page 133: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

38/57

4. チュートリアル

追加・変更1 5 デバッグ

5 デバッグ

5.1 デバッグの準備

シミュレータ・デバッガの主な特徴をサンプルプログラムを用いて説明します。

注意

本章の使用例(図)の内容は、ご使用になるコンパイラのバージョンによって変わってくる場合がありますのでご了承ください。

5.1.1 サンプルプログラム

サンプルプログラムは、10個のランダムデータを昇順にソートした後、降順にソートするCプログラムに基づいています。

サンプルプログラムでは、以下の処理を行います。

• main関数でソートするランダムデータを生成します。

• sort関数ではmain関数で生成したランダムデータを格納した配列を入力し、昇順にソートします。

• change関数では、sort関数で生成した配列を入力し、降順にソートします。

• printf関数を用いて、ランダムデータ、ソートしたデータを表示します。

サンプルプログラムは、HEWのデモンストレーションプログラムを用います。

5.1.2 サンプルプログラムの作成

1章~4章を参照し、下記に注意してHEWのデモンストレーションプログラムを作成してください。

「2.1 新規ワークスペースを作成する」では“Project Type”にDemonstration を指定してください。

“CPU Series: ” はSH-1を、”Target: “ はSH-1 Simulator を選択してください。

コンフィギュレーションは、ツールバーより「SimDebug_SH-1」をビルド前に選択してください。

セッションは、ツールバーより「SimSessionSH-1」 を選択してください。

デバッグ機能の説明のため、Demonstrationは最適化なしの設定になっています。最適化の設定は変更しないでください。

Page 134: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

39/57

5.2 デバッグのための設定

5.2.1 メモリリソースの確保

開発しているアプリケーションを動作させるためにメモリリソースの確保が必要です。デモンストレーションプロジェクトでは、

自動的にメモリリソースを確保しますので、設定を確認してください。

[Option]メニューから [Simulator -> Memory Resource...]を選択し、現在のメモリリソースを表示してください。

図 5.1 Simulator Memory Resourceダイアログボックス

 

プログラム領域としてH'00000000からH'00007FFFを、スタック領域としてH'0FFFE000からH'0FFFFFFFを読み出し/書き込み可

能領域として確保しています。

[Close]ボタンをクリックしてダイアログボックスを閉じてください。

メモリリソースは、Hitachi SuperH RISC engine Standard Toolchainダイアログボックスの[Simulator]タブでも参照/変更ができます。

おたがいの変更は反映されます。

Page 135: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

40/57

5.2.2 サンプルプログラムのダウンロード

デモンストレーションプロジェクトでは、ダウンロードするサンプルプログラムを自動的に設定しますので、設定

を確認してください。

[Option]メニューから [Debug Settings...]を選択して、Debug Settingsダイアログボックスを開いてください。

図 5.2  Debug Settingsダイアログボックス

[Download Modules]に設定しているファイルがダウンロードするファイルです。

[OK]ボタンをクリックしてDebug Settingsダイアログボックスを閉じてください。

[Debug]メニューから [Download Modules -> All Download Modules]を選択して、サンプルプログラムをダウンロードして

ください。

Page 136: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

41/57

5.2.3 ソースプログラムの表示

 HEWでは、ソースレベルでプログラムをデバッグできます。「3.1 ソースファイルの編集と作成」を参照して、Source ウィン

ドウにソースファイル(”tutorial.c”)を表示してください。

Workspaceウィンドウの tutorial.cをダブルクリックしてSourceウィンドウを開いてください。

図 5.3 Sourceウィンドウ(ソースプログラムの表示)

Page 137: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

42/57

5.2.4 PCブレークポイントの設定

 Sourceウィンドウによって、ブレークポイントを簡単に設定できます。以下のようにして sort関数のコール箇所にブレークポイ

ントを設定します。

sort関数コールを含む行にカーソルを移動して右クリックし、ポップアップメニューの[Toggle Breakpoint]を選択して

ください。

図 5.4 Sourceウィンドウ(ブレークポイントの設定)

 sort関数コールを含む行に ●を表示し、そのアドレスに PCブレークポイントを設定したことを示します。

Page 138: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

43/57

5.2.5 プロファイラの設定

[View]メニューから [Profile]を選択して、Profileウィンドウを開いてください。

図 5.5 Profileウィンドウ

Profileウィンドウ上で右クリックしてポップアップメニューを表示し、[Enable Profiler]を選択してプロファイラ情報取得

を有効にしてください。

Page 139: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

44/57

5.2.6 Simulated I/Oの設定

デモンストレーションプロジェクトでは、自動的にSimulated I/Oを設定しますので、設定を確認してください。

[Option]メニューから [Simulator -> System]を選択して、Simulator Systemダイアログボックスを開いてください。

図 5.6 Simulator Systemダイアログボックス

[System Call Address]の [Enable]にチェックがあることを確認してください。

[OK]ボタンをクリックしてSimulated I//Oを有効にしてください。

[View]メニューから [Simulated I/O]を選択して、Simulated I/Oウィンドウを開いてください。Simulated I/Oウィンドウを

開かなければ、Simulated I/Oが有効になりません。

図 5.7 Simulated I/Oウィンドウ

Page 140: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

45/57

5.2.7 トレース情報取得条件の設定

[View]メニューから [Trace]を選択して、Traceウィンドウを開いてください。さらに、Trace ウィンドウ上で右クリック

してポップアップメニューを表示し、[Acquisition...]を選択してください。

 

 以下の Trace Acquisitionダイアログボックスを表示します。

図 5.8 Trace Acquisitionダイアログボックス

Trace Acquisitionダイアログボックスの [Trace start/Stop]を [Enable]に設定し、[OK]ボタンをクリックしてトレース情報

取得を有効にしてください。

5.2.8 スタックポインタ、プログラムカウンタの設定

 プログラムを実行するために、プログラムカウンタをリセットベクタから設定してください。サンプルプログラムのリセットベ

クタにはPC値としてH’400が書いてあります。

[Debug]メニューから [Reset CPU]を選択するか、 またはツールバー上の[Reset CPU]ボタンをクリックしてください。

 

 リセットベクタからプログラムカウンタにH’400を設定します。

図 5.9 Reset CPUボタン

Page 141: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

46/57

5.3 デバッグ開始

5.3.1 プログラムの実行

プログラムを実行するには、[Debug]メニューから [Go]を選択するか、またはツールバー上の[Go]ボタンをクリックして

ください。

図 5.10 Goボタン

プログラムはブレークポイントを設定したところまで実行します。プログラムが停止した位置を示すために Source ウィンドウに

⇒を表示します。また 停止要因としてOutputウィンドウに”PC Breakpoint”を表示します。

図 5.11 Sourceウィンドウ(ブレーク状態)

Page 142: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

47/57

 Statusウィンドウで停止要因が確認できます。

[View]メニューから [Status]を選択して、Statusウィンドウを開いてください。さらに、Statusウィンドウのうち [Platform]シートを表示してください。

図 5.12 Statusウィンドウ

 これは、以下の実行内容を表示します。

① ブレークの原因は PCブレーク

② リセットからの実行

③ GOコマンドでの実行命令数は34,855命令

④ リセットからの実行サイクル数は250,149サイクル

 Registerウィンドウでレジスタの値が確認できます。

[View]メニューから [Registers]を選択してください。

図 5.13 Registerウィンドウ

 プログラム停止時の各レジスタの値を確認することができます。

Page 143: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

48/57

5.3.2 トレースバッファの使い方

 トレースバッファを使って、命令実行の履歴を知ることができます。

[View]メニューから [Trace]を選択して、Traceウィンドウを開いてください。ウィンドウの最上部までスクロールアップ

してください。

図 5.14 Traceウィンドウ(トレース情報の表示)

5.3.3 トレースサーチの実行

 最初に、Traceウィンドウ上で右クリックしてポップアップメニューを表示し、[Find...]を選択して、Trace Search ダイアログボ

ックスを開いてください。

図 5.15 Trace Searchダイアログボックス

 サーチ項目 [Item]とサーチ内容 [Value]を設定して [OK]ボタンをクリックすると、トレースサーチを実行します。該当するト

レース情報があった場合、該当する最初の行を強調表示します。同じサーチ内容 [Value]でトレースサーチを続ける場合は、Traceウィンドウ上で右クリックしてポップアップメニューを表示し、[Find Next]を選択してください。次に該当する行を強調表示します。

図 5.16 Traceウィンドウ(サーチ結果)

Page 144: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

49/57

5.3.4 Simulated I/Oの確認

 printf関数で表示したランダムデータをSimulated I/Oウィンドウで確認することができます。

図 5.17 Simulated I/Oウィンドウ

Simulated I/Oウィンドウは閉じないでください。

5.3.5 ブレークポイントの確認

 プログラムに設定した全てのブレークポイントのリストをBreakpointsウィンドウで確認することができます。

[View]メニューから [Breakpoints]を選択してください。

図 5.18 Breakウィンドウ

 Breakpointsウィンドウによって、ブレークポイントの設定、新しいブレークポイントの定義、およびブレークポイントの削除

ができます。

Breakウィンドウを閉じてください。

Page 145: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

50/57

5.3.6 変数の参照

プログラムで使用する変数の値をWatchウィンドウで確認することができます。たとえば、プログラムの始めに宣言した long型の配列 a を見る場合:

[View]メニューから [Watch]を選択し、Watchウィンドウを表示してください。さらに、Watch ウィンドウ上で右クリッ

クしてポップアップメニューを表示し、[Add Watch...]を選択してください。

 以下の Add Watchダイアログボックスを表示します。

図 5.19 Add Watchダイアログボックス

配列 “a” をタイプし、[OK]ボタンをクリックします。

Watchウィンドウに、long型の配列 a を表示します。

配列 a の前にあるシンボル+をクリックすると、配列を拡張して表示します。

図 5.20 Watchウィンドウ

Watchウィンドウを閉じてください。

Page 146: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

51/57

5.3.7 プログラムのステップ実行

 シミュレータ・デバッガは、プログラムのデバッグに有効な各種のステップメニューを備えています。

メニュー 説明

Step In 各ステートメントを実行します(関数内のステートメントを含む)。

Step Over 関数コールを1ステップとして、ステップ実行します。

Step Out 関数を抜け出し、関数を呼び出したプログラムにおける次のステートメントで停止します。

Step… 指定した速度で指定回数分ステップ実行します。

(1) [Step In]の実行

 [Step In]はコール関数の中に入り、コール関数の先頭のステートメントで停止します。

sort関数の中に入るために、[Debug]メニューから [Step In]を選択するか、またはツールバーの [Step In]ボタンをクリッ

クしてください。

図 5.21 Step Inボタン

図 5.22 Sourceウィンドウ(Step In)

SourceウィンドウのPC位置表示(⇒)が、sort関数の先頭のステートメントに移動します。

Page 147: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

52/57

(2) [Step Out]の実行

 [Step Out]はコール関数の中から抜け出し、コール元プログラムの中の次のステートメントで停止します。

sort関数の中から抜け出すために、[Debug]メニューから [Step Out]を選択するか、またはツールバーの [Step Out]ボタン

をクリックしてください。

図 5.23 Step Outボタン

図 5.24 Sourceウィンドウ(Step Out)

Page 148: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

53/57

(3) [Step Over]の実行

 [Step Over]は関数コールを1ステップとして実行して、メインプログラムの中の次のステートメントで停止します。

 Printf関数中のステートメントを一度にステップ実行するために、[Debug]メニューから[Step Over]を選択するか、またはツール

バーの [Step Over]ボタンをクリックしてください。

図 5.25 Step Overボタン

図 5.26 Sourceウィンドウ(Step Over)

 printf関数を実行すると、Simulated I/Oウィンドウに*** Sorting results ***を表示します。

Page 149: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

54/57

5.3.8 プロファイラ情報の確認

プロファイラ情報をProfileウィンドウで確認することができます。

[Go]ボタンをクリックして現在のPCから継続実行すると、SLEEP命令を実行して停止します。

(1) List]シート

 プロファイラ情報をリスト形式で表示します。

[View]メニューから [Profile]を選択して、Profileウィンドウを開いてください。[List]シートを表示します。

図 5.27 Profileウィンドウ(Listシート)

__flclose関数を6回コールし、実行サイクルは1182サイクル、内部メモリを87回アクセスしたことがわかります。

コール回数が多い関数や遅いメモリを多くアクセスする関数など、プログラム性能のクリティカルパスを探すことができます。

Page 150: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

55/57

(2)[Tree]シート

 プロファイラ情報をツリー形式で表示します。

[Tree]シートを選択してください。関数名をダブルクリックすることによりツリー構造を拡張または縮小します。

図 5.28 Profileウィンドウ(Treeシート)

__flclose関数が_fclose関数から3回コールされ、その時の実行サイクルは 816サイクル、内部メモリを60回アクセスしたことが

わかります。

Page 151: SuperH RISC engine C/C++ Compiler Simulator …csps.hitachi-solutions.co.jp/sh-c/files/shc_win_7003_doc.pdf- 1 -1.記録媒体 本パッケージはCD-ROM 1枚で提供します。本CD-ROMにより、日立統合開発環境と、関連マニュアルを参照するためのソフトウェア

HS6400EWIW2SJ-AN020603SH

56/57

(3)Profile-Chartウィンドウ

 Profile-Chartウィンドウで関数の呼び出し関係を表示します。

Profilerウィンドウ上で__flclose関数を選択してから、右クリックしてポップアップメニューを表示し、 [View Profile-Chart]を選択してProfile-Chartウィンドウを表示してください。

図 5.29 Profile-Chartウィンドウ

__flclose関数が_fclose関数から3回、_freopen関数から3回コールされたことがわかります。

また、_close関数を3回コールしたことがわかります。

 以上で、シミュレータ・デバッガを使用したチュートリアルは終了です。

追加・変更2 6 HEWの終了

変更前:

終了時、使用していたワークスペースの内容を保存するか確認するメッセージボックス(図6.1)を表示します。

変更後:

終了時、使用していたセッションの内容を保存するか確認するメッセージボックス(図6.1)を表示します。

以上