F2MC®-16 ファミリ SOFTUNE® Workbench 機能説明書 Software Support Manual Publication Number CM41-00313 MB90350EÉVÉäÅ[ÉY Cover Sheet Revision 8.0 Issue Date July 1, 2014 F2MC®-16 ファミリ SOFTUNE® Workbench 機能説明書 Software Support Manual MB90350EÉVÉäÅ[ÉY Cover Sheet S o ft w a r e S u p p o r t M a n u a l はじめに ■ SOFTUNE Workbench とは この SOFTUNE Workbench は , Spansion 製マイクロプロセッサ / マイクロコントローラ F2MC-16 ファミリのプログラムの開発を行うためのサポートソフトウェアです。 開発マネージャ , シミュレータデバッガ , エミュレータデバッガ , モニタデバッガを 1 つに統合しており , 効率よく開発を進めることができる統合型開発環境です。 ■ 本書の目的と対象読者 本書は , SOFTUNE Workbench の機能について解説したものです。 本書は , SOFTUNE Workbench を使用して各種製品を開発される技術者の方を対象にし ています。本書をご一読ください。 ■ 商標 REALOS, SOFTUNE は Spansion LLC の登録商標です。 F2MC は Spansion LLC の登録商標です。 Microsoft,Windows,Windows Media は , 米国 Microsoft Corporation の米国およびその他の 国における登録商標または商標です。 その他の社名および製品名などの固有名詞は , 各社の商標または登録商標です。 ■ 本書の全体構成 本書は , 以下に示す 2 つの章で構成されています。 第 1 章 基本機能 SOFTUNE Workbench の基本機能について説明します。 第 2 章 依存機能 各デバッガに依存する機能について説明します。 July 1, 2014, CM41-00313-8 i So ft war e ii S up po r t M a nu al CM41-00313-8, July 1, 2014 S o ft w a r e July 1, 2014, CM41-00313-8 S u p p o r t M a n u a l iii So ft war e S up po r t M a nu al 本書の読み方 ■ 本書のページ構成 本書の各セクションには,タイトルの下に必ずそのセクションの要約が付いていますの で , その要約だけ追っていただいても , 本製品の概要を把握できます。 また , 上位セクションのタイトルが下位セクションにも記述していますので , 現在読ん でいる場所がどのセクションに位置しているのかを把握できます。 iv CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 目次 第1章 基本機能 ................................................................................................... 1 1.1 ワークスペースの管理機能 ................................................................................................... 2 1.2 プロジェクト管理機能 .......................................................................................................... 3 1.3 プロジェクト間の依存関係 ................................................................................................... 5 1.4 メイク / ビルド機能 .............................................................................................................. 6 1.4.1 カスタマイズビルドの機能 ........................................................................................ 7 1.5 インクルード依存関係の解析機能 ........................................................................................ 9 1.6 ツールオプションの設定機能 ............................................................................................. 10 1.7 エラージャンプの機能 ........................................................................................................ 11 1.8 エディタの機能 .................................................................................................................. 13 1.9 外部エディタ登録 ............................................................................................................... 14 1.10 外部ツール登録 .................................................................................................................. 16 1.11 マネージャ部で使用できるマクロ記述 ............................................................................... 17 1.12 動作環境設定 ...................................................................................................................... 22 1.13 デバッガの種別 .................................................................................................................. 24 1.14 メモリ操作機能 .................................................................................................................. 25 1.15 レジスタ操作 ...................................................................................................................... 26 1.16 ラインアセンブル , 逆アセンブル ....................................................................................... 27 1.17 シンボリックデバッグ ........................................................................................................ 28 1.17.1 ローカルシンボルの参照 .......................................................................................... 30 1.17.2 C 言語の変数の参照 ................................................................................................. 31 第2章 依存機能 ................................................................................................. 33 2.1 シミュレータデバッガ ........................................................................................................ 2.1.1 動作環境の設定 ........................................................................................................ 2.1.1.1 Boot ROM ファイル自動実行 .............................................................................. 2.1.2 命令シミュレーション ............................................................................................. 2.1.3 メモリシミュレーション .......................................................................................... 2.1.4 I/O ポートのシミュレーション ................................................................................. 2.1.5 割込みのシミュレーション ...................................................................................... 2.1.6 リセットのシミュレーション ................................................................................... 2.1.7 低消費電力モードのシミュレーション .................................................................... 2.1.8 STUB 機能 ................................................................................................................ 2.1.9 ブレーク ................................................................................................................... 2.1.9.1 コードブレーク ................................................................................................... 2.1.9.2 データブレーク ................................................................................................... 2.1.9.3 トレースバッファフルブレーク .......................................................................... 2.1.9.4 ガーデッドアクセスブレーク .............................................................................. 2.1.9.5 強制ブレーク ....................................................................................................... 2.1.10 実行サイクル数測定 ................................................................................................. 2.1.11 トレース ................................................................................................................... 2.1.11.1 トレースの設定方法 ............................................................................................ 2.1.11.2 トレースデータの表示 ........................................................................................ 2.1.11.3 トレースデータの検索 ........................................................................................ 2.1.11.4 トレースデータを保存するには .......................................................................... July 1, 2014, CM41-00313-8 34 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 54 55 56 57 58 v So ft war e S up po r t M a nu al 2.1.12 カバレッジ測定 ........................................................................................................ 59 2.1.12.1 カバレッジ測定手順 ............................................................................................ 60 2.1.13 デバッガの情報を確認するには ............................................................................... 63 2.2 エミュレータデバッガ (MB2141) ....................................................................................... 66 2.2.1 動作環境の設定 ........................................................................................................ 67 2.2.1.1 MCU 動作モード ................................................................................................. 68 2.2.1.2 デバッグ領域 ....................................................................................................... 70 2.2.1.3 メモリエリアの種類 ............................................................................................ 71 2.2.1.4 メモリマッピング ................................................................................................ 74 2.2.1.5 タイマの最小測定単位の設定 .............................................................................. 76 2.2.2 プログラム実行での注意 .......................................................................................... 77 2.2.3 ユーザプログラム実行中に使用できるコマンド ...................................................... 80 2.2.4 オンザフライ中のメモリアクセス ............................................................................ 81 2.2.5 ブレーク ................................................................................................................... 83 2.2.5.1 コードブレーク ................................................................................................... 84 2.2.5.2 データブレーク ................................................................................................... 86 2.2.5.3 シーケンシャルブレーク ..................................................................................... 87 2.2.5.4 ガーデッドアクセスブレーク .............................................................................. 88 2.2.5.5 トレースバッファフルブレーク .......................................................................... 89 2.2.5.6 パフォーマンスバッファフルブレーク ............................................................... 90 2.2.5.7 強制ブレーク ....................................................................................................... 91 2.2.6 イベント ................................................................................................................... 92 2.2.6.1 ノーマルモード時の動作 ..................................................................................... 94 2.2.6.2 マルチトレースモード時の動作 .......................................................................... 96 2.2.6.3 パフォーマンスモード時の動作 .......................................................................... 98 2.2.7 シーケンサによる制御 ........................................................................................... 100 2.2.7.1 シーケンサの設定 .............................................................................................. 101 2.2.7.2 シーケンサによるブレーク ............................................................................... 103 2.2.7.3 シーケンサによるトレースサンプリング制御 .................................................. 104 2.2.7.4 シーケンサによる時間測定 ............................................................................... 106 2.2.7.5 シーケンサによる時間測定例 ............................................................................ 107 2.2.8 リアルタイムトレース ........................................................................................... 109 2.2.8.1 シングルトレース .............................................................................................. 111 2.2.8.2 シングルトレースの設定方法 ............................................................................ 113 マルチトレース ................................................................................................. 115 2.2.8.3 2.2.8.4 マルチトレースの設定方法 ............................................................................... 117 2.2.8.5 トレースデータの格納状況の表示 .................................................................... 118 2.2.8.6 トレースデータの表示位置の指定 .................................................................... 119 2.2.8.7 トレースデータの表示形式 ............................................................................... 120 2.2.8.8 オンザフライによるトレースデータの読出し .................................................. 123 2.2.8.9 トレースデータを保存するには ........................................................................ 125 2.2.9 パフォーマンス測定 ............................................................................................... 126 2.2.9.1 パフォーマンス測定手順 ................................................................................... 127 2.2.9.2 パフォーマンス測定データの表示 .................................................................... 129 2.2.10 カバレッジ測定 ...................................................................................................... 130 2.2.10.1 カバレッジ測定手順 .......................................................................................... 131 2.2.11 実行時間測定 .......................................................................................................... 134 2.2.12 外部プローブによるサンプリング .......................................................................... 136 2.2.13 デバッガの情報を確認するには ............................................................................. 138 vi CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 2.3 エミュレータデバッガ (MB2147-01) ................................................................................ 2.3.1 動作環境の設定 ...................................................................................................... 2.3.1.1 モニタプログラム自動ロード ............................................................................ 2.3.1.2 MCU 動作モード ............................................................................................... 2.3.1.3 デバッグ領域 ..................................................................................................... 2.3.1.4 メモリエリアの種類 .......................................................................................... 2.3.1.5 メモリマッピング .............................................................................................. 2.3.1.6 デバッグ機能 ..................................................................................................... 2.3.1.7 イベントモード ................................................................................................. 2.3.2 ユーザプログラム実行の注意 ................................................................................. 2.3.3 ユーザプログラム実行中に使用できるコマンド .................................................... 2.3.4 ブレーク ................................................................................................................. 2.3.4.1 コードブレーク ................................................................................................. 2.3.4.2 データブレーク ................................................................................................. 2.3.4.3 データ監視ブレーク .......................................................................................... 2.3.4.4 シーケンシャルブレーク ................................................................................... 2.3.4.5 ガーデッドアクセスブレーク ............................................................................ 2.3.4.6 トレースバッファフルブレーク ........................................................................ 2.3.4.7 パフォーマンスバッファフルブレーク ............................................................. 2.3.4.8 外部トリガブレーク .......................................................................................... 2.3.4.9 強制ブレーク ..................................................................................................... 2.3.5 シーケンサによる制御 ........................................................................................... 2.3.5.1 シーケンサの設定 .............................................................................................. 2.3.6 リアルタイムトレース ........................................................................................... 2.3.6.1 シングルトレースの設定方法 ............................................................................ 2.3.6.2 マルチトレース ................................................................................................. 2.3.6.3 マルチトレースの設定方法 ............................................................................... 2.3.6.4 トレースデータの格納状況の表示 .................................................................... 2.3.6.5 トレースデータの表示位置の指定 .................................................................... 2.3.6.6 トレースデータの表示形式 ............................................................................... 2.3.6.7 オンザフライによるトレースデータの読出し .................................................. 2.3.6.8 トレースデータを保存するには ........................................................................ 2.3.7 パフォーマンス測定 ............................................................................................... 2.3.7.1 パフォーマンス測定手順 ................................................................................... パフォーマンス測定データの表示 .................................................................... 2.3.7.2 2.3.8 カバレッジ測定 ...................................................................................................... 2.3.8.1 カバレッジ測定手順 .......................................................................................... 2.3.9 リアルタイムモニタ ............................................................................................... 2.3.10 実行時間測定 .......................................................................................................... 2.3.11 パワーオンデバッグ ............................................................................................... 2.3.12 RAM チェッカ ........................................................................................................ 2.3.13 デバッガの情報を確認するには ............................................................................. 2.4 エミュレータデバッガ (MB2147-05) ................................................................................ 2.4.1 動作環境の設定 ...................................................................................................... 2.4.1.1 モニタプログラム自動ロード ............................................................................ 2.4.1.2 MCU 動作モード ............................................................................................... 2.4.1.3 デバッグ領域 ..................................................................................................... 2.4.1.4 メモリエリアの種類 .......................................................................................... 2.4.1.5 メモリマッピング .............................................................................................. July 1, 2014, CM41-00313-8 141 142 143 144 145 146 148 150 151 152 154 157 158 160 161 162 163 164 165 166 167 168 170 172 176 177 180 182 183 184 187 188 189 190 192 193 194 197 198 200 201 205 208 209 210 211 212 213 215 vii So ft war e S up po r t M a nu al 2.4.2 プログラム実行での注意 ........................................................................................ 2.4.3 ユーザプログラム実行中に使用できるコマンド .................................................... 2.4.4 ブレーク ................................................................................................................. 2.4.4.1 コードブレーク ................................................................................................. 2.4.4.2 データブレーク ................................................................................................. 2.4.4.3 ガーデッドアクセスブレーク ............................................................................ 2.4.4.4 トレースバッファフルブレーク ........................................................................ 2.4.4.5 強制ブレーク ..................................................................................................... 2.4.5 リアルタイムトレース ........................................................................................... 2.4.5.1 トレースの設定方法 .......................................................................................... 2.4.5.2 トレースデータの格納状況の表示 .................................................................... 2.4.5.3 トレースデータの表示位置の指定 .................................................................... 2.4.5.4 トレースデータの表示形式 ............................................................................... 2.4.5.5 オンザフライによるトレースデータの読出し .................................................. 2.4.5.6 トレースデータを保存するには ........................................................................ 2.4.6 実行サイクル数測定 ............................................................................................... 2.5 エミュレータデバッガ (MB2198) ..................................................................................... 2.5.1 動作環境の設定 ...................................................................................................... 2.5.1.1 モニタプログラム自動ロード ............................................................................ 2.5.1.2 Boot ROM ファイル自動実行 ............................................................................ 2.5.1.3 MCU 動作モード ............................................................................................... 2.5.1.4 動作周波数制御 ................................................................................................. 2.5.2 プログラム実行での注意 ........................................................................................ 2.5.3 ユーザプログラム実行中に使用できるコマンド .................................................... 2.5.4 ブレーク ................................................................................................................. 2.5.4.1 コードブレーク ................................................................................................. 2.5.4.2 データブレーク ................................................................................................. 2.5.4.3 ガーデッドアクセスブレーク ............................................................................ 2.5.4.4 シーケンシャルブレーク ................................................................................... 2.5.4.5 トレースバッファフルブレーク ........................................................................ 2.5.4.6 パフォーマンスバッファフルブレーク ............................................................. 2.5.4.7 外部トリガブレーク .......................................................................................... 2.5.4.8 強制ブレーク ..................................................................................................... 2.5.5 シーケンサによる制御 ........................................................................................... シーケンサの動作 .............................................................................................. 2.5.5.1 2.5.6 リアルタイムトレース ........................................................................................... 2.5.6.1 トレースの設定方法 .......................................................................................... 2.5.6.2 トレースデータの格納状況の表示 .................................................................... 2.5.6.3 トレースデータの表示位置の指定 .................................................................... 2.5.6.4 トレースデータの表示形式 ............................................................................... 2.5.6.5 トレースデータを保存するには ........................................................................ 2.5.7 パフォーマンス測定 ............................................................................................... 2.5.7.1 パフォーマンス測定手順 ................................................................................... 2.5.7.2 パフォーマンス測定データの表示 .................................................................... 2.5.8 実行時間測定 .......................................................................................................... 2.5.9 パワーオンデバッグ ............................................................................................... 2.6 エミュレータデバッガ (MB2100-01) ................................................................................ 2.6.1 デバッグを開始するには ........................................................................................ 2.6.1.1 ターゲットの動作環境 ...................................................................................... viii 217 219 220 221 223 224 225 226 227 229 230 231 232 235 236 237 238 239 240 241 242 243 244 246 248 249 251 252 253 254 255 256 257 258 260 262 264 266 267 268 271 272 273 274 275 277 278 280 281 CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 2.6.1.2 セキュリティ ..................................................................................................... 2.6.2 デバッグを終了するには ........................................................................................ 2.6.3 効率よくデバッグを行うには ................................................................................. 2.6.3.1 デバッグ時の通信速度を高速にするには .......................................................... 2.6.3.2 デバッグ機能を切り換えるには ........................................................................ 2.6.4 プログラムを実行するには .................................................................................... 2.6.4.1 デバッグ機能の設定/解除 ............................................................................... 2.6.4.2 モニタリング ..................................................................................................... 2.6.4.3 パワーオンデバッグ .......................................................................................... 2.6.4.4 プログラム実行での注意 ................................................................................... 2.6.5 フラッシュメモリへアクセスするには .................................................................. 2.6.6 プログラム実行を中断するには[ブレーク]......................................................... 2.6.6.1 コードブレーク ( ハードウェア ) ...................................................................... 2.6.6.2 コードブレーク ( ソフトウェア ) ...................................................................... 2.6.6.3 データブレーク ................................................................................................. 2.6.6.4 強制ブレーク ..................................................................................................... 2.6.6.5 データ監視ブレーク .......................................................................................... 2.6.6.6 シーケンサ ........................................................................................................ 2.6.7 ユーザプログラム実行にかかる時間を測定するには ............................................. 2.6.7.1 ユーザプログラムの実行サイクル数を測定するには [ 時間測定 ] ..................... 2.6.7.2 2 点間の実行サイクル数を測定するには[パフォーマンス測定]..................... 2.6.8 プログラムの実行履歴を参照するには[トレース]............................................... 2.6.8.1 トレースデータを表示するには ........................................................................ 2.6.8.2 トレースデータの表示例 (RAW データ ) .......................................................... 2.6.8.3 トレースデータの表示例 ( インストラクション ) ............................................. 2.6.8.4 トレースデータの表示例 ( ソース ) ................................................................... 2.6.8.5 トレースデータを保存するには ........................................................................ 2.6.8.6 トレースデータを検索するには ........................................................................ 2.6.9 ユーザプログラムからの出力メッセージをデバッガに表示するには .................... 2.6.10 デバッガの情報を確認するには ............................................................................. 2.7 モニタデバッガ ................................................................................................................ 2.7.1 モニタプログラムが使用するリソース .................................................................. 2.7.2 ブレーク ................................................................................................................. 2.7.2.1 ソフトウェアブレーク ...................................................................................... 2.7.2.2 強制ブレーク ..................................................................................................... 付録 付録 A 索引 283 284 285 286 287 288 289 291 292 294 296 300 301 303 305 306 308 310 313 314 316 319 321 323 324 325 326 327 328 330 333 334 335 336 337 .............................................................................................................. 339 主な変更内容 ............................................................................................................... 340 ............................................................................................................... 341 July 1, 2014, CM41-00313-8 ix So ft war e x S up po r t M a nu al CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 第1章 基本機能 SOFTUNE Workbench の基本機能について説明し ます。 1.1 ワークスペースの管理機能 1.2 プロジェクト管理機能 1.3 プロジェクト間の依存関係 1.4 メイク / ビルド機能 1.5 インクルード依存関係の解析機能 1.6 ツールオプションの設定機能 1.7 エラージャンプの機能 1.8 エディタの機能 1.9 外部エディタ登録 1.10 外部ツール登録 1.11 マネージャ部で使用できるマクロ記述 1.12 動作環境設定 1.13 デバッガの種別 1.14 メモリ操作機能 1.15 レジスタ操作 1.16 ラインアセンブル , 逆アセンブル 1.17 シンボリックデバッグ July 1, 2014, CM41-00313-8 1 第 1 章 基本機能 1.1 ワークスペースの管理機能 So ft war e 1.1 S up po r t M a nu al ワークスペースの管理機能 SOFTUNE Workbench のワークスペースの管理機能について説明します。 ■ ワークスペースについて SOFTUNE Workbench では , サブプロジェクトを含め , 複数のプロジェクトを管理する ためのコンテナとしてワークスペースを使用します。 例えば , ライブラリを作成するプロジェクトと , それを利用したターゲットファイルを 作成するプロジェクトを 1 つワークスペースに登録できます。 ■ ワークスペース管理機能 複数のプロジェクトを管理するために,ワークスペースでは以下のような情報を管理し ます。 • プロジェクト • アクティブプロジェクト • サブプロジェクト ■ プロジェクトについて SOFTUNE Workbench での作業は , プロジェクトが基本となります。プロジェクトとは , ターゲットファイルを作成するために必要なファイルや作業手順をすべてまとめたも ので , プロジェクトによって管理されている内容は , プロジェクトファイルにすべて書 き込まれています。 ■ アクティブプロジェクトについて アクティブプロジェクトとは , ワークスペースで基本となるプロジェクトのことで , メ ニューの [ メイク ], [ ビルド ], [ コンパイル / アセンブル ], [ デバッグの開始 ], [ 依存関 係の更新 ] の実行対象となるプロジェクトです。[ メイク ], [ ビルド ], [ コンパイル / ア センブル ], [ 依存関係の更新 ] は , アクティブプロジェクトのサブプロジェクトにも影 響します。 ワークスペースにプロジェクトが登録されている場合は , 必ず 1 つのアクティブプロ ジェクトが存在します。 ■ サブプロジェクトについて サブプロジェクトとは , ほかのプロジェクトが依存しているプロジェクトです。サブプ ロジェクトのターゲットファイルはその親プロジェクトのターゲットファイルを作成 する際に一緒にリンクされます。 この依存関係はサブプロジェクトが出力するターゲットファイルの共有によって成り 立っているため , 最初にサブプロジェクトをメイク / ビルドします。サブプロジェクト のメイク / ビルドが成功しないと , その親プロジェクトはメイク / ビルドされません。 ただし以下の場合は , サブプロジェクトのターゲットファイルは , 親プロジェクトとリ ンクされません。 • サブプロジェクトとして絶対形式 (ABS) タイプのプロジェクトを指定したとき • ライブラリ (LIB) タイプのプロジェクトにサブプロジェクトを指定したとき ■ 複数プロジェクト登録の制限について 1つのワークスペースには, REALOSタイプのプロジェクトは1つしか登録できません。 2 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.2 プロジェクト管理機能 S o ft w a r e 1.2 S u p p o r t M a n u a l プロジェクト管理機能 SOFTUNE Workbench のプロジェクト管理機能について説明します。 ■ プロジェクト管理機能 プロジェクトによってマイコンシステムを開発するためのすべての情報が管理されま すが , 特にターゲットファイルを生成するための情報の管理が , プロジェクトの最大の 機能です。 プロジェクトでは , 以下のような情報を管理します。 • プロジェクトの構成 • アクティブなプロジェクト構成 • 構成するソースファイル , インクルードファイル , その他のオブジェクトファイル , ライブラリファイルの情報 • 言語ツールの実行前後に実行するツール情報 ( カスタマイズビルド機能 ) ■ プロジェクト形式について プロジェクトファイルの形式には ,「ワークスペースプロジェクト形式」と「旧プロ ジェクト形式」の 2 つの形式があります。 「ワークスペースプロジェクト形式」と「旧プロジェクト形式」とでは , 次のような違 いがあります。 ● ワークスペースプロジェクト形式 • 複数のプロジェクト構成を管理できます。 • マネージャ部で使用できるマクロがすべて使用できます。 • 以前のバージョン (*) の Workbench では使用できません。 ● 旧プロジェクト形式 • 1 つのプロジェクト構成だけ管理できます。 • マネージャ部で使用できるマクロに制限があります。詳細は ,「1.11 マネージャ部 で使用できるマクロ記述」を参照してください。 • 以前のバージョン (*) の Workbench で使用できます。 新規プロジェクトを作成した場合は , ワークスペースプロジェクト形式となります。 既存プロジェクトを使用する場合は , そのプロジェクトのプロジェクト形式となりま す。 ただし , 以前のバージョン (*) の Workbench で作成したプロジェクトを使用した場合 , ワークスペースプロジェクトにコンバートするかを問い合わせるダイアログが表示さ れます。詳細は ,『SOFTUNE Workbench 操作マニュアル』の「2.13 以前のバージョン の SOFTUNE プロジェクトを読み込む場合」を参照してください。 また , ワークスペースプロジェクト形式のプロジェクトファイルを , 以前のバージョン (*) の Workbench で開くには , 旧プロジェクト形式に変換する必要があります。ほかの プロジェクト形式での保存については ,『SOFTUNE Workbench 操作マニュアル』の 「4.2.7 名前を付けて保存」を参照してください。 *: F2MC-16 V30L26 以前 July 1, 2014, CM41-00313-8 3 第 1 章 基本機能 1.2 プロジェクト管理機能 So ft war e S up po r t M a nu al ■ プロジェクト構成について プロジェクト構成とは , ターゲットファイルの特性を指定する一連の設定のことで , メ イク / ビルド / コンパイル / アセンブルはプロジェクト構成単位で行います。 プロジェクト構成は , プロジェクト内に複数作成できます。プロジェクト新規作成時の デフォルトの構成名は Debug になります。プロジェクト構成の新規作成時は , 選択し た既存のプロジェクト構成の設定に基づき , 初期構成が作成されます。新規プロジェク ト構成では , 必ず元の構成と同じファイル群が使われます。 プロジェクト構成を使用することで , コンパイラの最適化レベル , MCU 設定などプロ グラムのバージョンが異なるプログラムの設定を 1 つのプロジェクト内に作成できま す。 プロジェクト構成では , 以下のような情報を管理します。 • ターゲットファイルの名前とディレクトリ • ソースファイルをコンパイル / アセンブル , リンクしてターゲットファイルを作成 するための , 言語ツールのオプション情報 • ファイルをビルド対象にする / しないの情報 • ターゲットファイルをデバッグするためのデバッガの設定情報 ■ アクティブなプロジェクト構成について アクティブなプロジェクト構成とは , デフォルトで [ メイク ], [ ビルド ], [ コンパイル / アセンブル], [デバッグの開始], [依存関係の更新]されるプロジェクト構成のことです。 プロジェクトウィンドウの SRC タブに表示されるファイルの状態や「Dependencies」 フォルダ内の検出されたインクルードファイルは,アクティブなプロジェクト構成の設 定が用いられます。 <注意事項> 旧プロジェクト形式で , 新規に追加されたマクロ機能を使用した場合は , 旧プロジェクト 形式保存時にマクロ記述が展開されます。新規に追加されたマクロ記述については 「1.11 , マネージャ部で使用できるマクロ記述」を参照してください。 4 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.3 プロジェクト間の依存関係 S o ft w a r e 1.3 S u p p o r t M a n u a l プロジェクト間の依存関係 SOFTUNE Workbench のプロジェクト間の依存関係について説明します。 ■ プロジェクト間の依存関係について ほかのプロジェクトが出力するターゲットファイルをリンクする必要がある場合 , [ プ ロジェクト ] ‐ [ プロジェクトの依存関係 ] メニューで必要とするプロジェクトにサブ プロジェクトを定義します。サブプロジェクトとは , ほかのプロジェクトが依存してい るプロジェクトのことです。 プロジェクト間に依存関係を定義することで , 親プロジェクトのメイク / ビルドの際に 始めにサブプロジェクトをメイク / ビルドし , サブプロジェクトのターゲットファイル をリンクできます。 プロジェクトの依存関係を用いることで , 1 つのワークスペース上で開発している複数 のプロジェクトを一度にメイク / ビルドすることが可能となります。 また , [ プロジェクト ] ‐ [ プロジェクト構成 ] ‐ [ ビルド時の構成 ] メニューでサブプ ロジェクトをメイク / ビルドする際のプロジェクト構成を指定できます。 July 1, 2014, CM41-00313-8 5 第 1 章 基本機能 1.4 メイク / ビルド機能 So ft war e 1.4 S up po r t M a nu al メイク / ビルド機能 SOFTUNE Workbench のメイク / ビルド機能について説明します。 ■ メイク機能 メイク機能とは , プロジェクトに登録されたすべてのソースファイルのうち , 更新され ているものについてだけコンパイル / アセンブルし , すべてのオブジェクトファイルを 結合してターゲットファイルを生成する機能です。 この機能を使用すると , 必要最小限のファイルだけがコンパイル / アセンブルされるの で , デバッグ中など , ターゲットファイルを作成する時間が大幅に短縮される可能性が あります。 この機能を実現するためには,ソースファイルとインクルードファイルの依存関係を正 確に把握しておく必要があります。SOFTUNE Workbench ではそのためにインクルード の依存関係を解析する機能があります。詳細は ,「1.5 インクルード依存関係の解析機 能」を参照してください。 ■ ビルド機能 ビルド機能とは , ソースファイルが更新されているかどうかにかかわらず , プロジェク トに登録されているすべてのソースファイルをコンパイル / アセンブルし , すべてのオ ブジェクトファイルを結合してターゲットファイルを生成する機能です。 この機能を使用すると , すべてのファイルをコンパイル / アセンブルするので , ター ゲットファイルを作成する時間はかかりますが , 現在のソースファイルで間違いなく ターゲットファイルを作成できます。開発の最終段階のデバッグが終了した時点で , 一 度ビルドを実行されることを推奨します。 <注意事項> バックアップしておいたソースファイルを復元して使用した場合などにメイクを行うと , オブジェクトファイルとソースファイルの整合が取れなくなることがあります。このよう な場合は , 一度 , ビルドを行ってください。 6 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.4 メイク / ビルド機能 S o ft w a r e 1.4.1 S u p p o r t M a n u a l カスタマイズビルドの機能 SOFTUNE Workbench のカスタマイズビルド機能について説明します。 ■ ビルドのカスタマイズ機能について SOFTUNE Workbench では , コンパイル / アセンブル / メイク / ビルド時に起動されるア センブラ / コンパイラ / リンカ / ライブラリアン / コンバータ / コンフィグレータの実 行前後に自動で別ツールを動作させることができます。 この機能を使用することで , コンパイラの実行前に文法チェックを起動したり , コン バータの実行後に S フォーマットバイナリコンバータ (m2bs.exe) を起動してモトロー ラ S フォーマット形式のファイルをバイナリ形式のファイルに変換したりするといっ たことが , メイク / ビルド中に自動的に行えます。 ■ オプションの設定について SOFTUNE Workbench からのツールの起動は , ツール名の後にオプションを付加して行 います。オプションには , ファイル名や , 起動するツールに特有のオプションなどの指 定を行います。SOFTUNE Workbench では , オプションに任意のファイル名やツール特 有のオプションを指定することを意味するマクロを用意しています。 パラメータ以外の文字列を指定した場合は , その文字列がそのままツールに渡されま す。パラメータの詳細については ,「1.11 マネージャ部で使用できるマクロ記述」を参 照してください。 ■ マクロリストについて カスタマイズビルドの設定ダイアログでは,マクロ入力のためのマクロリストを用意し ています。ビルドファイル , ロードモジュールファイル , プロジェクトファイルのサブ メニューはそれぞれのサブパラメータを指定したものです。 環境変数は [ ] の中まで指定しないとエラーになります。 July 1, 2014, CM41-00313-8 7 第 1 章 基本機能 1.4 メイク / ビルド機能 So ft war e S up po r t M a nu al 表 1.4-1 マクロリストの対応一覧 マクロリスト マクロ名 ビルドファイル %(FILE) ロードモジュールファイル %(LOADMODULEFILE) プロジェクトファイル %(PRJFILE) ワークスペースファイル %(WSPFILE) プロジェクトディレクトリ %(PRJPATH) ターゲットファイルディレクトリ %(ABSPATH) オブジェクトファイルディレクトリ %(OBJPATH) リストファイルディレクトリ %(LSTPATH) プロジェクト構成名 %(PRJCONFIG) 環境変数 %(ENV[]) テンポラリファイル %(TEMPFILE) <注意事項> [ アウトプットウィンドウを使用する ] にチェックする場合には , 以下のことに注意してく ださい。 • ツール起動後は , そのツールが終了するまでメイク / ビルドは一時中断されます。 • ツール実行中に , ユーザの入力待ちになるようなツールでは , アウトプットウィンドウ は使用できません。アウトプットウィンドウを使用した場合 , ユーザの入力は行えなく なるのでツールを終了できなくなります。ツールを強制的に終了するために , タスク バー上から起動したツールを選択し , Ctrl-C, Ctrl-Z を入力して終了してください。 8 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.5 インクルード依存関係の解析機能 S o ft w a r e 1.5 S u p p o r t M a n u a l インクルード依存関係の解析機能 SOFTUNE Workbench のインクルード依存関係の解析機能について説明します。 ■ 依存関係の解析 通常,ソースファイルにはいくつかのインクルードファイルがインクルードされていま す。どのソースファイルでどのインクルードファイルをインクルードしているかとい う情報を正確に把握しておかないと,ソースファイルに変更がなくインクルードファイ ルにだけ変更がある場合に , SOFTUNE Workbench で正しくメイクできません。 そのため , SOFTUNE Workbench には依存関係を自動的に解析する機能が組み込まれて います。この機能は , [ プロジェクト ] メニューから [ 依存関係の更新 ] を選択するこ とで起動します。この機能を使えば , インクルードファイル中に , さらにインクルード ファイルをインクルードしているような場合でも , 正しく依存関係を把握できます。 また SOFTUNE Workbench では , コンパイル / アセンブルを実行したファイルの依存関 係を自動的に更新します。 <注意事項> [ プロジェクト ] - [ 依存関係の更新 ] を実行すると , アウトプットウィンドウに出力され ていた文字列はすべて消去されて , 依存関係の解析結果に置き換わります。エラーメッ セージなど消去されては困るメッセージが表示されている場合は , あらかじめファイルに 保存してから実行してください。 July 1, 2014, CM41-00313-8 9 第 1 章 基本機能 1.6 ツールオプションの設定機能 So ft war e 1.6 S up po r t M a nu al ツールオプションの設定機能 SOFTUNE Workbench から起動する言語ツールなどのツールのオプション設定機能 について説明します。 ■ ツールオプションの設定機能 目的のターゲットファイルを作成するために , コンパイラ / アセンブラ , リンカなどの 言語ツールに , オプションを指定しなければなりません。SOFTUNE Workbench では , 各ツールに指定するオプションも,すべてプロジェクトの構成ごとに登録して管理しま す。 ツールオプションの設定には , すべてのソースファイルに対して有効な設定 ( 共通オプ ション ) と , 特定のソースファイルにだけ有効な設定 ( 個別オプション ) があります。 設定方法については ,『SOFTUNE Workbench 操作マニュアル』の「4.5.5 プロジェクト の設定」を参照してください。 ● 共通オプション プロジェクトに登録されたすべてのソースファイルについて有効なオプションです ( 個別オプションが設定されているソースファイルは除く )。 ● 個別オプション 特定のソースファイルにだけ有効なコンパイル / アセンブルオプションを指定できま す。個別オプションを指定したソースファイルは , 共通オプションが無効になります。 ■ ツールオプションについて SOFTUNE Workbench では , オプションに任意のファイル名やディレクトリを指定する ことを意味するマクロを用意しています。 パラメータ以外の文字列を指定した場合は , その文字列がそのまま渡されます。パラ メータの詳細については ,「1.11 マネージャ部で使用できるマクロ記述」を参照してく ださい。 各ツールのツールオプションについての詳細は,それぞれのツールのマニュアルを参照 してください。 10 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.7 エラージャンプの機能 S o ft w a r e 1.7 S u p p o r t M a n u a l エラージャンプの機能 SOFTUNE Workbench のエラージャンプ機能について説明します。 ■ エラージャンプ機能について コンパイルエラーなどのエラーが発生したときに,アウトプットウィンドウに表示され たエラーメッセージをダブルクリックすることで,エラーの発生したソースファイルを 開いて , 自動的に , エラーの発生した行にカーソルを移動させます。この機能によって , コンパイルエラーなどを効率的に取り除くことができます。 SOFTUNE Workbench のエラージャンプ機能は , アウトプットウィンドウに表示された エラーメッセージに埋め込まれているソースファイル名と行番号情報を解析して,その ファイルを開き , その行に自動的にジャンプします。 エラーメッセージのどの部分にソースファイル名が埋め込まれているか , また , どの部 分に行番号情報が埋め込まれているかは,そのエラーを出力したツールによって異なり ます。エラーメッセージのフォーマットは , 新しく追加 , 変更できます。ただし , あら かじめ登録されている Spansion 製言語ツールのエラーメッセージのフォーマットは , SYSTEM として定義されていますので変更できません。 エラーメッセージのフォーマットを新しく追加するのが必要なケースは,ユーザが登録 したツールに対してエラージャンプを行う場合などです。エラージャンプの設定は , [ 環境 ] - [ エラージャンプの設定 ] メニューによって行います。 ■ シンタックスについて [ シンタックス ] にはエラーメッセージのフォーマットを記述します。 これらを表現するために SOFTUNE Workbench では , 表 1.7-1 に示すようなマクロ記述 を使用します。 SOFTUNE Workbench では , %f, %h, %* がどこまで続くのかを解析するために , それら の直後の文字を区切り記号として使用しています。したがって , [ シンタックス ] で , %f, %h, %* の直後に記述された文字が現れる直前までを , それぞれ , ファイル名 , ヘル プのキーワードと解釈したり読み飛ばしたりします。区切り記号に % そのものを使用 したい場合は , %% のように記述してください。 %[char] マクロは , 括弧内に指定した文字が続いている間 , 読み飛ばします。 読み飛ばしたい文字に "]" を指定したい場合は , "¥]" と記述してください。連続する空 白文字は , 1 つの空白文字で指定できます。 July 1, 2014, CM41-00313-8 11 第 1 章 基本機能 1.7 エラージャンプの機能 So ft war e S up po r t M a nu al 表 1.7-1 エラーメッセージ解析のための特殊な文字列一覧 パラメータ 意味 %f ソースファイル名として解析してエディタに通知します。 %l 行番号として解析してエディタに通知します。 %h ヘルプファイルを検索するときのキーワードになります。 %* 任意の文字を読み飛ばします。 %[char] [ ] で囲まれた範囲の文字が続いている間 , 読み飛ばします。 【例】 *** %f(%l) %h: または , %[*] %f(%l) %h: 先頭の 4 文字が , "*** " であり , その後にファイル名と括弧で括られた行番号が続き , さらに空白 1 文字の後にヘルプのキーワードが続きます。以下のようなメッセージが 該当します。 *** C:¥Sample¥sample.c(100) E4062C: 文法エラー :/int の近辺です。 ■ 関連項目 エラージャンプの設定 12 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.8 エディタの機能 S o ft w a r e 1.8 S u p p o r t M a n u a l エディタの機能 SOFTUNE Workbench に内蔵されている標準エディタの機能について説明します。 ■ 標準エディタ SOFTUNE Workbench はエディタを内蔵しています。このエディタを標準エディタとよ びます。標準エディタは , SOFTUNE Workbench 中にエディットウィンドウとして起動 します。エディットウィンドウはいくつでも同時に開くことができます。 標準エディタでは , 通常のエディット機能に加えて以下のような機能があります。 • C/ アセンブラソースファイルにおけるキーワードのマーク機能 if や for などの予約語の色を変えて表示する機能です。 • エラー行のマーク機能 エラージャンプを実行したときに , その行の色を変更して強調表示する機能です。 • ブックマーク設定機能 任意の行にブックマークを設定しておき , 瞬時にその行にジャンプできます。ブッ クマークが設定されると , その行の色を変更して強調表示できます。 • ルーラ , 行番号表示機能 ルーラは , 桁位置を表示するための目盛りで , エディットウィンドウの最上部に表 示します。 行番号は , エディットウィンドウの左端に表示します。 • 自動インデント機能 エンターキーの押下により行を挿入した場合 , 挿入された行の先頭にその直前の行 と同一のインデント ( 字下げ ) を自動的に行います。スペース , タブのどちらで字 下げを行っても , 直前の行とまったく同一になります。 • 全角空白 , 改行コード , タブコードの表示機能 全角の空白 , 改行コード , タブコードが入っているファイルを開いたときに , これら のコードを特別な記号で表示します。 • UNDO 機能 直前に行った編集を取り消して , 編集前の状態に戻すことができます。複数文字ま たは複数行を一度に編集した場合は , その部分が一度に復元されます。 • タブサイズの設定機能 タブコードが挿入されていたときに , 何桁単位にスキップするかを指定します。デ フォルトは 8 です。 • フォント変更機能 エディットウィンドウに表示する文字列のフォントサイズを選択します。 ■ 関連項目 エディットウィンドウ ( 標準エディタ ) July 1, 2014, CM41-00313-8 13 第 1 章 基本機能 1.9 外部エディタ登録 So ft war e 1.9 S up po r t M a nu al 外部エディタ登録 SOFTUNE Workbench への外部エディタの登録機能について説明します。 ■ 外部エディタ SOFTUNE Workbench は標準エディタを内蔵しており , この標準エディタを使用される ことを推奨しますが , これ以外の使い慣れたエディタを登録して , エディットウィンド ウの代わりに使用できます。 登録できるエディタには特に制限はありませんが , 注意が必要な場合があります。外部 エディタの登録は , [ 環境 ] - [ エディタの設定 ] メニューで行います。 ■ 注意すべき事項 • エラージャンプ機能 外部エディタ起動時に , カーソル位置を指定する機能がない外部エディタを登録し た場合 , エラーの発生した行にカーソルを移動できません。 • コンパイル / アセンブル時のファイルの保存 SOFTUNE Workbench からは , 外部エディタを制御しません。コンパイル / アセンブ ルの前には , 編集中のファイルを保存してください。 ■ オプションの設定について SOFTUNE Workbench からの外部エディタの起動は , エディタ名の後にオプションを付 加して行います。オプションには , エディタで開くファイル名や , カーソルの初期位置 ( 行番号 ) などの指定を行います。SOFTUNE Workbench では , オプションに任意のファ イル名や行番号を指定することを意味する特殊なパラメータを用意しています ( 表 1.9-1 参照 )。 これらのパラメータ以外の文字列を指定した場合は,その文字列がそのままエディタに 渡されます。 %f( ファイル名 ) は , 以下のように決定されます。 1. プロジェクトウィンドウの SRC タブにフォーカスがあり , 有効なファイル名が選択 されている場合は , そのファイル名 2. 1. で有効なファイル名が取得できない場合は , 内蔵エディタでフォーカスのある ファイル名 % x( プロジェクトパス ) は , 以下のように決定されます。 1. プロジェクトウィンドウの SRC タブにフォーカスがあり , 有効なファイル名が選択 されている場合は , そのファイルが登録されているプロジェクトのパス 2. 1. で取得できない場合は , アクティブプロジェクトのパス また , %f のマクロ展開では , ファイル名をダブルクォートで囲みません。よって , %f をダブルクォートで囲む必要があります。エディタによっては , オプション全体をダブ ルクォートで囲まないと正しい行番号にジャンプしないものもあります。 14 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.9 外部エディタ登録 S o ft w a r e S u p p o r t M a n u a l 表 1.9-1 エラーメッセージ解析のための特殊な文字一覧 パラメータ 意味 %% % そのものを指定することを意味します。 %f ファイル名を指定することを意味します。 %l 行番号を指定することを意味します。 %x プロジェクトパスを指定することを意味します。 ■ オプションの設定例 表 1.9-2 外部エディタのオプション設定例 エディタ名 引数 WZ Editor V4.0 %f /j%l MIFES V1.0 %f+%l UltraEdit32 %f/%l/1 ( 英語版 ) TextPad32 %f(%l) PowerEDITOR %f -g%l Codewright32 %f -g%l (PowerEDITOR 英語版 ) 秀丸 for Win3.1/95 /j%l:1 %f ViVi /line=%l %f ■ 関連項目 エディタの設定 <注意事項> • 秀丸のエラージャンプ実行について 外部エディタとして秀丸を使用し , エラージャンプを実行する場合は , 秀丸の設定メ ニュー [ その他 ] - [ 動作環境 ] - [ 排他制御 ] メニューの「秀丸で同じファイルを開く 場合」指定で ,「同じファイルを 2 つ開くことを禁止する」を設定してください。 July 1, 2014, CM41-00313-8 15 第 1 章 基本機能 1.10 外部ツール登録 So ft war e 1.10 S up po r t M a nu al 外部ツール登録 SOFTUNE Workbench への外部ツールの登録機能について説明します。 ■ 外部ツールについて SOFTUNE Workbenchには標準で添付されていないツールを,外部ツールとして登録し, SOFTUNE Workbench から呼び出して使用できます。ソースファイルのバージョン管理 ツールと連携する場合にもこの機能を使用します。 外部ツールとして登録したツールが,コンソールアプリケーションで実行結果を標準出 力および標準エラー出力に出力するようになっている場合は , その出力結果を SOFTUNE Workbench のアウトプットウィンドウに出力するように指定できます。 また , 登録したツールを起動するときに , その都度追加パラメータを記述できるように も設定できます。 外部ツールの登録は , [ 環境 ] - [ ツールの設定 ] メニューで行います。 また , 登録したツールは , [ 環境 ] - [ ツールの起動 ] メニューでタイトルを選択します。 ■ オプションの設定について SOFTUNE Workbench からの外部ツールの起動は , 外部ツール名の後にオプションを付 加して行います。オプションには , ファイル名や , 起動するツールに特有のオプション などの指定を行います。SOFTUNE Workbench では , オプションに任意のファイル名や ツール特有のオプションを指定することを意味する特殊なパラメータを用意していま す。 これらのパラメータ以外の文字列を指定した場合は,その文字列がそのまま外部ツール に渡されます。 パラメータの詳細については ,「1.11 マネージャ部で使用できるマクロ記述」を参照し てください。 <注意事項> [ アウトプットウィンドウを使用する ] にチェックする場合には , 以下のことに注意してし てください。 • ツール起動後は , そのツールが終了するまで , ほかのツールおよびコンパイル / アセン ブルは起動できません。 • ツール実行中に , ユーザの入力待ちになるようなツールは , アウトプットウィンドウは 使用できません。アウトプットウィンドウを使用した場合 , ユーザの入力は行えなくな るのでツールを終了できなくなります。ツールを強制的に終了するために , タスクバー 上から起動したツールを選択し , Ctr-C, Ctr-Z を入力して終了させてください。 ■ 関連項目 ツールの設定 ツールの起動 16 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.11 マネージャ部で使用できるマクロ記述 S o ft w a r e 1.11 S u p p o r t M a n u a l マネージャ部で使用できるマクロ記述 SOFTUNE Workbench のマネージャ部で使用できるマクロの記述について説明しま す。 ■ マクロについて SOFTUNE Workbench では , 任意のファイル名やツール特有のオプションを指定するこ とを意味する特殊なパラメータを用意しています。 これらのパラメータをツールのオプションなどに用いることによって,ツールを起動す るたびにオプションを指定し直すといったことがなくなります。 マクロは記述する場所によって , 指定可能な種類やマクロの展開が多少異なります。各 機能によって使用できるマクロは後述の項目を参照してください。なお ,「エラージャ ンプ」「 , 外部エディタ」で指定可能なマクロについては 「1.7 , エラージャンプの機能」, 「1.9 外部エディタ登録」を参照してください。 ■ マクロ一覧 以下にある表が SOFTUNE Workbench で指定可能なマクロの一覧です。各機能によっ て指定可能なマクロは以下のとおりです。 • 外部ツール : 表 1.11-1 , 表 1.11-2 • カスタマイズビルド : 表 1.11-1 , 表 1.11-2 • ツールオプション : 表 1.11-2 表 1.11-1 のオプションのディレクトリでは , 最後にディレクトリ記号 ¥ が付加されます が , 表 1.11-2 のマクロのディレクトリでは付加されません。 また, %(FILE), %(LOADMODULEFILE), %(PRJFILE), %(WSPFILE)は表 1.11-3 のサブパ ラメータが指定できます。サブパラメータは %(PRJFILE[PATH]) というように指定し ます。 相対パスはカレントとなるディレクトリと同じドライブであれば , 相対パスとなりま す。カレントディレクトリは , %(PRJFILE), %(WSPFILE) がワークスペースディレクト リ , それ以外がプロジェクトディレクトリとなります。 July 1, 2014, CM41-00313-8 17 第 1 章 基本機能 1.11 マネージャ部で使用できるマクロ記述 So ft war e S up po r t M a nu al 表 1.11-1 指定可能なマクロ一覧 1 パラメータ 意味 %f ファイルのフルパス名として渡されます。*1 %F ファイルの主ファイル名として渡されます。*1 %d ファイルのディレクトリとして渡されます。*1 %e ファイルの拡張子として渡されます。*1 %a ロードモジュールファイルのフルパス名として渡されます。 %A ロードモジュールファイルの主ファイル名として渡されます。*2 %D ロードモジュールファイルのディレクトリとして渡されます。*2 %E ロードモジュールファイルの拡張子として渡されます。*2 %x プロジェクトディレクトリとして渡されます。*2 %X プロジェクトファイルの主ファイル名として渡されます。*2 %% % として渡されます。 表 1.11-2 指定可能なマクロ一覧 2 パラメータ 意味 %(FILE) ファイルのフルパス名として渡されます。*1 %(LOADMODULEFILE) ロードモジュールファイルのフルパス名として渡されます。*2 %(PRJFILE) プロジェクトファイルのフルパス名として渡されます。*2 %(WSPFILE) ワークスペースファイルのフルパス名として渡されます。*3 %(PRJPATH) プロジェクトディレクトリとして渡されます。*2 %(ABSPATH) ターゲットファイルディレクトリとして渡されます。*2 %(OBJPATH) オブジェクトファイルディレクトリとして渡されます。*2 %(LSTPATH) リストファイルディレクトリとして渡されます。*2 %(PRJCONFIG) プロジェクト構成名として渡されます。*2, *3 %(ENV[ 環境変数 ]) [ ] の中の環境変数で指定された環境変数値が渡されます。 %(TEMPFILE) テンポラリファイルを作成し , そのファイルのフルパス名 として渡されます。*4 *1: マクロは以下のように決定されます。 - カスタマイズビルドの場合 1. コンパイラ , アセンブラ実行前後は対象となるソースファイル 2. リンカ , ライブラリアン , コンバータ実行前後はターゲットファイル 3. コンフィグレータ実行前後はコンフィグレーションファイル 18 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.11 マネージャ部で使用できるマクロ記述 S o ft w a r e S u p p o r t M a n u a l - ツールオプションの場合 • 空文字 - その他の場合 1. プロジェクトウィンドウの SRC タブにフォーカスがあり , 有効なファイル名 が選択されている場合は , そのファイル 2. 1. で有効なファイル名が取得できない場合は , 内蔵エディタでフォーカスのあ るファイル 3. 有効なファイル名が取得できない場合は , 空文字 *2: マクロは以下のように決定されます。 - カスタマイズビルド , ツールオプションの場合 • ビルド/メイク/コンパイル/アセンブルを行っているプロジェクトの構成の情報 - その他の場合 1. プロジェクトウィンドウの SRC タブにフォーカスがあり , 有効なファイル名 が選択されている場合は ,そのファイルが登録されているプロジェクトのアク ティブな構成の情報 2. 1. で有効なファイル名が取得できない場合は , アクティブプロジェクトのアク ティブな構成の情報 *3: マクロはワークスペースプロジェクト形式のプロジェクトだけ使用可能です。 *4: テンポラリファイルの内容はカスタマイズビルドでだけ指定可能です。 表 1.11-3 サブパラメータ一覧 1 サブパラメータ 意味 [PATH] ファイルのディレクトリ [RELPATH] ファイルの相対パス [NAME] ファイルの主ファイル名 [EXT] ファイルの拡張子 [SHORTFULLNAME] ショートファイルのフルパス名 [SHORTPATH] ショートファイルのディレクトリ [SHORTNAME] ショートファイルの主ファイル名 [FOLDER] プロジェクトウィンドウの SRC タブでファイルが登録され ているフォルダ名 (%(FILE) でだけ指定可能 ) * *: マクロはワークスペースプロジェクト形式のプロジェクトだけ使用可能です。 July 1, 2014, CM41-00313-8 19 第 1 章 基本機能 1.11 マネージャ部で使用できるマクロ記述 So ft war e S up po r t M a nu al ■ マクロの展開例 以下のような設定のワークスペースを開いていた場合 , マクロの展開は次のようにな ります。 ワークスペース: C:\Wsp\Wsp.wsp アクティブプロジェクト: C:\Wsp\Sample\Sample.prj アクティブなプロジェクト構成 Debug オブジェクトディレクトリ C:\Wsp\Sample\Debug\Obj\ サブプロジェクト: C:\Subprj\Subprj.prj アクティブなプロジェクト構成 Release オブジェクトディレクトリ C:\Subprj\Release\Obj\ ターゲットファイル C:\Subprj\Release\Abs\Subprj.abs 【例 1】外部ツールでのマクロ展開例 プロジェクトウィンドウの SRC タブで Subprj プロジェクトのファイルにフォーカスが ある場合 %a : C:\Subprj\Release\Abs\Subprj.abs %A : SUBPRJ.abs %D : C:\Subprj\Release\Abs\ %E : .abs %(FILE[FOLDER]) : Source Files\Common %(PRJFILE) : C:\Subprj\Subprj.prj プロジェクトウィンドウの SRC タブにフォーカスがない場合 %a : C:\Wsp\Sample\Debug\Abs\Sample.abs %A : Sample.abs %D : C:\Wsp\Sample\Debug\Abs\ %(PRJFILE) : C:\Wsp\Sample\Sample.prj 【例 2】カスタマイズビルドでのマクロ展開例 Subprj プロジェクトの Release 構成をビルドした場合 %(FILE) : C:\Subprj\LongNameFile.c %(FILE[PATH]) : C:\Subprj %(FILE[RELPATH]) : . %(FILE[NAME]) : LongNameFile %(FILE[EXT]) : .c %(FILE[SHORTFULLNAME]) : C:\Subprj\LongFi=~1.c %(FILE[SHORTPATH]) 20 : C:\Subprj CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.11 マネージャ部で使用できるマクロ記述 S o ft w a r e S u p p o r t M a n u a l %(FILE[SHORTNAME]) : LongFi~1 %(PRJFILE[RELPATH]) : ..\Subprj %(PRJPATH) : C:\Subprj %(OBJPATH) : C:\Subprj\Release\Obj %(PRJCONFIG) : Release %(ENV[FETOOL]) : C:\Softune %(TEMPFILE) : C:\Subprj\Release\Opt\_fs1056.TMP 【例 3】ツールオプションでのマクロ展開例 Subprj プロジェクトの Release 構成をビルドした場合 July 1, 2014, CM41-00313-8 %(FILE) : %(PRJFILE[RELPATH]) : ..\Subprj %(PRJPATH) : C:\Subprj %(OBJPATH) : C:\Subprj\Release\Obj %(PRJCONFIG) : Release %(ENV[FETOOL]) : C:\Softune 21 第 1 章 基本機能 1.12 動作環境設定 So ft war e 1.12 S up po r t M a nu al 動作環境設定 SOFTUNE Workbench の動作環境設定機能について説明します。 ■ 動作環境 SOFTUNE Workbench で使用する環境変数の設定とワークスペースに関する基本的な 設定を行います。 動作環境の設定は , [ 環境 ] - [ 開発環境の設定 ] メニューで行います。 ● 環境変数 主に , SOFTUNE Workbench から起動される言語ツールで参照する環境変数です。環境 変数の意味は , 設定ダイアログの下部に表示されます。ただし , SOFTUNE Workbench に後から追加される ( アドイン ) ツールによって使用される環境変数については表示さ れません。 SOFTUNE Workbench と言語ツールが同じディレクトリにインストールされている場 合は , それぞれの環境変数の設定は特に変更しなくても使えます。 英語環境で使用される場合は , 環境変数 FELANG を必ず ASCII に設定してください。 ● ワークスペースに関する基本的な設定 以下の設定が行えます。 • 起動時に前回のワークスペースを開く SOFTUNE Workbench を起動したときに , 自動的に前回開いていたワークスペース を開くようにします。 • コンパイル / アセンブル時にオプションを表示する コンパイルオプション , アセンブルオプションをアウトプットウィンドウに表示す るようにします。 • ワークスペースを閉じるときにセーブの問い合わせを行う ワークスペースを閉じるときに , ワークスペースファイルを保存するかどうかの確 認をするようにします。この設定がないときは , 問い合わせなしにワークスペース を保存します。 • コンパイル / アセンブル時にセーブの問い合わせを行う コンパイル / アセンブル時に , 保存されていないソースファイルを保存するかどう かの確認をするようにします。この設定を行わないと , ファイルは問い合わせなし にコンパイル / アセンブル / メイク / ビルド時に保存します。 • メイク / ビルド時に終了メッセージの強調を行う コンパイル / アセンブル / メイク / ビルド時の終了メッセージ ( 中断 , 正常 , 警告 , エ ラー , 致命的エラー , 起動失敗 ) の表示色を変更できます。終了メッセージの表示色 は , お客様が自由に変更できます。 22 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.12 動作環境設定 S o ft w a r e S u p p o r t M a n u a l ■ 関連項目 開発環境 <注意事項> ここで設定される環境変数は , SOFTUNE Workbench 対応の言語ツール用のため , 以前の バージョンの SOFTUNE で設定されていた環境変数は引き継がれません。特に以前のバー ジョンで設定されていた [ ユーザインクルードディレクトリ ] や [ ライブラリ検索ディレ クトリ ] の設定値は , SOFTUNE Workbench では [ プロジェクトの設定 ] に追加設定して ください。 July 1, 2014, CM41-00313-8 23 第 1 章 基本機能 1.13 デバッガの種別 So ft war e 1.13 S up po r t M a nu al デバッガの種別 SOFTUNE Workbench のデバッガの種類について説明します。 ■ デバッガの種類 SOFTUNE Workbench では , シミュレータデバッガ・エミュレータデバッガ・モニタデ バッガの 3 つのデバッガを 1 つに統合しています。使用目的により , 選択して使用でき ます。 ■ シミュレータデバッガ シミュレータデバッガは , MCU の動作 ( 命令実行 , メモリ空間 , I/O ポート , 割込み , リ セットなど)をソフトウェアだけでシミュレーションし,プログラムの評価を行います。 評価システムが完成されていない状態や単体の動作チェックなどの評価に使用しま す。 ■ エミュレータデバッガ エミュレータデバッガは , ホストコンピュータから通信回線 (RS-232C, LAN, USB) を介 してエミュレータを制御してプログラムの評価を行うソフトウェアです。 ご使用になる前に , エミュレータの初期化が必要となります。 ■ モニタデバッガ モニタデバッガは , 評価システム内にデバッグ用のプログラムを組込み , ホストコン ピュータと通信することにより , 評価システムの評価を行います。評価システム内に RS-232C インタフェース , デバッグプログラムの領域が必要となります。 24 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.14 メモリ操作機能 S o ft w a r e 1.14 S u p p o r t M a n u a l メモリ操作機能 メモリ操作機能について説明します。 ■ メモリ操作機能 • メモリ内容の表示 / 変更 メモリの内容をメモリウィンドウに表示および変更できます。 • 充填 指定したメモリ領域を指定したデータで埋めつくします。 • 複写 指定したメモリ領域のデータをそのまま別領域にコピーします。 • 比較 指定した比較元領域のデータと比較先領域のデータを比較します。 • 検索 指定したメモリ領域内からデータを検索します。 これらの詳細は ,『SOFTUNE Workbench 操作マニュアル』の「3.11 メモリウィンドウ」 を参照してください。 • C 言語の変数内容の表示 / 変更 C ソースファイルの変数名の内容をウォッチウィンドウに表示および変更できま す。 • ウォッチポイントの設定 特定のアドレスにウォッチポイントを設定することによって , その内容をウォッチ ウィンドウに表示できます。 これらの詳細は ,『SOFTUNE Workbench 操作マニュアル』の「3.13 ウォッチウィンド ウ」を参照してください。 July 1, 2014, CM41-00313-8 25 第 1 章 基本機能 1.15 レジスタ操作 So ft war e 1.15 S up po r t M a nu al レジスタ操作 レジスタ操作について説明します。 ■ レジスタ操作 [ 表示 ] - [ レジスタ ] メニューを実行するとレジスタウィンドウを表示します。 レジスタウィンドウには , レジスタの内容とフラグの内容が表示されます。レジスタお よびフラグの内容の変更方法は ,『SOFTUNE Workbench 操作マニュアル』の「4.4.4 レ ジスタ」を参照してください。 レジスタウィンドウに表示されるレジスタ名 , フラグ名は , MCU ごとに異なります。 使用される MCU のレジスタ名 , フラグ名の一覧は 『SOFTUNE , Workbench 操作マニュ アル』の「付録 A レジスタ名一覧」を参照してください。 ■ 関連項目 レジスタウィンドウ 26 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.16 ラインアセンブル , 逆アセンブル S o ft w a r e 1.16 S u p p o r t M a n u a l ラインアセンブル , 逆アセンブル ラインアセンブル , 逆アセンブルについて説明します。 ■ ラインアセンブル 行単位のアセンブル ( ラインアセンブル ) は , 逆アセンブルウィンドウで右ボタンをク リックしてショートカットメニューを表示し , そこで [ ラインアセンブル ] を選択する ことで実行します。操作方法については ,『SOFTUNE Workbench 操作マニュアル』の 「4.4.3 逆アセンブル」を参照してください。 メモリマップの範囲外のアドレスには,ラインアセンブルによってコードを設定できま せん。 ■ 逆アセンブル 逆アセンブル表示は , [ 表示 ] - [ 逆アセンブル ] で行います。デフォルトでは , 現在の PC の指すアドレスからの表示になりますが,起動時に任意のアドレスに変更できます。 メモリマップの範囲外のアドレスについての逆アセンブル表示はできません。この場 合は , ニーモニックに "???" が表示されます。 ■ 関連項目 逆アセンブルウィンドウ July 1, 2014, CM41-00313-8 27 第 1 章 基本機能 1.17 シンボリックデバッグ So ft war e 1.17 S up po r t M a nu al シンボリックデバッグ コマンドのパラメータ ( アドレス ) にソースプログラムで定義したシンボルを使用で きます。 シンボルには次の 3 種類があります。 • グローバルシンボル • モジュール内スタティックシンボル ( モジュール内ローカルシンボル ) • 関数内ローカルシンボル ■ シンボルの種類 シンボルとはプログラム作成時に定義されたシンボルのことであり , 通常 , 型を持ちま す。シンボルはデバッグ情報ファイルをロードすることにより使用可能となります。な お , C 言語のシンボルに対しては , 型を認識してコマンドを実行します。 シンボルには , 次の 3 種類があります。 ● グローバルシンボル グローバルシンボルは , プログラム中のどこからでも参照可能なシンボルです。 C 言語では , 関数の外部で定義した変数や関数のうち , static 宣言のないものです。ア センブラでは , PUBLIC 宣言のあるシンボルです。 ● モジュール内スタティックシンボル ( モジュール内ローカルシンボル ) モジュール内スタティックシンボルは,それが定義されたモジュール内でだけ参照可能 なシンボルです。 C 言語では , 関数の外部で定義した変数や関数のうち static 宣言のあるものです。アセ ンブラでは , PUBLIC 宣言のないシンボルです。 ● 関数内ローカルシンボル 関数内ローカルシンボルは C 言語だけに存在するシンボルで , 関数内スタティックシ ンボルとオート変数があります。 • 関数内スタティックシンボル 関数内で定義した変数のうち , static 宣言があるものです。 • オート変数 ( 自動変数 ) 関数内で定義した変数のうち , static 宣言がないものと関数の引数です。 ■ シンボル情報の登録 デバッグ情報ファイルをロードすることにより,それに含まれるシンボル情報がシンボ ル情報テーブルに登録されます。このシンボル情報は , モジュールごとに作られます。 モジュールは , C 言語ではコンパイルするソースファイル単位 , アセンブラではアセン ブルするソースファイル単位になります。 プログラム実行停止時のプログラムカウンタ (PC) が属しているモジュール ( これをカ レントモジュールとよびます ) のシンボル情報を自動的に選択します。C 言語で作成さ れたプログラムでは,プログラムカウンタがどの関数に属しているかの情報も持ってい ます。 28 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.17 シンボリックデバッグ S o ft w a r e S u p p o r t M a n u a l ■ 行番号情報 行番号情報は , デバッグ情報ファイルがロードされたときに , SOFTUNE Workbench の 行番号情報テーブルに登録されます。したがって , それ以降はいつでも使用できます。 行番号は次のように指定します。 [ ソースファイル名 ] $ 行番号 July 1, 2014, CM41-00313-8 29 第 1 章 基本機能 1.17 シンボリックデバッグ So ft war e 1.17.1 S up po r t M a nu al ローカルシンボルの参照 ローカルシンボルの参照とスコープについて説明します。 ■ スコープ スコープとは , ローカルシンボルを参照する場合に , どのモジュールおよび関数に属す るローカルシンボルを参照するかを示すものです。 SOFTUNE Workbench ではカレントモジュールおよび関数を自動的にスコープし , カレ ントモジュールのローカルシンボルを優先的に参照します。この機能をオートスコー プ機能とよび,現在スコープされているモジュールおよび関数をカレントスコープとよ びます。 カレントスコープ外のローカル変数を指定するには,その変数の属しているモジュール および関数を , 変数名の前に指定してください。このような指定を , シンボルパスネー ムまたはサーチスコープとよびます。 ■ スコープの移動 変数の参照には,前述したように変数名の指定時に直接サーチスコープを付加して指定 する方法と,参照したいシンボルの存在する関数をカレントスコープにして指定する方 法があります。 コールスタックダイアログを表示して親関数を選択することでカレントスコープを変 更できます。操作方法は ,『SOFTUNE Workbench 操作マニュアル』の「4.6.7 コールス タック」を参照してください。このようにしてカレントスコープを変更しても , PC の 値は変わりません。 このようにしてカレントスコープを移動すると,親関数のローカルシンボルを優先的に 検索できるようになります。 ■ シンボルの指定と検索手順 シンボルは次のように指定します。 [ [ モジュール名 ] [¥ 関数名 ] ¥] シンボル名 シンボルは , モジュール名および関数名を付けて指定した場合は , そのシンボルを検索 しますが , シンボル名だけ指定した場合は , 次の順序で検索します。 1. カレントスコープの関数内ローカルシンボル 2. カレントスコープのモジュール内スタティックシンボル 3. グローバルシンボル グローバルシンボルが , カレントスコープのローカルシンボルと同じ名前の場合は , グ ローバルシンボルの先頭に "¥" または "::" を指定してください。それによって , グロー バルシンボルであることを明示できます。 オート変数は , メモリ上にその変数が存在している場合だけ参照できます。それ以外で 指定するとエラーになります。 30 CM41-00313-8, July 1, 2014 第 1 章 基本機能 1.17 シンボリックデバッグ S o ft w a r e 1.17.2 S u p p o r t M a n u a l C 言語の変数の参照 C 言語の変数の指定方法は , C 言語のソースプログラム内での記述方法と同じです。 ■ C 言語の変数の指定方法 C 言語の変数の指定方法は , ソースプログラム内での記述方法と同じです。C 言語変数 のアドレスを指定するには , 変数の先頭にアンパサンド " &" を指定してください。変 数の指定例を表 1.17-1 に示します。 表 1.17-1 変数の指定例 変数の例 指定例 通常変数 int data; data ポインタ char *p; *p 配列 char a[5]; a[1] 構造体 struct stag { char c; int i; }; struct stag st; struct stag *st p; st.c stp- >c 共用体 union utag { char c; int i; } uni; 変数アドレス 参照型変数 int &data data; int i; int &ri = uni.i ri 意 味 data の値 p の指している値 a の 2 番目の要素の値 st のメンバ c の値 stp の指す構造体のメンバ c の値 uni のメンバ i の値 data のアドレス i と同じ i; ■ C 言語シンボルでの注意 C コンパイラは , グローバルシンボルには "_" を前置してシンボル情報を出力します。 例えば , main というシンボルは , _main というシンボル情報が出力されます。しかし , SOFTUNE Workbench では C 言語で記述されたプログラムのデバッグを容易にするた めに , ソースに記述されたシンボル名でアクセスできるようにしています。 このため , 本来 , 異なるシンボル名となる C 言語で記述されたシンボル名と , アセンブ ラで記述されたシンボル名が同じになってしまう場合があります。 このような場合には , 通常カレントスコープ内に存在するものが優先されます。そのほ かに存在するものを参照する場合には , モジュール名とともに指定してください。 カレントスコープ以外で 2 重定義になってしまったシンボルは , 最初に検索された方が 有効になります。それ以外のものを参照する場合には , モジュール名とともに指定して ください。 July 1, 2014, CM41-00313-8 31 第 1 章 基本機能 1.17 シンボリックデバッグ So ft war e 32 S up po r t M a nu al CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 第2章 依存機能 各デバッガに依存する機能について説明します。 2.1 シミュレータデバッガ 2.2 エミュレータデバッガ (MB2141) 2.3 エミュレータデバッガ (MB2147-01) 2.4 エミュレータデバッガ (MB2147-05) 2.5 エミュレータデバッガ (MB2198) 2.6 エミュレータデバッガ (MB2100-01) 2.7 モニタデバッガ July 1, 2014, CM41-00313-8 33 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1 S up po r t M a nu al シミュレータデバッガ F2MC-16 ファミリ用シミュレータデバッガの機能について説明します。 ■ シミュレータデバッガ シミュレータデバッガは , MCU の動作 ( 命令実行 , メモリ空間 , I/O ポート , 割込み , リ セットなど)をソフトウェアだけでシミュレーションし,プログラムの評価を行います。 評価システムが完成されていない状態や単体の動作チェックなどの評価に使用しま す。 シミュレータデバッガには , 以下の 2 種類があります。 • 通常版シミュレータデバッガ (normal) • 高速版シミュレータデバッガ (fast) 高速版シミュレータデバッガは , 通常版シミュレータデバッガの処理を見直し , シミュ レーション実行時間を大幅に短縮したシミュレータデバッガです。 Pentium4 2.0GHz のパソコンで動作させたとき , 10MIPS の命令処理能力となります。 高速版シミュレータデバッガは , 周辺シミュレーションモジュールを作成するための シミュレータ用外部 I/F を用意しています。シミュレータ用外部 I/F については , 『SOFTUNE Workbench 操作マニュアル』の「付録 I シミュレータ外部 I/F」を参照して ください。 ■ 高速版シミュレータデバッガの動作条件 高速版シミュレータデバッガではホスト PC 上の RAM が通常版シミュレータデバッガ より多く必要となります。 必要とされる RAM サイズはお客様のプログラムサイズに依存しますので充分な RAM を用意してください。 必要となる RAM の空き容量の目安としては以下の表を参照してください。 基本使用量 Fs907s.exe ( 本製品 ) 20MB ターゲットプログラム CODE サイズ 64KB あたり 6MB ターゲットプログラム DATA サイズ 64KB あたり 1.5MB RAM 容量が不足しますと , シミュレーション速度が極端に低下します。 ターゲットプログラムサイズ CODE XX(KB) DATA YY(KB) 必要となる RAM 空き容量 (MB) = 20 + (XX/64) × 6 + (YY/64) × 1.5 ただし , プログラムの配置によっては上記以上の RAM が必要になる場合があります。 できるだけ連続した領域で確保してください。 【例】CODE, DATA 共に 1MB のプログラムの場合 必要となる RAM 空き容量 (MB) = 20 + (1024/64) × 6 + (1024/64) × 1.5 = 140MB 34 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l ■ シミュレーション範囲 シミュレータデバッガは , MCU の動作 ( 命令動作 , メモリ空間 , I/O ポート , 割込み , リ セット , 低消費電力モードなど ) をソフトウェアで擬似的にシミュレートします。 周辺リソースについては , 実チップの CPU コア以外の , タイマ , DMAC , シリアル I /O などの周辺 I/O はサポートしていません。周辺 I/O が接続される I/O 空間も , メモリ空 間として扱います。ただし , タイマ割込みなどの割込みや , I/O などのメモリへのデー タ入力を擬似的に実現する方法を用意しています。この方法は , I/O ポートのシミュ レーション , 割込みのシミュレーションを参照してください。 命令シミュレーション メモリシミュレーション I/O ポートのシミュレーション ( 入力ポート ) I/O ポートのシミュレーション ( 出力ポート ) 割込みのシミュレーション リセットのシミュレーション 低消費電力モードのシミュレーション July 1, 2014, CM41-00313-8 35 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.1 S up po r t M a nu al 動作環境の設定 動作環境の設定について説明します。 ■ 動作環境の設定 F2MC-16FX 用シミュレータデバッガでは , 以下の項目について動作環境を設定する必 要があります。なお , 設定には起動時のデフォルトがあるため , 起動時のデフォルトを 使用する場合は設定を行う必要はありません。また , 一度指定した設定値を次回からの デフォルトにすることもできます。 • Boot ROM ファイル自動実行 36 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l Boot ROM ファイル自動実行 2.1.1.1 F2MC-16FX 用シミュレータデバッガでは , デバッグ開始時に Boot ROM ファイルを 自動的にロードし , 実行します。 ■ Boot ROM ファイル自動実行 F2MC-16FX 用シミュレータを指定すると , デバッグの開始時に Boot ROM ファイルを 自動的にロード後 , 実行します。Boot ROM ファイルは Workbench をインストールした ディレクトリ下の Lib¥907¥BootROM にあリます。 Boot ROM ファイルを置くディレクトリは , [ プロジェクト ] - [ プロジェクトの設定 ] メニューで表示される , プロジェクト設定ダイアログにて変更が可能です。またデバッ ガ起動時と MCU のリセット時に Boot ROM ファイルを自動的に実行するかどうかを選 択することも可能です。詳細は『SOFTUNE Workbench 操作マニュアル』を参照してく ださい。 <注意事項> • シミュレータデバッガにて MCU リセットを行った場合の PC 値は , F2MC-16FX の場 合とそれ以外の場合で以下のように異なります。 F2MC-16FX の場合 : Boot ROM ファイルの先頭アドレス F2MC-16FX以外の場合:ターゲットファイル内のエントリポイント (リセットベクタ) • シミュレータデバッガでは固定ブートベクタには対応していませんので , Boot ROM ファイル実行後は必ずリセットベクタに飛びます。Boot ROM ファイル実行後の動作 については LSI 仕様書を参照してください。 July 1, 2014, CM41-00313-8 37 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.2 S up po r t M a nu al 命令シミュレーション SOFTUNE Workbench で行う命令シミュレーションについて説明します。 ■ 命令シミュレーション F2MC-16/16L/16LX/16H/16F の全命令の動作をシミュレートします。 命令動作に伴うメモリおよびレジスタの内容の変化もシミュレートします。 38 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e 2.1.3 S u p p o r t M a n u a l メモリシミュレーション SOFTUNE Workbench で行うメモリシミュレーションについて説明します。 ■ メモリのシミュレーション シミュレータデバッガは , ホスト PC のメモリに確保されたメモリ空間をシミュレート しますので , 命令のシミュレーションを行う場合には , まずメモリ空間の確保が必要で す。そのために次のどちらかの操作が必要です。 • [ 環境 ] - [ メモリマップ ] メニューまたは , コマンドウィンドウの SET MAP コマ ンドでメモリ領域を確保する。 • リンケージエディタが出力したファイル ( ロードモジュール・ファイル ) を , [ デ バッグ ] - [ ターゲットファイルのロード ] メニューまたはコマンドウィンドウに て LOAD/OBJECT コマンドでロードする。 ■ シミュレーションメモリ空間 メモリ空間には [ 環境 ] - [ デバッガのメモリマップ ] メニューにより 1 バイト単位で アクセス属性を指定できます。[ 環境 ] - [ メモリマップ ] メニューにより設定されな かったメモリ空間は , アクセス属性が未定義属性となります。 ■ メモリエリアのアクセス属性 メモリエリアには , 表 2.1-1 に示したアクセス属性を指定できます。プログラム実行中 にアクセス属性に違反したアクセスが起こった場合は,ガーデッドアクセスブレークが 発生します。プログラムのコマンドによりメモリエリアをアクセスする場合は , CODE, READ, WRITE の属性にかかわらずアクセスできます。ただし , 未定義エリアのメモリ をアクセスした場合は , エラーが発生します。 表 2.1-1 アクセス属性の種類 属性 意味 CODE 命令実行許可 READ データリード許可 WRITE データライト許可 undefined 属性未設定 ( アクセス不可 ) July 1, 2014, CM41-00313-8 39 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e S up po r t M a nu al I/O ポートのシミュレーション 2.1.4 SOFTUNE Workbench で行う I/O ポートのシミュレーションについて説明します。 ■ I/O ポートのシミュレーション ( 入力ポート ) I/O ポートのシミュレーションには , 入力ポートのシミュレーションと出力ポートのシ ミュレーションがあります。入力ポートのシミュレーションには,次の方法があります。 • 指定されたポートに対してプログラムから読み出されるたびに,指定されているデー タ入力元からデータを入力する方法。 • 命令実行サイクル数が指定サイクル数をこえるたびに , ポートにデータを入力する 方法。 入力ポートの設定は , [ 環境 ] - [ デバッグ環境の設定 ] - [I/O ポート ] メニューまた はコマンドウィンドウの SET INPORT コマンドで行います。 入力ポートのポートアドレスは 4096 個まで設定できます。データの入力元には , ファ イル , ターミナルがあります。ファイルの最終データを読み込んだあとは , 再び先頭か らデータを読み込みます。ターミナルを指定した場合は , 設定されたポートがリードア クセスされると入力ターミナルが表示されます。ウィンドウの入力データキューより データを読み込みます。 入力元のファイルは,一般のエディタで作成可能なテキストファイル,または,直接コー ドを格納したバイナリファイルが使用できます。テキストファイルは , 入力データを ',' で区切って入力してください。バイナリファイルを用いる場合は , 入力ポートダイアロ グのバイナリラジオボタンを選択してください。 ■ I/O ポートのシミュレーション ( 出力ポート ) 出力ポートのシミュレーションには,指定されたポートに対してプログラムからデータ が書き込まれるたびに,指定されているデータ出力先へデータを書き込むようにする方 法があります。 出力ポートの設定は , [ 環境 ] - [ デバッグ環境の設定 ] - [I/O ポート ] メニューまた はコマンドウィンドウの SET OUTPORT コマンドで行います。 出力ポートのポートアドレスは 4096 個まで設定できます。データの出力先には , ファ イル , ターミナル ( 出力ターミナルウィンドウ ) があります。 出力先のファイルは , 一般のエディタで参照可能なテキストファイル , または , バイナ リファイルです。バイナリファイルを出力する場合は , 出力ポートダイアログのバイナ リラジオボタンを選択してください。 <注意事項> 高速版シミュレータデバッガでは以下の方法をサポートしておりません。 • 命令実行サイクル数が指定サイクル数を超えるたびにポートにデータを入力する方法 また I/O ポートを設定するためにはメモリマップの設定が必要です。メモリマップを削除 すると I/O ポートの設定も削除されます。 40 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l 割込みのシミュレーション 2.1.5 SOFTUNE Workbench で行う割込みのシミュレーションについて説明します。 ■ 割込みのシミュレーション 割込み要求に対する MCU 動作 ( インテリジェント I/O サービス * 処理を含む ) をシ ミュレートします。ただし , インテリジェント I/O サービスで , リソースからの終了要 求はサポートしていません。 *: I/O とメモリ間での自動データ転送機能のことをインテリジェント I/O サービスと よびます。この機能により , 従来 , 割込み処理プログラム中で行っていた I/O との データのやりとりを DMA(Direct Memory Access) 的に行うことができます ( 詳細は , 品種ごとのユーザマニュアルを参照してください。) 割込みを発生させるには , 次の方法があります。 • プログラム実行中 ( 実行系コマンド実行中 ) に指定されたサイクル数だけ命令を実 行すると , 指定した割込み番号に対応する割込みを発生させ , 割込み発生条件を解 除する方法。 • 命令実行サイクル数が指定サイクル数を超えるたびに割込みを発生させ続ける方 法。 割込みの発生方法は , [ 環境 ] - [ デバッグ環境の設定 ] - [ 割込み ] メニューで設定し ます。割込み発生条件が成立したときに割込みが割込み許可フラグによってマスクさ れていた場合は , マスク解除後にその割込みを発生させます。 また以下の例外処理についても割込み要求に対する MCU 動作をサポートしています。 • 未定義命令の実行 • プログラムアクセスのアドレスエラー ( 内部 RAM, 内部 I/O 領域に対するプログラ ムアクセス ) • スタック領域エラー (F2MC-16F だけ ) <注意事項> 高速版シミュレータデバッガでは割込みマスク状態で外部割込み要因が発生した場合 , そ の割込みは消滅してしまいます。 July 1, 2014, CM41-00313-8 41 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.6 S up po r t M a nu al リセットのシミュレーション SOFTUNE Workbench で行うリセットのシミュレーションについて説明します。 ■ リセットのシミュレーション シミュレータデバッガは , MCU へリセット信号が入ったときの動作を [ デバッグ ] - [MCU のリセット ] メニューでシミュレートし , レジスタの初期化を行います。また , MCU 命令動作 ( スタンバイ・コントロール・レジスタの RST ビットへの書込み ) によ りリセット処理を行う機能もサポートしています。この場合 , リセットのメッセージ (Reset) をステータスバーに表示します。 42 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e 2.1.7 S u p p o r t M a n u a l 低消費電力モードのシミュレーション SOFTUNE Workbench で行う低消費電力モードのシミュレーションについて説明し ます。 ■ 低消費電力モードのシミュレーション MCU 命令動作 ( スタンバイ・コントロール・レジスタの SLEEP ビットまたは STOP ビットへの書込み ) により低消費電力モードに入ります。スリープモード , またはス トップモードに入るとメッセージ ( スリープモードは [sleep], ストップモードは [stop]) をステータスバーに表示します。割込み要求が発生するか , [ デバッグ ] - [ 停止 ] メ ニューを実行するまでループします。1 回のループごとに , サイクル数を 1 カウント加 算します。I/O ポート処理も動作します。コマンドによるスタンバイ・コントロール・ レジスタへの書込みはできません。 July 1, 2014, CM41-00313-8 43 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e S up po r t M a nu al STUB 機能 2.1.8 ブレークポイントヒット時にコマンドを自動的に実行する , STUB 機能について説明 します。 ■ STUB 機能とは 指定したブレークポイントにヒットしたとき , コマンドリストに登録された一連のコ マンドを自動的に実行する機能です。この機能により , 簡易的な I/O シミュレーション や外部割込みの発生 , メモリ書換えなどのスポット処理を , 本筋のプログラムの変更な しに行うことが可能です。本機能はシミュレータデバッガ時だけ有効です。 命令実行開始 ブレーク(STUB)処理 プ ロ グ ラ ム 実 行 ブレークポイントヒッ ト ブレークポイントに登録した コマンドリストがあるか? 実行再開 NO YES ブレークポイントに登録した コマンドリストを処理(コマンド実行) 再実行する(NOBREAK指定)? YES 実行停止 NO 命令実行終了 ■ 設定方法 STUB 機能は次のコマンドにより設定可能です。 • ダイアログ 1. ブレークポイント設定ダイアログ‐ [ コード ] タブ 2. ブレークポイント設定ダイアログ‐ [ データ ] タブ • コマンド 1. SET BREAK 2. SET DATABREAK 44 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e 2.1.9 S u p p o r t M a n u a l ブレーク シミュレータデバッガでは , 5 種類のブレーク機能を使用できます。各ブレーク機能 によりプログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因を 表示します。 ■ ブレーク機能 本シミュレータデバッガでは , 次の 5 種類のブレーク機能をサポートしています。 • コードブレーク • データブレーク • トレースバッファフルブレーク • ガーデッドアクセスブレーク • 強制ブレーク July 1, 2014, CM41-00313-8 45 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.9.1 S up po r t M a nu al コードブレーク プログラム実行中に指定したコードアクセスが行われた場合 , シミュレータデバッガ がプログラム実行を中断する機能です。 ■ コードブレークの流れ プログラムがブレークポイント ( メモリ位置の命令を実行する直前 ) に到達すると , シ ミュレータデバッガは次の処理を行います。 1) プログラムの実行を中断します ( 命令実行前 )。 2) 到達回数をチェックし , 指定したブレークポイントの到達回数に達していない場合 には , プログラム実行を再開します。到達回数に達していた場合は , 3) に移ります。 3) 実行が中断されたメモリ位置をステータスバーに表示します。 ブレークポイントは最大 65535 ポイントまで設定可能です。 コードブレークでブレークした場合は,ステータスバーに次のメッセージが表示されま す。 Break at アドレス by breakpoint ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ ■ コードブレークの注意 コードブレークには , いくつかの注意事項があります。 まず , コードブレーク動作に影響を及ぼす注意事項について説明します。 ● 無効なブレークポイント • 次の命令の直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16/16L/16LX/16H: ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR ・MOV ILM,#imm8 ・AND CCR,#imm8 ・OR CCR,#imm8 F2MC-16F: 46 ・POPW PS ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 次に , ほかのコマンドに影響を及ぼす注意事項について説明します。 ● 危険なブレークポイント • 命令の先頭以外のアドレスにブレークポイントを設定しないでください。 • そのブレークポイントが , 2 バイト長以上の命令の最後の 1 バイトで , かつ , そのア ドレスが偶数番地の場合は , 次のような異常動作の原因になります。 - その命令を STEP コマンドでステップ実行すると , 命令実行が中断せずに実行を 続けます。 - GO コマンドで指定できるブレークポイントをこの命令の直後の命令に設定して も , そのブレークポイントではブレークしません。 <注意事項> 【高速版シミュレータデバッガの場合】 • ブレーク機能を使用する場合 , あらかじめメモリマップの設定が必要です。メモリマッ プを削除すると , ブレークポイントの設定も削除されます。 • F2MC-16FXにおいてリセットベクタにパスカウント付きブレークポイントを設定した 場 合 , BootROM フ ァ イ ル 実 行 後 に ヒ ッ ト カ ウ ン ト が ク リ ア さ れ て し ま い ま す。 BootROM ファイルの実行に関する詳細は『SOFTUNE Workbench 操作マニュアル』の 「4.5.5.9 デバッグオプションの設定」の「■ [Boot ROM] に属するオプションの設定方 法」を参照してください。 July 1, 2014, CM41-00313-8 47 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e S up po r t M a nu al データブレーク 2.1.9.2 プログラム実行中に指定したデータアクセス ( リード , ライト ) が行われた場合 , シ ミュレータデバッガがプログラム実行を中断する機能です。 ■ データブレークの流れ プログラムがブレークポイントに対し書込みまたは読出しを行った場合,シミュレータ デバッガは次の処理を行います。 1) 命令の実行を完了したあとで , プログラムの実行を中断します。 2) アクセス回数をチェックし , 指定したデータブレークのアクセス回数に達していな い場合にはプログラム実行を再開し , アクセス回数に達している場合には 3) に移り ます。 3) アクセス回数に達してプログラム実行が中断された場合は , データブレークポイン トのメモリ位置と , そのメモリ位置に対して書込み ( または読出し ) を行った命令の メモリ位置を , ステータスバーに表示します。 4) 次に実行するメモリ位置を表示します。 ブレークポイントは最大 65535 ポイントまで設定可能です。 データブレークでブレークした場合は,ステータスバーに次のメッセージが表示されま す。 Break at アドレス by databreak at アクセスアドレス ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「3.10 SET DATABREAK (type2)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ データ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> 【高速版シミュレータデバッガの場合】 • ブレーク機能を使用する場合 , あらかじめメモリマップの設定が必要です。メモリマッ プを削除すると , ブレークポイントの設定も削除されます。 • F2MC-16FXにおいてリセットベクタにパスカウント付きブレークポイントを設定した 場 合 , BootROM フ ァ イ ル 実 行 後 に ヒ ッ ト カ ウ ン ト が ク リ ア さ れ て し ま い ま す。 BootROM ファイルの実行に関する詳細は『SOFTUNE Workbench 操作マニュアル』の 「4.5.5.9 デバッグオプションの設定」の「■ [Boot ROM] に属するオプションの設定方 法」を参照してください。 48 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l トレースバッファフルブレーク 2.1.9.3 トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 ■ トレースバッファフルブレークとは トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 トレースバッファフルブレークでブレークした場合,ステータスバーに次のメッセージ が表示されます。 Break at アドレス by trace buffer full ■ 設定方法 トレースバッファフルブレークの制御は次の方法で行います。 • コマンド - SET TRACE/BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.29 SET TRACE (type1)」を参照してください。 • ダイアログ - トレース設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 July 1, 2014, CM41-00313-8 49 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.9.4 S up po r t M a nu al ガーデッドアクセスブレーク アクセス属性に違反してアクセスが行われた場合およびガーデッド ( 未定義エリア のアクセス不可 ) 領域をアクセスした場合にプログラム実行を中断する機能です。 ■ ガーデッドアクセスブレークとは アクセス属性に違反してアクセスが行われた場合およびガーデッド ( 未定義エリアの アクセス不可 ) 領域をアクセスした場合にプログラム実行を中断する機能です。 ガーデッドアクセスブレークは以下の場合に機能します。 • コードガーデッド コード属性を持たない領域に対して命令実行を行った場合 • リードガーデッド リード属性を持たない領域に対して読出しを行った場合 • ライトガーデッド ライト属性を持たない領域に対して書込みを行った場合 ガーデッドアクセスでブレークした場合,ステータスバーに次のメッセージが表示され ます。 Break at アドレス by guarded access {code/read/write} at アクセスアドレス 50 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l 強制ブレーク 2.1.9.5 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request July 1, 2014, CM41-00313-8 51 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.10 S up po r t M a nu al 実行サイクル数測定 プログラムの実行サイクル数を測定する機能です。 ■ 測定項目 プログラムの実行サイクル数 , ステップ数を測定します。 ● 実行サイクル数 プログラミングマニュアルに記述されている各命令の基本サイクル数を計算したもの です。 プログラミングマニュアルの命令一覧表に記載されている補正値 a, b はそれぞれ 1 と して計算しています。 測定可能な最大値は通常版シミュレータデバッガと高速版シミュレータデバッガでそ れぞれ以下のように異なります。 通常版の場合 : 最大 (2 の 32 乗 -1) すなわち , 4,294,967,295 サイクル 高速版の場合 : 最大 (2 の 64 乗 -1) すなわち , 18,446,744,073,709,551,615 サイクル ● 実行ステップ数 プログラム実行時のステップ数を測定します。 通常版シミュレータデバッガまたは高速版シミュレータデバッガいずれの場合も最大 (2 の 32 乗 -1) すなわち , 4,294,967,295 ステップまで測定可能です。 測定はプログラム実行のたびに行われ , 測定結果は以下の値を表示します。 • 直前のプログラム実行におけるステップ数 • 前回クリアしてからのプログラム実行におけるステップ数の合計 ■ 測定結果の表示 測定結果の表示は以下のどちらかで行います。 ● ダイアログによる表示 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに表 示します。 詳細は『SOFTUNE Workbench 操作マニュアル』 の 「4.6.8 時間測定」を参照してください。 ● コマンドによる表示 コマンドウィンドウにて SHOW TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 52 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l ■ 測定結果のクリア 測定結果のクリアは以下のどちらかで行います。 ● ダイアログによる操作 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログにて [クリア]ボタンを押します。 詳細は『SOFTUNE Workbench 操作マニュアル』 の 「4.6.8 時間測定」を参照してください。 ● コマンドによるクリア コマンドウィンドウにて CLEAR TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 <注意事項> 通常版シミュレータデバッガおよび高速版シミュレータデバッガでは , チップ内部のパイ プライン処理やキャッシュ動作をシミュレートしていませんので , 実際のチップとは大き な誤差が出る場合があります。 July 1, 2014, CM41-00313-8 53 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.11 S up po r t M a nu al トレース プログラム実行中にアドレス , ステータス情報をサンプリングし , トレースバッファ に記録できます。この機能をトレースとよびます。 ■ トレースとは プログラム実行中にアドレス , ステータス情報をサンプリングし , トレースバッファに 記録できます。この機能をトレースとよびます。トレースバッファのデータからプロ グラム実行履歴を詳細に解析できます。 トレースバッファはリング状の構造となっているので , トレースバッファがいっぱい になった場合は自動的にトレースバッファの先頭から上書きされて記録されます。 ■ トレースデータ シミュレータデバッガでは , 実行した命令のアドレスに対し , 1000 フレーム分のトレー スデータをサンプリングできます。 ■ トレース測定の中断 トレース機能が有効になっていればユーザプログラム実行中はいつもデータがサンプ リングされ , トレースバッファに記録されます。 ブレークポイントなどのブレーク要因によりプログラムの実行が中断され , トレース が終了となります。 またトレースバッファがいっぱいになった場合にプログラムをブレークさせることが できます。このブレークをトレースバッファフルブレークとよびます。 ■ フレーム番号 サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースバッファ中のどの位置から表示するかの指定は , フレーム番号により行いま す。 最後にサンプリングされたトレースデータには0番が, トリガ発生位置に到達するまで にサンプリングされたトレースデータには負の番号が付けられます。 図 2.1-1 トレース時のフレーム番号 ・ ・ ・ -3 -2 -1 0 (トリガ発生位置) 54 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l トレースの設定方法 2.1.11.1 トレースを行うには , 以下の 1) ~ 2) の設定を行います。その後プログラムを実行す るとトレースデータがサンプリングされます。 ■ トレースの設定方法 1) トレース機能を有効にします。本プログラム起動時は有効になっています。 - ダイアログ トレースウィンドウのショートカットメニュー[設定] [トレース] で設定します。 - コマンド ENABLE TRACE コマンドを入力します。 2) トレースバッファフルブレークの設定を行います。トレースバッファがいっぱいに なった場合に , ブレークさせることができます。本プログラム起動時は無効 ( ブレー クしない設定 ) になっています。 - ダイアログ トレースウィンドウのショートカットメニュー[設定] [トレース] で設定します。 - コマンド SET TRACE/BREAK コマンドを入力します。 July 1, 2014, CM41-00313-8 55 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.11.2 S up po r t M a nu al トレースデータの表示 トレースバッファに記録されたデータを表示します。 ■ トレースデータの表示方法 トレースバッファ内にどれだけトレースデータが格納されているかをトレースウィン ドウまたはコマンドウィンドウに表示します。 • トレースウィンドウ トレースウィンドウのショートカットメニュー[更新]を選択します。 • コマンドウィンドウ SHOW TRACE コマンドを入力します。 ■ トレースデータの表示形式 トレースデータの表示形式には次の 2 種類があります。 • インストラクション :命令実行だけを逆アセンブル単位で表示します。 • ソース :ソース行だけを表示します。 ■ トレースデータのクリア トレースバッファ内のデータは以下のどちらかによりクリアできます。 • ウィンドウ トレースウィンドウのショートカットメニュー[クリア]を選択します。 • コマンド CLEAR TRACE コマンドを入力します。 56 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l トレースデータの検索 2.1.11.3 トレースバッファのどこに見たいデータが格納されているのかを検索ができます。 ■ トレースデータの検索 トレースバッファは 1000 フレーム分あるため , 見たいデータがすぐに見つからない場 合があります。そこでアドレスを指定して , トレースバッファ内のデータからトレース データを検索できます。 ■ トレースデータの検索方法 トレースデータの検索は , 次のどちらかの方法で行います。 • ウィンドウ トレースウィンドウのショートカットメニュー[検索]を選択します。 • コマンド SEARCH TRACE コマンドを入力します。 July 1, 2014, CM41-00313-8 57 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.11.4 S up po r t M a nu al トレースデータを保存するには トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 58 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e 2.1.12 S u p p o r t M a n u a l カバレッジ測定 高速版シミュレータデバッガには , C0 カバレッジ測定機能があります。この機能を 利用すると , プログラム全体の何 % が実行されたかを確認することができます。 ■ カバレッジ測定機能 プログラムをテストする場合は , いろいろなテストデータを与えて実行し , 結果が正し いことを確認します。テストがひととおり終わると , そのプログラムは全体がくまなく 実行されたはずです。もし , プログラムの一部分が実行されなかったとしたら , テスト 項目が不充分だった可能性があります。 高速版シミュレータデバッガが持っているカバレッジ機能を利用すると,プログラム全 体の何 % が実行されたのかを確認することができます。 また , 単に比率だけでなく , 具体的にどの番地がアクセスされなかったのかも詳細に確 認することができます。 本デバッガでは , カバレッジ測定を行う範囲を設定できます。 C0 カバレッジを行う場合は , コード領域にだけ測定範囲を設定してください。 また , データ領域に測定範囲を設定することにより , 使用されていない変数を探し出す など , 変数のアクセス状態を確認することができます。 ■ カバレッジ測定手順 カバレッジ測定の手順は次のようになります。 • カバレッジ測定範囲の設定 … SET COVERAGE • カバレッジの測定 … GO, STEP, CALL • 測定結果の表示 … SHOW COVERAGE ■ カバレッジ測定操作 カバレッジ測定の際には , 以下の操作ができます。 • カバレッジデータのロード / セーブ … LOAD/COVERAGE. SAVE/COVERAGE • カバレッジデータのクリア … CLEAR COVERAGE • カバレッジ測定範囲の解除 … CANCEL COVERAGE July 1, 2014, CM41-00313-8 59 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e 2.1.12.1 S up po r t M a nu al カバレッジ測定手順 カバレッジ測定の手順は次のようになります。 • カバレッジ測定範囲の設定 … SET COVERAGE • カバレッジの測定 … GO, STEP, CALL • 測定結果の表示 … SHOW COVERAGE ■ カバレッジ測定範囲の設定 SET COVERAGE コマンドで測定範囲を設定します。設定数は最大 32 領域までです。 コマンド修飾子に /AUTOMATIC を指定するとロードされているモジュールのコード 領域が自動的に設定されます。ただし , C コンパイラのライブラリをリンクしている場 合は , ライブラリのコード領域は設定されません。 (例) >SET COVERAGE FF0000..FFFFFF ■ カバレッジの測定 カバレッジ測定の準備ができたら , プログラムを実行させます。 GO, STEP, CALL コマンドによりプログラム実行すると測定されます。 ■ カバレッジ測定結果の表示 SHOW COVERAGE コマンドで以下の測定データの表示ができます。 • 全測定領域のカバレッジ率の表示 • ロードモジュールのカバレッジ率の表示 • 16 アドレスをひとかたまりとした概要表示 • 1 アドレスごとのアクセス状態を表示する詳細表示 • ソース行単位のカバレッジ測定結果表示 • 機械命令単位のカバレッジ測定結果表示 ● 全測定領域のカバレッジ率の表示 ( コマンド修飾子に /TOTAL を指定 ) >SHOW COVERAGE/TOTAL total coverage : 82.3% ● ロードモジュールのカバレッジ率の表示 ( コマンド修飾子に /MODULE を指定 ) >SHOW COVERAGE/MODULE sample.abs . . . . . +- startup.asm . . . +- sample.c . . . . +- samp.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (84.03%) (90.43%) (95.17%) (100.00%) ロードモジュールと各モジュールのカバレッジ率を表示します。 60 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l ● 概要表示 ( コマンド修飾子に /GENERAL を指定 ) >SHOW COVERAGE/GENERAL (HEX)0X0 +1X0 +2X0 +---------------+---------------+-----address 0123456789ABCDEF0123456789ABCDEF0123456 FF0000 **3*F*....... -----... ABCDEF C0(%) 32.0 16アドレスごとのアクセス状況を表示します。 . :アクセスなし 1~F :16個のアドレス内のアクセスされた数を16進数で表示 * :16個のアドレスをすべてアクセス ● 詳細表示 ( コマンド修飾子に /DETAIL を指定 ) 1行分のカバレッジ率を 表示します。 >SHOW COVERAGE/DETAIL FF0000 address +0 +1 +2 +3 +4 +5 FF0000 - - - - - FF0010 - - - - - FF0020 . . . . - FF0030 - - - - - FF0040 - . - - - FF0050 - - - - - FF0060 . . . . . . FF0070 . . . . . . FF0080 . . . . . . +6 . . . +7 . . . . +8 . . . . +9 . . . . +A +B +C +D +E +F C0(%) - - - - - - 100.0 - - - - - - 100.0 . . . . . . 18.6 - - - - - - 100.0 - - - - - - 93.7 - - - - - - 100.0 . . . . . . 0.0 . . . . . . 0.0 . . . . . . 0.0 1アドレスごとにアクセス状態を表示します。 . :アクセスなし - July 1, 2014, CM41-00313-8 :アクセスあり 61 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e S up po r t M a nu al ● ソース行単位で表示 ( コマンド修飾子に /SOURCE を指定 ) >SHOW COVERAGE/SOURCE main * 70: { 71: int i; 72: struct table *value[16]; 73: * 74: for (i=0; i<16; i++) * 75: value[i] = &target[i]; 76: * 77: sort_val(value, 16L); . 78: } ソース行単位の実行状況を表示します。 . :実行なし * :実行あり 空白 :コードが生成されないまたはカバレッジ測定範囲外の行 ● 機械命令単位で表示 ( コマンド修飾子に /INSTRUCTION を指定 ) >SHOW COVERAGE/INSTRUCTION F9028F sample.c$70 { * F9028F \main: * F9028F 0822 LINK #22 * F90291 4F01 PUSHW RW0 sample.c$74 for (i=0; i<16; i++) . F90293 D0 MOVN A,#0 . F90294 CBFE MOVW @RW3-02,A . F90296 BBFE MOVW A,@RW3-02 . F90298 3B1000 CMPW A,#0010 . F9029B FB18 BGE F902B5 sample.c$75 value[i] = &target[i]; . F9029D BBFE MOVW A,@RW3-02 . F9029F 0C LSLW A . F902A0 98 MOVW RW0,A . F902A1 71F3DE MOVEA A,@RW3-22 . F902A4 7700 ADDW RW0,A . F902A6 4214 MOV A,#14 . F902A8 7833FE MULUW A,@RW3-02 . F902AB 38A001 ADDW A,#01A0 機械命令単位の実行状況を表示します。 62 . :実行なし * :実行あり 空白 :カバレッジ測定範囲外の命令 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e 2.1.13 S u p p o r t M a n u a l デバッガの情報を確認するには シミュレータデバッガの情報を確認する方法について説明します。 ■ デバッガの情報 本シミュレータデバッガでは , デバッガ起動時に以下の情報を確認できます。 • SOFTUNE Workbench のファイル情報 SOFTUNE Workbench の動作に問題があった場合は , この情報を確認し , 営業部門また はサポート部門までお問合せください。 ■ 確認方法 デバッガの情報の確認は次の方法で行います。 • コマンド - SHOW SYSTEM 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「1.19 SHOW SYSTEM」を参照してください。 • ダイアログ - バージョン情報ダイアログ [ヘルプ]‐[バージョン情報]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.9.3 バージョン情報」を参 照してください。 ■ 表示内容 F2MC-16 Family SOFTUNE Workbench VxxLxx (c) Copyright Spansion LLC, All Rights Reserved 1997-2014 ======================================================= Cpu information file path:CPU 情報ファイルのパス Cpu information file version:CPU 情報ファイルのバージョン ======================================================= Add in DLLs ------------------------------------------------------SiCmn Product name : SOFTUNE Workbench File Path:SiC907.dll のパス Version:SiC907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - SiiEd File Path:SiiEd3.ocx のパス Version:SiiEd3.ocx のバージョン ------------------------------------------------------- July 1, 2014, CM41-00313-8 63 第 2 章 依存機能 2.1 シミュレータデバッガ So ft war e S up po r t M a nu al SiM907 Product name : SOFTUNE Workbench File Path:SiM907.dll のパス Version:SiM907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Language Tools - F2MC-16 Family SOFTUNE C Compiler のバージョン File Path:fcc907s.exe のパス - F2MC-16 Family SOFTUNE Assembler のバージョン File Path:fasm907s.exe のパス - F2MC-16 Family SOFTUNE Linker のバージョン File Path:flnk907s.exe のパス - F2MC-16 Family SOFTUNE Librarian のバージョン File Path:flib907s.exe のパス - SOFTUNE FJ-OMF to S-FORMAT Converter のバージョン File Path:f2ms.exe のパス - SOFTUNE FJ-OMF to INTEL-HEX Converter のバージョン File Path:f2is.exe のパス - SOFTUNE FJ-OMF to INTEL-EXT-HEX Converter のバージョン File Path:f2es.exe のパス - SOFTUNE FJ-OMF to HEX Converter のバージョン File Path:f2hs.exe のパス ------------------------------------------------------SiOsM Product name : Softune Workbench File Path:SiOsM907.dll のパス Version:SiOsM907.dll のバージョン ------------------------------------------------------F2MC-16 Series Debugger DLL Product name : SOFTUNE Workbench File Path:SiD907.dll のパス Version:SiD907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Debugger type : 現在のデバッガ種別 MCU type : 現在選択しているターゲット MCU VCpu dll name : 現在使用している VCpu dll のパスと名前 VCpu dll version : 使用中の仮想デバッガ部 DLL のバージョン REALOS version : REALOS のバージョン ------------------------------------------------------- 64 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.1 シミュレータデバッガ S o ft w a r e S u p p o r t M a n u a l SiIODef Product name : Softune Workbench File Path : SiIODef.dll のパス Version : SiIODef.dll のバージョン ======================================================= Current path:現在使用しているプロジェクトのパス Language:現在使用している言語 Help file path:ヘルプファイルのパス July 1, 2014, CM41-00313-8 65 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2 S up po r t M a nu al エミュレータデバッガ (MB2141) MB2141 用エミュレータデバッガの機能について説明します。 ■ エミュレータデバッガ セットアップウィザードでエミュレータデバッガを選択すると,次のエミュレータを指 定できます。以降 MB2141 を選択した場合について説明します。 MB2141 MB2147-01 MB2147-05 MB2198 MB2141 用エミュレータデバッガは , ホストコンピュータから通信回線 (RS-232C, LAN) を介してエミュレータを制御してプログラムの評価を行うソフトウェアです。 デバッグ対象となるシリーズは , 次のとおりです。 MB2141-506 ポッドを使用する場合 F2MC-16/16H F2MC-16F F2MC-16L F2MC-16LX MB2141-507 ポッドを使用する場合 F2MC-16F F2MC-16L F2MC-16LX ご使用になるまえに , エミュレータの初期化が必要になります。詳細は ,『SOFTUNE Workbench 操作マニュアル』の「付録 B モニタプログラムのダウンロード」,「付録 C LAN インタフェースの設定」を参照してください。 66 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.1 S u p p o r t M a n u a l 動作環境の設定 動作環境の設定について説明します。 ■ 動作環境の設定 MB2141 用エミュレータデバッガでは , 以下の項目について動作環境を設定する必要が あります。なお , それぞれの設定には起動時のデフォルトがあるため , 起動時のデフォ ルトを使用する場合は設定を行う必要はありません。また , 一度指定した設定値を次回 からのデフォルトにすることもできます。 • MCU 動作モード • デバッグ領域 • メモリマッピング • タイマの最小測定単位 July 1, 2014, CM41-00313-8 67 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.1.1 S up po r t M a nu al MCU 動作モード MCU 動作モードには次の 2 種類があります。 • デバッグモード • ネイティブモード ■ MCU 動作モードの設定 MCU 動作モードを設定します。 動作モードには , デバッグモードとネイティブモードがあり , これらのモードは , SET RUNMODE コマンドにより設定します。 エミュレータ起動時は , デバッグモードになっています。 MCU 動作モードを切り換えると , 次のものがすべて初期化されます。 データブレークポイント イベント条件設定 シーケンサ設定 トレース測定設定およびトレースバッファ パフォーマンス測定設定および測定結果 ● デバッグモード エバリュエーションチップのすべての動作を解析できますが,動作速度は量産チップよ りも遅くなります。 ● ネイティブモード 動作速度は量産チップと同じタイミングになります。ただし , 表 2.2-1 に示すようなデ バッグ機能の制限がありますので注意してください。 表 2.2-1 ネイティブモード時のデバッグ機能制限 対象シリーズ 68 デバッグ機能の制限 F2MC-16/16H ・ メモリマッピングの設定は無効になり , 使用する MCU の仕 様とおりに各領域がアクセスされます。 ・ トレースの逆アセンブル表示ができません。 全シリーズ共通 ・ MCU 内部バスでデータリードアクセスが発生した場合 , ト レースバッファに内部バスアクセス情報がサンプリングさ れません。 ・ MCU内部バス上にあるデータに対してデータブレークやイ ベント ( データアクセス条件 ) を設定しても , ブレーク要因 やシーケンサのトリガ要因にならないことがあります。 ・ カバレッジ機能について , MCU 内部バス上にあるデータへ のデータアクセスを検出できないことがあります。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ■ MCU の動作速度 本エミュレータでは , MCU の動作速度を広くサポートするために , MCU の動作速度に 応じた制御を行うようになっています。 通常は , 低速動作モードに設定してください。F2MC-16H/16F シリーズを高速動作させ る場合で , 本エミュレータが誤った動作をする場合は , 設定を高速動作モードに変更し てください。 また , ギア設定などの関係で , 起動時は低速動作モード , 起動後は高速動作にする場合 は , SET RUNMODE コマンドを用いて設定を変更してください。 July 1, 2014, CM41-00313-8 69 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.1.2 S up po r t M a nu al デバッグ領域 全メモリ空間の中から集中的にデバッグする領域を設定します。 この領域に対する機能が強化されます。 ■ デバッグ領域の設定 デバッグ領域には , DEBUG1 と DEBUG2 の 2 領域が準備されています。そのそれぞれ について連続した 512KB(8 バンク ) 分の領域が設定されます。 デバッグ領域は , SET DEBUG コマンドで設定できます。 デバッグ領域を設定すると , ブレークポイント , データブレークポイントとカバレッジ 測定機能が強化されます。 • ブレークポイントの強化 デバッグ領域が設定されていない場合 , ブレークポイントの設定は最大 6 ポイント まで可能です。( ただし , GO コマンドで設定できる一時的なブレークポイントは含 みません。) デバッグ領域を CODE 属性で設定すると , その範囲内であれば 65535 ポイントまで 設定が可能になります。このとき , この領域以外に対しては , やはり最大 6 ポイン トまで設定可能ですが , 全ポイント数が 65535 ポイントを超えることはできません。 • データブレークポイントの強化 デバッグ領域が設定されていない場合 , データブレークポイントの設定は最大 6 ポ イントまで可能です。 デバッグ領域をデータ属性 (READ, WRITE) で設定すると , その範囲内にそれと同じ 属性のデータブレークポイントであれば 65535 ポイントまで設定が可能になりま す。このとき , この領域以外やほかの属性のものは , やはり最大 6 ポイントまで設 定可能ですが , 全ポイント数が 65535 ポイントを超えることはできません。 • カバレッジ測定機能の強化 デバッグ領域を設定することによって , カバレッジ測定機能が使用できるようにな ります。カバレッジ測定では , デバッグ領域として設定された範囲内にだけ測定範 囲を指定できます。 カバレッジ測定で使用する場合は , デバッグ領域の属性指定を気にする必要はあり ません。デバッグ領域の属性とは無関係に , カバレッジ測定属性を設定できます。 70 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l メモリエリアの種類 2.2.1.3 メモリを割り当てる単位をエリアとよびます。エリアには 7 つの種類があります。 ■ メモリエリアの種類 メモリを割り当てる単位をエリアとよびます。次の 7 つのエリアがあります。 • ユーザメモリエリア ユーザシステム上のメモリ空間をユーザメモリエリアとよびます。また , このメモ リのことをユーザメモリとよびます。ユーザメモリエリアは , 最大 8 エリアまで設 定可能で , 各エリアのサイズには制限がありません。 また , 各エリアには , アクセス属性を設定できます。例えば , ROM 領域には CODE, READ を , RAM 領域には READ, WRITE などの属性が設定できます。これに違反す るアクセスを MCU が行った場合には , MCU 動作は中断されてエラーが表示されま す ( ガーデッドアクセスブレークとよびます )。 MCU 実行中に , 本エリアに対してメモリ操作コマンドは実行できません。 ユーザメモリエリアの指定は , SET MAP コマンドで設定できます。F2MC-16/16H で は , デバッグモードでだけ設定できます。 • エミュレーションメモリエリア エミュレータ上のメモリで代行するメモリ空間をエミュレーションメモリエリア とよびます。また , このメモリのことをエミュレーションメモリとよびます。 エミュレーションメモリエリアとして , MB2145-506( エミュレーションポッド ) 使 用時は , 最大 64KB のエリアを最大 7 エリア ( 後述するミラーエリアおよび内部 ROM エリアも含めます ) まで設定可能です。64KB 以上の領域も一度に指定できますが , 内部では 64KB ごとのエリアに分けて管理されます。 MB2145-507( エミュレーションポッド ) 使用時は , 最大 512KB のエリアを最大 7 エ リア ( 後述するミラーエリアおよび内部 ROM メモリエリアも含めます ) まで設定 可能です。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できます。 エミュレーションメモリエリアの指定は , SET MAP コマンドで設定できます。 また , ユーザメモリエリアと同様にアクセス属性の設定も行えます。 <注意事項> MCU 内部リソースをエミュレーションメモリエリアとして設定しても内部リソース側を アクセスします。F2MC-16/16H では , デバッグモードでだけ設定できます。 July 1, 2014, CM41-00313-8 71 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al • ミラーエリア エミュレータ上のメモリにユーザメモリアクセスのコピーをとる領域をミラーエ リアとよびます。また , このメモリのことをミラー領域とよびます。 ミラーエリアは , ユーザメモリエリア , または , 未定義エリアに重ねて使用します。 このミラーエリアは , エミュレーションメモリを用いて実現しています。設定可能 なエリア数は , エミュレーションメモリエリアと合わせて , 最大 5 エリアまでです。 ミラーエリアは , オンザフライ実行中にユーザメモリを参照するために使用します ( これについての詳細は ,「2.2.4 オンザフライ中のメモリアクセス」を参照してく ださい )。 ミラーエリアの指定は , SET MAP コマンドで設定できます。エリア指定時にメモリ 内容のコピー指定を同時に行うと , このミラーエリアは必ずユーザメモリと同じ内 容になります。 <注意事項> F2MC-16/16H では , デバッグモードでだけ設定できます。 • 内部 ROM エリア 内部 ROM をエミュレータ内部のメモリで代行する領域を内部 ROM エリアとよび ます。また , このメモリのことを内部 ROM メモリとよびます。 内部 ROM エリアは , 最大 128KB の領域で 1 エリアだけ指定できます。 内部 ROM エリアは , [ 環境 ] - [ デバッガのメモリマップ…] で開く [ マップ設定 ] ダイアログにより設定できます。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 内部 ROM イメージエリア (F2MC-16L, F2MC-16LX, F2MC-16F だけ ) MCU の品種によっては , 00 バンクに内部 ROM の特定領域の内容が現れるものがあ りますが , この領域のことを内部 ROM イメージエリアとよびます。 内部 ROM イメージエリアは , [ 環境 ] - [ デバッガのメモリマップ…] で開く [ マップ設定 ] ダイアログにより設定できます。このエリアには自動的に READ/ CODE 属性が付けられます。 内部 ROM イメージエリアには , 内部 ROM エリアと同じ内容が現れますが , デバッ グ情報は , どちらか一方 ( リンク時に指定された方 ) にだけ有効になりますので注 意が必要です。内部 ROM イメージエリア内でだけデバッグする場合は , ロードモ ジュールファイルの作成方法を変更する必要があります。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 72 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l • 内部命令 RAM エリア (F2MC-16H だけ ) MCU の品種によっては , 内部命令 RAM を持つものがありますが , この領域のこと を内部命令 RAM エリアとよびます。 内部命令 RAM エリアは , [ プロジェクトの設定 ] ダイアログ ([ プロジェクト ] - [ プロジェクトの設定 ] メニュー) で [MCU 設定 ] タブを選択し , [CPU 情報の設定…] ボタンを押すと開く [CPU 情報の設定 ] ダイアログで [ 内部命令 RAM 領域 ] タブを 選択すると設定できます。 指定サイズは , H'100/H'200/H'400/H'800/H'1000/H'2000/H'4000 バイトのどちらかでな ければなりません。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 未定義エリア 上記の指定外のメモリ領域を未定義エリアとよびます。 未定義エリアは , アクセス自由なメモリ領域 (NOGUARD), もしくは , アクセス禁止 のメモリ領域 (GUARD) のどちらかに設定ができます。この設定は , すべての未定 義エリアに対して設定できます。アクセス禁止領域に設定すると , その領域をアク セスした場合に , ガーデッドアクセスエラーになります。 <注意事項> F2MC-16/16H では , デバッグモードでだけ設定できます。 July 1, 2014, CM41-00313-8 73 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.1.4 S up po r t M a nu al メモリマッピング メモリ空間をユーザメモリ , エミュレーションメモリなどに割り当てたり , また属性 を指定したりすることができます。 ただし , MCU 内部のリソースはマッピングの指定によらず , 必ず内部リソースがア クセスされます。 ■ メモリエリアのアクセス属性 メモリエリアには表 2.2-2 に示すアクセス属性を指定できます。 プログラム実行中にアクセス属性に違反したアクセスが起こった場合は,ガーデッドア クセスブレークが発生します。 本プログラムのコマンドによりユーザメモリエリア,およびエミュレーションメモリエ リアをアクセスする場合は, CODE, READ, WRITEの属性にかかわらずアクセスできま す。ただし , 未定義エリアの GUARD 属性が設定されているメモリをアクセスした場 合は , エラーが発生します。 表 2.2-2 アクセス属性の種類 エリア 属性 ユーザメモリ エミュレーションメモリ 未定義 内容 CODE 命令実行許可 READ データリード許可 WRITE データライト許可 GUARD アクセス禁止 NOGUARD アクセス属性チェックなし プログラム実行により WRITE 属性のないエリアに対してアクセスすると , ユーザメモ リエリアの場合は , データが書き換わってからガーデッドアクセスブレークが発生し ますが , エミュレーションメモリエリアの場合は , データが書き換わらずにブレークし ます。つまり , エミュレーションメモリエリアに WRITE 属性を指定しないとライトプ ロテクト ( ライトしてもメモリのデータを書き換えない ) をかけることができます。ラ イトプロテクトはプログラム実行によるアクセスの場合にだけ有効で , コマンドによ るアクセスではかかりません。 ■ メモリマップの作成・表示 メモリマッピングは , 以下のコマンドで行います。 74 SET MAP : メモリマップの設定 SHOW MAP : メモリマップの表示 CANCEL MAP : 設定したメモリマップを未定義にする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l (例) >SHOW MAP address attribute 000000 .. FFFFFF noguard type The rest of setting area numbers user = 8 emulation = 5 >SET MAP/USER H'0..H'1FF >SET MAP/READ/CODE/EMULATION H'FF0000..H'FFFFFF >SET MAP/USER H'8000..H'8FFF >SET MAP/MIRROR/COPY H'8000..H'8FFF >SET MAP/GUARD >SHOW MAP address attribute type 000000 .. 0001FF read write user 000200 .. 007FFF guard 008000 .. 008FFF read write 009000 .. FEFFFF guard FF0000 .. FFFFFF read write code user emulation mirror address area 008000 .. 008FFF copy The rest of setting area numbers user = 6 emulation = 3 > ■ 内部 ROM 領域設定 [ 環境 ]-[ デバッガのメモリマップ ] メニューで [ マップ設定 ] ダイアログを表示しま す。そして [ 設定 ] ボタンをクリックして , [ マップ追加 ] ダイアログを表示し , さらに [ 内部 ROM 領域 ] タブを選択すると , 内部 ROM 領域の設定が可能になります。 内部 ROM 領域は , 2 領域まで設定可能です。各領域を設定するには , エミュレーショ ンエリアの空きが必要です。必要な空き領域は次のようになります。 ( エミュレーションエリアの空き数 ) × (1 エリアのサイズ ) 上記のサイズまで指定できます。 領域 1 は , 終了アドレス H'FFFFFF( 固定 ) からの内部 ROM 領域を指定してください。 また , 内部 ROM 領域を削除することも可能です。 July 1, 2014, CM41-00313-8 75 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.1.5 S up po r t M a nu al タイマの最小測定単位の設定 タイマの最小測定単位は , シーケンサ , エミュレーションタイマ , パフォーマンス測 定タイマに影響を与えます。 ■ タイマの最小測定単位の設定 エミュレータが時間測定用に持っているタイマの最小測定単位を 1s, 100ns のどちら かに設定できます。 この設定により , 次のタイマの最小測定単位が変更されます。 シーケンサのタイマ値 ( 各レベルのタイマ条件 ) エミュレーションタイマ パフォーマンス測定のタイマ 表 2.2-3 に最小測定単位を 1s, 100ns にした場合の各タイマの最大測定時間を示しま す。 タイマの最小測定単位を変更すると各タイマの測定値はクリアされます。 起動時のデフォルトは , 1s になっています。 表 2.2-3 各タイマの最大測定時間 1s に設定 100ns に設定 シーケンサのタイマ 約 16 秒 約 1.6 秒 エミュレーションタイマ 約 70 分 約7分 パフォーマンス測定タイマ 約 70 分 約7分 次のコマンドで制御します。 SET TIMERSCALE : タイマの最小測定単位の設定 SHOW TIMERSCALE : タイマの最小測定単位設定状態の表示 (例) >SET TIMERSCALE/100N >SHOW TIMERSCALE Timer scale : 100ns > 76 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.2 S u p p o r t M a n u a l プログラム実行での注意 プログラム実行コマンドには , いくつかの注意事項があります。 ■ GO コマンドでの注意 GO コマンドにはコマンド実行時だけ有効なブレークポイントを 2 個設定できますが , このブレークポイントの設定には注意が必要です。 ● 無効なブレークポイント 次の命令直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16/16L/16LX/16H PCB NCC SPB MOV ILM,#imm8 OR CCR,#imm8 DTB ADB CNR AND CCR,#imm8 POPW PS F2MC-16F PCB NCC SPB DTB ADB CNR 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 次の 2 つの条件を一度に満たす場合にもブレークしません。 • ブレークポイントを設定する命令が奇数番地から始まっている場合 • 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに既 にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) July 1, 2014, CM41-00313-8 77 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ● 異常なブレークポイント 次に示すストリング系命令の , 直後の命令にブレークポイントを設定すると , ストリン グ命令を最後まで実行せずに , ストリング命令の途中でブレークすることがあります。 F2MC-16L/16LX/16/16H MOVS SECQ WBTS MOVSWI SECQWI MOVSD SECQD FILS FILSW MOVSW SECQW MOVSI SECQI WBTC MOVSWD SECQWD FILSI FILSWI F2MC-16F MOVS SECQ WBTS MOVSWI SECQWI MOVSD SECQD FILS FILSW MOVM MOVSW SECQW MOVSI SECQI WBTC MOVSWD SECQWD FILSI FILSWI MOVMW ■ STEP コマンドでの注意 ● 特殊なステップ実行 GO コマンドでの注意であげた無効なブレークポイント , および異常なブレークポイン トの命令を実行する場合は , それに続く 1 命令も含めて命令として動作します。ただし , 命令が連続している場合は , それらすべてとその直後の 1 命令を全部含めて 1 命令とし て動作します。 ● ブレークしないステップ実行 次の 2 つの条件を一度に満たす場合は , ステップ動作後ブレークしませんので注意して ください。 • ステップする命令が 2 バイト以上の命令で , その最後のコードが偶数で終わってい る場合 • その最後のアドレスに既にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) 78 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ■ ウォッチドッグタイマの制御 GO, STEP, CALL コマンドによるプログラム実行中に [ ウォッチドッグタイマのカウン タのオーバフローによりリセットを発生させない ] ことができます。 ウォッチドッグタイマの制御は , ENABLE WATCHDOG, DISABLE WATCHDOG コマ ンドで行います。 ENABLE WATCHDOG … ウォッチドッグタイマのカウンタのオーバフロー によりリセットを発生させる。 DISABLE WATCHDOG … ウォッチドッグタイマのカウンタのオーバフロー によりリセットを発生させない。 本プログラム起動時は , [ ウォッチドッグタイマのカウンタのオーバフローによりリ セットを発生させる ] になっています。 (例) >DISABLE WATCHDO >GO July 1, 2014, CM41-00313-8 79 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ユーザプログラム実行中に使用できるコマンド 2.2.3 ユーザプログラム実行中に使用できるコマンドについて説明します。 ■ ユーザプログラム実行中に使用できるコマンド 本エミュレータデバッガでは , ユーザプログラム実行中に特定のコマンドが使用でき ます。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の各コマンドの 「■ 対応デバッガ」を参照してください。 ◎はユーザプログラム実行中に使用できることを表しています。 表 2.2-4 にユーザプログラム実行中に使用できるコマンドを示します。 表 2.2-4 ユーザプログラム実行中に使用できるコマンド 機能 MCU のリセット 限定事項 - 主コマンド 1.3 RESET メモリ操作 ( リード / ライト ) エミュレーションメモリだけ操作 可能 ミラー領域はリードだけ可能 5.1 EXAMINE, 5.2 ENTER, 5.3 SET MEMORY, 5.4 SHOW MEMORY, 5.5 SEARCH MEMORY, 5.8 COMPARE, 5.9 FILL, 5.10 MOVE, 5.11 DUMP ラインアセンブル , 逆アセンブル エミュレーションメモリだけ可能 ミラー領域は逆アセンブルだけ可 能 6.1 ASSEMBLE, 6.2 DISASSEMBLE カバレッジ測定データの表示 イベントの表示 - パフォーマンスモード時は不可 4.19 SHOW COVERAGE 3.23 SHOW EVENT <注意事項> • 表 2.2-4 のコマンドが使用できる条件は, 以下のどちらかによりユーザプログラムを実 行した場合に限ります。 - [ デバッグ ]-[ 実行 ]-[ 連続実行 ] メニュー - デバッグツールバーの [ 連続実行 ] ボタン コマンドウィンドウにて GO コマンドを入力した場合は , 表 2.2-4 のコマンドは使用で きません。 • ユーザプログラム実行中に使用できないコマンドを入力すると,以下のエラーメッセー ジが表示されます。 「E4404S: MCU 実行中は使えないコマンドです」 80 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.4 S u p p o r t M a n u a l オンザフライ中のメモリアクセス エミュレーションメモリにマップした領域は , オンザフライでリード / ライト可能 , ユーザメモリにマップした領域は , リードだけ可能となります。 ■ オンザフライ中のメモリの読出し , 書込み オンザフライ中 (MCU 実行時 ) は , ユーザメモリをアクセスできません。ただし , エ ミュレーションメモリに対してのアクセスは可能です ( サイクルスチール方式を採用 していますので , MCU 実行速度に影響を与えません )。 本エミュレータでは , エミュレーションメモリをミラー領域として使用できるように なっています。ミラー領域とはユーザメモリのコピーを保持する領域で , このミラー領 域を用いることによって,オンザフライ中のユーザメモリのリードだけを可能にしてい ます。 各メモリ領域は , 次のように動作します。 • ユーザメモリ領域 ユーザメモリのアクセスは , ブレーク時だけ可能です。 • エミュレーションメモリ領域 MCU 停止時 , オンザフライ時にかかわらず , メモリアクセス可能です。 • ミラー領域 オンザフライ中にメモリ参照を行いたいユーザメモリ領域にミラー指定のエミュ レーションメモリを設定できます。この領域をミラー領域とよびます。 このミラー領域は , 図 2.2-1 に示すように , MCU 停止中はユーザメモリをアクセス し , 同時にそのアクセスがミラー領域のエミュレーションメモリにも反映されます ( リードアクセスでもその内容がミラー領域のエミュレーションメモリに反映され ます )。 また , オンザフライ中は図 2.2-2 に示すように , MCU によるユーザメモリアクセス がそのままミラー領域のエミュレーションメモリに反映されます。 オンザフライ中はユーザメモリをアクセスできませんが , ミラー領域のエミュレー ションメモリのリードを行うことができます。つまり , ミラー領域にはユーザメモ リと同じアクセスが行われていますので , ユーザメモリと同じ内容をリードできま す。 ただし , ミラー領域のエミュレーションメモリとユーザメモリの内容が同じになる には,少なくとも一度はアクセスされている必要があります。コマンドによってユー ザメモリとミラー領域のエミュレーションメモリの内容を同じものにするには , 次 の方法があります。 1. ミラー領域設定時に , すべての内容をコピーする方法 SET MAP コマンドでミラー領域を設定するときに/COPY の指定を行うと,ミラー 領域として設定した全領域のコピーを行います。 July 1, 2014, CM41-00313-8 81 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al 2. メモリアクセス系のコマンドにより必要部分だけをコピーする方法 コマンド内のメモリをアクセスするものを実行することによって , その指定部分 だけの内容コピーが行えます。 メモリアクセスが行われるコマンドには次のものがあります。 • メモリ操作コマンド SET MEMORY, SHOW MEMORY, EXAMINE, ENTER, COMPARE, FILL, MOVE, SEARCH MEMORY, DUMP, COPY, VERIFY • データのロード / セーブコマンド LOAD, SAVE 図 2.2-1 MCU 停止中のミラー領域アクセス メモリアクセス コマンド実行 エミュレーション メモリ (ミラー設定) 反映 MCU動作 (停止中) ユーザメモリ 図 2.2-2 オンザフライ中のミラー領域アクセス メモリリード コマンド実行 エミュレーション メモリ (ミラー設定) 反映 MCU動作 (動作中) メモリアクセス ユーザメモリ <注意事項> MCU 以外のバスマスタのメモリアクセスはミラー領域に反映されません。 82 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.5 S u p p o r t M a n u a l ブレーク 本エミュレータデバッガでは , 7 種類のブレーク機能を使用できます。各ブレーク機 能によりプログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因 を表示します。 ■ ブレーク機能 本エミュレータデバッガでは , 次の 7 種類のブレーク機能をサポートしています。 • コードブレーク • データブレーク • シーケンシャルブレーク • ガーデッドアクセスブレーク • トレースバッファフルブレーク • パフォーマンスバッファフルブレーク • 強制ブレーク July 1, 2014, CM41-00313-8 83 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.5.1 S up po r t M a nu al コードブレーク 指定したアドレスを監視することでプログラム実行を中断する機能です。指定され たアドレスの命令を実行する前にブレークします。 ■ コードブレークとは 指定したアドレスを監視することでプログラムを中断する機能です。指定されたアド レスの命令を実行する前にブレークします。本デバッガでは 65535 個設定可能です。た だしデバッグ領域をコードブレーク領域として設定する必要があります。 コードブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by breakpoint ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ ■ コードブレークの注意 コードブレークには , いくつかの注意事項があります。 まず , コードブレーク動作に影響を及ぼす注意事項について説明します。 ● 無効なブレークポイント • 次の命令の直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16/16L/16LX/16H: ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR ・MOV ILM,#imm8 ・AND CCR,#imm8 ・OR CCR,#imm8 F2MC-16F: ・POPW PS ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 84 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l • 次の 2 つの条件を一度に満たす場合にもブレークしません。 - ブレークポイントを設定する命令が奇数番地から始まっている場合 - 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに 既にブレークポイントが設定されている場合 (この既に設定されているブレークポイントは,命令先頭以外のブレークポイント ですから , ブレークしない無効なブレークポイントです。) ● 異常なブレークポイント • 次に示すストリング系の命令の直後の命令にブレークポイントを設定すると , スト リング命令を最後まで実行せずに , ストリング命令の途中でブレークすることがあ ります。 F2MC-16/16L/16LX/16H: ・MOVS ・MOVSW ・SECQ ・SECQW ・WBTS ・MOVSI ・MOVSWI ・SECQI ・SECQWI ・WBTC ・MOVSD・MOVSWD・SECQD ・SECQWD ・FILS F2MC-16F: 上記のものと ・FILSI ・MOVM ・FILSW ・FILSWI ・MOVMW 次に , ほかのコマンドに影響を及ぼす注意事項について説明します。 ● 危険なブレークポイント • 命令の先頭以外のアドレスにブレークポイントを設定しないでください。 そのブレークポイントが , 2 バイト長以上の命令の最後の 1 バイトで , かつ , そのア ドレスが偶数番地の場合は , 次のような異常動作の原因になります。 - その命令を STEP コマンドでステップ実行すると , 命令実行が中断せずに実行を 続けます。 - GO コマンドで指定できるブレークポイントをこの命令の直後の命令に設定して も , そのブレークポイントではブレークしません。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 July 1, 2014, CM41-00313-8 85 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al データブレーク 2.2.5.2 データブレークとは , プログラム実行中に指定したアドレスに対しデータアクセス ( リードまたはライト ) が行われた場合にプログラム実行を中断させる機能です。 ■ データブレークとは データブレークは , 指定アドレスを MCU がデータアクセスした場合にプログラム実行 を中断させる機能です。 データブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by databreak at アクセスアドレス データブレークの設定可能数は以下のとおりです。 データ属性のデバッグ領域内 : 65535 個 それ以外の領域 :6個 ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「3.10 SET DATABREAK (type2)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ データ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 86 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l シーケンシャルブレーク 2.2.5.3 シーケンシャルブレークとは , イベントのシーケンシャル制御により , シーケンシャ ル条件が成立した場合に , プログラム実行を中止させる機能です。 ■ シーケンシャルブレークとは イベントのシーケンシャル制御により , シーケンシャル条件が成立した場合に , プログ ラム実行を中止させる機能です。SET MODE コマンドで設定するイベントモードが ノーマルモードの場合に使用できます。 シーケンシャルブレークでブレークした場合 , ステータスバーに次のメッセージが表 示されます。 Break at アドレス by sequential break(level= レベル番号 ) シーケンシャルブレーク機能についての詳細は「2.2.7 シーケンサによる制御」を参照 してください。 ■ 設定方法 シーケンシャルブレークの設定は次の手順で行います。 1. イベントモードの設定 (SET MODE) 2. イベントの設定 (SET EVENT) 3. シーケンサの設定 (SET SEQUENCE) July 1, 2014, CM41-00313-8 87 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ガーデッドアクセスブレーク 2.2.5.4 ガーデッドアクセスブレークとは , 設定したアクセス属性に違反してアクセスが行わ れた場合 , およびガーデッド ( 未定義エリアのアクセス不可 ) 領域をアクセスした場 合に起こるプログラム実行の中断のことです。 ■ ガーデッドアクセスブレークとは ガーデッドアクセスブレークとは , [ 環境 ] - [ デバッガのメモリマップ ] メニューで 設定したアクセス属性に違反してアクセスが行われた場合 , およびガーデッド ( 未定義 エリアのアクセス不可 ) 領域をアクセスした場合に起こるプログラム実行の中断のこ とです。 ガーデッドアクセスブレークには以下の 3 種類があります。 コードガーデッド コード属性を持たない領域に対し , 命令実行を行った場合にブレークする リードガーデッド リード属性を持たない領域に対し , 読出しを行った場合にブレークする ライトガーデッド ライト属性を持たない領域に対し , 書込みを行った場合にブレークする プログラム実行中に , ガーデッドアクセスが起こると , ステータスバーに次のメッセー ジを表示してプログラム実行を中断します。 Break at アドレス by guarded access {code/read/write} at アクセスアドレス <注意事項> コードガーデッドは , プリフェッチの影響を受けます。 F2MC-16L/16LX/16/16H ファミリでは , 最大 4 バイトまでプリフェッチするため , プログ ラム領域をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 5 バイト ) に設定してください。 また F2MC-16F ファミリでも , 最大 8 バイトまでプリフェッチするため , プログラム領域 をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 9 バイト ) に設定してください。 88 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l トレースバッファフルブレーク 2.2.5.5 トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 ■ トレースバッファフルブレークとは トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 トレースバッファフルブレークでブレークした場合,ステータスバーに次のメッセージ が表示されます。 Break at アドレス by trace buffer full ■ 設定方法 トレースバッファフルブレークの制御は次の方法で行います。 • コマンド - SET TRACE/BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.29 SET TRACE (type1)」を参照してください。 • ダイアログ - トレース設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 July 1, 2014, CM41-00313-8 89 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.5.6 S up po r t M a nu al パフォーマンスバッファフルブレーク パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム 実行を中断する機能です。 ■ パフォーマンスバッファフルブレークとは パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム実 行を中断する機能です。 パフォーマンスバッファフルブレークでブレークした場合,ステータスバーに次のメッ セージが表示されます。 Break at アドレス by performance buffer full ■ 設定方法 パフォーマンスバッファフルブレークの制御は次の方法で行います。 • コマンド - SET PERFORMANCE/BREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「4.7 SET PERFORMANCE (type1)」を参照してください。 • ダイアログ - パフォーマンス設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.13 パフォーマンス」を参照して ください。 90 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 強制ブレーク 2.2.5.7 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request <注意事項> MCU が低消費電力モード中およびホールド状態での強制ブレークはできません。プログ ラム実行中 , [ デバッグ ] - [ 停止 ] メニューによって強制ブレークを要求した場合 , 低消費 電力モード , ホールド状態であれば [ デバッグ ] - [ 停止 ] メニューは無視されます。どう してもブレークさせたい場合は , [ デバッグ ] - [ 停止 ] メニュー入力後 , ユーザシステム側 で要因を解除するか , [ デバッグ ] - [MCU のリセット ] メニューを用いて要因を解除して ください。実行中に低消費電力モード , ホールド状態になった場合は , ステータスバーに 状態が表示されます。 July 1, 2014, CM41-00313-8 91 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al イベント 2.2.6 MCU のバスの動作を監視して , 指定した条件でトリガを発生させることができま す。この機能をイベントとよびます。 本エミュレータでは , イベントトリガを次の機能に使用しており , どの機能に使用す るかはイベントモードにより決まります。 • シーケンサ • マルチトレースのサンプリング条件 • パフォーマンス測定の測定ポイント ■ イベントの設定 イベントは最大 8 個設定できます。 イベントに設定できる条件を表 2.2-5 に示します。 表 2.2-5 イベントに設定できる条件 条件 内容 アドレス メモリ位置 ( アドレスビットマスク可能 ) データ 8 ビットデータ ( データビットマスク可能 ) NOT 指定可能 ステータス データリード , データライト , 命令実行 , データモディファイ より選択 外部プローブ 8 ビットデータ ( ビットマスク可能 ) <注意事項> • 命令実行は , 命令が実行された場合だけイベントトリガが発生します。ほかのステータ スと同時には , 指定できません。 • データモディファイとは , 指定アドレスのデータが書き換わった場合に , イベントトリ ガを発生させる機能です。ステータスにデータモディファイを指定した場合は , データ 指定は無視されます。ほかのステータスと同時には , 指定できません。 イベントの設定は次のコマンドで行います。 92 SET EVENT … イベントの設定 SHOW EVENT … イベント設定状態の表示 CANCEL EVENT … イベントの削除 ENABLE EVENT … イベントを無効にする。 DISABLE EVENT … イベントを有効にする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 【例】 >SET EVENT 1, func1 >SET EVENT/WRITE 2,data[2],!d=h'10 >SET EVENT/MODIFY 3,102 イベントの設定はイベントウィンドウでも行うことができます。 ■ イベントモード イベントモードは次の 3 種類があり , イベントトリガをどの機能に使用するかを SET MODE コマンドで選択します。起動時は , ノーマルモードになっています。 イベントの設定値は , イベントモードごとに持っているため , イベントモードを切り換 えるとイベントの設定も切り換わります。 ● ノーマルモード イベントトリガをシーケンサに使用します。 シーケンサは 8 レベルの制御ができるため , シーケンサにより , シーケンシャルブレー ク , 時間測定 , トレースサンプリング制御ができます。 なお , ノーマルモード時のリアルタイムトレースは , シングルトレース ( プログラム実 行を連続的にサンプリングするトレース機能 ) となります。 ● マルチトレースモード イベントトリガをマルチトレース ( イベントトリガ発生時の前後のデータをサンプリ ングするトレース機能 ) に使用します。 ● パフォーマンスモード イベントトリガをパフォーマンス測定に使用します。2 つのイベントトリガ発生間の時 間測定 , イベントトリガ発生回数が測定できます。 July 1, 2014, CM41-00313-8 93 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ノーマルモード時の動作 2.2.6.1 図 2.2-3 に示すように , ノーマルモードで設定されたイベントのトリガは , シーケン サへの入力となります。シーケンサでは , イベントトリガ発生時の動作として , 任意 のレベルへの分岐 , シーケンサの終了が指定できます。これによりプログラムのある 流れに着目したデバッグ ( ブレーク , トレースの限定 , 時間測定 ) ができます。 ■ ノーマルモード時の動作 シーケンサ終了時は , ディレイカウンタへのトリガとなります。 ディレイカウンタのカウントが指定数だけカウントされると,シングルトレースのサン プリングが終了します。この場合 , 通常はブレークしますが , ブレークせずに実行を継 続することもできます。 図 2.2-3 ノーマルモード時の動作 SET TRACE SHOW TRACE/STATUS DISABLE TRACE ENABLE TRACE SHOW TRACE/DATA イネーブル/ディセーブル制御 バッファフルブレーク制御 SET SEQUENCE/NO TRACE SET SEQUENCE/ENABLE TRACE CLEAR TRACE SET SEQUENCE/DISABLE TRACE SEARCH TRACE SHOW SEQUENCE レベル SET EVENT シングルトレース測定 イネーブル/ディセーブル制御 測定終了 CANCEL EVENT CANCEL SEQUENCE/TIMER SET SEQUENCE/TIMER 各レベルのトリガとなる イベント番号の選択と パスカウント値の設定 有効 イベント 無効 各レベルの各条件成立時 各タイマの 条件設定 ディレイ カウンタ シーケンサ SET SEQUENCE/EVENT カウント終了時 条件成立時 カウント終了時 タイマ ラッチ MCU動作 停止指令 CANCEL SEQUENCE/EVENT DISABLE EVENT ENABLE EVENT SHOW SEQUENCE/ALL SHOW DELAY SET DELAY SHOW EVENT ■ ノーマルモード時に使用できるイベント関連コマンド ノーマルモード時のリアルタイムトレース機能は , シングルトレース機能となるため , その制御を行うコマンドが利用できます。 ノーマルモード時に使用できる , イベントに関係するコマンドを表 2.2-6 に示します。 94 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 表 2.2-6 ノーマルモード時に使用できるイベント関連コマンド モード ノーマル モード July 1, 2014, CM41-00313-8 使用できるコマンド 機能 SET EVENT SHOW EVENT CANCEL EVENT ENABLE EVENT DISABLE EVENT イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET SEQUENCE SHOW SEQUENCE CANCEL SEQUENCE ENABLE SEQUENCE DISABLE SEQUENCE シーケンサの設定 シーケンサ設定状態の表示 シーケンサの取消し シーケンサを有効にする。 シーケンサを無効にする。 SET DELAY SHOW DELAY ディレイカウントの設定 ディレイカウント設定状態の表示 SET TRACE SHOW TRACE SEARCH TRACE ENABLE TRACE DISABLE TRACE CLEAR TRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレース機能を有効にする。 トレース機能を無効にする。 トレースデータをクリアする。 95 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al マルチトレースモード時の動作 2.2.6.2 イベントモードにマルチトレースモードを設定すると , リアルタイムトレース機能は , マルチトレース機能となり , イベントは , マルチトレースのトリガとして使用されま す。 ■ マルチトレースモード時の動作 マルチトレースとは,イベントトリガ発生時の前後のデータをサンプリングするトレー ス機能です。 イベントモードにマルチトレースモードを設定すると , リアルタイムトレース機能は , マルチトレース機能となり,イベントは,マルチトレースのトリガとして使用されます。 図 2.2-4 マルチトレースモード時の動作 SHOW MULTITRACE/STATUS ENABLE MULTITRACE CANCEL EVENT SET EVENT SET MULTITRACE DISABLE MULTITRACE イネーブル/ディセーブル制御 有効 イベント 無効 バッファフルブレーク制御 MCU 動作停止 指令 有効なイベントが すべてトリガ容認になる マルチトレース測定 SEARCH MULTITRACE DISABLE EVENT CLEAR MULTITRACE ENABLE EVENT SHOW MULTITRACE SHOW EVENT ■ マルチトレースモード時に使用できるイベント関連コマンド マルチトレースモード時に使用できる , イベントに関係するコマンドを表 2.2-7 に示し ます。 96 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 表 2.2-7 マルチトレースモード時に使用できるイベント関連コマンド モード マルチ トレース モード July 1, 2014, CM41-00313-8 使用できるコマンド 機能 SET EVENT SHOW EVENT CANCEL EVENT ENABLE EVENT DISABLE EVENT イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET MULTITRACE SHOW MULTITRACE SEARCH MULTITRACE ENABLE MULTITRACE DISABLE MULTITRACE CLEAR MULTITRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレース機能を有効にする。 トレース機能を無効にする。 トレースデータをクリアする。 97 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al パフォーマンスモード時の動作 2.2.6.3 パフォーマンスモードで設定されたイベントのトリガはパフォーマンス測定に使用 します。2 つのイベント発生間の時間測定 , イベントの発生回数が測定できます。 ■ パフォーマンスモード時の動作 パフォーマンスモードで設定されたイベントのトリガは,パフォーマンス測定に使用し ます。2 つのイベント発生間の時間測定 , イベントの発生回数が測定できます。 図 2.2-5 パフォーマンスモード時の動作 SHOW PERFORMANCE/STATUS SET EVENT SET PERFORMANCE CANCEL EVENT バッファフルブレーク制御 有効 次の組合せに限定 1,2 3,4 5,6 7,8 イベント 無効 DISABLE EVENT MCU 動作停止 指令 パフォーマンス測定 CLEAR PERFORMANCE ENABLE EVENT SHOW PERFORMANCE SHOW EVENT ■ パフォーマンスモード時に使用できるイベント関連コマンド パフォーマンスモード時に使用できる , イベントに関係するコマンドを表 2.2-8 に示し ます。 98 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 表 2.2-8 パフォーマンスモード時に使用できるイベント関連コマンド モード パフォーマンス モード July 1, 2014, CM41-00313-8 使用できるコマンド 機能 SET EVENT SHOW EVENT CANCEL EVENT ENABLE EVENT DISABLE EVENT イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET PERFORMANCE SHOW PERFORMANCE CLEAR PERFORMANCE パフォーマンスの設定 パフォーマンス設定状態の表示 パフォーマンス測定データをクリア する。 99 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.7 S up po r t M a nu al シーケンサによる制御 本エミュレータは , イベントの制御を行うシーケンサを持っています。 このシーケンサにより , プログラムのある流れ ( シーケンス ) に着目したブレーク , 時間測定 , トレースのサンプリング制御ができます。この機能により発生するブレー クのことをシーケンシャルブレークとよびます。 この機能を使用するには , SET MODE コマンドで設定するイベントモードをノーマ ルモードにします。また , イベントは , SET EVENT コマンドで設定します。 ■ シーケンサによる制御 表 2.2-9 に示すように 8 レベルの制御ができます。 1 つのレベルには 8 個のイベントと 1 つのタイマ条件の合計 9 条件が設定できます。 タイマ条件は , そのレベルに入ってからタイマのカウントを開始し , 設定時間になった 時点で条件が成立します。 各条件ごとに条件成立時の動作を指定でき , 以下のどちらかを選択できます。 • 任意のレベルに移動 • シーケンサの終了 1 レベルに設定した条件は OR で判定され , 1 つでも条件が成立した場合は , 任意のレ ベルへ移動するかシーケンサが終了します。また , 条件成立時にトレースサンプリング の中断 / 再開の制御ができます。 表 2.2-9 シーケンサの仕様 機能 仕 様 レベル数 8 レベル 1 レベルの条件 イベント 8 条件 ( 各条件ごとに 1 ~ 16777216 回のパ スカウントが指定可能 ) タイマ 1 条件 (1 s 単位で 16s まで指定または , 100ns 単位で 1.6s まで指定可能 ) * 条件成立時の動作 任意のレベルへ分岐またはシーケンサの終了 トレースサンプリング制御 その他の機能 レベル分岐時にタイマのラッチが可能 シーケンス終了時の動作 ディレイカウンタの開始 *: タイマ値は , SET TIMERSCALE コマンドにより最小測定単位を 1s, 100ns のどちら かに設定できます。 100 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l シーケンサの設定 2.2.7.1 シーケンサは以下の順で動作します。 1) プログラム実行の開始と同時にレベル 1 からシーケンサがスタートします。 2) 各レベルの設定により条件成立時に任意のレベルへ分岐します。 3) シーケンサの終了が設定されている条件が成立した場合は , シーケンサが終了し ます。 4) シーケンサ終了時は , ディレイカウンタのカウントが開始されます。 ■ シーケンサの設定 図 2.2-6 に , シーケンサの動作を示します。 図 2.2-6 シーケンサの動作 プログラム実行の開始(シーケンサのスタート) 条件の設定 条件成立時の動作 [イベント番号1を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号2を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号3を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号4を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号5を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号6を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号7を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] [イベント番号8を使用?] → [パスカウンタ] [トレース制御] / [分岐レベル番号] タイマ条件[待ち時間] [トレース制御] / [分岐レベル番号] シーケンサの終了 指定レベルへ分岐 ディレイカウントの開始 ( 設定例 ) イベント 1 発生時にシーケンサを終了させる。 >SET SEQUENCE/EVENT 1,1,J=0 イベント 2 が 16 回発生時にシーケンサを終了させる。 >SET SEQUENCE/EVENT 1,2,16,J=0 イベント 1 が発生後 , イベント 2 が発生した場合にシーケンサを終了させる。ただし , イベント 1 とイベント 2 の間にイベント 3 が発生した場合にはシーケンサを終了させ ない。 July 1, 2014, CM41-00313-8 101 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al >SET SEQUENCE/EVENT 1,1,J=2 >SET SEQUENCE/EVENT 2,2,J=0 >SET SEQUENCE/EVENT 2,3,J=1 イベント 1 が発生後 , 300s 経過する前に , イベント 2 が発生した場合にシーケンサを 終了させる。 >SET SEQUENCE/EVENT 1,1,J=2 >SET SEQUENCE/EVENT 2,2,J=0 >SET SEQUENCE/TIMER 2,300,J=1 >SHOW SEQUENCE Sequencer Enable level1 レベル1でイ ベント1が発 生した場合レ ベル1へ移動 することを示 します。 level2 level3 level4 level5 level6 level7 level8 1 |1|->2 | | | | | | | | | | | | | | 2 | | |2|->end | | | | | | | | | | | | 3 | | | | | | | | 4 | | | | | | | | 5 | | | | | | | | 6 | | | | | | | | | | | | | | | | 7 | | | | | | | | | | | | | | | | 8 | | | | | | | | | | | | | | | | T | | |T|->1 | | | | | | | | | | | | Latch 1 ( -> ) = | | | | | | レベル2でイベント2が発 | | | | | | 生した場合にシーケンサを 終了することを示します。 | | | | | | | | | | | | Latch 2 ( -> ) = >SHOW SEQUENCE 2 level no. = 2 102 event pass-count 2 1 レベル2においてイベント2が発 生する前に300µs経過した場合に trace-cnt1 jmp-level1 レベル1に移動します。 enable end timer 00:00:000:300:000 enable 1 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l シーケンサによるブレーク 2.2.7.2 シーケンサ終了時にプログラムの実行を中断できます。このブレークをシーケン シャルブレークとよびます。 ■ シーケンサによるブレーク シーケンサ終了時にプログラムの実行を中断できます。このブレークをシーケンシャ ルブレークとよびます。 図 2.2-7 に示すように , シーケンサが終了するとディレイカウントが開始され , ディレ イカウント終了後は , [ ブレークする ] または [ トレースだけ終了し , ブレークしない ] のどちらかの動作となります。 シーケンサ終了時に即座にブレークさせる場合は , ディレイカウントを 0 に , また , ディ レイカウント終了後 , ブレークするという指定を行う必要があります。ディレイカウン トとディレイカウント後の動作の設定は , SET DELAY コマンドで行います。 なお , 本プログラムの起動時の設定は , ディレイカウント 0, ディレイカウント後ブレー クする設定になっています。 図 2.2-7 シーケンサ終了時の動作 ディレイ カウンタ シーケンサ 終了 トレース終了 ブレークする (シーケンシャルブレーク) カウント 終了 トレース終了 ブレークしない ( ディレイカウント設定例 ) シーケンサ終了時にブレークする。 >SET DELAY/BREAK 0 シーケンサ終了から 100 バスサイクル分トレースを行ってからブレークする。 >SET DELAY/BREAK 100 シーケンサ終了時にトレースは終了するが , ブレークしない。 >SET DELAY/NOBREAK 0 シーケンサ終了から 100 バスサイクル分トレースを行ってからトレースだけ終了し , ブ レークしない。 >SET DELAY/NOBREAK 100 July 1, 2014, CM41-00313-8 103 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al シーケンサによるトレースサンプリング制御 2.2.7.3 イベントモードがノーマルモードの場合 , リアルタイムトレースは , シングルトレー スとよばれるトレースを行います。 シングルトレースは , トレース機能が有効になっていれば , プログラム実行の開始か ら , プログラム実行が中断するまで , すべてのデータをサンプリングします。 ■ シーケンサによるトレースサンプリング制御 シーケンサの各レベルの各条件ごとにトレースサンプリングの中断 / 再開が設定でき ます。トレースサンプリングの様子を図 2.2-8 に示します。 例えば , イベント 1 が発生すると , トレースサンプリングを中断し , イベント 2 が発生 した場合に , トレースサンプリングを再開するというように , サンプリングするトレー スデータを限定できます。 図 2.2-8 トレースサンプリング制御 (1) スタート 中断 ↓ ↓ 再開 ↓ 中断 ↓ 再開 中断 ↓ ↓ プログラムの流れ トレースバッファ 図 2.2-9 に示すように実行開始から , 最初の条件が発生するまでの間 , トレースサンプ リングを行わないことができます。設定は , GO コマンドまたは , SET GO コマンドで 行います。 (例) >GO/DISABLETRACE >SET GO/DISABLETRACE >GO 図 2.2-9 トレースサンプリング制御 (2) スタート 再開 ↓ ↓ 中断 再開 中断 ↓ ↓ ↓ 再開 中断 ↓ ↓ プログラムの流れ トレースバッファ 104 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ( 設定例 ) イベント 1 が発生時にトレースサンプリングを中断し , イベント 2 からイベ ント 3 までのデータをサンプリングする。 スタート レベル1 イベント1発生 NO YES トレースサンプリング中断 レベル2 イベント2発生 NO YES トレースサンプリング再開 レベル3 イベント3発生 NO YES トレースサンプリング中断 >SET SEQUENCE/EVENT/DISABLETRACE 1,1,J=2 >SET SEQUENCE/EVENT/ENABLETRACE 2,2,J=3 >SET SEQUENCE/EVENT/DISABLETRACE 3,3,J=2 July 1, 2014, CM41-00313-8 105 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.7.4 S up po r t M a nu al シーケンサによる時間測定 シーケンサを利用して時間測定ができます。時間測定には , エミュレーションタイマ とよばれる時間測定用のタイマを使用し , 指定レベルから指定レベルへ分岐した場合 に , このタイマの値を取り込みます。エミュレーションタイマの値は , 2 つまで取り 込めます。この機能をタイマのラッチ機能とよびます。 ■ シーケンサによる時間測定 タイマのラッチを利用することにより , 複雑なプログラムの流れの中のある 2 ポイント 間の時間を測定できます。 タイマをラッチするタイミングの設定は , SET SEQUENCE コマンドで , ラッチしたタ イマ値の表示は , SHOW SEQUENCE コマンドで行います。 エミュレーションタイマはプログラム実行の開始時にクリアされ,カウントを開始しま す。また , エミュレーションタイマの計測最小単位を 1s, 100ns のどちらかに設定でき ます。計測単位の設定は , SET TIMERSCALE コマンドで行います。 1s に設定すると最大約 70 分 , 100ns に設定すると最大約 7 分までカウントできます。 測定中にタイマがオーバフローした場合は , SHOW SEQUENCE コマンドでタイマ値を 表示する場合に , 警告メッセージを表示します。 106 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.7.5 S u p p o r t M a n u a l シーケンサによる時間測定例 イベント 1 →イベント 2 →イベント 3 の順に実行した場合にイベント 1 からイベン ト 3 までの実行時間を測定します。ただし , 途中でイベント 4 が発生した場合は , 測 定しません。 ■ シーケンサによる時間測定例 スタート レベル1 イベント1発生 NO YES レベル1から2へ分岐(タイマのラッチ1) レベル2 YES イベント4発生 イベント2発生 NO YES レベル3 YES イベント4発生 イベント3発生 NO YES レベル3でシーケンサ終了(タイマのラッチ2) エンド July 1, 2014, CM41-00313-8 107 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al >SET SEQUENCE/EVENT 1,1,J=2 >SET SEQUENCE/EVENT 2,4,J=1 >SET SEQUENCE/EVENT 2,2,J=3 >SET SEQUENCE/EVENT 3,4,J=1 >SET SEQUENCE/EVENT 3,2,J=0 >SET SEQUENCE/LATCH 1,1,2 レベル3でイベント3が発生し た場合にシーケンサを終了し, タイマをラッチすることを示し ます。 >SET SEQUENCE/LATCH 2,3,0 >SHOW SEQUENCE Sequencer Enable レベル1でイ ベント1が発 生した場合レ ベル2へ移動 し,タイマをラ ッチすること を示します。 level1 level2 level3 level4 level5 level6 level7 level8 1 |1|#>2 | | | | | | | | | | | | | | 2 | | |2|->3 | | | | | | | | | | | | 3 | | | | |3|#end | | | | | | | | | | 4 | | |4|->1 |4|->1 | | | | | | | | | | 5 | | | | | | | | | | | | | | | | 6 | | | | | | | | | | | | | | | | 7 | | | | | | | | | | | | | | | | 8 | | | | | | | | | | | | | | | | T | | |T|->1 | | | | | | | | | | | | Latch 1 (1->2) = 00m02s060ms379.0µs Latch 2 (3->E) = 00m16s040ms650.0µs タイマラッチ1とタイマラッチ2の時間を表示します。 ラッチ2の時間からラッチ1の時間を引いたものが実行時間となります。 時間は次のように表示されます。 00m 00s 000ms 000.0µs ↑ ↑ ↑ ↑ 分 秒 µ秒 m 秒 108 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e 2.2.8 S u p p o r t M a n u a l リアルタイムトレース プログラム実行中にアドレス , データ , ステータス情報と外部プローブによりサンプ リングしたデータをマシンサイクル単位にサンプリングし , トレースバッファに記録 できます。この機能をリアルタイムトレースとよびます。 リアルタイムトレースにより記録したデータからプログラム実行履歴を詳細に解析 できます。 トレースサンプリングには , プログラム実行の開始から終了までをトレースするシン グルトレースとイベントが発生した場合にトレースするマルチトレースの 2 種類の トレース方法があります。 ■ トレースバッファ マシンサイクル単位にサンプリングして記録したデータをフレームとよびます。 トレースバッファは 32K(32768) フレーム分の容量があります。 トレースバッファはリング状の構造となっているので,トレースバッファがいっぱいに なった場合は自動的にトレースバッファの先頭から上書きされて記録されます。 ■ トレースデータ トレース機能でサンプリングされるデータをトレースデータとよびます。 次のデータがサンプリングされます。 • アドレス • データ • ステータス情報 アクセスステータス : リード / ライト / 内部アクセスなど デバイスステータス : 命令実行 , リセット , ホールドなど キューステータス : 命令キューの残りバイト数など データ有効サイクル情報 : データの有効 / 無効 (データ信号はほかの信号と共用して使用されるため,必ずしもデータ情報が出てい るとは限りません。したがって , データ情報が有効であるか無効であるかを示す情 報をサンプリングしています。) • 外部プローブデータ • シーケンサの実行レベル July 1, 2014, CM41-00313-8 109 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ■ トレースされないデータ 次のものはトレースバッファ内にそのアクセスが残りません。 • ツールホールド後のデータ F2MC-16/16L/16LX/16H/16F ファミリのチップは , ブレークなどで MCU の動作を停 止させた ( ツールホールド ) 直後に , 次のような動作を行います。このデータは , トレースバッファから削除していますので表示されません。 - 100 番地に対するアクセス - FFFFDC ~ FFFFFF に対するアクセス • ネイティブモード時のアクセスデータの一部 F2MC-16/16L/16LX/16H/16F ファミリのチップは , ネイティブモードで動作するとき に , 内部で複数のバスが同時に動作することがありますが , 本エミュレータでは , 内 部 ROM 用のバス監視を優先します。したがって , このとき同時にアクセスされた ほかのバス内容をサンプリングしないことがあります。( デバッグモード時は , すべ ての動作がサンプリングされます。) 110 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l シングルトレース 2.2.8.1 シングルトレースでは , プログラムの実行開始から実行停止までの間 , すべてのデー タをトレースします。 ■ シングルトレース SET MODE コマンドで設定するイベントモードをノーマルモードにすることによりシ ングルトレースとなります。 シングルトレースでは , プログラムの実行開始から実行停止までの間 , すべてのデータ をトレースします。 リアルタイムトレース機能が有効になっていれば GO, STEP, CALL コマンド実行中は いつもデータがサンプリングされ , トレースバッファに記録されます。 図 2.2-10 に示すように , イベントのシーケンサによる制御によりトレースサンプリン グ中断 / 再開の制御ができます。また , シーケンサ終了のトリガ発生からトレースが終 了するまでにディレイを設定できるため,あるイベント発生後のプログラムの流れをト レースできます。ディレイカウントは , バスサイクル単位でカウントされるため , サン プリングされるトレースデータ数と一致します。ただし,シーケンサが終了する時点で, トレースサンプリングが中断されていた場合は , ディレイカウント中は , なにもサンプ リングされません。 ディレイカウント終了後 , 通常はシーケンシャルブレークによりブレークしますが , ブ レークさせずにトレースだけ終了させることができます。 また,トレースバッファがいっぱいになった場合にプログラムをブレークさせることが できます。このブレークをトレースバッファフルブレークとよびます。 図 2.2-10 シングルトレース時のサンプリング ディレイカウンタ シーケンサ サンプリング サンプリング 実行開始 中断 再開 シーケンサ終了 トレース トリガ 終了 プログラムの流れ トレースバッファ ディレイ July 1, 2014, CM41-00313-8 111 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ■ シングルトレース時のフレーム番号とステップ番号 サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースバッファ中のどの位置から表示するかの指定は , フレーム番号により行いま す。シーケンサ終了のトリガ発生位置のトレースデータには 0 番が , トリガ発生位置に 到達するまでにサンプリングされたトレースデータには負の番号が,トリガ発生位置以 降にサンプリングされたデータには正の番号が付けられます ( 図 2.2-11 を参照 )。 シーケンサ終了のトリガ位置がない場合は,最後にサンプリングされたトレースデータ が 0 となります。 図 2.2-11 シングルトレース時のフレーム番号 ・ ・ ・ -3 -2 -1 0 (トリガ発生位置) +1 +2 +3 ・ ディレイフレーム ・ ・ また本プログラムでは , シングルトレース結果を解析して , 実行命令単位にバッファ内 容を並べ変えることができます ( ただし , MCU 実行モードがデバッグモード時に限り ます )。このモードでは次の情報を 1 単位として , その情報ごとに番号が付けられます。 この番号をステップ番号とよびます。 実行命令ニーモニック情報 データアクセス情報 デバイスステータス情報 ステップ番号には , シーケンサ終了のトリガ発生位置の情報には 0 番が , トリガ発生位 置に到達するまでにサンプリングされた情報には負の番号が,トリガ発生位置以降にサ ンプリングされた情報には正の番号が付けられます。シーケンシャル終了のトリガ位 置がない場合は , 最後にサンプリングされた情報が 0 となります。 112 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l シングルトレースの設定方法 2.2.8.2 シングルトレースを行うには , 1) ~ 4) の設定をします。その後 , プログラムの実行 を行うとトレースデータがサンプリングされます。 1) イベントモードをノーマルモードにします。 2) トレース機能を有効にします。 3) イベントおよびシーケンサ , ディレイカウントの設定を行います。 4) トレースバッファフルブレークの設定を行います。 ■ シングルトレースの設定方法 シングルトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行う とトレースデータがサンプリングされます。 1. イベントモードをノーマルモードにします。 設定は SET MODE コマンドで行います。 2. トレース機能を有効にします。 設定は , ENABLE TRACE コマンドで行います。 無効にする場合は , DISABLE TRACE コマンドで行います。 本プログラム起動時は , 有効になっています。 3. イベントおよびシーケンサ , ディレイカウントの設定を行います。 イベントのシーケンサを設定すると , トレースのサンプリング制御が行えます。必 要がない場合は , 設定する必要はありません。 イベントの設定は , SET EVENT コマンドで , シーケンサの設定は , SET SEQUENCE コマンドで行います。 シーケンサ終了からトレース終了までのディレイカウント , ディレイカウント終了 時のブレーク動作 ( ブレークするか , しないか ) の設定をします。イベント発生後 のデータが必要ない場合は , 設定する必要はありません。 ブレーク動作をブレークしないにすると , トレースだけ終了しブレークしません。 オンザフライでトレースデータを確認する場合に設定します。 設定は , SET DELAY コマンドで行います。 <注意事項> シーケンサ終了によりブレーク ( シーケンシャルブレーク ) した場合 , 最後に実行された マシンサイクルはサンプリングされません。 4. トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになった場合に , ブレークさせることができます。設 定は , SET TRACE コマンドで行います。本プログラム起動時は , ブレークしない設 定になっています。設定状態は , SHOW TRACE/STATUS で表示できます。 July 1, 2014, CM41-00313-8 113 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al 表 2.2-10 にシングルトレース時のトレースに関係するコマンドを示します。 表 2.2-10 シングルトレース時に使用できるトレース関係のコマンド 使用できるコマンド 114 機能 SET EVENT SHOW EVENT CANCEL EVENT ENABLE EVENT DISABLE EVENT イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET SEQUENCE SHOW SEQUENCE CANCEL SEQUENCE ENABLE SEQUENCE DISABLE SEQUENCE シーケンサの設定 シーケンサ設定状態の表示 シーケンサの取消し シーケンサを有効にする。 シーケンサを無効にする。 SET DELAY SHOW DELAY ディレイカウント値 , ディレイ後の動作の設定 ディレイカウントの設定状態の表示 SET TRACE SHOW TRACE SEARCH TRACE ENABLE TRACE DISABLE TRACE CLEAR TRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレース機能を有効にする。 トレース機能を無効にする。 トレースデータをクリアする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l マルチトレース 2.2.8.3 マルチトレースでは , イベントトリガが発生した場合だけ , そのイベントトリガの前 後 8 フレーム分のデータをサンプリングします。 ■ マルチトレース SET MODE コマンドで設定するイベントモードをマルチトレースモードにすることに よりマルチトレースが行えます。 マルチトレースでは , イベントトリガが発生した場合だけ , そのイベントトリガの前後 8 フレーム分のデータをサンプリングします。 連続した実行のトレースではなく,ある変数アクセスが発生したときだけトレースする というような場合に使用します。 1 回のイベントトリガ発生でサンプリングされたトレースデータ (16 フレーム ) をブ ロックとよびます。トレースバッファは 32K フレーム分あるため , 最大 2048 ブロック サンプリングできます。 マルチトレースのサンプリングは , トレースバッファがいっぱいになると終了します。 この場合にプログラムの実行をブレークさせることもできます。 図 2.2-12 マルチトレース時のサンプリング 実行開始 ↓ イベント1 イベント2 ↓ ↓ イベント3 ↓ プログラムの流れ トレースバッファ ブロック ■ マルチトレース時のフレーム番号 1 回のイベント発生で , 16 フレーム分のデータがサンプリングされます。この 1 つの単 位をブロックといい , サンプリングされたブロックごとに 0 から番号が付けられます。 これをブロック番号とよびます。 1 つのブロックには , イベントトリガ発生位置を中心に前後 8 フレームのデータがサン プリングされています。イベントトリガ発生位置を 0, イベントトリガ発生位置に到達 するまでにサンプリングされたトレースデータには負の番号が,イベントトリガ発生位 置以降にサンプリングされたデータには正の番号が付けられます。このフレーム番号 をローカル番号とよびます ( 図 2.2-13 参照 )。 ローカル番号とは別に , トレースバッファ中の一番古いデータより 1 から順に付けられ ているフレーム番号があります。これをグローバル番号とよびます。トレースバッファ は32K分ありますので, 1~32768のフレーム番号が付けられています(図 2.2-13 参照)。 July 1, 2014, CM41-00313-8 115 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al どのフレームのデータを表示するかは , グローバル番号か , ブロック番号とローカル番 号により指定します。 図 2.2-13 マルチトレース時のフレーム番号 ブロック番号 トレースバッファ フレーム番号 グローバル番号 ローカル番号 1 2 : 2048 116 1 2 : : 8 : : 15 16 17 18 : : 24 : : 31 32 -7 -6 : : 0 : : +7 +8 -7 -6 : : 0 : : +7 +8 32752 32753 : : 32759 : : 32767 32768 -7 -6 : : 0 : : +7 +8 ← イベントトリガ ← イベントトリガ ← イベントトリガ CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l マルチトレースの設定方法 2.2.8.4 マルチトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行う とトレースデータがサンプリングされます。 1. イベントモードをマルチトレースモードにします。 2. トレース機能を有効にします。 3. イベントの設定を行います。 4. トレースバッファフルブレークの設定を行います。 ■ マルチトレースの設定方法 マルチトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行うと トレースデータがサンプリングされます。 1. イベントモードをマルチトレースモードにします。 設定は SET MODE コマンドで行います。 2. トレース機能を有効にします。 設定は , ENABLE MULTITRACE コマンドで行います。 無効にする場合は , DISABLE MULTITRACE コマンドで行います。 3. イベントの設定を行います。 マルチトレースをサンプリングするイベントを設定します。 設定は , SET EVENT コマンドで行います。 4. トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになったときに,ブレークさせたい場合を設定します。 SET MULTITRACE コマンドにより設定します。 マルチトレースモードで使用できるトレースに関係するコマンドを表 2.2-11 に示しま す。 表 2.2-11 マルチトレース時に使用できるトレース関係のコマンド 使用できるコマンド 機能 SET EVENT SHOW EVENT CANCEL EVENT ENABLE EVENT DISABLE EVENT イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET MULTITRACE SHOW MULTITRACE SEARCH MULTITRACE ENABLE MULTITRACE DISABLE MULTITRACE CLEAR MULTITRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 マルチトレースを有効にする。 マルチトレースを無効にする。 トレースデータをクリアする。 July 1, 2014, CM41-00313-8 117 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.8.5 S up po r t M a nu al トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , シングルト レース時は SHOW TRACE コマンドに , マルチトレース時は SHOW MULTITRACE コマンドに /STATUS を指定することにより読み出すことができます。 ■ トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは,シングルトレー ス時は SHOW TRACE コマンドに , マルチトレース時は SHOW MULTITRACE コマン ドに /STATUS を指定することにより読み出すことができます。 マルチトレース時に表示されるフレーム番号は , グローバル番号です。 (例) • シングルトレース時 >SHOW TRACE/STATUS en/dis = enable buffer full= nobreak : トレース機能は有効 : バッファフルブレーク機能は無効 sampling = end : トレースサンプリングは終了 frame no. = -00120 to 00050 : -120 ~ 50 フレームまで格納されている。 step no. = -00091 to 00022 : -91 ~ 22 ステップまで格納されている。 : マルチトレース機能は有効 buffer full= nobreak : バッファフルブレーク機能は無効 sampling = end : トレースサンプリングは終了 block no. = 1 to 5 : 1 ~ 5 ブロックデータが格納されている。 frame no. = 00001 to 00159 : 1 ~ 159 フレームまでデータが格納されている > • マルチトレース時 >SHOW MULTITRACE/STATUS en/dis = enable ( グローバル番号 )。 > 118 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示位置の指定 2.2.8.6 トレースバッファ中のどのデータから表示を開始するかを指定するには , シングルト レース時には SHOW TRACE コマンドにフレーム番号を , マルチトレース時には , SHOW MULTITRACE にグローバル番号を指定するか , ブロック番号とローカル番号 により指定します。範囲指定もできます。 ■ トレースデータの表示位置の指定 トレースバッファ中のどのデータから表示を開始するかを指定するには , シングルト レース時には SHOW TRACE コマンドにステップ番号もしくはフレーム番号を , マルチ トレース時には , SHOW MULTITRACE にグローバル番号を指定するか , ブロック番号 とローカル番号により指定します。範囲指定もできます。 (例) シングルトレース時 >SHOW TRACE/CYCLE -6 : -6 フレームから表示する。 >SHOW TRACE/CYCLE -6..10 : -6 フレームから 10 フレームまで表示する。 >SHOW TRACE -6 : -6 ステップから表示する。 >SHOW TRACE -6..10 : -6 ステップから 10 ステップまで表示する。 <注意事項> ステップ数が指定できるのは , MCU 実行モードがデバッグモードの場合に限られます。 マルチトレース時 >SHOW MULTITRACE/GLOBAL 500 : 500 フレーム ( グローバル番号 ) から表示する。 >SHOW MULTITRACE/LOCAL 2 : ブロック番号 2 のブロックを表示する。 >SHOW MULTITRACE/LOCAL 2,-5..5 : July 1, 2014, CM41-00313-8 ブロック番号 2 の -5 フレームから 5 フレームまで表示する。 119 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.8.7 S up po r t M a nu al トレースデータの表示形式 シングルトレース時は SHOW TRACE コマンド , マルチトレース時は SHOW MULTITRACE コマンドにコマンド修飾子を指定することにより表示形式を選択でき ます。SET SOURCE コマンドの設定により , ソース行を付加するモードになってい れば , ソース行が付加されて表示されます。 トレースデータの表示形式には次の 3 種類があります。 • 命令実行順に表示 (/INSTRUCTION を指定 ) • すべてのマシンサイクルの表示 (/CYCLE を指定 ) • ソース行単位で表示 (/SOURCE を指定 ) ■ 命令実行順に表示 (/INSTRUCTION を指定 ) トレースサンプリングはマシンサイクルごとに行われますが,プリフェッチなどの影響 により測定結果がかなり見づらくなります。そこで , 本エミュレータでは可能な限りト レースデータを解析し , プリフェッチ影響削除 , 実行命令の解析 , および , 命令実行順 序に並び替えなどの処理を自動的に行った結果の表示機能を持っています。ただし , デ バッグモード時のシングルトレース時だけ指定可能です。 このモードでの表示は , 次のようになります。 アドレス 逆アセンブル表示 シーケンサのレベル表示 16進数 実行された命令を 表示します。 トレースサンプリング時に 実行していたシーケンサの レベルが表示されます。シ ーケンサを使わない場合は 0が表示されます ステップ番号 10進数符号付き データ 16進数 >SHOW TRACE -194 step no. address mnemonic level \sub4: -00194 : FF0106 LINK #00 4 -00193 : 000186 internal read access. 10F2 5 -00192 : 1010E6 external write access. 10F2 5 -00191 : 000186 internal write access. 10E6 5 -00190 : FF0108 ADDSP #F8 5 -00189 : FF010A MOVL A,001A 5 -00188 : 10001A external read access. 0000 5 -00187 : 10001C external read access. 4000 5 -00186 : FF010E MOVL @SP+04,A 5 -00185 : 1010E2 external write access. 0000 5 デバイスステータス -00184 : FF0111 MOVL A,0016 5 ** STANDBY ** :ハードウェアスタンバイ -00183 : ** RESET ** > ** RESET ** :リセット ** THOLD ** :ツールホールド データアクセス ** UHOLD ** :ユーザホールド internal read access: 内部メモリへのリード :レディ端子入力 ** WAIT ** internal write access: 内部メモリへのライト ** SLEEP ** :スリープ external read access: 外部メモリへのリード :ストップ ** STOP ** external write access: 外部メモリへのライト 120 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ■ すべてのマシンサイクルの表示 (/CYCLE を指定 ) サンプリングしたすべてのマシンサイクルでの詳細情報を表示します。 このモードでは,シングルトレースでもマルチトレースでもほぼ同じ形式で情報が表示 されます ( マルチトレースモード時は , ローカルフレーム番号およびブロック番号の表 示が追加されます )。 このモードでの表示は , 次のように行われます。各表示データの詳細は , SHOW TRACE コマンド , SHOW MULTITRACE コマンドのコマンド説明を参照してください。また , このモードでは SET SOURCE コマンドでの設定に関係なく , ソースの表示は行われま せん。 (例) >SHOW TRACE/CYCLE -587 frame no. address data a-status d-status Qst -00587 : FF0106 0106 ---- ------ FLH -00586 : FF0106 0008 ECF EXECUTE --- -00585 : FF0106 0106 --- EXECUTE --- -00584 : 1010E8 10E8 --- ------- --- -00583 : 1010E8 0102 EWA EXECUTE --- -00582 : 1010E8 0102 --- EXECUTE -00581 : 000186 0186 --- ------- -00580 : 000186 10F2 IRA XECUTE -00579 : 1010E6 10E6 --- ------- --- -00578 : 1010E6 10F2 EWA EXECUTE --- -00577 : 1010E6 10F2 --- EXECUTE -00576 : 000186 0186 --- ------- address ② data ③ a-status ④ dfg level ext-probe 4 @ 11111111 5 11111111 5 11111111 5 11111111 --- 5 11111111 2by 5 11111111 5 11111111 5 11111111 --- @ 11111111 4 @ @ 5 11111111 --- 5 11111111 --- 5 11111111 データの見方 frame no. ① d-status ⑤ Qst ⑥ dfg ⑦ level ⑧ ext-probe ⑨ ① : フレーム番号 (10 進数 ) ② : 実行された命令のアドレス , データアクセスされたアドレス (16 進数 ) ③ : データ (16 進数 ) ④ : アクセス情報 IWA: 内部ライトアクセス EWA: 外部ライトアクセス IRA: 内部リードアクセス ERA: 外部リードアクセス ICF: 内部コードフェッチ ECF: 外部コードフェッチ ---: デバイスの状態情報が有効 ⑤ : デバイスステータス STANDBY: ハードウェアスタンバイ THOLD : ツールホールド UHOLD : ユーザホールド July 1, 2014, CM41-00313-8 121 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al WAIT : レディ端子によるウェイト SLEEP : スリープ STOP : ストップ EXECUTE: 命令実行 RESET : リセット -------: デバイスステータス無効 ⑥ : 命令キューステータス FLH: キューフラッシュ -by: キューの残りコードバイト数 (- は 1 ~ 8) ⑦ : 情報有効フラグ @: データが有効なフレーム ⑧ : シーケンサのレベル ⑨ : 外部プローブのデータ ■ ソース行単位で表示 (/SOURCE を指定 ) ソース行だけを表示します。このモードは , デバッグモード時のシングルトレースモー ド時にだけ有効です。 (例) >SHOW TRACE/SOURCE -194 122 step no. source -00194 : gtg1.c$251 -00190 : gtg1.c$255 -00168 : gtg1.c$259 -00164 : gtg1.c$264 p = (char *) &df; -00161 : gtg1.c$264 p = (char *) &df; -00157 : gtg1.c$265 *(p++) = 0x00; -00145 : gtg1.c$266 *(p++) = 0x00; -00133 : gtg1.c$267 *(p++) = 0x80; -00121 : gtg1.c$268 *p -00116 : gtg1.c$270 p = (char *) -00111 : gtg1.c$271 *(p++) = 0xff; -00099 : gtg1.c$272 *(p++) = 0xff; { sub5(nf, nd); { = 0x7f; ⅆ CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l オンザフライによるトレースデータの読出し 2.2.8.8 トレースデータをプログラム実行中に読み出すことができます。 ただし , サンプリング中は読み出すことはできません。トレース機能を無効にするか , トレースを終了させてから読み出す必要があります。 ■ シングルトレース時のオンザフライによるトレースデータの読出し トレース機能を無効にするには , DISABLE TRACE コマンドにより行います。 現在 , トレース機能が有効か無効かは , SHOW TRACE コマンドに /STATUS を指定し て実行するか , 組込み変数 %TRCSTAT で確認することができます。 また , シーケンサが終了し , ディレイカウントが終了した場合 , トレースが終了します。 ここで , ブレークさせない指定にしておけば , ブレークせずにトレースが終了した状態 となります。トレースが終了しているかどうかは , SHOW TRACE コマンドに /STATUS を指定して実行するか , 組込み変数 %TRCSAMP で確認することができます。 トレースデータを読み出すには SHOW TRACE コマンドを , トレースデータを検索する には SEARCH TRACE コマンドを使用します。 ディレイカウントの設定 , ディレイカウント後のブレーク動作の指定は , SET DELAY コマンドで行います。 (例) >GO > >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak sampling = on > >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak sampling = end frame no. = -00805 to step no. = -00262 to > >SHOW TRACE -52 step no. address ← トレースサンプリング中 ← トレースサンプリング終了 00000 00000 mnemonic level \sub5: -00052 -00051 -00050 -00049 : : : : . FF0125 000186 1010D6 000186 LINK #02 internal read access. external write access. internal write access. . . 10E6 10E6 10D6 1 1 1 1 トレースが終了している状態で CLEAR TRACE コマンドを実行すると再度シーケンサ を最初から実行し , トレースデータをサンプリングし直すことができます。 July 1, 2014, CM41-00313-8 123 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ■ マルチトレース時のオンザフライによるトレースデータの読出し DISABLE MULTITRACE コマンドでトレース機能を無効にしてから読み出します。現 在 , トレース機能が有効か無効かは , SHOW MULTITRACE コマンドに /STATUS を指 定して実行するか , 組込み変数 %TRCSTAT で確認することができます。 トレースデータを読み出すには SHOW MULTITRACE コマンドを , トレースデータを 検索するには SEARCH MULTITRACE コマンドを使用します。 (例) >GO > >SHOW MULTITRACE/STATUS en/dis = enable buffer full = nobreak sampling = on > >DISABLE MULTITRACE > >SHOW MULTITRACE/STATUS en/dis = disable buffer full = nobreak sampling = end block no. = 1 to 20 frame no. = 00001 to 00639 > >SHOW MULTITRACE frame no. address 1 data a-status d-status Qst dfg level ext-probe 1 11111111 block no. = 1 00001 -7 : 10109C 109C --- ------- --- 00002 -6 : 10109C 0000 EWA EXECUTE 2by 00003 -5 : 10109C 0000 --- EXECUTE 00004 -4 : FF0120 0120 --- ------- . 124 . . . . @ 1 11111111 --- 1 11111111 --- 1 11111111 . CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l トレースデータを保存するには 2.2.8.9 トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 July 1, 2014, CM41-00313-8 125 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.9 S up po r t M a nu al パフォーマンス測定 2 つのイベント発生間の時間測定 , 通過回数を測定できます。リアルタイムに実行し ながら繰り返し測定ができ , 実行後 , データを集計し表示を行います。 この機能によりプログラムのパフォーマンスを測定できます。 パフォーマンス測定を行うには , SET MODE コマンドで設定するイベントモードを パフォーマンスモードにする必要があります。 ■ パフォーマンス測定の機能 パフォーマンス測定では , 2 つのイベント間の時間測定とイベントの発生回数の測定が できます。32767 回イベントが発生するまで測定できます。 ● 時間測定 2 つのイベント間の時間を測定します。 イベントは 1 ~ 8 の 8 ポイント設定できますが , パフォーマンス測定モードにより , 次 のような組合せとなります。 4 区間の組合せは , 次の番号に固定となります。 区間 開始イベント番号 終了イベント番号 1 1 2 2 3 4 3 5 6 4 7 8 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなり,そのイベントが発生 した回数を測定します。 126 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l パフォーマンス測定手順 2.2.9.1 パフォーマンス測定は , 次の手順により測定を行います。 • イベントモードの設定 • タイマの最小測定単位の設定 • パフォーマンスバッファフルブレークの指定 • イベントの設定 • プログラム実行 • 測定結果の表示 • 測定結果のクリア ■ イベントモードの設定 SET MODE コマンドによりイベントモードをパフォーマンスモードにします。 これにより , パフォーマンス測定が有効になります。 (例) >SET MODE/PERFORMANCE > ■ タイマの最小測定単位の設定 SET TIMERSCALE コマンドにより , パフォーマンス測定に使用するタイマの最小測定 単位を 1 s と 100ns のどちらかに設定できます。本プログラム起動時は , 1 s に設定 されています。 最小測定単位を変更するとパフォーマンスの測定値はクリアされます。 (例) >SET TIMERSCALE/1U ← 最小単位を 1 s に設定 > ■ パフォーマンスバッファフルブレークの指定 パフォーマンス測定データ格納用のバッファがいっぱいになった場合,プログラムの実 行をブレークできます。この機能をパフォーマンスバッファフルブレークとよびます。 パフォーマンスバッファは , 32767 回イベントが発生するといっぱいになります。 パフォーマンスバッファフルブレークを指定しなかった場合は,パフォーマンス測定は 終了しますが , ブレークはしません。 (例) >SET PERFORMANCE/NOBREAK ← ブレークしない指定 > July 1, 2014, CM41-00313-8 127 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ■ イベントの設定 SET EVENT コマンドでイベントを設定します。 時間測定の開始 , 終了ポイント , および通過回数を測定するポイントは , イベントによ り指定します。 イベントは 1 ~ 8 の 8 ポイント設定できますが , パフォーマンス測定では , 次のような 組合せとなります。 ● 時間測定 4 区間の組合せは , 次の番号に固定となります。 区間 開始イベント番号 終了イベント番号 1 1 2 2 3 4 3 5 6 4 7 8 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなります。 ■ プログラム実行 GO, CALL コマンドによりプログラム実行すると測定されます。ある区間の時間測定 中にブレークした場合は , その区間の測定中のデータは捨てられます。 ■ パフォーマンス測定データの表示 SHOW PERFORMANCE コマンドで表示を行います。 ■ パフォーマンス測定データのクリア CLEAR PERFORMANCE コマンドにより測定データのクリアができます。 (例) >CLEAR PERFORMANCE > 128 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l パフォーマンス測定データの表示 2.2.9.2 SHOW PERFORMANCE コマンドで時間測定の表示 , 測定回数の表示を行います。 ■ 時間測定の表示 表示を行うには , 開始イベント番号 , または終了イベント番号を指定します。 イベント番号 その時間内の測定回数 >SHOW PERFORMANCE/TIME 1, 9000, 18999, 1000 最小実行時間 最大実行時間 event min time max time avr time = = = = 1 -> 2 11637.0 17745.0 14538.0 平均実行時間 総測定回数 time (µs) | count -----------------------------+--------0.0 8999.0 | 0 9000.0 9999.0 | 0 10000.0 10999.0 | 0 11000.0 11999.0 | 2 12000.0 12999.0 | 19 13000.0 13999.0 | 52 14000.0 14999.0 | 283 15000.0 15999.0 | 92 16000.0 16999.0 | 3 17000.0 17999.0 | 1 18000.0 18999.0 | 0 19000.0 | 0 -----------------------------+--------total | 452 表示の上限時間 , 下限時間 , 間隔を指定できます。 指定された時間は , SET TIMERSCALE コマンドで設定するタイマの最小測定単位が 1 s の場合は 1 s 単位と , 100ns の場合は 100ns 単位と判断します。 >SHOW PERFORMANCE/TIME 1,13000,16999,500 event = 1 -> 2 time (µs) | count min time = 11637.0 -----------------------------+--------max time = 17745.0 0.0 12999.0 | 21 avr time = 14538.0 13000.0 13499.0 | 13 13500.0 13999.0 | 39 14000.0 14499.0 | 121 下限表示時間 14500.0 14999.0 | 162 15000.0 15499.0 | 76 15500.0 15999.0 | 16 16000.0 16499.0 | 2 上限表示時間 16500.0 16999.0 | 1 17000.0 17499.0 | 1 -----------------------------+--------total | 452 July 1, 2014, CM41-00313-8 129 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al カバレッジ測定 2.2.10 本エミュレータは , C0 カバレッジ測定機能を持っています。この機能を利用する と , プログラム全体の何 % が実行されたかを確認できます。 ■ カバレッジ測定機能 プログラムをテストする場合は , いろいろなテストデータを与えて実行し , 結果が正し いことを確認します。テストがひととおり終わると , そのプログラムは全体がくまなく 実行されたはずです。もし , プログラムの一部分が実行されなかったとしたら , テスト 項目が不充分だった可能性があります。 本エミュレータが持っているカバレッジ機能を利用すると , プログラム全体の何 % が 実行されたのかを知ることができます。 また , 単に比率だけでなく , 具体的にどの番地がアクセスされなかったのかも詳細に確 認することができます。 本デバッガでは , カバレッジ測定を行う範囲と , 測定を行うアクセス属性を設定できま す。 C0 カバレッジを行う場合は , コード領域にだけ測定範囲を設定し , 測定属性はコード 属性に設定してください。 また , リード / ライト属性を指定し , データ領域に測定範囲を設定することにより , 使 用されていない変数を探し出すなど , 変数のアクセス状態を確認することができます。 カバレッジ測定ができるのは,デバッグ領域として設定されているアドレス空間に限ら れます。 したがって , あらかじめデバッグ領域を設定しておく必要があります。ただし , カバレッジ測定の測定属性はデバッグ領域の属性とは無関係に設定できます。 ■ カバレッジ測定手順 カバレッジ測定の手順は次のようになります。 カバレッジ測定範囲の設定 … SET COVERAGE カバレッジの測定 … GO, STEP, CALL 測定結果の表示 … SHOW COVERAGE ■ カバレッジ測定操作 カバレッジ測定の際には , 以下の操作ができます。 カバレッジデータのロード / セーブ … カバレッジ測定の中断と再開 … ENABLE COVERAGE, DISABLE COVERAGE カバレッジデータのクリア … CLEAR COVERAGE カバレッジ測定範囲の解除 … CANCEL COVERAGE LOAD/COVERAGE, SAVE/COVERAGE <注意事項> MB2141 では , プリフェッチの影響を受けて , コードカバレッジ測定が行なわれます。カ バレッジ測定時にはプリフェッチに注意してください。 130 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l カバレッジ測定手順 2.2.10.1 カバレッジ測定の手順は次のようになります。 • カバレッジ測定範囲の設定 … SET COVERAGE • カバレッジの測定 … GO, STEP, CALL • 測定結果の表示 … SHOW COVERAGE ■ カバレッジ測定範囲の設定 SET COVERAGE コマンドで測定範囲を設定します。測定範囲は , デバッグ領域として 設定されている範囲内にだけ設定できます。設定数は最大 32 領域までです。 また , 測定を行うアクセス属性を指定できます。この属性の指定はデバッグ領域の属性 とは無関係に指定することが可能です。 コマンド修飾子に /AUTOMATIC を指定するとロードされているモジュールのコード 領域が自動的に設定されます。ただし , C コンパイラのライブラリをリンクしている場 合は , ライブラリのコード領域は設定されません。 (例) >SET COVERAGE FF0000 .. FFFFFF ■ カバレッジの測定 カバレッジ測定の準備ができたら , プログラムを実行させます。 GO, STEP, CALL コマンドによりプログラムを実行すると測定されます。 ■ カバレッジ測定結果の表示 SHOW COVERAGE コマンドで以下の測定データの表示ができます。 • 全測定領域のカバレッジ率の表示 • ロードモジュールのカバレッジ率の表示 • 16 アドレスをひとかたまりとした概要表示 • 1 アドレスごとのアクセス状態を表示する詳細表示 • ソース行単位のカバレッジ測定結果表示 • 機械命令単位のカバレッジ測定結果表示 ● 全測定領域のカバレッジ率の表示 ( コマンド修飾子に /TOTAL を指定 ) >SHOW COVERAGE/TOTAL total coverage : 82.3% July 1, 2014, CM41-00313-8 131 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al ● ロードモジュールのカバレッジ率の表示 ( コマンド修飾子に /MODULE を指定 ) >SHOW COVERAGE/MODULE sample.abs . . . . . +- startup.asm . . . +- sample.c . . . . +- samp.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (84.03%) (90.43%) (95.17%) (100.00%) ロードモジュールと各モジュールのカバレッジ率を表示します。 ● 概要表示 ( コマンド修飾子に /GENERAL を指定 ) >SHOW COVERAGE/GENERAL (HEX)0X0 +1X0 +2X0 +---------------+---------------+-----address 0123456789ABCDEF0123456789ABCDEF0123456 FF0000 **3*F*....... -----... ABCDEF C0(%) 32.0 16アドレスごとのアクセス状況を表示します。 . :アクセスなし 1~F :16個のアドレス内のアクセスされた数を16進数で表示 * :16個のアドレスをすべてアクセス ● 詳細表示 ( コマンド修飾子に /DETAIL を指定 ) 1行分のカバレッジ率を 表示します。 >SHOW COVERAGE/DETAIL FF0000 address +0 +1 +2 +3 +4 +5 FF0000 - - - - - FF0010 - - - - - FF0020 . . . . - FF0030 - - - - - FF0040 - . - - - FF0050 - - - - - FF0060 . . . . . . FF0070 . . . . . . FF0080 . . . . . . +6 . . . +7 . . . . +8 . . . . +9 . . . . +A +B +C +D +E +F C0(%) - - - - - - 100.0 - - - - - - 100.0 . . . . . . 18.6 - - - - - - 100.0 - - - - - - 93.7 - - - - - - 100.0 . . . . . . 0.0 . . . . . . 0.0 . . . . . . 0.0 1アドレスごとにアクセス状態を表示します。 . :アクセスなし - 132 :アクセスあり CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ● ソース行単位で表示 ( コマンド修飾子に /SOURCE を指定 ) >SHOW COVERAGE/SOURCE main * 70: { 71: int i; 72: struct table *value[16]; 73: * 74: for (i=0; i<16; i++) * 75: value[i] = &target[i]; 76: * 77: sort_val(value, 16L); . 78: } ソース行単位の実行状況を表示します。 . :実行なし * :実行あり 空白 :コードが生成されないまたはカバレッジ測定範囲外の行 ● 機械命令単位で表示 ( コマンド修飾子に /INSTRUCTION を指定 >SHOW COVERAGE/INSTRUCTION F9028F sample.c$70 { * F9028F \main: * F9028F 0822 LINK #22 * F90291 4F01 PUSHW RW0 sample.c$74 for (i=0; i<16; i++) . F90293 D0 MOVN A,#0 . F90294 CBFE MOVW @RW3-02,A . F90296 BBFE MOVW A,@RW3-02 . F90298 3B1000 CMPW A,#0010 . F9029B FB18 BGE F902B5 sample.c$75 value[i] = &target[i]; . F9029D BBFE MOVW A,@RW3-02 . F9029F 0C LSLW A . F902A0 98 MOVW RW0,A . F902A1 71F3DE MOVEA A,@RW3-22 . F902A4 7700 ADDW RW0,A . F902A6 4214 MOV A,#14 . F902A8 7833FE MULUW A,@RW3-02 . F902AB 38A001 ADDW A,#01A0 機械命令単位の実行状況を表示します。 . :実行なし * :実行あり 空白 :カバレッジ測定範囲外の命令 <注意事項> MB2141 では , プリフェッチの影響を受けて , コードカバレッジ測定が行なわれます。解 析時には注意してください。 July 1, 2014, CM41-00313-8 133 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.11 S up po r t M a nu al 実行時間測定 プログラムの実行時間を測定する機能です。 ■ 測定項目 プログラムの実行開始から停止までの時間を測定します。 時間測定を行うタイマをエミュレーションタイマとよびます。 測定時間はエミュレーションタイマの最小測定単位により以下のとおり異なります。 最小測定単位が 1 s の場合:最大約 70 分 最小測定単位が 100 ns の場合:最大約 7 分 なお本プログラム起動時の最小測定単位は 1 s です。 測定はプログラム実行のたびに行われ , 測定結果は以下の値を表示します。 • 直前のプログラム実行におけるサイクル数 • 前回クリアしてからの実行サイクル数の合計 ■ 最小測定単位の設定 エミュレーションタイマの最小測定単位は以下のどちらかで設定します。 • ダイアログによる設定 [環境]-[デバッグ環境の設定]-[デバッグ環境設定]メニューを選択し , デバッ グ環境設定ダイアログの[エミュレーション]タブにて設定します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」を 参照してください。 • コマンドによる設定 コマンドウィンドウにて SET TIMERSCALE コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「1.13 SET TIMERSCALE (type1)」を参照してください。 ■ 測定結果の表示 測定結果の表示は以下のどちらかで行います。 • ダイアログによる表示 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに 表示します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによる表示 コマンドウィンドウにて SHOW TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 134 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l ■ 測定結果のクリア 測定結果のクリアは以下のどちらかで行います。 • ダイアログによるクリア [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに て[クリア]ボタンを押します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによるクリア コマンドウィンドウにて CLEAR TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 <注意事項> 実行時間測定は 1 回の実行につき 10 サイクル程度多く計測されます。実行サイクルを計 測する場合には , 誤差の影響を少なくするために多くの命令を連続実行するようにしてく ださい。 July 1, 2014, CM41-00313-8 135 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.12 S up po r t M a nu al 外部プローブによるサンプリング 外部プローブによりデータをサンプリング ( 入力 ) できます。 トレースデータとしてトレースバッファにサンプリングする方法と , SHOW SAMPLING コマンドによりサンプリングする方法があります。 ■ 外部プローブによるサンプリング 外部プローブからデータをサンプリングするには,トレースデータとしてトレースバッ ファにサンプリングする方法と , SHOW SAMPLING コマンドによりサンプリングする 方法があります。トレースデータとしてサンプリングした場合は , ほかのトレースデー タと同様に SHOW TRACE コマンド , SHOW MULTITRACE で表示します。SHOW SAMPLING コマンドでサンプリングする場合は , コマンド実行時にサンプリングし , そ の状態を表示します。 また , 外部プローブデータをイベントに設定することにより , プログラムの中断 , マル チトレース , パフォーマンスのトリガポイントとして使用できます。 イベントの設定は , SET EVENT コマンドで行います。 ■ 外部プローブのサンプリングタイミング プログラム実行中にサンプリングするタイミングを以下から選択できます。 • 内部クロック ( エミュレータが供給するクロック ) の立上り • 外部クロック ( ターゲットより入力されるクロック ) の立上り • 外部クロック ( ターゲットより入力されるクロック ) の立下り 設定は , SET SAMPLING コマンドで , 設定状態の表示は SHOW SAMPLING コマンドで 行います。 SHOW SAMPING コマンドでデータをサンプリングする場合は , この設定したサンプリ ングタイミングには無関係にそのときの状態をサンプリングします。 (例) >SET SAMPLING/INTERNAL >SHOW SAMPLING sampling timing : internal channel 7 6 5 4 3 2 1 0 1 1 1 1 0 1 1 1 ■ 外部プローブデータの表示 , 設定 外部プローブデータを使用できるコマンドでは , 外部プローブデータを 2 進数 8 桁 , ま たは , 16 進数 2 桁で表示します。表示するビットの順番は , 表 2.2-12 に示すように IC クリップケーブルのカラーコード順になっています。 MSB が bit7 ( 紫 ), LSB が bit0 ( 黒 ) として表されます。1 になったビットが HIGH, 0 のビットが LOW を意味します。また , コマンドのパラメータとして入力する場合もこの値で入力します。 136 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l 表 2.2-12 外部プローブデータのビット順 IC クリップ ケーブルの色 紫 青 緑 黄 橙 赤 茶 黒 ビット順 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 外部プローブデータ ■ 外部プローブデータが使用できるコマンド 外部プローブデータが設定または表示できるコマンドを表 2.2-13 に示します。 表 2.2-13 外部プローブデータが使用できるコマンド コマンド 使用方法 SET SAMPLING SHOW SAMPLING 外部プローブのサンプリングタイミングの設定 外部プローブデータのサンプリング SET EVENT SHOW EVENT イベント 1 の条件として外部プローブデータを指定可 イベントの設定状態の表示 SHOW TRACE トレースサンプリングされた外部プローブを表示 ( シングルトレース ) SHOW MULTITRACE トレースサンプリングされた外部プローブを表示 ( マルチトレース ) July 1, 2014, CM41-00313-8 137 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e 2.2.13 S up po r t M a nu al デバッガの情報を確認するには MB2141 エミュレータデバッガの情報を確認する方法について説明します。 ■ デバッガの情報 本エミュレータデバッガでは , デバッガ起動時に以下の情報を確認できます。 • SOFTUNE Workbench のファイル情報 • ハードウェアに関する情報 SOFTUNE Workbench の動作に問題があった場合は , この情報を確認し , 営業部門また はサポート部門までお問合せください。 ■ 確認方法 デバッガの情報の確認は次の方法で行います。 • コマンド - SHOW SYSTEM 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「1.19 SHOW SYSTEM」を参照してください。 • ダイアログ - バージョン情報ダイアログ [ヘルプ]‐[バージョン情報]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.9.3 バージョン情報」を参 照してください。 ■ 表示内容 F2MC-16 Family SOFTUNE Workbench VxxLxx (c) Copyright Spansion LLC, All Rights Reserved 1997-2014 ======================================================= Cpu information file path:CPU 情報ファイルのパス Cpu information file version:CPU 情報ファイルのバージョン ======================================================= Add in DLLs ------------------------------------------------------SiCmn Product name : SOFTUNE Workbench File Path:SiC907.dll のパス Version:SiC907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - SiiEd File Path:SiiEd3.ocx のパス Version:SiiEd3.ocx のバージョン ------------------------------------------------------- 138 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) S o ft w a r e S u p p o r t M a n u a l SiM907 Product name : SOFTUNE Workbench File Path:SiM907.dll のパス Version:SiM907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Language Tools - F2MC-16 Family SOFTUNE C Compiler のバージョン File Path:fcc907s.exe のパス - F2MC-16 Family SOFTUNE Assembler のバージョン File Path:fasm907s.exe のパス - F2MC-16 Family SOFTUNE Linker のバージョン File Path:flnk907s.exe のパス - F2MC-16 Family SOFTUNE Librarian のバージョン File Path:flib907s.exe のパス - SOFTUNE FJ-OMF to S-FORMAT Converter のバージョン File Path:f2ms.exe のパス - SOFTUNE FJ-OMF to INTEL-HEX Converter のバージョン File Path:f2is.exe のパス - SOFTUNE FJ-OMF to INTEL-EXT-HEX Converter のバージョン File Path:f2es.exe のパス - SOFTUNE FJ-OMF to HEX Converter のバージョン File Path:f2hs.exe のパス ------------------------------------------------------SiOsM Product name : Softune Workbench File Path:SiOsM907.dll のパス Version:SiOsM907.dll のバージョン ------------------------------------------------------F2MC-16 Series Debugger DLL Product name : SOFTUNE Workbench File Path:SiD907.dll のパス Version:SiD907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - - July 1, 2014, CM41-00313-8 Debugger type : 現在のデバッガ種別 MCU type : 現在選択しているターゲット MCU VCpu dll name : 現在使用している VCpu dll のパスと名前 VCpu dll version : 使用中の仮想デバッガ部 DLL のバージョン DSU type : 現在使用している DSU 種別 Monitor version : モニタ ( 依存 ) のバージョン 139 第 2 章 依存機能 2.2 エミュレータデバッガ (MB2141) So ft war e S up po r t M a nu al Communication device : デバイス種別 Baud rate : 通信ボーレート Host name : LAN ホスト名 REALOS version : REALOS のバージョン ------------------------------------------------------SiIODef Product name : Softune Workbench File Path : SiIODef.dll のパス Version : SiIODef.dll のバージョン ======================================================= Current path:現在使用しているプロジェクトのパス Language:現在使用している言語 Help file path:ヘルプファイルのパス 140 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 2.3 S u p p o r t M a n u a l エミュレータデバッガ (MB2147-01) MB2147-01 用エミュレータデバッガの機能について説明します。 ■ エミュレータデバッガ セットアップウィザードでエミュレータデバッガを選択すると,次のエミュレータを指 定できます。以降 MB2147-01 を選択した場合について説明します。 MB2141 MB2147-01 MB2147-05 MB2198 MB2147-01 用エミュレータデバッガは , ホストコンピュータから通信回線 (RS-232C, LAN, USB) を介してエミュレータを制御してプログラムの評価を行うソフトウェアで す。 デバッグ対象となるシリーズは , 次のとおりです。 F2MC-16L F2MC-16LX ご使用になるまえに , エミュレータの初期化が必要になります。詳細は ,『SOFTUNE Workbench 操作マニュアル』の「付録 B モニタプログラムのダウンロード」,「付録 C LAN インタフェースの設定」を参照してください。 July 1, 2014, CM41-00313-8 141 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.1 S up po r t M a nu al 動作環境の設定 動作環境の設定について説明します。 ■ 動作環境の設定 MB2147-01 用エミュレータデバッガでは , 以下の項目について動作環境を設定する必 要があります。なお , それぞれの設定には起動時のデフォルトがあるため , 起動時のデ フォルトを使用する場合は設定を行う必要はありません。また , 一度指定した設定値を 次回からのデフォルトにすることもできます。 • モニタプログラム自動ロード • MCU 動作モード • デバッグ領域 • メモリマッピング • デバッグ機能 • イベントモード 142 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l モニタプログラム自動ロード 2.3.1.1 MB2147-01 エミュレータには , エミュレータ開始時にモニタプログラムの自動アッ プデート機能があります。 ■ モニタプログラム自動ロード MB2147-01 エミュレータを指定すると , デバッグの開始時に , エミュレータ内部の情報 を参照して適切なモニタプログラムやコンフィギュレーションバイナリデータを自動 的にエミュレータへロードできます。 アップデート用に比較されるモニタプログラムやコンフィギュレーションバイナリ データは , Workbench をインストールしたディレクトリ下の Lib¥907 にあリます。 モニタプログラム自動ロード機能の許可 / 抑止は , [ 環境 ] - [ デバッグ環境の設定 ] - [ セットアップウィザード ] メニューで指定してください。 July 1, 2014, CM41-00313-8 143 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.1.2 S up po r t M a nu al MCU 動作モード MCU 動作モードには次の 2 種類があります。 • デバッグモード • ネイティブモード ■ MCU 動作モードの設定 MCU 動作モードを設定します。 動作モードには , デバッグモードとネイティブモードがあり , これらのモードは , SET RUNMODE コマンドにより設定します。 エミュレータ起動時は , デバッグモードになっています。 ネイティブモードではエミュレータが内部バスへのデータアクセスを検出できない場 合があるため , MCU 動作モードを切り換えると次のものがすべて初期化されます。 データブレークポイント データ監視ブレーク イベント条件設定 シーケンサ設定 トレース測定設定 , および , トレースバッファ ■ デバッグモード エバリュエーションチップのすべての動作を解析できますが,動作速度は量産チップよ りも遅くなります。 ■ ネイティブモード 動作速度は量産チップと同じタイミングになります。ただし , 表 2.3-1 に示すようなデ バッグ機能の制限がありますので注意してください。 表 2.3-1 ネイティブモード時のデバッグ機能制限 144 対象シリーズ デバッグ機能の制限 全シリーズ共通 ・ MCU 内部バスでデータリードアクセスが発生した場合 , ト レースバッファに内部バスアクセス情報がサンプリングされ ません。 ・ MCU 内部バス上にあるデータに対してデータブレークやイ ベント ( データアクセス条件 ) を設定しても , ブレーク要因や シーケンサのトリガ要因にならないことがあります。 ・ カバレッジ機能について , MCU 内部バス上にあるデータへの データアクセスを検出できないことがあります。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l デバッグ領域 2.3.1.3 全メモリ空間の中から集中的にデバッグする領域を設定します。 この領域に対する機能が強化されます。 ■ デバッグ領域の設定 デバッグ領域には , DEBUG3 と DEBUG4 の 2 領域が準備されています。そのそれぞれ について連続した 1MB(16 バンク ) 分の領域が設定されます。 デバッグ領域は , SET DEBUG コマンドで設定できます。 デバッグ領域を設定すると , カバレッジ測定機能が強化されます。 カバレッジ測定機能の強化 デバッグ領域を設定することによって , カバレッジ測定機能では , デバッグ領域として 設定された範囲内に測定範囲を指定できます。 また , 00 ~ 0F バンクおよび 0F0 ~ 0FF バンクは , デバッグ領域を指定しなくても , ブレークポイントを設定できます。(DEBUG1 と DEBUG2 の領域 ) July 1, 2014, CM41-00313-8 145 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al メモリエリアの種類 2.3.1.4 メモリを割り当てる単位をエリアとよびます。エリアは 5 種類あります。 ■ メモリエリアの種類 メモリを割り当てる単位をエリアとよびます。次の 5 つのエリアがあります。 • ユーザメモリエリア ユーザシステム上のメモリ空間をユーザメモリエリアとよびます。また , このメモ リのことをユーザメモリとよびます。ユーザメモリエリアは , 最大 4 エリアまで設 定可能で , 各エリアのサイズには制限がありません。領域は , 256Byte 境界で指定し てください。 また , 各エリアには , アクセス属性を設定できます。例えば , ROM 領域には CODE, READ を , RAM 領域には READ, WRITE などの属性が設定できます。これに違反す るアクセスを MCU が行った場合には , MCU 動作は中断されてエラーが表示されま す ( ガーデッドアクセスブレークとよびます )。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できません。 ユーザメモリエリアの指定は , SET MAP コマンドで設定できます。 • エミュレーションメモリエリア エミュレータ上のメモリで代行するメモリ空間をエミュレーションメモリエリア とよびます。また , このメモリのことをエミュレーションメモリとよびます。 エミュレーションメモリエリアとして , 最大 1MB のエリアを最大 4 エリア ( 後述す る内部 ROM エリアも含めます ) まで設定可能です。領域は , 256Byte 境界で指定し てください。1MB 以上の領域も一度に指定できますが , 内部では 1MB ごとのエリ アに分けて管理されます。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できます。 エミュレーションメモリエリアの指定は , SET MAP コマンドで設定できます。 また , ユーザメモリエリアと同様にアクセス属性の設定も行えます。 <注意事項> MCU 内部リソースをエミュレーションメモリエリアとして設定しても内部リソース側を アクセスします。また , 再設定を行うと内容は破壊されることがあります。 146 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l • 内部 ROM エリア 内部 ROM をエミュレータ内部のメモリで代行する領域を内部 ROM エリアとよび ます。また , このメモリのことを内部 ROM メモリとよびます。 内部 ROM エリアは , 最大 1MB の領域で 2 エリアの指定ができます。1MB 以上の 領域も一度に指定できますが , 内部では 1MB ごとのエリアに分けて管理されます。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できます。 内部 ROM エリアは , [ 環境 ] - [ デバッガのメモリマップ…] で開く [ マップ設定 ] ダイアログにより設定できます。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 内部 ROM イメージエリア MCU の品種によっては , 00 バンクに内部 ROM の特定領域の内容が現れるものがあ りますが , この領域のことを内部 ROM イメージエリアとよびます。 内部 ROM イメージエリアは , [ 環境 ] - [ デバッガのメモリマップ…] で開く [ マッ プ設定 ] ダイアログにより設定できます。このエリアには自動的に READ/CODE 属 性が付けられます。 内部 ROM イメージエリアには , 内部 ROM エリアと同じ内容が現れますが , デバッ グ情報は , どちらか一方 ( リンク時に指定された方 ) にだけ有効になりますので注 意が必要です。内部 ROM イメージエリア内でだけデバッグする場合は , ロードモ ジュールファイルの作成方法を変更する必要があります。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 未定義エリア 上記の指定外のメモリ領域を未定義エリアとよびます。 未定義エリアは , アクセス自由なメモリ領域 (NOGUARD), もしくは , アクセス禁止 のメモリ領域 (GUARD) のどちらかに設定ができます。この設定は , すべての未定 義エリアに対して設定できます。アクセス禁止領域に設定すると , その領域をアク セスした場合に , ガーデッドアクセスエラーになります。 July 1, 2014, CM41-00313-8 147 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.1.5 S up po r t M a nu al メモリマッピング メモリ空間をユーザメモリ , エミュレーションメモリなどに割り当てたり , また属性 を指定したりすることができます。 ただし , MCU 内部のリソースはマッピングの指定によらず , 必ず内部リソースがア クセスされます。 ■ メモリエリアのアクセス属性 メモリエリアには表 2.3-2 に示すアクセス属性を指定できます。 プログラム実行中にアクセス属性に違反したアクセスが起こった場合は,ガーデッドア クセスブレークが発生します。 本プログラムのコマンドによりユーザメモリエリア,およびエミュレーションメモリエ リアをアクセスする場合は, CODE, READ, WRITEの属性にかかわらずアクセスできま す。ただし , 未定義エリアの GUARD 属性が設定されているメモリをアクセスした場 合は , エラーが発生します。 表 2.3-2 アクセス属性の種類 エリア 属性 ユーザメモリ エミュレーションメモリ 未定義 内容 CODE 命令実行許可 READ データリード許可 WRITE データライト許可 GUARD アクセス禁止 NOGUARD アクセス属性チェックなし プログラム実行により WRITE 属性のないエリアに対してアクセスすると , ユーザメモ リエリアの場合は,データが書き換わってからガーデッドアクセスブレークが発生しま すが , エミュレーションメモリエリアの場合は , データが書き換わらずにブレークしま す。つまり , エミュレーションメモリエリアに WRITE 属性を指定しないとライトプロ テクト ( ライトしてもメモリのデータを書き換えない ) をかけることができます。ライ トプロテクトはプログラム実行によるアクセスの場合にだけ有効で,コマンドによるア クセスではかかりません。 ■ メモリマップの作成・表示 メモリマッピングは , 以下のコマンドで行います。 148 SET MAP : メモリマップの設定 SHOW MAP : メモリマップの表示 CANCEL MAP : 設定したメモリマップを未定義にする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l (例) >SHOW MAP address attribute 000000 .. FFFFFF noguard type The rest of setting area numbers user = 8 emulation = 5 >SET MAP/USER H'0..H'1FF >SET MAP/READ/CODE/EMULATION H'FF0000..H'FFFFFF >SET MAP/USER H'8000..H'8FFF >SET MAP/MIRROR/COPY H'8000..H'8FFF >SET MAP/GUARD >SHOW MAP address attribute type 000000 .. 0001FF read write user 000200 .. 007FFF guard 008000 .. 008FFF read write 009000 .. FEFFFF guard FF0000 .. FFFFFF read write code user emulation mirror address area 008000 .. 008FFF copy The rest of setting area numbers user = 6 emulation = 3 > ■ 内部 ROM 領域設定 [ 環境 ]-[ デバッガのメモリマップ ] メニューで [ マップ設定 ] ダイアログを表示しま す。そして [ 設定 ] ボタンをクリックして , [ マップ追加 ] ダイアログを表示し , さらに [ 内部 ROM 領域 ] タブを選択すると , 内部 ROM 領域の設定が可能になります。 内部 ROM 領域は , 2 領域まで設定可能です。各領域を設定するには , エミュレーショ ンエリアの空きが必要です。必要は空き領域は次のようになります。 ( エミュレーションエリアの空き数 ) × (1 エリアのサイズ ) 上記のサイズまで指定できます。 領域 1 は , 終了アドレス H'FFFFFF ( 固定 ) からの内部 ROM 領域を指定してください。 また , 内部 ROM 領域を削除することも可能です。 July 1, 2014, CM41-00313-8 149 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.1.6 S up po r t M a nu al デバッグ機能 デバッグ機能には , 次の 2 種類があります。選択したモードの機能だけ使用できま す。選択可能なデバッグモードはエミュレータまたはその接続形態によって変わり ます。 • RAM Checker モード • Trace Enhancement モード ■ デバッグ機能の設定 デバッグ機能を設定します。デバッグ機能には , RAM Checker, Trace Enhancement モー ドがあり , エミュレータまたはその接続形態によって選択可能なモードが変わってき ます。これらのモードは , [ 環境 ] - [ デバッグ環境の設定 ] - [ デバッグ機能の選択 ] メ ニューまたはコマンドウィンドウの SET MODE コマンドにより設定します。 エミュレータ起動時は , RAM Checker モードになっています。 デバッグ機能を切り換えると次のものがすべて初期化されます。 • パフォーマンス測定データ • トレースバッファ ■ RAM Checker モード RAM チェッカ機能を有効にします。監視アドレスのアクセス履歴をログファイルに記 録できるようになります。 ■ Trace Enhancement モード トレース強化機能を有効にします。 以下の機能が使用可能になります。 1. マルチトレースモードでのトレース取得 2. トレーストリガによる , トレース取得制御 ( 再開 / 一時停止 / 終了 ) 3. データ監視条件によるトレース制御 4. シーケンサによるトレース制御 150 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l イベントモード 2.3.1.7 イベントモードには , 次の 3 種類があります。 • ノーマルモード • マルチトレースモード • パフォーマンスモード ■ イベントモード イベントモードとは , イベントトリガをどの機能に使用するかを指定するものです。設 定は [ 環境 ] - [ デバッグ環境の設定 ] - [ デバッグ環境設定 ] メニューの [ イベント ] タ ブ , またはコマンドウィンドウの SET MODE コマンドで行います。起動時はノーマル モードになっています。 イベントモードには次の 3 種類があります。 • ノーマルモード イベントトリガをシングルトレースに使用します。 • マルチトレースモード イベントトリガをマルチトレース ( イベントトリガ発生時の前後のデータをサンプ リングするトレース機能 ) に使用します。 • パフォーマンスモード イベントトリガをパフォーマンス測定に使用します。2 つのイベントトリガ発生間 の時間測定 , イベントトリガ発生回数が測定できます。 <注意事項> マルチトレースモードは, MB2147-01においてデバッグ機能が"Trace Enhancement"モー ド時だけ指定可能です。詳細は「2.3.1.6 デバッグ機能」を参照してください。 July 1, 2014, CM41-00313-8 151 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.2 S up po r t M a nu al ユーザプログラム実行の注意 ユーザプログラム実行には , いくつかの注意事項があります。 ■ GO コマンドの注意 GO コマンドにはコマンド実行時だけ有効なブレークポイントを 2 個設定できますが , このブレークポイントの設定には注意が必要です。 ● 無効なブレークポイント 表 2.3-3 の命令の直後の命令にブレークポイントを設定してもブレークしません。 表 2.3-3 設定したブレークポイントが無効になる命令 F2MC-16L/16LX PCB NCC SPB MOV ILM,#imm8 OR CCR,#imm8 DTB ADB CNR AND CCR,#imm8 POPW PS 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 以下の 2 つの条件を一度に満たす場合にもブレークしません。 • ブレークポイントを設定する命令が奇数番地から始まっている場合 • 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに既 にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) ● 異常なブレークポイント 表 2.3-4 に示すストリング系の命令の直後の命令にブレークポイントを設定すると , ス トリング命令を最後まで実行せずに,ストリング命令の途中でブレークすることがあり ます。 表 2.3-4 ストリング系命令 F2MC-16L/16LX MOVS SECQ WBTS MOVSWI SECQWI MOVSD SECQD FILS FILSW MOVSW SECQW MOVSI SECQI WBTC MOVSWD SECQWD FILSI FILSWI ■ ステップ実行の注意 ● 特殊なステップ実行 表 2.3-3 と表 2.3-4 の命令を実行する場合は , それに続く 1 命令も含めて命令として動作 します。 152 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ● ブレークしないステップ実行 表 2.3-3 と表 2.3-4 の命令が2命令以上連続で並んでいる場合は, ステップ動作後ブレー クしません。 また , 以下の 2 つの条件を一度に満たす場合にも , ステップ動作後ブレークしないため 注意してください。 • ステップする命令が 2 バイト以上の命令で , その最後のコードが偶数で終わってい る場合 • その最後のアドレスに既にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントに なります。そのため , ブレークしません。) ■ ウォッチドッグタイマの制御 プログラム実行中に [ ウォッチドッグタイマのカウンタのオーバフローによりリセッ トを発生させない ] ことができます。 ウォッチドッグタイマの制御は , ENABLE WATCHDOG, DISABLE WATCHDOG コマ ンドで行います。 ENABLE WATCHDOG … ウォッチドッグタイマのカウンタのオーバフローによ りリセットを発生させる。 DISABLE WATCHDOG … ウォッチドッグタイマのカウンタのオーバフローによ りリセットを発生させない。 本プログラム起動時は , [ ウォッチドッグタイマのカウンタのオーバフローによりリ セットを発生させる ] になっています。 (例) >DISABLE WATCHDOG >GO July 1, 2014, CM41-00313-8 153 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al ユーザプログラム実行中に使用できるコマンド 2.3.3 ユーザプログラム実行中に使用できるコマンドについて説明します。 ■ ユーザプログラム実行中に使用できるコマンド 本エミュレータデバッガでは , ユーザプログラム実行中に特定のコマンドが使用でき ます。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の各コマンドの 「■ 対応デバッガ」を参照してください。 ◎はユーザプログラム実行中に使用できることを表しています。 表 2.3-5 にユーザプログラム実行中に使用できるコマンドを示します。 表 2.3-5 ユーザプログラム実行中に使用できるコマンド (1 / 2) 限定事項 機能 MCU のリセット - 主コマンド 1.3 RESET 1. トレース実行が終了している場合 だけ可能 *1 トレースデータの 表示 2. デバッグ機能が「Trace 4.2 SHOW MULTITRACE, 4.31 SHOW TRACE (type 1) Enhancement」モード時だけ可能 *2 (MULTI TRACE だけ ) 1. トレース実行が終了している場合 だけ可能 *1 トレースデータの クリア 2. デバッグ機能が「Trace 4.3 CLEAR MULTITRACE, 4.34 CLEAR TRACE Enhancement」モード時だけ可能 *2 (MULTI TRACE だけ ) 1. トレース実行が終了している場合 だけ可能 *1 トレースデータの 検索 2. デバッグ機能が「Trace 4.6 SEARCH MULTITRACE, 4.37 SEARCH TRACE Enhancement」モード時だけ可能 *2 (MULTI TRACE だけ ) トレース取得データ の設定 トレース実行が終了している場合だけ 可能 *1 4.35 ENABLE TRACE, 4.36 DISABLE TRACE 1. トレース実行が終了している場合 トレーストリガの 設定 だけ可能 *1 2. デバッグ機能が「Trace 4.42 SET TRACETRIGGER, 4.43 SHOW TRACETRIGGER, 4.44 CANCEL TRACETRIGGER Enhancement」モード時だけ可能 *2 154 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l 表 2.3-5 ユーザプログラム実行中に使用できるコマンド (2 / 2) 限定事項 機能 主コマンド 1. トレース実行が終了している場合 フィルタリング領域 の設定 だけ可能 *1 2. デバッグ機能が「Trace 4.38 SET DATATRACEAREA, 4.40 SHOW DATATRACEAREA, 4.41 CANCEL DATATRACEAREA Enhancement」モード時だけ可能 *2 1. トレース実行が終了している場合 トレースディレイの 設定 だけ可能 *1 2. デバッグ機能が「Trace 4.45 SET DELAY, 4.46 SHOW DELAY Enhancement」モード時だけ可能 *2 実行サイクル測定値 の表示 - エミュレーションメモリだけ操作可能 メモリ操作 ( リード / ライト ) ラインアセンブル , 逆アセンブル ブレークポイントの 設定 *3 リアルタイムモニタ領域はリードだけ 可能 エミュレーションメモリだけ可能 *3 リアルタイムモニタ領域は逆アセンブ ルだけ可能 デバッグ環境ダイアログの実行タブで 「実行中のブレークポイント設定」を有 効にした場合だけ可能 *4 4.27 SHOW TIMER 5.1 EXAMINE, 5.2 ENTER, 5.3 SET MEMORY, 5.4 SHOW MEMORY, 5.5 SEARCH MEMORY, 5.8 COMPARE, 5.9 FILL, 5.10 MOVE, 5.11 DUMP, 6.1 ASSEMBLE 6.2 DISASSEMBLE 3.1 SET BREAK, 3.6 CANCEL BREAK, 3.7 ENABLE BREAK, 3.8 DISABLE BREAK, 3.9 SET DATABREAK, 3.12 CANCEL DATABREAK 3.13 ENABLE DATABREAK, 3.14 DISABLE DATABREAK, *1: 詳細は「2.3.6 リアルタイムトレース」を参照してください。 *2: 詳細は「2.3.1.6 デバッグ機能」を参照してください。 *3: 詳細は「2.2.1.4 メモリマッピング」を参照してください。 *4: 詳細は「2.3.4 ブレーク」を参照してください。 July 1, 2014, CM41-00313-8 155 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al <注意事項> • 表 2.3-5 のコマンドが使用できる条件は , 以下のどちらかによりユーザプログラムを 実行した場合に限ります。 - [ デバッグ ]-[ 実行 ]-[ 連続実行 ] メニュー - デバッグツールバーの [ 連続実行 ] ボタン コマンドウィンドウにて GO コマンドを入力した場合は , 表 2.3-5 のコマンドは使用 できません。 • ユーザプログラム実行中に使用できないコマンドを入力すると,以下のエラーメッセー ジが表示されます。 「E4404S: MCU 実行中は使えないコマンドです」 156 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 2.3.4 S u p p o r t M a n u a l ブレーク 本エミュレータデバッガでは , 9 種類のブレーク機能を使用できます。各ブレーク機 能によりプログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因 を表示します。 ■ ブレーク機能 本エミュレータデバッガでは , 9 種類のブレーク機能をサポートしています。 • コードブレーク • データブレーク • データ監視ブレーク • シーケンシャルブレーク • ガーデッドアクセスブレーク • トレースバッファフルブレーク • パフォーマンスバッファフルブレーク • 外部トリガブレーク • 強制ブレーク July 1, 2014, CM41-00313-8 157 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.4.1 S up po r t M a nu al コードブレーク 指定したアドレスを監視することでプログラム実行を中断する機能です。指定され たアドレスの命令を実行する前にブレークします。 ■ コードブレークとは 指定したアドレスを監視することでプログラムを中断する機能です。指定されたアド レスの命令を実行する前にブレークします。本デバッガでは 65535 個設定可能です。 コードブレークでブレークした場合,ステータスバーには次のメッセージが表示されま す。 Break at アドレス by breakpoint ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ ■ コードブレークの注意 コードブレークには , いくつかの注意事項があります。 まず , コードブレーク動作に影響を及ぼす注意事項について説明します。 ● 無効なブレークポイント • 次の命令の直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16/16L/16LX/16H: ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR ・MOV ILM,#imm8 ・AND CCR,#imm8 ・OR CCR,#imm8 F2MC-16F: ・POPW PS ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 • 次の 2 つの条件を一度に満たす場合にもブレークしません。 - ブレークポイントを設定する命令が奇数番地から始まっている場合 - 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに 既にブレークポイントが設定されている場合 (この既に設定されているブレークポイントは,命令先頭以外のブレークポイント ですから , ブレークしない無効なブレークポイントです。) 158 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ● 異常なブレークポイント • 次に示すストリング系の命令の直後の命令にブレークポイントを設定すると , スト リング命令を最後まで実行せずに , ストリング命令の途中でブレークすることがあ ります。 F2MC-16/16L/16LX/16H: ・MOVS ・MOVSW ・SECQ ・SECQW ・WBTS ・MOVSI ・MOVSWI ・SECQI ・SECQWI ・WBTC ・MOVSD・MOVSWD・SECQD ・SECQWD ・FILS F2MC-16F: 上記のものと ・FILSI ・MOVM ・FILSW ・FILSWI ・MOVMW 次に . ほかのコマンドに影響を及ぼす注意事項について説明します。 ● 危険なブレークポイント • 命令の先頭以外のアドレスにブレークポイントを設定しないでください。 そのブレークポイントが , 2 バイト長以上の命令の最後の 1 バイトで , かつ , そのア ドレスが偶数番地の場合は , 次のような異常動作の原因になります。 - その命令を STEP コマンドでステップ実行すると , 命令実行が中断せずに実行を 続けます。 - GO コマンドで指定できるブレークポイントをこの命令の直後の命令に設定して も , そのブレークポイントではブレークしません。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 July 1, 2014, CM41-00313-8 159 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al データブレーク 2.3.4.2 データブレークとは , プログラム実行中に指定したアドレスに対しデータアクセス ( リードまたはライト ) が行われた場合にプログラム実行を中断させる機能です。 ■ データブレークとは データブレークは , 指定アドレスを MCU がデータアクセスした場合にプログラム実行 を中断させる機能です。本デバッガでは 2 個設定可能です。 データブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by databreak at アクセスアドレス ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「3.9 SET DATABREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ データ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 160 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l データ監視ブレーク 2.3.4.3 指定データと一致している間に , プログラムが指定アドレスに達した場合に実行を中 断する , 特殊なブレーク機能です。 ■ データ監視ブレークとは 指定データと一致している間に,プログラムが指定アドレスに達した場合に実行を中断 する , 特殊なブレーク機能です。 データ監視ブレークのブレーク条件を図で表すと , 下図のようになります。 プログラムの流れ 指定アドレス データ監視 データ一致していない 場合ブレークしない データ一致 指定アドレス データ一致している 場合ブレークする ■ 設定数 データ監視ブレークの最大定数とブレーク条件は , 以下のように異なります。 • データ監視ブレーク ブレーク条件はアドレス , データにて設定します。最大 4 ポイントまで設定可能で す。ただし『シーケンサ』または『トレーストリガ』と併用するため , 変動します。 ■ 設定方法 データ監視ブレークは , 次のコマンドにより設定できます。 • コマンド - SET BREAK/DATAWATCH • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『ハードウェア / データ監視』 July 1, 2014, CM41-00313-8 161 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.4.4 S up po r t M a nu al シーケンシャルブレーク シーケンシャルブレークとは , イベントのシーケンシャル制御により , シーケンシャ ル条件が成立した場合に , プログラム実行を中止させる機能です。 ■ シーケンシャルブレークとは イベントのシーケンシャル制御により , シーケンシャル条件が成立した場合に , プログ ラム実行を中止させる機能です。SET MODE コマンドで設定するイベントモードが ノーマルモードの場合に使用できます。 シーケンシャルブレークでブレークした場合,ステータスバーに次のメッセージが表示 されます。 Break at アドレス by sequential break シーケンシャルブレーク機能についての詳細は「2.3.5 シーケンサによる制御」を参照 してください。 ■ 設定方法 シーケンシャルブレークの設定は次の手順で行います。 1. イベントモードの設定 (SET MODE) 2. イベントの設定 (SET EVENT) 3. シーケンサの設定 (SET SEQUENCE) 162 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ガーデッドアクセスブレーク 2.3.4.5 ガーデッドアクセスブレークとは , 設定したアクセス属性に違反してアクセスが行わ れた場合 , およびガーデッド ( 未定義エリアのアクセス不可 ) 領域をアクセスした場 合に起こるプログラム実行の中断のことです。 ■ ガーデッドアクセスブレークとは ガーデッドアクセスブレークとは , [ 環境 ] - [ デバッガのメモリマップ ] メニューで 設定したアクセス属性に違反してアクセスが行われた場合 , およびガーデッド ( 未定義 エリアのアクセス不可 ) 領域をアクセスした場合に起こるプログラム実行の中断のこ とです。 ガーデッドアクセスブレークには以下の 3 種類があります。 コードガーデッド コード属性を持たない領域に対し , 命令実行を行った場合にブレークする。 リードガーデッド リード属性を持たない領域に対し , 読出しを行った場合にブレークする。 ライトガーデッド ライト属性を持たない領域に対し , 書込みを行った場合にブレークする。 プログラム実行中に , ガーデッドアクセスが起こると , ステータスバーに次のメッセー ジを表示してプログラム実行を中断します。 Break at アドレス by guarded access {code/read/write} at アクセスアドレス <注意事項> コードガーデッドは , プリフェッチの影響を受けます。 F2MC-16L/16LX/16/16H ファミリでは , 最大 4 バイトまでプリフェッチするため , プログ ラム領域をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 5 バイト ) に設定してください。 また F2MC-16F ファミリでも , 最大 8 バイトまでプリフェッチするため , プログラム領域 をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 9 バイト ) に設定してください。 July 1, 2014, CM41-00313-8 163 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.4.6 S up po r t M a nu al トレースバッファフルブレーク トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 ■ トレースバッファフルブレークとは トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 トレースバッファフルブレークでブレークした場合,ステータスバーに次のメッセージ が表示されます。 Break at アドレス by trace buffer full ■ 設定方法 トレースバッファフルブレークの制御は次の方法で行います。 • コマンド - SET TRACE/BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.30 SET TRACE (type2)」を参照してください。 • ダイアログ - トレース設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 164 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l パフォーマンスバッファフルブレーク 2.3.4.7 パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム 実行を中断する機能です。 ■ パフォーマンスバッファフルブレークとは パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム実 行を中断する機能です。 パフォーマンスバッファフルブレークでブレークした場合,ステータスバーに次のメッ セージが表示されます。 Break at アドレス by performance buffer full ■ 設定方法 パフォーマンスバッファフルブレークの制御は次の方法で行います。 • コマンド - SET PERFORMANCE/BREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「4.7 SET PERFORMANCE (type1)」を参照してください。 • ダイアログ - パフォーマンス設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.13 パフォーマンス」を参照して ください。 July 1, 2014, CM41-00313-8 165 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.4.8 S up po r t M a nu al 外部トリガブレーク エミュレータが持っている TRIG 端子から外部信号の入力があった場合に , プログラ ムの実行を中断させる機能です。 ■ 外部トリガブレークとは エミュレータが持っている TRIG 端子から外部信号の入力があった場合に , プログラム の実行を中断させる機能です。 外部トリガブレークでブレークした場合,ステータスバーに次のメッセージが表示され ます。 Break at アドレス by external trigger break ■ 設定方法 外部トリガブレークの制御は次の方法で行います。 • コマンド - SET TRIGGER 『SOFTUNE Workbenchコマンドリファレンスマニュアル』 の 「3.42 SET TRIGGER」 を参照してください。 • ダイアログ - デバッグ環境設定ダイアログ [ エミュレーション ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」を参照し てください。 166 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l 強制ブレーク 2.3.4.9 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request <注意事項> MCU が低消費電力モード中およびホールド状態での強制ブレークはできません。プログ ラム実行中 , [ デバッグ ] - [ 停止 ] メニューによって強制ブレークを要求した場合 , 低消費 電力モード , ホールド状態であれば [ デバッグ ] - [ 停止 ] メニューは無視されます。どう してもブレークさせたい場合は , [ デバッグ ] - [ 停止 ] メニュー入力後 , ユーザシステム側 で要因を解除するか , [ デバッグ ] - [MCU のリセット ] メニューを用いて要因を解除して ください。実行中に低消費電力モード , ホールド状態になった場合は , ステータスバーに 状態が表示されます。 July 1, 2014, CM41-00313-8 167 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.5 S up po r t M a nu al シーケンサによる制御 本エミュレータは , イベントの制御を行うシーケンサを持っています。 このシーケンサにより , プログラムのある流れ ( シーケンス ) に着目したブレークま たはトレース制御ができます。この機能より発生するブレークのことをシーケン シャルブレークとよびます。 ■ シーケンサによる制御 表 2.3-6 に示すように 3 レベルの制御ができます。 1 つのレベルには 1 個のイベントが設定できます。 シーケンサは , 必ずレベル 1 からレベル 2, レベル 3 へ通過しますが , シーケンサのリス タート条件としてイベントを 1 個指定できます。 MB2147-01 にてデバッグ機能が Trace Enhancement モードの場合 , シーケンサによるト レース制御が可能です。 1. トレース取得終了 2. 次のブロックへ遷移 ( マルチトレースモード時だけ ) 表 2.3-6 シーケンサの仕様 機能 仕 様 レベル数 3 レベル + リスタート条件あり 1 レベルの条件 イベント 1 条件 ( 各条件ごとに 1 ~ 16777215 回のパスカウン トが指定可能 ) リスタート条件 イベント 1 条件 (1 ~ 16777215 回のパスカウントが指定可能 ) 条件成立時の動作 任意のレベルへ分岐またはシーケンサの終了 ■ イベントの設定 MCU のバスの動作を監視して , 指定した条件でシーケンサ用のトリガを発生させるこ とができます。この機能をイベントとよびます。 イベントでは , コード (/CODE) データアクセス (/READ/WRITE) を指定できます。 イベントの最大設定数は 8 個ですが , トレーストリガと共通のハードウェアを使用する ため , 実際には次のようになります。 現在のイベント最大設定数 = 8 - ( 現在のトレーストリガ設定数 + 現在のデータ監視ブレーク設定数 ) イベントに設定できる条件を表 2.3-7 に示します。 168 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l 表 2.3-7 イベントおよびトレーストリガに設定できる条件 条件 内容 アドレス メモリ位置 ( アドレスビットマスク不可 ) データ 16 ビットデータ ( データビットマスク可能 ) アクセスサイズ バイト , ワード ステータス コード / データリード , データライトより選択 <注意事項> 命令実行 (/CODE) は , 命令が実行された場合だけイベントトリガが発生します。ほかのス テータス (/READ や /WRITE) と同時には , 指定できません。 イベントの設定は次のコマンドで行います。 SET EVENT : イベントの設定 SHOW EVENT : イベント設定状態の表示 CANCEL EVENT : イベントの削除 【例】 >SET EVENT/CODE func1 >SET EVENT/WRITE data[2],!d=h'10 >SET EVENT/READ/WRITE 102 July 1, 2014, CM41-00313-8 169 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.5.1 S up po r t M a nu al シーケンサの設定 シーケンサは以下の順で動作します。 1) プログラム実行を開始するとシーケンサがスタートします。 2) 1 ~ 2 の各レベルの設定により条件成立時に次のレベルへ分岐します。 3) リスタート条件成立時にはシーケンサを再度開始します。 4) レベル 3 の条件が成立した場合は , シーケンサが終了しブレークします。 ■ シーケンサの設定 シーケンサは以下の順で動作します。各レベルおよびリスタート条件として , イベント を設定できます。 1. プログラム実行を開始するとシーケンサがスタートします。 2. 1 ~ 2 の各レベルの設定により条件成立時に次のレベルへ分岐します。 3. リスタート条件成立時にはシーケンサを再度開始します。 4. レベル 3 の条件が成立した場合には , シーケンサが終了しブレークします。 シーケンサの設定は次のコマンドで行います。 SET SEQUENCE: シーケンサ用イベントの設定 【例】 >SET SEQUENCE 1, 3, 2, r=4 レベル 1 ~ 3 にそれぞれイベント 1, 3, 2 を , リスタート条件にイベント 4 を指定する。 170 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l 図 2.3-1 シーケンサの動作 プログラム実行開始 レベル1 イベント1発生 NO YES YES イベント4発生 レベル2 イベント3発生 NO YES YES イベント4発生 レベル3 イベント2発生 NO YES ブレーク ■ シーケンサの設定方法 シーケンサはダイアログまたはコマンドから設定できます。 ● ダイアログによる設定 [デバッグ]‐[シーケンス]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.6 シーケンス」を参照してく ださい。 ● コマンドによる設定 1. SET EVENT コマンドによりイベントを設定します。 2. SET SEQUENCE コマンドにて設定したイベントをシーケンスとして設定します。 詳 細 は『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「3.22 SET EVENT(type 2)」または「3.28 SET SEQUENCE (type2)」を参照してください。 July 1, 2014, CM41-00313-8 171 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6 S up po r t M a nu al リアルタイムトレース プログラム実行中にアドレス , データ , ステータス情報と外部プローブによりサンプ リングしたデータをマシンサイクル単位にサンプリングし , トレースバッファに記録 できます。この機能をリアルタイムトレースとよびます。 リアルタイムトレースにより記録したデータからプログラム実行履歴を詳細に解析 できます。 ■ トレースバッファ マシンサイクル単位にサンプリングして記録したデータをフレームとよびます。 トレースバッファは 64K(65536) フレーム分の容量があります。 トレースバッファはリング状の構造となっているため,トレースバッファがいっぱいに なった場合は自動的にトレースバッファの先頭から上書きされて記録されます。 ■ トレースデータ トレース機能でサンプリングされるデータをトレースデータとよびます。 次のデータがサンプリングされます。 アドレス データ ステータス情報 アクセスステータス : リード / ライト / 内部アクセスなど デバイスステータス : 命令実行 , リセット , ホールドなど キューステータス : 命令キューの残りバイト数など データ有効サイクル情報 : データの有効 / 無効 (データ信号はほかの信号と共用して使用されるため,必ずしもデータ情報が出てい るとは限りません。したがって , データ情報が有効であるか無効であるかを示す情 報をサンプリングしています。) 直前のフレームとの実行時間の差分 (25ns 単位 ) ■ トレースされないデータ 次のものはトレースバッファ内にそのアクセスが残りません。 ネイティブモード時のアクセスデータの一部 F2MC-16L/16LX ファミリのチップは , ネイティブモードで動作するときに , 内部で 複数のバスが同時に動作することがありますが , 本エミュレータでは , 内部 ROM 用 のバス監視を優先します。したがって , このとき同時にアクセスされたほかのバス 内容をサンプリングしないことがあります ( デバッグモード時は , すべての動作が サンプリングされます ) 。 172 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ■ フレーム番号 サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースバッファ中のどの位置から表示するかの指定は , フレーム番号により行いま す。シーケンサ終了のトリガ発生位置のトレースデータには 0 番が , トリガ発生位置に 到達するまでにサンプリングされたトレースデータには負の番号が付けられます ( 図 2.3-2 参照 )。 シーケンサ終了のトリガ位置がない場合は,最後にサンプリングされたトレースデータ が 0 となります。 図 2.3-2 トレース時のフレーム番号 ・ ・ ・ -3 -2 -1 0 (トリガ発生位置) ■ トレースフィルタ 限られたトレースバッファを有効に活用するため,コードフェッチのほかにも特定領域 へのデータアクセス情報を取得する機能があり , これをトレースフィルタとよびます。 データトレースフィルタ機能では , 次の値を 2 領域分指定できます。 アドレス アドレスマスク アクセス属性 ( リード , ライト ) また , SLEEPやREADY などのような複数個のトレースフレームを占有する冗長フレー ムのサンプリングを 1 フレーム分に抑える機能もあります。 ■ トレーストリガの設定 MCU のバスの動作を監視して , 指定した条件でトレース開始用のトリガを発生させる ことができます。この機能をトレーストリガとよびます。 トレーストリガでは , コード (/CODE) データアクセス (/READ/WRITE) を指定できます。 トレーストリガの最大設定数は , コード属性データアクセス属性それぞれ 8 個ですが , イベントと共通のハードウェアを使用するため , 実際には次のようになります。 現在のトレーストリガ最大設定数 = 8 - ( 現在のデータ監視ブレーク設定数 + 現在のイベント設定数 ) トレーストリガに設定できる条件については , 前述の表 2.3-6 をご参照ください。 July 1, 2014, CM41-00313-8 173 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al トレーストリガの設定は次のコマンドで行います。 : トレーストリガの設定 CANCEL TRACETRIGGER : トレーストリガの削除 SHOW TRACE/STATUS トレース設定状態の表示 SET TRACETRIGGER : トレースサンプリングの動作を図 2.3-3 に示します。 図 2.3-3 トレースサンプリングの動作 ( トレーストリガ ) スタート 再開 ↓ ↓ 中断 再開 中断 ↓ ↓ ↓ 再開 中断 ↓ ↓ プログラムの流れ トレースバッファ ■ データ監視トレーストリガの設定 MB2147-01 において , デバッグ機能が Trace Enhancement モードの場合 , データ監視条 件によるトレーストリガの設定が可能です。 データ監視条件については「2.3.4 ブレーク」のデータ監視ブレークを参照してくださ い。 現在のデータ監視トレーストリガ最大設定数 = 8 - ( データ監視ブレーク設定数 + トレーストリガ設定数 + 現在のイベント設定 数) データ監視トレーストリガの設定は次のコマンドで行います。 SET TRACETRIGGER/DATAWATCH : データ監視トレーストリガの設定 CANCEL TRACETRIGGER/DATAWATCH : データ監視トレーストリガの削除 SHOW TRACETRIGGER/DATAWATCH : データ監視トレーストリガの表示 ■ ユーザプログラム実行中のトレース制御 MB2147-01 において , ユーザプログラム実行中にトレース制御が可能です。ただしト レース実行を終了する必要があります。 制御可能な項目は以下のとおりです。 • トレーストリガの設定 • フィルタリング領域の設定 • トレースデータの表示 • トレースデータのクリア • トレースデータの検索 • トレースディレイの設定 * • 時間測定結果の表示 * • トレース実行の強制終了 / 強制開始 * *: デバッグ機能が Trace Enhancement モード時だけ 174 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l <注意事項> • トレース実行とは , トレースデータの取得状態が「取得中」または「一時停止中」であ ることを意味します。 • トレース実行を終了するには以下の方法があります。 1. トレース実行の強制終了 - トレースウィンドウ-ショートカットメニュー [ 強制終了 ] - トレースツールバー [ 強制終了 ] ボタン 2. トレーストリガ ( 終了 ) - SET TRACETRIGGER コマンド - トレーストリガ設定ダイアログ July 1, 2014, CM41-00313-8 175 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6.1 S up po r t M a nu al シングルトレースの設定方法 シングルトレースを行うには , 1) ~ 4) の設定をします。その後 , プログラムの実行 を行うとトレースデータがサンプリングされます。 1) イベントモードをシングルトレースモードにします。 2) トレース機能を有効にします。 3) イベントおよびシーケンサの設定を行います。 4) トレースバッファフルブレークの設定を行います。 ■ トレースの設定方法 シングルトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行う とトレースデータがサンプリングされます。 1. イベントモードをシングルトレースモードにします。 設定は , SET MODE コマンドで行います。 2. トレース機能を有効にします。 設定は , ENABLE TRACE コマンドで行います。 無効にする場合は , DISABLE TRACE コマンドで行います。 本プログラム起動時は , 有効になっています。 3. イベントおよびシーケンサの設定を行います。 トレーストリガを用いると , トレースサンプリングを制御でき , サイズが限られた トレースバッファを有効に使えるようになります。必要がない場合は , 設定する必 要はありません。 トレーストリガでは , トリガヒットを要因としたトレースサンプリングの開始 / 停 止を指定できます。 トレーストリガを使用する場合には, SET TRACE/TRIGGERコマンドを入力し, SET TRACETRIGGER コマンドでトレーストリガの設定を行います。 4. トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになった場合に , ブレークさせることができます。設 定は , SET TRACE コマンドで行います。本プログラム起動時は , ブレークしない設 定になっています。設定状態は , SHOW TRACE/STATUS で見ることができます。 表 2.3-8 にシングルトレース時に使用できるトレース関係のコマンドを示します。 表 2.3-8 シングルトレース時に使用できるトレース関係のコマンド 使用できるコマンド 176 機能 SET TRACETRIGGER CANCEL TRACETRIGGER トレーストリガの設定 トレーストリガの削除 SET TRACE SHOW TRACE SEARCH TRACE ENABLE TRACE DISABLE TRACE CLEAR TRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレース機能を有効にする。 トレース機能を無効にする。 トレースデータをクリアする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l マルチトレース 2.3.6.2 マルチトレースでは , イベントトリガが発生した場合だけ , そのイベントトリガの前 後のデータをサンプリングします ■ マルチトレース マルチトレース機能を使用するためには SET MODE コマンドで以下のモードに設定し ます。 デバッグ機能:「Trace Enhancement」モード イベントモード: 「マルチトレース」モード マルチトレースでは , イベントトリガ ( トレース終了トリガ ) が発生した場合だけ , そ のイベントトリガの前後のデータをサンプリングします。 連続した実行のトレースではなく , ある変数アクセスが発生したときだけトレースす るというような場合に使用します。 1 回のイベントトリガ発生でサンプリングされたトレースデータをブロックとよびま す。MB2147-01 のマルチトレース用トレースバッファは 64K フレーム分あり , ブロッ クに分割する場合 1 ブロックのサイズを 128/256/512/1024 フレームの中から選択しま す。ブロックサイズにより 64 ~ 512 ブロックサンプリングできます。 マルチトレースのイベントトリガには次の 2 種類があります。 • トレース終了トリガ : ヒットした地点で次のブロックに遷移します。 • マルチトレース終了トリガ : ヒットした地点でトレース取得を終了します。 図 2.3-4 マルチトレース時のサンプリング 実行開始 イベント1 イベント2 イベント3 プログラムの流れ トレースバッファ ブロック ■ マルチトレース時のフレーム番号 1 回のイベント ( トレース終了トリガ ) 発生で , ブロックサイズにより 128 ~ 1024 フ レーム分のデータがサンプリングされます。この 1 つの単位をブロックといい , サンプ リングされたブロックごとに 0 から番号が付けられます。これをブロック番号とよび ます。 1 つのブロックには , イベントトリガ発生位置を中心に前後データがサンプリングされ ています。イベントトリガ発生位置を 0, イベントトリガ発生位置に到達するまでにサ ンプリングされたトレースデータには負の番号が , イベントトリガ発生位置以降にサ ンプリングされたデータには正の番号が付けられます。このフレーム番号をローカル 番号とよびます ( 図 2.3-5 参照 ) 。 July 1, 2014, CM41-00313-8 177 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al ローカル番号とは別に, トレースバッファ中の一番古いデータより1から順に付けられ ているフレーム番号があります。これをグローバル番号とよびます。トレースバッファ は 64K 分ありますので , 1 ~ 65536 のフレーム番号が付けられています ( 図参照 ) 。 どのフレームのデータを表示するかは , グローバル番号か , ブロック番号とローカル番 号により指定します。 図 2.3-5 マルチトレース時のフレーム番号 ブロック番号 トレースバッファ フレーム番号 グローバル番号 1 2 512 ローカル番号 1 2 : : 64 : : 127 128 129 130 : : 192 : : 255 256 -63 -62 : : 0 : : +62 +63 -63 -62 : : 0 : : +62 +63 65409 65410 : : 65472 : : 65535 65536 -63 -62 : : 0 : : +62 +63 ← イベントトリガ ← イベントトリガ ← イベントトリガ ■ トレースディレイ 1 回のイベント発生後に取得するトレースデータをトレースディレイとよびます。ト レースディレイには 2 種類のものがあり , ヒットしたイベントにより異なります。 トレース終了トリガ (イベント) にヒットした場合のディレイはブロックサイズの範囲 (128 ~ 1024 フレーム ) で設定可能です。1 ブロックにはイベントヒット前のトレース データと , トレースディレイを合わせたデータがサンプリングされます。 マルチトレース終了トリガ ( イベント ) にヒットした場合は , それ以降のトレース終了 トリガへのヒット回数分ディレイを取得します。 例:3 ブロック分のトレースディレイを取得したい場合は 4 回のイベントヒットが必要 となります。 178 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 1 2 3 S u p p o r t 4 M a n u a l トレース終了トリガへのヒット4回分取得 マ ル チ ト レ ー ス 終 了 トリガ トレースバッファ= 64ブロック <注意事項> MB2147-01のマルチトレース機能はRAMチェッカ機能と排他になります。詳細は 「2.3.1.6 デバッグ機能」を参照してください。 July 1, 2014, CM41-00313-8 179 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6.3 S up po r t M a nu al マルチトレースの設定方法 マルチトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行う とトレースデータがサンプリングされます。 1. デバッグ機能を「Trace Enhancement」モードにします。 2. イベントモードをマルチトレースモードにします。 3. トレース機能を有効にします。 4. イベントおよびシーケンサの設定を行います。 5. トレースバッファフルブレークの設定を行います。 ■ マルチトレースの設定方法 マルチトレースを行うには , 以下の設定をします。その後 , プログラムの実行を行うと トレースデータがサンプリングされます。 1) デバッグ機能を Trace Enhancement モードにします。 設定は SET MODE コマンドで行います。 2) イベントモードをマルチトレースモードにします。 設定は SET MODE コマンドで行います。 3) トレース機能を有効にします。 設定は , ENABLE MULTITRACE コマンドで行います。 無効にする場合は , DISABLE MULTITRACE コマンドで行います。 4) イベント ( トレーストリガ ) の設定を行います。 マルチトレースをサンプリングするイベントを設定します。 設定は , SET TRACETRIGGER コマンドで行います。 5) トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになった場合に , ブレークさせたい場合に設定しま す。SET MULTITRACE コマンドにより設定します。 6) ブロックサイズの設定を行います。 SET MULTITRACE コマンドにより設定します。 7) トレースディレイの設定を行います。 SET DELAY コマンドにより設定します。 180 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l マルチトレースモードで使用できるトレースに関係するコマンドを表 2.3-9 に示しま す。 表 2.3-9 マルチトレース時に使用できるトレース関係のコマンド モード マルチ トレース モード 使用できるコマンド 機能 SET TRACETRIGGER SHOW TRACETRIGGER CANCEL TRACETRIGGER ENABLE TRACETRIGGER DISABLE TRACETRIGGER イベントの設定 イベント設定状態の表示 イベントの削除 イベントを有効にする。 イベントを無効にする。 SET MULTITRACE SHOW MULTITRACE SEARCH MULTITRACE ENABLE MULTITRACE DISABLE MULTITRACE CLEAR MULTITRACE トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレースデータ機能を有効にする。 トレースデータ機能を無効にする。 トレースデータをクリアする。 SET DELAY SHOW DELAY トレースディレイを設定する。 トレースディレイを表示する。 July 1, 2014, CM41-00313-8 181 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6.4 S up po r t M a nu al トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 ■ トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 【例】 >SHOW TRACE/STATUS ; トレース機能は有効 buffer ful = nobreak ; バッファフルブレーク機能は無効 sampling = end ; トレースサンプリングは終了 code = enable ; コード実行を取得 verbose = disable ; 冗長フレームを取得しない。 frame no. = -00120 to 00000 ; en/dis = enable -120 ~ 0 フレームまで格納されている。 > 182 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示位置の指定 2.3.6.5 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンド でステップ番号もしくはフレーム番号を指定することにより可能です。範囲指定も できます。 ■ トレースデータの表示位置の指定 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンドで ステップ番号もしくはフレーム番号を指定することにより指定します。範囲指定もで きます。 【例】 July 1, 2014, CM41-00313-8 >SHOW TRACE/CYCLE -6 ; -6 フレームから表示する。 >SHOW TRACE/CYCLE -6..0 ; -6 フレームから 0 フレームまで表示する。 >SHOW TRACE -6 ; -6 フレームから表示する。 >SHOW TRACE -6..0 ; -6 フレームから 0 フレームまで表示する。 183 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6.6 S up po r t M a nu al トレースデータの表示形式 SHOW TRACE コマンドにコマンド修飾子を指定することにより表示形式を選択で きます。SET SOURCE コマンドの設定によりソース行を付加するモードになってい れば , ソース行が付加されて表示されます。 トレースデータの表示形式には次の 3 種類があります。 • 命令実行順に表示 (/INSTRUCTION を指定 ) • すべてのマシンサイクルの表示 (/CYCLE を指定 ) • ソース行単位で表示 (/SOURCE を指定 ) ■ 命令実行順に表示 (/INSTRUCTION を指定 ) トレースサンプリングはマシンサイクルごとに行われますが,プリフェッチなどの影響 により測定結果がかなり見づらくなります。そこで , 本エミュレータでは可能な限りト レースデータを解析し , プリフェッチ影響削除 , 実行命令の解析 , および , 命令実行順 序に並び替えなどの処理を自動的に行った結果の表示機能を持っています。ただし , デ バッグモード時だけ指定可能です。 このモードでの表示は , 次のようになります。 アドレス 逆アセンブル表示 16進数 実行された命令を 表示します。 フレーム番号 10進数符号付き データ タイムスタンプ表示 直後のフレームとの実行 時間の差分を10進数10桁 で表示します。単位はns です。 16進数 >SHOW TRACE -194 frame no. address mnemonic time stamp -00675 : FF02C1 PUSHW A 375 -00672 : 018257 external write access. 5F 375 -00669 : 018258 external write access. 5E 375 -00666 : FF02C2 CALL \sort_val 625 -00661 : 018255 external write access. C5 625 -00658 : 018256 external write access. 02 625 \sort_val: -00655 : FF00D2 LINK #0E 500 -00651 : 018253 external read access. 81 625 -00648 : 018254 external read access. 81 625 デバイスステータス -00645 : 000186 internal write access. 0000 -00643 : ** RESET ** > ** STANDBY ** :ハードウェアスタンバイ データアクセス internal internal external external 184 read access: 内部メモリへのリード write access:内部メモリへのライト read access: 外部メモリへのリード write access:外部メモリへのライト ** ** ** ** ** ** RESET ** THOLD ** UHOLD ** WAIT ** SLEEP ** STOP ** :リセット :ツールホールド :ユーザホールド :レディ端子入力 :スリープ :ストップ CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ■ すべてのマシンサイクルの表示 (/CYCLE を指定 ) サンプリングしたすべてのマシンサイクルでの詳細情報を表示します。 このモードでは SET SOURCE コマンドでの設定に関係なく , ソースの表示は行われま せん。 【例】 >SHOW TRACE/CYCLE -672 frame no. address data -00672 : 018257 ----00671 : 018257 5F -00670 : 018257 5F -00669 : 018257 ----00668 : 018257 82 -00667 : FF02C6 5F -00666 : ------ ----00665 : FF02C6 ----00664 : FF02C6 5F06 -00663 : FF00D2 ----00662 : FF00D2 0E08 -00661 : 018255 ---- a-status EWA ----EWA ------ICF --ICF --EWA d-status ------EXECUTE EXECUTE ------EXECUTE EXECUTE EXECUTE ------EXECUTE ------EXECUTE ------- Qst ------------4by --FLH ------- dfg & @ @ & @ @ event C D & @ & @ & time stamp 125 125 125 125 125 125 125 125 125 125 125 125 データの見方 frame no. address data a-status d-status Qst dfg event time stamp ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ① : フレーム番号 (10 進数 ) ② : 実行された命令のアドレス , データアクセスされたアドレス (16 進数 ) ③ : データ (16 進数 ) ④ : アクセス情報 IWA: 内部ライトアクセス EWA: 外部ライトアクセス IRA: 内部リードアクセス ERA: 外部リードアクセス ICF: 内部コードフェッチ ECF: 外部コードフェッチ ---: デバイスの状態情報が有効 ⑤ : デバイスステータス STANDBY: ハードウェアスタンバイ THOLD : ツールホールド UHOLD : ユーザホールド WAIT : レディ端子によるウェイト SLEEP : スリープ STOP : ストップ EXECUTE: 命令実行 RESET : リセット -------: デバイスステータス無効 July 1, 2014, CM41-00313-8 185 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al ⑥ : 命令キューステータス FLH: キューフラッシュ -by: キューの残りコードバイト数 (- は 1 ~ 8) ⑦ : 情報有効フラグ &: アドレスが有効 @: データが有効 ⑧ : イベント情報 C: コードイベント D: データイベント ⑨ : タイムスタンプ表示 (ns 単位 ) 直後のフレームとの実行時間の差分を 10 進数 10 桁で表示 <注意事項> イベントヒットの情報は , ずれて表示されます。特にコード実行では , 命令キュー内のデー タ数を考慮してプリフェッチの影響を取り除いているため , イベントを設定したアドレス のプリフェッチフレームより後ろのフレームにヒット情報が表示されます。 ■ ソース行単位で表示 (/SOURCE を指定 ) ソース行だけを表示します。このモードは , デバッグモード時だけ有効です。 【例】 >SHOW TRACE/SOURCE -1010..-86 step no. source -01007 : sample.c$68 value[i] = &target[I]; -00905 : sample.c$68 value[i] = &target[I]; -00803 : sample.c$68 value[i] = &target[I]; -00698 : sample.c$70 -00655 : sample.c$9 -00594 : sample.c$13 -00185 : sample.c$14 i = k; -00149 : sample.c$15 p = tblp[i - 1]; -00088 : sample.c$16 while ((j = 2 * i) sort_val(value, 16L); { for (k = max / 2; k >= 1; k--){ <= max){ <注意事項> MCU の動作を停止 ( ツールホールド ) させた直後に , 次の動作をトレースサンプリングす ることがあります。量産品にはない評価用チップ固有の動作のため , 注意してください。 0x000100 番地および 0x0FFFFDC ~ 0x0FFFFFF 番地に対するアクセス 186 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l オンザフライによるトレースデータの読出し 2.3.6.7 トレースデータをプログラム実行中に読み出すことができます。 だたし , サンプリング中は読み出すことはできません。トレース機能を無効にするか , トレースを終了させてから読み出す必要があります。 ■ オンザフライによるトレースデータの読出し トレース機能を無効にするには , DISABLE TRACE コマンドにより行います。 現在 , トレース機能が有効か無効かは , SHOW TRACE コマンドに /STATUS を指定し て実行するか , 組込み変数 %TRCSTAT で確認することができます。 また , シーケンサが終了し , ディレイカウントが終了した場合 , トレースが終了します。 ここで , ブレークさせない指定にしておけば , ブレークせずにトレースが終了した状態 となります。トレースが終了しているかどうかは , SHOW TRACE コマンドに /STATUS を指定して実行するか , 組込み変数 %TRCSAMP で確認することができます。 トレースデータを読み出すには SHOW TRACE コマンドを , トレースデータを検索する には SEARCH TRACE コマンドを使用します。 (例) >GO >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak sampling code = on ← トレースサンプリング中 : enable verbose : disable >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak sampling code = end ← トレースサンプリング終了 : enable verbose : disable frame no. = -00805 to 00000 >SHOW TRACE -52 step no. address mnemonic time stamp sort_val: -00655 : FF00D2 LINK #0E 625 -00651 : 018253 external read access. 81 500 -00648 : 018254 external read access. 81 625 -00645 : 000186 internal write access. 0000 625 トレースが終了している状態で CLEAR TRACE コマンドを実行すると再度シーケンサ を最初から実行し , トレースデータをサンプリングし直すことができます。 July 1, 2014, CM41-00313-8 187 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.6.8 S up po r t M a nu al トレースデータを保存するには トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 188 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 2.3.7 S u p p o r t M a n u a l パフォーマンス測定 2 つのイベント発生間の時間測定 , 通過回数を測定できます。リアルタイムに実行し ながら繰り返し測定ができ , 実行後 , データを集計し表示を行います。 この機能によりプログラムのパフォーマンスを測定できます。 パフォーマンス測定を行うには , SET MODE コマンドで設定するイベントモードを パフォーマンスモードにする必要があります。 ■ パフォーマンス測定の機能 パフォーマンス測定では , 2 つのイベント間の時間測定とイベントの発生回数の測定が できます。65535 回イベントが発生するまで測定できます。 ● 時間測定 2 つのイベント間の時間を測定します。 イベントは 1 ~ 8 の 8 ポイント設定できますが , パフォーマンス測定モードにより , 次 のような組合せとなります。 4 区間の組合せは , 次の番号に固定となります。 区間 開始イベント番号 終了イベント番号 1 1 2 2 3 4 3 5 6 4 7 8 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなり,そのイベントが発生 した回数を測定します。 July 1, 2014, CM41-00313-8 189 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.7.1 S up po r t M a nu al パフォーマンス測定手順 パフォーマンス測定は , 次の手順により測定を行います。 • イベントモードの設定 • タイマの最小測定単位の設定 • パフォーマンスバッファフルブレークの指定 • イベントの設定 • プログラム実行 • 測定結果の表示 • 測定結果のクリア ■ イベントモードの設定 SET MODE コマンドによりイベントモードをパフォーマンスモードにします。 これにより , パフォーマンス測定が有効になります。 (例) >SET MODE/PERFORMANCE > ■ タイマの最小測定単位 パフォーマンス測定に使用するタイマの測定単位は 1ns です。また , 測定データの分解 能は 25ns になります。 ■ パフォーマンスバッファフルブレークの指定 パフォーマンス測定データ格納用のバッファがいっぱいになった場合,プログラムの実 行をブレークできます。この機能をパフォーマンスバッファフルブレークとよびます。 パフォーマンスバッファは , 65535 回イベントが発生するといっぱいになります。 パフォーマンスバッファフルブレークを指定しなかった場合は,パフォーマンス測定は 終了しますが , ブレークはしません。 (例) >SET PERFORMANCE/NOBREAK ← ブレークしない指定 > ■ イベントの設定 イベント設定 ( パフォーマンス区間設定 ) ダイアログ , または SET EVENT コマンドで イベントを設定します。 時間測定の開始 , 終了ポイントは , イベントにより指定します。 イベントは 1 ~ 8 の 8 ポイント設定できますが , パフォーマンス測定では , 次のような 組合せとなります。 190 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ● 時間測定 4 区間の組合せは , 次の番号に固定となります。 区間 開始イベント番号 終了イベント番号 1 1 2 2 3 4 3 5 6 4 7 8 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなります。 ■ プログラム実行 GO, CALL コマンドによりプログラム実行すると測定されます。ある区間の時間測定 中にブレークした場合は , その区間の測定中のデータは捨てられます。 ■ パフォーマンス測定データの表示 SHOW PERFORMANCE コマンドで表示を行います。 ■ パフォーマンス測定データのクリア CLEAR PERFORMANCE コマンドにより測定データのクリアができます。 (例) >CLEAR PERFORMANCE > July 1, 2014, CM41-00313-8 191 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al パフォーマンス測定データの表示 2.3.7.2 SHOW PERFORMANCE コマンドで時間測定の表示 , 測定回数の表示を行います。 ■ 時間測定の表示 表示を行うには , 開始イベント番号 , または終了イベント番号を指定します。 イベント番号 その時間内の測定回数 >SHOW PERFORMANCE/TIME 1, 9000, 18999, 1000 最小実行時間 最大実行時間 event min time max time avr time = = = = 1 -> 2 11637.0 17745.0 14538.0 平均実行時間 総測定回数 time (µs) | count -----------------------------+--------0.0 8999.0 | 0 9000.0 9999.0 | 0 10000.0 10999.0 | 0 11000.0 11999.0 | 2 12000.0 12999.0 | 19 13000.0 13999.0 | 52 14000.0 14999.0 | 283 15000.0 15999.0 | 92 16000.0 16999.0 | 3 17000.0 17999.0 | 1 18000.0 18999.0 | 0 19000.0 | 0 -----------------------------+--------total | 452 >SHOW PERFORMANCE/TIME 1,13000,16999,500 event = 1 -> 2 time (µs) | count min time = 11637.0 -----------------------------+--------max time = 17745.0 0.0 12999.0 | 21 avr time = 14538.0 13000.0 13499.0 | 13 13500.0 13999.0 | 39 14000.0 14499.0 | 121 下限表示時間 14500.0 14999.0 | 162 15000.0 15499.0 | 76 15500.0 15999.0 | 16 16000.0 16499.0 | 2 上限表示時間 16500.0 16999.0 | 1 17000.0 17499.0 | 1 -----------------------------+--------total | 452 192 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l カバレッジ測定 2.3.8 本エミュレータは , C0 カバレッジ測定機能を持っています。この機能を利用する と , プログラム全体の何 % が実行されたかを知ることができます。 ■ カバレッジ測定機能 プログラムをテストする場合は , いろいろなテストデータを与えて実行し , 結果が正し いことを確認します。テストがひととおり終わると , そのプログラムは全体がくまなく 実行されたはずです。もし , プログラムの一部分が実行されなかったとしたら , テスト 項目が不充分だった可能性があります。 本エミュレータが持っているカバレッジ機能を利用すると , プログラム全体の何 % が 実行されたのかを知ることができます。 また , 単に比率だけでなく , 具体的にどの番地がアクセスされなかったのかも詳細に確 認することができます。 本デバッガでは , カバレッジ測定を行う範囲を設定できます。 C0 カバレッジを行う場合は , コード領域にだけ測定範囲を設定してください。 また , データ領域に測定範囲を設定することにより , 使用されていない変数を探し出す など , 変数のアクセス状態を確認することができます。 カバレッジ測定ができるのは,デバッグ領域として設定されているアドレス空間に限ら れます。したがって , あらかじめデバッグ領域を設定しておく必要があります。 この機能は , [ 環境 ] - [ デバッグ環境の設定 ] - [ デバッグ環境 ] メニューで開くデ バッグ環境ダイアログのチップタブを選択し ,「カバレッジ機能」を有効にすると操作 可能です。 ■ カバレッジ測定手順 カバレッジ測定の手順は次のようになります。 1. カバレッジ測定範囲の設定…SET COVERAGE 2. カバレッジの測定…GO, STEP, CALL 3. 測定結果の表示…SHOW COVERAGE ■ カバレッジ測定操作 カバレッジ測定の際には , 以下の操作ができます。 • カバレッジデータのロード / セーブ…LOAD/COVERAGE, SAVE/COVERAGE • カバレッジ測定の中断と再開…ENABLE COVERAGE, DISABLE COVERAGE • カバレッジデータのクリア…CLEAR COVERAGE • カバレッジ測定範囲の解除…CANCEL COVERAGE <注意事項> カバレッジ測定機能を使用する場合 , 0 バンクの RAM 領域のモニタリング機能は使用で きません。詳細は「2.3.9 リアルタイムモニタ」を参照してください。 July 1, 2014, CM41-00313-8 193 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.8.1 S up po r t M a nu al カバレッジ測定手順 カバレッジ測定の手順は次のようになります。 • カバレッジ測定範囲の設定 … SET COVERAGE • カバレッジの測定 … GO, STEP, CALL • 測定結果の表示 … SHOW COVERAGE ■ カバレッジ測定範囲の設定 SET COVERAGE コマンドで測定範囲を設定します。測定範囲は , デバッグ領域として 設定されている範囲内にだけ設定できます。設定数は最大 32 領域までです。 コマンド修飾子に /AUTOMATIC を指定するとロードされているモジュールのコード 領域が自動的に設定されます。ただし , C コンパイラのライブラリをリンクしている場 合は , ライブラリのコード領域は設定されません。 (例) >SET COVERAGE FF0000 .. FFFFFF ■ カバレッジの測定 カバレッジ測定の準備ができたら , プログラムを実行させます。 GO, STEP, CALL コマンドによりプログラム実行すると測定されます。 ■ カバレッジ測定結果の表示 SHOW COVERAGE コマンドで以下の測定データの表示ができます。 • 全測定領域のカバレッジ率の表示 • ロードモジュールのカバレッジ率の表示 • 16 アドレスをひとかたまりとした概要表示 • 1 アドレスごとのアクセス状態を表示する詳細表示 • ソース行単位のカバレッジ測定結果表示 • 機械命令単位のカバレッジ測定結果表示 ● 全測定領域のカバレッジ率の表示 ( コマンド修飾子に /TOTAL を指定 ) >SHOW COVERAGE/TOTAL total coverage : 82.3% ● ロードモジュールのカバレッジ率の表示 ( コマンド修飾子に /MODULE を指定 ) >SHOW COVERAGE/MODULE sample.abs . . . . . +- startup.asm . . . +- sample.c . . . . +- samp.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (84.03%) (90.43%) (95.17%) (100.00%) ロードモジュールと各モジュールのカバレッジ率を表示します。 194 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l ● 概要表示 ( コマンド修飾子に /GENERAL を指定 ) >SHOW COVERAGE/GENERAL (HEX)0X0 +1X0 +2X0 +---------------+---------------+-----address 0123456789ABCDEF0123456789ABCDEF0123456 FF0000 **3*F*....... -----... ABCDEF C0(%) 32.0 16アドレスごとのアクセス状況を表示します。 . :アクセスなし 1~F :16個のアドレス内のアクセスされた数を16進数で表示 * :16個のアドレスをすべてアクセス ● 詳細表示 ( コマンド修飾子に /DETAIL を指定 ) 1行分のカバレッジ率を 表示します。 >SHOW COVERAGE/DETAIL FF0000 address +0 +1 +2 +3 +4 +5 FF0000 - - - - - FF0010 - - - - - FF0020 . . . . - FF0030 - - - - - FF0040 - . - - - FF0050 - - - - - FF0060 . . . . . . FF0070 . . . . . . FF0080 . . . . . . +6 . . . +7 . . . . +8 . . . . +9 . . . . +A +B +C +D +E +F C0(%) - - - - - - 100.0 - - - - - - 100.0 . . . . . . 18.6 - - - - - - 100.0 - - - - - - 93.7 - - - - - - 100.0 . . . . . . 0.0 . . . . . . 0.0 . . . . . . 0.0 1アドレスごとにアクセス状態を表示します。 . - July 1, 2014, CM41-00313-8 :アクセスなし :アクセスあり 195 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al ● ソース行単位で表示 ( コマンド修飾子に /SOURCE を指定 ) >SHOW COVERAGE/SOURCE main * 70: { 71: int i; 72: struct table *value[16]; 73: * 74: for (i=0; i<16; i++) * 75: value[i] = &target[i]; 76: * 77: sort_val(value, 16L); . 78: } ソース行のアクセス状況を表示します。 . :アクセスなし * :アクセスあり 空白 :コードが生成されないまたはカバレッジ測定範囲外の行 ● 機械命令単位で表示 ( コマンド修飾子に /INSTRUCTION を指定 ) >SHOW COVERAGE/INSTRUCTION F9028F sample.c$70 { * F9028F \main: * F9028F 0822 LINK #22 * F90291 4F01 PUSHW RW0 sample.c$74 for (i=0; i<16; i++) . F90293 D0 MOVN A,#0 . F90294 CBFE MOVW @RW3-02,A . F90296 BBFE MOVW A,@RW3-02 . F90298 3B1000 CMPW A,#0010 . F9029B FB18 BGE F902B5 sample.c$75 value[i] = &target[i]; . F9029D BBFE MOVW A,@RW3-02 . F9029F 0C LSLW A . F902A0 98 MOVW RW0,A . F902A1 71F3DE MOVEA A,@RW3-22 . F902A4 7700 ADDW RW0,A . F902A6 4214 MOV A,#14 . F902A8 7833FE MULUW A,@RW3-02 . F902AB 38A001 ADDW A,#01A0 ソース行のアクセス状況を表示します。 196 . :アクセスなし * :アクセスあり 空白 :カバレッジ測定範囲外の命令 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 2.3.9 S u p p o r t M a n u a l リアルタイムモニタ プログラム実行中にメモリを表示する機能をリアルタイムモニタ機能とよびます。 ■ リアルタイムモニタ 本エミュレータデバッガでは,評価用チップが外部トレースバスインタフェースを持つ 場合 , リアルタイムモニタ機能を使用できます。 リアルタイムモニタ用に 256 バイト分の領域を 2 領域表示できるように , リアルタイム モニタウィンドウを用意しています。プログラム実行前に実際のメモリからデータを 読み出して表示する機能 ( コピー機能 ) や書き換わったデータを赤色表示する機能があ ります。 ■ 0 バンクの RAM 領域を参照する場合 0 バンクの RAM 領域にてリアルタイムモニタ機能を使用する場合は , 以下の方法によ りカバレッジ機能を無効にする必要があります。 • コマンド DISABLE COVERAGE 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「4.23 DISABLE COVERAGE」を参照してください。 • ダイアログ デバッグ環境設定ダイアログ [ チップ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」を参照して ください。 July 1, 2014, CM41-00313-8 197 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.10 S up po r t M a nu al 実行時間測定 プログラムの実行時間を測定する機能です。 ■ 測定項目 プログラムの実行開始から停止までの時間を測定します。 本エミュレータデバッガではエミュレーションタイマまたはサイクルカウンタにて測 定を行います。それぞれの特長は以下のとおりです。 • エミュレーションタイマ 分解能 :25ns 有効ビット数 :56 ビット 最大測定時間 :最大 72,057,594,037,927,935 × 25ns • サイクルカウンタ 有効ビット数 :56 ビット 最大測定サイクル数 :72,057,594,037,927,935 サイクル いずれの場合も測定はプログラム実行のたびに行われ , 測定結果は以下の値を表示し ます。 • 直前のプログラム実行におけるサイクル数 • 前回クリアしてからの実行サイクル数の合計 ■ 測定結果の表示 測定結果の表示は以下のどちらかで行います。 • ダイアログによる表示 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに 表示します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによる表示 コマンドウィンドウにて SHOW TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 ■ 測定結果のクリア 測定結果のクリアは以下のどちらかで行います。 • ダイアログによるクリア [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに て[クリア]ボタンを押します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 198 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l • コマンドによるクリア コマンドウィンドウにて CLEAR TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 <注意事項> 実行時間測定は 1 回の実行につき 10 サイクル程度多く計測されます。実行サイクルを計 測する場合には , 誤差の影響を少なくするために多くの命令を連続実行するようにしてく ださい。 July 1, 2014, CM41-00313-8 199 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e 2.3.11 S up po r t M a nu al パワーオンデバッグ エミュレータ (MB2147-01) でのパワーオンデバッグについて説明します。 ■ パワーオンデバッグ ターゲットの電源投入から始まる動作シーケンスをデバッグする作業をパワーオンデ バッグとよびます。 エミュレータ (MB2147-01) では , パワーオンデバッグ専用の端子を持つ品種について , ターゲットシステムの電源投入直後のシーケンスをデバッグ可能です。このとき , 次の 機能を使用できます。 コードブレーク データ監視ブレーク データブレーク シーケンサとイベント トレーストリガ トレース測定 カバレッジ測定 パワーオンデバッグの手順は , 次のようになります。 • エミュレータ上部にマウントしたアダプタボード上のディップスイッチを設定 • ターゲットボードとエミュレータ本体の電源を投入 • Workbench を起動 , デバッグを開始 デバッグのため , ハードウェアブレークなどを設定 • パワーオンデバッグを開始するため, [実行]-[パワーオンデバッグ]メニューを入力 [ ユーザ電源監視電圧 ] ダイアログから監視電圧の下限値を入力 ステータスバーに "PON" が表示される。 • プログラムを実行する。 • プログラム実行中に , ターゲットボードの電源を切断後 , 再投入 • デバッグ作業を行う。 • パワーオンデバッグを終了するため, [実行]-[パワーオンデバッグ]メニューを入力 200 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l RAM チェッカ 2.3.12 RAM チェッカの機能について説明します。 ■ 概要 RAM チェッカは , SOFTUNE Workbench で監視アドレスに対するアクセス履歴のログ を取得し , 付属ツール「RAM Checker Viewer」の使用により , ログファイルをグラフィ カル表示させることができます。 SOFTUNE Workbench では , 次の機能を提供します。 - 監視アドレスを 16 ポイント設定可能 - 監視アドレスのデータアクセス履歴を 1ms 間隔でロギング - 監視アドレスを 100ms 間隔でモニタリング ■ RAM チェッカウィンドウ 監視アドレスに対するロギング / モニタリングを行うために , SOFTUNE Workbench に デバッグウィンドウ「RAM チェッカ」を追加しました。 RAM チェッカウィンドウの操作方法は『SOFTUNE Workbench 操作マニュアル』の 「3.21 RAM チェッカウィンドウ」を参照してください。 ■ 使用条件 RAM チェッカは以下の条件で動作します。 - エミュレータ:MB2147-01 - 通信デバイス:USB ご使用のエミュレータが MB2141/MB2147-05 の場合 , または通信デバイスが RS/LAN の場合には , RAM チェッカは使用できません。使用できない環境の場合 , メインメ ニュー [ 表示 ]-[RAM チェッカ ] が有効になりません。 <注意事項> RAM チェッカは MB2147-01 において , デバッグ機能が "RAM Checker" モード時だけ有 効です。詳細は「2.3.1.6 デバッグ機能」を参照してください。 July 1, 2014, CM41-00313-8 201 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al ■ 仕様一覧 監視ポイント数 16 ポイント サイズ バイト / ワード (16bit) イベント機能 最大 8 ポイント サンプリング時間 1ms ( 固定 ) 更新間隔 100ms ( 固定 ) ログファイル形式 SOFTUNE 形式または CSV 形式 • SOFTUNE 形式 - RAM Checker viewer で表示する場合 ( 推奨 ) - デフォルト拡張子は ".SRL" • CSV 形式 - RAM Checker viewer 以外で表示する場合 - デフォルト拡張子は ".CSV" <注意事項> CSV 形式は必要とするデータのサイズが SOFTUNE 形式と比較して約 4 倍になります。 ■ RAM チェッカを使用するには RAM チェッカを使用するには , 監視ポイント , ログファイル , ロギング状態を GUI ま たはコマンドで設定します。 • GUI - [ デバッグ ] - [ デバッグ機能の選択 ] により , デバッグ機能を "RAM Checker" モードに設定します。 - RAM チェッカウィンドウのショートカットメニュー [ 設定 ...] により , 監視ポイ ントを設定します。 - RAM チェッカウィンドウのショートカットメニュー [ ファイル指定…] により , ログファイルを設定します。 - RAM チェッカウィンドウのショートカットメニュー[ ロギング開始 ] をチェック し , RAM チェッカのロギング状態を有効にします。 • コマンド - SET MODE/CONFIG コマンドにより , デバッグ機能を "RAM Checker" モードに設 定します。 - SET RAMCHECK コマンドにより , 監視ポイントを設定します。 - SET RAMCHECK コマンドにより , ログファイルを設定します。 - ENABLE RAMCHECK コマンドにより , RAM チェッカのロギング状態を有効に します。 202 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l これらを設定した状態でプログラムを実行させてから , プログラムを停止させるとロ グファイルが生成されます。再度実行するとログファイルは上書きされます。 <注意事項> GUI のファイル設定でファイルの上書き制御を有効にすると , 実行のたびにログファイル を上書きせずに別名で保存します。 RAM チェッカに関する設定の詳細は , 『SOFTUNE Workbench 操作マニュアル』の 「3.21 RAM チェッカウィンドウ」および , 『SOFTUNE Workbench コマンドリファレン スマニュアル』の「4.47 SET RAMCHECK」~「4.51 DISABLE RAMCHECK」を参照 してください。 <注意事項> ロギング中は , ステータスバーに Stop モードや Sleep モードなどの MCU の実行状態を 表示することができません。 ■ ログファイルについて ログファイルの保存先のファイルシステムにより , 作成可能なログファイルのサイズ に次のような制限があります。 FAT :2GB まで FAT32 :4GB まで NTFS :制限なし その他 :制限なし ファイルシステムが FAT, FAT32 の場合 , ファイルサイズの制限を超えるとファイル名 を変更してロギングを続けます。 <注意事項 このとき既にファイルが存在する場合 , ログファイルは上書きされます。 動作例 ファイルサイズの制限を超えた場合 , filename.srl → filename#1.srl としてログファイルが作成されます。 再度ファイルサイズの制限を越えた場合 , filename#1.srl → filename#2.srl • • July 1, 2014, CM41-00313-8 203 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al filename#N-1.srl → filename#N.srl となります。 <注意事項> • ログファイルの保存先は , 内蔵 HDD だけサポートしています。保存先がネットワーク 上や外部 HDD, 外部ディスク (CD, DVD, MO など ) などの場合は , サポート対象外とな ります。 • RAM チェッカのログファイルを保存するには , ディスクに 500MB 以上の空きが必要 となります。ディスク容量が 500MB 未満になるとロギングを中断します。 ■ RAM Checker viewer RAM Checker viewer は , 時間経過によるデータ値の変化をグラフィカル表示させる ツールです。データ値の表示形式は次の 3 形式です。 - ビット表示 (Logic Analyzer のイメージ ) - データ値表示 ( 折れ線グラフ ) - ビット / データ値表示 ( ビットとデータ値の同時表示 ) その他の表示情報として , CPU の停止とトリガポイントとデータロストがあります。 CPU の停止は低消費電力時の STOP モードやパワーオンデバッグ機能における電源切 断状態がログに記録されます。 トリガポイントは , SOFTUNE Workbench のイベントヒットを使用します。トリガポイ ントを使用するには , SOFTUNE Workbench でイベントの設定が必要です。イベント ヒットした場合 , イベントヒットの情報がログに記録されます。 データロストは次の 2 種類の要因により発生します。 - ハードウェアによるロスト エミュレータは 1ms 間隔で RAM のデータアクセス履歴を取得しますが , 1ms 以 内に同一アドレスへのデータアクセスが 2 回以上発生する場合には , 最後にアク セスしたデータだけ取得します。 ハードウェアによるロストは複数回データアクセスがあったことを示します。 - ソフトウェアによるロスト SOFTUNE Workbench は 100ms 間隔でエミュレータからデータを取得しますが , ほかのアプリケーションなどの影響により , 100ms 間隔でデータを取得できない 場合があります。 この場合はデータを一部表示できませんが , 無効になっている時間帯をグラフィ カル表示します。 <注意事項> ブレークや実行停止でロギングを停止した場合 , ログの最後に 1ms ~ 15ms のソフトウェ アロストが表示される場合があります。これは実行停止後のログがロギング停止まで取得 されるためであり , 実際のデータロストではりません。 RAM Checker Viewerに関する詳細は, RAMチェッカViewer マニュアル(FswbRView.pdf) またはヘルプを参照してください。 204 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e 2.3.13 S u p p o r t M a n u a l デバッガの情報を確認するには MB2147-01 エミュレータデバッガの情報を確認する方法について説明します。 ■ デバッガの情報 本エミュレータデバッガでは , デバッガ起動時に以下の情報を確認できます。 • SOFTUNE Workbench のファイル情報 • ハードウェアに関する情報 SOFTUNE Workbench の動作に問題があった場合は , この情報を確認し , 営業部門また はサポート部門までお問合せください。 ■ 確認方法 デバッガの情報の確認は次の方法で行います。 • コマンド - SHOW SYSTEM 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「1.19 SHOW SYSTEM」を参照してください。 • ダイアログ - バージョン情報ダイアログ [ヘルプ]‐[バージョン情報]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.9.3 バージョン情報」を参 照してください。 ■ 表示内容 F2MC-16 Family SOFTUNE Workbench VxxLxx (c) Copyright Spansion LLC, All Rights Reserved 1997-2014 ======================================================= Cpu information file path:CPU 情報ファイルのパス Cpu information file version:CPU 情報ファイルのバージョン ======================================================= Add in DLLs ------------------------------------------------------SiCmn Product name : SOFTUNE Workbench File Path:SiC907.dll のパス Version:SiC907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - SiiEd File Path:SiiEd3.ocx のパス Version:SiiEd3.ocx のバージョン ------------------------------------------------------SiM907 Product name : SOFTUNE Workbench July 1, 2014, CM41-00313-8 205 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) So ft war e S up po r t M a nu al File Path:SiM907.dll のパス Version:SiM907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Language Tools - F2MC-16 Family SOFTUNE C Compiler のバージョン File Path:fcc907s.exe のパス - F2MC-16 Family SOFTUNE Assembler のバージョン File Path:fasm907s.exe のパス - F2MC-16 Family SOFTUNE Linker のバージョン File Path:flnk907s.exe のパス - F2MC-16 Family SOFTUNE Librarian のバージョン File Path:flib907s.exe のパス - SOFTUNE FJ-OMF to S-FORMAT Converter のバージョン File Path:f2ms.exe のパス - SOFTUNE FJ-OMF to INTEL-HEX Converter のバージョン File Path:f2is.exe のパス - SOFTUNE FJ-OMF to INTEL-EXT-HEX Converter のバージョン File Path:f2es.exe のパス - SOFTUNE FJ-OMF to HEX Converter のバージョン File Path:f2hs.exe のパス ------------------------------------------------------SiOsM Product name : Softune Workbench File Path:SiOsM907.dll のパス Version:SiOsM907.dll のバージョン ------------------------------------------------------F2MC-16 Family Debugger DLL Product name : SOFTUNE Workbench File Path:SiD907.dll のパス Version:SiD907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Debugger type : 現在のデバッガ種別 MCU type : 現在選択しているターゲット MCU VCpu dll name : 現在使用している VCpu dll のパスと名前 VCpu dll version : 使用中の仮想デバッガ部 DLL のバージョン DSU type : 現在使用している DSU 種別 Common version : モニタ ( 共通 ) のバージョン Monitor version : モニタ ( 依存 ) のバージョン Configuration board ID : コンフィギュレーションボードの ID Configuration board version : コンフィギュレーションボードのバージョン MCU frequency : 動作周波数 Communication device : デバイス種別 Baud rate : 通信ボーレート (RS 接続時 ) Host name : LAN ホスト名 (LAN 接続時 ) REALOS version : REALOS のバージョン ------------------------------------------------------- 206 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.3 エミュレータデバッガ (MB2147-01) S o ft w a r e S u p p o r t M a n u a l SiIODef Product name : Softune Workbench File Path : SiIODef.dll のパス Version : SiIODef.dll のバージョン ======================================================= Current path:現在使用しているプロジェクトのパス Language:現在使用している言語 Help file path:ヘルプファイルのパス July 1, 2014, CM41-00313-8 207 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4 S up po r t M a nu al エミュレータデバッガ (MB2147-05) エミュレータデバッガ (MB2147-05) の機能について説明します。 ■ エミュレータデバッガ セットアップウィザードでエミュレータデバッガを選択すると,次のエミュレータを指 定できます。以降エミュレータデバッガ (MB2147-05) を選択した場合について説明し ます。 MB2141 MB2147-01 MB2147-05 MB2198 エミュレータデバッガ (MB2147-05) は , ホストコンピュータから通信回線 (RS-232C, USB) を介してエミュレータを制御してプログラムの評価を行うソフトウェアです。 デバッグ対象となるシリーズは , 次のとおりです。 F2MC-16L F2MC-16LX ご使用になるまえに , エミュレータの初期化が必要になります。詳細は ,『SOFTUNE Workbench 操作マニュアル』の「付録 B モニタプログラムのダウンロード」を参照し てください。 208 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e 2.4.1 S u p p o r t M a n u a l 動作環境の設定 動作環境の設定について説明します。 ■ 動作環境の設定 エミュレータデバッガ (MB2147-05) では , 以下の項目について動作環境を設定する必 要があります。なお , それぞれの設定には起動時のデフォルトがあるため , 起動時のデ フォルトを使用する場合は設定を行う必要はありません。また , 一度指定した設定値を 次回からのデフォルトにすることもできます。 • モニタプログラム自動ロード • MCU 動作モード • デバッグ領域 • メモリマッピング July 1, 2014, CM41-00313-8 209 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.1.1 S up po r t M a nu al モニタプログラム自動ロード エミュレータ (MB2147-05) には , エミュレータ開始時にモニタプログラムの自動 アップデート機能があります。 ■ モニタプログラム自動ロード エミュレータ (MB2147-05) を指定すると , デバッグの開始時に , エミュレータ内部の情 報を参照して適切なモニタプログラムやコンフィギュレーションバイナリデータを自 動的にエミュレータへロードできます。 アップデート用に比較されるモニタプログラムやコンフィギュレーションバイナリ データは , Workbench をインストールしたディレクトリ下の Lib¥907 にあリます。 モニタプログラム自動ロード機能の許可 / 抑止は , [ 環境 ] - [ デバッグ環境の設定 ] - [ セットアップウィザード ] メニューで指定してください。 210 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l MCU 動作モード 2.4.1.2 MCU 動作モードには次の 2 種類があります。 • デバッグモード • ネイティブモード ■ MCU 動作モードの設定 MCU 動作モードを設定します。 動作モードには , デバッグモードとネイティブモードがあり , これらのモードは , SET RUNMODE コマンドにより設定します。 エミュレータ起動時は , デバッグモードになっています。 ネイティブモードではエミュレータが内部バスへのデータアクセスを検出できない場 合があるため , MCU 動作モードを切り換えると次のものがすべて初期化されます。 • データブレークポイント • トレース測定設定 , および , トレースバッファ ■ デバッグモード エバリュエーションチップのすべての動作を解析できますが,動作速度は量産チップよ りも遅くなります。 ■ ネイティブモード 動作速度は量産チップと同じタイミングになります。ただし , 表 2.4-1 に示すようなデ バッグ機能の制限がありますので注意してください。 表 2.4-1 ネイティブモード時のデバッグ機能制限 対象シリーズ 全シリーズ共通 July 1, 2014, CM41-00313-8 デバッグ機能の制限 ・ MCU 内部バスでデータリードアクセスが発生した場合 , ト レースバッファに内部バスアクセス情報がサンプリングさ れません。 ・ MCU 内部バス上にあるデータに対してデータブレークやイ ベント ( データアクセス条件 ) を設定しても , ブレーク要因 やシーケンサのトリガ要因にならないことがあります。 ・ カバレッジ機能について , MCU 内部バス上にあるデータへ のデータアクセスを検出できないことがあります。 211 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.1.3 S up po r t M a nu al デバッグ領域 全メモリ空間の中から集中的にデバッグする領域を設定します。 この領域に対する機能が強化されます。 ■ デバッグ領域の設定 デバッグ領域には , DEBUG3 と DEBUG4 の 2 領域が準備されています。そのそれぞれ について連続した 1MB(16 バンク ) 分の領域が設定されます。 デバッグ領域は , SET DEBUG コマンドで設定できます。 デバッグ領域を設定すると , ブレークポイント機能が強化されます。 ブレークポイントの強化 デバッグ領域を設定すると , その範囲内であれば 65535 ポイントまで設定が可能に なります。このとき , この領域以外に対しては , 2 ポイントまで設定可能ですが , 全 ポイント数が 65535 ポイントを超えることはできません。 また , 00 ~ 0F バンクおよび 0F0 ~ 0FF バンクならば , デバッグ領域を設定しなく ても , ブレークポイントを設定できます。(DEBUG1 と DEBUG2 の領域 ) 212 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l メモリエリアの種類 2.4.1.4 メモリを割り当てる単位をエリアとよびます。エリアは 5 種類あります。 ■ メモリエリアの種類 メモリを割り当てる単位をエリアとよびます。次の 7 つのエリアがあります。 • ユーザメモリエリア ユーザシステム上のメモリ空間をユーザメモリエリアとよびます。また , このメモ リのことをユーザメモリとよびます。ユーザメモリエリアは , 最大 4 エリアまで設 定可能で , 各エリアのサイズには制限がありません。領域は , 256Byte 境界で指定し てください。 また , 各エリアには , アクセス属性を設定できます。例えば , ROM 領域には CODE, READ を , RAM 領域には READ, WRITE などの属性が設定できます。これに違反す るアクセスを MCU が行った場合には , MCU 動作は中断されてエラーが表示されま す ( ガーデッドアクセスブレークとよびます )。 ユーザメモリエリアの指定は , SET MAP コマンドで設定できます。 • エミュレーションメモリエリア エミュレータ上のメモリで代行するメモリ空間をエミュレーションメモリエリア とよびます。また , このメモリのことをエミュレーションメモリとよびます。 エミュレーションメモリエリアとして , 最大 256KB のエリアを最大 4 エリア ( 後述 する内部 ROM エリアも含めます ) まで設定可能です。領域は , 256Byte 境界で指定 してください。256KB 以上の領域も一度に指定できますが , 内部では 256KB ごとの エリアに分けて管理されます。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できます。 エミュレーションメモリエリアの指定は , SET MAP コマンドで設定できます。 また , ユーザメモリエリアと同様にアクセス属性の設定も行えます。 <注意事項> MCU 内部リソースをエミュレーションメモリエリアとして設定しても内部リソース側を アクセスします。 • 内部 ROM エリア 内部 ROM をエミュレータ内部のメモリで代行する領域を内部 ROM エリアとよび ます。また , このメモリのことを内部 ROM メモリとよびます。 内部 ROM エリアは , 最大 256KB の領域で 1 エリアだけ指定できます。 MCU 実行中に , 本エリアに対してメモリ操作コマンドを実行できます。 内部 ROM エリアは , [ 環境 ] - [ デバッガのメモリマップ ] メニューで開く [ マッ プ設定 ] ダイアログにより設定できます。 July 1, 2014, CM41-00313-8 213 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 内部 ROM イメージエリア MCU の品種によっては , 00 バンクに内部 ROM の特定領域の内容が現れるものがあ りますが , この領域のことを内部 ROM イメージエリアとよびます。 内部 ROM イメージエリアは , [ 環境 ] - [ デバッガのメモリマップ ] メニューで開 く [ マップ設定 ] ダイアログにより設定できます。このエリアには自動的に READ/ CODE 属性が付けられます。 内部 ROM イメージエリアには , 内部 ROM エリアと同じ内容が現れますが , デバッ グ情報は , どちらか一方 ( リンク時に指定された方 ) にだけ有効になりますので注 意が必要です。内部 ROM イメージエリア内でだけデバッグする場合は , ロードモ ジュールファイルの作成方法を変更する必要があります。 <注意事項> 内部メモリ領域は , 選択した MCU に適した領域を自動設定します。 • 未定義エリア 上記の指定外のメモリ領域を未定義エリアとよびます。 未定義エリアは , アクセス自由なメモリ領域 (NOGUARD), もしくは , アクセス禁止 のメモリ領域 (GUARD) のどちらかに設定ができます。この設定は , すべての未定 義エリアに対して設定できます。アクセス禁止領域に設定すると , その領域をアク セスした場合に , ガーデッドアクセスエラーになります。 214 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l メモリマッピング 2.4.1.5 メモリ空間をユーザメモリ , エミュレーションメモリなどに割り当てたり , また属性 を指定したりすることができます。 ただし , MCU 内部のリソースはマッピングの指定によらず , 必ず内部リソースがア クセスされます。 ■ メモリエリアのアクセス属性 メモリエリアには表 2.4-2 に示すアクセス属性を指定できます。 プログラム実行中にアクセス属性に違反したアクセスが起こった場合は,ガーデッドア クセスブレークが発生します。 本プログラムのコマンドによりユーザメモリエリア,およびエミュレーションメモリエ リアをアクセスする場合は, CODE, READ, WRITEの属性にかかわらずアクセスできま す。ただし , 未定義エリアの GUARD 属性が設定されているメモリをアクセスした場 合は , エラーが発生します。 表 2.4-2 アクセス属性の種類 エリア 属性 ユーザメモリ エミュレーションメモリ 未定義 内容 CODE 命令実行許可 READ データリード許可 WRITE データライト許可 GUARD アクセス禁止 NOGUARD アクセス属性チェックなし プログラム実行により WRITE 属性のないエリアに対してアクセスすると , ユーザメモ リエリアの場合は,データが書き換わってからガーデッドアクセスブレークが発生しま すが , エミュレーションメモリエリアの場合は , データが書き換わらずにブレークしま す。つまり , エミュレーションメモリエリアに WRITE 属性を指定しないとライトプロ テクト ( ライトしてもメモリのデータを書き換えない ) をかけることができます。ライ トプロテクトはプログラム実行によるアクセスの場合にだけ有効で,コマンドによるア クセスではかかりません。 ■ メモリマップの作成・表示 メモリマッピングは , 以下のコマンドで行います。 July 1, 2014, CM41-00313-8 SET MAP : メモリマップの設定 SHOW MAP : メモリマップの表示 CANCEL MAP : 設定したメモリマップを未定義にする。 215 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al (例) >SHOW MAP address attribute 000000 .. FFFFFF noguard type The rest of setting area numbers user = 8 emulation = 5 >SET MAP/USER H'0..H'1FF >SET MAP/READ/CODE/EMULATION H'FF0000..H'FFFFFF >SET MAP/USER H'8000..H'8FFF >SET MAP/MIRROR/COPY H'8000..H'8FFF >SET MAP/GUARD >SHOW MAP address attribute type 000000 .. 0001FF read write user 000200 .. 007FFF guard 008000 .. 008FFF read write 009000 .. FEFFFF guard FF0000 .. FFFFFF read write code user emulation mirror address area 008000 .. 008FFF copy The rest of setting area numbers user = 6 emulation = 3 > ■ 内部 ROM 領域設定 [ 環境 ]-[ デバッガのメモリマップ ] メニューで [ マップ設定 ] ダイアログを表示しま す。そして [ 設定 ] ボタンをクリックして , [ マップ追加 ] ダイアログを表示し , さらに [ 内部 ROM 領域 ] タブを選択すると , 内部 ROM 領域の設定が可能になります。 内部 ROM 領域は , 2 領域まで設定可能です。各領域を設定するには , エミュレーショ ンエリアの空きが必要です。必要な空き領域は次のようになります。 ( エミュレーションエリアの空き数 ) × (1 エリアのサイズ ) 上記のサイズまで指定できます。 領域 1 は , 終了アドレス H'FFFFFF ( 固定 ) からの内部 ROM 領域を指定してください。 また , 内部 ROM 領域を削除することも可能です。 216 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e 2.4.2 S u p p o r t M a n u a l プログラム実行での注意 プログラム実行コマンドには , いくつかの注意事項があります。 ■ GO コマンドでの注意 GO コマンドにはコマンド実行時だけ有効なブレークポイントを 2 個設定できますが , このブレークポイントの設定には注意が必要です。 ● 無効なブレークポイント 次の命令の直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16L/16LX PCB NCC SPB MOV ILM,#imm8 OR CCR,#imm8 DTB ADB CNR AND CCR,#imm8 POPW PS 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 次の 2 つの条件を一度に満たす場合にもブレークしません。 • ブレークポイントを設定する命令が奇数番地から始まっている場合 • 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに既 にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) ● 異常なブレークポイント 次に示すストリング系の命令の直後の命令にブレークポイントを設定すると,ストリン グ命令を最後まで実行せずに , ストリング命令の途中でブレークすることがあります。 F2MC-16L/16LX July 1, 2014, CM41-00313-8 MOVS SECQ WBTS MOVSWI SECQWI MOVSD SECQD FILS FILSW MOVSW SECQW MOVSI SECQI WBTC MOVSWD SECQWD FILSI FILSWI 217 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al ■ STEP コマンドでの注意 ● 特殊なステップ実行 GO コマンドでの注意であげた無効なブレークポイントおよび , 異常なブレークポイン トの命令を実行する場合は , それに続く 1 命令も含めて命令として動作します。ただし , 命令が連続している場合は , それらすべてとその直後の 1 命令を全部含めて 1 命令とし て動作します。 ● ブレークしないステップ実行 次の 2 つの条件を一度に満たす場合は , ステップ動作後ブレークしませんので注意して ください。 • ステップする命令が 2 バイト以上の命令で , その最後のコードが偶数で終わってい る場合 • その最後のアドレスに既にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) ■ ウォッチドッグタイマの制御 GO, STEP, CALL コマンドによるプログラム実行中に [ ウォッチドッグタイマのカウン タのオーバフローによりリセットを発生させない ] ことができます。 ウォッチドッグタイマの制御は , ENABLE WATCHDOG, DISABLE WATCHDOG コマ ンドで行います。 ENABLE WATCHDOG… ウォッチドッグタイマのカウンタのオーバフローにより リセットを発生させる。 DISABLE WATCHDOG…ウォッチドッグタイマのカウンタのオーバフローにより リセットを発生させない。 本プログラム起動時は , [ ウォッチドッグタイマのカウンタのオーバフローによりリ セットを発生させる ] になっています。 (例) >DISABLE WATCHDOG >GO 218 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e 2.4.3 S u p p o r t M a n u a l ユーザプログラム実行中に使用できるコマンド ユーザプログラム実行中に使用できるコマンドについて説明します。 ■ ユーザプログラム実行中に使用できるコマンド 本エミュレータデバッガでは , ユーザプログラム実行中に特定のコマンドが使用でき ます。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の各コマンドの 「■ 対応デバッガ」を参照してください。 ◎はユーザプログラム実行中に使用できることを表しています。 表 2.4-3 にユーザプログラム実行中に使用できるコマンドを示します。 表 2.4-3 ユーザプログラム実行中に使用できるコマンド 機能 MCU のリセット 限定事項 - 主コマンド 1.3 RESET メモリ操作 ( リード / ライト ) エミュレーションメモリだけ操作可能 5.1 EXAMINE, 5.2 ENTER, 5.3 SET MEMORY, 5.4 SHOW MEMORY, 5.5 SEARCH MEMORY, 5.8 COMPARE, 5.9 FILL, 5.10 MOVE, 5.11 DUMP ラインアセンブル , 逆アセンブル エミュレーションメモリだけ可能 6.1 ASSEMBLE, 6.2 DISASSEMBLE <注意事項> • 表 2.4-3 のコマンドが使用できる条件は, 以下のどちらかによりユーザプログラムを実 行した場合に限ります。 - [ デバッグ ]-[ 実行 ]-[ 連続実行 ] メニュー - デバッグツールバーの [ 連続実行 ] ボタン コマンドウィンドウにて GO コマンドを入力した場合は , 表 2.4-3 のコマンドは使用で きません。 • ユーザプログラム実行中に使用できないコマンドを入力すると,以下のエラーメッセー ジが表示されます。 「E4404S: MCU 実行中は使えないコマンドです」 July 1, 2014, CM41-00313-8 219 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.4 S up po r t M a nu al ブレーク 本エミュレータデバッガでは , 5 種類のブレーク機能を使用できます。各ブレーク機 能によりプログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因 を表示します。 ■ ブレーク機能 本エミュレータデバッガでは , 5 種類のブレーク機能をサポートしています。 • コードブレーク • データブレーク • ガーデッドアクセスブレーク • トレースバッファフルブレーク • 強制ブレーク 220 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l コードブレーク 2.4.4.1 指定したアドレスを監視することでプログラム実行を中断する機能です。指定され たアドレスの命令を実行する前にブレークします。 ■ コードブレークとは 指定したアドレスを監視することでプログラムを中断する機能です。指定されたアド レスの命令を実行する前にブレークします。本デバッガでは 65535 個設定可能です。た だしデバッグ領域をコードブレーク領域として設定する必要があります。 コードブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by breakpoint ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ ■ コードブレークの注意 コードブレークには , いくつかの注意事項があります。 まず , コードブレーク動作に影響を及ぼす注意事項について説明します。 ● 無効なブレークポイント • 次の命令の直後の命令にブレークポイントを設定してもブレークしません。 F2MC-16/16L/16LX/16H: ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR F2MC-16F: ・MOV ILM,#imm8 ・AND CCR,#imm8 ・OR CCR,#imm8 ・POPW PS ・PCB ・DTB ・NCC ・ADB ・SPB ・CNR • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 July 1, 2014, CM41-00313-8 221 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al • 次の 2 つの条件を一度に満たす場合にもブレークしません。 - ブレークポイントを設定する命令が奇数番地から始まっている場合 - 直前の命令が 2 バイト長以上のもので , その命令の最後の 1 バイトのアドレスに 既にブレークポイントが設定されている場合 (この既に設定されているブレークポイントは,命令先頭以外のブレークポイント ですから , ブレークしない無効なブレークポイントです。) ● 異常なブレークポイント • 次に示すストリング系の命令の直後の命令にブレークポイントを設定すると , スト リング命令を最後まで実行せずに , ストリング命令の途中でブレークすることがあ ります。 F2MC-16/16L/16LX/16H: ・MOVS ・MOVSW ・SECQ ・SECQW ・WBTS ・MOVSI ・MOVSWI ・SECQI ・SECQWI ・WBTC ・MOVSD・MOVSWD・SECQD ・SECQWD ・FILS F2MC-16F: 上記のものと ・FILSI ・MOVM ・FILSW ・FILSWI ・MOVMW 次に , ほかのコマンドに影響を及ぼす注意事項について説明します。 ● 危険なブレークポイント • 命令の先頭以外のアドレスにブレークポイントを設定しないでください。 そのブレークポイントが , 2 バイト長以上の命令の最後の 1 バイトで , かつ , そのア ドレスが偶数番地の場合は , 次のような異常動作の原因になります。 - その命令を STEP コマンドでステップ実行すると , 命令実行が中断せずに実行を 続けます。 - GO コマンドで指定できるブレークポイントをこの命令の直後の命令に設定して も , そのブレークポイントではブレークしません。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 222 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l データブレーク 2.4.4.2 データブレークとは , プログラム実行中に指定したアドレスに対しデータアクセス ( リードまたはライト ) が行われた場合にプログラム実行を中断させる機能です。 ■ データブレークとは データブレークは , 指定アドレスを MCU がデータアクセスした場合にプログラム実行 を中断させる機能です。本デバッガでは 2 個設定可能です。 データブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by databreak at アクセスアドレス ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbenchコマンドリファレンスマニュアル』 の 「3.9 SET DATABREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ データ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> デバッグ領域の再設定を行うと , その領域内のブレークポイントはすべてクリアされま す。 July 1, 2014, CM41-00313-8 223 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al ガーデッドアクセスブレーク 2.4.4.3 ガーデッドアクセスブレークとは , 設定したアクセス属性に違反してアクセスが行わ れた場合 , およびガーデッド ( 未定義エリアのアクセス不可 ) 領域をアクセスした場 合に起こるプログラム実行の中断のことです。 ■ ガーデッドアクセスブレークとは ガーデッドアクセスブレークとは , [ 環境 ] - [ デバッガのメモリマップ ] メニューで 設定したアクセス属性に違反してアクセスが行われた場合 , およびガーデッド ( 未定義 エリアのアクセス不可 ) 領域をアクセスした場合に起こるプログラム実行の中断のこ とです。 ガーデッドアクセスブレークには以下の 3 種類があります。 コードガーデッド コード属性を持たない領域に対し , 命令実行を行った場合にブレークする リードガーデッド リード属性を持たない領域に対し , 読出しを行った場合にブレークする ライトガーデッド ライト属性を持たない領域に対し , 書込みを行った場合にブレークする プログラム実行中に , ガーデッドアクセスが起こると , ステータスバーに次のメッセー ジを表示してプログラム実行を中断します。 Break at アドレス by guarded access {code/read/write} at アクセスアドレス <注意事項> コードガーデッドは , プリフェッチの影響を受けます。 F2MC-16L/16LX/16/16H ファミリでは , 最大 4 バイトまでプリフェッチするため , プログ ラム領域をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 5 バイト ) に設定してください。 また F2MC-16F ファミリでも , 最大 8 バイトまでプリフェッチするため , プログラム領域 をマッピングする場合は , 実際に使用しているプログラム領域よりも少し大きめ ( 最大 9 バイト ) に設定してください。 224 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l トレースバッファフルブレーク 2.4.4.4 トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 ■ トレースバッファフルブレークとは トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 トレースバッファフルブレークでブレークした場合,ステータスバーに次のメッセージ が表示されます。 Break at アドレス by trace buffer full ■ 設定方法 トレースバッファフルブレークの制御は次の方法で行います。 • コマンド - SET TRACE/BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.30 SET TRACE (type2)」を参照してください。 • ダイアログ - トレース設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 July 1, 2014, CM41-00313-8 225 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al 強制ブレーク 2.4.4.5 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request <注意事項> MCU が低消費電力モード中およびホールド状態での強制ブレークはできません。プログ ラム実行中 , [ デバッグ ] - [ 停止 ] メニューによって強制ブレークを要求した場合 , 低消費 電力モード , ホールド状態であれば [ デバッグ ] - [ 停止 ] メニューは無視されます。どう してもブレークさせたい場合は , [ デバッグ ] - [ 停止 ] メニュー入力後 , ユーザシステム側 で要因を解除するか , [ デバッグ ] - [MCU のリセット ] メニューを用いて要因を解除して ください。実行中に低消費電力モード , ホールド状態になった場合は , ステータスバーに 状態が表示されます。 226 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e 2.4.5 S u p p o r t M a n u a l リアルタイムトレース プログラム実行中にアドレス , データ , ステータス情報と外部プローブによりサンプ リングしたデータをマシンサイクル単位にサンプリングし , トレースバッファに記録 できます。この機能をリアルタイムトレースとよびます。 リアルタイムトレースにより記録したデータからプログラム実行履歴を詳細に解析 できます。 ■ トレースバッファ マシンサイクル単位にサンプリングして記録したデータをフレームとよびます。 トレースバッファは 64K(65536) フレーム分の容量があります。 トレースバッファはリング状の構造となっているので,トレースバッファがいっぱいに なった場合は自動的にトレースバッファの先頭から上書きされて記録されます。 ■ トレースデータ トレース機能でサンプリングされるデータをトレースデータとよびます。 次のデータがサンプリングされます。 アドレス データ ステータス情報 アクセスステータス : リード / ライト / 内部アクセスなど デバイスステータス : 命令実行 , リセット , ホールドなど キューステータス : 命令キューの残りバイト数など データ有効サイクル情報 : データの有効 / 無効 ( データ信号はほかの信号と共用して使用されるた め , 必ずしもデータ情報が出ているとは限りませ ん。したがって , データ情報が有効であるか無効で あるかを示す情報をサンプリングしています。) ■ トレースされないデータ 次のものはトレースバッファ内にそのアクセスが残りません。 ネイティブモード時のアクセスデータの一部 F2MC-16L/16LX ファミリのチップは , ネイティブモードで動作するときに , 内部で 複数のバスが同時に動作することがありますが , 本エミュレータでは , 内部 ROM 用 のバス監視を優先します。したがって , このとき同時にアクセスされたほかのバス 内容をサンプリングしないことがあります ( デバッグモード時は , すべての動作が サンプリングされます ) 。 July 1, 2014, CM41-00313-8 227 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al ■ フレーム番号 サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースバッファ中のどの位置から表示するかの指定は , フレーム番号により行いま す。シーケンサ終了のトリガ発生位置のトレースデータには 0 番が , トリガ発生位置に 到達するまでにサンプリングされたトレースデータには負の番号が,トリガ発生位置以 降にサンプリングされたデータには正の番号が付けられます ( 図 2.4-1 を参照 )。 シーケンサ終了のトリガ位置がない場合は,最後にサンプリングされたトレースデータ が 0 となります。 図 2.4-1 トレース時のフレーム番号 ・ ・ ・ -3 -2 -1 3 (トリガ発生位置) ■ トレースフィルタ 限られたトレースバッファを有効に活用するため,コードフェッチのほかにも特定領域 へのデータアクセス情報を取得する機能があり , これをトレースフィルタとよびます。 トレースフィルタ機能では , 次の値を用いてデータアクセス 2 領域分を指定できます。 アドレス アドレスマスク アクセス属性 ( リード , ライト ) また , SLEEPやREADY などのような複数個のトレースフレームを占有する冗長フレー ムのサンプリングを 1 フレーム分に抑える機能もあります。 228 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l トレースの設定方法 2.4.5.1 トレースを行うには , 1), 2) の設定をします。その後 , プログラムの実行を行うとト レースデータがサンプリングされます。 1) トレース機能を有効にします。 2) トレースバッファフルブレークの設定を行います。 ■ トレースの設定方法 トレースを行うには , 以下の設定をします。その後 , プログラムの実行を行うとトレー スデータがサンプリングされます。 1. トレース機能を有効にします。 設定は , ENABLE TRACE コマンドで行います。 無効にする場合は , DISABLE TRACE コマンドで行います。 本プログラム起動時は , 有効になっています。 2. トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになった場合に , ブレークさせることができます。設 定は , SET TRACE コマンドで行います。本プログラム起動時は , ブレークしない設 定になっています。設定状態は , SHOW TRACE/STATUS で確認することができま す。 表 2.4-4 にトレースに関係するコマンドを示します。 表 2.4-4 トレース関係のコマンド 使用できるコマンド SET TRACE SHOW TRACE SEARCH TRACE ENABLE TRACE DISABLE TRACE CLEAR TRACE July 1, 2014, CM41-00313-8 機能 トレースバッファフルブレークの設定 トレースデータの表示 トレースデータの検索 トレース機能を有効にする。 トレース機能を無効にする。 トレースデータをクリアする。 229 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.5.2 S up po r t M a nu al トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 ■ トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 (例) >SHOW TRACE/STATUS en/dis = enable ; トレース機能は有効 buffer full = nobreak ; バッファフルブレーク機能は無効 sampling = end ; トレースサンプリングは終了 frame no. = -00120 to 00050 ; -120 ~ 50 フレームまで格納されている。 step no. = -00091 to 00022 ; -91 ~ 22 ステップまで格納されている。 > 230 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示位置の指定 2.4.5.3 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンド にステップ番号もしくはフレーム番号を指定することにより可能です。範囲指定も できます。 ■ トレースデータの表示位置の指定 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンドで ステップ番号もしくはフレーム番号を指定することにより可能です。範囲指定もでき ます。 (例) July 1, 2014, CM41-00313-8 >SHOW TRACE/CYCLE -6 ; -6 フレームから表示する。 >SHOW TRACE/CYCLE -6..10 ; -6 フレームから 10 フレームまで表示する。 >SHOW TRACE -6 ; -6 ステップから表示する。 >SHOW TRACE -6..10 ; -6 ステップから 10 ステップまで表示する。 231 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.5.4 S up po r t M a nu al トレースデータの表示形式 SHOW TRACE コマンドにコマンド修飾子を指定することにより表示形式を選択で きます。SET SOURCE コマンドの設定によりソース行を付加するモードになってい れば , ソース行が付加されて表示されます。 トレースデータの表示形式には次の 3 種類があります。 • 命令実行順に表示 (/INSTRUCTION を指定 ) • すべてのマシンサイクルの表示 (/CYCLE を指定 ) • ソース行単位で表示 (/SOURCE を指定 ) ■ 命令実行順に表示 (/INSTRUCTION を指定 ) トレースサンプリングはマシンサイクルごとに行われますが,プリフェッチなどの影響 により測定結果がかなり見づらくなります。そこで , 本エミュレータでは可能な限りト レースデータを解析し , プリフェッチ影響削除 , 実行命令の解析 , および , 命令実行順 序に並び替えなどの処理を自動的に行った結果の表示機能を持っています。ただし , デ バッグモード時のシングルトレース時だけ指定可能です。 このモードでの表示は , 次のようになります。 アドレス 逆アセンブル表示 16進数 実行された命令を 表示します。 ステップ番号 10進数符号付き データ 16進数 >SHOW TRACE -194 step no. address mnemonic \sub4: -00194 : FF0106 LINK #00 -00193 : 000186 internal read access. 10F2 -00192 : 1010E6 external write access. 10F2 -00191 : 000186 internal write access. 10E6 -00190 : FF0108 ADDSP #F8 -00189 : FF010A MOVL A,001A -00188 : 10001A external read access. 0000 -00187 : 10001C external read access. 4000 -00186 : FF010E MOVL @SP+04,A デバイスステータス -00185 : 1010E2 external write access. 0000 -00184 : FF0111 MOVL A,0016 5 -00183 : ** RESET ** ** STANDBY ** :ハードウェアスタンバイ > ** RESET ** :リセット :ツールホールド ** THOLD** データアクセス :ユーザホールド ** UHOLD** internal read access: 内部メモリへのリード :レディ端子入力 ** WAIT ** internal write access: 内部メモリへのライト ** SLEEP ** :スリープ external read access: 外部メモリへのリード :ストップ ** STOP ** external write access: 外部メモリへのライト 232 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l ■ すべてのマシンサイクルの表示 (/CYCLE を指定 ) サンプリングしたすべてのマシンサイクルでの詳細情報を表示します。 このモードでは SET SOURCE コマンドでの設定に関係なく , ソースの表示は行われま せん。 (例) >SHOW TRACE/CYCLE -587 frame no. address data a-status d-status Qst -00587 : FF0106 0106 --- ------- FLH -00586 : FF0106 0008 ECF EXECUTE --- -00585 : FF0106 0106 --- EXECUTE --- -00584 : 1010E8 10E8 --- ------- --- -00583 : 1010E8 0102 EWA EXECUTE --- -00582 : 1010E8 0102 --- EXECUTE --- -00581 : 000186 0186 --- ------- 2by -00580 : 000186 10F2 IRA EXECUTE --- -00579 : 1010E6 10E6 --- ------- --- -00578 : 1010E6 10F2 EWA EXECUTE --- -00577 : 1010E6 10F2 --- EXECUTE --- -00576 : 000186 0186 --- ------- --- dfg @ @ @ @ データの見方 frame no. address data ② ③ ① a-status ④ d-status ⑤ Qst dfg ⑥ ⑦ ① : フレーム番号 (10 進数 ) ② : 実行された命令のアドレス , データアクセスされたアドレス (16 進数 ) ③ : データ (16 進数 ) ④ : アクセス情報 IWA: 内部ライトアクセス EWA: 外部ライトアクセス IRA: 内部リードアクセス ERA: 外部リードアクセス ICF: 内部コードフェッチ ECF: 外部コードフェッチ ---: デバイスの状態情報が有効 ⑤ : デバイスステータス STANDBY: ハードウェアスタンバイ THOLD : ツールホールド UHOLD : ユーザホールド WAIT : レディ端子によるウェイト July 1, 2014, CM41-00313-8 233 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e S up po r t M a nu al SLEEP : スリープ STOP : ストップ EXECUTE: 命令実行 RESET : リセット -------: デバイスステータス無効 ⑥ : 命令キューステータス FLH: キューフラッシュ -by: キューの残りコードバイト数 (- は 1 ~ 8) ⑦ : 情報有効フラグ &: アドレスが有効 @: データが有効 ■ ソース行単位で表示 (/SOURCE を指定 ) ソース行だけを表示します。このモードは , デバッグモード時だけ有効です。 (例) >SHOW TRACE/SOURCE -194 step no. source -00194 : gtg1.c$251 -00190 : gtg1.c$255 -00168 : gtg1.c$259 -00164 : gtg1.c$264 p = (char *) &df; : gtg1.c$264 p = (char *) &df; -00157 : gtg1.c$265 *(p++) = 0x00; -00145 : gtg1.c$266 *(p++) = 0x00; -00133 : gtg1.c$267 *(p++) = 0x80; -00121 : gtg1.c$268 *p -00116 : gtg1.c$270 p = (char *) -00111 : gtg1.c$271 *(p++) = 0xff; -00099 : gtg1.c$272 *(p++) = 0xff; -001 61 { sub5(nf, nd); { = 0x7f; ⅆ <注意事項> MCU の動作を停止 ( ツールホールド ) させた直後に , 次の動作をトレースサンプリングす ることがあります。量産品にはない評価用チップ固有の動作のため , 注意してください。 0x000100 番地および 0x0FFFFDC ~ 0x0FFFFFF 番地に対するアクセス 234 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l オンザフライによるトレースデータの読出し 2.4.5.5 トレースデータをプログラム実行中に読み出すことができます。 ただし , サンプリング中は読み出すことはできません。トレース機能を無効にするか , トレースを終了させてから読み出す必要があります。 ■ オンザフライによるトレースデータの読出し トレース機能を無効にするには , DISABLE TRACE コマンドにより行います。 現在 , トレース機能が有効か無効かは , SHOW TRACE コマンドに /STATUS を指定し て実行するか , 組込み変数 %TRCSTAT で確認することができます。 また , シーケンサが終了した場合 , トレースが終了します。ここで , ブレークさせない 指定にしておけば , ブレークせずにトレースが終了した状態となります。トレースが終 了しているかどうかは , SHOW TRACE コマンドに /STATUS を指定して実行するか , 組 込み変数 %TRCSAMP で確認することができます。 トレースデータを読み出すには SHOW TRACE コマンドを , トレースデータを検索する には SEARCH TRACE コマンドを使用します。 (例) >GO > >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak sampling = on ← トレースサンプリング中 > >SHOW TRACE/STATUS en/dis = enable buffer full = nobreak ← トレースサンプリング終了 sampling = end frame no. = -00805 to 00000 step no. = -00262 to 00000 > >SHOW TRACE -52 step no. address mnemonic level -00052 : FF0125 LINK #02 -00051 : 000186 internal read access. 10E6 1 -00050 : 1010D6 external write access. 10E6 1 -00049 : 000186 internal write access. 10D6 1 \sub5: 1 トレースが終了している状態で CLEAR TRACE コマンドを実行すると再度シーケンサ を最初から実行し , トレースデータをサンプリングし直すことができます。 July 1, 2014, CM41-00313-8 235 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) So ft war e 2.4.5.6 S up po r t M a nu al トレースデータを保存するには トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 236 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.4 エミュレータデバッガ (MB2147-05) S o ft w a r e S u p p o r t M a n u a l 実行サイクル数測定 2.4.6 プログラムの実行サイクル数を測定する機能です。 ■ 測定項目 プログラムの実行開始から停止までのサイクル数を測定します。 本エミュレータデバッガではサイクルカウンタにて測定を行います。サイクルカウン タの特長は以下のとおりです。 有効ビット数 :56 ビット 最大測定サイクル数 :72,057,594,037,927,935 サイクル 測定はプログラム実行のたびに行われ , 測定結果は以下の値を表示します。 • 直前のプログラム実行におけるサイクル数 • 前回クリアしてからの実行サイクル数の合計 ■ 測定結果の表示 測定結果の表示は以下のどちらかで行います。 • ダイアログによる表示 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに 表示します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによる表示 コマンドウィンドウにて SHOW TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 ■ 測定結果のクリア 測定結果のクリアは以下のどちらかで行います。 • ダイアログによるクリア [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに て[クリア]ボタンを押します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによるクリア コマンドウィンドウにて CLEAR TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 <注意事項> 実行時間測定は 1 回の実行につき 10 サイクル程度多く計測されます。実行サイクルを計 測する場合には , 誤差の影響を少なくするために多くの命令を連続実行するようにしてく ださい。 July 1, 2014, CM41-00313-8 237 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5 S up po r t M a nu al エミュレータデバッガ (MB2198) エミュレータデバッガ (MB2198) の機能について説明します。 ■ エミュレータデバッガ セットアップウィザードでエミュレータデバッガを選択すると,次のエミュレータを指 定できます。以降 MB2198 を選択した場合について説明します。 • MB2141 • MB2147-01 • MB2147-05 • MB2198 エミュレータデバッガ (MB2198) は , ホストコンピュータから通信回線 (RS-232C, LAN, USB) を介してエミュレータを制御してプログラムの評価を行うソフトウェアです。 デバッグ対象となるシリーズは , 次のとおりです。 F2MC-16FX ご使用になるまえに , エミュレータの初期化が必要です。詳細は『SOFTUNE , Workbench 操作マニュアル』の「付録 B モニタプログラムのダウンロード」,「付録 C LAN イン タフェースの設定」を参照してください。 238 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e 2.5.1 S u p p o r t M a n u a l 動作環境の設定 動作環境の設定について説明します。 ■ 動作環境の設定 エミュレータデバッガ (MB2198) では , 以下の項目について動作環境を設定する必要が あります。なお , それぞれの設定には起動時のデフォルトがあるため , 起動時のデフォ ルトを使用する場合は設定を行う必要はありません。また , 一度指定した設定値を次回 からのデフォルトにすることもできます。 • モニタプログラム自動ロード • Boot ROM ファイル自動実行 • MCU 動作モード • 動作周波数制御 July 1, 2014, CM41-00313-8 239 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.1.1 S up po r t M a nu al モニタプログラム自動ロード エミュレータ (MB2198) には , エミュレータ開始時にモニタプログラムの自動アップ デート機能があります。 ■ モニタプログラム自動ロード エミュレータ (MB2198) では , デバッグの開始時に , エミュレータ内部の情報を参照し て適切なモニタプログラムやコンフィギュレーションバイナリデータを自動的にエ ミュレータへロードすることができます。 アップデート用に比較されるモニタプログラムやコンフィギュレーションバイナリ データは , Workbench をインストールしたディレクトリ下の Lib¥907 にあリます。 モニタプログラム自動ロード機能の許可 / 抑止は , [ 環境 ] - [ デバッグ環境の設定 ] - [ セットアップウィザード ] メニューで指定してください。 240 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l Boot ROM ファイル自動実行 2.5.1.2 エミュレータ (MB2198) では , デバッグ開始時に Boot ROM ファイルを自動的に ロードし , 実行します。 ■ Boot ROM ファイル自動実行 エミュレータ (MB2198) を指定すると , デバッグの開始時に Boot ROM ファイルを自動 的にロード後 , 実行します。Boot ROM ファイルは Workbench をインストールしたディ レクトリ下の Lib¥907¥BootROM にあリます。 Boot ROM ファイルを置くディレクトリは , [ プロジェクト ] - [ プロジェクトの設定 ] メニューで表示される , プロジェクト設定ダイアログにて変更が可能です。またデバッ ガ起動時と MCU のリセット時に Boot ROM ファイルを自動的に実行するかどうかを選 択することも可能です。詳細は『SOFTUNE Workbench 操作マニュアル』を参照してく ださい。 <注意事項> • Boot ROM ファイルにはエミュレータデバッガを起動するために必要な情報が入って います。デバッガ起動時またはリセット時には Boot ROM ファイルを必ず実行してく ださい。 • エミュレータデバッガにて MCU リセットを行った場合の PC 値は , MB2198 とそれ以 外で以下のように異なります。 MB2198 : Boot ROM ファイルの先頭アドレス MB2198 以外 : ターゲットファイル内のエントリポイント ( リセットベクタ ) July 1, 2014, CM41-00313-8 241 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.1.3 S up po r t M a nu al MCU 動作モード MCU 動作モードには次の 2 種類があります。 • フルトレースモード • リアルタイムモード ■ MCU 動作モードの設定 MCU の動作モードを設定します。動作モードには , フルトレースモードとリアルタイ ムモードがあります。これらのモードは [ 環境 ] - [ デバッグ環境の設定 ] - [ デバッグ 環境 ] メニュー , またはコマンドウィンドウの SET RUNMODE コマンドにより設定し ます。 ● フルトレースモード フルトレースモードでは , トレースデータは欠落することなく , すべての命令実行をト レースすることができます。ただし , 11 サイクル以内に 3 回以上の分岐が行われた場 合にトレースデータの取得を優先して行い , MCU へウェイトを入れるため , 実時間で 動作しない場合があります。 ● リアルタイムモード リアルタイムモードでは , プログラムの実時間での実行が可能です。ただし , 11 サイク ル以内に 3 回以上の分岐が行われた場合にトレースデータの一部が欠落することがあ ります。 また , サイクル数の測定で , 誤差が生じる場合があります。 242 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l 動作周波数制御 2.5.1.4 動作周波数の設定について説明します。 ■ 動作周波数 MCU の動作周波数を設定します。動作周波数は 1 ~ 266MHz の範囲から設定してくだ さい。この設定により MCU とエミュレータの通信速度を最適にします。 この機能は , [ 環境 ] - [ デバッグ環境の設定 ] - [ デバッグ環境 ] - [ 動作周波数 ] メニュー または SET FREQUENCY コマンドで設定できます。 <注意事項> • この設定は最大周波数を設定するものであり , 実際の動作周波数は変更されません。 • 実際に使用する動作周波数より低い値を設定すると,エミュレータが誤動作する可能性 があります。 July 1, 2014, CM41-00313-8 243 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.2 S up po r t M a nu al プログラム実行での注意 プログラム実行コマンドには , いくつかの注意事項があります。 ■ GO コマンドでの注意 GO コマンドにはコマンド実行時だけ有効なブレークポイントを 2 個設定できますが , このブレークポイントの設定には注意が必要です。 ● 無効なブレークポイント • 表 2.5-1 の命令の直後の命令にブレークポイントを設定してもブレークしません。 表 2.5-1 設定したブレークポイントが無効になる命令 F2MC-16FX PCB NCC SPB MOV ILM,#imm8 OR CCR,#imm8 DTB ADB CNR AND CCR,#imm8 POPW PS • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 ■ STEP コマンドでの注意 ● 特殊なステップ実行 表 2.5-1 の命令を実行する場合は , それに続く 1 命令も含めて命令として動作します。 ただし , 命令が連続している場合は , それらすべてとその直後の 1 命令を全部含めて 1 命令として動作します。 ● ブレークしないステップ実行 次の 2 つの条件を一度に満たす場合は , ステップ動作後ブレークしませんので注意して ください。 • ステップする命令が 2 バイト以上の命令で , その最後のコードが偶数で終わってい る場合 • その最後のアドレスに既にブレークポイントが設定されている場合 ( この既に設定されているブレークポイントは , 命令先頭以外のブレークポイントで すから , ブレークしない無効なブレークポイントです。) 244 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l ■ ウォッチドッグタイマの制御 GO, STEP, CALL コマンドによるプログラム実行中に [ ブレーク中にウォッチドッグタ イマを停止する ] ことができます。 ウォッチドッグタイマの制御は , ENABLE WATCHDOG, DISABLE WATCHDOG コマ ンドで行います。 • ENABLE WATCHDOG … ブレーク中にウォッチドッグタイマ動作させる。 • DISABLE WATCHDOG … ブレーク中にウォッチドッグタイマを停止する。 本プログラム起動時は , [ ブレーク中にウォッチドッグタイマ動作させる ] になってい ます。 (例) >DISABLE WATCHDOG >GO July 1, 2014, CM41-00313-8 245 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.3 S up po r t M a nu al ユーザプログラム実行中に使用できるコマンド ユーザプログラム実行中に使用できるコマンドについて説明します。 ■ ユーザプログラム実行中に使用できるコマンド 本エミュレータデバッガでは , ユーザプログラム実行中に特定のコマンドが使用でき ます。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の各コマンドの 「■ 対応デバッガ」を参照してください。 ◎はユーザプログラム実行中に使用できることを表しています。 表 2.5-2 にユーザプログラム実行中に使用できるコマンドを示します。 このほかにも , リアルタイムモニタ機能を利用すると , 指定したメモリ領域がリアルタ イムモニタウィンドウに表示され, MCU実行中でもデータの読出し(更新)ができます。 表 2.5-2 ユーザプログラム実行中に使用できるコマンド 機能 限定事項 主コマンド MCU のリセット - 1.3 RESET MCU 実行状態の表示 - 2.12 SHOW STATUS 実行サイクル測定値の表示 - 4.27 SHOW TIMER - 5.1 EXAMINE, 5.2 ENTER, 5.3 SET MEMORY, 5.4 SHOW MEMORY, 5.5 SEARCH MEMORY, 5.8 COMPARE, 5.9 FILL, 5.10 MOVE, 5.11 DUMP - 6.1 ASSEMBLE, 6.2 DISASSEMBLE メモリ操作 (リード/ライト) ラインアセンブル , 逆アセンブル ブレークポイントの設定 デバッグ環境ダイアログの実行タ ブで 「実行中のブレークポイント設定」 を有効にした場合に操作可能 * 3.1 SET BREAK (type 1), 3.2 SET BREAK (type 2), 3.3 SET BREAK (type 3), 3.6 CANCEL BREAK, 3.7 ENABLE BREAK, 3.8 DISABLE BREAK, 3.9 SET DATABREAK (type 1), 3.10 SET DATABREAK (type 2), 3.12 CANCEL DATABREAK, 3.13 ENABLE DATABREAK, 3.14 DISABLE DATABREAK *: 詳細は「2.5.4 ブレーク」を参照してください。 246 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l <注意事項> • 表 2.5-2 のコマンドが使用できる条件は, 以下のどちらかによりユーザプログラムを実 行した場合に限ります。 - [ デバッグ ]-[ 実行 ]-[ 連続実行 ] メニュー - デバッグツールバーの [ 連続実行 ] ボタン コマンドウィンドウにて GO コマンドを入力した場合は , 表 2.5-2 のコマンドは使用 できません。 • ユーザプログラム実行中に使用できないコマンドを入力すると,以下のエラーメッセー ジが表示されます。 「E4404S: MCU 実行中は使えないコマンドです」 • 表 2.5-2 のうち , メモリ操作 , ラインアセンブル/逆アセンブル系のコマンドは , 実行 中に一時的に CPU を停止して読出しと書込みを行っています。 July 1, 2014, CM41-00313-8 247 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.4 S up po r t M a nu al ブレーク 本エミュレータデバッガでは , 7 種類のブレーク機能を使用できます。各ブレーク機 能によりプログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因 を表示します。 ■ ブレーク機能 本エミュレータデバッガでは , 7 種類のブレーク機能をサポートしています。 • コードブレーク • データブレーク • ガーデッドアクセスブレーク • トレースバッファフルブレーク • パフォーマンスバッファフルブレーク • 外部トリガブレーク • 強制ブレーク 248 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l コードブレーク 2.5.4.1 指定したアドレスをハードウェアまたはソフトウェアで監視することでプログラム 実行を中断する機能です。指定されたアドレスの命令を実行する前にブレークしま す。 ■ コードブレークとは 指定したアドレスをハードウェアまたはソフトウェアで監視することでプログラムを 中断する機能です。指定されたアドレスの命令を実行する前にブレークします。 最大設定数は以下のとおりです。 ハードウェア : 4 ポイント ソフトウェア : 2048 ポイント コードブレークでブレークした場合 , ステータスバーに次のメッセージが表示されま す。 • ハードウェア Break at アドレス by hardware breakpoint • ソフトウェア Break at アドレス by breakpoint ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK/HARD( ハードウェア ) - SET BREAK/SOFT( ソフトウェア ) 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ July 1, 2014, CM41-00313-8 249 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e S up po r t M a nu al <注意事項> • ハードウェア ハードウェアブレークには次の注意点があります。 - シーケンサまたはトレーストリガと併用するため , 最大設定数は変動します。 - 遅延スロットに置かれている命令には , ハードウェアブレークを設定しないでくだ さい。設定すると , ブレーク後に再実行しても分岐しません。 - ブレークポイントは必ず命令の先頭アドレスを指定範囲に含めるように注意してく ださい。ブレークしないことがあります。 - ハードウェアブレークを設定したアドレスから実行するとき , 直前の実行が命令ブ レーク以外の要因で停止した場合には , 命令が実行されずにブレークします。この とき , 再度実行すると , 命令が実行されます。 • ソフトウェア ソフトウェアブレークには次の注意点があります。 - ROM のような書込みが正しく行えない領域には設定できません。この場合は , プロ グラム実行開始時 ( 連続実行やステップ実行などを開始するとき ) にベリファイエ ラーが発生します。 - 必ず命令の先頭アドレスに設定してください。命令の途中にブレークポイントを設 定すると , プログラムが暴走する場合があります。 250 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l データブレーク 2.5.4.2 指定アドレスに対しデータアクセス ( リード , ライト ) が行われた場合 , プログラム 実行を中断する機能です。 ■ データブレークとは 指定アドレスに対しデータアクセス ( リード , ライト ) が行われた場合 , プログラム実 行を中断する機能です。最大 4 ポイント設定可能です。 データブレークでブレークした場合は,ステータスバーに次のメッセージが表示されま す。 Break at アドレス by databreak at アクセスアドレス ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbenchコマンドリファレンスマニュアル』 の 「3.9 SET DATABREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ データ ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> • シーケンサまたはトレーストリガと併用するため , 最大設定数は変動します。 • 奇数アドレスからのワードアクセスでは , ( バスアクセス上 )2 回のバイトアクセスで行 われます。そのため , 奇数アドレスからワードアクセスを指定してもヒットしませんの で , 注意してください。 July 1, 2014, CM41-00313-8 251 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.4.3 S up po r t M a nu al ガーデッドアクセスブレーク 指定領域に対し , 指定した属性でアクセスが行われた場合に , プログラム実行を中断 する機能です。 ■ ガーデッドアクセスブレーク 指定領域に対し , ユーザプログラム実行中に指定したアクセス属性にヒットした場合 , ガーデッドアクセスブレークが発生します。 ガーデッドアクセスブレークには以下の 3 種類の属性を指定できます。 コードガーデッド 指定領域に対し , 命令実行を行った場合にブレークする リードガーデッド 指定領域に対し , 読出しを行った場合にブレークする ライトガーデッド 指定領域に対し , 書込みを行った場合にブレークする プログラム実行中に , ガーデッドアクセスが起こると , ステータスバーに次のメッセー ジを表示してプログラム実行を中断します。 Break at アドレス by guarded access {code/read/write} at アクセスアドレス ■ 設定方法 ガーデッドアクセスブレークの制御は次の方法で行います。 • コマンド - SET GUARDMAP 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「1.48 SET GUARDMAP」を参照してください。 • ダイアログ - マップ設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.7.3 デバッガのメモリマップ」を 参照してください。 252 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l シーケンシャルブレーク 2.5.4.4 シーケンシャルブレークとは , イベントのシーケンシャル制御により , シーケンシャ ル条件が成立した場合に , プログラム実行を中断する機能です。 ■ シーケンシャルブレークとは イベントのシーケンシャル制御により , シーケンシャル条件が成立した場合に , プログ ラム実行を中断する機能です。シーケンシャル制御についての詳細は『2.5.5 シーケン サによる制御』を参照してください。 シーケンシャルブレークでブレークした場合 , 次のメッセージが表示されます。 Break at アドレス by sequential break (level= レベル番号 ) ■ シーケンシャルブレークの種類 本デバッガには以下の 2 種類のシーケンシャルブレークがあります。 ● 8 レベルシーケンス [ 表示 ]-[ シーケンス ] メニューにて表示される , シーケンスウィンドウにて設定しま す。このシーケンサには以下の特長があります。 • 最大 8 レベルまで設定できます。 • 1 つの ( 移行元 ) イベントに対し , 複数の移行先レベルの設定ができます。 • シーケンサ終了 (END) 時にブレークまたはトレース制御 ( 取得開始 / 取得終了 ) の 設定ができます。ここではブレークを選択します。 • シーケンサの各イベントヒット時にトレース制御 ( 取得開始 / 取得終了 ) の設定がで きます。 • ブレーク時に現在のシーケンスレベル移行状態の表示ができます。 ● 3 レベルシーケンス [ デバッグ ]-[3 レベルシーケンス ] メニューで表示される , 3 レベルシーケンス設定ダ イアログにて設定します。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.6 シーケンス」を参照してください。 • 最大 3 レベルまで設定できます。 • 1 つの ( 移行元 ) イベントに対し , 移行先レベルは 1 つだけ設定ができます。 • シーケンサ終了 (END) 時にブレークまたはトレース制御 ( 取得開始 / 取得終了 ) の 設定ができます。ここではブレークを選択します。 • シーケンスウィンドウに表示した場合 , ブレーク時に現在のシーケンスレベル移行 状態の表示ができます。 <注意事項> シーケンサの最終レベル番号は必ず 7 になります。したがってシーケンシャルブレーク時 にステータスバーに表示されるメッセージのレベル番号は 8 レベルまたは 3 レベルのいず れの場合も 7 と表示されます。 July 1, 2014, CM41-00313-8 253 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.4.5 S up po r t M a nu al トレースバッファフルブレーク トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 ■ トレースバッファフルブレークとは トレースバッファがいっぱいになった場合にプログラム実行を中断する機能です。 トレースバッファフルブレークでブレークした場合ステータスバーに次のメッセージ が表示されます。 Break at アドレス by trace buffer full ■ 設定方法 トレースバッファフルブレークの制御は次の方法で行います。 • コマンド - SET TRACE/BREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.30 SET TRACE (type2)」を参照してください。 • ダイアログ - トレース設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 254 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l パフォーマンスバッファフルブレーク 2.5.4.6 パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム 実行を中断する機能です。 ■ パフォーマンスバッファフルブレークとは パフォーマンス測定データ格納用のバッファがいっぱいになった場合にプログラム実 行を中断する機能です。 パフォーマンスバッファフルブレークでブレークした場合ステータスバーに次のメッ セージが表示されます。 Break at アドレス by performance buffer full ■ 設定方法 パフォーマンスバッファフルブレークの制御は次の方法で行います。 • コマンド - SET PERFORMANCE/BREAK 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「4.8 SET PERFORMANCE (type2)」を参照してください。 • ダイアログ - パフォーマンス設定ダイアログ 『SOFTUNE Workbench 操作マニュアル』の「4.4.13 パフォーマンス」を参照して ください。 July 1, 2014, CM41-00313-8 255 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.4.7 S up po r t M a nu al 外部トリガブレーク エミュレータが持っている TRIG 端子から外部信号の入力があった場合に , プログラ ムの実行を中断させる機能です。 ■ 外部トリガブレークとは エミュレータが持っている TRIG 端子から外部信号の入力があった場合にプログラム の実行を中断させる機能です。 外部トリガブレークでブレークした場合ステータスバーに次のメッセージが表示され ます。 Break at アドレス by external trigger break ■ 設定方法 外部トリガブレークの制御は次の方法で行います。 • コマンド - SET TRIGGER 『SOFTUNE Workbenchコマンドリファレンスマニュアル』 の 「3.42 SET TRIGGER」 を参照してください。 • ダイアログ - デバッグ環境設定ダイアログ [ エミュレーション ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」を参照し てください。 256 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l 強制ブレーク 2.5.4.8 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合はステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request <注意事項> MCU が低消費電力モード中およびホールド状態での強制ブレークはできません。プログ ラム実行中 , [ デバッグ ] - [ 停止 ] メニューによって強制ブレークを要求した場合 , 低消費 電力モード , ホールド状態であれば [ デバッグ ] - [ 停止 ] メニューは無視されます。どう してもブレークさせたい場合は , [ デバッグ ] - [ 停止 ] メニュー入力後 , ユーザシステム側 で要因を解除するか , [ デバッグ ] - [MCU のリセット ] メニューを用いて要因を解除して ください。実行中に低消費電力モード , ホールド状態になった場合は , ステータスバーに 状態が表示されます。 July 1, 2014, CM41-00313-8 257 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.5 S up po r t M a nu al シーケンサによる制御 本エミュレータは , イベントの制御を行うシーケンサを持っています。 このシーケンサにより , プログラムのある流れ ( シーケンス ) に着目したブレークま たはトレース制御ができます。この機能より発生するブレークのことをシーケン シャルブレークとよびます。 ■ シーケンサによる制御 表 2.5-3 に示すように 8 レベルの制御ができます。 1 つのレベルには 1 個のイベントが設定できます。 シーケンサは任意のレベルから任意のレベルへ移行でき,リスタート条件も指定できま す。 表 2.5-3 シーケンサの仕様 機能 仕様 レベル数 8 レベル 1 レベルの条件 イベント 1 条件 ( 各条件ごとに 1 ~ 65535 回のパスカウントが 指定可能 ) リスタート条件 イベント 1 条件 (1 ~ 65535 回のパスカウントが指定可能 ) 移行後の動作 ブレーク , トレース制御 ( 開始 / 終了 ) ■ イベントの設定 MCU のバスの動作を監視して , 指定した条件でシーケンサ用のトリガを発生させるこ とができます。この機能をイベントとよびます。 イベントでは , コード (/CODE) データアクセス (/READ/WRITE) を指定できます。 イベントの最大設定数は 8 個ですが , トレーストリガと共通のハードウェアを使用する ため , 実際には次のようになります。 現在のイベント最大設定数 = 8 ( 現在のブレーク設定数 + 現在のトレーストリガ設定数 ) イベントに設定できる条件を表 2.5-4 に示します。 表 2.5-4 イベントおよびトレーストリガに設定できる条件 条件 258 内容 アドレス メモリ位置 ( アドレスビットマスク不可 ) データ 16 ビットデータ ( データビットマスク可能 ) アクセスサイズ バイト , ワード アクセス属性 コード / データリード / データライト バスマスタ CPU, DMA CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l シーケンスイベントの設定は次のコマンドで行います。 • SET SEQUENCE : シーケンスイベントの設定 • SHOW SEQUENCE : シーケンスイベント設定状態の表示 • CANCEL SEQUENCE : イベントの削除 <注意事項> • 命令実行 (/CODE) は , 命令が実行された場合だけイベントトリガが発生します。ほか のステータス (/READ や /WRITE) と同時には , 指定できません。 • データイベントの場合 , 奇数アドレスからのワードアクセスでは ( バスアクセス上 )2 回 のバイトアクセスで行われます。そのため奇数アドレスからワードアクセスを指定し てもヒットしないため , 注意してください。 July 1, 2014, CM41-00313-8 259 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e S up po r t M a nu al シーケンサの動作 2.5.5.1 シーケンサは以下の順で動作します。 1) プログラム実行を開始するとシーケンサがスタートします。 2) 各レベルの設定により条件成立時に移行先レベルへ分岐します。 3) リスタート条件成立時にはシーケンサを再度開始します。 4) 移行先レベルが END となる条件が成立した場合は , シーケンサが終了しブレーク します。 ■ シーケンサの動作 シーケンサは以下の順で動作します。各レベルおよびリスタート条件として , イベント を設定することができます。 1) プログラム実行を開始するとシーケンサがスタートします。 2) 各レベルの設定により条件成立時に移行先レベルへ分岐します。 3) リスタート条件成立時にはシーケンサを再度開始します。 4) 移行先レベルが END となる条件が成立した場合は , シーケンサが終了しブレークし ます。 <注意事項> 移行先レベルが END となった場合 , ユーザプログラムを再実行するとシーケンサは再度 スタートから開始します。 260 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l 図 2.5-1 シーケンサの動作 START LEVEL1 イベント 8 イベント 1 イベント 4 LEVEL2 LEVEL3 イベント 2 LEVEL4 LEVEL5 イベント 5 LEVEL6 END July 1, 2014, CM41-00313-8 イベント 7 イベント 3 イベント 6 261 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.6 S up po r t M a nu al リアルタイムトレース プログラム実行中にアドレス , データ , ステータス情報と外部プローブによりサンプ リングしたデータをマシンサイクル単位にサンプリングし , トレースバッファに記録 することができます。この機能をリアルタイムトレースとよびます。 リアルタイムトレースにより記録したデータからプログラム実行履歴を詳細に解析 することができます。 ■ トレースバッファ マシンサイクル単位にサンプリングして記録したデータをフレームとよびます。 トレースバッファは 64K(65536) フレーム分の容量があります。拡張トレースボード使 用時は 256M(268,435,456) フレーム分の容量になります。 トレースバッファはリング状の構造となっているので,トレースバッファが一杯になっ た場合は自動的にトレースバッファの先頭から上書きされて記録されます。 ■ トレースデータ トレース機能でサンプリングされるデータをトレースデータとよびます。 次のデータがサンプリングされます。 • 分岐命令フレーム 分岐元アドレス , 分岐先アドレス , 逆アセンブル • データフレーム アクセスアドレス,アクセスデータ,アクセスサイズ,アクセス属性(リード/ライト), バスマスタ (CPU/DMA) • 特殊フレーム プログラム停止 , トレース開始 / 終了 , リセット , ループカウント , 拡張タイムスタ ンプフレーム , データロスト • 直前のフレームとの実行時間の差分 (CPU クロック単位 ) ■ フレーム番号 サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースバッファ中のどの位置から表示するかの指定は , フレーム番号により行いま す。シーケンサ終了のトリガ発生位置のトレースデータには 0 番が , トリガ発生位置に 到達するまでにサンプリングされたトレースデータには負の番号が付けられます ( 図 2.5-2 参照 )。 シーケンサ終了のトリガ位置がない場合は,最後にサンプリングされたトレースデータ が 0 となります。 262 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l 図 2.5-2 トレース時のフレーム番号 ・ ・ ・ -3 -2 -1 0 (トリガ発生位置) ■ トレースフィルタ 限られたトレースバッファを有効に活用するためコードフェッチのほかにも特定領域 へのデータアクセス情報を取得する機能がありこれをトレースフィルタとよびます。 データトレースフィルタ機能では次の値を指定できます。 • アクセス属性 ( リード , ライト ) • データトレース開始アドレス / 終了アドレス また , 同じフレームを繰り返した場合に 1 つのフレームに圧縮する機能もあります。 ■ トレーストリガの設定 MCU のバスの動作を監視して , 指定した条件でトレース開始用のトリガを発生させる ことができます。この機能をトレーストリガとよびます。 トレーストリガでは , コード (/CODE) データアクセス (/READ/WRITE) を指定できます。 トレーストリガの最大設定数は , コード属性データアクセス属性それぞれ 4 個ですが , イベントと共通のハードウェアを使用するため , 実際には次のようになります。 現在のトレーストリガ最大設定数 = 4 ( 現在のブレーク設定数 + 現在のシーケンス設定数 ) トレーストリガに設定できる条件については , 前述の表 2.5-3 をご参照ください。 トレーストリガの設定は次のコマンドで行います。 • SET TRACETRIGGER : トレーストリガの設定 • CANCEL TRACETRIGGER : トレーストリガの削除 • SHOW TRACETRIGGER : トレーストリガ設定状態の表示 • SHOW TRACE/STATUS : トレース設定状態の表示 トレースサンプリングの動作を図 2.5-3 に示します。 図 2.5-3 トレースサンプリングの動作 ( トレーストリガ ) スタート 再開 ↓ ↓ 中断 再開 中断 ↓ ↓ ↓ 再開 中断 ↓ ↓ プログラムの流れ トレースバッファ July 1, 2014, CM41-00313-8 263 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.6.1 S up po r t M a nu al トレースの設定方法 トレースを行うには , 1) ~ 3) の設定をします。その後 , プログラムの実行を行うと トレースデータがサンプリングされます。 1) トレース機能を有効にします。 2) イベントおよびシーケンサの設定を行います。 3) トレースバッファフルブレークの設定を行います。 ■ トレースの設定方法 トレースを行うには , 以下の設定をします。その後プログラムの実行を行うと , トレー スデータがサンプリングされます。 1) トレース機能を有効にします。 設定は , ENABLE TRACE コマンドで行います。 無効にする場合は , DISABLE TRACE コマンドで行います。 本プログラム起動時は , 有効になっています。 2) イベントおよびシーケンサの設定を行います。 トレーストリガを用いると , トレースサンプリングを制御でき , サイズが限られた トレースバッファを有効に使えるようになります。必要がない場合は , 設定する必 要はありません。 トレーストリガでは , トリガヒットを要因としたトレースサンプリングの開始 / 停 止を指定できます。 トレーストリガを使用する場合には, SET TRACE/TRIGGERコマンドを入力し, SET TRACETRIGGER コマンドでトレーストリガの設定を行います。 3) トレースバッファフルブレークの設定を行います。 トレースバッファがいっぱいになった場合に , ブレークさせることができます。設 定は , SET TRACE コマンドで行います。本プログラム起動時は , ブレークしない設 定になっています。設定状態は , SHOW TRACE/STATUS で確認することができま す。 表 2.5-5 にシングルトレース時のトレースに関係するコマンドを示します。 表 2.5-5 シングルトレース時に使用できるトレース関係のコマンド 使用できるコマンド 264 機能 SET TRACETRIGGER トレーストリガの設定 CANCEL TRACETRIGGER トレーストリガの削除 SHOW TRACETRIGGER トレーストリガの表示 SET TRACE トレースバッファフルブレークの設定 SHOW TRACE トレースデータの表示 SEARCH TRACE トレースデータの検索 ENABLE TRACE トレース機能を有効にする。 DISABLE TRACE トレース機能を無効にする。 CLEAR TRACE トレースデータをクリアする。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l <注意事項> データトレーストリガの場合 , 奇数アドレスからのワードアクセスでは ( バスアクセス上 ) 2 回のバイトアクセスで行われます。そのため奇数アドレスからワードアクセスを指定し てもヒットしないため , 注意してください。 July 1, 2014, CM41-00313-8 265 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.6.2 S up po r t M a nu al トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 ■ トレースデータの格納状況の表示 トレースバッファ中にどれだけトレースデータが格納されているかは , SHOW TRACE コマンドに , /STATUS を指定することにより読み出すことができます。 【例】 >SHOW TRACE/STATUS = enable ; トレース機能は有効 buffer full = nobreak ; バッファフルブレーク機能は無効 code = enable ; コード実行を取得 en/dis loop compress = enable frame no. ; ループ圧縮機能は有効 = -00120 to 00000 ; -120 ~ 0 フレームまで格納されている。 > 266 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示位置の指定 2.5.6.3 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンド でステップ番号もしくはフレーム番号を指定することにより可能です。範囲指定も できます。 ■ トレースデータの表示位置の指定 トレースバッファ中のどのデータから表示を開始するかは , SHOW TRACE コマンドで ステップ番号もしくはフレーム番号により指定します。範囲指定もできます。 【例】 >SHOW TRACE/RAWDATA -6 ; -6 フレームから表示する。 >SHOW TRACE/RAWDATA -6..0 ; -6 フレームから 0 フレームまで表示する。 July 1, 2014, CM41-00313-8 >SHOW TRACE -6 ; -6 フレームから表示する。 >SHOW TRACE -6..0 ; -6 フレームから 0 フレームまで表示する。 267 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.6.4 S up po r t M a nu al トレースデータの表示形式 SHOW TRACE コマンドにコマンド修飾子を指定することにより表示形式を選択す ることができます。SET SOURCE コマンドの設定によりソース行を付加するモード になっていれば , ソース行が付加されて表示されます。 トレースデータの表示形式には次の 3 種類があります。 • トレースデータを解析せずに表示 (/RAWDATA を指定 ) • 命令実行順に表示 (/INSTRUCTION を指定 ) • ソース行単位で表示 (/SOURCE を指定 ) ■ トレースデータを解析せずに表示 (/RAWDATA を指定 ) エミュレータから出力されるフレームを , 解析せずそのまま表示します。 このモードでは SET SOURCE コマンドでの設定に関係なく , ソースの表示は行われせ ん。 逆アセンブル表示 フレーム番号 実行された命令を 表示します。 10進数符号付き データ タイムスタンプ表示 直後のフレームとの実行 時間の差分を10進数10桁 で表示します。単位はサイ クルです。 16進数 割込み >SHOW TRACE /RAWDATA -2400 frame no. address data(mnemonic) time stamp ハードウェア割込 -02400 : DF02B3 BRA DF0296-> DF0296 1 みによる分岐 -02399 : write 0010 at 004A32 1 -02398 : read 0010 at 004A32 8 -02397 : DF029B BGE DF02B5-> DF02B5 [INT] 3 -02396 : DF02BC == << Trace ON code hit >> == 10 飛び先アドレス -02395 : write 0000 at 0001A0 0 16進数 -02394 : write 0000 at 004A32 2 分岐命令の分岐先 -02393 : read/DMA 0000 at 004A32 2 アドレス -02392 : read 0000 at 0001A2 6 -02391 : DF02C4 BRA DF02CA-> DF02CA 1 -02390 : write 0001 at 0001A2 1 -02389 : ==== << Break at DF02CA >> ===== -02388 : DF02CA MOV A,#10 データアクセス read:内部メモリへのリード write:内部メモリへのライト /DMA:DMAアクセス (表示なしはCPUアクセス) 特殊フレームには以下のものがあります。 268 Break at "address" : プログラム実行が停止したアドレスを表示します。 Trace ON code(data) hit : トレース取得を開始したことを示します。 Trace OFF code(data) hit : トレース取得を停止したことを示します。 Reset : リセットを検出したことを示します。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t Loop Count " 回数 " M a n u a l : ループカウントが発生した回数を表示します。 Extended time stamp frame : タイムスタンプが 8191 以上の値になった場合 , ここに 表示されます。 Data Lost Error : データが失われたことを示します。 ■ 命令実行順に表示 (/INSTRUCTION を指定 ) RAW データ表示から分岐フレームを抜き出し , フレーム間を逆アセンブル表示で補完 した形式です。プログラム停止フレーム以外の特殊フレームも表示されます。 このモードでの表示は , 次のようになります。 逆アセンブル表示 分岐フ レ ーム 間を 補完し た 表示。 >SHOW TRACE frame no. -02389 : sample.c$90 : : : : : : -02384 : sample.c$16 \sort_val: : : タイムスタンプ表示 直後のフ レ ーム と の実行時 間の 差分を10進数10桁で表示 します。単位はサイクルです。 /RAWDATA -2400 address mnemonic DF02C4 BRA DF02CA-> DF02CA sort_val(value, 16L); DF02CA MOV A,#10 DF02CC ZEXTW DF02CD PUSHW AH DF02CE PUSHW A DF02CE MOVEA A,@RW3-26 DF02D2 PUSHW A DF02D3 CALL \sort_val-> DF00CE { DF002E LINK DF00D0 PUSHW time stamp 1 2 #0E RW0,RW1 フレーム番号 10進数符号付き 特殊フレームには以下のものがあります。 Trace ON code(data) hit : トレース取得を開始したことを示します。 Trace OFF code(data) hit : トレース取得を停止したことを示します。 Reset : リセットを検出したことを示します。 Loop Count " 回数 " : ループカウントが発生した回数を表示します。 Extended time stamp frame : タイムスタンプが 8191 以上の値になった場合 , ここに 表示されます。 Data Lost Error July 1, 2014, CM41-00313-8 : データが失われたことを示します。 269 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e S up po r t M a nu al ■ ソース行単位で表示 (/SOURCE を指定 ) ソース行だけを表示します。 【例】 >SHOW TRACE/SOURCE -1010..-86 270 step no. source -01007 : sample.c$68 value[i] = &target[I]; -00905 : sample.c$68 value[i] = &target[I]; -00803 : sample.c$68 -00698 : sample.c$70 -00655 : sample.c$9 -00594 : sample.c$13 -00185 : sample.c$14 i = k; -00149 : sample.c$15 p = tblp[i - 1]; -00088 : sample.c$16 while ((j = 2 * i) <= max){ value[i] = &target[I]; sort_val(value, 16L); { for (k = max / 2; k >= 1; k--){ CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l トレースデータを保存するには 2.5.6.5 トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 July 1, 2014, CM41-00313-8 271 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.7 S up po r t M a nu al パフォーマンス測定 2 つのイベント発生間の時間測定 , 通過回数を測定することができます。リアルタイ ムに実行しながら繰り返し測定ができ , 実行後 , データを集計し表示を行います。 この機能によりプログラムのパフォーマンスを測定することができます。 ■ パフォーマンス測定の機能 パフォーマンス測定では , 2 つのイベント間の時間測定とイベントの発生回数の測定が できます。65535 回イベントが発生するまで測定できます。 ● 時間測定 2 つのイベント間の時間を測定します。2 区間の設定が可能です。 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなり,そのイベントが発生 した回数を測定します。 272 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e S u p p o r t M a n u a l パフォーマンス測定手順 2.5.7.1 パフォーマンス測定は , 次の手順により測定を行います。 1. タイマの最小測定単位の設定 2. パフォーマンスバッファフルブレークの指定 3. イベントの設定 4. プログラム実行 5. 測定結果の表示 6. 測定結果のクリア ■ タイマの最小測定単位 パフォーマンス測定に使用するタイマの測定単位は 1ns です。また , 測定データの分解 能は CPU のクロックに依存します。 ■ パフォーマンスバッファフルブレークの指定 パフォーマンス測定データ格納用のバッファが一杯になった場合,プログラムの実行を ブレークすることができます。この機能をパフォーマンスバッファフルブレークとよ びます。パフォーマンスバッファは , 65535 回イベントが発生すると一杯になります。 パフォーマンスバッファフルブレークを指定しなかった場合は,パフォーマンス測定は 終了しますが , ブレークはしません。 (例) >SET PERFORMANCE/NOBREAK ← ブレークしない指定 > ■ イベントの設定 イベント設定 ( パフォーマンス区間設定 ) ダイアログ , または SET PERFORMANCE コ マンドでイベントを設定します。2 区間の設定が可能です。 ● 回数測定 設定したイベントがそのままパフォーマンス測定ポイントとなります。 ■ プログラム実行 GO, CALL コマンドによりプログラム実行すると測定されます。ある区間の時間測定 中にブレークした場合は , その区間の測定中のデータは捨てられます。 ■ パフォーマンス測定データの表示 SHOW PERFORMANCE コマンドで表示を行います。 ■ パフォーマンス測定データのクリア CLEAR PERFORMANCE コマンドにより測定データのクリアができます。 (例) >CLEAR PERFORMANCE > July 1, 2014, CM41-00313-8 273 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e 2.5.7.2 S up po r t M a nu al パフォーマンス測定データの表示 SHOW PERFORMANCE コマンドで時間測定の表示 , 測定回数の表示を行います。 ■ 時間測定の表示 表示を行うには , 開始イベント番号 , または終了イベント番号を指定します。 イベント番号 その時間内の測定回数 >SHOW PERFORMANCE/TIME 1, 9000, 18999, 1000 最小実行時間 最大実行時間 event min time max time avr time = = = = 1 -> 2 11637.0 17745.0 14538.0 平均実行時間 総測定回数 >SHOW PERFORMANCE/TIME event = 1 -> 2 min time = 11637.0 max time = 17745.0 avr time = 14538.0 下限表示時間 上限表示時間 274 time (µs) | count ------------------------------+-------0.0 8999.0 | 0 9000.0 9999.0 | 0 10000.0 10999.0 | 0 11000.0 11999.0 | 2 12000.0 12999.0 | 19 13000.0 13999.0 | 52 14000.0 14999.0 | 283 15000.0 15999.0 | 92 16000.0 16999.0 | 3 17000.0 17999.0 | 1 18000.0 18999.0 | 0 19000.0 | 0 ------------------------------+-------total | 452 1,13000,16999,500 time (µs) | count ------------------------------+-------0.0 8999.0 | 21 9000.0 9999.0 | 13 10000.0 10999.0 | 39 11000.0 11999.0 | 121 12000.0 12999.0 | 162 13000.0 13999.0 | 76 14000.0 14999.0 | 16 15000.0 15999.0 | 2 16000.0 16999.0 | 1 17000.0 17999.0 | 1 ------------------------------+-------total | 452 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e 2.5.8 S u p p o r t M a n u a l 実行時間測定 プログラムの実行時間を測定する機能です。 ■ 測定項目 プログラムの実行開始から停止までの時間を測定します。 本エミュレータデバッガではエミュレーションタイマまたはサイクルカウンタにて測 定を行います。それぞれの特長は以下のとおりです。 • エミュレーションタイマ 分解能 :25ns 有効ビット数:64 ビット 最大測定時間:最大 18,446,744,073,709,551,615 × 25ns • サイクルカウンタ 有効ビット数 :64 ビット 最大測定サイクル数 :18,446,744,073,709,551,615 サイクル いずれの場合も測定はプログラム実行のたびに行われ , 測定結果は以下の値を表示し ます。 • 直前のプログラム実行におけるサイクル数 • 前回クリアしてからの実行サイクル数の合計 ■ 測定結果の表示 測定結果の表示は以下のどちらかで行います。 • ダイアログによる表示 [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに 表示します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 • コマンドによる表示 コマンドウィンドウにて SHOW TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 ■ 測定結果のクリア 測定結果のクリアは以下のどちらかで行います。 • ダイアログによるクリア [デバッグ]-[時間測定]メニューを選択すると表示される時間測定ダイアログに て[クリア]ボタンを押します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照してく ださい。 July 1, 2014, CM41-00313-8 275 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) So ft war e S up po r t M a nu al • コマンドによるクリア コマンドウィンドウにて CLEAR TIMER コマンドを入力します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 <注意事項> 実行時間測定は 1 回の実行につき 10 サイクル程度多く計測されます。実行サイクルを計 測する場合には , 誤差の影響を少なくするために多くの命令を連続実行するようにしてく ださい。 276 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.5 エミュレータデバッガ (MB2198) S o ft w a r e 2.5.9 S u p p o r t M a n u a l パワーオンデバッグ MB2198 エミュレータでのパワーオンデバッグについて説明します。 ■ パワーオンデバッグ ターゲットの電源投入から始まる動作シーケンスをデバッグする作業をパワーオンデ バッグとよびます。 MB2198 エミュレータでは , パワーオンデバッグ専用の端子を持つ品種について , ター ゲットシステムの電源投入直後のシーケンスをデバッグ可能です。このとき , 次の機能 を使用することができます。 • コードブレーク • データブレーク • シーケンサ • トレーストリガ • トレース測定 • カバレッジ測定 パワーオンデバッグの手順は , 次のようになります。 • エミュレータ上部にマウントしたアダプタボード上のディップスイッチを設定 • ターゲットボードとエミュレータ本体の電源を投入 • Workbench を起動 , デバッグを開始 デバッグのため , ハードウェアブレークなどを設定。 • パワーオンデバッグを開始するため , [ 実行 ] - [ パワーオンデバッグ ] メニューを 入力 [ ユーザー電源監視電圧 ] ダイアログから監視電圧の下限値を入力 ステータスバーに "PON" が表示される。 • プログラムを実行する • プログラム実行中に , ターゲットボードの電源を切断後 , 再投入 • デバッグ作業を行う • パワーオンデバッグを終了するため , [ 実行 ] - [ パワーオンデバッグ ] メニューを 入力 July 1, 2014, CM41-00313-8 277 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6 S up po r t M a nu al エミュレータデバッガ (MB2100-01) エミュレータデバッガ (MB2100-01) の機能について説明します。 ■ エミュレータデバッガ (MB2100-01) の特長 エミュレータデバッガ (MB2100-01) には以下の特長があります。 ● リアルタイム制御 ユーザプログラム実行中に以下の制御ができます。 • メモリ内容の操作 ( 読み書き/検索/比較/充填/転送 ) • イベントの設定/解除 • トレースモードの設定/解除 ● FLASH サポート RAM 領域と同様に FLASH メモリへのダウンロードやメモリウィンドウからの読み書 きができます。 ● 多機能のイベント イベントを以下の 6 種類の機能で使用できます。 • コードブレーク ( ハードウェア ) • コードブレーク ( ハードウェア/カウント ) • データブレーク • データ監視ブレーク • シーケンス • パフォーマンストリガ 設定できる個数についてはご使用の品種のハードウェアマニュアルを参照してくださ い。 ● スタンバイへの移行の抑止 デバッガ起動時にスタンバイへ移行する前に , スタンバイへの移行を抑止します。 278 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l <注意事項> • エミュレータデバッガ (MB2100-01) 使用時の注意 ユーザプログラム実行中に汎用レジスタ (GPR) 領域 [0x000180 ~ 0x00037F] へリード アクセスおよびライトアクセスする場合は , メモリ操作は使用せずレジスタ操作によ りアクセスしてください。 メモリ操作によるリードアクセスは以下の場合に発生します。 - メモリウインドウ または ウォッチウインドウでのモニタリング - SHOW MEMORY コマンド , EXAMINE コマンドなどによるメモリ参照 メモリ操作によるライトアクセスは以下の場合に発生します。 - メモリウインドウ または ウォッチウインドウでの書込み - SET MEMORY コマンド , ENTER コマンドなどによる書込み July 1, 2014, CM41-00313-8 279 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.1 S up po r t M a nu al デバッグを開始するには デバッグを開始する方法について説明します。 ■ デバッグを開始するには デバッグを開始するには[デバッグ]‐[デバッグの開始]メニューを選択します。 新しいプロジェクトによりデバッグを開始する場合は , 初期設定するためのセット アップウィザードを起動します。詳細は『SOFTUNE Workbench 操作マニュアル』の 「4.7.2.5 セットアップウィザード」を参照してください。 ■ デバッグ開始時の確認項目 デバッグ開始時には初期設定についてチェックします。 設定が正しくない場合 , デバッグを開始できません。 • ターゲットの動作環境 ターゲットの動作環境に問題がないかどうかを確認します。 詳細は「2.6.1.1 ターゲットの動作環境」を参照してください。 • セキュリティ セキュリティ機能が有効かどうかを確認します。 詳細は「2.6.1.2 セキュリティ」を参照してください。 280 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ターゲットの動作環境 2.6.1.1 ターゲット動作環境の設定について説明します。 ■ ターゲットの動作環境 本エミュレータデバッガでは , ターゲットの動作環境に合わせて以下の項目を設定す る必要があります • 通信速度基準周波数 • DEBUG I/F ケーブル長 これらの設定はデバッガの通信速度に影響します。 • 通信速度基準周波数 通常通信に使用する通信速度基準周波数の値を設定します。 詳細はご使用の品種のハードウェアマニュアルとデータシートを参照してくださ い。 • DEBUG I/F ケーブル長 DEBUG I/F ケーブルの長さに適合するケーブル長を指定します。 エミュレータ (MB2100-01) から MCU 方向への許容最大転送速度はこのケーブル長 により変化します。 ■ 設定方法 ターゲットの動作環境はセットアップウィザードで設定します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.2.5 セットアップウィザード」 を参照してください。 図 2.6-1 セットアップウィザード ( 通信設定 ) July 1, 2014, CM41-00313-8 281 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al <注意事項> • セットアップウィザードで設定した動作環境と実際の動作環境が異なる場合 , デバッガ は起動できません。 • DEBUG I/F の詳細は『エンベデッドエミュレータ MB2100-01-E 取扱説明書』を参照 してください。 282 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l セキュリティ 2.6.1.2 セキュリティについて説明します。 ■ セキュリティ 本エミュレータデバッガでは , ターゲット MCU のセキュリティ機能が有効な場合 , デ バッグ開始時にパスワードを入力する必要があります。 セキュリティ機能に関してはご使用の品種のハードウェアマニュアルを参照してくだ さい。 ■ 入力方法 デバッグ開始に以下のダイアログが表示されたら , あらかじめ設定したパスワードを 入力してください。パスワードはデバッガ起動時に毎回入力する必要があります。 パスワードの詳細はご使用の品種のハードウェアマニュアルの「OCD ( オンチップデ バッガ ) 起動許可用パスワード」の説明を参照してください。 図 2.6-2 デバッガ接続パスワード <注意事項> • パスワード認証が失敗した場合 , デバッガは起動できません。再度デバッガを起動する にはターゲットの電源を再投入してください。 • ユーザシステムがバススリープ状態に入っている場合 , バススリープを解除してから OK ボタンを押してください。 July 1, 2014, CM41-00313-8 283 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al デバッグを終了するには 2.6.2 デバッグを終了する方法について説明します。 ■ デバッグを終了するには デバッグを終了するには[デバッグ]‐[デバッグの終了]メニューを選択します。 ターゲットの電源は[デバッグの終了]メニューを選択したあとに切ってください。 ■ デバッガが異常終了した場合 何らかの原因によりデバッガが異常終了した場合 , 以下の問題が発生する可能性があ ります。 ● フラッシュメモリ上にソフトウェアブレークのコードが残る フラッシュメモリ領域にソフトウェアブレークを設定している場合 , 一時的にソフト ウェアブレークのコードでフラッシュメモリの内容を書き換えます。デバッグを正常 に終了した場合は書き換えた内容を元に戻しますが , 異常終了した場合は元に戻せず ソフトウェアブレークのコードが残る場合があります。 デバッガ起動時にはこのソフトウェアブレークの有無を確認し , ソフトウェアブレー クが残っている場合には以下のメッセージを表示します。 「A で B に設定したソフトウェアブレークが削除されていない可能性があります。」 A: デバッガが異常終了した際に表示していたプロジェクト名 B: デバッガが異常終了した日付 このメッセージが表示された場合は , フラッシュメモリへプログラムをダウンロード しなおしてください。 <注意事項> ソフトウェアブレークに関する警告メッセージは , メッセージに表示されたプロジェクト 名以外のプロジェクトを使用した場合にも表示されます。 またソフトウェアブレークポイントを削除後 , そのほかのデバッグ機能を使用中にデバッ ガが異常終了した場合でも , 警告メッセージが表示されることがあります。 284 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e 2.6.3 S u p p o r t M a n u a l 効率よくデバッグを行うには 効率よくデバッグを行うための設定について説明します。 ■ 動作環境の設定 本エミュレータデバッガでは , より快適にデバッグを行って頂くために , 動作環境や用 途に合わせて以下の項目を設定する必要があります。 • 高速通信用の基準クロック周波数 • デバッグ機能 それぞれの設定項目には起動時のデフォルト値があるため , デフォルト値をそのまま 使用する場合は設定を変更する必要はありません。また一度指定した設定値は次回か らのデフォルトになります。 July 1, 2014, CM41-00313-8 285 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al デバッグ時の通信速度を高速にするには 2.6.3.1 デバッグ時の通信速度を高速にするための設定について説明します。 ■ 高速通信用の基準クロック周波数 本エミュレータデバッガでは , 高速通信用の基準クロック周波数を最適な値に設定す ると高速通信モードが有効になります。高速通信モードではターゲットとアダプタ間 の通信が高速になり , デバッガの動作が高速になります。 高速通信用の基準クロック周波数は MCU により最適な値が異なります。詳細はご使 用の品種のハードウェアマニュアルとデータシートを参照してください。 ■ 設定方法 高速通信用の基準クロック周波数の設定方法は以下のとおりです。 ● ダイアログ - デバッグ環境設定ダイアログ「動作周波数」タブ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」 を参照してください。 ● コマンド - SET FREQUENCY 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「1.45 SET FREQUENCY」を参照してください。 <注意事項> 高速通信モード時に周波数の値を変更した場合は MCU をリセットする必要があります。 リセット後に変更した周波数の値が反映されます。 286 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l デバッグ機能を切り換えるには 2.6.3.2 用途に応じてデバッグ機能を切り換える方法について説明します。 ■ デバッグ機能 デバッグ機能の中には同時に設定できない排他的な機能があります。このような機能 では用途に応じてモードを切り換えて使用する必要があります。 モードには以下の 2 種類があります。 • 実行時間モード ユーザプログラム実行時間の測定方法を選択します。 - 時間測定モード ( デフォルト ) 実行開始からブレークするまでの時間を測定します。 - パフォーマンスモード 設定したイベント 2 点間の通過時間を測定します。 • パスカウントモード 通過した回数をカウントするパスカウント機能の使用方法を選択します。 - シーケンスモード シーケンス機能を使用します。 パスカウントブレークは使用できません。 - パスカウントブレークモード ( デフォルト ) パスカウントブレークを使用します。 シーケンス機能は使用できません。 ■ 切り換え方法 実行時間モード , パスカウントモードを設定するには以下の方法があります。 ● ダイアログ - デバッグ環境設定ダイアログ「イベント」タブ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」 を参照してください。 ● コマンド - SET MODE 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「1.9 SET MODE (type 2)」を参照してください。 July 1, 2014, CM41-00313-8 287 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.4 S up po r t M a nu al プログラムを実行するには ユーザプログラムを実行する方法について説明します。 ■ プログラムを実行するには ユーザプログラムを実行する手順は以下のとおりです。 1. プロジェクト ( ワークスペース ) を開きます。 [ファイル]‐[ワークスペースを開く]メニューを選択してください。 2. デバッグを開始します。 「2.6.1 デバッグを開始するには」を参照してください。 3. 実行したいプログラムをロードします。 プロジェクトのターゲットファイルを実行する場合は[デバッグ]‐[ターゲット ファイルのロード]メニューを選択してください。 4. プログラムを実行します。 [デバッグ]‐[実行]‐[連続実行]メニューを選択してください。 ステップ実行などその他の実行に関しては『SOFTUNE Workbench 操作マニュアル』 の「4.6.1 実行」を参照してください。 ■ プログラム実行中の制御 本エミュレータデバッガでは , ユーザプログラム実行中に以下の操作ができます。 • デバッグ機能の設定/解除 • モニタリング • パワーオンデバッグ 288 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l デバッグ機能の設定/解除 2.6.4.1 ユーザプログラム実行中にデバッグ機能の設定または解除ができます。 ■ ユーザプログラム実行中に使用できるコマンド 本エミュレータデバッガではユーザプログラム実行中に特定のデバッグ機能の設定/ 解除ができます。ダイアログまたはコマンドのどちらでも設定/解除ができます。 表 2.6-1 にはユーザプログラム実行中に使用できる主なコマンドを示します。詳細は 『SOFTUNE Workbench コマンドリファレンスマニュアル』の各コマンドの「■ 対応デ バッガ」を参照してください。 表 2.6-1 ユーザプログラム実行中に使用できるコマンド (1 / 2) 機能 主なコマンド名 (*1) MCU のリセット 1.3 RESET メモリ操作 ( リード/ライト ) 5.1 EXAMINE 5.2 ENTER 5.3 SET MEMORY 5.4 SHOW MEMORY 5.5 SEARCH MEMORY 5.8 COMPARE 5.9 FILL 5.10 MOVE 5.11 DUMP ラインアセンブル , 逆アセンブル 6.1 ASSEMBLE 6.2 DISASSEMBLE ブレークポイントの設定/削除 3.1 SET BREAK (type1) 3.3 SET BREAK (type3) 3.6 CANCEL BREAK 3.7 ENABLE BREAK 3.8 DISABLE BREAK 3.10 SET DATABREAK (type3) 3.12 CANCEL DATABREAK 3.13 ENABLE DATABREAK 3.14 DISABLE DATABREAK シーケンサの設定/削除 3.22 SET EVENT(type3) 3.24 CANCEL EVENT 3.25 ENABLE EVENT 3.26 DISABLE EVENT 3.27 SET SEQUENCE (type1) 3.34 CANCEL SEQUENCE (type 1) 3.36 ENABLE SEQUENCE (type 1) 3.38 DISABLE SEQUENCE (type 1) July 1, 2014, CM41-00313-8 289 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al 表 2.6-1 ユーザプログラム実行中に使用できるコマンド (2 / 2) 機能 トレース操作 主なコマンド名 (*1) 4.15 CLEAR TRACE 4.17 ENABLE TRACE (type2) 4.19 DISABLE TRACE (type2) 4.20 SEARCH TRACE *1:『SOFTUNE Workbench コマンドリファレンスマニュアル』を参照してください。 <注意事項> ユーザプログラム実行中に使用できないコマンドを入力すると以下のエラーメッセージ が表示されます。 「E4404S: MCU 実行中は使えないコマンドです」 290 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l モニタリング 2.6.4.2 モニタリング機能について説明します。 ■ モニタリングとは ユーザプログラム実行中に特定アドレスの値の変化をリアルタイムに参照できる機能 です。 特定アドレスの値のほかに , 指定したウォッチ変数の値の変化も参照できます。 ■ 使用方法 モニタリングの使用手順は以下のとおりです。 ● メモリウィンドウをモニタリングする場合 1. メモリウィンドウを表示します。 - [表示]‐[メモリ]メニューを選択します。 モニタリングしたいアドレスを指定します。 2. 以下のどちらかによりモニタリングを有効にします。 - メモリウィンドウのショートカットメニュー[モニタリング]を選択します。 - [環境]‐[デバッグ環境の設定]‐[デバッグ環境設定]メニューを選択し , [モニタリング]タブを表示します。 3. プログラムを実行します。 以上により , プログラム実行中に変化があった箇所は赤色で表示されます。 ● ウォッチウィンドウをモニタリングする場合 1. ウォッチウィンドウを表示します。 - [表示]‐[ウォッチ]メニューを選択します。 モニタリングしたいウォッチ変数を登録します。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.7 ウォッチ」を参照して ください。 2. 以下のどちらかによりモニタリングを有効にします。 - メモリウィンドウのショートカットメニュー[モニタリング]を選択します。 - [環境]‐[デバッグ環境の設定]‐[デバッグ環境設定]メニューを選択し , [モニタリング]タブを表示します。 3. プログラムを実行します。 以上により , プログラム実行中に変化があった変数は赤色で表示されます。 July 1, 2014, CM41-00313-8 291 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.4.3 S up po r t M a nu al パワーオンデバッグ パワーオンデバッグ機能について説明します。 ■ パワーオンデバッグとは ターゲットシステムの電源投入直後のシーケンスをデバッグするための機能です。 ■ 使用方法 パワーオンデバッグの使用手順は以下のとおりです。 ● パワーオンデバッグをする場合 1. デバッグを開始します。 [デバッグ]‐[デバッグの開始]メニューを選択してください。 2. パワーオンデバッグモードを有効にします。 [デバッグ]‐[実行]‐[パワーオンデバッグ]メニューを選択してください。 パワーオンデバッグモードに移行します。 3. ユーザプログラムを実行します。 無限ループなど何もしないユーザプログラムを連続実行することを推奨します。 プログラムの実行を中断するかどうかの確認ダイアログが表示されます。 4. 以下のどちらかの操作をしてください。 - 外部からチップリセットを発行します。 - ターゲットの電源を入れなおします。 電源復帰後 , リセットベクタからプログラムが走行を始めます。 ● パワーオンデバッグモードを解除する場合 ユーザプログラム実行前の場合 [デバッグ]‐[実行]‐[パワーオンデバッグ]メニューを選択してください。 ユーザプログラム実行後の場合 パワーオンデバッグモード中に表示される中断ダイアログにて , 中断ボタンを押し てください。 292 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l <注意事項> • パワーオンデバッグ中はその他のデバッグ機能は一切使用できません。 • パワーオンデバッグはセキュリティ機能が有効な場合は使用できません。 • パワーオンデバッグメニューを選択すると , 以下がクリアされます。 - パフォーマンス測定結果 - 実行サイクル数測定結果 • ターゲットの電源を入れ直すと , 以下 ( の状態 ) がクリアされます。 - パフォーマンス測定結果 - トレースデータ - データ監視ブレークのデータ一致状態 - シーケンスのヒットカウント - パスカウントブレークのヒットカウント July 1, 2014, CM41-00313-8 293 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.4.4 S up po r t M a nu al プログラム実行での注意 プログラム実行コマンドには , いくつかの注意事項があります。 ■ GO コマンドでの注意 GO コマンドにはコマンド実行時だけ有効なブレークポイントを 2 個設定できますが , このブレークポイントの設定には注意が必要です。 ● 無効なブレークポイント • ユーザ割込みの発生から続いて実行される最大 3 命令にブレークポイントが設定さ れていた場合 , ブレークしません。 • 命令の先頭以外のアドレスにブレークポイントを設定してもブレークしません。 • 表 2.6-2 の命令から続いて実行される最大 3 命令の命令にブレークポイントを設定 していた場合 , ブレークしません。 表 2.6-2 設定したブレークポイントが無効になる命令 F2MC-16FX PCB NCC SPB MOV ILM,#imm8 OR CCR,#imm8 INT addr16 INT9 JCTX @A 未定義命令 DTB ADB CNR AND CCR,#imm8 POPW PS INTP addr24 INT #vct RETI ■ STEP コマンドでの注意 ● 特殊なステップ実行 表 2.6-2 の命令を実行する場合は , それに続いて実行される最大 3 命令も含めて 1 命令 として動作します。 また , 続いて実行された命令の中に上記の命令が含まれていた場合 , それら全てと続い て実行される最大 3 命令を全部含めて 1 命令として動作します。 294 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l 例 : 無効なブレークポイントの命令が連続した場合 図 2.6-3 無効なブレークポイントの命令が連続した場合 POPW PS (1) NOP (2) RETI (3) MOVN A,#-0 (4) MOVW RW0,A (5) NOP (6) NOP (7) 図 2.6-3 (1) の POPW PS は GO コマンドでの注意であげた無効なブレークポイントの命 令であるので , POPW PS に続く 3 命令では停止しません。 また POPW PS に続く 3 命令 (2)(3)(4) のうち , (3) もまた前述の注意であげられている 命令ですので , (3) の命令からさらに (4)(5)(6) の 3 命令も連続で実行されることになり ます。 結果として (1) の POPW PS 命令からステップ実行を行うと PC は (7) の NOP 命令まで 進むことになります。 <注意事項> • ユーザプログラム実行中にチップリセットを発行すると , 以下 ( の状態 ) がクリアされ ます。 - 実行サイクル数測定結果 - パフォーマンス測定結果 - データ監視ブレークのデータ一致状態 July 1, 2014, CM41-00313-8 295 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.5 S up po r t M a nu al フラッシュメモリへアクセスするには フラッシュメモリへのアクセス方法について説明します。 ■ フラッシュメモリへのアクセス 本エミュレータデバッガでは , RAM 領域と同様にフラッシュメモリの内容を直接操作 できます。 ■ フラッシュメモリの同期とは フラッシュメモリ領域にデータを書き込んだ場合 , すぐにはターゲット上のフラッ シュメモリへの書き込みはされず , 一度 SOFTUNE Workbench 上のバッファにデータが 保存されます。 保存されたデータはユーザシステムを動作する前にターゲット上のフラッシュメモリ の内容と一致させる必要があります。 この一致させる操作のことを【フラッシュメモリの同期】とよびます。 フラッシュメモリの同期には 2 種類があります。 • フラッシュメモリの同期[フラッシュ→デバッガ] SOFTUNE Workbench 上のバッファを破棄しフラッシュメモリの内容を反映させま す。 • フラッシュメモリの同期[デバッガ→フラッシュ] 保管したデータをフラッシュメモリに反映させます。 ■ フラッシュメモリの同期の方法 フラッシュメモリを同期するには以下の方法があります。 ● フラッシュメモリの同期[フラッシュ→デバッガ] • [環境]‐[フラッシュ領域操作]メニューを選択します。 選択することにより , SOFTUNE Workbench 上のバッファの内容が破棄されます。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.4 フラッシュ領域操作」を 参照してください。 296 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ● フラッシュメモリの同期[デバッガ→フラッシュ] • [環境]‐[フラッシュ領域操作]メニューを選択します。 選択することにより , SOFTUNE Workbench 上のバッファの内容がフラッシュメモ リへ反映されます。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.7.4 フラッシュ領域操作」を 参照してください。 • 対象の FLASH メモリ領域を更新していた場合 , 以下のどれかの操作をしたときに自 動的に同期されます。 - ユーザプログラムを実行した場合 - リセットを発行した場合 - デバッグを終了した場合 - ソフトウェアブレークの使用を禁止に設定した場合 - デバッグ開始時に自動的にターゲットファイルをロードする場合 <注意事項> • フラッシュメモリの同期処理を速くするにはデバッガの通信速度を高速にしてくださ い。詳細は「2.6.3.1 デバッグ時の通信速度を高速にするには」を参照してください。 • 1 バイトでも内部バッファを変更していると , フラッシュにデータを反映する際に , 変 更対象のセクタ全体に対して書き込みを行います。 July 1, 2014, CM41-00313-8 297 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al ■ フラッシュメモリの同期の例 ●[デバッガ→フラッシュ]の場合 フラッシュメモリの同期[デバッガ→フラッシュ]をした場合のイメージは以下のと おりです。 フラッシュ メモリの同期 [デバッガ->フラッシュ] 時のデバッガとフラッシュメモリ の値の変化 デバッガ フラッシュ メモリ FF FF FF FF FF FF FF FF ユーザによるメモリ 書き込み, ロード等 12 34 56 78 FF FF FF FF 実行, リセット等 フラッシュ メモリの同期 [デバッガ->フラッシュ] が発生 12 34 56 78 298 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ●[フラッシュ→デバッガ]の場合 フラッシュメモリの同期[フラッシュ→デバッガ]をした場合のイメージは以下のと おりです。 フラッシュ メモリの同期 [フラッシュ->デバッガ] 時のデバッガとフラッシュメモリ の値の変化 デバッガ フラッシュ メモリ FF FF FF FF FF FF FF FF フラッシュ メモリを書き込む ユーザプログラム を実行 FF FF FF FF 12 34 56 78 同期 [フラッシュ->デバッ ガ] フラッシュメモリの同期 [フラッシュ->デバッガ] が発生 12 34 56 78 July 1, 2014, CM41-00313-8 299 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.6 S up po r t M a nu al プログラム実行を中断するには[ブレーク] ユーザプログラムの実行を中断する方法について説明します。 ■ ブレーク機能 ユーザプログラムの実行を中断する機能をブレーク機能とよびます。 本エミュレータデバッガでは , 7 種類のブレーク機能を使用できます。 • コードブレーク ( ハードウェア ) • コードブレーク ( ハードウェア/カウント ) • コードブレーク ( ソフトウェア ) • データブレーク • 強制ブレーク • データ監視ブレーク • シーケンサ 各ブレーク機能によりプログラム実行を中断した場合 , ブレークしたアドレスとブ レーク要因を表示します。 300 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l コードブレーク ( ハードウェア ) 2.6.6.1 指定したアドレスをハードウェアで監視することでプログラム実行を中断する機能 です。指定されたアドレスの命令を実行する前にブレークします。 ■ コードブレーク ( ハードウェア ) とは 指定したアドレスをハードウェアで監視することでプログラムを中断する機能です。 指定されたアドレスの命令を実行する前にブレークします。 コードブレーク (ハードウェア) にはパスカウントが設定できるハードウェア/カウン トがあります。 最大設定数は以下のとおりです。 ハードウェア : 8 個 * ハードウェア/カウント : 2 個 * 品種により 8 個まで設定できない場合があります。実際に設定できる個数について はご使用の品種のハードウェアマニュアルを参照してください。 コードブレーク ( ハードウェア ) でブレークした場合 , ステータスバーに以下のメッ セージが表示されます。 • ハードウェア Break at アドレス by code event break • ハードウェア/カウント Break at アドレス by sequential or pass count break ■ 設定方法 コードブレークの制御には以下の方法があります。 • コマンド - SET BREAK/HARD 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK(type 1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ「コード」タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ/逆アセンブルウィンドウ 『SOFTUNE Workbench 操作マニュアル』の「3.7 ソースウィンドウ」または「3.9 逆アセンブルウィンドウ」を参照してください。 - ■ ブレークポイント設定時の特殊動作について 本デバッガにおいて特定の条件を満たした場合 , 以下の現象が発生するため , 注意して ください。 July 1, 2014, CM41-00313-8 301 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al • プログラムカウンタ (PC) が進まない ストリング命令に対してハードウェアブレークを設定した場合 , 1 回の命令実行で パスカウントが複数回加算されることがあります。 またハードウェアブレークが設定されたストリング命令からプログラムを実行し た場合 , PC が進まないままブレークすることがあります。 • ブレークポイントにヒットした際 , 停止アドレスが本来停止するはずのアドレスか ら最大 2 命令後になっている 以下のどちらかの条件を満たした場合 , ユーザプログラムの連続実行時にプログラ ムが停止するアドレスが本来停止するはずのアドレスから最大 2 命令後になりま す。 - ユーザ割込みが発生した命令と次の 1 命令以内を実行している時に , ブレーク動 作が発生した場合 - 以下のどれかの命令と次の 1 命令以内を実行している時に , ブレーク動作が発生 した場合 - INT addr16 - INTP addr24 - POPW PS - AND CCR #imm8 - OR CCR #imm8 - MOV ILM #imm8 - Prefix codes (PCB, DTB, ADB, SPB, CMR, NCC) - INT9 - INT #vct - JCTX @A - RETI - Undefined instructions (exceptions) <注意事項> • ブレークポイントを設定する場合は必ず命令の先頭アドレスを指定してください。先 頭以外のアドレスを指定すると , ブレークしないことがあります。 • コードブレークは以下の機能とポイントを共有するため , 最大設定数はこれらの機能 の使用状況によって異なります。 - データブレーク - データ監視ブレーク - シーケンス • ハードウェアまたはハードウェア/カウントブレークをリセットハンドラの先頭に設 定した場合 , ブレークしません。 • パスカウントモードがパスカウントブレークモードの場合 , ハードウェア/カウント ブレークは使用できません。詳細は「2.6.3.2 デバッグ機能を切り換えるには」を参照 してください。 302 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l コードブレーク ( ソフトウェア ) 2.6.6.2 指定したアドレスをソフトウェアで監視することでプログラム実行を中断する機能 です。指定されたアドレスの命令を実行する前にブレークします。 ■ コードブレーク ( ソフトウェア ) とは 指定したアドレスをソフトウェアで監視することでプログラムを中断する機能です。 特長は以下のとおりです。 設定領域:RAM 領域またはフラッシュメモリ領域 ブレーク条件:指定されたアドレスの命令を実行する前 最大設定数:4096 ポイント コードブレーク ( ソフトウェア ) でブレークした場合 , ステータスバーに次のメッセー ジが表示されます。 Break at アドレス by breakpoint ■ 使用条件 コードブレーク ( ソフトウェア ) を使用する場合 , 以下の方法でソフトウェアブレーク の使用を許可に設定してください。禁止にした場合はフラッシュメモリ領域だけでな く RAM 領域にも設定できません。 • ダイアログ - セットアップウィザード 『SOFTUNE Workbench 操作マニュアル』の「4.7.2.5 セットアップウィザード」を 参照してください。 - デバッグ環境設定ダイアログ「ブレーク」タブ 『SOFTUNE Workbench 操作マニュアル』の「4.7.2.3 デバッグ環境設定」を参照し てください。 ■ 設定方法 コードブレークの制御は次の方法で行います。 • コマンド - SET BREAK/SOFT 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ「コード」タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ/逆アセンブルウィンドウ 『SOFTUNE Workbench 操作マニュアル』の「3.7 ソースウィンドウ」または「3.9 逆アセンブルウィンドウ」を参照してください。 July 1, 2014, CM41-00313-8 303 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al <注意事項> • フラッシュメモリ領域にコードブレーク ( ソフトウェア ) を設定する場合 , 指定したア ドレスのフラッシュメモリの内容を一時的に書き換えます。詳細は「2.6.5 フラッシュ メモリへアクセスするには」を参照してください。 • コードブレーク ( ソフトウェア ) を設定した状態でデバッガが異常終了した場合 , フ ラッシュメモリの内容が正常でない可能性があります。詳細は「2.6.2 デバッグを終了 するには」を参照してください。 304 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l データブレーク 2.6.6.3 指定アドレスに対しデータアクセス ( リード , ライト ) が行われた場合 , プログラム 実行を中断する機能です。 ■ データブレークとは 指定アドレスに対しデータアクセス ( リード , ライト ) が行われた場合 , プログラム実 行を中断する機能です。最大 8 ポイント設定できます。 データブレークでブレークした場合は , ステータスバーに次のメッセージが表示され ます。 Break at アドレス by data event break ■ 設定方法 データブレークの制御は次の方法で行います。 • コマンド - SET DATABREAK 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.9 SET DATABREAK (type 3)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ「データ」タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 <注意事項> • データブレークは以下の機能とポイントを共有するため , 最大設定数はこれらの機能 の使用状況によって異なります。 - コードブレーク - データ監視ブレーク - シーケンス • データブレークは検出アクセスを伴う命令以降の数命令を実行してから停止する場合 があります。 • ストリング命令でのデータアクセスはチップ内部で最適化されます。そのためデータ ブレークは設定した条件で検出されない場合があります。 • データブレークは検出アクセスを伴う命令以降の数命令を実行してからプログラム実 行を停止する場合があります。 July 1, 2014, CM41-00313-8 305 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.6.4 S up po r t M a nu al 強制ブレーク プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに以下のメッセージが表示され ます。 Break at アドレス by command abort request ■ 発生方法 強制ブレークを発行するには以下の方法があります。 • メニュー [デバッグ]-[停止]メニュー 『SOFTUNE Workbench 操作マニュアル』の「4.6.2 停止」を参照してください。 • コマンド ABORT 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「2.4 ABORT」を参照 してください。 ■ プログラムが停止しない場合 以下のどれかの場合 , 強制ブレークを発生させてもユーザプログラムが停止しない場 合があります。解決策は以下のとおりです。 • デバッガの通信速度が低速である [現象]デバッガの通信速度が低速の場合 , プログラム停止要求の受付に時間が掛か る場合があります。 [解決策]停止要求の受付が完了するまでしばらくお待ちください。 • 割込みレベルが低い [現象]プログラム停止要求の割込みレベルが低い場合 , CPU の割込みレベル (ILM) でマスクされてしまいます。 [解決策 1]停止要求の割込みレベルを変更し , 再度停止要求を発行してください。 [解決策 2]プログラムの強制停止要求を発行してください。 • パワーオンデバッグ中である [現象]パワーオンデバッグ中であることが考えられます。 [解決策]パワーオンデバッグモードを解除してください。 • MCU がハングアップしている [現象]MCU がハングアップしていることが考えられます。 [解決策]リセットを発行してください。 306 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l <注意事項> CPU ポーズ状態で強制ブレークした場合 , CPU ポーズ状態を解除したのちブレークしま す。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「付録 C デバッガ 中断メッセージ」を参照してください。 July 1, 2014, CM41-00313-8 307 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.6.5 S up po r t M a nu al データ監視ブレーク 指定したデータアドレスの値が指定データと一致している間に , プログラムが指定 命令アドレスに達した場合に実行を中断する , 特殊なブレーク機能です。 ■ データ監視ブレークとは 指定したデータアドレスの値が指定データと一致している間に , プログラムが指定命 令アドレスに達した場合に実行を中断する , 特殊なブレーク機能です。 最大 2 ポイント設定できます。 データ監視ブレークでブレークした場合 , ステータスバーに次のメッセージが表示さ れます。 Break at アドレス by breakpoint (data watch) データ監視ブレークのブレーク条件を図で表すと , 図 2.6-4 のようになります。 図 2.6-4 データ監視ブレークのブレーク条件 プログラムの流れ 指定命令アドレス データ監視 データ一致していない 場合ブレークしない データ一致 指定命令アドレス データ一致している 場合ブレークする ■ 設定方法 データ監視ブレークの制御は次の方法で行います。 ● データ監視ブレーク • コマンド - SET BREAK/DATAWATCH 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.3 SET BREAK (type3)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ「コード」タブ 『ハードウェア / データ監視』 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 308 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l <注意事項> • データ監視ブレークは以下の機能とポイントを共有するため , 最大設定数はこれらの機 能の使用状況によって異なります。 - コードブレーク - データブレーク - シーケンス • データ監視ブレークはデータ検出アクセスを伴う命令以降の数命令を実行したのち , 指 定アドレスにヒットしたときに停止する場合があります。よって命令実行中に指定ア ドレスにヒットした場合は停止しない場合があります。 • データ監視ブレークの命令アドレスをストリング命令に設定した場合,プログラム実行 が期待どおりに停止しない場合があります。 July 1, 2014, CM41-00313-8 309 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.6.6 S up po r t M a nu al シーケンサ 指定したイベントの条件に対し , プログラムがある流れ ( シーケンス ) どおりにイベ ントを通過した場合にプログラム実行を中断する機能です。 ■ シーケンサによる制御 本エミュレータデバッガのシーケンサ機能の仕様を表 2.6-3 に示します。 イベントを 2 つ設定し , レベル 1 からレベル 2 へ順番に通過した場合をシーケンサの終 了条件とします。このシーケンサを 2 レベルシーケンサとよびます。 またそれまでの通過情報をリセットし再度レベル 1 通過を監視するリスタート用のイ ベントも設定できます。 ■ シーケンサの動作 例に示すように各レベルにイベントを設定した場合 , シーケンサは図 2.6-5 のように動 作します。 【例】 レベル 1 :イベント 1 レベル 2 :イベント 2 リスタート :イベント 3 図 2.6-5 シーケンサの動作 プログラム実行開始 レベル1 イベント1発生 NO YES YES レベル2 イベント3発生 NO イベント2発生 NO YES ブレーク 310 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ■ シーケンサの仕様 本エミュレータデバッガのシーケンサの仕様を表 2.6-3 に示します。 表 2.6-3 シーケンサの仕様 機能 仕様 レベル数 2 レベル リスタート機能 あり (1 つ ) 各イベントの条件 ( コード/データ ) アドレス パスカウント:1 ~ 1048575 属性:リード , ライト データサイズ:バイト/ワード/ロング ( 属性とデータサイズはデータイベントの場合だけ指定可能 ) 条件成立時の動作 レベル 1:レベル 2 へ遷移 レベル 2:シーケンサ終了 リスタート:シーケンサ開始 ■ 設定方法 シーケンサの制御には以下の方法があります。 ● シーケンサ • ダイアログ - シーケンス設定ダイアログ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.6 シーケンス」を参照し てください。 • コマンド 1. SET EVENT コマンドによりイベントを設定します。 2. SET SEQUENCE コマンドにて設定したイベントをシーケンスとして設定します。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.22 SET EVENT (type 3)」または「3.28 SET SEQUENCE (type2)」を参照してください。 July 1, 2014, CM41-00313-8 311 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al <注意事項> • パスカウントモードがパスカウントブレークモードの場合 , この機能は使用できませ ん。詳細は「2.6.3.2 デバッグ機能を切り換えるには」を参照してください。 • 外部トレースデータの出力タイミングにより , 実際のコード実行順序とデータヒット 情報の順序が入れ替わることがあります。そのため , コードイベントとデータイベント の発生が近い場合 , 正常に遷移できないことがあります。 • シーケンサは以下の機能とポイントを共有するため , シーケンサの最大設定数はこれ らの機能の使用状況によって異なります。 - コードブレーク - データブレーク - データ監視ブレーク • シーケンサにデータイベントを設定した場合 , データイベントは検出アクセスを伴う 命令以降の数命令を実行してから停止することがあります。 • シーケンサのイベントをストリング命令に設定した場合,以下の理由によりシーケンサ が期待どおりに動作しないことがあります。 - コードイベントの場合 1 回の命令実行でパスカウントが複数回加算されることがあります。 - データイベントの場合 ストリング命令でのデータアクセスはチップ内部で最適化されます。 312 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ユーザプログラム実行にかかる時間を測定するには 2.6.7 ユーザプログラム実行にかかる時間を測定する機能について説明します。 ■ 測定内容 エミュレータデバッガ (MB2100-01) において , ユーザプログラム実行時にかかる時間 を測定するには以下の方法があります。 • 時間測定 ユーザプログラム実行開始から停止までにかかる時間を測定します。 詳細は「2.6.7.1 ユーザプログラムの実行サイクル数を測定するには [ 時間測定 ]」 を参照してください。 • パフォーマンス測定 ユーザプログラムが 2 点間を通過するのにかかる時間を測定します。 詳細は「2.6.7.2 2 点間の実行サイクル数を測定するには [パフォーマンス測定]」 を参照してください。 ■ 測定単位 本デバッガの測定単位は実行サイクル数です。 実行サイクル換算周波数を設定すると , 測定した実行サイクル数から実時間に換算で きます。 換算した値は実測値とは異なりますが , 実時間の目安になります。 測定単位の設定には以下の方法があります。 • ダイアログ - 測定単位ダイアログ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.14.2 パフォーマンス ( エ ミュレータデバッガ[MB2100-01])」または「4.6.8.1 実行時間測定時の測定単 位」を参照してください。 • コマンド - SET TIMERSCALE 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「1.64 SET TIMERSCALE (type2)」を参照してください。 <注意事項> 測定単位の設定は時間測定とパフォーマンス測定で共通です。 July 1, 2014, CM41-00313-8 313 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.7.1 S up po r t M a nu al ユーザプログラムの実行サイクル数を測定するには [ 時間測定 ] ユーザプログラムの実行サイクル数を測定する機能について説明します。 ■ 測定項目 ユーザプログラムの実行サイクル数を測定します。測定結果は以下の値を表示します。 - 直前のユーザプログラム実行におけるサイクル数 最大 72,057,594,037,927,935(=256-1) サイクルまで測定可能 - 前回クリアしてからの実行サイクル数の合計 最大 18,446,744,073,709,551,615(=264-1) サイクルまで測定可能 ■ 測定結果の表示 測定結果を表示するには以下の方法があります。 • ダイアログ - 時間測定ダイアログ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照して ください。 • コマンド - SHOW TIMER 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.27 SHOW TIMER」を参照してください。 ■ 測定結果のクリア 測定結果をクリアするには以下の方法があります。 • ダイアログ - 時間測定ダイアログ 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.6.8 時間測定」を参照して ください。 • コマンド - CLEAR TIMER 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.28 CLEAR TIMER」を参照してください。 314 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ■ 誤差の情報 時間測定ダイアログの[コメント]ボタンを押すと , 測定結果の誤差に関する情報を表 示します。 <注意事項> • 測定サイクル数は通常 10 サイクル程度の誤差を含みます。ただしバスの状態によりそ れ以上になることがあります。 • デバッグ中にチップリセットが発行された場合 , 測定サイクル数はクリアされます。 July 1, 2014, CM41-00313-8 315 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.7.2 S up po r t M a nu al 2 点間の実行サイクル数を測定するには [パフォーマンス測定] 2 点間の実行サイクル数を測定する方法について説明します。 ■ パフォーマンス測定 本エミュレータデバッガでは, ユーザプログラム実行中に通過した2点間の実行サイク ル数を測定できます。これをパフォーマンス測定とよびます。 パフォーマンス測定の特長は以下のとおりです。 • 2 点間を実行するのに掛かるサイクル数を測定します。 • 2 点間の測定を 1 回とし , 最大 65535 回まで測定できます。 • 2 点間を 1 区間とすると , 設定できる区間は 1 区間だけです。 • 測定結果は累積され , 測定回数を基に平均値も算出します。 以下にパフォーマンス測定のイメージを示します。 図 2.6-6 パフォーマンス測定のイメージ 最大65535回まで測定 実行開始 実行終了 1 開始 2 65535 終了 測定している 測定できない ■ 測定項目 測定項目は以下のとおりです。 測定回数 :2 点間を通過した回数の累計 平均 :2 点間を実行するのに掛かったサイクル数の累計を測定回数で割っ た平均値 ■ 再測定 パフォーマンスの再測定とは , ユーザプログラム実行中に測定回数をクリアして最初 から測定する機能です。 再測定する場合はパフォーマンスウィンドウのショートカットメニューの[再測定]を 選択してください。 316 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ■ 測定方法 パフォーマンス測定は以下の手順で測定します。 1. 測定区間の設定 2. 測定の実施 3. 測定結果の表示 それぞれ , GUI ( ウィンドウまたはダイアログ ) で測定する方法と , コマンドだけで測 定する方法があります。 どちらの方法でも測定結果に違いはありません。 ● GUI 1. パフォーマンスウィンドウを表示します。 - [表示]‐[パフォーマンス]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「3.18 パフォーマンスウィン ドウ」を参照してください。 2. パフォーマンス測定区間を設定します。 - パフォーマンスウィンドウ上で右クリックし , ショートカットメニューの[イベ ント]メニューを選択してください。イベントダイアログが表示されます。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.14 パフォーマンス」を 参照してください。 3. ユーザプログラムを実行します。 4. 測定結果を表示します。 - パフォーマンスウィンドウ上で右クリックし , ショートカットメニューの[更新] メニューを選択してください。パフォーマンス測定結果が表示されます。 ● コマンド 1. パフォーマンスイベントを設定します。 - SET EVENT 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.22 SET EVENT (type 3)」を参照してください。 2. パフォーマンス測定区間を設定します。 - SET PERFORMANCE 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.9 SET PERFORMANCE (type 3)」を参照してください。 3. ユーザプログラムを実行します。 4. 測定結果を表示します。 - SHOW PERFORMANCE 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.11 SHOW PERFORMANCE (type 1)」を参照してください。 July 1, 2014, CM41-00313-8 317 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al ■ 測定の終了 パフォーマンス測定は以下のどちらかの場合に終了します。 • 測定回数が 65535 回に達したとき • 測定途中でユーザプログラムが停止したとき <注意事項> • 実行時間モードが時間測定モードの場合 , この機能は使用できません。詳細は「2.6.3.2 デバッグ機能を切り換えるには」を参照してください。 • 測定区間として設定した 2 つのトリガ ( 開始 , 終了 ) が同時に発生した場合 , 測定結果 はエラーとなります。 • パフォーマンス測定中に ( ブレークポイントなどにより) プログラム実行が停止した場 合 , 再実行のたびに通常 10 サイクル程度の誤差が発生します。バスの状態によっては それ以上になる場合もあります。 • ユーザプログラム実行中にパフォーマンス測定区間 ( イベント ) を再設定した場合は , それまでの測定結果をクリアします。 • パフォーマンス測定中にショートカットメニューの[更新]を選択した場合 , 測定回数 だけ表示されます。 • パフォーマンス測定が継続中かどうかは組込み変数 %GET_PERFORMANCESTATE にて確認できます。詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』 の「14.25 %GET_PERFORMANCESTATE」を参照してください。 • パフォーマンス測定の開始または終了イベントをストリング命令に設定した場合 , イ ベントが正しく検出できず , パフォーマンス測定が期待どおりに動作しないことがあ ります。 318 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e 2.6.8 S u p p o r t M a n u a l プログラムの実行履歴を参照するには[トレース] トレース機能について説明します。 ■ トレースとは プログラムの実行履歴を記録する機能をトレースとよびます。 トレースデータには分岐前後のアドレス情報が含まれ , プログラムの実行履歴の解析 に利用できます。 ■ トレース機能 本エミュレータデバッガのトレース機能には以下のものがあります。 • 強制開始:強制終了を実行しトレース取得を停止している状態で , ユーザプログラ ムの実行を停止せずにトレース取得を強制的に開始します • 強制終了:トレース取得中に , ユーザプログラムの実行を停止せずにトレース取得 を強制的に終了します ■ トレースデータの取得 トレースデータの取得開始 , 取得終了のタイミングについて説明します。 ● 取得開始 • ユーザプログラムを実行した場合 • ユーザプログラム実行時に[強制開始]メニューを選択した場合 ● 取得終了 • ユーザプログラムを停止した場合 • トレースデータ取得中に[強制終了]メニューを選択した場合 ■ トレースデータのクリア トレースデータのクリアのタイミングについて説明します。 ● クリア • ユーザプログラムを実行した場合 • ユーザプログラム実行時に[強制開始]メニューを選択した場合 • ユーザプログラム実行中にチップリセットが入力された場合 • [ クリア ] メニューを選択した場合 July 1, 2014, CM41-00313-8 319 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al ■ トレースバッファ 記録したデータを格納する場所をトレースバッファとよびます。 またトレースバッファ内に格納された 1 データ単位をフレームとよびます。 トレースバッファの容量は最大 42 フレームです。 トレースバッファはリング状の構造となっているので , トレースバッファがバッファ フルになった場合は自動的にトレースバッファの先頭から上書きします。 320 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l トレースデータを表示するには 2.6.8.1 トレースデータを表示する方法について説明します。 ■ トレースデータの表示形式について トレースデータの表示形式には以下の 3 種類があります。 RAW データ :トレースデータを解析せずに表示します インストラクション :トレースデータを命令実行順に表示します ソース :トレースデータをソース行単位で表示します ■ トレースデータの表示位置について サンプリングされたトレースデータにはフレームごとに番号が付けられます。この番 号をフレーム番号とよびます。 トレースデータの表示位置はフレーム番号で指定します。 最後にサンプリングされたトレースデータがフレーム番号 0 となり , それ以前のフレー ム番号は負の数になります。 ■ トレースデータの表示方法 トレースデータはトレースウィンドウまたはコマンドウィンドウに表示できます。 表示方法は以下のとおりです。どちらの方法でも違いはありません。 ● トレースウィンドウへの表示 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースウィンドウの表示モードを選択します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[RAW デー タ][インストラクション][ソース]メニューのどれかを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「3.14 トレースウィンドウ」 を参照してください。 3. トレースデータを更新します ( 既にトレースウィンドウを表示していた場合 )。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[更新]メ ニューを選択してください。トレースウィンドウのトレースデータが更新されま す。 詳細は『SOFTUNE Workbench 操作マニュアル』の「3.14 トレースウィンドウ」 を参照してください。 July 1, 2014, CM41-00313-8 321 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al ● コマンドウィンドウへの表示 1. 表示モードごとにトレースデータを表示します。 RAW データの場合 :SHOW TRACE インストラクションの場合 :SHOW TRACE ソースの場合 :SHOW TRACE 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.32 SHOW TRACE (type2)」を参照してください。 <注意事項> • インストラクション表示の場合 トレースデータ表示時にメモリから読み出したコードを基にインストラクションを表 示します。 このため , トレースデータの取得時とトレースデータの表示時でメモリの内容が異 なっている場合には , 正しいインストラクションが表示されません。 322 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示例 (RAW データ ) 2.6.8.2 トレースデータを RAW データ表示した場合の表示内容について説明します。 ■ RAW データ表示 RAW データ表示では , エミュレータから出力されるフレームを解析せずそのまま表示 します。 図 2.6-7 は RAW データ表示の例です。 図 2.6-7 RAW データ表示の例 逆アセンブル表示 フレーム番号 10進数符号付き 実行された命令を 表示します。 飛び先アドレス >SHOW TRACE /RAWDATA -10 frame no. address mnemonic - 00010 : FF00E1 RETI -> FF010E - 00009 : FF011F BRA FF010E -> FF010E - 00008 : FF010E MOVW A,0190 -> FF00CE - 00007 : FF00E1 RETI -> FF010E - 00006 : FF011F BRA FF010E -> FF010E - 00005 : FF010E MOVW A,0190 -> FF00CE - 00004 : FF00E1 RETI -> FF010E - 00003 : FF011F BRA FF010E -> FF010E - 00002 : FF010E MOVW A,0190 -> FF00CE - 00001 : FF00E1 RETI -> FF010E 00000 : ==== << Break at FF0113 >> ===== 16進数 分岐命令の分岐先アドレス [INT] [INT] 割込み ハードウェア割込み による分岐 [INT] 特殊フレーム Break at “address”:プログラム停止 frame no. フレーム番号を 10 進数で表示します。 address 分岐アドレスを表示します。 分岐先アドレスが 110C6 の場合:"-> 000110C6" 分岐元アドレスが 110A8 の場合:"000110A8 ->" mnemonic 実行された命令を表示します。 July 1, 2014, CM41-00313-8 323 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al トレースデータの表示例 ( インストラクション ) 2.6.8.3 トレースデータをインストラクション表示した場合の表示内容について説明します。 ■ インストラクション表示 インストラクション表示は , RAW データ表示の分岐アドレスを逆アセンブル表示した ものです。図 2.6-8 はインストラクション表示の例です。 図 2.6-8 インストラクション表示の例 フレーム番号 逆アセンブル表示 10進数符号付き 分岐フレーム間を 補完した表示。 >SHOW TRACE /RAWDATA -2400 frame no. address mnemonic sample.c$39 } - 00003 : FF011F BRA FF010E -> FF010E sample.c$36 while (flag2) { - 00002 : FF010E MOVW A,0190 -> FF00CE sample.c$14 { ExtInt : : FF00CE LINK #00 : FF00D0 PUSHW RW0 sample.c$15 *((char __io*)0x59) =0; : FF00D2 MOV A,#59 : FF00D4 MOVW RW0,A : FF00D5 MOVN A,#0 : FF00D6 MOV @RW0,A 飛び先アドレス 16進数 分岐命令の分岐先アドレス [INT] 割込み ハードウェア割込み による分岐 frame no. フレーム番号を 10 進数で表示します。 address 分岐アドレスを表示します。 mnemonic 分岐アドレスと分岐アドレスの間の実行された命令の逆アセンブルを表示します。 <注意事項> 分岐アドレス (b-addr) は分岐アドレス間の命令を抽出し, 逆アセンブルでフレーム間を補 完しています。補完している場合はフレーム番号が空欄になっています。 324 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l トレースデータの表示例 ( ソース ) 2.6.8.4 トレースデータをソース行表示した場合の表示内容について説明します。 ■ ソース表示 ソース表示ではソース行だけを表示します。図 2.6-9 はソース表示の例です。 図 2.6-9 ソース表示の例 >SHOW TRACE/SOURCE -10..-5 frame no. source : sample.c$61 -00007 : sample.c$62 : sample.c$66 -00006 : sample.c$67 } : sample.c$53 while : sample.c$54 : sample.c$55 : sample.c$56 : sample.c$57 if (p->val >= tblp[j - 1]->val) break; tblp [i - 1] = p; (max > 1) { p = tblp [max - 1]; tblp [max - 1] = tblp[0]; max--; i = 1; frame no. フレーム番号を 10 進数で表示します。 source 実行したソース行を表示します。 July 1, 2014, CM41-00313-8 325 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.8.5 S up po r t M a nu al トレースデータを保存するには トレースデータの保存について説明します。 ■ トレースデータを保存するには トレースデータは指定したファイルに保存できます。 保存方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による保存 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. トレースデータを保存するファイル名を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[セーブ] メニューを選択してください。名前を付けて保存ダイアログが表示されます。 ここで保存するファイル名と保存先を指定してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる保存 1. トレースデータを保存します。 - SHOW TRACE/FILE コマンドを実行してください。 詳細は『SOFTUNE Workbench コマンドリファレンスマニュアル』の「4.33 SHOW TRACE (type 3)」を参照してください。 既にあるファイルに追加保存する場合は SHOW TRACE/FILE/APPEND コマンド を実行してください。 326 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l トレースデータを検索するには 2.6.8.6 トレースデータの検索について説明します。 ■ トレースデータを検索するには トレースデータの中から指定したアドレスまたはフレーム番号を表示できます。 検索方法は GUI ( ウィンドウまたはダイアログ ) で行う方法と , コマンドだけで行う方 法の 2 種類があります。どちらの方法でも違いはありません。 ● GUI による検索 1. トレースウィンドウを表示します。 - [表示]‐[トレース]メニューを選択します。 2. 検索したいアドレスまたはフレーム番号を指定します。 - トレースウィンドウ上で右クリックし , ショートカットメニューから[検索]メ ニューを選択してください。トレース検索ダイアログが表示されます。 ここで表示したいアドレスまたはフレーム番号を指定してください。詳細は 『SOFTUNE Workbench 操作マニュアル』の「4.4.8 トレース」を参照してください。 ● コマンドによる検索 1. トレースデータを検索します。 - SEARCH TRACE コマンドを実行してください。 詳細は『SOFTUNE Workbenchコマンドリファレンスマニュアル』 の 「4.37 SEARCH TRACE」を参照してください。 <注意事項> トレースデータは分岐元アドレスしか検索できません。 July 1, 2014, CM41-00313-8 327 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.9 S up po r t M a nu al ユーザプログラムからの出力メッセージをデバッガ に表示するには セミホスティング機能について説明します。 ■ セミホスティング機能とは ユーザプログラムより出力されたメッセージをデバッガのウィンドウに表示する機能 です。 図 2.6-10 のように , メッセージバッファレジスタ (MBR) への出力要求を受けると , デ バッガではその内容を受けてウィンドウに出力内容を表示します。 この際ユーザプログラムからデバッガへのデータは図 2.6-10 の矢印のとおり , MBR か ら DEBUG I/F を経由して出力されます。 OCD ( オンチップデバッガ ) と MBR の詳細についてはご使用の品種のハードウェアマ ニュアルを参照してください。 図 2.6-10 セミホスティング機能におけるデータの流れ ユーザターゲット SOFTUNE Workbench ユーザプログラム ターミナル ウィンドウ OCD MBR USB MB2100-01 DEBUG I/F ■ ターミナルウィンドウとは ユーザプログラムからMBRへの出力要求があった場合にデータを表示するウィンドウ をターミナルウィンドウとよびます。ターミナルウィンドウの詳細は『SOFTUNE Workbench 操作マニュアル』の「3.22 ターミナルウィンドウ」を参照してください。 ターミナルウィンドウに出力するデータは , アスキー文字として解釈し出力します。た だし制御文字は '¥n', '¥r', '¥t' だけをサポートしており , その他の制御文字および 0x80 以 降の文字に関しては '.' として出力されます。 ターミナルウィンドウは表示するデータが取得された時点で表示されます。 328 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l ■ セミホスティング機能の使用方法 MBR への出力要求の内容をターミナルウィンドウに表示する手順は以下の通りです。 1. ユーザプログラムにて MBR を制御する 図 2.6-10 の よ う に ユ ー ザ プ ロ グ ラ ム 内 で MBR を 制 御 す る 必 要 が あ り ま す。 SOFTUNE Workbench V30L36 以降では, MBRの制御方法を含んだサンプルプロジェ クトを添付しています。これを基に MBR を制御してください。詳細は『SOFTUNE Workbench 操作マニュアル』の「付録 I セミホスティング機能用サンプルプロジェ クト」を参照してください。 2. MBR への出力要求の内容をターミナルウィンドウに表示する ターミナルウィンドウは MBR から出力要求を受け付けると自動的に開きます。 詳細は『SOFTUNE Workbench 操作マニュアル』の「3.22 ターミナルウィンドウ」を 参照してください。 July 1, 2014, CM41-00313-8 329 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e 2.6.10 S up po r t M a nu al デバッガの情報を確認するには エミュレータデバッガ (MB2100-01) の情報を確認する方法について説明します。 ■ デバッガの情報 本エミュレータデバッガでは , デバッガ起動時に以下の情報を確認できます。 • SOFTUNE Workbench のファイル情報 • ハードウェアに関する情報 SOFTUNE Workbench の動作に問題があった場合は , この情報を確認し , 営業部門また はサポート部門までお問合せください。 ■ 確認方法 デバッガの情報を確認するには以下の方法があります。 • コマンド - SHOW SYSTEM 『SOFTUNE Workbench コ マ ン ド リ フ ァ レ ン ス マ ニ ュ ア ル』の「1.19 SHOW SYSTEM」を参照してください。 • ダイアログ - バージョン情報ダイアログ [ヘルプ]‐[バージョン情報]メニューを選択してください。 詳細は『SOFTUNE Workbench 操作マニュアル』の「4.9.3 バージョン情報」を参 照してください。 ■ 表示内容 バージョン情報ダイアログには , 以下のような内容が表示されます。 F2MC-16 Family SOFTUNE Workbench VxxLxx (c) Copyright Spansion LLC, All Rights Reserved 1997-2014 ======================================================= Cpu information file path:CPU 情報ファイルのパス Cpu information file version:CPU 情報ファイルのバージョン ======================================================= Add in DLLs ------------------------------------------------------SiCmn Product name : SOFTUNE Workbench File Path:SiC907.dll のパス Version:SiC907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - SiiEd File Path:SiiEd3.ocx のパス Version:SiiEd3.ocx のバージョン ------------------------------------------------------- 330 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) S o ft w a r e S u p p o r t M a n u a l SiM907 Product name : SOFTUNE Workbench File Path:SiM907.dll のパス Version:SiM907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - Language Tools - F2MC-16 Family SOFTUNE C Compiler のバージョン File Path:fcc907s.exe のパス - F2MC-16 Family SOFTUNE Assembler のバージョン File Path:fasm907s.exe のパス - F2MC-16 Family SOFTUNE Linker のバージョン File Path:flnk907s.exe のパス - F2MC-16 Family SOFTUNE Librarian のバージョン File Path:flib907s.exe のパス - SOFTUNE FJ-OMF to S-FORMAT Converter のバージョン File Path:f2ms.exe のパス - SOFTUNE FJ-OMF to INTEL-HEX Converter のバージョン File Path:f2is.exe のパス - SOFTUNE FJ-OMF to INTEL-EXT-HEX Converter のバージョン File Path:f2es.exe のパス - SOFTUNE FJ-OMF to HEX Converter のバージョン File Path:f2hs.exe のパス ------------------------------------------------------SiOsM Product name : Softune Workbench File Path:SiOsM907.dll のパス Version:SiOsM907.dll のバージョン ------------------------------------------------------F2MC-16 Family Debugger DLL Product name : SOFTUNE Workbench File Path:SiD907.dll のパス Version:SiD907.dll のバージョン - - - - - - - - - - - - - - - - - - - - - - - - - - - - July 1, 2014, CM41-00313-8 Debugger type : 現在のデバッガ種別 MCU type : 現在選択しているターゲット MCU VCpu dll name : 現在使用している VCpu dll のパスと名前 VCpu dll version : 使用中の仮想デバッガ部 DLL のバージョン SiDRVo dll version : 使用中の MB2100-01 用ドライバ部 DLL のバージョン DSU type : 現在使用している DSU 種別 Adapter version : アダプタのバージョン FPGA version : FPGA のバージョン Maker ID : デバイスメーカを示す ID CPU family ID : デバイスに搭載される CPU ファミリを示す ID DSU type ID : OCD-DSU の実装タイプを示す ID DSU version ID : デバイスに搭載される DSU のバージョン情報を示す ID Device ID : デバイス情報を示す ID 331 第 2 章 依存機能 2.6 エミュレータデバッガ (MB2100-01) So ft war e S up po r t M a nu al Device version ID : デバイスのバージョン ( 版数 ) 情報を示す ID OSC clock : 原発振周波数 PLL clock : 高速通信用の基準クロック周波数 Clock mode : クロックモード [Main/ Sub/ PLL] Communication mode : 通信モード Communication device : デバイス種別 REALOS version : REALOS のバージョン ------------------------------------------------------SiIODef Product name : Softune Workbench File Path : SiIODef.dll のパス Version : SiIODef.dll のバージョン ======================================================= 332 Current path :現在使用しているプロジェクトのパス Language :現在使用している言語 Help file path :ヘルプファイルのパス CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.7 モニタデバッガ S o ft w a r e 2.7 S u p p o r t M a n u a l モニタデバッガ F2MC-16 ファミリ用モニタデバッガの機能について説明します。 ■ モニタデバッガ モニタデバッガは , ターゲットシステム上にデバッグ用のモニタを組み込み , ホストコ ンピュータと通信することにより , デバッグ機能を実現します。 ご使用になる前に,ターゲットモニタプログラムをターゲットハードウェアに合わせて 移植する必要があります。 July 1, 2014, CM41-00313-8 333 第 2 章 依存機能 2.7 モニタデバッガ So ft war e 2.7.1 S up po r t M a nu al モニタプログラムが使用するリソース モニタデバッガのモニタプログラムは , 次の I/O リソースを使用します。ターゲット ハードウェアにこれらのリソースを用意する必要があります。 ■ 必要なリソース モニタプログラムをターゲットハードウェアに組み込むには,次のリソースが必要にな ります。 表 2.7-1 モニタデバッガが使用するリソース 334 1 UART 必須 ホストコンピュータとの通信用 4800/9600/19200/38400 bps 2 モニタ ROM 必須 約 10KB 必要です。( 詳細はリンクマップを参照 ) 3 ワーク RAM 必須 約 2KB 必要です。( 詳細はリンクマップを参照 ) 4 外部割込スイッチ オプション プログラムの強制中断に使います。このスイッチを実装し ない場合はブレークポイントだけ停止可能です。 5 タイマ オプション SET TIMER/SHOW TIMER で使います。 1s 単位で 32 ビットのタイマが必要です。 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.7 モニタデバッガ S o ft w a r e 2.7.2 S u p p o r t M a n u a l ブレーク モニタデバッガでは , 2 種類のブレーク機能を使用できます。各ブレーク機能により プログラム実行が中断された場合は , ブレークしたアドレスとブレーク要因を表示し ます。 ■ ブレーク機能 本モニタデバッガでは , 次の 2 種類のブレーク機能をサポートしています。 • ソフトウェアブレーク • 強制ブレーク July 1, 2014, CM41-00313-8 335 第 2 章 依存機能 2.7 モニタデバッガ So ft war e S up po r t M a nu al ソフトウェアブレーク 2.7.2.1 メモリ中にブレーク用の命令を埋め込み , その命令実行によりブレークさせる機能で す。指定されたアドレスの命令を実行する前にブレークします。 ■ ソフトウェアブレークとは メモリ中にブレーク用の命令を埋め込み , その命令実行によりブレークさせる機能で す。指定されたアドレスの命令を実行する前にブレークします。 設定可能数は 16 ポイントです。 ソフトウェアブレークでブレークした場合は,ステータスバーに次のメッセージが表示 されます。 Break at アドレス by breakpoint ■ 設定方法 ソフトウェアブレークの制御は次の方法で行います。 • コマンド - SET BREAK/SOFT 『SOFTUNE Workbench コマンドリファレンスマニュアル』の「3.1 SET BREAK (type1)」を参照してください。 • ダイアログ - ブレークポイント設定ダイアログ [ コード ] タブ 『SOFTUNE Workbench 操作マニュアル』の「4.6.4 ブレークポイント」を参照し てください。 • ウィンドウ - ソースウィンドウ / 逆アセンブルウィンドウ <注意事項> ソフトウェアブレークには次の注意点があります。 • ROM のような書込みが正しく行えない領域には設定できません。この場合は , プログ ラム実行開始時 ( 連続実行やステップ実行などを開始するとき ) にベリファイエラーが 発生します。 • 必ず命令の先頭アドレスに設定してください。命令の途中にブレークポイントを設定 すると , プログラムが暴走する場合があります。 336 CM41-00313-8, July 1, 2014 第 2 章 依存機能 2.7 モニタデバッガ S o ft w a r e S u p p o r t M a n u a l 強制ブレーク 2.7.2.2 プログラムの実行を強制的に中断する機能です。 ■ 強制ブレークとは プログラムの実行を強制的に中断する機能です。 強制ブレークでブレークした場合は , ステータスバーに次のメッセージが表示されま す。 Break at アドレス by command abort request July 1, 2014, CM41-00313-8 337 第 2 章 依存機能 2.7 モニタデバッガ So ft war e 338 S up po r t M a nu al CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 付録 付録 A 主な変更内容 July 1, 2014, CM41-00313-8 339 付録 付録 A 主な変更内容 So ft war e 付録 A ページ S up po r t M a nu al 主な変更内容 場所 変更箇所 Revision 7.1 - - 社名変更および記述フォーマットの変換 Revision 8.0 297 340 <注意事項> フラッシュメモリの同期に関する注意事項を追加 CM41-00313-8, July 1, 2014 索引 S o ft w a r e S u p p o r t M a n u a l 索引 Symbols B /CYCLE すべてのマシンサイクルの表示 (/CYCLE を指定 ) ...........................121, 185, 233 /INSTRUCTION 命令実行順に表示 (/INSTRUCTION を指定 ) ..................................................120, 184, 232, 269 /RAWDATA トレースデータを解析せずに表示 (/RAWDATA を指定 ) ....................................268 /SOURCE ソース行単位で表示 (/SOURCE を指定 ) .................122, 186, 234, 270 Boot ROM Boot ROM ファイル自動実行 .......................37, 241 C C 言語 C 言語シンボルでの注意 .......................................31 C 言語の変数の指定方法 .......................................31 G Numerics GO コマンド GO コマンドでの注意 .................... 77, 217, 244, 294 GO コマンドの注意 .............................................. 152 0 バンクの RAM 領域 0 バンクの RAM 領域の参照 ..............................197 I I/O ポート I/O ポートのシミュレーション ( 出力ポート ) ................................................... 40 I/O ポートのシミュレーション ( 入力ポート ) ................................................... 40 M MB2100-01 エミュレータデバッガ (MB2100-01) の 特長 .................................................................. 278 MCU MCU 動作モードの設定 ................ 68, 144, 211, 242 MCU の動作速度 ....................................................69 R RAM 0 バンクの RAM 領域の参照 ..............................197 RAM Checker viewer .............................................204 RAM Checker モード ............................................ 150 RAM チェッカウィンドウ ..................................201 RAM チェッカを使用するには .......................... 202 RAW RAW データ表示 ..................................................323 ROM Boot ROM ファイル自動実行 .......................37, 241 内部 ROM 領域設定 ...............................75, 149, 216 S STEP コマンド STEP コマンドでの注意 ................ 78, 218, 244, 294 STUB STUB 機能とは ....................................................... 44 July 1, 2014, CM41-00313-8 341 索引 So ft war e S up po r t M a nu al T あ Trace Enhancement Trace Enhancement モード ....................................150 アクセス フラッシュメモリへのアクセス ........................ 296 アクティブ アクティブなプロジェクト構成について ............4 アクティブプロジェクトについて ........................ 2 アセンブル 逆アセンブル .......................................................... 27 ラインアセンブル ..................................................27 い 依存関係 依存関係の解析 ........................................................9 プロジェクト間の依存関係について .................... 5 イベント イベントの設定 ..............92, 128, 168, 190, 258, 273 イベントモード ..............................................93, 151 イベントモードの設定 ................................127, 190 ノーマルモード時に使用できる イベント関連コマンド ....................................94 パフォーマンスモード時に使用できる イベント関連コマンド ....................................98 マルチトレースモード時に使用できる イベント関連コマンド ....................................96 インストラクション インストラクション表示 .................................... 324 う ウォッチドッグタイマ ウォッチドッグタイマの 制御 ............................................ 79, 153, 218, 245 え エディタ 外部エディタ .......................................................... 14 標準エディタ .......................................................... 13 エミュレータ エミュレータデバッガ ............24, 66, 141, 208, 238 エミュレータデバッガ エミュレータデバッガ (MB2100-01) の 特長 .................................................................. 278 エラー エラージャンプ機能について ..............................11 お オプション オプションの設定について ........................7, 14, 16 オプションの設定例 .............................................. 15 ツールオプションについて ..................................10 ツールオプションの設定機能 ..............................10 オンザフライ オンザフライ中のメモリの 読出し , 書込み ................................................. 81 オンザフライによるトレースデータの 読出し ......................................................187, 235 342 CM41-00313-8, July 1, 2014 索引 S o ft w a r e S u p p o r t シングルトレース時のオンザフライによる トレースデータの読出し ..............................123 マルチトレース時のオンザフライによる トレースデータの読出し ..............................124 か ガーデッドアクセスブレーク ガーデッドアクセスブレーク .............................252 ガーデッドアクセスブレークとは ......................................................50, 88, 163, 224 外部エディタ 外部エディタ ...........................................................14 外部ツール 外部ツールについて ...............................................16 外部トリガブレーク 外部トリガブレークとは .............................166, 256 外部プローブ 外部プローブデータが使用できるコマンド ..........................................................................137 外部プローブによるサンプリング .....................136 外部プローブのサンプリングタイミング .........136 外部プローブデータ 外部プローブデータの表示 , 設定 ......................136 書込み オンザフライ中のメモリの 読出し , 書込み .................................................81 カスタマイズ ビルドのカスタマイズ機能について .....................7 カバレッジ カバレッジ測定機能 ...............................59, 130, 193 カバレッジ測定結果の表示 ...................60, 131, 194 カバレッジ測定操作 ...............................59, 130, 193 カバレッジ測定手順 ...............................59, 130, 193 カバレッジ測定範囲の設定 ...................60, 131, 194 カバレッジの測定 ...................................60, 131, 194 関連項目 関連項目 ...............................12, 13, 15, 16, 23, 26, 27 き 基準クロック周波数 高速通信用の基準クロック周波数 .....................286 逆アセンブル 逆アセンブル ...........................................................27 強制ブレーク 強制ブレークとは ..............................51, 91, 167, 226, 257, 306, 337 行番号情報 行番号情報 ...............................................................29 切り換え方法 切り換え方法 .........................................................287 く クリア パフォーマンス測定データの クリア ..............................................128, 191, 273 July 1, 2014, CM41-00313-8 M a n u a l こ 高速通信用 高速通信用の基準クロック周波数 .................... 286 高速版 高速版シミュレータデバッガの動作条件 ..........34 コードブレーク コードブレーク ( ソフトウェア ) とは ..............303 コードブレークとは ...................... 84, 158, 221, 249 コードブレークの注意 .................... 46, 84, 158, 221 コードブレークの流れ .......................................... 46 コードブレーク ( ハードウェア ) とは ..............301 誤差 誤差の情報 ............................................................ 315 コマンド GO コマンドでの注意 ............................ 77, 217, 244 GO コマンドの注意 .............................................. 152 STEP コマンドでの注意 ........................ 78, 218, 244 外部プローブデータが使用できる コマンド .......................................................... 137 ノーマルモード時に使用できる イベント関連コマンド ....................................94 パフォーマンスモード時に使用できる イベント関連コマンド ....................................98 マルチトレースモード時に使用できる イベント関連コマンド ....................................96 ユーザプログラム実行中に使用できる コマンド ............................80, 154, 219, 246, 289 さ 最小測定単位 最小測定単位の設定 ............................................ 134 タイマの最小測定単位 ................................190, 273 タイマの最小測定単位の設定 ......................76, 127 再測定 再測定 ....................................................................316 サブプロジェクト サブプロジェクトについて ....................................2 サンプリング 外部プローブによるサンプリング .................... 136 外部プローブのサンプリングタイミング ........136 シーケンサによるトレースサンプリング 制御 .................................................................. 104 トレースのサンプリング ...................................... 54 し シーケンサ シーケンサによる時間測定 ................................106 シーケンサによる時間測定例 ............................107 シーケンサによる制御 ................ 100, 168, 258, 310 シーケンサによるトレースサンプリング 制御 .................................................................. 104 シーケンサによるブレーク ................................103 シーケンサの仕様 ................................................311 シーケンサの設定 ........................................101, 170 シーケンサの設定方法 ........................................ 171 シーケンサの動作 ........................................260, 310 シーケンシャルブレーク シーケンシャルブレークとは ..............87, 162, 253 シーケンシャルブレークの種類 ........................ 253 343 索引 So ft war e 時間測定 シーケンサによる時間測定 .................................106 時間測定の表示 .....................................129, 192, 274 実行 ステップ実行の注意 .............................................152 シミュレーション I/O ポートのシミュレーション ( 出力ポート ) ....................................................40 I/O ポートのシミュレーション ( 入力ポート ) ....................................................40 シミュレーション範囲 ...........................................35 シミュレーションメモリ空間 ...............................39 低消費電力モードのシミュレーション ...............43 命令シミュレーション ...........................................38 メモリのシミュレーション ...................................39 リセットのシミュレーション ...............................42 割込みのシミュレーション ...................................41 シミュレータデバッガ 高速版シミュレータデバッガの動作条件 ...........34 シミュレータデバッガ .....................................24, 34 出力ポート I/O ポートのシミュレーション ( 出力ポート ) ....................................................40 仕様一覧 仕様一覧 .................................................................202 シングルトレース シングルトレース .................................................111 シングルトレース時のオンザフライによる トレースデータの読出し ..............................123 シングルトレース時のフレーム番号と ステップ番号 ..................................................112 シングルトレースの設定方法 .............................113 シンタックス シンタックスについて ...........................................11 シンボル C 言語シンボルでの注意 .......................................31 シンボル情報の登録 ...............................................28 シンボルの指定と検索手順 ...................................30 シンボルの種類 .......................................................28 S up po r t M a nu al そ ソース ソース表示 ............................................................ 325 ソース行単位 ソース行単位で表示 (/SOURCE を指定 ) .................122, 186, 234, 270 測定結果 測定結果のクリア ..........53, 135, 198, 237, 275, 314 測定結果の表示 ..............52, 134, 198, 237, 275, 314 測定項目 測定項目 ..................52, 134, 198, 237, 275, 314, 316 測定単位 測定単位 ................................................................ 313 測定内容 測定内容 ................................................................ 313 測定の終了 測定の終了 ............................................................ 318 測定方法 測定方法 ................................................................ 317 ソフトウェア コードブレーク ( ソフトウェア ) とは ..............303 ソフトウェアブレークとは ................................336 た ターゲット ターゲットの動作環境 ........................................ 281 ターミナルウィンドウ ターミナルウィンドウとは ................................328 タイマ ウォッチドッグタイマの 制御 ............................................ 79, 153, 218, 245 タイマの最小測定単位 ................................190, 273 タイマの最小測定単位の設定 ......................76, 127 タイミング 外部プローブのサンプリングタイミング ........136 ち す スコープ スコープ ...................................................................30 スコープの移動 .......................................................30 ステップ実行 ステップ実行の注意 .............................................152 せ 制限 複数プロジェクト登録の制限について .................2 セキュリティ セキュリティ .........................................................283 セミホスティング セミホスティング機能とは .................................328 セミホスティング機能の使用方法 .....................329 注意 C 言語シンボルでの注意 .......................................31 GO コマンドでの注意 ............................ 77, 217, 244 GO コマンドの注意 .............................................. 152 STEP コマンドでの注意 ........................ 78, 218, 244 コードブレークの注意 .................... 46, 84, 158, 221 ステップ実行の注意 ............................................ 152 注意すべき事項 ......................................................14 つ ツール 外部ツールについて .............................................. 16 ツールオプションについて ..................................10 ツールオプションの設定機能 ..............................10 て 低消費電力モード 低消費電力モードのシミュレーション ..............43 344 CM41-00313-8, July 1, 2014 索引 S o ft w a r e S u p p o r t データ監視トレーストリガ データ監視トレーストリガの設定 .....................174 データ監視ブレーク データ監視ブレークとは .............................161, 308 データブレーク データブレークとは ...............86, 160, 223, 251, 305 データブレークの流れ ...........................................48 デバッガ エミュレータデバッガ .............24, 66, 141, 208, 238 高速版シミュレータデバッガの動作条件 ...........34 シミュレータデバッガ .....................................24, 34 デバッガが異常終了した場合 .............................284 デバッガの種類 .......................................................24 デバッガの情報 ...............................63, 138, 205, 330 モニタデバッガ ...............................................24, 333 デバッグ デバッグ機能 .........................................................287 デバッグ機能の設定 .............................................150 デバッグモード .............................................144, 211 デバッグ領域の設定 ...............................70, 145, 212 デバッグを開始するには .....................................280 デバッグを終了するには .....................................284 パワーオンデバッグ .....................................200, 277 デバッグ開始時 デバッグ開始時の確認項目 .................................280 と 動作環境 動作環境 ...................................................................22 動作環境の設定 .................36, 67, 142, 209, 239, 285 動作周波数 動作周波数 .............................................................243 動作モード MCU 動作モードの設定 ................68, 144, 211, 242 特殊動作 ブレークポイント設定時の 特殊動作について ..........................................301 トレース オンザフライによるトレースデータの 読出し ......................................................187, 235 シーケンサによるトレースサンプリング 制御 ..................................................................104 シングルトレース .................................................111 シングルトレース時のオンザフライによる トレースデータの読出し ..............................123 シングルトレース時のフレーム番号と ステップ番号 ..................................................112 シングルトレースの設定方法 .............................113 データ監視トレーストリガの設定 .....................174 トレース機能 .........................................................319 トレースされないデータ .....................110, 172, 227 トレース測定の中断 ...............................................54 トレースディレイ .................................................178 トレースデータ .......................54, 109, 172, 227, 262 トレースデータの格納状況の 表示 ..........................................118, 182, 230, 266 トレースデータの表示位置の 指定 ..........................................119, 183, 231, 267 トレースデータを解析せずに表示 (/RAWDATA を指定 ) ....................................268 July 1, 2014, CM41-00313-8 M a n u a l トレースデータを 保存するには ....................58, 125, 188, 236, 271 トレースとは ..................................................54, 319 トレーストリガの設定 ................................173, 263 トレースの設定方法 ...................... 55, 176, 229, 264 トレースバッファ ........................109, 172, 227, 262 トレースバッファフルブレークとは ..............................................49, 89, 164, 225, 254 トレースフィルタ ................................173, 228, 263 マルチトレース ............................................115, 177 マルチトレース時のオンザフライによる トレースデータの読出し ..............................124 マルチトレース時のフレーム番号 ............115, 177 マルチトレースの設定方法 ........................117, 180 マルチトレースモード時に使用できる イベント関連コマンド ....................................96 マルチトレースモード時の動作 .......................... 96 ユーザプログラム実行中のトレース制御 ........174 トレースデータ トレースデータ ......................................................54 トレースデータのクリア ..............................56, 319 トレースデータの検索 .......................................... 57 トレースデータの検索方法 ..................................57 トレースデータの取得 ........................................ 319 トレースデータの表示位置について ................ 321 トレースデータの表示形式 ..................................56 トレースデータの表示形式について ................ 321 トレースデータの表示方法 ..........................56, 321 トレースデータを検索するには ........................ 327 トレースデータを保存するには ........................ 326 トレースバッファ トレースバッファ ................................................320 な 内部 ROM 内部 ROM 領域設定 ...............................75, 149, 216 に 入力方法 入力方法 ................................................................ 283 入力ポート I/O ポートのシミュレーション ( 入力ポート ) ................................................... 40 ね ネイティブ ネイティブモード ........................................144, 211 の ノーマル ノーマルモード時に使用できる イベント関連コマンド ....................................94 ノーマルモード時の動作 ...................................... 94 345 索引 So ft war e は ハードウェア コードブレーク ( ハードウェア ) とは ..............301 発生方法 発生方法 .................................................................306 バッファ トレースバッファ .........................109, 172, 227, 262 トレースバッファフルブレークとは ..............................................49, 89, 164, 225, 254 パフォーマンスバッファフルブレークとは ............................................................90, 165, 255 パフォーマンスバッファフルブレークの 指定 ..................................................127, 190, 273 パフォーマンス パフォーマンス測定 .............................................316 パフォーマンス測定 パフォーマンス測定データの クリア ..............................................128, 191, 273 パフォーマンス測定データの 表示 ..................................................128, 191, 273 パフォーマンス測定の機能 .................126, 189, 272 パフォーマンスバッファフルブレーク パフォーマンスバッファフルブレークとは ............................................................90, 165, 255 パフォーマンスバッファフルブレークの 指定 ..................................................127, 190, 273 パフォーマンスモード パフォーマンスモード時に使用できる イベント関連コマンド ....................................98 パフォーマンスモード時の動作 ...........................98 パワーオンデバッグ パワーオンデバッグ .....................................200, 277 パワーオンデバッグとは .....................................292 ひ 標準エディタ 標準エディタ ...........................................................13 ビルド ビルド機能 .................................................................6 ビルドのカスタマイズ機能について .....................7 ふ ファイル Boot ROM ファイル自動実行 ........................37, 241 複数プロジェクト 複数プロジェクト登録の制限について .................2 フラッシュメモリ フラッシュメモリの同期とは .............................296 フラッシュメモリの同期の方法 .........................296 フラッシュメモリの同期の例 .............................298 フラッシュメモリへのアクセス .........................296 ブレーク ガーデッドアクセスブレーク .............................252 ガーデッドアクセスブレークとは ......................................................50, 88, 163, 224 外部トリガブレークとは .............................166, 256 強制ブレークとは .............51, 91, 167, 226, 257, 337 コードブレークとは .......................84, 158, 221, 249 コードブレークの注意 .....................46, 84, 158, 221 346 S up po r t M a nu al コードブレークの流れ .......................................... 46 シーケンサによるブレーク ................................103 シーケンシャルブレークとは ......................87, 162 ソフトウェアブレークとは ................................336 データ監視ブレークとは .................................... 161 データブレークとは ...................... 86, 160, 223, 251 データブレークの流れ .......................................... 48 トレースバッファフルブレークとは ..............................................49, 89, 164, 225, 254 パフォーマンスバッファフルブレークとは ............................................................90, 165, 255 パフォーマンスバッファフルブレークの 指定 .................................................. 127, 190, 273 ブレーク機能 ............ 45, 83, 157, 220, 248, 300, 335 ブレークポイント ブレークポイント設定時の特殊動作について ..........................................................................301 フレーム シングルトレース時のフレーム番号と ステップ番号 ..................................................112 フレーム番号 .................................. 54, 173, 228, 262 マルチトレース時のフレーム番号 ............115, 177 プログラム プログラムが停止しない場合 ............................306 プログラム実行 ....................................128, 191, 273 プログラム実行中の制御 .................................... 288 プログラムを実行するには ................................288 プロジェクト アクティブなプロジェクト構成について ............4 アクティブプロジェクトについて ........................ 2 サブプロジェクトについて ....................................2 複数プロジェクト登録の制限について ................2 プロジェクト間の依存関係について .................... 5 プロジェクト管理機能 ............................................ 3 プロジェクト形式について ....................................3 プロジェクト構成について ....................................4 プロジェクトについて ............................................ 2 ほ ポート I/O ポートのシミュレーション ( 出力ポート ) ................................................... 40 I/O ポートのシミュレーション ( 入力ポート ) ................................................... 40 ま マクロ マクロ一覧 .............................................................. 17 マクロについて ......................................................17 マクロの展開例 ......................................................20 マクロリストについて ............................................ 7 マシンサイクル すべてのマシンサイクルの表示 (/CYCLE を指定 ) ...........................121, 185, 233 マルチトレース マルチトレース ............................................115, 177 マルチトレース時のオンザフライによる トレースデータの読出し ..............................124 マルチトレース時のフレーム番号 ............115, 177 マルチトレースの設定方法 ........................117, 180 CM41-00313-8, July 1, 2014 索引 S o ft w a r e S u p p o r t マルチトレースモード時に使用できる イベント関連コマンド ....................................96 マルチトレースモード時の動作 ...........................96 め メイク メイク機能 .................................................................6 命令 命令実行順に表示 (/INSTRUCTION を指定 ) ..................................................120, 184, 232, 269 命令シミュレーション ...........................................38 メモリ オンザフライ中のメモリの 読出し , 書込み .................................................81 シミュレーションメモリ空間 ...............................39 メモリエリアのアクセス属性 .........39, 74, 148, 215 メモリエリアの種類 ...............................71, 146, 213 メモリ操作機能 .......................................................25 メモリのシミュレーション ...................................39 メモリマップの作成・表示 ...................74, 148, 215 も モード MCU 動作モードの設定 ................68, 144, 211, 242 RAM Checker モード ............................................150 Trace Enhancement モード ....................................150 イベントモード ...............................................93, 151 イベントモードの設定 .................................127, 190 低消費電力モードのシミュレーション ...............43 デバッグモード .............................................144, 211 ネイティブモード .........................................144, 211 ノーマルモード時に使用できる イベント関連コマンド ....................................94 ノーマルモード時の動作 .......................................94 パフォーマンスモード時に使用できる イベント関連コマンド ....................................98 パフォーマンスモード時の動作 ...........................98 マルチトレースモード時に使用できる イベント関連コマンド ....................................96 マルチトレースモード時の動作 ...........................96 モニタデバッガ モニタデバッガ ...............................................24, 333 モニタプログラム モニタプログラム自動ロード .............143, 210, 240 モニタリング モニタリングとは .................................................291 M a n u a l よ 読出し オンザフライ中のメモリの 読出し , 書込み ................................................. 81 オンザフライによるトレースデータの 読出し ......................................................187, 235 シングルトレース時のオンザフライによる トレースデータの読出し ..............................123 マルチトレース時のオンザフライによる トレースデータの読出し ..............................124 ら ラインアセンブル ラインアセンブル ..................................................27 り リアルタイム リアルタイムモニタ ............................................ 197 リセット リセットのシミュレーション ..............................42 リソース 必要なリソース ....................................................334 れ レジスタ レジスタ操作 .......................................................... 26 ろ ログファイル ログファイルについて ........................................ 203 わ ワークスペース ワークスペース管理機能 ........................................ 2 ワークスペースについて ........................................ 2 割込み 割込みのシミュレーション ..................................41 ゆ ユーザプログラム ユーザプログラム実行中に使用できる コマンド ..........................................................289 ユーザプログラム実行中の トレース制御 ..................................................174 July 1, 2014, CM41-00313-8 347 索引 So ft war e 348 S up po r t M a nu al CM41-00313-8, July 1, 2014 S o ft w a r e S u p p o r t M a n u a l 奥付 CM41-00313-8 Spansion • SOFTWARE SUPPORT MANUAL F2MC®-16 ファミリ SOFTUNE® Workbench 機能説明書 2014 年 7 月 Rev. 8.0 発行 Spansion Inc. 編集 マーケティングコミュニケーション部 July 1, 2014, CM41-00313-8 349 So ft war e S up po r t M a nu al 免責事項 本資料に記載された製品は、通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途 ( ただし、用途の限定はあ りません ) に使用されることを意図して設計・製造されています。(1) 極めて高度な安全性が要求され、仮に当該安全性が 確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力施設における 核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生命維持のための医療機器 , 兵器シ ステムにおけるミサイル発射制御等をいう ) 、ならびに (2) 極めて高い信頼性が要求される用途 ( 海底中継器 , 宇宙衛星等を いう ) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいかなる請求また は損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。半導体デバイス はある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故 , 火災事故 , 社会的な損害を生じさ せないよう、お客様において、装置の冗長設計 , 延焼対策設計 , 過電流防止対策設計 , 誤動作防止設計などの安全設計をお 願いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基づき規制され ている製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。 商標および注記 このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報が 記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したりする 権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性 , 完全 性 , 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、ま た、明示 , 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれる 情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。 Copyright © 2004-2014 Spansion Inc. All rights reserved. 商標:Spansion®, Spansion ロゴ ( 図形マーク ), MirrorBit®, MirrorBit® EclipseTM, ORNANDTM 及びこれらの組合せは、米国・ 日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として表記 したものであり、各権利者の商標もしくは登録商標となっている場合があります。 350 CM41-00313-8, July 1, 2014
© Copyright 2024 Paperzz