IAR Embedded Workbench® IDE ユーザガイド UEW-9-J UEW-9 版権事項 Copyright © 1996–2010 IAR Systems AB. IAR Systems AB が事前に書面で同意した場合を除き、このドキュメントを複 製することはできません。このドキュメントに記載するソフトウェアは、正 当な権限の範囲内でインストール、使用、およびコピーすることができます。 免責事項 このドキュメントの内容は、予告なく変更されることがあります。また、 IAR Systems 社では、このドキュメントの内容に関して一切責任を負いませ ん。記載内容には万全を期していますが、万一、誤りや不備がある場合でも IAR Systems 社はその責任を負いません。 IAR Systems 社、その従業員、その下請企業、またはこのドキュメントの作成 者は、特殊な状況で、直接的、間接的、または結果的に発生した損害、損失、 費用、課金、権利、請求、逸失利益、料金、またはその他の経費に対して一 切責任を負いません。 商標 IAR Systems、IAR Embedded Workbench、C-SPY、visualSTATE、From Idea to Target、IAR KickStart Kit、IAR PowerPac、IAR YellowSuite、IAR Advanced Development Kit、IAR、および IAR Systems のロゴタイプは、IAR Systems AB が所有権を有する商標または登録商標です。J-Link は IAR Systems AB がライ センスを受けた商標です。 Microsoft および Windows は、Microsoft Corporation の登録商標です。 Adobe および Acrobat Reader は、Adobe Systems Incorporated の登録商標です。 その他のすべての製品名は、その所有者の商標または登録商標です。 改版情報 第 9 版 : 2010 年 2 月 部品番号 : UEW-9-J 内部参照 : M1、6.0.0、tut2009.2、ISUD。 UEW-9 目次(章) 表 ............................................................................................................................. xxi 図 ............................................................................................................................ xxv はじめに ......................................................................................................... xxxiii インストールファイル ............................................................................ xliii パート 1. チュートリアル チュートリアルへようこそ ................................................................ 1 ..................................................................... 3 アプリケーションプロジェクトの作成 ........................................... 7 IAR C-SPY デバッガを使用したデバッグ C 言語とアセンブラモジュールの結合 C++ の使用 ..................................... 19 ......................................... 29 ........................................................................................................ 33 割込みシミュレーション ......................................................................... 39 ライブラリの作成と利用 ......................................................................... 49 パート 2. プロジェクト管理とビルド 開発環境 .............................................................................................................. 55 プロジェクト管理 ビルド 編集 .............................. 53 ......................................................................................... 63 ................................................................................................................... 75 ......................................................................................................................... 83 パート 3. デバッグ IAR C-SPY デバッガ ................................................................................ 95 ..................................................................................... 97 アプリケーションの実行 変数と式の扱い ....................................................................... 109 ............................................................................................ 117 iii UEW-9 ブレークポイントの使用 ....................................................................... 125 メモリとレジスタのモニタ ................................................................. 135 C-SPY マクロシステムの使用 アプリケーションの分析 ............................................................. 141 ....................................................................... 149 パート 4. IAR C-SPY シミュレータ シミュレータ固有のデバッグ 割込みシミュレーション ................................ 155 ............................................................ 157 ....................................................................... 179 パート 5. リファレンス情報 ..................................................... 193 IAR Embedded Workbench IDE リファレンス C-SPY リファレンス 一般オプション ........................... 195 .................................................................................. 283 ............................................................................................ 327 コンパイラオプション ............................................................................ 333 アセンブラオプション ............................................................................ 347 コンバータオプション ............................................................................ 353 カスタムビルドオプション ................................................................. 355 ビルドアクションオプション XLINK リンカのオプション ILINK リンカのオプション ................................................................. 359 ................................................................... 375 ライブラリビルダオプション デバッガオプション ............................................................ 357 ............................................................ 387 ................................................................................. 389 C-SPY コマンドラインユーティリティ — cspybat C-SPY マクロリファレンス ............... 393 .................................................................. 403 用語集 .................................................................................................................. 435 IAR Embedded Workbench IDE iv ユーザガイド UEW-9 目次(章) 索引 ....................................................................................................................... 453 v UEW-9 IAR Embedded Workbench IDE vi ユーザガイド UEW-9 目次 表 ............................................................................................................................. xxi 図 ............................................................................................................................ xxv はじめに ......................................................................................................... xxxiii 本ガイドの対象者 ................................................................................xxxiii このガイドの使用方法 .......................................................................xxxiii 使用している製品に該当しない記述 ....................................... xxxiv このガイドの概要 ................................................................................. xxxv その他のドキュメント .....................................................................xxxviii ユーザガイドおよびリファレンスガイド .............................xxxviii Web サイト .................................................................................. xxxix 表記規則 .................................................................................................. xxxix 表記規則 ............................................................................................. xl 命名規約 ............................................................................................. xl インストールファイル ............................................................................ xliii ディレクトリ構成 ...................................................................................xliii ルートディレクトリ ......................................................................xliii cpuname ディレクトリ ..................................................................xliii common ディレクトリ .................................................................... xlv install-info ディレクトリ ...............................................................xlvi ファイルタイプ .......................................................................................xlvi デフォルトでないファイル名拡張子のファイル ....................xlviii パート 1. チュートリアル チュートリアルへようこそ ................................................................ 1 ..................................................................... 3 チュートリアル概要 .................................................................................. 3 アプリケーションプロジェクトの作成 .......................................... 3 IAR C-SPY デバッガを使用したデバッグ ....................................... 3 C 言語とアセンブラモジュールの結合 .......................................... 4 vii UEW-9 C++ の使用 ......................................................................................... 4 割込みシミュレーション .................................................................. 4 ライブラリの作成と利用 .................................................................. 5 イントロダクション .......................................................................... 5 アプリケーションプロジェクトの作成 ........................................... 7 新しいプロジェクトの設定 ..................................................................... 7 ワークスペースの作成 ...................................................................... 7 新しいプロジェクトの作成 .............................................................. 8 プロジェクトへのファイルの追加 ................................................ 10 プロジェクトオプションの設定 .................................................... 11 アプリケーションのコンパイルとリンク ........................................ 12 ソースファイルのコンパイル ........................................................ 12 リストファイルの表示 .................................................................... 14 アプリケーションのリンク ............................................................ 16 マップファイルおよびログファイルの表示 ................................ 17 IAR C-SPY デバッガを使用したデバッグ ..................................... 19 アプリケーションのデバッグ .............................................................. 19 デバッガの起動 ................................................................................ 19 ウィンドウの編成 ............................................................................ 20 ソース文の検証 ................................................................................ 21 変数の検証 ....................................................................................... 22 ブレークポイントの設定とモニタ ................................................ 24 レジスタのモニタ ............................................................................ 26 メモリのモニタ ................................................................................ 26 ターミナル I/O の表示 .................................................................... 27 プログラムの最後まで実行 ............................................................ 27 C 言語とアセンブラモジュールの結合 ......................................... 29 呼出し規約のチェック ............................................................................ 29 プロジェクトへのアセンブラモジュールの追加 ........................... 31 プロジェクトの設定 ........................................................................ 31 IAR Embedded Workbench IDE viii ユーザガイド UEW-9 目次 C++ の使用 ........................................................................................................ 33 C++ アプリケーションの作成 .............................................................. 33 C++ アプリケーションのコンパイルとリンク ........................... 34 ブレークポイントの設定と実行 .................................................... 34 フィボナッチ数列の出力 ................................................................ 37 割込みシミュレーション ......................................................................... 39 割込みハンドラの追加 ............................................................................ 39 アプリケーションの概要 ................................................................ 39 割込みハンドラの記述 .................................................................... 40 プロジェクトの設定 ........................................................................ 40 シミュレーション環境の設定 .............................................................. 41 C-SPY セットアップマクロファイルの定義 ................................ 41 C-SPY オプションの設定 ................................................................ 42 プロジェクトのビルド .................................................................... 43 シミュレータの起動 ........................................................................ 43 割込みシミュレーションの指定 ................................................... 44 イミディエイトブレークポイントの設定 .................................... 45 割込みシミュレーション ....................................................................... 46 アプリケーションの実行 ................................................................ 46 マクロによる割込みとブレークポイントの設定 ........................... 47 ライブラリの作成と利用 ......................................................................... 49 ライブラリの使用 ..................................................................................... 49 新しいプロジェクトの作成 ............................................................ 50 ライブラリプロジェクトの作成 .................................................... 50 アプリケーションプロジェクトでのライブラリの使用 ............ 51 パート 2. プロジェクト管理とビルド 開発環境 .............................. 53 .............................................................................................................. 55 IAR Embedded Workbench IDE — 概要 ...................................... 55 ツールチェーン ................................................................................ 55 連続したワークフロー .................................................................... 55 ix UEW-9 拡張可能なモジュール化構造の環境 ............................................ 55 ウィンドウ管理 ................................................................................ 56 IDE の実行 ....................................................................................... 56 終了 .................................................................................................... 57 環境のカスタマイズ ................................................................................ 57 画面上のウィンドウの編成 ............................................................ 57 IDE のカスタマイズ ........................................................................ 58 外部ツールの呼出し ........................................................................ 59 プロジェクト管理 ......................................................................................... 63 プロジェクトモデル ................................................................................ 63 プロジェクト管理 — 概要 .............................................................. 63 プロジェクトの編成方法 ................................................................ 64 ワークスペースの作成と管理 ........................................................ 66 プロジェクトファイルのナビゲート ................................................. 68 ワークスペースの表示 .................................................................... 69 ブラウズ情報の表示 ........................................................................ 70 ソースコード管理 ..................................................................................... 71 ソースコード管理システムの操作 ................................................ 71 ビルド ................................................................................................................... 75 アプリケーションのビルド ................................................................... 75 オプションの設定 ............................................................................ 75 プロジェクトのビルド .................................................................... 77 バッチによる複数構成のビルド .................................................... 77 ビルド前およびビルド後のアクションの使用 ............................ 78 ビルド中に検出されたエラーの修正 ............................................ 79 コマンドラインからのビルド ........................................................ 79 ツールチェーンの拡張 ............................................................................ 80 ツールチェーンに追加可能なツール ............................................ 81 外部ツールの追加 ............................................................................ 81 編集 ......................................................................................................................... 83 IAR Embedded Workbench エディタの使用 .............................. 83 ファイルの編集 ................................................................................ 83 IAR Embedded Workbench IDE x ユーザガイド UEW-9 目次 コードテンプレートの使用と追加 ................................................ 88 ファイル間のナビゲート ................................................................ 90 検索 .................................................................................................... 91 エディタ環境のカスタマイズ .............................................................. 91 外部エディタの連携 ........................................................................ 92 パート 3. デバッグ IAR C-SPY デバッガ ................................................................................ 95 ..................................................................................... 97 C-SPY — 概要 ........................................................................................... 97 統合環境 ............................................................................................ 97 C-SPY デバッガの特長 ................................................................... 97 RTOS 認識 ........................................................................................ 99 デバッガの概念 ......................................................................................... 99 C-SPY とターゲットシステム ....................................................... 99 デバッガ .......................................................................................... 100 ターゲットシステム ...................................................................... 100 ユーザアプリケーション .............................................................. 100 C-SPY デバッガシステム ............................................................. 100 ROM モニタプログラム ................................................................ 101 サードパーティ製デバッガ .......................................................... 101 C-SPY プラグインモジュール ..................................................... 101 C-SPY の設定 .......................................................................................... 102 デバッグドライバの選択 .............................................................. 102 リセットからの実行 ..................................................................... 102 セットアップマクロファイルの使用 .......................................... 103 デバイス記述ファイルの選択 ...................................................... 103 プラグインモジュールのロード .................................................. 104 C-SPY の起動 ......................................................................................... 105 IDE 外でビルドされた実行可能ファイル .................................. 105 ソースファイルがない状態でデバッグセッションを 開始する .......................................................................................... 105 複数イメージのロード .................................................................. 107 デバッガの出力をファイルにリダイレクト .............................. 107 xi UEW-9 アプリケーションの実行 ....................................................................... 109 ソースモードと逆アセンブリモードのデバッグ ......................... 109 実行 ............................................................................................................. 110 ステップ .......................................................................................... 110 Go ..................................................................................................... 112 カーソルまで実行 .......................................................................... 112 強調表示 .......................................................................................... 112 ブレークポイントを使用した停止 .............................................. 113 [ブレイク]ボタンによる停止 .................................................... 113 プログラムの終了位置で停止 ...................................................... 113 呼出しスタック情報 .............................................................................. 114 ターミナル I/O ........................................................................................ 114 変数と式の扱い ............................................................................................ 117 C-SPY 式 ................................................................................................... 117 C 言語のシンボル .......................................................................... 117 アセンブラシンボル ...................................................................... 118 マクロ関数 ..................................................................................... 118 マクロ変数 ...................................................................................... 118 変数情報の制限 ....................................................................................... 119 最適化の影響 .................................................................................. 119 変数と式の表示 ....................................................................................... 120 ウィンドウの操作 .......................................................................... 120 トレースシステムの使用 .............................................................. 121 アセンブラ変数の表示 .................................................................. 122 ブレークポイントの使用 ....................................................................... 125 ブレークポイントシステム ................................................................. 125 ブレークポイントの定義 ..................................................................... 125 ブレークポイントアイコン .......................................................... 126 ブレークポイントの各種設定方法 .............................................. 127 シンプルなコードブレークポイントトグル .............................. 127 ダイアログボックスによるブレークポイントの定義 .............. 127 [メモリ]ウィンドウでのデータブレークポイントの設定 .... 129 IAR Embedded Workbench IDE xii ユーザガイド UEW-9 目次 システムマクロによるブレークポイントの定義 ...................... 130 ブレークポイントのヒント .......................................................... 131 すべてのブレークポイントの表示 .................................................... 131 [ブレークポイントの使用]ダイアログボックスの使用 ........ 132 ブレークポイントの設定元 .......................................................... 133 メモリとレジスタのモニタ ................................................................. 135 メモリアドレッシング .......................................................................... 135 メモリとレジスタのモニタ用ウィンドウ ...................................... 135 [スタック]ウィンドウの使用 .................................................... 136 レジスタの操作 .............................................................................. 137 C-SPY マクロシステムの使用 ............................................................. 141 マクロシステム ....................................................................................... 141 マクロ言語 ...................................................................................... 142 マクロファイル .............................................................................. 142 セットアップマクロ関数 .............................................................. 143 C-SPY マクロの使用 ............................................................................. 144 [マクロ設定]ダイアログボックスの使用 ................................ 144 セットアップマクロとセットアップファイルによる 登録と実行 ...................................................................................... 145 [クイックウォッチ]によるマクロの実行 ............................... 146 ブレークポイントにマクロを接続して実行 .............................. 147 アプリケーションの分析 ....................................................................... 149 関数レベルのプロファイリング ........................................................ 149 プロファイラの使用 ...................................................................... 150 コードカバレッジ ................................................................................... 151 コードカバレッジの使用 .............................................................. 152 パート 4. IAR C-SPY シミュレータ シミュレータ固有のデバッグ ................................ 155 ............................................................ 157 C-SPY シミュレータの概要 ............................................................... 157 機能 .................................................................................................. 157 xiii UEW-9 シミュレータドライバの選択 ...................................................... 157 シミュレータ固有のメニュー ............................................................ 158 [シミュレータ]メニュー ............................................................ 158 メモリアクセスチェック ..................................................................... 159 [メモリアクセス設定]ダイアログボックス ............................ 159 [メモリアクセスの編集]ダイアログボックス ........................ 162 シミュレータのトレースシステムの使用 ...................................... 163 トレースシステムの使用に関する要件 ...................................... 163 トレースシステムを使用する理由 .............................................. 163 トレースシステムの概要 .............................................................. 163 トレースシステムの使用方法 ...................................................... 163 関連リファレンス情報 .................................................................. 164 [トレース開始ブレークポイント]ダイアログボックス ........ 164 [トレース停止]ブレークポイントダイアログボックス ........ 165 [トレース]ウィンドウ ................................................................ 167 [関数トレース]ウィンドウ ........................................................ 168 [トレース式]ウィンドウ ............................................................ 169 [トレースを検索]ウィンドウ .................................................... 170 [トレースを検索]ダイアログボックス .................................... 171 シミュレータでのブレークポイントの使用 .................................. 172 データブレークポイント .............................................................. 172 [データブレークポイント]ダイアログボックス .................... 173 イミディエイトブレークポイント .............................................. 175 [イミディエイトブレークポイント]ダイアログボックス .... 175 [ブレークポイントの使用]ダイアログボックス .................... 177 割込みシミュレーション ....................................................................... 179 C-SPY 割込みシミュレーションシステム ..................................... 179 割込みシミュレーションシステムの使用 ...................................... 182 ターゲットに合せた割込みシミュレーションシステムの 調整 .................................................................................................. 183 [割込み設定]ダイアログボックス ............................................ 183 [割込みの編集]ダイアログボックス ........................................ 184 [強制割込み]ウィンドウ ............................................................ 186 IAR Embedded Workbench IDE xiv ユーザガイド UEW-9 目次 割込み用の C-SPY システムマクロ ............................................ 187 [割込みログ]ウィンドウ ............................................................ 188 シンプルな割込みシミュレーション ............................................... 189 パート 5. リファレンス情報 ..................................................... 193 IAR Embedded Workbench IDE リファレンス ........................... 195 ウィンドウ ................................................................................................ 195 [IAR Embedded Workbench IDE]ウィンドウ ............................ 196 [ワークスペース]ウィンドウ .................................................... 198 エディタウィンドウ ...................................................................... 208 [ソースブラウザ]ウィンドウ .................................................... 215 [ブレークポイント]ウィンドウ ................................................ 218 [ソースの曖昧さの解決]ダイアログボックス ........................ 224 [ビルド]ウィンドウ .................................................................... 225 [ファイルから検索]ウィンドウ ................................................ 225 [ツール出力]ウィンドウ ............................................................ 226 [デバッグログ]ウィンドウ ........................................................ 227 メニュー ..................................................................................................... 228 [ファイル]メニュー .................................................................... 228 [編集]メニュー ............................................................................ 231 [表示]メニュー ............................................................................ 240 [プロジェクト]メニュー ............................................................ 242 [ツール]メニュー ........................................................................ 253 [共通フォント]オプション ........................................................ 254 [キーバインディング]オプション ............................................ 255 [言語]オプション ........................................................................ 256 [エディタ]オプション ................................................................ 257 [自動インデントの設定]ダイアログボックス ........................ 259 [外部エディタ]のオプション .................................................... 261 エディタのセットアップファイルのオプション ...................... 263 エディタ色とフォントオプション .............................................. 264 [メッセージ]オプション ............................................................ 265 [プロジェクト]オプション ........................................................ 267 xv UEW-9 [ソースコード管理]オプション ................................................ 268 [デバッガ]オプション ................................................................ 269 [スタック]オプション ................................................................ 271 [レジスタフィルタ]オプション ................................................ 273 [ターミナル I/O]オプション ..................................................... 274 [構成ツール]ダイアログボックス ............................................ 276 [ファイル名拡張子]ダイアログボックス ................................ 278 [ファイル名拡張子のオーバライド]ダイアログボックス .... 279 [ファイル名拡張子の編集]ダイアログボックス .................... 279 [ビューアの構成]ダイアログボックス ................................... 280 [ビューア拡張子の編集]ダイアログボックス ....................... 280 [ウィンドウ]メニュー ................................................................ 281 [ヘルプ]メニュー ........................................................................ 282 C-SPY リファレンス .................................................................................. 283 C-SPY のウィンドウ ............................................................................. 283 C-SPY のウィンドウでの編集 ..................................................... 284 C-SPY デバッガメインウィンドウ ............................................. 284 [逆アセンブリ]ウィンドウ ........................................................ 286 [シンボルの曖昧さの解決]ダイアログボックス .................... 290 [メモリ]ウィンドウ .................................................................... 291 [フィル]ダイアログボックス .................................................... 294 [メモリ保存]ダイアログボックス ............................................ 295 [メモリ復元]ダイアログボックス ............................................ 296 [シンボルメモリ]ウィンドウ .................................................... 297 [レジスタ]ウィンドウ ................................................................ 299 [ウォッチ]ウィンドウ ................................................................ 299 [ロケール]ウィンドウ ................................................................ 301 [静的]ウィンドウ ........................................................................ 302 [自動]ウィンドウ ........................................................................ 303 [ライブウォッチ]ウィンドウ .................................................... 304 [クイック ウォッチ]ウィンドウ ............................................... 305 [静的]ダイアログボックスの選択 ............................................ 306 [呼出 しスタック]ウィンドウ ................................................... 306 IAR Embedded Workbench IDE xvi ユーザガイド UEW-9 目次 [ターミナル I/O]ウィンドウ ..................................................... 308 [アサートの報告]ダイアログボックス .................................... 309 [コードカバレッジ]ウィンドウ ................................................ 310 [プロファイリング]ウィンドウ ................................................ 312 [イメージ]ウィンドウ ................................................................ 314 [スタック]ウィンドウ ................................................................ 316 [シンボル]ウィンドウ ................................................................ 319 C-SPY メニュー ...................................................................................... 320 [デバッグ]メニュー .................................................................... 320 一般オプション ............................................................................................ 327 ターゲット ................................................................................................ 327 出力 ............................................................................................................. 327 ライブラリ構成 ....................................................................................... 329 ライブラリオプション .......................................................................... 330 スタック / ヒープ .................................................................................... 331 MISRA-C .................................................................................................. 331 コンパイラオプション ............................................................................ 333 複数ファイルのコンパイル ................................................................. 333 言語 ............................................................................................................. 334 コード ......................................................................................................... 338 最適化 ......................................................................................................... 338 最適化 .............................................................................................. 338 出力 ............................................................................................................. 340 リスト ......................................................................................................... 341 リストファイルの出力 .................................................................. 342 アセンブラ出力ファイル .............................................................. 342 プリプロセッサ ....................................................................................... 342 診断 ............................................................................................................. 344 MISRA-C .................................................................................................. 346 追加オプション ....................................................................................... 346 コマンドラインオプションの使用 .............................................. 346 xvii UEW-9 アセンブラオプション ............................................................................ 347 言語 ............................................................................................................. 347 出力 ............................................................................................................. 349 デバッグ情報の生成 ...................................................................... 349 リスト ......................................................................................................... 349 プリプロセッサ ....................................................................................... 350 診断 ............................................................................................................. 351 追加オプション ....................................................................................... 352 コマンドラインオプションの使用 .............................................. 352 コンバータオプション ............................................................................ 353 出力 ............................................................................................................. 353 プログラム可能な出力フォーマット .......................................... 353 出力ファイル ................................................................................. 354 カスタムビルドオプション ................................................................. 355 カスタムツール構成 .............................................................................. 355 ビルドアクションオプション ............................................................ 357 [ビルドアクションの構成]................................................................. 357 プリビルドコマンドライン .......................................................... 357 プリビルドコマンドライン .......................................................... 358 XLINK リンカのオプション ................................................................. 359 設定 ............................................................................................................. 359 出力 ............................................................................................................. 361 出力ファイル ................................................................................. 362 フォーマット .................................................................................. 362 追加出力 ..................................................................................................... 364 リスト ......................................................................................................... 366 リンカリストの生成 ...................................................................... 366 #define ....................................................................................................... 368 シンボル定義 .................................................................................. 368 IAR Embedded Workbench IDE xviii ユーザガイド UEW-9 目次 診断 ............................................................................................................. 369 チェックサム ............................................................................................ 371 未使用コードメモリをフィルする .............................................. 371 追加オプション ....................................................................................... 373 コマンドラインオプションの使用 .............................................. 373 ILINK リンカのオプション ................................................................... 375 設定 ............................................................................................................. 375 ライブラリ ................................................................................................ 376 自動ランタイムライブラリ選択 .................................................. 376 C-SPY デバッグサポートを含める .............................................. 376 バッファした書込み ...................................................................... 377 追加ライブラリ .............................................................................. 377 フォルトプログラムエントリのオーバライド .......................... 377 入力 ............................................................................................................. 378 シンボルをキープ .......................................................................... 378 未処理バイナリイメージ .............................................................. 378 出力 ............................................................................................................. 379 出力ファイル ................................................................................. 379 出力ファイルにデバッグ情報を含める ...................................... 379 リスト ......................................................................................................... 380 リンカマップファイルの表示 ...................................................... 380 ログファイルの生成 ...................................................................... 380 #define ....................................................................................................... 381 シンボル定義 .................................................................................. 381 診断 ............................................................................................................. 381 チェックサム ............................................................................................ 384 未使用コードメモリをフィルする .............................................. 384 追加オプション ....................................................................................... 386 コマンドラインオプションの使用 .............................................. 386 xix UEW-9 ライブラリビルダオプション ............................................................ 387 出力 ............................................................................................................. 387 デバッガオプション ................................................................................. 389 設定 ............................................................................................................. 389 ダウンロード ............................................................................................ 390 追加オプション ....................................................................................... 391 コマンドラインオプションの使用 .............................................. 391 イメージ ..................................................................................................... 391 追加イメージを使用する .............................................................. 392 プラグイン ................................................................................................ 392 C-SPY コマンドラインユーティリティ — cspybat ............... 393 C-SPY をバッチモードで使用 ........................................................... 393 C-SPY コマンドラインオプション .................................................. 395 cspybat の一般オプション ............................................................. 395 すべての C-SPY ドライバで使用可能なオプション ................. 395 シミュレータドライバで使用可能なオプション ...................... 396 C-SPY ハードウェアドライバで使用可能なオプション .......... 396 C-SPY コマンドラインオプションの詳細 ..................................... 396 C-SPY マクロリファレンス .................................................................. 403 マクロ言語 ................................................................................................ 403 セットアップマクロ関数のまとめ .................................................... 408 C-SPY システムマクロのまとめ ....................................................... 409 C-SPY システムマクロの説明 ........................................................... 411 用語集 .................................................................................................................. 435 索引 IAR Embedded Workbench IDE xx ユーザガイド UEW-9 ....................................................................................................................... 453 表 1: XLINK と ILINK のファイル名拡張子 ....................................................... xxxiv 2: このガイドの表記規則 ........................................................................................ xl 3: このガイドで使用されている命名規約 ............................................................ xl 4: CPUNAME ディレクトリ ................................................................................ xliii 5: common ディレクトリ ....................................................................................... xlv 6: ファイルタイプ ................................................................................................. xlvi 7: project2 のコンパイラオプション ..................................................................... 30 8: [割込]ダイアログボックス ........................................................................... 44 9: [ブレークポイント]ダイアログボックス ................................................... 46 10: ライブラリプロジェクトの一般オプション ................................................. 51 11: コマンドシェル ................................................................................................. 61 12: iarbuild.exe コマンドラインオプション ......................................................... 79 13: C-SPY アセンブラシンボル式 ...................................................................... 118 14: ハードウェアレジスタとアセンブララベルの名前が衝突する 場合の処理 .............................................................................................................. 118 15: プロファイリングを有効にするためのプロジェクトオプション ........... 150 16: コードカバレッジを有効にするためのプロジェクトオプション ........... 152 17: [シミュレータ]メニューコマンドの説明 ............................................... 158 18: [メモリアクセス設定]ダイアログボックスの機能ボタン ................... 161 19: [トレース]ツールバーのボタン ............................................................. 167 20: [トレース]ウィンドウの列 ..................................................................... 168 21: [トレース式]ウィンドウのツールバーのボタン ................................... 170 22: [トレース式]ウィンドウの列 ................................................................... 170 23: データブレークポイントのメモリアクセスタイプ ................................... 173 24: データブレークポイント条件 ..................................................................... 174 25: イミディエイトブレークポイントのメモリアクセスタイプ ................... 176 26: 割込みステータス ........................................................................................... 181 27: 強制的に生成された割込みの属性 ............................................................... 187 28: [割込みログ]ウィンドウの説明 ............................................................... 189 29: タイマ割込み設定 ........................................................................................... 190 30: IDE メニューバー ........................................................................................... 196 xxi UEW-9 31: [ワークスペース]ウィンドウのコンテキストメニューコマンド ..... 201 32: ソースコード管理コマンドの説明 ............................................................... 203 33: ソースコード管理状態の説明 ....................................................................... 204 34: エディタウィンドウタブでのコンテキストメニューに 表示されるコマンド ............................................................................................ 210 35: エディタウィンドウのコンテキストメニューのコマンドの詳細 ......... 211 36: エディタで挿入ポイントを移動するキーボードコマンド ....................... 213 37: エディタでのスクロール用キーボードコマンド ....................................... 214 38: エディタでのテキスト選択用キーボードコマンド ................................. 214 39: [ソースブラウザ]ウィンドウの列 ........................................................... 215 40: [ソースブラウザ]ウィンドウの情報 ..................................................... 216 41: [ソースブラウザ]ウィンドウのコンテキストメニューの コマンド ................................................................................................................ 217 42: [ブレークポイント]ウィンドウのコンテキストメニューの コマンド ................................................................................................................ 219 43: ブレークポイントの条件 ............................................................................. 221 44: ログブレークポイントの条件 ..................................................................... 222 45: 位置の種類 ....................................................................................................... 223 46: [ファイル]メニューのコマンド ............................................................... 229 47: [編集]メニューのコマンド ....................................................................... 231 48: [検索]ダイアログボックスのオプション ............................................... 234 49: [置換]ダイアログボックスのオプション ............................................... 235 50: [インクリメンタル検索]機能ボタン ....................................................... 238 51: [表示]メニューのコマンド ....................................................................... 240 52: [プロジェクト]メニューのコマンド ....................................................... 242 53: 引数変数 ........................................................................................................... 246 54: [プロジェクトの構成]ダイアログボックスのオプション ................... 248 55: [新規構成]ダイアログボックスのオプション ....................................... 248 56: [新規プロジェクトの作成]ダイアログボックスの説明 ....................... 250 57: プロジェクトオプションのカテゴリ ........................................................... 250 58: [バッチビルド]ダイアログボックスの詳細 ........................................... 252 59: [バッチビルドの編集]ダイアログボックスの詳細 ............................... 252 60: [ツール]メニューのコマンド ................................................................... 253 61: [プロジェクト IDE]オプション ............................................................... 267 IAR Embedded Workbench IDE xxii ユーザガイド UEW-9 表 62: [レジスタフィルタ]のオプション ........................................................... 273 63: [ツールの設定]ダイアログボックスのオプション ............................... 276 64: コマンドシェル ............................................................................................... 277 65: [ウィンドウ]メニューのコマンド ........................................................... 281 66: C-SPY ウィンドウでの編集 .......................................................................... 284 67: [逆アセンブリ]ウィンドウツールバー ................................................. 286 68: [逆アセンブリ]ウィンドウのコンテキストメニューのコマンド ..... 288 69: [メモリ]ウィンドウでの操作 ................................................................. 291 70: [メモリ]ウィンドウのコンテキストメニューのコマンド ................. 293 71: [フィル]ダイアログボックスのオプション ........................................... 295 72: メモリ操作 ....................................................................................................... 295 73: [シンボルメモリ]ウィンドウツールバー ............................................. 297 74: [シンボルメモリ]ウィンドウの列 ........................................................... 298 75: [シンボルメモリ]ウィンドウのコンテキストメニューの コマンド ................................................................................................................ 298 76: [ウォッチ]ウィンドウのコンテキストメニューのコマンド ............... 300 77: 式の種類による表示フォーマット設定の影響 ......................................... 301 78: [シンボルメモリ]ウィンドウの列 ......................................................... 302 79: [静的]ウィンドウのコンテキストメニューのコマンド ..................... 303 80: [コードカバレッジ]ウィンドウのツールバー ..................................... 311 81: [コードカバレッジ]ウィンドウのコンテキストメニューの コマンド ................................................................................................................ 312 82: [プロファイリング]ウィンドウの列 ....................................................... 314 83: [イメージ]ウィンドウの列 ....................................................................... 315 84: [イメージ]ウィンドウのコンテキストメニューのコマンド ............. 315 85: [スタック]ウィンドウの列 ..................................................................... 317 86: [シンボル]ウィンドウの列 ....................................................................... 319 87: [シンボル]ウィンドウのコンテキストメニューのコマンド ............... 320 88: [デバッグ]メニューのコマンド ............................................................... 320 89: ログファイルのオプション ........................................................................... 324 90: XLINK のリストファイルオプション ......................................................... 366 91: XLINK のリストファイルフォーマットオプション ................................. 367 92: XLINK の範囲チェックオプション ............................................................. 370 93: リンカのチェックサムアルゴリズム ........................................................... 372 xxiii UEW-9 94: リンカのチェックサムアルゴリズム ........................................................... 385 95: cspybat のパラメータ ...................................................................................... 393 96: C-SPY マクロ変数の例 .................................................................................. 404 97: C-SPY セットアップマクロ .......................................................................... 408 98: システムマクロのまとめ ............................................................................... 409 99: __cancelInterrupt のリターン値 ..................................................................... 411 100: __disableInterrupts のリターン値 ................................................................. 412 101: __driverType のリターン値 .......................................................................... 413 102: __enableInterrupts のリターン値 ................................................................. 413 103: __evaluate リターン値 .................................................................................. 414 104: __isBatchMode のリターン値 ...................................................................... 414 105: __loadModule のリターン値 ........................................................................ 415 106: __openFile のリターン値 ............................................................................. 417 107: __readFile リターン値 .................................................................................. 419 108: __setCodeBreak のリターン値 ..................................................................... 423 109: __setDataBreak のリターン値 ...................................................................... 424 110: __setLogBreak のリターン値 ....................................................................... 425 111: __setSimBreak のリターン値 ....................................................................... 426 112: __setTraceStartBreak のリターン値 ............................................................. 427 113: __setTraceStopBreak のリターン値 ............................................................. 428 114: __sourcePosition リターン値 ........................................................................ 429 IAR Embedded Workbench IDE xxiv ユーザガイド UEW-9 図 1: [新規プロジェクトの作成]ダイアログボックス ......................................... 8 2: [ワークスペース]ウィンドウ ......................................................................... 9 3: ワークスペースを保存 ....................................................................................... 10 4: project1 へのファイルの追加 ............................................................................. 11 5: コンパイラオプションの設定 ........................................................................... 12 6: コンパイルメッセージ ....................................................................................... 13 7: コンパイル後の[ワークスペース]ウィンドウ ........................................... 14 8: [更新ファイルをスキャン]オプションの設定 ........................................... 15 9: C-SPY デバッガメインウィンドウ .................................................................. 20 10: C-SPY のステップイン .................................................................................... 21 11: C-SPY で[ステップイン]を使用 ................................................................ 22 12: [自動]ウィンドウでの変数の検証 ............................................................. 23 13: [ウォッチ]ウィンドウでの変数のモニタ ................................................. 24 14: ブレークポイントの設定 ................................................................................. 25 15: [レジスタ]ウィンドウ ................................................................................. 26 16: I/O 操作からの出力 .......................................................................................... 27 17: C-SPY でプログラムの最後まで実行 ............................................................ 28 18: CPPTutor.cpp へのブレークポイントの設定 ................................................. 35 19: ブレークポイントへのスキップ数の設定 ..................................................... 36 20: 関数呼出しの検証 ............................................................................................. 37 21: フィボナッチ数列の出力 ................................................................................. 37 22: セットアップマクロファイルの指定 ............................................................. 43 23: 割込み設定の検証 ............................................................................................. 45 24: [ターミナル I/O]ウィンドウへのフィボナッチ数列の出力 .................. 47 25: [IAR Embedded Workbench IDE] ウィンドウ ................................................. 56 26: [ツールの設定]ダイアログボックス ......................................................... 60 27: カスタマイズした[ツール]メニュー ......................................................... 60 28: ワークスペースとプロジェクトの例 ............................................................. 65 29: [ワークスペース]ウィンドウでプロジェクトを表示 ............................. 69 30: [ワークスペース]ウィンドウの概要 ......................................................... 70 31: 一般オプション ................................................................................................. 76 xxv UEW-9 32: エディタウィンドウ ......................................................................................... 84 33: エディタウィンドウの括弧の対応 ................................................................. 87 34: エディタウィンドウのステータスバー ......................................................... 88 35: エディタウィンドウのコードテンプレートメニュー ................................. 89 36: 外部コマンドラインエディタの指定 ............................................................. 92 37: 外部エディタの DDE 設定 ............................................................................... 93 38: C-SPY とターゲットシステム ...................................................................... 100 39: [別のファイルを取得]ダイアログボックス ........................................... 106 40: C-SPY で強調表示されるソース位置 .......................................................... 112 41: [ウォッチ]ウィンドウでのアセンブラ変数の表示 ............................... 123 42: ブレークポイントアイコン ........................................................................... 126 43: コンテキストメニューからのブレークポイントの設定 ........................... 129 44: [ブレークポイントの使用]ダイアログボックス ................................... 132 45: [スタック]ウィンドウ ............................................................................... 136 46: [レジスタ]ウィンドウ ............................................................................... 137 47: [レジスタフィルタ]ページ ....................................................................... 139 48: [マクロ設定]ダイアログボックス ........................................................... 145 49: [クイックウォッチ]ウィンドウ ............................................................... 147 50: [プロファイリング]ウィンドウ ............................................................... 150 51: [プロファイリング]ウィンドウのグラフ ............................................... 151 52: [関数詳細]ウィンドウ ............................................................................... 151 53: [コードカバレッジ]ウィンドウ ............................................................... 152 54: [シミュレータ]メニュー ........................................................................... 158 55: [メモリアクセス設定]ダイアログボックス ........................................... 160 56: [メモリアクセスの編集]ダイアログボックス ....................................... 162 57: [トレース開始]ブレークポイントダイアログボックス ....................... 165 58: [トレース停止]ブレークポイントダイアログボックス ....................... 166 59: [トレース]ウィンドウ ............................................................................... 167 60: [関数トレース]ウィンドウ ....................................................................... 169 61: [トレース式]ウィンドウ ........................................................................... 169 62: [トレースを検索]ウィンドウ ................................................................... 170 63: [トレースを検索]ダイアログボックス ................................................... 171 64: [データブレークポイント]ダイアログボックス ................................... 173 65: [イミディエイト]ブレークポイントページ ........................................... 176 IAR Embedded Workbench IDE xxvi ユーザガイド UEW-9 図 66: [ブレークポイントの使用]ダイアログボックス ................................... 177 67: 擬似割込みの構成 ........................................................................................... 180 68: シミュレーション状態 - 例 1 ........................................................................ 181 69: シミュレーション状態 - 例 2 ........................................................................ 182 70: [割込み設定]ダイアログボックス ........................................................... 183 71: [割込みの編集]ダイアログボックス ....................................................... 185 72: [強制割込み]ウィンドウ ........................................................................... 186 73: [割込みログ]ウィンドウ ........................................................................... 188 74: [IAR Embedded Workbench IDE] ウィンドウ ............................................... 196 75: IDE ツールバー ............................................................................................... 197 76: [IAR Embedded Workbench IDE] ウィンドウのステータスバー ............... 198 77: [ワークスペース]ウィンドウ ................................................................... 198 78: [ワークスペース]ウィンドウのコンテキストメニュー ....................... 201 79: [ソースコード管理プロバイダの選択]ダイアログボックス ............... 202 80: [ソースコード管理]メニュー ................................................................... 203 81: [ソースコード管理プロバイダの選択]ダイアログボックス ............... 205 82: ファイルのチェックインダイアログボックス ........................................... 206 83: ファイルのチェックアウトダイアログボックス ....................................... 207 84: エディタウィンドウ ....................................................................................... 208 85: [関数に移動]ウィンドウ ........................................................................... 209 86: エディタウィンドウタブのコンテキストメニュー ................................... 209 87: エディタウィンドウのコンテキストメニュー ................................................. 210 88: [ソースブラウザ]ウィンドウ ................................................................... 215 89: [ソースブラウザ]ウィンドウのコンテキストメニュー ....................... 217 90: [ブレークポイント]ウィンドウ ............................................................... 218 91: [ブレークポイント]ウィンドウのコンテキストメニュー ................... 218 92: [コード]ブレークポイントページ ........................................................... 220 93: [ログ]ブレークポイントページ ............................................................... 221 94: [位置入力]ダイアログボックス ............................................................... 223 95: [ソースの曖昧さの解決]ダイアログボックス ....................................... 224 96: [ビルド]ウィンドウ(メッセージウィンドウ)..................................... 225 97: [ビルド]ウィンドウのコンテキストメニュー ....................................... 225 98: [ファイルから検索]ウィンドウ(メッセージウィンドウ)................. 226 99: [ファイルで検索]ウィンドウのコンテキストメニュー ....................... 226 xxvii UEW-9 100: [ツール出力]ウィンドウ(メッセージウィンドウ)........................... 227 101: [ツール出力]ウィンドウのコンテキストメニュー ............................. 227 102: [デバッグログ]ウィンドウ(メッセージウィンドウ)....................... 227 103: [デバッグログ]ウィンドウのコンテキストメニュー ......................... 228 104: [ファイル]メニュー ................................................................................. 229 105: [編集]メニュー ......................................................................................... 231 106: [ファイルで検索]ダイアログボックス ................................................. 236 107: [インクリメンタル検索]ダイアログボックス ..................................... 238 108: [テンプレート]ダイアログボックス ..................................................... 239 109: [表示]メニュー ......................................................................................... 240 110: [プロジェクト]メニュー ................................................................................... 242 111: [メモリ消去]ダイアログボックス ......................................................... 246 112: [プロジェクトの構成]ダイアログボックス ......................................... 247 113: [新規プロジェクトの作成]ダイアログボックス ................................. 248 114: [新規プロジェクトの作成]ダイアログボックス ................................. 249 115: [バッチビルド]ダイアログボックス ..................................................... 251 116: [バッチビルドの編集]ダイアログボックス ......................................... 252 117: [ツール]メニュー ..................................................................................... 253 118: [共通フォント]オプション ..................................................................... 254 119: [キーバインディング]オプション ......................................................... 255 120: [言語]オプション ..................................................................................... 256 121: [エディタ]オプション ............................................................................. 257 122: [自動インデントの設定]ダイアログボックス ..................................... 260 123: [外部エディタ]のオプション ................................................................. 261 124: [エディタセットアップファイル]オプション ..................................... 263 125: [エディタ色とフォント]オプション ............................................................ 264 126: [メッセージ]オプション ......................................................................... 265 127: [このダイアログは表示しない]オプションを含む [メッセージ]ダイアログボックス .................................................................... 266 128: [プロジェクト]オプション ..................................................................... 267 129: [ソースコード管理]オプション ............................................................. 268 130: [デバッガ]オプション ............................................................................. 269 131: [スタック]オプション ............................................................................. 271 132: [レジスタフィルタ]のオプション ......................................................... 273 IAR Embedded Workbench IDE xxviii ユーザガイド UEW-9 図 133: [ターミナル I/O]オプション .................................................................. 274 134: [ツールの設定]ダイアログボックス ..................................................... 276 135: カスタマイズした[ツール]メニュー ..................................................... 277 136: [ファイル名の拡張子]ダイアログボックス ......................................... 278 137: [ファイル名拡張子のオーバライド]ダイアログボックス ................. 279 138: [ファイル名拡張子の編集]ダイアログボックス ................................. 279 139: [ビューアの構成]ダイアログボックス ................................................. 280 140: [ビューア拡張子の編集]ダイアログボックス ..................................... 280 141: [ウィンドウ]メニュー ............................................................................. 281 142: C-SPY のデバッグツールバー .................................................................... 285 143: C-SPY の[逆アセンブリ]ウィンドウ .................................................... 286 144: [逆アセンブリ]ウィンドウのコンテキストメニュー ......................... 287 145: [シンボルの曖昧さの解決]ダイアログボックス ................................. 290 146: [メモリ]ウィンドウ ................................................................................. 291 147: [メモリ]ウィンドウのコンテキストメニュー ..................................... 293 148: [フィル]ダイアログボックス ................................................................. 294 149: [メモリ保存]ダイアログボックス ......................................................... 295 150: [メモリ復元]ダイアログボックス ......................................................... 296 151: [シンボルメモリ]ウィンドウ ................................................................. 297 152: [シンボルメモリ]ウィンドウのコンテキストメニュー ..................... 298 153: [レジスタ]ウィンドウ ............................................................................. 299 154: [ウォッチ]ウィンドウ ............................................................................. 300 155: [ウォッチ]ウィンドウのコンテキストメニュー ................................. 300 156: [ロケール]ウィンドウ ............................................................................. 301 157: [静的]ウィンドウ ..................................................................................... 302 158: [静的]ウィンドウのコンテキストメニュー ......................................... 303 159: [自動]ウィンドウ ..................................................................................... 303 160: [ライブウォッチ]ウィンドウ ................................................................. 304 161: [クイックウォッチ]ウィンドウ ............................................................. 305 162: [静的変数の選択]ダイアログボックス ................................................. 306 163: [呼出しスタック]ウィンドウ ................................................................. 307 164: [呼出しスタック]ウィンドウのコンテキストメニュー ..................... 307 165: [ターミナル I/O]ウィンドウ .................................................................. 308 166: [制御コード]メニュー ............................................................................. 308 xxix UEW-9 167: [入力モード]ダイアログボックス ......................................................... 309 168: [アサートの報告]ダイアログボックス ................................................. 309 169: [コードカバレッジ]ウィンドウ ............................................................. 310 170: [コードカバレッジ]のコンテキストメニュー ..................................... 312 171: [プロファイリング]ウィンドウ ............................................................. 313 172: [プロファイリング]ウィンドウのコンテキストメニュー ................. 313 173: [イメージ]ウィンドウ ............................................................................. 314 174: [イメージ]ウィンドウのコンテキストメニュー ................................. 315 175: [スタック]ウィンドウ ............................................................................. 316 176: [スタック]ウィンドウのコンテキストメニュー ................................. 318 177: [シンボル]ウィンドウ ............................................................................. 319 178: [シンボル]ウィンドウのコンテキストメニュー ................................. 319 179: [デバッグ]メニュー ................................................................................. 320 180: [自動ステップの設定]ダイアログボックス ......................................... 322 181: [マクロ設定]ダイアログボックス ......................................................... 323 182: [ログファイル]ダイアログボックス ..................................................... 324 183: [ターミナル I/O ログファイル]ダイアログボックス ......................... 325 184: [出力]オプション ..................................................................................... 327 185: ライブラリ設定オプション ......................................................................... 329 186: [ライブラリオプション]ページ ............................................................. 330 187: 複数ファイルのコンパイル ......................................................................... 333 188: コンパイラの言語オプション ..................................................................... 334 189: コンパイラ最適化オプション ..................................................................... 338 190: コンパイラの出力オプション ..................................................................... 340 191: コンパイラのリストファイルオプション ................................................. 341 192: コンパイラのプリプロセッサオプション ................................................. 342 193: コンパイラの診断オプション ..................................................................... 344 194: コンパイラ用の[追加オプション]ページ ............................................. 346 195: アセンブラの言語オプション ..................................................................... 347 196: マクロの引用符の選択 ................................................................................. 348 197: アセンブラの出力オプション ..................................................................... 349 198: アセンブラのプリプロセッサオプション ................................................. 350 199: アセンブラ用の[追加オプション]ページ ............................................. 352 200: コンバータ出力ファイルオプション ......................................................... 353 IAR Embedded Workbench IDE xxx ユーザガイド UEW-9 図 201: カスタムツールオプション ......................................................................... 355 202: ビルドアクションオプション ..................................................................... 357 203: リンカ設定オプション ............................................................................................ 359 204: XLINK の出力ファイルのオプション ....................................................... 361 205: XLINK の追加出力ファイルのオプション ............................................... 365 206: リンカリストファイルオプション ............................................................. 366 207: リンカのシンボル定義オプション ............................................................. 368 208: リンカ診断オプション ................................................................................. 369 209: リンカのチェックサムおよびフィルオプション ..................................... 371 210: リンカ用の[追加オプション]ページ ..................................................... 373 211: リンカ設定オプション ................................................................................. 375 212: [ライブラリの使用]ページ ..................................................................... 376 213: ILINK 入力ファイルオプション ................................................................. 378 214: ILINK 出力ファイルオプション ................................................................. 379 215: リンカ診断オプション ................................................................................. 380 216: リンカのシンボル定義オプション ............................................................. 381 217: リンカ診断オプション ................................................................................. 382 218: リンカのチェックサムおよびフィルオプション ..................................... 384 219: リンカ用の[追加オプション]ページ ..................................................... 386 220: ライブラリビルダの出力オプション ......................................................... 388 221: 一般的な C-SPY オプション ....................................................................... 389 222: C-SPY 用の[追加オプション]ページ .................................................... 391 223: C-SPY の[イメージ]ページ .................................................................... 391 224: C-SPY プラグインオプション .................................................................... 392 xxxi UEW-9 IAR Embedded Workbench IDE xxxii ユーザガイド UEW-9 はじめに IAR Embedded Workbench IDE ユーザガイドへようこそ。本ガイドは、内 蔵の Windows 用開発ツールを使用して用 IAR Embedded Workbench の 機能を十分に活用していただけるよう支援することを目的としていま す。IAR Embedded Workbench IDE は、完全な組込みアプリケーション プロジェクトの開発および管理が可能な、非常に強力な統合開発環境 です。 本ガイドでは、編集やプロジェクト管理、ビルド、デバッグの手順に ついて説明します。また、使用を開始するにあたって役に立つリファ レンス情報やチュートリアルも含まれています。 本ガイドの対象者 本ガイドは、IDE で利用可能なすべての機能およびツールを活用する場合に 利用してください。また、以下について十分な知識があるユーザを対象とし ています。 ● C/C++ プログラミング言語 ● 組込みシステム用アプリケーションの開発 ● プロセッサのアーキテクチャ、命令セット(チップメーカのドキュメント を参照) ● ホストコンピュータのオペレーティングシステム IDE に統合されている他の開発ツールの詳細は、それぞれのドキュメントを 参照(xxxviii ページのその他のドキュメントを参照)してください。 このガイドの使用方法 この製品を初めて使用する場合は、まずガイド「IAR Embedded Workbench® の 使用開始の手順」で、IDE で利用可能なツールおよび機能の概要を確認する ことをお勧めします。 IAR Embedded Workbench の使用経験者で、IAR システムズの開発ツールの使 用方法を再確認する必要がある場合は、「1 ページのパート 1. チュートリア ル」から始めることをお勧めします。プロジェクト管理、ビルド、編集手順 については、53 ページのパート 2. プロジェクト管理とビルドで説明してい xxxiii UEW-9 このガイドの使用方法 ます。C-SPY を使用したデバッグの方法については、95 ページのパート 3. デバッグで説明しています。 十分な開発経験があり、本ガイドのリファレンス情報だけが必要な場合は、 「パート 5. リファレンス情報」のリファレンス情報および IAR Embedded Workbench IDE の[ヘルプ]メニューから使用できるオンラインヘルプを参照 してください。 最後に、IAR システムズのユーザガイドやリファレンスガイドでわからない 用語がある場合は、用語集を参照してください。 使用している製品に該当しない記述 本ガイドでは、汎用のコンポーネントである IDE と C-SPY デバッガについて 説明します。 ただし、記載されている一部の機能およびツールは、IAR Embedded Workbench 製品パッケージには該当しません。たとえば以下のようなものが あります。 ● 一部の製品パッケージは C++ をサポートしていません。 ● IAR Embedded Workbench には、IAR ILINK リンカまたは IAR XLINK リンカ が含まれています。 ● IAR Embedded Workbench には、IAR DLIB ライブラリと IAR CLIB ライブラ リの両方またはどちからか一方が含まれています。 ● すべての製品パッケージが、IAR フラッシュローダのメカニズムに基づい てフラッシュローダの呼出しをサポートしているわけではありません。 すべての製品パッケージに該当しない記述には、短い注意書きがついてい ます。 製品パッケージで使用されているコンポーネントのリストについては、イン フォメーションセンタを参照してください。 ファイル名の拡張子 IAR Embedded Workbench に IAR XLINK リンカまたは IAR ILINK リンカが付 属しているかどうかによって、異なるファイル名拡張子のセットが使用され ます。このガイドでは、例およびスクリーンショットにあるすべてのファイ ル名拡張子は、XLINK リンカを反映しています。次の表は、異なるファイル 名拡張子のセットを示します。 ファイルタイプ ターゲットアプリケーション 表 1: XLINK と ILINK のファイル名拡張子 IAR Embedded Workbench IDE xxxiv ユーザガイド UEW-9 XLINK のつく製品のファイ ILINK のつく製品のファイ ル名拡張子 * ル名拡張子 axx out はじめに ファイルタイプ XLINK のつく製品のファイ ILINK のつく製品のファイ ル名拡張子 * ル名拡張子 ターゲットアプリケーション(デ バッグ情報を含む) dxx out オブジェクトモジュール rxx o ライブラリモジュール rxx a アセンブラソースコード sxx / s s 表 1: XLINK と ILINK のファイル名拡張子 (続き) * xx は、製品パッケージを表す数字部分です。 ファイル名拡張子の詳細なリストについては、xlvi ページのファイルタイプを 参照してください。 セグメントとセクションの用語の比較 変数や関数などのオブジェクトは、XLINK リンカで使用される UBROF フォーマットで、セグメントによって示されます。ILINK リンカで使用され る ELF オブジェクトフォーマットでは、こうしたオブジェクトはセクション によって表されます。本ガイドでこれらの 2 つの用語が使用される場合は、 それぞれ XLINK と ILINK に関連しています。 このガイドの概要 本ガイドの構成および各章の概要を以下に示します。一部の章では、内容の 一部または全部が IAR Embedded Workbench IDE の特定のバージョンについて のみ該当するものがあります。 パート 1. チュートリアル チュートリアルでは、ツールの基本的な使用方法を確認するための実践ト レーニングを説明します。 ● 「アプリケーションプロジェクトの作成」では、新規プロジェクトの設定、 アプリケーションのコンパイル、リストファイルの確認、アプリケーショ ンのリンクを行います。このチュートリアルでは、一般的な開発サイクル を説明します。次の章では、デバッグについて説明しています。 ● IAR C-SPY デバッガを使用したデバッグ では、デバッガの基本機能につい て説明します。 ● 「C 言語とアセンブラモジュールの結合」では、C で記述したソースモ ジュールとアセンブラモジュールを簡単に統合する方法を説明します。ま た、コンパイラを使用して呼出し規約を調べる方法についても説明します。 xxxv UEW-9 このガイドの概要 ● 「C++ の使用」では、C++ のクラスを作成します。ここでは、2 つの独立し たオブジェクトを作成します。その後で、アプリケーションをビルドして デバッグします。この章の内容は、C++ をサポートする製品パッケージだ けに該当します。 ● 「割込みシミュレーション」では、割込みハンドラをプロジェクトに追加 する方法と、この割込みを C-SPY の割込みシミュレーション、ブレークポ イント、マクロを使用してシミュレーションする方法を説明します。 ● 「ライブラリの作成と利用」では、ライブラリモジュールの作成方法を説 明します。 パート 2. プロジェクト管理とビルド アプリケーションの編集、ビルドの手順について説明します。 ● 「開発環境」では、IAR Embedded Workbench 開発環境の概要を説明します。 また、必要に応じて環境をカスタマイズする機能についても説明します。 ● 「プロジェクト管理」では、ワークスペースを作成し、複数のオブジェク ト、ビルド構成、グループ、ソースファイル、オプションを指定して、 バージョンの異なるアプリケーションを管理する方法を説明します。 ● 「ビルド」では、アプリケーションのビルド手順について説明します。 ● 「編集」では、IAR Embedded Workbench エディタの詳細、使用方法、関連 機能について説明します。また、任意の外部エディタとの連携方法につい ても説明します。 パート 3. デバッグ ここでは、C-SPY の機能の概要および使用方法について説明します。 IAR Embedded Workbench IDE xxxvi ユーザガイド UEW-9 ● 「IAR C-SPY デバッガ」では、デバッグ全般について、および IAR C-SPY デ バッガについて説明します。また、デバッガ環境およびその設定、起動、 ターゲットハードウェアに合わせた設定の方法について説明します。 ● 「アプリケーションの実行」では、C-SPY の初期化方法、ソースモードと逆 アセンブリモードのデバッグの違い、アプリケーションの実行機能、ター ミナルの I/O の操作方法について説明します。 ● 「変数と式の扱い」では、C-SPY で使用する式や変数の構文、および変数の 制限について説明します。また、変数や式のモニタ方法についても説明し ます。 ● 「ブレークポイントの使用」では、ブレークポイントシステムとブレーク ポイントの定義方法について説明します。 ● 「メモリとレジスタのモニタ」では、メモリやレジスタの内容を調べる方 法について説明します。 はじめに ● 「C-SPY マクロシステムの使用」では、C-SPY のマクロシステムとその機 能、マクロの用途、マクロの使用方法について説明します。 ● 「アプリケーションの分析」では、アプリケーションを解析する機能につ いて説明します。 パート 4. IAR C-SPY シミュレータ ● 「シミュレータ固有のデバッグ」では、シミュレータ固有の機能について 説明します。 ● 「割込みシミュレーション」では、C-SPY の割込みシミュレーションシステ ムの詳細と、ターゲットハードウェアの割込みに応じて割込みシミュレー ションを設定する方法について説明します。 パート 5. リファレンス情報 ● 「IAR Embedded Workbench IDE リファレンス」は、グラフィカルユーザイン タフェースの詳細など、開発環境の詳細なリファレンス情報を収録してい ます。 ● 「C-SPY リファレンス」は、IAR C-SPY デバッガのグラフィカルユーザイン タフェースの詳細なリファレンス情報を収録しています。 ● 「一般オプション」は、ターゲット、出力、ライブラリ、MISRA C オプ ションについて説明します。 ● 「コンパイラオプション」では、言語、最適化、出力、リストファイル、 プリプロセッサ、診断、MISRA-C について説明します。 ● 「アセンブラオプション」では、言語、出力、リスト、プリプロセッサ、 診断用のアセンブラオプションについて説明します。 ● コンバータオプション では、ELF 形式からリンカ出力ファイルの変換に使 用できるオプションについて説明します。これらのオプションは、使用す る製品パッケージに IAR ILINK リンカが含まれる場合にのみ使用できます。 ● 「カスタムビルドオプション」では、ツールのカスタム設定用オプション について説明します。 ● 「ビルドアクションオプション」では、ビルド前とビルド後のアクション 用オプションについて説明します。 ● 「XLINK リンカのオプション」では、XLINK リンカを使用したリンクの設定 オプションについて説明します。 ● 「ILINK リンカのオプション」では、ILINK リンカを使用したリンクの設定 オプションについて説明します。 ● 「ライブラリビルダオプション」では、ライブラリをビルドするためのオ プションについて説明します。 xxxvii UEW-9 その他のドキュメント ● 「デバッガオプション」は、一般的な C-SPY オプションのリファレンスを収 録しています。 ● 「C-SPY コマンドラインユーティリティ — cspybat」では、バッチモードで のデバッガの使用方法について説明します。 ● 「C-SPY マクロリファレンス」は、C-SPY マクロについて、マクロ言語の構 文、使用可能なセットアップマクロ関数の要約、定義済みシステムマクロ などのリファレンス情報を収録しています。最後に、各システムマクロに ついて説明しています。 その他のドキュメント ユーザドキュメンテーションは、ハイパーテキスト PDF 形式、およびコンテ キスト依存の HTML 形式のオンラインヘルプシステムがあります。ドキュメ ンテーションには、インフォメーションセンタあるいは IAR Embedded Workbench IDE の[ヘルプ]メニューからアクセスできます。オンラインヘル プシステムは、F1 キーを押しても使用できます。 コンテキストメニューによるオンラインヘルプでは、IDE のメニューやダイ アログボックスについての説明が表示されます。また、DLIB ライブラリ関数 のキーワードのリファレンス情報も含まれます。関数のリファレンス情報を 確認するには、エディタウィンドウで関数名を選択し、F1 キーを押します。 CLIB ライブラリを使用しながらエディタウィンドウで関数名を選択して F1 を押すと、DLIB ライブラリのリファレンス情報を入手できます。 ユーザガイドおよびリファレンスガイド IAR システムズの各開発ツールについては、一連のガイドで説明しています。 知りたい情報に対応するドキュメントを以下に示します。 IAR Embedded Workbench IDE xxxvii ユーザガイド UEW-9 ● IAR Embedded Workbench および提供されるツールを使用するにあたって は、『IAR Embedded Workbench® の使用開始の手順』。 ● IAR システムズの製品のインストールおよび登録の要件と詳細については、 同梱されているクイックレファレンスのブックレットおよび『インストー ルとライセンス登録ガイド』をご覧ください。 ● IAR C/C++ コンパイラのプログラミングについては、製品パッケージに IAR XLINK リンカが含まれていれば『IAR C/C++ コンパイラリファレンス ガイド』、IAR ILINK リンカが含まれていれば『IAR C/C++ 開発ガイド、コ ンパイルおよびリンク』をそれぞれ参照してください。 ● IAR XLINK リンカ、IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン の使用方法については、『IAR リンカおよびライブラリツールリファレンス ガイド』を参照してください。このガイドは、使用する製品パッケージに IAR XLINK リンカが含まれる場合にのみ使用できます。 はじめに ● IAR アセンブラを使用したプログラミングについては、『IAR アセンブラリ ファレンスガイド』を参照してください。 ● IAR DLIB ライブラリの使用については、IDE のオンラインヘルプで利用で きる DLIB ライブラリリファレンス情報を参照してください。このドキュ メンテーションは、製品パッケージに DLIB ライブラリが含まれる場合に のみ使用できます。 ● IAR DLIB ライブラリの使用については、IDE のオンラインヘルプで利用で きる IAR C ライブラリリファレンスガイドを参照してください。このガイ ドは、製品パッケージに CLIB ライブラリが含まれる場合にのみ使用でき ます。 ● MISRA-C ガイドラインを使用して、安全性を最重要視したアプリケーショ ンを開発する方法については、『IAR Embedded Workbench® MISRA-C:2004 リファレンスガイド』または『IAR Embedded Workbench® MISRA-C:1998 リ ファレンスガイド』を参照してください。 注 : 製品のインストール内容によっては、他のドキュメントも提供される場 合があります。 WEB サイト 推奨 Web サイト ● チップメーカの Web サイトには、マイクロコントローラに関する情報と ニュースが記載されています。 ● IAR システムズの Web サイト (www.iar.com/jp) では、アプリケーションノー トおよびその他の製品情報を公開しています。 ● Embedded C++ Technical CommitteeのWebサイト(www.caravan.net/ec2plus)に は、Embedded C++ 規格についての情報が公開されています。 表記規則 本ガイドでプログラミング言語 C と記述されている場合、特に記述がない限り C++ も含まれます。 製品インストール先のディレクトリ(例 :cpuname\doc)の記述がある場合、 その場所までのフルパス(例 : c:\Program Files\IAR Systems\Embedded Workbench 5.n\cpuname\doc)を意味します。 xxxix UEW-9 表記規則 表記規則 このガイドでは、次の表記規則を使用します。 スタイル 用途 コンピュータ • ソースコードの例、ファイルパス。 • コマンドライン上のテキスト。 • 2 進数、16 進数、8 進数。 パラメータ パラメータとして使用される実際の値を表すプレースホルダ。た とえば、filename.h の場合、filename はファイルの名前を表 します。また、cpuname、configfile、libraryfile、製品 を示す他のラベル、ファイル名の拡張子 xx の数値部分にも使用 されます。 [オプション] コマンドのオプション部分 a|b|c コマンド内の選択可能な部分 {a|b|c} コマンドの必須部分に選択肢があることを示します。 太字 画面に表示されるメニュー名、メニューコマンド、ボタン、およ びダイアログボックス 斜体 • 本ガイドや他のガイドへのクロスリファレンスを示します。 • 強調 3 点リーダは、その前の項目を任意の回数繰り返せることを示し ます。 IAR Embedded Workbench IDE 固有の内容を示します。 コマンドラインインタフェース固有の内容を示します。 開発やプログラミングについてのヒントを示します。 ワーニングを示します。 表 2: このガイドの表記規則 命名規約 以下の命名規約は、このガイドに記述されている IAR システムズの製品およ びツールで使用されています。 ブランド名 一般名称 CPUNAME 用 IAR Embedded Workbench® IAR Embedded Workbench® CPUNAME 用 IAR Embedded Workbench® IDE IDE CPUNAME 用 IAR C-SPY® デバッガ C-SPY、デバッガ 表 3: このガイドで使用されている命名規約 IAR Embedded Workbench IDE xl ユーザガイド UEW-9 はじめに ブランド名 一般名称 IAR C-SPY® シミュレータ シミュレータ CPUNAME 用 IAR C/C++ コンパイラ コンパイラ CPUNAME 用 IAR アセンブラ アセンブラ IAR XLINK リンカ XLINK、リンカ IAR ILINK リンカ ILINK、リンカ IAR XAR ライブラリビルダ ライブラリビルダ IAR XLIB ライブラリアン ライブラリアン IAR DLIB ライブラリ DLIB ライブラリ IAR CLIB ライブラリ CLIB ライブラリ 表 3: このガイドで使用されている命名規約(続き) ご使用になる製品パッケージでこれらの製品およびツールのすべてが利用で きるとは限りません。 xli UEW-9 表記規則 IAR Embedded Workbench IDE xlii ユーザガイド UEW-9 インストールファイル この章では、インストール時に作成されるディレクトリおよび使用さ れるファイルタイプについて説明します。 ディレクトリ構成 インストール手順を実行すると、IAR システムズの開発ツールで使用される 各種ファイルを含む複数のディレクトリが作成されます。以下では、各ディ レクトリにデフォルトで含まれるファイルについて説明します。 ルートディレクトリ デフォルトのインストール手順で作成されるルートディレクトリは、 x:\Program Files\IAR Systems\Embedded Workbench 6.n\ です。ここで、 x は Microsoft Windows がインストールされているドライブ、6.n は IDE の バージョンを示します。 ルートディレクトリには、common サブディレクトリと、使用するプロセッサ に応じた名前のサブディレクトリの 2 つのサブディレクトリがあります。後 者のディレクトリを、以降 cpuname と呼びます。 CPUNAME ディレクトリ cpuname ディレクトリには、製品固有のサブディレクトリがすべて含まれて います。 ディレクトリ 説明 cpuname\bin cpuname\bin サブディレクトリには、コンパイラ、アセンブラ、 リンカ、ライブラリツール、C-SPY® ドライバなどの、ターゲット 固有のコンポーネント用に実行可能ファイルが含まれています。 表 4: CPUNAME ディレクトリ パート 1 製品概要 UEW-9 xliii ディレクトリ構成 ディレクトリ 説明 cpuname\config cpuname\config サブディレクトリには、開発環境やプロジェ クトの設定に使用する以下のようなファイルが含まれています。 • 潟塔 J 構成ファイル(XLINK の場合は *.xcl) ( for ILINK の場 合は *.icf) • 特殊機能レジスタの記述ファイル (*.sfr) • C-SPY デバイス記述ファイル (*.ddf) • デバイス選択ファイル (*.ixx, *.menu) • さまざまなデバイス用のフラッシュローダアプリケーション (*.dxx)。製品のバージョンによって異なります。 • 構文カラー表示用設定ファイル (*.cfg) • アプリケーション / ライブラリプロジェクト用のプロジェクトテ ンプレート (*.ewp)、ライブラリプロジェクト用のライブラリ設 定ファイル cpuname\doc cpuname\doc サブディレクトリには、ツールの最新更新情報を 記載したリリースノートが含まれています。これらのファイルす べての内容を確認することをお勧めします。また、本ユーザガイ ド、リファレンスガイドのオンライン版(ハイパーテキスト PDF フォーマット)、オンラインヘルプファイル (*.chm) も含まれて います。また、このディレクトリには、IAR リンカおよびライブ ラリツールリファレンスガイドのオンラインバージョンが PDF フォーマットで含まれています(XLINK リンカの場合のみ) 。 cpuname\drivers cpuname\drivers サブディレクトリには、C-SPY ドライバで必 要な低レベルのデバイスドライバ(特に USB ドライブ)が格納さ れています。 cpuname\examples cpuname\examples サブディレクトリには、サンプルプロジェ クトに関連するファイルが含まれており、[インフォメーション センタ]ダイアログボックスから開くことができます。 cpuname\inc cpuname\inc サブディレクトリには、標準 C/C++ ライブラリの ヘッダファイルなどのファイルが含まれています。また、特殊機 能レジスタ (SFR) を定義するヘッダファイルも含まれています。 これらのファイルは、コンパイラとアセンブラの両方で使用され ます。 cpuname\lib cpuname\lib サブディレクトリには、コンパイラが使用するビ ルド済みライブラリおよび対応するライブラリ設定ファイルが含 まれています。 cpuname\plugins cpuname\plugins サブディレクトリには、プラグインモジュー ルとしてロード可能なコンポーネント用の実行可能ファイルおよ び説明ファイルが含まれています。 表 4: CPUNAME ディレクトリ(続き) IAR Embedded Workbench IDE xliv ユーザガイド UEW-9 インストールファイル ディレクトリ 説明 cpuname\powerpac cpuname\powerpac サブディレクトリには、アドオン製品の IAR PowerPac に関連するファイルが格納されています。このディ レクトリは、IAR PowerPac をインストールしている場合だけ使用 できます。 cpuname\src cpuname\src サブディレクトリには、設定可能なライブラリ関 数のソースファイルが含まれています。また、このディレクトリ には、ライブラリソースコードおよび ELF ユーティリティのソー スコード(後者は ILINK リンカの場合のみ)も含まれています。 使用する製品パッケージに XLINK リンカが含まれる場合、この ディレクトリには、IAR XLINK リンカの出力フォーマット SIMPLE のサンプルリーダーなど、すべての IAR Embedded Workbench 製品に共通のコンポーネントのソースファイルも含ま れます。 cpuname\tutor cpuname\tutor サブディレクトリには、本ガイドのチュートリ アルで使用されるファイルが含まれています。 表 4: CPUNAME ディレクトリ(続き) COMMON ディレクトリ common ディレクトリには、すべての IAR Embedded Workbench 製品で共有する コンポーネント用のサブディレクトリが含まれています。 ディレクトリ 説明 common\bin common\bin サブディレクトリには、エディタ、グラフィカル ユーザインタフェースコンポーネントなど、すべての IAR Embedded Workbench 製品に共通のコンポーネント用実行可能 ファイルが含まれています。IDE 用の実行可能ファイルもここに 含まれています。 common\config common\config サブディレクトリには、IDE で開発環境の設定に 使用されるファイルが含まれています。 common\doc common\doc サブディレクトリには、すべての IAR Embedded Workbench 製品に共通のコンポーネント(リンカツール、ライブ ラリツールなど)についての最新情報が記載されたリリースノー トが含まれています。これらのファイルの内容を確認することを お勧めします。 common\plugins common\plugins サブディレクトリには、プラグインモジュール としてロード可能なコンポーネント用の実行可能ファイルや記述 ファイル(コードカバレッジやプロファイリング用のサンプルモ ジュール)が格納されています。 表 5: common ディレクトリ パート 1 製品概要 UEW-9 xlv ファイルタイプ INSTALL-INFO ディレクトリ install-info ディレクトリには、インストールされている製品コンポーネン トのメタデータ(バージョン番号、名前など)が含まれています。これらの ファイルは変更しないでください。 ファイルタイプ このバージョンの IAR システムズの開発ツールは、以下のデフォルトのファ イル名拡張子を使用して、製品ファイルおよびその他の対応ファイルタイプ を識別します。 拡張子 ファイルタイプ 出力元 入力先 axx / out ターゲットアプリケーション XLINK/ILINK EPROM、C-SPY など asm アセンブラソースコード テキストエディタ アセンブラ bat Windows コマンドバッチファイル C-SPY ウィンドウ c C ソースコード テキストエディタ コンパイラ cfg 構文カラー表示設定 テキストエディタ IDE chm オンラインヘルプシステム -- IDE cpp C++ ソースコード テキストエディタ コンパイラ XLINK/ILINK C-SPY、その他の シンボリックデ バッガ dxx / out dat dbg dbgt ターゲットアプリケーション (デバッグ情報を含む) STL コンテナのフォーマット用マ IDE クロ ターゲットアプリケーション (デバッグ情報を含む) XLINK C-SPY、その他の シンボリックデ バッガ デバッガのデスクトップ設定 C-SPY C-SPY ddf デバイス記述ファイル テキストエディタ C-SPY dep 依存関係情報 IDE IDE dni デバッガ初期化ファイル C-SPY C-SPY ewd C-SPY のプロジェクト設定 IDE IDE ewp IAR Embedded Workbench プロジェ DE クト(現行バージョン) IDE 表 6: ファイルタイプ IAR Embedded Workbench IDE xlvi ユーザガイド UEW-9 IDE インストールファイル 拡張子 ファイルタイプ ewplugin プラグインモジュール用 IDE 記述 -ファイル eww ワークスペースファイル fmt 出力元 入力先 IDE IDE IDE [ローカル]ウィンドウ、[ウォッ IDE チ]ウィンドウでの表示フォー マット設定 IDE テキストエディタ コンパイラ、アセ ンブラの #include helpfiles[ヘルプ]メニュー構成ファイル テキストエディタ IDE html、htm HTML ドキュメント テキストエディタ IDE h C/C++ 、アセンブラのヘッダ ソース i プリプロセス済みソース コンパイラ コンパイラ ixx デバイス選択ファイル テキストエディタ IDE icf リンカ設定ファイル テキストエディタ ILINK リンカ inc アセンブラのヘッダソース テキストエディタ アセンブラの #include ini プロジェクト設定 IDE - ログ ログ情報 IDE - lst リスト出力 コンパイラ、アセン ブラ mac C-SPY マクロ定義 テキストエディタ C-SPY map リスト出力 XLINK - メニュー デバイス選択ファイル テキストエディタ IDE pbd ソースブラウザ情報 IDE IDE pbi ソースブラウザ情報 IDE IDE pew IAR Embedded Workbench プ ロジェクト(旧プロジェクト フォーマット) IDE IDE prj IAR Embedded Workbench プ ロジェクト(旧プロジェクト フォーマット) IDE IDE rxx / o オブジェクトモジュール コンパイラ、 アセンブラ XLINK、XAR、 XLIB または ILINK rxx / a ライブラリ XAR、XLIB XLINK、XAR、 XLIB または ILINK 表 6: ファイルタイプ (続き) パート 1 製品概要 UEW-9 xlvii ファイルタイプ 拡張子 ファイルタイプ 出力元 入力先 sxx / s アセンブラソースコード テキストエディタ アセンブラ sfr 特殊機能レジスタの定義 テキストエディタ C-SPY vsp visualSTATE プロジェクトファ イル IAR visualSTATE Designer IAR visualSTATE wsdt ワークスペースのデスクトッ プ設定 IDE IDE xcl 拡張コマンドライン テキストエディタ アセンブラ、コン パイラ、リンカ xlb 拡張ライブラリアンバッチコ マンド テキストエディタ XLIB Designer および IAR Embedded Workbench IDE 表 6: ファイルタイプ (続き) 注 : xx は、使用するプロセッサを識別する 2 桁の数字を記述します。 IDE を実行すると、いくつかのファイルが作成され、プロジェクトディレクト リの専用ディレクトリに格納されます。デフォルトでは $PROJ_DIR$\Debug、 $PROJ_DIR$\Release、$PROJ_DIR$\settings、ファイル *.dep がインストー ルディレクトリに格納されます。これらのディレクトリやファイルはどれも IDE の実行には影響を与えないため、必要に応じて問題なくこれらのファイル を削除できます。 デフォルトでないファイル名拡張子のファイル IDE では、[ファイル名の拡張子]ダイアログボックス([ツール]メニュー から利用可能)を使用して、認識ファイル名の拡張子の数を増やすことがで きます。ツールチェーンの特定のツールにファイル名の拡張子を関連付ける こともできます。278 ページの[ファイル名拡張子]ダイアログボックスを 参照してください。 デフォルトのファイル名拡張子をコマンドラインからオーバーライドするに は、ファイル名の指定時に拡張子を明示的に指定します。 注 : コマンドラインからツールを実行する場合は、XLINK リスト(マップ ファイル)のデフォルトの拡張子は lst になります。このファイルにより、 コンパイラが生成したリストファイルが上書きされることがあります。その ため、XLINK のマップファイルの名前を project1.map などに明示的に設定 することをお勧めします。 IAR Embedded Workbench IDE xlviii ユーザガイド UEW-9 パート 1. チュートリアル 『IAR Embedded Workbench IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● チュートリアルへようこそ ● アプリケーションプロジェクトの作成 ● IAR C-SPY デバッガを使用したデバッグ ● C 言語とアセンブラモジュールの結合 ● C++ の使用 ● 割込みシミュレーション ● ライブラリの作成と利用 1 UEW-9 2 UEW-9 チュートリアルへようこそ チュートリアルでは、IAR Embedded Workbench IDE とそのツールの基 本的な使用方法を確認するための実践トレーニングを説明します。 以下は、チュートリアルの概要について説明します。 チュートリアル概要 チュートリアルはいくつかの部分から構成されています。すべてのチュート リアルを 1 つのセットとして学習することも、個別のチュートリアルを選択 して学習することもできます。 注 : チュートリアルでは、printf ライブラリ関数が呼び出されます。この関 数は、DLIB ライブラリの低レベル write 関数部分または CLIB ライブラリの putchar 関数部分を呼び出します。これは C-SPY シミュレータで機能します が、実際のハードウェアでリリース構成のチュートリアルを実行する場合、 (使用しているライブラリに応じて)ご使用のハードウェアに適合したこれら 関数の独自バージョンを用意する必要があります。 アプリケーションプロジェクトの作成 このチュートリアルでは、新規プロジェクトの設定、アプリケーションのコ ンパイル、リストファイルの確認、アプリケーションのリンクについて学び ます。関連ファイルは次のとおりです。 ワークスペース: tutorials.eww プロジェクトファイル: project1.ewp ソースファイル: Tutor.c、Tutor.h、Utilities.c、Utilities.h IAR C-SPY デバッガを使用したデバッグ このチュートリアルでは、project1 で使用するアプリケーションをデバッグし ながら、デバッガの基本機能について学習します。関連ファイルは次のとお りです。 ワークスペース: tutorials.eww プロジェクトファイル: project1.ewp ソースファイル: Tutor.c、Tutor.h、Utilities.c、Utilities.h パート 1 チュートリアル UEW-9 3 チュートリアル概要 C 言語とアセンブラモジュールの結合 このチュートリアルでは、C で記述したソースモジュールとアセンブラモ ジュールを簡単に統合する方法を説明します。また、コンパイラを使用して コンパイラ呼出し規約を調べる方法についても説明します。関連ファイルは 次のとおりです。 ワークスペース: tutorials.eww プロジェクトファイル: project2.ewp ソースファイル: Tutor.c、Tutor.h、Utilities.c、Utilities.h、 Utilities.s C++ の使用 このチュートリアルでは、C++ のクラスの作成方法を説明します。ここでは、 2 つの独立したオブジェクトを作成します。その後で、アプリケーションを ビルドしてデバッグします。この章の内容は、C++ をサポートする製品バー ジョンだけに該当します。関連ファイルは次のとおりです。 ワークスペース: tutorials.eww プロジェクトファイル: project3.ewp ソースファイル: CppTutor.cpp、Fibonacci.cpp、Fibonacci.h 割込みシミュレーション このチュートリアルでは、割込みハンドラをプロジェクトに追加する方法と、 この割込みを C-SPY の割込みシミュレーション、ブレークポイント、マクロ を使用してシミュレーションする方法を説明します。関連ファイルは次のと おりです。 IAR Embedded Workbench IDE 4 ユーザガイド UEW-9 ワークスペース: tutorials.eww プロジェクトファイル: project4.ewp ソースファイル: Interrupt.c、Utilities.c、Utilities.h チュートリアルへようこそ ライブラリの作成と利用 このチュートリアルでは、ライブラリモジュールの作成方法を説明します。 関連ファイルは次のとおりです。 ワークスペース: tutorials.eww プロジェクトファイル: project5.ewp、tutor_library.ewp ソースファイル: Main.s、MaxMin.s、Utilities.h イントロダクション IDE の[ヘルプ]メニューのインフォメーションセンタからチュートリアル にアクセスできます。[チュートリアル]の後に[チュートリアルプロジェク トを開く]というハイパーリンクをクリックします。これにより、ワークス ペースと関連するプロジェクトファイルのコピーが作成されます。 チュートリアルに必要なファイルはすべて cpuname\tutor ディレクトリにあ ります。tutor ディレクトリを projects ディレクトリにコピーしてください。 注 :[ビルド]メッセージウィンドウに表示される情報の量は、カスタマイズ 可能です。このチュートリアルプロジェクトではデフォルト設定は使用しま せん。したがって、[ビルド]メッセージウィンドウに実際に表示される内容 は、テキスト内のスクリーンショットと異なる場合があります。 これで、最初のチュートリアルプロジェクトを開始できます:7 ページのアプ リケーションプロジェクトの作成。 パート 1 チュートリアル UEW-9 5 チュートリアル概要 IAR Embedded Workbench IDE 6 ユーザガイド UEW-9 アプリケーションプロジェ クトの作成 この章では、IAR Embedded Workbench® 統合開発環境 (IDE) について説 明します。チュートリアルでは典型的な開発サイクルのデモを行い、 コンパイラとリンカを使用して、使用しているデバイス向けの小さな アプリケーションを作成する方法を示します。ここでは、開発サイク ル、ワークスペースの作成、C ソースファイルを含むプロジェクトの 設定、アプリケーションのコンパイルとリンクについて説明します。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 新しいプロジェクトの設定 IDE を使用すると、高度なプロジェクトモデルを設計できます。まずワーク スペースを作成します。ワークスペースには、1 つ以上のプロジェクトを追 加します。アプリケーションプロジェクトとライブラリプロジェクトのそれ ぞれについて、すぐに利用できるプロジェクトテンプレートが用意されてい ます。プロジェクトには、ソースファイルがまとめられたグループを階層的 に作成できます。また、プロジェクトには、1 つ以上のビルド構成を定義で きます。プロジェクトモデルの設計の詳細については、本書の「プロジェク ト管理」を参照してください。 このチュートリアルでは、使用するファイル数が非常に少ない単純なアプリ ケーションを扱っているので、高度なプロジェクトモデルを使用する必要は ありません。 プロジェクトを作成する前に、ワークスペースを作成する必要があります。 ワークスペースの作成 最初の手順では、チュートリアルアプリケーション用の新しいワークスペー スを作成します。IDE を初めて起動したときは、既製のワークスペースが開 いているので、それをチュートリアルプロジェクト用に使用できます。その ワークスペースを使用する場合は、この最初の手順は無視してください。 [ファイル]>[新規作成]>[ワークスペース]を選択します。プロジェクト を作成してワークスペースに追加する準備はこれで完了です。 パート 1 チュートリアル UEW-9 7 新しいプロジェクトの設定 新しいプロジェクトの作成 1 新しいプロジェクトを作成するには、[プロジェクト]>[新規プロジェクト の作成]を選択します。[新規プロジェクトの作成]ダイアログボックスが表 示されます。このダイアログボックスでは、プロジェクトテンプレートを使 用して、新しいプロジェクトを作成できます。 図 1: [新規プロジェクトの作成]ダイアログボックス 2 [ツールチェーン]ドロップダウンリストから、使用しているツールチェーン を選択し、[OK] をクリックします。 3 このチュートリアルでは、プロジェクトテンプレート[空のプロジェクト] を選択します。このプロジェクトは、デフォルトのプロジェクト設定を使用 する空のプロジェクトを単純に作成します。 4 標準の[名前を付けて保存]ダイアログボックスが表示されるので、プロ ジェクトファイルを保存する場所、つまり新しく作成した projects ディレ クトリを指定します。 [ファイル名]ボックスに「project1」 と入力して、 [保存]をクリックし、新しいプロジェクトを作成します。 注 : チュートリアルを開始する前に、cpuname\tutor ディレクトリからすべ てのファイルをコピーした場合、projects ディレクトリにはプロジェクト ファイルがすでに存在しています。この既成のファイルを使用することも、 独自のファイルを作成することもできます。 IAR Embedded Workbench IDE 8 ユーザガイド UEW-9 アプリケーションプロジェクトの作成 [ワークスペース]ウィンドウにプロジェクトが表示されます。 図 2: [ワークスペース]ウィンドウ デフォルトで 2 つのビルド構成が作成されます。Debug と Release です。この チュートリアルでは Debug だけを使用します。ビルド構成は、ウィンドウ上 端のドロップダウンメニューから選択します。プロジェクト名にアスタリス クが付いている場合は、そのプロジェクトが変更され、その変更が保存され ていないことを示します。 プロジェクトファイル(ファイル拡張子 ewp)が、projects ディレクトリに 作成されます。このファイルはすぐには作成されず、後でワークスペースを 保存するときに作成されます。このファイルには、ビルドオプションなど、 プロジェクト固有の設定に関する情報が保存されます。 5 ファイルをプロジェクトに追加する前に、ワークスペースを保存してくださ い。 [ファイル]>[名前を付けてワークスペースを保存]を選択して、ワー クスペースファイルを保存する場所を指定します。このチュートリアルでは、 新しく作成した projects ディレクトリに保存します。[ファイル名]ボック パート 1 チュートリアル UEW-9 9 新しいプロジェクトの設定 スに「tutorials」 と入力して、[保存]をクリックし、新しいワークスペー スを作成します。 図 3: ワークスペースを保存 ワークスペースファイル(ファイル拡張子 eww)が、projects ディレクトリ に作成されます。このファイルには、ワークスペースに追加するすべてのプ ロジェクトがリストされます。ウィンドウの配置やブレークポイントなど、 現在のセッションに関する情報は、projects\settings ディレクトリに作成 されるファイルに保持されます。 プロジェクトへのファイルの追加 このチュートリアルでは、Tutor.c と Utilities.c の 2 つのソースファイル を使用します。 ● Tutor.c アプリケーションは、 C 言語の標準関数だけを使用した単純なプロ グラムです。配列をフィボナッチ数列の最初の 10 個の数値で初期化して、 結果を stdout に出力します。 ● Utilities.c アプリケーションには、フィボナッチ数列を計算するための ユーティリティルーチンが含まれています。 複数のグループを作成すると、ソースファイルをプロジェクトの必要性に応 じて論理的に分類し、編成することができます。ただし、このプロジェクト では 2 つのファイルしか使用しないので、グループを作成する必要はありま せん。複雑なプロジェクト構造の作成方法の詳細については、「プロジェクト 管理」を参照してください。 1 [ワークスペース]ウィンドウで、ソースファイルの追加先としてグループか プロジェクトを選択します。この例では、直接プロジェクトに追加します。 IAR Embedded Workbench IDE 10 ユーザガイド UEW-9 アプリケーションプロジェクトの作成 2 [プロジェクト]>[ファイルの追加]を選択して、標準の参照ダイアログ ボックスを開きます。Tutor.c と Utilities.c の 2 つのファイルを探して、 ファイル選択リストで選択します。 [開く]をクリックして、それらのファイ ルを project1 プロジェクトに追加します。 図 4: project1 へのファイルの追加 プロジェクトオプションの設定 次に、プロジェクトオプションを設定します。アプリケーションプロジェク トの場合、ノードのすべてのレベルでオプションを設定できます。まず、こ のチュートリアルのプロセッサ構成に合せて一般オプションを設定します。 一般オプションはビルド構成全体で同一である必要があるので、プロジェク トノードで設定する必要があります。 1 [ワークスペース]ウィンドウでプロジェクトフォルダアイコン[プロジェク ト 1 - デバッガ]を選択して、[プロジェクト]>[オプション]を選択しま す。このチュートリアルでは、デフォルト設定を使用します。 その上で、プロジェクトのコンパイラオプションを設定します。 パート 1 チュートリアル UEW-9 11 アプリケーションのコンパイルとリンク 2 [カテゴリ]リストで[C/C++ コンパイラ]を選択して、コンパイラのオプ ションページを表示します。 図 5: コンパイラオプションの設定 3 デフォルト設定が使用されていることを確認します。デフォルト設定の他に、 [リスト]タブをクリックして、[リストファイルの出力]オプションと[ア センブラニーモニック]オプションを選択します。[OK] をクリックして、指 定したオプションを設定します。 これで、プロジェクトをビルドする準備ができました。 アプリケーションのコンパイルとリンク 次は、アプリケーションをコンパイルして、リンクします。また、コンパイ ラリストファイルとリンカマップファイルが表示されます。 ソースファイルのコンパイル 1 Utilities.c をコンパイルするには、[ワークスペース]ウィンドウでその ソースファイルを選択します。 IAR Embedded Workbench IDE 12 ユーザガイド UEW-9 アプリケーションプロジェクトの作成 2 [プロジェクト]>[コンパイラ]を選択します。 別の方法として、ツールバーの[コンパイラ]ボタンをクリックするか、 [ワークスペース]ウィンドウで選択したファイルを右クリックして表示さ れるコンテキストメニューで[コンパイラ]コマンドを選択することもでき ます。 進捗状況は、[ビルド]メッセージウィンドウに表示されます。 図 6: コンパイルメッセージ 3 同じ方法で Tutor.c をコンパイルします。 IDE によって、プロジェクトディレクトリに新しいディレクトリが作成され ます。現在はビルド構成 Debug を使用しているため、Debug ディレクトリが 作成され、その下にリスト、Obj、Exe の各ディレクトリが作成されます。 ● List ディレクトリには、リストファイルが保存されます。リストファイル の拡張子は lst です。 ● Obj ディレクトリには、コンパイラとアセンブラが生成したオブジェクト ファイルが保存されます。オブジェクトファイルの拡張子は rxx であり、 IAR XLINK リンカの入力として使用されます。ILINK リンカの場合、対応 するファイル名拡張子は o です。 ● Exe ディレクトリには、実行可能ファイルが保存されます。拡張子 dxx (XLINK の場合)および out(ILINK の場合)を持ち、IAR C-SPY® デ バッガへの入力として使用されます。このディレクトリは、オブジェクト ファイルをリンクするまでは空であることに注意してください。 [ワークスペース]ウィンドウでプラス記号をクリックして、ツリーを展開し ます。[ワークスペース]ウィンドウには IDE によって作成された出力フォル ダのアイコンが表示されています。このフォルダには、生成された出力ファ イルが保存されます。同様に、インクルードされているすべてのヘッダファ イルも表示され、ファイル間の依存関係を示しています。 パート 1 チュートリアル UEW-9 13 アプリケーションのコンパイルとリンク 図 7: コンパイル後の[ワークスペース]ウィンドウ リストファイルの表示 ここでコンパイラリストファイルを開いて、これから説明するように最適化 レベルを変更して生成されるコードサイズが受ける影響を調べるにあたって、 その内容がどのように自動更新されるかに注目します。 1 [ワークスペース]ウィンドウでリストファイル Utilities.lst をダブルク リックして開きます。リストファイルを開きます。以下に示す情報が記述さ れています。 ● ヘッダには、製品バージョン、ファイル作成日時、使用されたコンパイラ オプションのコマンドラインバージョンが記述されています。 ● リストファイルの本体には、文ごとに生成されたアセンブラコードとバイ ナリコードが記述されています。セグメント / セクションで変数がどのよ うに配置されるかも示されます。 ● リストファイルのフッタには、スタック、コード、データの必要メモリ量 の他、エラーメッセージやワーニングメッセージが生成された場合はそれ らのメッセージが記述されます。 ファイルの最後に生成されたコードの量が記述されているので注意してくだ さい。ファイルは開いたままにしておきます。 IAR Embedded Workbench IDE 14 ユーザガイド UEW-9 アプリケーションプロジェクトの作成 2 [ツール]>[オプション]を選択して[IDE オプション]ダイアログボック スを開き、 [エディタ]タブをクリックします。[更新ファイルをスキャン] オプションを選択します。このオプションは、リストファイルなど、エディ タウィンドウで開かれているファイルの自動更新を有効にします。 図 8: [更新ファイルをスキャン]オプションの設定 [OK] ボタンをクリックします。 3 [ワークスペース]ウィンドウで Utilities.c ファイルを選択して、右クリッ クしてコンテキストメニューを開き、 [オプション]を選択して、C/C++ コン パイラのオプションのダイアログボックスを開きます。[継承した設定をオー バライド]オプションを選択します。[最適化]タブをクリックして、最適化 のレベルとして[高]を選択します。[OK] をクリックします。 [ワークスペース]ウィンドウで、ファイルノードで優先されるオプションが 赤い点で示されていることに注意してください。 4 Utilities.c ファイルをコンパイルします。ここで、次の 2 点に注目します。 最初に、 [更新ファイルをスキャン]オプションが選択されているために、開 かれているリストファイルが自動更新されていることに注意してください。 次にリストファイルのフッタを参照して、最適化レベルを高めたことによる コードサイズの変化に注意してください。 5 このチュートリアルでは、最適化レベル[なし]を使用するため、アプリ ケーションをリンクする前にデフォルトの最適化レベルに戻します。[ワーク スペース]ウィンドウで選択したファイルを右クリックして、 [C/C++ コンパ イラ]オプションダイアログボックスを開きます。[継承した設定をオーバラ イド]オプションを選択解除して、[OK] をクリックします。Utilities.c ファイルを再コンパイルします。 パート 1 チュートリアル UEW-9 15 アプリケーションのコンパイルとリンク アプリケーションのリンク ここでは、リンカで使用するオプションを設定します。 1 [ワークスペース]ウィンドウでプロジェクトフォルダアイコン[project1 デバッガ]を選択して、[プロジェクト]>[オプション]を選択するか、右 クリックしてコンテキストメニューから[オプション]を選択します。続い て、 [カテゴリ]リストで[リンカ]を選択して、リンカのオプションページ を表示します。 このチュートリアルではデフォルトの出荷時設定を使用します。ただし、出力 形式(XLINK リンカの場合のみ)とリンカ構成ファイルの選択には注意して ください。 XLINK リンカを使用した場合の出力形式 出力形式は、目的に合せて選択することが重要です。デバッガにロードする 場合は、デバッグ情報付きで出力する必要があります。このチュートリアル では、C-SPY に適したデフォルト出力オプション、すなわち[C-SPY のデ バッグ情報]、[ランタイム管理モジュール付き]、[I/O エミュレーションを使 用]の各オプションを使用します。これによって、stdin と stdout を C-SPY デバッガの[ターミナル I/O]ウィンドウに接続する低レベルルーチンがリン クされます。これらのオプションは、[出力]ページにあります。 実際のアプリケーションプロジェクトでは、別の方法として、出力を PROM プログラマにロードすることができます。この場合は、Intel-hex、Motorola S-records など、デバッグ情報を含まない出力形式を使用する必要があります。 ILINK リンカを使用した場合の出力形式 リンカでは、ELF 形式(デバッグ情報用の DWARF を含む)の出力ファイル を作成します。ELF 形式ではなく、Motorola または Intel-standard 形式のファ イルが必要な場合(ファイルを PROM メモリにロードする場合など)、ファ イルを変換する必要があります。IAR Embedded Workbench で提供される変換 機能を使用できます(353 ページのコンバータオプションを参照)。 リンカ構成ファイル XLINK リンカ設定ファイル(ファイル名拡張子 xcl)では、セグメント制御用 の XLINK コマンドラインオプションを使用して、セグメントを配置します。 リンカ設定ファイルおよびセグメントの配置を熟知しておくことが重要です。 ILINK リンカの場合、プログラムコードとデータは、リンカ設定ファイル (ファイル名拡張子 icf)で指定した設定に基づいて、メモリに配置されま す。セクションをメモリに配置する方法の構文について理解していることが 重要です。 IAR Embedded Workbench IDE 16 ユーザガイド UEW-9 アプリケーションプロジェクトの作成 詳細については、『コンパイラのドキュメント』を参照してください。 注 : シミュレータでは、製品で提供されているリンカ構成ファイルテンプ レートをそのまま使用できますが、ターゲットシステムで使用する場合は、 実際のハードウェアメモリレイアウトに合わせて調整する必要があります。 提供されているリンカ構成ファイルは、config ディレクトリにあります。 このチュートリアルでは、デフォルトのリンカ構成ファイルを使用します。 このファイルは、[設定]ページで参照できます。 リンカ構成ファイルを開く場合は、IAR Embedded Workbench エディタなどの 適切なテキストエディタを使用するか、ファイルの内容を印刷して、定義さ れている内容が要件に適合していることを確認します。 リンカマップファイル デフォルトでは、リンカマップファイルは生成されません。リンカマップ ファイルを生成するには、[リスト]タブをクリックして、XLINK リンカの 場合はオプション[リンカリストの生成]、[セグメントマップ]、[モジュー ルマップ]を選択します。ILINK リンカの場合は、オプション[リンカマッ プファイルの表示]を選択します。 2 [OK] をクリックして、リンカオプションを保存します。 次に、オブジェクトファイルをリンクして、デバッグ可能なコードを生成し ます。 3 [プロジェクト]>[作成]を選択します。進捗状況は、[ビルド]メッセージ ウィンドウに表示されます。リンクした結果、Debug\Exe ディレクトリにデ バッグ情報付きのコードファイル、project1.dxx と Debug\List ディレクト リにマップファイル project1.map がそれぞれ生成されます。 マップファイルおよびログファイルの表示 XLINK と ILINK はどちらも、詳細なリストを生成できます。 ● XLINK はマップファイルを生成でき、これにはセグメントマップやシンボ ルリスト、モジュールサマリなどが任意で含まれます。 ● ILINK は、一般的に配置のサマリを含むマップファイルを生成できます。 また、ILINK はログファイルを生成できます。このファイルには、初期化 やモジュールのセクション、セクションの選択などについて、リンカが決 定した事項が記録されます。 一般的に、この情報は次のことを詳しく調べるときに役立ちます。 ● セグメント / セクションおよびコードがどのようにメモリに配置されたか ● どのソースファイルが実際に最終のイメージに貢献したか パート 1 チュートリアル UEW-9 17 アプリケーションのコンパイルとリンク ● どのシンボルが実際にインクルードされたか、およびその値 ● 個々の関数がメモリのどこに配置されたか これで、project1.dxx アプリケーションを C-SPY で実行する準備ができま した。 IAR Embedded Workbench IDE 18 ユーザガイド UEW-9 IAR C-SPY デバッガを使用 したデバッグ この章では、前章で始めた開発サイクルを引き続き実行し、C-SPY® の基本機能について説明します。 インストールされている IAR システムズ製品のパッケージによって、 C-SPY が含まれている場合といない場合があります。チュートリアル では、C-SPY シミュレータの使用を前提としています。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 アプリケーションのデバッグ 前章で作成した、project1.dxx アプリケーションを、C-SPY で実行します。 C-SPY には、変数のモニタ、ブレークポイントの設定、逆アセンブリモード でのコード表示、レジスタとメモリのモニタ、[ターミナル I/O]ウィンドウ へのプログラム出力の出力などの機能があります。 デバッガの起動 C-SPY デバッガを起動する前に、いくつかのオプションを設定する必要があ ります。 1 [プロジェクト]>[オプション]を選択して、[デバッガ]カテゴリを選択し ます。 [設定]ページで、[ドライバ]ドロップダウンリストから[シミュ レータ]が選択されていることと、[Run to main] が選択されていることを確 認します。[OK] をクリックします。 2 [プロジェクト]>[ダウンロードしてデバッグ]を選択します。別の方法と して、ツールバーの[ダウンロードしてデバッグ]ボタンをクリックするこ ともできます。C-SPY が起動され、project1.dxx アプリケーションがロード されます。IDE ですでに開かれているウィンドウの他に、C-SPY 固有のウィ ンドウセットが開きます。 パート 1 チュートリアル UEW-9 19 アプリケーションのデバッグ ウィンドウの編成 IDE では、複数のウィンドウを特定の位置にドッキングして、タブグループ として編成できます。また、ウィンドウをフローティング化することができ ます。フローティングウィンドウは、常に他のウィンドウよりも前に表示さ れます。フローティングウィンドウのサイズや位置を変更しても、現在開か れている他のウィンドウは影響を受けません。 Embedded Workbench メインウィンドウの下端にあるステータスバーには、 ウィンドウのサイズを変更するためのヘルプが用意されています。詳細につ いては、57 ページの画面上のウィンドウの編成を参照してください。 以下のウィンドウとウィンドウの内容が開き、画面に表示されていることを 確認します。その内容は、アクティブビルド設定 [tutorials project1] が表示さ れる[ワークスペース]ウィンドウ、ソースファイル Tutor.c と Utilities.c が表示されるエディタウィンドウ、および[ デバッグログ] ウィンドウです。 図 9: C-SPY デバッガメインウィンドウ 注 : 使用しているツールチェーンに応じて、緑の矢印で示される現在の位置 は main または callCount となっています。 IAR Embedded Workbench IDE 20 ユーザガイド UEW-9 IAR C-SPY デバッガを使用したデバッグ ソース文の検証 1 ソース文を検証するには、[ワークスペース]ウィンドウでファイル Tutor.c をダブルクリックします。 2 エディタウィンドウにファイル Tutor.c が表示された状態で、まず[デバッ グ]>[ステップオーバ]コマンドを使用して、ステップオーバします。 別の方法として、ツールバーの[ステップオーバ]ボタンをクリックするこ ともできます。 InitFib 関数の呼出し位置までステップ実行します。 図 10: C-SPY のステップイン 3 [デバッグ]>[ステップイン]を選択して、InitFib 関数にステップインし ます。 別の方法として、ツールバーの[ステップイン]ボタンをクリックすること もできます。 ソースレベルで[ステップオーバ]コマンドと[ステップイン]コマンドを 使用すると、一度に 1 つずつアプリケーションの文を実行できます。[ステッ プイン]は、関数やサブルーチン呼出しの内部でもステップ実行を続けます。 一方、[ステップオーバ]は、1 ステップで 1 つの関数呼出しを実行します。 詳細については、110 ページのステップを参照してください。 [ステップイン]を実行すると、アクティブウィンドウが Utilities.c に切 り替ります。これは、InitFib 関数がこのファイルに存在するためです。 パート 1 チュートリアル UEW-9 21 アプリケーションのデバッグ 4 for ループに到達するまで[ステップイン]コマンドを実行します。 図 11: C-SPY で[ステップイン]を使用 5 for ループの先頭に戻るまで[ステップオーバ]を実行します。ステップポイ ントが文レベルではなく、関数呼出しレベルであることに注意してください。 文レベルで実行することもできます。[デバッグ]>[次の実行文が設定され ました]を選択すると、一度に 1 つずつ文を実行します。別の方法として、 ツールバーの[次の実行文が設定されました]ボタンをクリックすることも できます。 このコマンドが[ステップオーバ]コマンドや[ステップイン]コマンドと 異なる動作をすることに注意してください。 6 C-SPY では、通常は C/C++ ソースモードを使用するほうが短時間で直接的にデ バッグできます。ただし、低レベルルーチンも完全に制御する必要がある場 合は、逆アセンブリモードでデバッグすることもできます。このモードでは、 1 つのステップが 1 つのアセンブラ命令に対応します。C-SPY では、2 つの モードを自由に切り替えることができます。 [逆アセンブリ]ウィンドウをまだ開いていない場合、[表示]>[逆アセンブ リ]を選択して開きます。現在の C 文に対応するアセンブラコードが表示さ れます。 [逆アセンブリ]ウィンドウでもステップコマンドを試してください。 変数の検証 C-SPY では、ソースコードの変数や式をモニタして、アプリケーションを実 行したときのそれらの値をトレースできます。いくつかの方法で変数を参照 できます。たとえば、ソースウィンドウで変数をマウスポインタで指す方法 や、[自動]、[ローカル]、[ライブウォッチ]、[静的]、または[ウォッチ] のいずれかのウィンドウを開く方法があります。このチュートリアルでは、 IAR Embedded Workbench IDE 22 ユーザガイド UEW-9 IAR C-SPY デバッガを使用したデバッグ これらの方法の一部を説明します。変数の検証の詳細については、変数と式 の扱いを参照してください。 注 : 最適化レベルとして[なし]が使用されている場合、すべての非静的変 数はそのスコープが継続している間は有効であり、したがって、そのような 変数は完全にデバッグ可能です。それよりも高いレベルの最適化が使用され ている場合は、変数は完全にデバッグできない可能性があります。 [自動]ウィンドウの使用 1 [表示]>[自動]を選択して、[自動]ウィンドウを開きます。 [自動]ウィンドウには、最後に変更された式の現在の値が表示されます。 図 12: [自動]ウィンドウでの変数の検証 2 ステップの実行を続行して、値が変化する様子をモニタします。 ウォッチポイントの設定 次に、[ウォッチ]ウィンドウを使用して変数を検証します。 3 [表示]>[ウォッチ]を選択して、[ウォッチ]ウィンドウを開きます。この ウィンドウは、デフォルトで現在開いている[自動]ウィンドウとともにグ ループ化されて、タブグループを構成していることに注目してください。 4 以下の手順に従って、変数 i にウォッチポイントを設定します。[ウォッチ] ウィンドウで点線の長方形をクリックします。表示される入力フィールドに、 「i」と入力して、Enter キーを押します。 エディタウィンドウから[ウォッチ]ウィンドウに変数をドラッグしても、 ウォッチポイントを設定できます。 5 InitFib 関数の Fib 配列を選択して、[ウォッチ]ウィンドウにドラッグし ます。 パート 1 チュートリアル UEW-9 23 アプリケーションのデバッグ [ウォッチ]ウィンドウには、i と Fib の現在の値が表示されます。Fib 配列 を展開すると、さらに詳細にモニタできます。 図 13: [ウォッチ]ウィンドウでの変数のモニタ 6 さらに何回かステップを実行して、i と Fib の値が変化する様子をモニタし ます。 7 [ウォッチ]ウィンドウから変数を削除するには、削除する変数を選択して、 [削除]をクリックします。 ブレークポイントの設定とモニタ C-SPY には、多くの機能を備えた強力なブレークポイントシステムが用意さ れています。ブレークポイントの詳細については、125 ページのブレークポ イントシステムを参照してください。 最も使いやすいのは、対話的に設定する方法です。文の内部か近くに挿入ポ イントを配置してから[ブレークポイントの切替え]コマンドを選択し、ブ レークポイントを対話的に設定します。 1 以下の方法を使用して、function call GetFib(i) にブレークポイントを設定し ます。最初に、エディタウィンドウで [Utilities.c] タブをクリックし、挿 入ポイントを配置する文をクリックします。次に、[編集]>[ブレークポイ ントの切替え]を選択します。 別の方法として、ツールバーの[ブレークポイントの切替え]ボタンをク リックすることもできます。 IAR Embedded Workbench IDE 24 ユーザガイド UEW-9 IAR C-SPY デバッガを使用したデバッグ ブレークポイントが、この関数呼出しに設定されます。関数呼出しが強調表 示され、余白に赤色の点でブレークポイント位置が示されます。 図 14: ブレークポイントの設定 定義済みのブレークポイントを全て表示するには[表示]>[ブレークポイン ト]を選択して、[ブレークポイント]ウィンドウを開きます。[ デバッグロ グ]ウィンドウに、ブレークポイントの実行に関する情報が表示されます。 ブレークポイントまでの実行 2 アプリケーションをブレークポイントに到達するまで実行するには、デバッ ガ]>[実行]を選択します。 別の方法として、ツールバーの[実行]ボタンをクリックすることもでき ます。 設定されたブレークポイントまでアプリケーションが実行されます。[ウォッ チ]ウィンドウには Fib 式の値が表示され、[デバッグログ]ウィンドウには ブレークポイントに関する情報が表示されます。 3 ブレークポイントを削除するには、ブレークポイントを選択し、右クリック してコンテキストメニューで[ブレークポイントの切替え(コード)]を選択 するか、 [編集]メニューで[ブレークポイントの切替え]を選択します。 パート 1 チュートリアル UEW-9 25 アプリケーションのデバッグ レジスタのモニタ [レジスタ]ウィンドウを使用すると、プロセッサレジスタの内容をモニタ、 変更できます。 1 [表示]>[レジスタ]を選択して、[レジスタ]ウィンドウを開きます。 図 15: [レジスタ]ウィンドウ 2 [ステップオーバ]を利用して次の指示を実行し、[レジスタ]ウィンドウで 値がどのように変化するかを確認します。 3 [レジスタ]ウィンドウを閉じます。 メモリのモニタ [メモリ]ウィンドウを使用すると、選択したメモリエリアをモニタできま す。以下の例では、配列 Fib に対応するメモリがモニタされます。 1 [表示]>[メモリ]を選択して、[メモリ]ウィンドウを開きます。 2 [Utilities.c] ウィンドウをアクティブにして、[Fib] を選択します。それを C ソースウィンドウから[メモリ]ウィンドウにドラッグします。 [メモリ]ウィンドウで Fib に対応するメモリの内容が選択されます。 必ずしもすべてのメモリ単位が C アプリケーションの InitFib 関数で初期化 されたわけではない場合、ステップオーバを継続すると、メモリの内容がど のように更新されるか分かります。 メモリの内容を変更するには、[メモリ]ウィンドウで値を編集します。編集 するメモリの内容に挿入ポイントを配置して、値を入力します。 [メモリ]ウィンドウを閉じます。 IAR Embedded Workbench IDE 26 ユーザガイド UEW-9 IAR C-SPY デバッガを使用したデバッグ ターミナル I/O の表示 場合によっては、stdin や stdout を使用するアプリケーションの構文を、 ハードウェアを使用しないでデバッグする必要があります。C-SPY では、 [ターミナル I/O]ウィンドウを使用して、stdin と stdout をシミュレーショ ンできます。 注 :[ターミナル I/O]ウィンドウは、[I/O エミュレーションモジュール付き] オプションを使用してプロジェクトをリンクした場合にのみ、C-SPY で使用 できます。これは、stdin と stdout をデバッガの[ターミナル I/O]ウィン ドウに接続する低レベルルーチンが、リンクされていることを意味します。 16 ページのアプリケーションのリンクを参照してください。 1 [表示]>[ターミナル I/O]を選択すると、I/O 操作からの出力が表示され ます。 図 16: I/O 操作からの出力 ウィンドウに表示される内容は、アプリケーションをどこまで実行したかに よって異なります。 プログラムの最後まで実行 1 アプリケーションの実行を完了するには、[デバッグ]>[実行]を選択し ます。 別の方法として、ツールバーの[実行]ボタンをクリックすることもでき ます。 パート 1 チュートリアル UEW-9 27 アプリケーションのデバッグ C-SPY は、それ以上ブレークポイントを検出しなければ、そのままアプリ ケーションの最後まで実行して、[プログラムの最後まで実行] メッセージを [デバッグログ]ウィンドウに出力します。 図 17: C-SPY でプログラムの最後まで実行 これで、アプリケーションからのすべての出力が[ターミナル I/O]ウィンド ウに表示されました。 既存のアプリケーションをもう一度起動する場合は、[デバッグ]>[リセッ ト]を選択するか、ツールバーの[リセット]ボタンをクリックします。 2 C-SPY を終了するには、[デバッグ]>[デバッグの停止]を選択します。別 の方法として、ツールバーの[デバッグの停止]ボタンをクリックすること もできます。Embedded Workbench ワークスペースが表示されます。 C-SPY には、他にも多くのデバッグ機能があります。マクロや割込みシミュ レーションなど、その一部については、本書の以降のチュートリアルの章で 説明します。 C-SPY の詳細な使用方法については、パート 3. デバッグを参照してくださ い。C-SPY の機能のリファレンス情報については、 「パート 5. リファレンス 情報」とオンラインヘルプシステムを参照してください。 IAR Embedded Workbench IDE 28 ユーザガイド UEW-9 C 言語とアセンブラモ ジュールの結合 一部のプロジェクトでは、ソースコードの一部をアセンブラ言語で記 述する必要があります。この章では、まず、コンパイラを使用して呼 出し規約をチェックする方法について説明します。呼出し規約は、 C/C++ モジュールからアセンブラモジュールを呼び出したり、その逆 を行う場合に使用するので、その使用方法に慣れておく必要がありま す。次に、C 言語で記述されたソースモジュールとアセンブラモ ジュールを結合する方法について説明します。この結合は非常に簡単 に実行できるだけでなく、C++ をサポートする製品パッケージであれ ば、C++ で記述されたソースモジュールを含むプロジェクトにも適用 できます。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 呼出し規約のチェック C ルーチンから呼び出されるアセンブラルーチンを記述する場合、コンパイ ラが使用する呼出し規約に注意する必要があります。C 言語でスケルトン コードを作成し、そこからコンパイラでアセンブラ出力ファイルを生成する ことによって、生成されたアセンブラ出力ファイルを検証し、呼出し規約の 詳細を知ることができます。 この例では、ファイル Utilities.c を使用して、コンパイラでアセンブラ出 力ファイルを生成します。 1 前のチュートリアルプロジェクトで使用したものと同じワークスペース tutorials に新しいプロジェクトを作成して、project2 と名前を付けます。 2 Tutor.c と Utilities.c の 2 つのファイルをプロジェクトに追加します。 パート 1 チュートリアル UEW-9 29 呼出し規約のチェック ワークスペースの概要を表示するには、[ワークスペース]ウィンドウの下端 にある[概要]タブをクリックします。新しく作成したプロジェクトだけを 表示するには、[project2] タブをクリックします。ここでは [project2] ビュー を表示します。 3 オプションを設定するには、[プロジェクト]>[オプション]を選択し、一 般オプションカテゴリを選択します。プロジェクトレベルで、このチュート リアルではデフォルトの出荷時設定を使用します。[OK] をクリックします。 4 ファイルレベルノードでオプションを設定するには、[ワークスペース]ウィ ンドウで、ファイル Utilities.c を選択します。 [プロジェクト]>[オプション]を選択します。選択できるカテゴリは、 [C/C++ コンパイラ]カテゴリと[カスタムビルド]カテゴリだけであること に注意してください。 5 [C/C++ コンパイラ]カテゴリで、[オーバライド設定の継承]を選択して、 以下の設定を確認します。 ページ オプション 最適化 レベル : なし(デバッグサポートに最適) リスト アセンブラ出力ファイル ソースのインクルード 呼出しフレーム情報のインクルード(選択解除する必要 があります) 表 7: project2 のコンパイラオプション 注 : この例では、ローカル変数とグローバル変数のアクセスを示すため、 コードのコンパイル時に最適化レベルを低くします。それより高い最適化レ ベルを使用すると、必要なローカル変数への参照が削除される可能性があり ます。ただし、最適化レベルによって実際の関数宣言が変更されることはあ りません。 6 [OK] をクリックして、[ワークスペース]ウィンドウに戻ります。 7 ファイル Utilities.c をコンパイルします。サブディレクトリ pprojects\debug\list に、出力ファイル Utilities.sxx が作成されます。 8 呼出し規約を調べて、アセンブラ言語で C/C++ コードがどのように記述され るかを見るには、ファイル Utilities.sxx を開きます。 このファイルを見ることで、パラメータをどこでどのように受け渡すか、関 数が呼び出されたプログラム位置にどのようにして戻るか、結果値をどのよ うに戻すかを知ることができます。また、アセンブラレベルのルーチンでは どのレジスタを保護する必要があるかがわかります。 IAR Embedded Workbench IDE 30 ユーザガイド UEW-9 C 言語とアセンブラモジュールの結合 注 : 生成されたアセンブラソースファイルには、CFI ディレクティブなどのコ ンバイラ内部情報が含まれている可能性があります。これらのディレクティブ はデバッグのために存在するため、これらの詳細は無視する必要があります。 アプリケーション関数の適切なインタフェースを入手するには、インタフェー スを必要とする関数ごとにスケルトンコードを作成する必要があります。 コンパイラが使用する呼出し規約の詳細については、 『コンパイラのドキュメ ント』を参照してください。 プロジェクトへのアセンブラモジュールの追加 このチュートリアルでは、アセンブラモジュールと C モジュールを両方とも 含むプロジェクトを簡単に作成できる手順を示します。また、プロジェクト をコンパイルし、アセンブラ出力リストファイルを表示します。 プロジェクトの設定 1 作成した Utilities.sxx (ILINK の場合は Utilities.s)ファイルを追加し て、Utilities.c ファイルを削除することにより、project2 ファイルを変更 します。 注 :[ファイルの追加]ダイアログボックスでアセンブラファイルを表示する には、[プロジェクト]>[ファイルの追加]を選択して、[ファイルの種類] ドロップダウンリストで[アセンブラファイル]を選択します。 2 [ワークスペース]ウィンドウでプロジェクトレベルノードを選択して、[プ ロジェクト]>[オプション]を選択します。[一般オプション]、[C/C++ コ ンパイラ]、[リンカ]の各カテゴリではデフォルト設定を使用します。[アセ ンブラ]カテゴリで[リスト]タブをクリックして、[リストファイルの出 力]オプションを選択します。 [OK] をクリックします。 3 [ワークスペース]ウィンドウでファイル Utilities.sxx を選択して[プロ ジェクト]>[コンパイラ]を選択し、アセンブルします。 ソースファイルが正常にアセンブルされ、リンク可能オブジェクトコードを含 むファイル Utilities.rxx(ILINK の場合は Utilities.o)が作成されます。 パート 1 チュートリアル UEW-9 31 プロジェクトへのアセンブラモジュールの追加 アセンブラリストファイルの表示 4 [ワークスペース]ウィンドウで、Output フォルダにあるファイル Utilities.lst を開きます。 ファイルのフッタには、生成されたエラーとワーニングの要約が記述されて います。 リストファイル形式の詳細については『IAR アセンブラリファレンスガイド』 を参照してください。 5 [プロジェクト]>[作成]を選択して、project2 を再リンクします。 6 C-SPY を起動して、project2.dxx(ILINK の場合は Utilities.out)アプリ ケーションを実行し、前のチュートリアルと同じように動作することを確認 します。 操作が終わったら、デバッガを終了します。 IAR Embedded Workbench IDE 32 ユーザガイド UEW-9 C++ の使用 この章では、C++ を使用して C++ クラスを作成します。次に、作成 したクラスを使用して 2 つの独立オブジェクトを作成し、アプリケー ションをビルドしてデバッグします。その他に、条件付きブレークポ イントの設定例を示します。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 インストールされている IAR システムズ製品のパッケージによって、 C++ がサポートされている場合といない場合があります。このチュー トリアルでは、C++ がサポートされているものと仮定します。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 C++ アプリケーションの作成 このチュートリアルでは、C++ 機能の使用方法について説明します。チュー トリアルは、以下の 2 つのファイルで構成されます。 ● Fibonacci.h および Fibonacci.cpp は、フィボナッチ数列を抽出できるク ラス Fibonacci を定義します。 ● CppTutor.cpp は、 Fibonacci クラスから fib1 と fib2 の 2 つのクラスを作成 します。さらに Fibonacci クラスを使用して、2 組のフィボナッチ数列を 抽出します。 2 つのオブジェクトが互いに独立であることを示すために、数列を異なる速 度で抽出します。すなわち、ループ内で、fib1 からは毎回数値を取り出しま すが、fib2 からは 1 回おきに数値を取り出します。 オブジェクト fib1 はデフォルトコンストラクタを使用して作成しますが、 fib2 は引数として整数を受け取るコンストラクタを使用するように定義し ます。 パート 1 チュートリアル UEW-9 33 C++ アプリケーションの作成 C++ アプリケーションのコンパイルとリンク 1 前の章で使用したワークスペース tutorials に新しいプロジェクトを作成し て、project3 と名前を付けます。 2 Fibonacci.cpp と CppTutor.cpp の 2 つのファイルを project3 に追加します。 3 [プロジェクト]>[オプション]を選択して、デフォルトの出荷時設定が使 用されていることを確認します。 注 : このアプリケーションでは、デフォルトのスタックサイズが小さすぎる ことがあります。必要な設定の詳細については、CppTutor.cpp ファイルを参 照してください。 デフォルト設定の他に、C++ プログラミング言語に切り替える必要がありま す。C++ プログラミング言語は IAR DLIB ライブラリによってサポートされ ています。DLIB ライブラリを使用するには、[一般オプション]カテゴリを 選択して、[ライブラリ構成]タブをクリックします。[ライブラリ]ドロッ プダウンリストで [Normal DLIB](一部の製品パッケージでは DLIB)を選択 します。 C++ プログラミング言語に切り替えるには、[C/C++ コンパイラ]カテゴリ を選択して、[言語]タブをクリックします。[言語]>[C++、C++ 派生言 語]>[Embedded C++] を選択して、[Ok] を押します。 IAR DLIB ライブラリと C++ サポートの詳細については、コンパイラのド キュメンテーションを参照してください。 4 [プロジェクト]>[作成]を選択して、アプリケーションをコンパイルして、 リンクします。 別の方法として、ツールバーの[作成]ボタンをクリックすることもできま す。[作成]コマンドは、変更されたファイルをコンパイルして、リンクし ます。 5 [プロジェクト]>[デバッグ]を選択して、C-SPY デバッガを起動します。 ブレークポイントの設定と実行 1 [CppTutor.cpp] ウィンドウがまだ開かれていない場合は、それを開きます。 IAR Embedded Workbench IDE 34 ユーザガイド UEW-9 C++ の使用 2 オブジェクトがどのように構築されているかを調べるために、C++ オブジェ クト fib1 の以下に示す行にブレークポイントを設定します。 Fibonacci fib1; 図 18: CPPTutor.cpp へのブレークポイントの設定 3 [デバッグ]>[実行]を選択するか、ツールバーの[実行]ボタンをクリッ クします。 カーソルがブレークポイントの位置に表示されます。 4 コンストラクタにステップインするには、[デバッグ]>[ステップイン]を 選択するか、ツールバーの[ステップイン]ボタンをクリックします。そこ で[ステップアウト]をもう一度クリックします。 5 以下の行に到達するまで[ステップオーバ]でステップを実行します。 cout << fib1.next(); ファイル Fibonacci.cpp で関数 next に入るまで[ステップイン]でステッ プインします。 6 エディタウィンドウの左下隅にある[関数に移動]ボタンをクリックして、 リストで関数 nth を探してダブルクリックすると、その関数が使用されてい る位置に移動します。以下の行の関数呼出し nth(n-1) にブレークポイント を設定します。 value = nth(n-1) + nth(n-2); パート 1 チュートリアル UEW-9 35 C++ アプリケーションの作成 7 関数呼出しを数レベル下までバックトレースし、各関数呼出しのパラメータ の値を調べてみると面白いかもしれません。ブレークポイントに条件を加え ると、その条件が真になるまでブレークはトリガされないため、[呼出しス タック]ウィンドウで各関数呼出しを参照することができます。 [表示]>[ブレークポイント]を選択して、[ブレークポイント]ウィンドウ を開きます。[ブレークポイント]ウィンドウでブレークポイントを選択し て、右クリックしてコンテキストメニューを開き、[編集]を選択します。 [ブレークポイントの編集]ダイアログボックスが開きます。 図 19: ブレークポイントへのスキップ数の設定 [スキップ数]テキストボックスに「4」 と入力して、[OK] をクリックします。 関数呼出しの参照 8 [デバッグ]>[実行]を選択して、ブレークポイント条件が成立するまでア プリケーションを実行します。 9 C-SPY がブレークポイントで停止したら、[表示]>[呼出しスタック]を選 択して、[呼出しスタック]ウィンドウを開きます。 IAR Embedded Workbench IDE 36 ユーザガイド UEW-9 C++ の使用 図 20: 関数呼出しの検証 呼出しスタックに関数 nth のインスタンスが 5 つ表示されています。[呼出し スタック]ウィンドウでは関数パラメータの値を参照できるので、各関数イ ンスタンスにおける n の値を知ることできます。 [レジスタ]ウィンドウを開き、関数インスタンスをダブルクリックして関数 呼出しをトレースすると、それによってウィンドウの内容が更新される様子 を参照できます。 フィボナッチ数列の出力 1 [表示]メニューを使用して、[ターミナル I/O]ウィンドウを開きます。 2 ブレークポイントを削除して、アプリケーションを最後まで実行します。 出力されるフィボナッチ数列を確認します。 図 21: フィボナッチ数列の出力 パート 1 チュートリアル UEW-9 37 C++ アプリケーションの作成 IAR Embedded Workbench IDE 38 ユーザガイド UEW-9 割込みシミュレーション このチュートリアルでは、シリアルポートの割込みハンドラをプロ ジェクトに追加します。フィボナッチ数列をオンチップ通信周辺デバ イスからリードします (UART)。 このチュートリアルでは、コンパイラ割込みキーワードと #pragma vector ディレクティブの使用方法を説明します。また、割込み、ブ レークポイント、マクロをサポートする機能を使用して、割込みをシ ミュレーションする方法を示します。この例では、シミュレーション の細かい説明は省かれていることに注意してください。ここでの目的 は、C-SPY® のマクロ、ブレークポイント、割込みシステムを使用し て、ハードウェアをシミュレーションできる状況を示すことです。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 割込みシミュレーションを実行するには、IAR C-SPY シミュレータを 使用する必要があることに注意してください。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 割込みハンドラの追加 このセクションでは、割込みを簡単に記述する方法を示します。まずこのプ ロジェクトで使用するアプリケーションについて簡単に説明した後で、プロ ジェクトの設定方法について説明します。 アプリケーションの概要 割込みハンドラは、シリアル通信ポート受信レジスタ (UART)、RBUF から値 を読み取ります。そして、その値を出力します。メインプログラムでは割込 みを有効にして、割込みを待機しながら、フォアグラウンドプロセスでピリ オド (.) の出力を開始します。 パート 1 チュートリアル UEW-9 39 割込みハンドラの追加 注 : このチュートリアルでは、シリアル通信ポートの UART と受信バッファ レジスタの RBUF はシンボル名です。このチュートリアルに従って C-SPY シ ミュレータで割込みをシミュレーションするには、ターゲットシステムに適 した名前を使用する必要があります。cpuname\tutor ディレクトリにある Interrupt.c ファイルを参照してください。 割込みハンドラの記述 以下の行は、このチュートリアルで使用されている割込みハンドラの定義で す(ソースコード全体については、\tutor ディレクトリにある project4 の ファイル cpunameInterrupt.c を参照)。 /* 割込みハンドラの定義 */ #pragma vector=UARTR_VECTOR __interrupt __root void UartReceiveHandler( void ) 割込みベクタのアドレスを指定するために #pragma vector ディレクティブが使用 されます。この場合、UART 受信割込みのための割込みベクタです。また、 割込み関数のために必要な呼出し規約を使用するようにコンパイラに指示す るためにキーワード __interrupt が使用されます。 注 : このチュートリアルではベクタの名前はシンボルです。このチュートリア ルに従って C-SPY シミュレータで割込みをシミュレーションするには、ター ゲットシステムに適した名前を使用する必要があります。cpuname\tutor ディレクトリにある Interrupt.c ファイルを参照してください。 このチュートリアルで使用されている拡張キーワードと pragma ディレクティ ブの詳細については、『コンパイラのドキュメント』を参照してください。 プロジェクトの設定 1 前のチュートリアルで使用したワークスペース tutorials に新しいプロジェ クトを作成して、project4 と名前を付けます。 2 Utilities.c と Interrupt.c の 2 つのファイルをプロジェクトに追加します。 3 [ワークスペース]ウィンドウでプロジェクトレベルノードを選択して、 [プロジェクト]>[オプション]を選択します。 一般オプション、C/C++ コンパイラおよびリンカカテゴリでデフォルトの出 荷時設定が使用されていることを確認します。 注 : 必要となる可能性があるターゲット固有の設定については、ファイル Interrupt.c 内を検索してください。 次に、シミュレーション環境を設定します。 IAR Embedded Workbench IDE 40 ユーザガイド UEW-9 割込みシミュレーション シミュレーション環境の設定 C-SPY の割込みシステムは、サイクルカウンタに基づいて動作します。 C-SPY が割込みを生成するまでの経過サイクル数を指定できます。 UART への入力をシミュレーションするために、値をファイル InputData.txt からリードします。このファイルには、フィボナッチ数列が格納されていま す。UART 受信レジスタ RBUF にイミディエイト読込みブレークポイントを設 定して、ユーザ定義マクロ関数を接続します(この例では Access マクロ関 数) 。このマクロは、テキストファイルからフィボナッチ数列をリードします。 割込みが生成され、割込みルーチンが RBUF をリードし、ブレークポイントが トリガされるたびに Access マクロ関数が実行されて、フィボナッチ数列が UART 受信レジスタにライトされます。 プロセッサが RBUF レジスタを読み込む前に、イミディエイト読込みブレーク ポイントによってブレークがトリガされるので、マクロがレジスタに格納し た値がすぐに命令によって読み込まれます。 このセクションでは、シリアルポートの割込みシミュレーションを行うため のシミュレータ設定に関連して実行する手順を示します。以下の手順があり ます。 ● C-SPY セットアップファイルの定義(ファイル InputData.txt を開いて Access マクロ関数を定義) ● デバッガオプションの指定 ● プロジェクトのビルド ● シミュレータの起動 ● 割込み要求の指定 ● ブレークポイントの設定と Access マクロ関数の関連付け 注 : システムタイマ割込みシミュレーションの簡単な例については、 189 ページのシンプルな割込みシミュレーションを参照してください。 C-SPY セットアップマクロファイルの定義 C-SPY では、C-SPY 起動シーケンス中に登録されるセットアップマクロを定 義できます。このチュートリアルでは、cpuname\tutor ディレクトリにある C-SPY マクロファイル SetupSimple.mac を使用します。このファイルの構造 は以下のとおりです。 最初に、セットアップマクロ関数 execUserSetup が定義されています。この マクロ関数は、C-SPY の設定中に自動的に実行されます。そのため、この関 数を使用して、シミュレーション環境を自動設定します。このマクロが実行 されたことを示すメッセージが[ログ]ウィンドウに出力されます。 パート 1 チュートリアル UEW-9 41 シミュレーション環境の設定 execUserSetup() { __message "execUserSetup() called\n"; 次に、ファイル InputData.txt を開きます。このファイルには、UART に格 納するフィボナッチ数列が記述されています。 _fileHandle = __openFile( "$TOOLKIT_DIR$\\tutor\\InputData.txt", "r" ); その次に、マクロ関数 Access が定義されています。このマクロ関数は、ファ イル InputData.txt からフィボナッチ数列を読み込んで、受信レジスタアド レスに代入します。 Access() { __message "Access() called\n"; __var _fibValue; if( 0 == __readFile( _fileHandle, &_fibValue ) ) { RBUF = _fibValue; } } Access マクロは、イミディエイト読込みブレークポイントに接続する必要 があります。ただし、このチュートリアルでは、後半部分でその接続を行い ます。 これで、このファイルには、リセット時と終了時のファイルハンドリングを 適切に管理するための 2 つのマクロ関数が記述されています。 マクロの詳細については、「C-SPY マクロシステムの使用」と「C-SPY マクロ リファレンス」を参照してください。 次に、マクロファイルを指定して、その他の必要なデバッガオプションを設 定します。 C-SPY オプションの設定 1 デバッガオプションを設定するには、[プロジェクト]>[オプション]を選 択します。 [デバッガ]カテゴリで、[設定]タブをクリックします。 2 [マクロファイルの使用]参照ボタンを使用して、使用するマクロファイルを 指定します。 SetupSimple.mac 別の方法として、引数変数を使用してパスを指定することもできます。 $TOOLKIT_DIR$\tutor\SetupSimple.mac IAR Embedded Workbench IDE 42 ユーザガイド UEW-9 割込みシミュレーション 詳細については、246 ページの引数変数のまとめを参照してください。 図 22: セットアップマクロファイルの指定 3 C-SPY 割込みシステムは、デバイス記述ファイルで提供される割込み定義を 使用します。 [デバイス記述 ファイル]オプションで、該当するファイルを 指定できます。このチュートリアルで使用されるデバイス記述ファイルの詳 細については、cpuname\tutor ディレクトリにある Interrupt.c ファイルを 参照してください。 4 [Run to main] を選択して、[OK] をクリックします。これにより、main 関数ま で実行するとデバッグセッションが開始されるように設定されます。 これで、プロジェクトをビルドする準備ができました。 プロジェクトのビルド 1 [プロジェクト]>[作成]を選択して、プロジェクトをコンパイルして、リン クします。 別の方法として、ツールバーの[作成]ボタンをクリックすることもできま す。[作成]コマンドは、変更されたファイルをコンパイルして、リンクし ます。 シミュレータの起動 1 C-SPY を起動して、project4 プロジェクトを実行します。 パート 1 チュートリアル UEW-9 43 シミュレーション環境の設定 いくつかウィンドウが開く中で、[Interrupt.c] ウィンドウが表示されます。この ウィンドウをクリックして、アクティブウィンドウにします。 2 [ログ]ウィンドウを調べます。マクロファイルがロードされ、 execUserSetup 関数が呼び出されたことを確認します。 割込みシミュレーションの指定 ここで、2000 サイクルごとの割込みをシミュレーションするように割込みを 指定します。 1 [シミュレータ]>[割込み設定]を選択して、[割込み設定]ダイアログボッ クスを表示します。 [新規]をクリックして、[割込みの編集]ダイアログ ボックスを表示します。ここで、以下の割込み設定を指定します。 設定 値 説明 割込み UARTR_VECTOR 使用する割込みを指定。 説明 そのまま使用 シミュレータが割込みを正しくシミュレーショ ンするために使用する割込み定義。 初回割込み 4000 シミュレータを実行してから最初に割込みを有 効にするまでの待機時間を指定。サイクルカウ ンタがこの値に達すると、割込みが有効になり ます。 繰返し間隔 2000 割込みの繰り返し発生間隔をクロックサイクル 単位で指定。 保持時間 無限 保持時間(今回は未使用)。 確率 (%) 100 確率を指定します。(100% を指定すると割込み が指定された頻度で発生。別のパーセント値を 指定すると、割込み動作をよりランダムにシ ミュレーション可能。 ばらつき (%) 0 ばらつき(今回は未使用)。 表 8: [割込]ダイアログボックス IAR Embedded Workbench IDE 44 ユーザガイド UEW-9 割込みシミュレーション 図 23: 割込み設定の検証 C-SPY を実行すると、サイクルカウンタが初回割込み待機時間に到達するま で待機します。最初のアセンブラ命令が実行されると、その後は約 2000 サイ クルごとに割込みが繰り返し発生します。 2 設定を指定したら、[OK] をクリックして[割込みの編集]ダイアログボック スを閉じます。もう一度 [OK] をクリックして、[割込み設定]ダイアログ ボックスを閉じます。 C-SPY セットアップファイルでシステムマクロ __orderInterrupt を使用し て割込み定義手順を自動化する方法の詳細については、「47 ページのマクロ による割込みとブレークポイントの設定」を参照してください。 イミディエイトブレークポイントの設定 マクロを定義してイミディエイトブレークポイントに接続することによって、 マクロを使用してハードウェアデバイス、たとえばこのチュートリアルのよ うに入出力ポートの動作をシミュレーションできます。イミディエイトブ レークポイントでは実行を停止するわけではありません。一時的にシミュ レーションの実行を停止して、条件のチェックを行い、接続されているマク ロを実行するだけです。 この例では、RBUF アドレスにイミディエイト読込みブレークポイントを設定 して、定義済みの Access マクロをそこに接続することによって、UART へ の入力をシミュレーションします。マクロにより UART への入力をシミュ レーションします 以下の手順に従います。 1 [表示]>[ブレークポイント]を選択して[ブレークポイント]ウィンドウ を開き、右クリックしてコンテキストメニューを開きます。そこから[新規 ブレークポイント]>[イミディエイト]を選択して[イミディエイト]タブ を開きます。 パート 1 チュートリアル UEW-9 45 割込みシミュレーション 2 以下に示すブレークポイントのパラメータを追加します。 設定 値 説明 ブレーク位置 RBUF 受信バッファアドレス アクセスタイプ リード ブレークポイントタイプ(リード / ライト (E)) アクション Access() ブレークポイントに接続するマクロ 表 9: [ブレークポイント]ダイアログボックス C-SPY は実行中に RBUF アドレスからの読込みアクセスを検出すると、一時的 にシミュレーションの実行を停止して、Access マクロを実行します。マクロ はファイル InputData.txt から値をリードし、RBUF にライトします。C-SPY がシミュレーションを再開して、RBUF の受信バッファ値をリードします。 3 [OK] をクリックして、[ブレークポイント]ダイアログボックスを閉じます。 C-SPY セットアップファイルでシステムマクロ __setSimBreak を使用してブ レークポイント設定手順を自動化する方法の詳細については 47 ページのマク ロによる割込みとブレークポイントの設定を参照してください。 割込みシミュレーション このセクションでは、アプリケーションを実行して、シリアルポートの割込 みシミュレーションを行います。 アプリケーションの実行 1 [Interrupt.c] ソースウィンドウで、アプリケーションをステップ実行して、 while ループに到達したら停止します。このループで、アプリケーションは 入力を待機します。 2 [Interrupt.c] ソースウィンドウで、関数 UartReceiveHandler を探します。 3 この関数の ++callCount; 文に挿入ポイントを設定した後、 [編集]>[ブレー クポイントの切替え]を選択するか、ツールバーの[ブレークポイントの切 替え]ボタンをクリックして、ブレークポイントを設定します。その他に、 コンテキストメニューから同じ操作を実行することもできます。 ブレークポイントの詳細を検証する場合、[表示]>[ブレークポイント]を 選択します。 4 [ターミナル I/O]ウィンドウを開いて、[デバッグ]>[実行]を選択する か、ツールバーの[実行]ボタンをクリックして、アプリケーションを実行 します。 アプリケーションは割込み関数の位置で停止します。 IAR Embedded Workbench IDE 46 ユーザガイド UEW-9 割込みシミュレーション 5 もう一度[実行]をクリックすると、次の数字が[ターミナル I/O]ウィンド ウに出力されます。 メインプログラムでフィボナッチ値のカウンタに上限を設定しているので、 チュートリアルアプリケーションはすぐに exit ラベルに到達し、停止します。 [ターミナル I/O]ウィンドウにフィボナッチ数列が表示されます。 図 24: [ターミナル I/O]ウィンドウへのフィボナッチ数列の出力 マクロによる割込みとブレークポイントの設定 ブレークポイントの設定や割込みを定義する手順を自動化するには、それぞ れシステムマクロ __setSimBreak、__orderInterrupt をセットアップマク ロ execUserSetup で実行します。 システムマクロの呼出しによってファイル SetupAdvanced.mac が拡張され、 ブレークポイントの設定や、割込みの指定ができます。 simulationSetup() {... _interruptID = _ _orderInterrupt( "UARTR_VECTOR", 4000, 2000, 0, 1, 0, 100 ); if( -1 == _interruptID ) { __message "ERROR: failed to order interrupt"; } パート 1 チュートリアル UEW-9 47 マクロによる割込みとブレークポイントの設定 _breakID = __setSimBreak( "RBUF", "R", "Access()" ); } 前のチュートリアルで使用したファイル SetupSimple.mac をファイル SetupAdvanced.mac で置き換えることによって、ブレークポイントの設定と 割込みの定義が、C-SPY の起動時に自動的に実行されます。したがって、シ ミュレーションを開始するときに、[割込]ダイアログボックスと[ブレーク ポイント]ダイアログボックスに値を手動で入力する必要はありません。 注 : ファイル SetupAdvanced.mac をロードするには、その前に定義されてい たブレークポイントと割込みを削除する必要があります。 IAR Embedded Workbench IDE 48 ユーザガイド UEW-9 ライブラリの作成と利用 このチュートリアルでは、ライブラリプロジェクトの作成方法と、ラ イブラリプロジェクトをアプリケーションプロジェクトに結合する方 法について説明します。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 すべてのチュートリアルと関連ファイルの概要については、3 ページ のチュートリアル概要を参照してください。 ライブラリの使用 大規模なプロジェクトに取り組んでいると、さまざまなアプリケーションで 使用される、1 つまたは複数のルーチンを含む便利なモジュールがすぐに集 まってきます。必要になるたびにモジュールのアセンブルまたはコンパイル を避けるために、そのモジュールをオブジェクトファイルとして、すなわち アセンブルまたはコンパイルだけしてリンクはしない状態で、保存すること ができます。 ライブラリと呼ばれる単一オブジェクトファイルに多くのモジュールを集め ることができます。デバイスドライバなど関連するルーチンは、ライブラリ ファイルとしてまとめることをお勧めします。 使用する製品パッケージに XLINK リンカが含まれる場合は IAR XAR ライブ ラリビルダを、ILINK リンカが含まれていれば、IAR アーカイブツール iarchive をそれぞれ使用してライブラリをビルドします。 Main プログラム Main.sxx プログラム(ILINK の場合は Main.s)は、max というルーチンを使 用して、1 つのレジスタの内容を他の 2 つのレジスタの最大値に設定します。 EXTERN ディレクティブは、リンクする際に解決される外部シンボルとして、 max を宣言します。 プログラムのコピーは、cpuname\tutor ディレクトリにあります。 パート 1 チュートリアル UEW-9 49 ライブラリの使用 ライブラリルーチン 2 つのライブラリルーチンによって、個別にアセンブルされたライブラリが 形成されます。ライブラリは、main に呼び出される max ルーチンおよび対応 する min ルーチンから構成され、どちらも Main.sxx プログラムで使用される レジスタの内容を操作します。Maxmin.sxx ファイルはこれらのライブラリ ルーチンを含み、コピーは cpuname\tutor ディレクトリにあります。 ルーチンは、MODULE ディレクティブ(XLINK のみ)によってライブラリモ ジュールとして定義されます。このディレクティブは、モジュールが他のモ ジュールによって参照されている場合にのみ、そのモジュールをインクルー ドするように IAR XLINK リンカに指示します。 PUBLIC ディレクティブは、max と min を他のモジュールに対するパブリック シンボルとして宣言します。 MODULE ディレクティブと PUBLIC ディレクティブの詳細については、 『IAR ア センブラリファレンスガイド』を参照してください。 新しいプロジェクトの作成 1 これまでの章で使用したワークスペース tutorials に新しいプロジェクト project5 を追加します。 2 ファイル Main.sxx を新しいプロジェクトに追加します。 3 オプションを設定するには、[プロジェクト]>[オプション]を選択します。 [一般オプション]カテゴリを選択して、[ライブラリ構成]タブをクリック します。 [ライブラリ]ドロップダウンリストで[なし]を選択します。これ は、標準の C/C++ ライブラリはリンクされないことを意味します。 他のオプションカテゴリでは、デフォルトオプションを使用します。 4 ファイル Main.sxx をアセンブルするには、[プロジェクト]>[コンパイラ] を選択します。 別の方法として、ツールバーの[コンパイラ]ボタンをクリックすることも できます。 ライブラリプロジェクトの作成 これで、ライブラリプロジェクトを作成する準備が完了です。 1 同じワークスペース tutorials に新しいプロジェクト tutor_library を追加 します。 2 ファイル Maxmin.sxx を新しいプロジェクトに追加します。 IAR Embedded Workbench IDE 50 ユーザガイド UEW-9 ライブラリの作成と利用 3 オプションを設定するには、[プロジェクト]>[オプション]を選択します。 [一般オプション]カテゴリで、以下の設定を確認します。 ページ オプション 出力 出力ファイル : ライブラリ ライブラリ構成 ライブラリ : なし 表 10: ライブラリプロジェクトの一般オプション カテゴリリストに[ライブラリビルダ]が表示されていることに注意してく ださい。これは、IAR XAR ライブラリビルダ(XLINK の場合)IAR アーカイ ブツール iarchive(ILINK の場合)がビルドツールチェーンに追加されたこ とを意味します。このチュートリアルでは、ライブラリをビルドするために 特定のオプションを設定する必要はありません。 [OK] をクリックします。 4 [プロジェクト]>[作成]を選択します。 ライブラリ出力ファイル tutor_library.rxx が、projects\Debug\Exe ディ レクトリに作成されました。 アプリケーションプロジェクトでのライブラリの使用 maxmin ルーチンを含むライブラリを project5 に追加します。 1 [ワークスペース]ウィンドウで、[project5] タブをクリックします。[プロ ジェクト]>[ファイルの追加]を選択して、projects\Debug\Exe ディレク トリにあるファイル tutor_library.rxx(ILINK の場合は tutor_library.a)に追加します。 [開く]をクリックします。 2 [作成]をクリックして、プロジェクトをビルドします。 3 これで、ライブラリが実行可能オブジェクトに結合され、アプリケーション 『IAR リ を実行する準備が完了しました。ライブラリの操作方法については、 ンカおよびライブラリツールリファレンスガイド』(XAR を使用してライブ ラリをビルドする場合) 、 「コンパイラのドキュメント」の IAR アーカイブ ツールのドキュメンテーション(iarchive を使用してライブラリをビルドす る場合) を参照してください。 パート 1 チュートリアル UEW-9 51 ライブラリの使用 IAR Embedded Workbench IDE 52 ユーザガイド UEW-9 パート 2. プロジェクト管 理とビルド 『IAR Embedded Workbench IDE ユーザガイド』のこのパートは、以下 の章で構成されています。 ● 開発環境 ● プロジェクト管理 ● ビルド ● 編集 53 UEW-9 54 UEW-9 開発環境 この章では、IAR Embedded Workbench® 統合開発環境 (IDE) について 説明します。また、要件に適合するように環境をカスタマイズする方 法について説明します。 IAR Embedded Workbench IDE — 概要 ツールチェーン IDE は、必要なすべてのツール(ツールチェーン)が統合された環境です。 C/C++ コンパイラ、アセンブラ、リンカ、エディタ、作成ユーティリティ付 属のプロジェクトマネージャ、IAR C-SPY® デバッガが統合されています。 ソースコードのビルド専用に使用されるツールを、ビルドツールと呼びます。 ビルド済みプロジェクト環境で外部ツールとして利用したい場合は、コン パイラ、アセンブラ、リンカを、コマンドライン環境で実行することもで きます。 連続したワークフロー 使用するマイクロコントローラに関わらず、ユーザインタフェースは同じ で、各デバイスに対する一般およびターゲット固有のサポートが提供されて います。 拡張可能なモジュール化構造の環境 IDE にはプロジェクトに必要なあらゆる機能が備わっていますが、他のツー ルを統合することも可能です。たとえば、IAR visualSTATE をツールチェーン に追加できます。すなわち、有限オートマトン図を IDE のプロジェクトに直 接追加することができます。ソースコード管理 (SCC)(レビジョン管理)を 使用して、バージョンの異なるソースコードを管理することができます。 IAR Embedded Workbench では、Microsoft が公開している SCC インタフェー スに準拠する任意のサードパーティ製ソースコード管理システムを利用でき ます。カスタムビルドというメカニズムを使用して、他のツールをツール チェーンに組み込むこともできます(80 ページのツールチェーンの拡張を参 照)。 パート 2 プロジェクト管理およびビルド UEW-9 55 IAR Embedded Workbench IDE — 概要 ウィンドウ管理 ウィンドウの配置を自在かつ簡単に設定できるように、各ウィンドウはドッ キング可能になっています。また、ウィンドウをタブグループで整理するこ ともできます。 以下の図は、[IAR Embedded Workbench IDE] ウィンドウのさまざまなコン ポーネントを示します。 メニューバー ツールバー エディ タウィ ンドウ [ワークス ペース] ウィンドウ [メッセー ジ]ウィン ドウ ステータス バー 図 25: [IAR Embedded Workbench IDE] ウィンドウ 使用するツールによっては、ウィンドウの外観が異なる場合があります。 IDE の実行 タスクバーの[スタート]ボタンをクリックして、[全プログラム]>[IAR Systems]>[IAR Embedded Workbench for チップメーカ CPUNAME]>[IAR Embedded Workbench] を選択します。 IAR Embedded Workbench IDE 56 ユーザガイド UEW-9 開発環境 コマンドラインまたは Windows エクスプローラからプログラムを起動するに は、IAR システムズのインストール先の common\bin ディレクトリにある IarIdePm.exe ファイルを実行します。 ワークスペースファイル名のダブルクリック ワークスペースファイル名には、拡張子 eww が付いています。ワークスペー スのファイル名をダブルクリックすると、IDE が起動します。複数バージョ ンの IAR Embedded Workbench がインストールされている場合、ワークスペー スファイルは、そのファイルタイプを使用する最新バージョンの IAR Embedded Workbench によって開かれます。 終了 IDE を終了するには、 [ファイル]>[終了]を選択します。終了する前に、 エディタウィンドウ、プロジェクト、ワークスペースに対する変更を保存す るかどうかを確認するメッセージが表示されます。 環境のカスタマイズ IDE は、高度にカスタマイズ可能な環境です。このセクションでは、画面上 のウィンドウを操作し編成する方法、IDE で実行できるカスタマイズ、外部 ツールと通信するための環境設定方法について説明します。 画面上のウィンドウの編成 IDE では、ウィンドウの位置やレイアウトの調整を任意に設定できます。 ウィンドウは特定の位置にドッキングして、タブグループとして編成できま す。また、ウィンドウをフローティング化することができます。フローティ ングウィンドウは、常に他のウィンドウよりも前に表示されます。フロー ティングウィンドウのサイズや位置を変更しても、現在開かれている他の ウィンドウは影響を受けません。 一度保存したワークスペースを開くと、保存したときと同じウィンドウが同 じサイズで同じ位置に開きます。 C-SPY 環境で実行されるプロジェクトのレイアウトはすべて個別に保存され ます。ワークスペースに関する情報の他に、開いているすべてのデバッガ固 有のウィンドウに関する情報も保存されます。 ドッキングウィンドウとフローティングウィンドウの使用 開くウィンドウにはそれぞれデフォルトの位置があり、それは現在開かれて いる他のウィンドウによって変わります。ウィンドウの位置を簡単に、そし パート 2 プロジェクト管理およびビルド UEW-9 57 環境のカスタマイズ て完全に制御できるように、各ウィンドウをドッキングしたりフローティン グ化したりできます。 ドッキングされたウィンドウは、ユーザが決めた Embedded Workbench メイン ウィンドウの特定の領域にロックされます。同時に複数のウィンドウを開い た状態を維持するには、ウィンドウをタブグループとして編成します。これ は、画面の特定の領域を、同時に開いている複数のウィンドウが使用するこ とを意味します。この場合、ウィンドウのサイズ変更も簡単に実行できます。 ドッキングされたウィンドウの 1 つをサイズ変更すると、ドッキングされた 他のウィンドウのサイズがそれに従って変更されます。 フローティングウィンドウは、常に他のウィンドウよりも前面に表示されま す。その位置とサイズは、現在開かれている他のウィンドウには影響を与えま せん。フローティングウィンドウは画面上の任意の位置に移動することがで き、IAR Embedded Workbench IDE メインウィンドウの外部にも配置できます。 注 : エディタウィンドウは常にドッキングされています。エディタウィンド ウを開くと、その位置は現在開いている他のウィンドウに応じて自動的に決 まります。エディタウィンドウの操作方法の詳細については、83 ページの IAR Embedded Workbench エディタの使用を参照してください。 ウィンドウの編成 ウィンドウを個別のウィンドウとして配置するには、開いている別のウィン ドウの横にウィンドウをドラッグします。 ウィンドウを開いている別のウィンドウと同じタブグループに配置するには、 該当する領域の中央にウィンドウをドラッグして、ドロップします。 ウィンドウをフローティング化するには、ウィンドウのタイトルバーをダブ ルクリックします。 IAR Embedded Workbench IDE メインウィンドウの下端にあるステータスバー には、ウィンドウのサイズを変更するためのヘルプが用意されています。 IDE のカスタマイズ [ツール]>[オプション]を選択すると、以下に示すような IDE をカスタマ イズするためのさまざまなコマンドを使用できます。 IAR Embedded Workbench IDE 58 ユーザガイド UEW-9 ● エディタの設定 ● エディタの色とフォントの設定 ● プロジェクトビルドコマンドの設定 ● C-SPY のウィンドウの設定 ● 外部エディタの連携 ● 共通フォントの変更 開発環境 ● ● キーバインディングの変更 [メッセージ]ウィンドウへの出力数の設定 この他に、認識するファイル名拡張子の数を増やすことができます。デフォ ルトでは、ビルドツールチェーンの各ツールは、標準的なファイル名拡張子 に対応します。それ以外のファイル名拡張子を持つソースファイルを使用す る場合は、使用可能なファイル名拡張子を変更できます。[ツール]>[ファ イル名の拡張子]を選択して、必要なコマンドを実行してください。 IDE をカスタマイズするコマンドのリファレンス情報については、253 ページ の[ツール]メニューを参照してください。また、エディタのカスタマイズの 詳細については、91 ページのエディタ環境のカスタマイズを参照してくださ い。C-SPY 関連のカスタマイズの詳細については、 「パート 4. IAR C-SPY シ ミュレータ」を参照してください。 外部ツールの呼出し [ツール]メニューは設定可能なメニューであり、外部ツールを追加すること によって、IDE 内から簡単にそれらのツールを使用できます。そのため、メ ニューコマンドとしてメニューに表示されるように事前に設定したツールに 応じて、表示されるメニューが異なる場合があります。 パート 2 プロジェクト管理およびビルド UEW-9 59 環境のカスタマイズ メニューに外部ツールを追加するには、[ツール]>[ツールの設定]を選択 して、[ツールの設定]ダイアログボックスを開きます。 図 26: [ツールの設定]ダイアログボックス このダイアログボックスのリファレンス情報については、276 ページの[構 成ツール]ダイアログボックスを参照してください。 注 : IDE のツールチェーンの拡張に[ツールの設定]ダイアログボックスを 使用することはできません(55 ページのツールチェーンを参照)。 適切な情報を入力して [OK] をクリックすると、指定したメニューコマンド が[ツール]メニューに表示されます。 図 27: カスタマイズした[ツール]メニュー 注 : 標準ビルドツールチェーンに外部ツールを追加する場合は、「80 ページの ツールチェーンの拡張」を参照してください。 IAR Embedded Workbench IDE 60 ユーザガイド UEW-9 開発環境 コマンドラインコマンドの追加 コマンドラインコマンドとバッチファイル呼出しは、コマンドシェルから実 行する必要があります。コマンドラインコマンドを[ツール]メニューに追 加すると、そのメニューからコマンドラインコマンドを実行できます。 1 [ツール]メニューにコマンドを追加するには、適切なコマンドシェルを指定 する必要があります。 以下のコマンドシェルのいずれか 1 つを[コマンド]テキストボックスに入 力します。 コマンドシェル システム cmd.exe Windows XP/Vista/7 表 11: コマンドシェル 2 [引数]テキストボックスで、コマンドラインコマンドかバッチファイル名を 指定します。 [引数]のテキストは、以下に示すように指定する必要があります。 /C name ここで、name は、実行するコマンドかバッチファイルの名前です。 /C オプションは、実行後にシェルを終了するように指定し、ツールの終了を IDE が検出できるようにします。 例 ネットワークドライブに project ディレクトリ全体のコピーを作成するため に、コマンド Backup を[ツール (T)]メニューに追加する場合は、[コマン ド]をホスト環境に応じて command.cmd か cmd.exe を指定し、[引数]は下 記のように指定します。 /C copy c:\project\*.* F: 別の方法として、引数に変数を使用して、再配置可能パスを使用することも できます。 /C copy $PROJ_DIR$\*.* F: パート 2 プロジェクト管理およびビルド UEW-9 61 環境のカスタマイズ IAR Embedded Workbench IDE 62 ユーザガイド UEW-9 プロジェクト管理 この章では、IAR Embedded Workbench IDE で使用されるプロジェクト モデルについて説明します。具体的には、プロジェクトの編成方法、 バージョンの異なるアプリケーションの管理を可能にする複数のプロ ジェクト、ビルド構成、グループ、ソースファイル、オプションを含 むワークスペースの指定方法について説明します。また、サードパー ティ製の外部ソースコード管理システムを対話的に操作する手順につ いても説明します。 プロジェクトモデル 数百ものファイルを扱う大規模な開発プロジェクトでは、簡単にアクセスで き、プロジェクトに関わる数人のエンジニアによる保守が可能な構造に、 ファイルを編成する必要があります。 プロジェクト管理 — 概要 IDE は、C/C++ ソースコードファイル、アセンブラファイル、インクルード ファイル、その他の関連モジュールなど、すべてのプロジェクトモジュール を管理するための機能を装備しています。ワークスペースを作成し、1 つま たは複数のプロジェクトを追加できます。ファイルはグループ化が可能で、 プロジェクト、グループ、ファイルのすべてのレベルでオプションを設定で きます。リビルド実行時に必要なモジュールが再変換されるように、変更が 記録されます。そのため、古いモジュールが含まれる実行可能ファイルが作 成されることがありません。他にも、以下のような特長があります。 ● スムーズに開発が開始できるように、ビルドおよび実行がすぐに可能なプ ロジェクトテンプレートが付属 ● プロジェクトを階層構造で表示 ● 階層構造でシンボルを表示できるソースブラウザ ● オプションを全体、ソースファイルのグループ単位、個々のソースファイ ル単位に設定可能 ● [作成]コマンドでは自動的に変更を検出して、必要な操作のみを実行します ● テキストベースのプロジェクトファイル ● カスタムビルドユーティリティにより、標準ツールチェーンを簡単に拡張 可能 ● プロジェクトファイルを入力としてコマンドラインビルド可能 パート 2 プロジェクト管理およびビルド UEW-9 63 プロジェクトモデル プロジェクトの編成方法 IDE は、ソフトウェア開発プロジェクトで通常行われる編成方法に合わせて 設計されています。たとえば、バージョンの異なるターゲットハードウェア に対応して関連するバージョンのアプリケーションを開発する、初期のバー ジョンにはデバッグルーチンを組込み最終アプリケーションには組み込まな いようにする、などの編成が考えられます。 異なるターゲットハードウェアに応じ、複数バージョンのアプリケーション を開発する場合でも、ソースファイルは共通であることが多いので、それら のファイルのコピーを 1 つだけ保持するようにして、修正が自動的にアプリ ケーションの各バージョンに反映されるように編成することができます。ま た、ハードウェア依存部分を処理アプリケーションのように、複数のバー ジョンでソースファイルが異なる場合もあります。 IDE を使用すると、論理構造が一目でわかるような階層ツリー構造にプロ ジェクトを編成できます。以降のセクションでは、階層のさまざまなレベル について説明します。 プロジェクトとワークスペース 通常は、組込みシステムアプリケーションに必要なソースファイルを含むプ ロジェクトを作成します。関連プロジェクトが複数存在する場合は、それら に同時にアクセスして操作できます。そのために、関連するプロジェクトを ワークスペースに編成する機能があります。 1 つのワークスペースには、1 つ以上のプロジェクトを追加できます。どの プロジェクトも、少なくとも 1 つのワークスペースに属している必要があり ます。 1 つ例を示します。2 つの関連するアプリケーション、たとえば A と B を開 発します。開発チーム A はアプリ A を、開発チーム B はアプリ B を開発し ます。2 つのアプリケーションは関連性があるので、ソースコードの一部は 両アプリケーション間で共有できます。この場合、以下のプロジェクトモデ ルを適用できます。 IAR Embedded Workbench IDE 64 ユーザガイド UEW-9 ● 3 つのプロジェクト。各アプリケーション用に 1 つずつのプロジェクト、 共通ソースコード用にもう 1 つのプロジェクト。 ● 2 つのワークスペースチーム A のワークスペースとチーム B のワークス ペース。 プロジェクト管理 共通のソースをライブラリプロジェクト(コンパイル済みだがリンクはされ ていないオブジェクトコード)にまとめる方法は、不要なコンパイルを避け ることができるので、使いやすさと効率の両面で優れています。 図 28: ワークスペースとプロジェクトの例 ライブラリプロジェクトとアプリケーションプロジェクトを組み合せた例に ついては、「パート 1. チュートリアル」の「ライブラリの作成と利用」を参 照してください。 プロジェクトとビルド構成 多くの場合、複数バージョンのプロジェクトをビルドする必要があります。 Embedded Workbench を使用すると、プロジェクトごとに複数のビルド構成を 定義できます。たとえば、デバッグとリリースの 2 つだけを必要とする単純 なケースがあります。この 2 つのビルド構成は、最適化、デバッグ情報、出 力形式に使用するオプションだけが異なります。リリース構成では、プリプ ロセッサシンボル NDEBUG が定義され、アプリケーションにはアサートが含ま れません。 ビルド構成を追加すると、複数のターゲットデバイス上でアプリケーション を使用する場合などに便利です。つまり、アプリケーションは同じで、コー ドのハードウェア関連の部分が異なる場合です。したがって、ビルドする パート 2 プロジェクト管理およびビルド UEW-9 65 プロジェクトモデル ターゲットデバイスに応じて、ビルド構成からいくつかのソースファイルを 除外できます。プロジェクト A では、以下のビルド構成によって要件が満た されます。 ● プロジェクト A – デバイス 1: リリース ● プロジェクト A – デバイス 1: デバッグ ● プロジェクト A – デバイス 2: リリース ● プロジェクト A – デバイス 2: デバッグ グループ 通常は、プロジェクトには論理的に関連する数百のファイルが含まれます。 そこで、関連するソースファイルをまとめてグループを定義して、そのよ うな複数のグループを各プロジェクトに定義することができます。また、 複数レベルのサブグループを定義して、論理階層を表現することもできま す。デフォルトでは、グループはすべてのビルド構成に存在しますが、グ ループを特定のビルド構成から排除するように指定することもできます。 ソースファイル ソースファイルは、プロジェクトノードかグループ階層の直下に置くことが できます。プロジェクトのファイルの数が多く、扱いにくい場合は、グルー プ階層を使用すると便利です。デフォルトでは、各ファイルはプロジェクト のすべてのビルド構成に存在しますが、ファイルを特定のビルド構成から排 除するように指定することもできます。 実際にビルドされ、出力コードにリンクされるのは、ビルド構成に含まれる ファイルだけです。 プロジェクトを正常にビルドすると、ソースファイルの下に、そこにインク ルードされているファイルとそこから生成された出力ファイルが構造化され て表示されます。 注 : ビルド構成の設定によって、ソースファイルのコンパイル時に使用する インクルードファイルを選択できます。これは、コンパイル後にソースファ イルに関連付けられているインクルードファイルのセットは、ビルド構成に よって異なる場合があることを意味します。 ワークスペースの作成と管理 このセクションでは、ワークスペース、プロジェクト、グループ、ファイル、 ビルド構成を作成する手順の概要について説明します。[ファイル]メニュー には、ワークスペースを作成するコマンドがあります。[プロジェクト]メ ニューには、プロジェクトの作成、プロジェクトへのファイルの追加、グ ループの作成、プロジェクトオプションの指定、現在のプロジェクトに対す る IAR システムズ製開発ツールの実行を行うコマンドがあります。 IAR Embedded Workbench IDE 66 ユーザガイド UEW-9 プロジェクト管理 これらのメニュー、メニューコマンド、ダイアログボックスのリファレンス 情報については、「IAR Embedded Workbench IDE リファレンス」を参照してく ださい。 ワークスペースとその内容の作成と管理に関連する手順を以下に示します。 ● ワークスペースの作成 空の[ワークスペース]ウィンドウが表示されます。ここで、プロジェク ト、グループ、ファイルを表示できます。 ● ワークスペースへの新規 / 既存プロジェクトの追加 新しいプロジェクトを作成する場合、プロジェクト設定が事前に設定され ているテンプレートプロジェクトを使用できます。C アプリケーション、 C++ アプリケーション、アセンブラアプリケーション、ライブラリプロ ジェクトのそれぞれで使用できるテンプレートプロジェクトがあります。 ● グループの作成 グループは、プロジェクトの最上位ノードかプロジェクト内の別のグルー プのどちらかに追加できます。 ● プロジェクトへのファイルの追加 ファイルは、プロジェクトの最上位ノードかプロジェクト内のグループの どちらかに追加できます。 ● 新しいビルド構成の作成 デフォルトでは、ワークスペースに追加する各プロジェクトには、Debug と Release の 2 つのビルド構成があります。 新しい構成を作成する場合、既存の構成を使用できます。別の方法とし て、デフォルトのビルド構成を選択することもできます。 新しいビルド構成に使用するツールチェーンは、同じプロジェクト内の他 のビルド構成と同一である必要はありません。 ● ビルド構成からのグループとファイルの排除 [ワークスペース]ウィンドウで、排除されたグループやファイルを表す アイコンの色が白に変わることに注意してください。 ● プロジェクトから項目を削除 詳細な例については、7 ページのアプリケーションプロジェクトの作成を参 照してください。 注 : これらの手順の一部は実行する必要がない場合があります。 ドラッグアンドドロップ エクスプローラから、個々のソースファイルやプロジェクトファイルを [ワークスペース]ウィンドウにドラッグすることができます。ソースファイ ルをグループにドロップすると、そのグループに追加されます。プロジェク パート 2 プロジェクト管理およびビルド UEW-9 67 プロジェクトファイルのナビゲート トツリーの外([ワークスペース]ウィンドウの背景)にドロップされたソー スファイルは、アクティブプロジェクトに追加されます。 ソースファイルパス IDE は、ある程度までのソースファイルの相対パスをサポートします。 ● プロジェクトファイル プロジェクトファイルのファイル部分のパスは、同じドライブにある場合 は相対パスです。パスは、$PROJ_DIR$ または $EW_DIR$ のいずれかに対し て相対的です。引数変数 $EW_DIR$ が使用されるのは、パスが $EW_DIR$ へのサブディレクトリにあるファイルを参照し、$EW_DIR$ からの距離が $PROJ_DIR$ からの距離より短い場合だけです。 プロジェクトファイルの一部であるファイルのパスは、ファイルが異なる ドライブにある場合は絶対パスです。 ● ワークスペースファイル ワークスペースファイルと同じドライブにあるファイルについては、パス は $PROJ_DIR$ に対して相対的です。 ワークスペースファイルと異なるドライブにあるファイルについては、パ スは絶対パスです。 ● デバッグファイル パスは、ファイルが IAR システムズのコンパイルツールでビルドされる場 合は絶対パスです。 プロジェクトファイルのナビゲート プロジェクトファイルをナビゲートするには、[ワークスペース]ウィンドウ または[ソースブラウザ]ウィンドウを使用する、主に 2 種類の方法があり ます。[ワークスペース]ウィンドウには、論理的にグループ化されたソース ファイル、依存ファイル、出力ファイルが、階層構造で表示されます。一方、 [ソースブラウザ]ウィンドウには、現在[ワークスペース]ウィンドウでア クティブなビルド構成の情報が表示されます。ビルド構成については、変数、 関数、型定義など、グローバルに定義されているすべてのシンボルが階層的 に表示されます。クラスについては、基底クラスの情報も表示されます。 IAR Embedded Workbench IDE 68 ユーザガイド UEW-9 プロジェクト管理 ワークスペースの表示 [ワークスペース]ウィンドウは、アプリケーションの開発中にプロジェクト やファイルにアクセスするインタフェースです。 1 [ワークスペース]ウィンドウの下端にあるタブをクリックすると、そのプロ ジェクトが表示されます。 構成ドロップダウンメ ニュー 次にプロジェクトをビ ルドするときに、ファ イルがリビルドされる ことを示します ファイルノードで のオプションの オーバライド用の インジケータ ワークスペース の表示内容を選 択するタブ 図 29: [ワークスペース]ウィンドウでプロジェクトを表示 ビルドされたファイルごとに出力フォルダアイコンが表示されます。この フォルダには、オブジェクトファイルやリストファイルなどの生成された ファイルがあります。リストファイルは、リストファイルオプションが有効 な場合にのみ生成されます。プロジェクトノードにも出力フォルダが関連付 けられています。このフォルダには、実行可能ファイルやリンカマップファ イル(リストファイルオプションが有効な場合)など、プロジェクト全体に 関連して生成されたファイルが含まれます。 また、インクルードされているヘッダファイルも表示され、依存関係をわか りやすく示しています。 2 別のビルド構成のプロジェクトを表示するには、[ワークスペース]ウィンド ウ上端のドロップダウンリストからそのビルド構成を選択します。 パート 2 プロジェクト管理およびビルド UEW-9 69 プロジェクトファイルのナビゲート 選択したプロジェクトとビルド構成は、[ワークスペース]ウィンドウで強調 表示されます。アプリケーションをビルドすると、ドロップダウンリストで 選択したこのプロジェクトとビルド構成がビルドされます。 3 ワークスペースですべてのプロジェクトの概要を表示するには、[ワークス ペース]ウィンドウの下端にある[概要]タブをクリックします。 すべてのプロジェクトメンバの概要が表示されます。 設定ドロップダウンリストの 現在の選択を示します。 図 30: [ワークスペース]ウィンドウの概要 [ビルド構成]ドロップダウンリストで現在選択されている項目は、ワークス ペースの概要が表示されるときも強調表示されます。 ブラウズ情報の表示 [ソースブラウザ]ウィンドウでブラウズ情報を表示するには、[ツール]> [オプション]>[プロジェクト]を選択して、オプション[ブラウズ情報を 生成]を選択します。 [ソースブラウザ]ウィンドウを開くには、[表示]>[ソースブラウザ]を選 択します。[ソースブラウザ]ウィンドウは、デフォルトでは[ワークスペー ス]ウィンドウにドッキングされています。表示されるのは、アクティブな ビルド構成のソースブラウズ情報です。リファレンス情報については、 215 ページの[ソースブラウザ]ウィンドウを参照してください。 ウィンドウの上部ペインを右クリックして表示されるコンテキストメニュー で、ファイルフィルタとタイプフィルタを選択できます。 グローバルシンボルや関数の定義を表示するには、以下に示す 3 つの方法が あります。 IAR Embedded Workbench IDE 70 ユーザガイド UEW-9 プロジェクト管理 ● [ソースブラウザ]ウィンドウでシンボルか関数を右クリックして、表示 されるコンテキストメニューで[定義に移動]コマンドを選択 ● [ソースブラウザ]ウィンドウで行をダブルクリック ● エディタウィンドウでシンボルか関数を右クリックして、表示されるコン テキストメニューで[定義に移動]コマンドを選択 シンボルや関数の定義は、エディタウィンドウに表示されます。 ソースブラウズ情報は、バックグラウンドで継続的に更新されます。ソース ファイルの編集中や、新しいプロジェクトを開いているときは、最新の情報 が表示されるまで少し時間がかかります。 ソースコード管理 Microsoft が発行する SCC(source code control: ソースコード管理)インタ フェースに準拠するサードパーティ製 SCC システムがインストールされてい る場合、IAR Embedded Workbench はそれを認識してアクセスすることができ ます。IDE 内から IAR Embedded Workbench プロジェクトを外部 SCC プロ ジェクトに接続すると、通常使用する操作を一部実行することができます。 IAR Embedded Workbench プロジェクトをソースコード管理システムに接続す る場合、使用しているソースコード管理のクライアントアプリケーションの 操作に慣れている必要があります。IAR Embedded Workbench IDE からソース コード管理システムを操作する際に表示されるウィンドウやダイアログボッ クスの一部は、SCC システムによって表示されたものであり、IAR システム ズが提供するドキュメントでは説明されていませんのでご注意ください。 SCC システムのクライアントアプリケーションの詳細については、そのアプ リケーションに付属するドキュメントを参照してください。 注 : 異なる SCC システムでは、最も基本的な概念に関する部分であっても、 使用されている用語が大きく異なります。以下の説明を読む際も、このこと を念頭に置いてください。 ソースコード管理システムの操作 SCC システムでは、クライアントアプリケーションを使用して、主アーカイ ブを管理します。このアーカイブに、プロジェクトで使用するファイルの作 業用コピーが保存されます。IAR Embedded Workbench に SCC を統合すること によって、通常使用する SCC 操作の一部を、IDE 内から直接、簡単な操作で 実行できます。ただし、それ以外にもさまざまなタスクをクライアントアプ リケーションで実行する必要があります。 IAR Embedded Workbench のプロジェクトをソースコード管理システムに接続 するには、以下の手順を実行する必要があります。 パート 2 プロジェクト管理およびビルド UEW-9 71 ソースコード管理 ● SCC クライアントアプリケーションで、SCC プロジェクトを設定する ● IAR Embedded Workbench で、プロジェクトを SCC プロジェクトに接続する SCC クライアントアプリケーションでの SCC プロジェクトの設定 SCC クライアントツールを使用して、SCC システムで管理する IAR Embedded Workbench プロジェクトのファイルの作業用ディレクトリを設定し ます。ファイルは、共通ルートの下の 1 つ以上のネストしたサブディレクト リに置かれます。具体的には、すべてのソースファイルは ewp プロジェクト ファイルと同じディレクトリか、そのディレクトリのサブディレクトリに置 かれます。 関連する手順については、SCC クライアントアプリケーションに付属するド キュメントを参照してください。 IAR Embedded Workbench のプロジェクトの接続 IAR Embedded Workbench で、アプリケーションプロジェクトを SCC プロジェ クトに接続します。 1 [ワークスペース]ウィンドウで、SCC プロジェクトを作成したプロジェクト を選択します。 [プロジェクト]メニューで[ソースコード管理]>[ソース 管理にプロジェクトを追加]を選択します。このコマンドは、[ワークスペー ス]ウィンドウを右クリックして表示されるコンテキストメニューでも選択 できます。 注 : 使用できる SCC クライアントアプリケーションが少なくとも 1 つ存在す れば、[ソースコード管理]サブメニューのコマンドが使用可能になります。 2 別のベンダのソースコード管理システムがインストールされている場合、接 続先を選択するダイアログボックスが表示されます。 3 SCC 固有のダイアログボックスが表示されるので、前の手順で設定した SCC プロジェクトに移動します。 SCC 状態の表示 IAR Embedded Workbench プロジェクトが SCC プロジェクトに接続されると、 ソースコード管理のステータス情報を表す列が[ワークスペース]ウィンド ウに表示されます。以下に示す条件に応じて異なるアイコンが表示されます。 IAR Embedded Workbench IDE 72 ユーザガイド UEW-9 ● ファイルがチェックアウトされているかどうか ● 他のユーザによってファイルがチェックアウトされているかどうか ● ファイルがチェックインされているかどうか ● ファイルが変更されているかどうか ● アーカイブにファイルの新しいバージョンがあるかどうか プロジェクト管理 これらの状態の組合せを表すアイコンが表示される場合もあります。表示され る状態の解釈は、使用している SCC クライアントアプリケーションによって 異なることに注意してください。アイコンとそれが表す状態のリファレンス情 報については、204 ページのソースコード管理状態を参照してください。 SCC システムにアクセスするコマンドのリファレンス情報については、 202 ページの[ソースコード管理]メニューを参照してください。 ソースコード管理システムの設定 ソースコード管理システムをカスタマイズするには、[ツール]>[オプショ ン]を選択して、[ソースコード管理]タブをクリックします。使用できるコ マンドのリファレンス情報については、274 ページの[ターミナル I/O]オプ ションを参照してください。 パート 2 プロジェクト管理およびビルド UEW-9 73 ソースコード管理 IAR Embedded Workbench IDE 74 ユーザガイド UEW-9 ビルド この章では、アプリケーションをビルドする処理について簡単に説明 し、続いてサードパーティ製ツールをビルドツールチェーンに追加す る方法について説明します。 アプリケーションのビルド ビルド処理は、以下の手順で構成されます。 ● プロジェクトオプションの設定 ● プロジェクトのビルド ● ビルドで検出されたエラーの修正 バッチビルドコマンドを使用すると、ビルド処理の効率を上げることができま す。このコマンドを使用すると、1 回の操作で複数のビルドを実行できます。 必要に応じて、ビルド前とビルド後のアクションを指定することも可能です。 プロジェクトをビルドするには、IAR Embedded Workbench IDE を使用する以 外に、コマンドラインユーティリティ iarbuild.exe を使用する方法もあり ます。 アプリケーションプロジェクトとライブラリプロジェクトのビルド例につ いては、本書の「パート 1. チュートリアル」を参照してください。ライブ ラリプロジェクトのビルドの詳細については、『コンパイラのドキュメン ト』を参照してください。 オプションの設定 アプリケーションのビルド方法を指定するには、1 つ以上のビルド構成を定 義する必要があります。ビルド構成はそれぞれ独自の設定があり、他の設定 には依存しません。設定はすべて[ワークスペース]ウィンドウで個別の列 に表示されます。 たとえば、デバッグに使用する設定は、最適化の程度は低く、デバッグに適 した出力を生成します。逆に、最終アプリケーションのビルド構成は、高度 に最適化され、フラッシュ /PROM プログラマに適した出力を生成します。 各ビルド構成に対して、プロジェクトレベル、グループレベル、ファイルレ ベルでオプションを設定できます。プロジェクトレベルでのみ設定できるオ プションが数多く存在しますが、これはそれらのオプションがビルド構成全 体に影響を与えるためです。このようなオプションの例としては、一般オプ ション、リンカ設定、デバッグ設定などがあります。それ以外の、コンパイ パート 2 プロジェクト管理およびビルド UEW-9 75 アプリケーションのビルド ラオプションやアセンブラオプションなどのオプションをプロジェクトレベ ルで設定すると、それがビルド構成全体のデフォルト設定になります。 プロジェクトレベルの設定を無効にするには、必要な項目(たとえば特定の ファイルグループ)を選択して、オプション[継承した設定をオーバライド] を選択します。新しい設定は、選択されたグループのすべてのメンバ、すな わちファイルとファイルグループに影響を与えます。すべての設定をデフォ ルトの出荷時設定に戻すには、[工場出荷時設定]ボタンをクリックします。 注 : オプションの設定について、1 つ重要な制限があります。グループまたは ファイルレベルでオプションを設定(グループまたはファイルレベルでオー バライド)すると、ファイルを適用対象とする上位レベルのオプションは、 一切このグループまたはファイルに適用されなくなります。 [オプション]ダイアログボックスの使用 [オプション]ダイアログボックス( [プロジェクト]>[オプション]を選択 して表示)では、ビルドツールのオプションを設定できます。設定したオプ ションは、 [ワークスペース]ウィンドウで選択されている項目に適用されま す。 [一般オプション]、 [リンカ]、 [デバッガ]の各カテゴリのオプションは、 ビルド構成全体に対してのみ設定できます。個別のグループやファイルに対し ては設定できません。ただし、他のカテゴリのオプションは、ビルド構成全体 だけでなく、ファイルグループや個別のファイルに対しても設定できます。 図 31: 一般オプション IAR Embedded Workbench IDE 76 ユーザガイド UEW-9 ビルド [カテゴリ]リストで、オプションを設定するビルドツールを選択できます。 [カテゴリ]リストで選択できるツールは、製品に含まれるツールによって異 なります。[出力]ページで[ライブラリ]を出力ファイルとして選択した場 合は、[リンカ]の代わりに[ライブラリビルダ]がカテゴリリストに表示さ れます。カテゴリを選択すると、そのコンポーネントのオプションを含む ページが表示されます。このページは複数ページにわたる場合もあります。 表示 / 変更するオプションのタイプに対応するタブをクリックします。すべ ての設定をデフォルトの出荷時設定に戻すには、[工場出荷時設定]ボタンを クリックします。このボタンは、[一般オプション]と[カスタムビルド]を 除くすべてのカテゴリで使用できます。使用可能な出荷時設定は 2 つありま す。Debug と Release です。どちらを使用するかは、ビルド構成に応じて異な ります(248 ページの[新規構成]ダイアログボックス参照)。 各オプションの詳細および設定方法については、「一般オプション」、「コンパ イラオプション」、「アセンブラオプション」、「XLINK リンカのオプション」、 「ILINK リンカのオプション」、「ライブラリビルダオプション」、「カスタムビ ルドオプション」、「デバッガオプション」を参照してください。使用してい るデバッガドライバに固有のオプションについては、本書の該当ドライバに 対応する個所を参照してください。 注 : 認識されないファイル名拡張子を持つソースファイルをプロジェクトに 追加した場合、そのソースファイルに対してオプションを設定することはで きません。ただし、そのファイル名拡張子に対するサポートを追加できます。 リファレンス情報については、278 ページの[ファイル名拡張子]ダイアロ グボックスを参照してください。 プロジェクトのビルド ビルドコマンドにアクセスするには、[プロジェクト]メニューか[ワークス ペース]ウィンドウで項目を右クリックして表示されるコンテキストメ ニューを使用します。 3 つのビルドコマンド、Make、Compile、Rebuild All はバックグラウンドで 動作するので、プロジェクトをビルドしている間も IDE で編集作業を続行で きます。 詳細なリファレンス情報については、242 ページの[プロジェクト]メ ニューを参照してください。 バッチによる複数構成のビルド バッチビルド機能を使用すると、複数の構成を同時にビルドできます。バッ チは、ビルド構成が順序付けて記述されているリストです。[バッチビルド] ダイアログボックスは、[プロジェクト]メニューからアクセスでき、複数の 構成バッチを作成、変更、ビルドできます。 パート 2 プロジェクト管理およびビルド UEW-9 77 アプリケーションのビルド 複数の構成を含むワークスペースの場合は、複数のバッチを定義すると便利 です。ワークスペース全体をビルドするのではなく、リリース設定とデバッ グ設定のように特定のビルド構成だけをビルドできます。 [バッチビルド]ダイアログボックスの詳細については、251 ページの[バッ チビルド]ダイアログボックスを参照してください。 ビルド前およびビルド後のアクションの使用 必要に応じて、ビルド前とビルド後に実行するアクションを指定することが 可能です。[ビルドアクション]ダイアログボックス([プロジェクト]メ ニューからアクセス)を使用して必要なアクションを指定できます。 [ビルドアクション]ダイアログボックスの詳細については、357 ページのビ ルドアクションオプションを参照してください。 ビルド前アクションの使用によるタイムスタンプ ビルド前アクションを使用して、ビルドに関するタイムスタンプを結果のバ イナリファイルに埋め込むことができます。以下の手順を実行します。 1 専用のタイムスタンプファイル(timestamp.c など)を作成し、プロジェク トに追加します。 2 このソースファイルでプリプロセッサマクロ __TIME__ および __DATE__ を使 用して、文字列変数を初期化します。 3 [プロジェクト]>[オプション]>[ビルドアクション]を選択して、[ビル ドアクション]ダイアログボックスを開きます。 4 [プリビルドコマンドライン]テキストフィールドにビルド前アクションを指 定します。たとえば、以下のように指定します。 "touch $PROJ_DIR$\timestamp.c" オープンソースコマンドラインユーティリティ touch をこの目的に使用でき ます。また、他にもソースファイルの変更時刻を更新する適当なユーティリ ティを使用できます。 5 プロジェクトが完全には最新状態でない場合は、次回の Make コマンドの使用 時に、通常のビルドプロセスの前にビルド前アクションが呼び出されます。 そして、通常のビルドプロセスで常に timestamp.c が再コンパイルされ、最 終的には正しいタイムスタンプがバイナリファイルに埋め込まれます。 すでにプロジェクトが最新状態の場合には、ビルド前アクションは呼び出さ れません。すなわち、ビルドは実行されず、バイナリファイルには最後にビ ルドされたときのタイムスタンプが引き続き使用されます。 IAR Embedded Workbench IDE 78 ユーザガイド UEW-9 ビルド ビルド中に検出されたエラーの修正 コンパイラ、アセンブラ、デバッガは、完全に開発環境に統合されています。 ソースコードにエラーが含まれる場合、[ビルド]メッセージウィンドウでエ ラーリストのエラーメッセージをダブルクリックするか、エラーを選択して Enter キーを押すことによって、該当するソースファイルの選択したエラーの 位置に直接移動できます。 ビルド中に検出された問題をすべて解決して、プロジェクトをリビルドした ら、生成されたコードをソースレベルで直接デバッグできます。 [ビルド]メッセージウィンドウへの出力レベルを指定するには、[ツール]> [オプション]を選択して[IDE オプション]ダイアログボックスを開きま す。[メッセージ]タブをクリックして、[ビルドメッセージの表示]ドロッ プダウンリストで出力レベルを選択します。または、[ビルドメッセージ] ウィンドウでダブルクリックし、コンテキストメニューから[オプション] を選択します。 [ビルド]メッセージウィンドウのリファレンス情報については、225 ページ の[ビルド]ウィンドウを参照してください。 コマンドラインからのビルド コマンドラインからプロジェクトをビルドするには、common\bin ディレクト リにある IAR コマンドラインビルドユーティリティ (iarbuild.exe) を使用 します。入力としてプロジェクトファイルを使用して、以下の構文で呼び出 します。 iarbuild project.ewp [-clean|-build|-make] <configuration> [-log errors|warnings|info|all] パラメータ 説明 project.ewp IAR Embedded Workbench プロジェクトファイル -clean すべての中間ファイルおよび出力ファイルを削除します -build 現在のビルド構成のすべてのファイルをリビルド / 再リンク -make 最後のビルド以降に変更されたファイルだけをコンパイル、ア センブル、リンクして、現在のビルド構成を最新状態に更新 構成 ビルドする構成の名前(定義済の構成[デバッグ]または[リ リース]か、ユーザが独自に定義した名前)を指定(ビルド構 成の詳細については、65 ページのプロジェクトとビルド構成を 参照) -log errors ビルドのエラーメッセージを表示 -log warnings ビルドのワーニング、エラーメッセージを表示 表 12: iarbuild.exe コマンドラインオプション パート 2 プロジェクト管理およびビルド UEW-9 79 ツールチェーンの拡張 パラメータ 説明 -log info ビルドのワーニングメッセージ、エラーメッセージ、および #pragma message プリプロセッサディレクティブによって出 力されるメッセージを表示します -log all ビルドで出力されるすべてのメッセージを表示(コンパイラの サインオン情報やフルコマンドラインなど) 表 12: iarbuild.exe コマンドラインオプション (続き) プロジェクトファイルを指定しないでコマンドシェルからアプリケーション を実行すると、使用できるパラメータとその構文を示すサインオンメッセー ジが表示されます。 ツールチェーンの拡張 IAR Embedded Workbench では、標準のツールチェーンを拡張するためのツー ル (Custom Build) が提供されています。この機能を使用して、外部ツール (IAR システムズ以外のベンダが提供するツール)を実行します。プロジェク ト内の特定のファイルが変更されるたびに、外部ツールを実行させることが できます。 [カスタムツール構成]ページでカスタムビルドオプションを指定すると、ビ ルドコマンドは、IAR Embedded Workbench IDE とその関連ファイルを処理す るのと同じ方法で、外部ツールとその関連ファイルを処理します。外部ツー ルとその入力ファイルと生成される出力ファイルの関係は、C/C++ コンパイ ラ、c ファイル、h ファイル、rxx ファイルの間の関係に似ています。使用で きるカスタムビルドオプションの詳細については、355 ページのカスタムビ ルドオプションを参照してください。 外部ツールの入力として使用するファイルのファイル名拡張子を指定します。 プロジェクトを最後にビルドした後で入力ファイルが変更された場合は、c ファイルが変更されたときにコンパイラが実行されるのと同じように、外部 ツールが実行されます。同様に、他の入力ファイル(インクルードファイル など)への変更も検出されます。 外部ツールの名前を指定する必要があります。同時に、外部ツールが必要と するコマンドラインオプションや、外部ツールが生成する出力ファイルの名 前も指定できます。また、ファイルパスを置換する引数変数も使用できます。 ファイル情報の一部を表すのに、引数変数を使用できます。 カスタムビルドオプションは、プロジェクトツリーの任意のレベルに対して 指定できます。指定したオプションは、プロジェクトツリーの下位レベルに 継承されます。 IAR Embedded Workbench IDE 80 ユーザガイド UEW-9 ビルド ツールチェーンに追加可能なツール IAR Embedded Workbench ツールチェーンに追加できる外部ツールか、ツール の種類の例を以下に示します。 ● 言語仕様に基づいてファイルを生成するツール(Lex、YACC など) ● バイナリファイル、たとえばビットマップイメージやオーディオデータを 含むファイルを、アセンブラか C ソースファイルのデータテーブルに変換 するツールです。(このデータは、コンパイルして、アプリケーションの 他のファイルとリンク可能) 外部ツールの追加 ツール Flex をツールチェーンに追加する例を以下に示します。他のツールも 同じ手順で追加できます。 この例では、Flex はファイル myFile.lex を入力として受け取ります。2 つの ファイル、myFile.c と myFile.h が出力として生成されます。 1 myFile.lex など、使用するファイルをプロジェクトに追加します。 2 [ワークスペース]ウィンドウでこのファイルを選択して、[プロジェクト]> [オプション]を選択します。カテゴリリストで[カスタムビルド]を選択し ます。 3 [ファイル名の拡張子]フィールドにファイル名拡張子「.lex」 を入力しま す。先頭にピリオド (.) を指定するのを忘れないでください。 4 [コマンドライン]フィールドに、外部ツールを実行するコマンドラインを入 力します。以下に例を示します。 flex $FILE_PATH$ -o$FILE_BPATH$.c ビルド処理中に、このコマンドラインは以下のように展開されます。 flex myFile.lex -omyFile.c 引数変数の使用方法に注意してください。引数変数の詳細については、 246 ページの引数変数のまとめを参照してください。 $FILE_BNAME$ の使用方法には特に注意が必要です。この変数は入力ファイル のベース名に置換されます。この例では c 拡張子が連結されて、入力ファイ ル foo.lex と同じディレクトリに C ソースファイルが生成されます。 5 [出力ファイル]フィールドに、ビルドに関連して生成される出力ファイルを 記述します。この例では、ツール Flex がソースファイルとヘッダファイルを 1 つずつ生成します。[出力ファイル]テキストボックスでこれら 2 つのファ イルを表すテキストは以下のようになります。 パート 2 プロジェクト管理およびビルド UEW-9 81 ツールチェーンの拡張 $FILE_BPATH$.c $FILE_BPATH$.h 6 外部ツールがビルド中に使用するファイルが他にもある場合は、それらの ファイルを[追加入力ファイル]フィールドに追加する必要があります。 以下に例を示します。 $TOOLKIT_DIR$\inc\stdio.h 使用するファイルを追加する必要があるのは、依存ファイルが変更された場 合、条件が変わるのでリビルドする必要があるためです。 7 [OK] をクリックします。 8 アプリケーションをビルドするには、[プロジェクト]>[作成]を選択し ます。 IAR Embedded Workbench IDE 82 ユーザガイド UEW-9 編集 この章では、IAR Embedded Workbench エディタの使用方法について説 明します。最後のセクションでは、エディタのカスタマイズ方法と ユーザが選択した外部エディタの使用方法について説明します。 IAR Embedded Workbench エディタの使用 統合されているテキストエディタには、複数ファイルを同時に編集する機能の 他、最新エディタが通常提供している基本的な編集機能がすべて用意されてい ます。また、キーワードのカラー表示(C/C++、アセンブラ、ユーザ定義) 、 ブロックインデント、ソースファイル内での関数間の移動などのソフトウェア 開発用機能も装備しています。さらに、括弧のマッチングなど、C 言語のエレ メントの認識にも対応しています。他にも、以下のような特長があります。 ● DLIB ライブラリ関数のリファレンス情報を表示できる文脈依存ヘルプシス テム ● テキストスタイルおよびカラーで C/C++ プログラム、アセンブラディレク ティブの構文を区別して表示 ● 複数ファイル検索などの強力な検索 / 置換コマンド ● エラーリストからコンテキストを直接表示 ● マルチバイト文字のサポート ● 括弧のマッチング ● 自動完了およびインデント ● ブックマーク ● 各ウィンドウで無制限にアンドゥ / リドゥ可能 ファイルの編集 エディタウィンドウでは、ソースコードの記述、表示、変更を行います。 [ファイル]メニューからファイルを選択するか、[ワークスペース]ウィン ドウでファイルをダブルクリックすることによって、1 つ以上のテキスト ファイルを開くことができます。複数のファイルを開いている場合、それら のファイルはタブグループとして編成されます。複数のエディタウィンドウ を同時に開いておくことができます。 パート 2 プロジェクト管理およびビルド UEW-9 83 IAR Embedded Workbench エディタの使用 表示するファイルに対応するタブをクリックします。開いているファイルは すべて、エディタウィンドウの右上 にあるドロップダウンメニューで選択す ることもできます。 ツールチップ情報 ドロップダウンメニュー 開かれているすべてのファイルの一覧 ウィンドウタブ 分割 制御 ブレークポイント アイコン 括弧の一致 ブックマーク 分割バー 関数に移動 右側の余白 印字領域の範囲 図 32: エディタウィンドウ 開いているソースファイルの名前がタブに表示されます。ファイルがリード オンリーの場合は、エディタウィンドウの左下隅に錠アイコンが表示されま す。ファイルが最後に保存された後に変更された場合、たとえば 「Utilities.c *」のように、タブのファイル名の末尾にアスタリスクが表 示されます。 [ウィンドウ]メニューのコマンドを使用すると、エディタウィンドウをペイ ンに分割できます。[ウィンドウ]メニューには、複数のエディタウィンドウ を開くコマンドや、エディタウィンドウ間でファイルを移動するためのコマ ンドもあります。メニューの各コマンドのリファレンス情報については、 281 ページの[ウィンドウ]メニューを参照してください。エディタウィン ドウのリファレンス情報については、208 ページのエディタウィンドウを参 照してください。 注 : ソースファイルを出力する場合には、 [ツール]>[オプション]>[エ ディタ]を選択し、 [行番号の表示]オプションを有効にしておくと便利です。 IAR Embedded Workbench IDE 84 ユーザガイド UEW-9 編集 DLIB ライブラリ関数のリファレンス情報へのアクセス C/EC++ ライブラリ関数の構文を知る必要がある場合は、エディタウィンドウ で関数名を選択して、F1 を押します。選択された関数のライブラリドキュメ ントがヘルプウィンドウに表示されます。 エディタコマンドとショートカットキーの使用とカスタマイズ [編集]メニューには、エディタウィンドウで編集や検索を行うためのコマン ドが用意されています。たとえば、無制限のアンドゥ / リドゥ(それぞれ、 [編集]>[アンドゥ]コマンド、[編集]>[リドゥ]コマンド)などがあり ます。これらのコマンドの一部は、エディタウィンドウを右クリックして表 示されるコンテキストメニューからも選択できます。各コマンドのリファレ ンス情報については、231 ページの[編集]メニューを参照してください。 以下の操作を行うエディタショートカットキーもあります。 ● 挿入ポイントの移動 ● テキストのスクロール ● テキストの選択 ショートカットキーの詳細については、213 ページのエディタのキー操作の まとめを参照してください。 デフォルトのショートカットキーバインディングを変更するには、 [ツール]> [オプション]を選択して、 [キーカスタマイズ]タブをクリックします。詳 細については、255 ページの[キーバインディング]オプションを参照してく ださい。 エディタウィンドウをペインに分割 エディタウィンドウを水平または垂直に複数のペインに分割して、同一ソー スファイルの異なる部分を同時に表示したり、2 つの異なるペイン間でテキ ストを移動することがきます。 ウィンドウを分割するには、適切な分割バーをダブルクリックするか、ウィ ンドウの中央までドラッグします。別の方法として、[ウィンドウ]>[分割] コマンドを使用してウィンドウをペインに分割することもできます。 1 つのペインに戻すには、分割バーをダブルクリックするか、スクロール バーの端までドラッグします。 テキストのドラッグアンドドロップ エディタウィンドウ内またはエディタウィンドウ間でテキストを簡単に移動 できます。テキストを選択して、移動先にドラッグします。 パート 2 プロジェクト管理およびビルド UEW-9 85 IAR Embedded Workbench エディタの使用 構文カラー表示 [ツール]>[オプション]>[エディタ]>[構文の強調表示]オプションを 有効にすると、IAR Embedded Workbench エディタは、自動的に以下の構文を 認識します。 ● C と C++ のキーワード ● C と C++ のコメント ● アセンブラディレクティブとコメント ● プリプロセッサのディレクティブ ● 文字列 ソースコードは、部分ごとに異なるテキストスタイルで表示されます。 これらのスタイルを変更するには、[ツール]>[オプション]を選択して、 [エディタ]>[色とフォント]オプションを使用します。その他の情報につ いては、264 ページのエディタ色とフォントオプションを参照してください。 独自にキーワードセットを定義して、それらを自動的に構文カラー表示の対 象にすることができます。 1 テキストファイルに、自動的に構文カラー表示の対象にするすべてのキー ワードを記述します。各キーワードは、スペースや改行で区切ります。 2 [ツール]>[オプション]を選択して、[エディタ > セットアップファイル] を選択します。 3 [カスタムキーワードファイルの使用]オプションを選択して、新しく作成し たテキストファイルを指定します。参照ボタンを使用して選択することもで きます。 4 [エディタ]>[色とフォント]を選択して、[構文の色]リストから[ユーザ キーワード]を選択します。フォント、色、タイプスタイルを指定します。 その他の情報については、264 ページのエディタ色とフォントオプションを 参照してください。 5 エディタウィンドウで、キーワードファイルに記述したキーワードを入力し て、指定どおりにそのキーワードがカラー表示されていることを確認します。 自動テキストインデント テキストエディタには、さまざまな種類のインデントがあります。アセンブ ラソースファイルと通常のテキストファイルは、エディタによって、行の先 頭が前の行の先頭に一致するように自動インデントされます。複数の行をイ ンデントする場合は、該当する行を選択して、Tab キーを押します。 Shift+Tab キーを押して、選択した行をまとめて左に移動します。 IAR Embedded Workbench IDE 86 ユーザガイド UEW-9 編集 C/C++ ソースファイルの場合、エディタは C/C++ ソースコードの構文に従っ て行をインデントします。インデントは以下のタイミングで実行されます。 ● Enter キーを押したとき ● {、}、:、# のいずれかの特殊文字が入力されたとき ● 1 行または複数行を選択して[編集]>[自動インデント]を選択したとき インデントを有効 / 無効にするには、以下の手順を実行します。 1 [ツール]>[オプション]を選択して、[エディタ]を選択します。 2 [自動インデント]オプションを選択 / 選択解除します。 C/C++ の自動インデントをカスタマイズするには、[設定]ボタンをクリック します。 その他の情報については、259 ページの[自動インデントの設定]ダイアロ グボックスを参照してください。 中括弧と括弧の対応 括弧の近くに挿入ポイントがある場合、対応する括弧が淡い灰色で強調表示 されます。 図 33: エディタウィンドウの括弧の対応 挿入ポイントが括弧の近くにある間は、対応する括弧は強調表示されたまま です。 挿入ポイントを含む中括弧で囲まれたテキストをすべて選択するには、[編 集]>[括弧のマッチング]を選択します。その後は、 [括弧のマッチング] を選択するたびに、選択される範囲が次の階層の中括弧で囲まれた範囲まで 広がります。 注 : 括弧の対応の機能(自動検出、括弧で囲まれたテキストの選択)はどち らも、()、[]、{} に適用されます。 ステータス情報の表示 編集中は、ステータスバー([表示]>[ステータスバー]を選択して表示) に、現在挿入ポイントがある行番号と列番号、Caps Lock、Num Lock、上書き ステータスが表示されます。 パート 2 プロジェクト管理およびビルド UEW-9 87 IAR Embedded Workbench エディタの使用 図 34: エディタウィンドウのステータスバー コードテンプレートの使用と追加 コードテンプレートは、たとえば for ループや if 文のように、頻繁に使用さ れるソースコードシーケンスを簡単に挿入するための方法です。コードテン プレートは、通常のテキストファイルで定義します。デフォルトで、いくつ かのサンプルテンプレートが提供されています。それ以外に、簡単に独自の コードテンプレートを追加できます。 コードテンプレートの有効化 デフォルトで、コードテンプレートは有効になっています。コードテンプ レートの使用を有効 / 無効にするには、以下の手順を実行します。 1 [ツール]>[オプション]を選択します。 2 [エディタセットアップファイル]ページに移動します。 3 [コードテンプレートの使用]オプションを選択 / 選択解除します。 4 テキストフィールドで、使用するテンプレートとして、デフォルトファイル か独自に作成したテンプレートファイルを指定します。参照ボタンを使用し て選択することもできます。 ソースコードへのコードテンプレートの挿入 ソースコードにコードテンプレートを挿入するには、テンプレートを挿入す る場所に挿入ポイントを配置し、右クリックして表示されるメニューから [テンプレートの挿入]および適切なコードテンプレートを選択します。 IAR Embedded Workbench IDE 88 ユーザガイド UEW-9 編集 図 35: エディタウィンドウのコードテンプレートメニュー 終値とカウント変数を必要とする for ループのように、選択したコードテン プレートがフィールドへの入力を必要とする場合は、入力ダイアログボック スが表示されます。 独自のコードテンプレートの追加 ソースコードテンプレートは、通常のテキストファイルで定義します。オリ ジナルテンプレートファイル CodeTemplates.txt は、common\config インス トールディレクトリにあります。初めて IAR Embedded Workbench を使用する ときに、オリジナルテンプレートファイルがローカル設定用ディレクトリに コピーされます。コードテンプレートが有効な場合は、このファイルがデ フォルトで使用されます。独自のテンプレートファイルを使用する手順につ いては、88 ページのコードテンプレートの有効化を参照してください。 テンプレートファイルを開いて、独自のコードテンプレートを定義するには、 [編集]>[コードテンプレート]>[テンプレートの編集]を選択します。 テンプレートを定義するための構文は、デフォルトテンプレートファイルに 記述されています。 コードテンプレートファイルの正しい言語バージョンの選択 IAR Embedded Workbench IDE を初めて起動したとき、言語バージョンの選択 が求められます。これが該当するのは、英語以外の言語が利用可能な IDE を 使用している場合のみです。 パート 2 プロジェクト管理およびビルド UEW-9 89 IAR Embedded Workbench エディタの使用 言語を選択すると、デフォルトのコードテンプレートファイルの対応言語 バージョンが、現在の Windows ユーザの Application Data\IAR Embedded Workbench サブディレクトリに作成されます(たとえば、英語の場合は CodeTemplates.ENU.txt、日本語の場合は CodeTemplates.JPN.txt) 。後か ら IDE の言語バージョンを変更した場合、デフォルトのコードテンプレート ファイルは自動的には変更されません。 コードテンプレートを変更するには、以下のように操作してください。 1 [ツール]>[オプション]>[IDE オプション]>[エディタ]>[セットアッ プファイル]を選択します。 2 [コードテンプレートの使用]オプションの参照ボタンをクリックし、異なる テンプレートファイルを選択します。 参照したディレクトリに目的のコードテンプレートファイルがない場合には、 必ず以下のように操作してください。 3 そのファイル名を[コードテンプレートの使用]テキストボックスから削除 します。 4 [コードテンプレートの使用]オプションの選択を解除し、[OK] をクリックし ます。 5 IAR Embedded Workbench IDE を再起動します。 6 再度、[ツール]>[オプション]>[IDE オプション]>[エディタ]>[セッ トアップファイル]を選択します。 今度は、選択した言語のバージョンの IDE に対応したデフォルトのコードテ ンプレートファイルが[コードテンプレートの使用]テキストボックスに表 示されるはずです。チェックボックスをオンにすると、テンプレートが有効 になります。 ファイル間のナビゲート エディタには、ファイル内やファイル間を簡単にナビゲートするための機能 が用意されています。 ● ソースファイルとヘッダファイル間の切替え 挿入ポイントが #include 行にある場合、コンテキストメニューで [ "header.h" を開く]コマンドを選択して、ヘッダファイルをエディタ ウィンドウで開くことができます。また、コマンド[ヘッダ / ソースファ イルを開く]を選択すると、現在のファイルに対応するヘッダファイルや ソースファイルを開いたり、すでに開いている場合はアクティブにしたり できます。このコマンドは、挿入ポイントが #include 行の近くにあると きに選択できます。 IAR Embedded Workbench IDE 90 ユーザガイド UEW-9 編集 ● 関数ナビゲーション エディタウィンドウの左下隅にある[関数に移動]ボタンをクリックする と、ウィンドウに表示されているソースファイルで定義されているすべて の関数がリスト表示されます。リストで関数をダブルクリックすると、そ の関数の位置に直接移動できます。 ● ブックマークの追加 [編集]>[移動]>[ブックマークの切替え]コマンドを使用すると、 ブックマークを追加 / 削除できます。ブックマークされた位置間を移動す るには、[編集]>[移動]>[ブックマークへ移動]を選択します。 検索 エディタには、以下に示すさまざまな標準的検索機能が用意されています。 ● [クイックサーチ]テキストボックス ● [検索]ダイアログボックス ● [置換]ダイアログボックス ● [ファイルから選択]ダイアログボックス ● [インクリメンタル検索]ダイアログボックス ツールバーの[クイックサーチ]テキストボックスを使用するには、検索す るテキストを入力して、Enter キーを押します。Esc キーを押すと検索をキャ ンセルします。アクティブなエディタウィンドウでテキストを検索する場合 は、この方法が最も簡単です。 [検索]、[置換]、[ファイルから選択]、[インクリメンタル検索]の各機能を 使用するには、[編集]メニューで対応するコマンドを選択します。各検索機 能のリファレンス情報については、231 ページの[編集]メニューを参照し てください。 エディタ環境のカスタマイズ IDE エディタは、[IDE オプション]の[エディタ]ページで構成できます。 これらのページにアクセスするには、[ツール]>[オプション]を選択し ます。 これらのページの詳細については、253 ページの[ツール]メニューを参照 してください。 パート 2 プロジェクト管理およびビルド UEW-9 91 エディタ環境のカスタマイズ 外部エディタの連携 [外部 エディタ]オプション([ツール]>[オプション]>[エディタ]を選 択して表示)では、任意の外部エディタを指定することができます。 注 : C-SPY を使用したデバッグ中には、現在のデバッグ状態の表示に外部エ ディタは使用されません。内蔵のエディタが使用されます。 任意の外部エディタを指定するには、以下の手順を実行してください。 1 [外部エディタを使用]にチェックを入れます。 2 外部エディタを呼び出すには、[タイプ]ドロップダウンメニューで以下の 2 つの方法のどちらかを選択します。 [Command Line]は、外部エディタを呼び出して、コマンドラインパラメー タを渡します。 [DDE] は、DDE(Windows Dynamic Data Exchange: Windows 動的データ交換) を使用して、外部エディタを呼び出します。 3 コマンドラインを使用する場合は、エディタに渡すコマンドライン、すなわ ちエディタの名前とそのパスを指定します。以下に例を示します。 C:\WINDOWS\NOTEPAD.EXE. 引数を外部エディタに送信するには、[引数]フィールドに引数を入力しま す。たとえば、 「$FILE_PATH$」 と入力すると、エディタが起動されて、アク ティブファイルが開きます(エディタ、プロジェクト、[メッセージ]ウィン ドウ)。 図 36: 外部コマンドラインエディタの指定 IAR Embedded Workbench IDE 92 ユーザガイド UEW-9 編集 4 DDE を使用する場合、 [サービス]フィールドでエディタの DDE サービス名を 指定します。 [コマンド]フィールドで、エディタに送信するコマンドシーケ ンスを表す文字列を指定します。 サービス名とコマンド文字列は、使用する外部エディタに応じて指定します。 外部エディタのドキュメントを参照して、適切に設定してください。 コマンド文字列は、以下の形式で入力する必要があります。 DDE-Topic CommandString1 DDE-Topic CommandString2 以下に例を示します。この例は、Codewright® に適用されます。 図 37: 外部エディタの DDE 設定 この例で指定したコマンド文字列で、外部エディタが開いて、専用ファイル がアクティブになります。カーソルは、たとえばファイル内の文字列を検索 している場合や[メッセージ]ウィンドウでエラーメッセージをダブルク リックした場合のように、ファイルを開いたコンテキストの定義に従って、 現在の行に置かれます。 5 [OK] をクリックします。 [ワークスペース]ウィンドウでファイルをダブルクリックすると、そのファ イルは外部エディタで開かれます。 引数に変数を使用できます。引数変数の詳細については、246 ページの引数 変数のまとめを参照してください。 パート 2 プロジェクト管理およびビルド UEW-9 93 エディタ環境のカスタマイズ IAR Embedded Workbench IDE 94 ユーザガイド UEW-9 パート 3. デバッグ 『IAR Embedded Workbench IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● IAR C-SPY デバッガ ● アプリケーションの実行 ● 変数と式の扱い ● ブレークポイントの使用 ● メモリとレジスタのモニタ ● C-SPY マクロシステムの使用 ● アプリケーションの分析 95 UEW-9 96 UEW-9 IAR C-SPY デバッガ この章では、IAR C-SPY® デバッガの概要と、一般的なデバッグおよ び特に C-SPY に関する概念について説明します。続いて、設定や起 動、最後にターゲットハードウェアに C-SPY を適合される方法につい て解説します。 C-SPY — 概要 統合環境 C-SPY は、組込みアプリケーション用の高級言語デバッガです。IAR システ ムズのコンパイラおよびアセンブラとともに使用することを目的としており、 IDE に完全に統合されているので、同一アプリケーション内での開発とデ バッグが可能になります。このため、以下のような操作が可能です。 ● デバッグ中の編集。デバッグセッション中に、デバッグの制御に使用す るものと同じソースコードウィンドウで直接修正を行うことができます。 変更内容は、次にプロジェクトをリビルドしたときに有効になります。 ● 開発サイクル中の任意の位置へのブレークポイントの設定。デバッガを実 行していないときもブレークポイント定義を確認および修正することがで き、ブレークポイント定義フローを編集中のテキストで確認および修正で きます。ウォッチプロパティ、ウィンドウレイアウト、レジスタグループ などのデバッグ設定は、デバッグセッションが終わるまで保持されます。 Embedded Workbench のワークスペースで開いているウィンドウはすべて、 C-SPY デバッガを起動してもそのまま開いています。それ以外に、C-SPY 固 有の複数のウィンドウが開かれます。 C-SPY 環境には、IDE で使用できる機能の他に、C-SPY 固有の項目としてデ バッグ用ツールバー、メニュー、ウィンドウ、ダイアログボックスなどが用 意されています。 C-SPY デバッガの特長 IAR システムズはツールチェーン全体を提供しているため、コンパイラやリ ンカの出力にデバッガ用の詳細なデバッグ情報を含めることができ、デバッ グ時に非常に役立ちます。 パート 3 デバッグ UEW-9 97 C-SPY — 概要 C-SPY は以下のような一般的特長があります。 ● ソースおよび逆アセンブリレベルのデバッグ C-SPY では、C/C++ とアセンブラの両方のソースコードで、ソースと逆ア センブリのデバッグを必要に応じて切り替えることができます。 ● 関数呼出しのステップ実行 ソースレベルのステップ実行の最小単位が行単位である従来のデバッガと は異なり、C-SPY ではすべての文および関数呼出しがステップポイントと して認識されるため、より詳細な制御が可能です。つまり、式に含まれる 呼出しと、他の関数への呼出しのパラメータとして記述されている呼出し の両方をステップ実行できます。パラメータ中の呼出しのステップ実行 は、オブジェクトのコンストラクタなどのように、多数の追加関数呼出し が行われる C++ コードで特に便利です。 ● コード / データブレークポイント C-SPY のブレークポイントシステムでは、デバッグ対象のアプリケーショ ンでさまざまなブレークポイントを設定し、目的箇所で実行を停止するこ とができます。たとえば、ブレークポイントを設定して、プログラムロ ジックが正しいかどうかや、データアクセスに設定してデータが変更され たタイミングと方法を調べたりできます。 ● 変数および式のモニタ 変数および式の場合、さまざまな機能から選択できます。任意の変数およ び式をポップアップ表示で評価できます。指定した式の値をより長時間モ ニタおよび記録することができます。ローカル変数をその場で制御でき、 処理の中断なくリアルタイムでデータが表示されます。さらに、最後に参 照した変数が自動的に表示されます。 ● コンテナ認識 C-SPY でアプリケーションを実行すると、STL の list や vector などのライ ブラリデータ型のエレメントを表示することができます。これにより、 C++ STL コンテナの使用時に内容を簡単に把握してデバッグすることがで きます。 ● 呼出しスタック情報 コンパイラは、詳細な呼出しスタック情報を生成します。これにより、実 行に影響することなく、プログラムカウンタがどこを指していても、関数 呼出しの完全な呼出しスタックをデバッガで表示できます。呼出しスタッ クで任意の関数を選択し、その関数についてローカル変数やレジスタの情 報を表示することができます。 ● 強力なマクロシステム C-SPY は強力な内蔵マクロシステムを装備しており、複雑なアクションを 定義して実行することができます。C-SPY マクロは、単独で、あるいはブ IAR Embedded Workbench IDE 98 ユーザガイド UEW-9 IAR C-SPY デバッガ レークポイントや割込みシミュレーションシステム(シミュレータ使用 時)と組み合せて使用し、さまざまなタスクを実行することができます。 C-SPY デバッガのその他の特長 他にも、以下のような特長があります。 ● スレッド実行により、ターゲットアプリケーションの実行中も IDE の応答 性を維持 ● 自動ステップ実行 ● ソースブラウザで、関数、型、変数を簡単に表示可能 ● さまざまな変数の型を認識 ● 設定可能なレジスタ(CPU、周辺)、メモリウィンドウ ● 専用のスタックウィンドウ ● コードカバレッジ、関数レベルのプロファイルをサポート ● ターゲットアプリケーションは、ファイル I/O を使用してホスト PC のファ イルにアクセス可能 O(DLIB ライブラリが必要です) ● ターミナル I/O エミュレーション RTOS 認識 C-SPY は、リアルタイム OS 対応のデバッグをサポートしています。 IAR システムズかサードパーティ製の RTOS プラグインモジュールを使用で きます。サポートされている RTOS モジュールについては、ソフトウェア販 売代理店か IAR システムズの担当者までお問い合せください。また、IAR シ ステムズの Web サイトでも情報を提供しています。 デバッガの概念 このセクションでは、デバッグの一般的な概念と特に C-SPY に関連する概念 について説明します。ここでは、C-SPY の機能に関する個別の概念について の説明は含まれません。それらの情報については、このパートの各章で説明 します。IAR システムズのユーザドキュメントでは、デバッガの概念を説明 するときに、以下の用語を使用します。 C-SPY とターゲットシステム C-SPY は、ソフトウェアターゲットシステムとハードウェアターゲットシス テムの両方のデバッグに使用できます。 パート 3 デバッグ UEW-9 99 デバッガの概念 以下の図は、C-SPY およびターゲットシステムの概要を示します。 図 38: C-SPY とターゲットシステム デバッガ C-SPY のようなデバッガは、ターゲットシステム上でアプリケーションをデ バッグするためのプログラムです。 ターゲットシステム ターゲットシステムは、アプリケーションをデバッグするときに、それを実 行するシステムです。ターゲットシステムは、評価ボードか独自に設計した ハードウェアから構成されます。また、その全体または一部をソフトウェア でシミュレーションすることもできます。ターゲットシステムは、その種類 ごとに専用の C-SPY ドライバを必要とします。 ユーザアプリケーション ユーザアプリケーションは、ユーザが開発し、C-SPY を使用してデバッグを 行うソフトウェアです。 C-SPY デバッガシステム C-SPY ドライバ : タイプ C-SPY は、デバッガの基本機能セットを提供する部 分とターゲット固有のバックエンドで構成されています。バックエンドは、各 マイクロコントローラーに 1 つずつあってマイクロコントローラーのプロパ IAR Embedded Workbench IDE 100 ユーザガイド UEW-9 IAR C-SPY デバッガ ティを定義するプロセッサモジュールと、C-SPY ドライバの 1 つから構成さ れています。C-SPY ドライバは、ターゲットシステムとの通信およびター ゲットシステムの管理を提供します。また、特殊ブレークポイントなど、 ターゲットシステムが提供する機能へのユーザインタフェースとして、メ ニュー、ウィンドウ、ダイアログボックスを提供します。C-SPY ドライバに は、大きく分けて以下の 3 つの種類があります。 ● シミュレータドライバ ● ROM モニタドライバ ● エミュレータドライバ 製品のインストール内容によっては、C-SPY と併せて、シミュレータドライ バやハードウェアデバッガシステム用の追加ドライバもインストールされま す。使用可能な C-SPY ドライバおよび各ドライバで提供される機能について は、[ヘルプ]メニューから利用できるオンラインヘルプシステムのドライバ のドキュメンテーションまたは doc ディレクトリにあるハイパーテキスト PDF フォーマットを参照してください。 ROM モニタプログラム ROM モニタプログラムは、ターゲットハードウェアの不揮発性メモリに ロードされるファームウェアで、アプリケーションと並行して動作します。 ROM モニタは、デバッガと通信して、ステップ実行やブレークポイントな ど、アプリケーションのデバッグに必要なサービスを提供します。 サードパーティ製デバッガ サードパーティ製デバッガも IAR システムズのツールチェーンに組み込むこ とができます。その場合、サードパーティ製デバッガは、XLINK が提供する 出力形式(UBROF、ELF/DWARF、COFF、Intel-extended、Motorola など)の いずれか、および ILINK の場合は出力形式 ELF/DWARF、Intel-extended、 Motorola のいずれかの読込みが可能であることが必要です。サードパーティ 製デバッガで使用するフォーマットについては、そのデバッガに付属のユー ザドキュメントを参照してください。 C-SPY プラグインモジュール C-SPY は、プラグインモジュールとしてデバッガの追加機能を実装するとき に使用できる、オープン SDK で構築したモジュール化構造アーキテクチャと して設計されています。これらのモジュールは IDE に統合可能です。 IAR システムズかサードパーティ製のプラグインモジュールを使用できます。 このようなモジュールの例を以下に示します。 ● [コードカバレッジ]、[プロファイリング]、[スタック]ウィンドウ(こ れらはすべて IDE に統合されます)。 パート 3 デバッグ UEW-9 101 C-SPY の設定 ● 特定のデバッグシステムを使用するための様々な C-SPY ドライバ。 ● リアルタイム OS 対応のデバッグをサポートする RTOS プラグインモ ジュール。 ● IAR visualSTATE と IAR Embedded Workbench 間のインタフェースとして機 能する C-SPYLink。これは、標準 C レベルシンボリックデバッグのほか、 真の意味での高水準ステートマシンデバッグを C-SPY で直接可能にしま す。詳細については、IAR visualSTATE の付属ドキュメントを参照してく ださい。 C-SPY SDK の詳細については、IAR システムズまでお問い合わせください。 C-SPY の設定 C-SPY を起動する前に、デバッガシステムのオプションを設定する必要があ ります。これらのオプションにアクセスするには、[プロジェクト]>[オプ ション]を選択して、[デバッガ]カテゴリで[設定]ページを開きます。 [プラグイン]ページでは、プラグインモジュールのロードに関するオプショ ンを設定できます。 デバッガシステムを設定するオプション以外にも、デバッガ固有の IDE オプ ションを設定できます。このオプションにアクセスするには、[ツール]> [オプション]を選択します。デバッガ固有の IDE オプションの詳細について は、269 ページの[デバッガ]オプションを参照してください。 デバッグドライバの選択 C-SPY を起動する前に、[設定]ページの[ドライバ]ドロップダウンリスト から、デバッガシステムで使用するドライバを選択する必要があります。ド ロップダウンリストに表示される内容はインストールされている製品によっ て異なり、ハードウェアデバッガシステム用のドライバが存在する場合も存 在しない場合もあります。ハードウェアデバッガシステム用のドライバを選 択した場合、ハードウェア固有のオプションも設定する必要があります。 ハードウェア固有のオプションについては、[ヘルプ]メニューからオンライ ンヘルプシステムを参照してください。 注 : 選択できるのは、コンピュータにインストール済みのドライバのみです。 リセットからの実行 [指定位置まで実行]オプションを使用すると、デバッガの起動時やリセット 後に C-SPY を実行する位置を指定できます。C-SPY は指定された位置にブ レークポイントを配置して、そこまでのすべてのコードを実行してから、そ の位置で停止します。 IAR Embedded Workbench IDE 102 ユーザガイド UEW-9 IAR C-SPY デバッガ デフォルトでは、main 関数まで実行します。他の位置まで実行する場合は、 その位置の名前を入力します。アセンブララベルかそれに相当するもの(関 数名など)を指定できます。 チェックボックスを選択していない場合は、リセットごとにプログラムカウ ンタに通常のハードウェアリセットアドレスが格納されます。 C-SPY の起動時にブレークポイントが設定されていない場合は、ステップ実 行をする必要があることと、それには非常に時間がかかることを通知する警 告メッセージが表示されます。そこでステップ実行を継続するか、最初の命 令で停止するかを選択できます。最初の命令で停止することを選択した場合、 デバッガは[指定位置まで実行]ボックスで入力した位置ではなく、PC(プ ログラムカウンタ)に格納されているデフォルトリセット位置から実行を開 始します。 注 : C-SPY シミュレータではブレークポイントに制限がないので、このメッ セージは表示されません。 ブレークポイントに関するドライバ固有の情報については、[ヘルプ]メ ニューからオンラインヘルプシステムを参照してください。 セットアップマクロファイルの使用 セットアップマクロファイルは、C-SPY の起動時に自動的にロードするよう に指定する標準マクロファイルです。セットアップマクロ関数とシステムマ クロを使用することにより、ニーズに合せたアクションを実行するセット アップマクロファイルを定義できます。したがって、セットアップマクロ ファイルをロードすることによって、アクションを自動的に実行するように C-SPY を初期化できます。 セットアップマクロファイルを登録するには、[マクロファイルの使用]を選 択して、セットアップマクロファイルのパスとファイル名、たとえば 「Setup.mac」 を入力します。ファイル名拡張子の入力を省略した場合、拡張 子は mac とみなされます。参照ボタンを使用して選択することもできます。 セットアップマクロファイルと関数の詳細については、142 ページのマクロ ファイルを参照してください。セットアップマクロファイルの使用例につい ては、「パート 1. チュートリアル」の「割込みシミュレーション」を参照し てください。 デバイス記述ファイルの選択 C-SPY は、デバイス記述ファイルを使用して、さまざまなターゲット固有の 調整を行います。このファイルには、たとえば周辺ユニットや CPU レジスタ の定義、およびそれらのグループに関するデバイス固有情報が記述されてい ます。 パート 3 デバッグ UEW-9 103 C-SPY の設定 デバッグセッションでデバイス記述ファイルに記述されているデバイス固有 情報を使用する場合、適切なデバイス記述ファイルを選択する必要がありま す。デバイス記述ファイルは cpuname\config ディレクトリに置かれており、 ファイル名拡張子 ddf が付いています。 デバイスに適合するデバイス記述ファイルをロードするには、C-SPY を起動 する前に[プロジェクト]>[オプション]を選択し、[デバッガ]カテゴリ を選択する必要があります。 [設定]ページで、デバイス記述ファイルの使用 を有効にして、 [デバイス記述ファイル]参照ボタンを使用してファイルを選 択します。 セットアップマクロファイルの使用例については、「パート 1. チュートリア ル」の「割込みシミュレーション」を参照してください。 プラグインモジュールのロード [プラグイン]ページでは、ロードしてデバッグセッションで使用できるよう にする C-SPY プラグインモジュールを指定できます。IAR システムズやサー ドパーティ製のプラグインモジュールを使用できます。使用可能なモジュー ルについては、ソフトウェア販売代理店または IAR システムズの担当者まで お問い合せください。また、IAR システムズの Web サイトでも情報を提供し ています。 プラグインモジュールのロード方法については、392 ページのプラグインを 参照してください。 C-SPY RTOS 認識プラグインモジュール 使用している IAR Embedded Workbench で、1 つ以上のリアルタイムオペレー ティングシステムプラグインモジュールがサポートされている場合、C-SPY で使用するためにいずれか 1 つをロードできます。C-SPY RTOS 認識プラグ インモジュールを使用すると、リアルタイムオペレーティングシステム上で 構築されたアプリケーションを高度に制御し、モニタできます。モニタでき るのは、タスクリスト、キュー、セマフォ、メールボックス、さまざまな RTOS システム変数などの RTOS 固有の項目です。タスク固有のブレークポイ ントとタスク固有のステップ実行により、タスクを簡単にデバッグできます。 デバッグセッションが開始されると、ロードされたプラグイン独自のウィン ドウとボタンが追加されます(RTOS がアプリケーションとリンクされてい る場合)。他の RTOS 認識プラグインモジュールについては、メーカのプラグ インモジュールを参照してください。 IAR Embedded Workbench IDE 104 ユーザガイド UEW-9 IAR C-SPY デバッガ C-SPY の起動 デバッガの設定が完了したら、デバッガセッションの開始準備が整いました。 C-SPY を起動し、現在のプロジェクトをロードするには、 [ダウンロードして デバッグ]ボタンをクリックしてください。または、[プロジェクト]>[ダ ウンロードしてデバッグ]を選択してください。 現在のプロジェクトをリロードせずに C-SPY を起動するには、 [ダウンロード なしにデバッグ]ボタンをクリックしてください。または、[プロジェクト] >[ダウンロードなしにデバッグ]を選択してください。 アプリケーションの実行方法と C-SPY の機能の使用方法については、パート 4. IAR C-SPY シミュレータの残りの章を参照してください。 IDE 外でビルドされた実行可能ファイル IDE 外でビルドされたアプリケーション、たとえばコマンドラインでビルド されたアプリケーションとともに C-SPY をロードすることもできます。外部 でビルドされたアプリケーションに対してデバッガオプションを設定できる ようにするには、IDE 内でプロジェクトを作成する必要があります。 外部でビルドされた実行可能ファイルをロードするには、最初にワークスペー ス内にそのファイル用のプロジェクトを作成する必要があります。 [プロジェ クト]>[新規プロジェクトの作成]を選択して、プロジェクト名を指定しま す。プロジェクトに実行可能ファイルを追加するには、 [プロジェクト]> [ファイルの追加]を選択して、[ファイルの種類]ドロップダウンリストで [すべてのファイル]を選択します。実行可能ファイルを見つけます(ファイ 。実行可能ファイルを起動するには、[デバッグ]ボタンを ル名の拡張子 dxx) クリックします。プロジェクトは、実行可能ファイルをリビルドするたびに再 利用できます。 このようなプロジェクトで設定する意味があるプロジェクトオプションは、 [一般オプション]カテゴリと[デバッガ]カテゴリにだけあります。プロ ジェクトの一般オプションは、実行可能ファイルをビルドしたときと同様に 設定するようにしてください。 IAR フラッシュローダを使用して外部生成アプリケーションをフラッシュす るには、対応する sim ファイルが dxx ファイルと同じディレクトリに保存さ れている必要があります。sim ファイルは、IAR ILINK リンカがある場合に C-SPY によって自動的に生成されます。 ソースファイルがない状態でデバッグセッションを開始する 通常は、IAR Embedded Workbench IDE を使用してソースファイルを編集した り、プロジェクトのビルド、デバッグセッションを開始する場合、必要なす べてのファイルが入手できてプロセスは想定したとおりに機能します。 パート 3 デバッグ UEW-9 105 C-SPY の起動 ただし、C-SPY は自動的にソースファイルを見つけることはできません。 たとえば、アプリケーションが別のコンピュータでビルドされた場合、[別 のファイルを取得]ダイアログボックスが表示されます。 図 39: [別のファイルを取得]ダイアログボックス この時点では以下のアクションを選択できます。 スキップ 提案される代替案 このデバッグセッションについて、C-SPY はソース ファイルが入手できないと想定します。 [参照]ボタンを使用して、代替ファイルを指定します。 このファイルを使用 代替ファイルを指定した後に、[このファイルを使用] によって、そのファイルを要求したファイルのエイリ アスとして確定します。このアクションを選択した後 は、これらのファイルが最初に選択された代替ファイ ルと似たようなディレクトリ構造にある場合、C-SPY は自動的に他のソースファイルを検索します。 次にデバッグセッションを開始するときに、選択した 代替ファイルが自動的にあらかじめロードされます。 可能であれば、この 不足しているソースファイルについてダイアログボッ ダイアログを表示し クスを表示する代わりに、C-SPY は以前の応答を使用 します。 ない 通常は以下のようなダイアログボックスを使用できます。 IAR Embedded Workbench IDE 106 ユーザガイド UEW-9 ● ソースファイルを使用できません。[可能であれば、このダイアログを表 示しない]をクリックし、続いて[スキップ]をクリックしてください。 C-SPY は、単に入手可能なソースコードがないと見なします。ダイアログ ボックスは再び表示されず、デバッグセッションではソースコードは表示 されません。 ● 代替のソースファイルが別の場所にある。代替ソースコードのファイルを 指定して、[可能であれば、このダイアログを表示しない]をクリックし、 [このファイルを使用]をクリックします。C-SPY は代替ファイルを使用 IAR C-SPY デバッガ するものと想定します。代替ファイルが指定されておらず、自動的に検索 されないファイルが必要な場合を除いて、ダイアログボックスは再び表示 されません。 IAR Embedded Workbench IDE を再起動すると、 [可能であれば、このダイアロ グを表示しない]をクリックした場合でも、[別のファイルを取得]ダイアロ グボックスが再び表示されます。これによって、以前の設定を変更する機会 が提供されます。 複数イメージのロード 通常、デバッグ可能なアプリケーションは、デバッグ対象の 1 ファイルのみ で構成されます。ただし、デバッグセッションの開始後に追加のデバッグ ファイル(イメージ)をロードすることも可能です。すなわち、プログラム 全体は複数のイメージで構成されることになります。 この機能は、プラットフォーム提供の機能に関する追加ライブラリが含まれ るビルド済 ROM イメージと一緒にアプリケーションをデバッグする場合に 便利です。ROM イメージとアプリケーションは、別々のプロジェクトを使用 して IAR Embedded Workbench IDE でビルドされ、別々の出力ファイルを生成 します。 以下の手順を実行します。 1 IDE で追加のデバッグファイルをロードするには、[プロジェクト]>[オプ ション ]>[デバッガ]>[イメージ]を選択します。詳細については、 391 ページのイメージを参照してください。 コマンドラインから追加のデバッグファイルをロードするには、システムマ クロ __loadImage を使用します。詳細については、415 ページの __loadImage を参照してください。 2 ロードされたデバッグファイルの一覧を表示するには、[表示]メニューか ら[イメージ]を選択します。イメージのウィンドウが表示されます (314 ページの[イメージ]ウィンドウを参照)。 複数のイメージがロードされている場合、ロードされたすべてのイメージを 合わせたデバッグ情報が表示されます。[イメージ]ウィンドウでは、1 つの イメージまたは全部のイメージのデバッグ情報を表示するかを選択できます。 デバッガの出力をファイルにリダイレクト [デバッグログ]ウィンドウ([表示]メニューから表示)には、診断メッ セージやトレース情報などのデバッガ出力が表示されます。これらの情報 は、簡単に検証できるファイルにログとして記録しておくと便利です。[ログ ファイル]ダイアログボックス([デバッグログ]メニューから表示)を使用 パート 3 デバッグ UEW-9 107 C-SPY の起動 すると、C-SPY の出力をファイルに記録できます。デバッガの出力をファイ ルに記録することで、主に 2 つのメリットがあります。 ● ファイルをエディタなどの別のツールで開くことができるので、ファイル の中で特に興味のある部分だけ調べることが可能 ● ファイルには、どこでブレークポイントが停止したかなど、プログラム実 行がどのように制御されたかの履歴が残る デフォルトでは、ファイルに出力される情報は[ログ]ウィンドウに表示さ れる内容と同一です。ただし、以下の項目から選択して、ファイルに記録で きます。エラー、ワーニング、システム情報、ユーザメッセージのいずれか、 またはすべて。[ログファイル]オプションのリファレンス情報については、 324 ページの[ログファイル]ダイアログボックスを参照してください。 IAR Embedded Workbench IDE 108 ユーザガイド UEW-9 アプリケーションの実行 IAR C-SPY® デバッガには、デバッグ中にアプリケーションを実行す るためのさまざまな機能があります。この章では、以下の内容につい て説明します。 ● ソースモードと逆アセンブリモードのデバッグについての概念の 違い ● アプリケーションの実行 ● 呼出しスタック ● ターミナル I/O の処理 ソースモードと逆アセンブリモードのデバッグ C-SPY では、必要に応じてソースモードと逆アセンブリモードをシームレス に切り替えてデバッグできます。 ソースモードのデバッグは、アプリケーションを短期間で簡単に開発するた めの手段であり、コンパイラやアセンブラがどのようにコードを実装したか を知る必要はありません。エディタウィンドウでは、一度に 1 文ずつアプリ ケーションを実行しながら、変数やデータ構造体の値をモニタできます。 逆アセンブリモードのデバッグでは、アプリケーションの重要なセクション に焦点を当てて、ハードウェアを高い精度で制御することができます。逆ア センブリウィンドウを開くと、アプリケーションが、ソースコードではなく 実際のメモリの内容に基づいて、ニーモニックアセンブリリストとして表示 され、一度にひとつの命令をアプリケーションで実行できます。混在モード 表示では、対応する C/C++ ソースコードと逆アセンブリリストを交互に表示 することもできます。 どちらのモードでデバッグしている場合でも、レジスタとメモリを表示した り、その内容を書き換えたりすることができます。 C ソースモードと逆アセンブリモードのそれぞれのデバッグセッションの例 については、19 ページのアプリケーションのデバッグを参照してください。 パート 3 デバッグ UEW-9 109 実行 実行 C-SPY には、アプリケーションを実行するためのさまざまな機能があります。 そのようなコマンドは、[デバッグ]メニューとツールバーにあります。 ステップ C-SPY は文単位でステップを実行できるため、行単位でステップを実行する 他の多くのデバッガよりも高い精度でステップ実行できます。コンパイラは、 文や関数呼出しごとにステップポイントという形式で詳細なステップ実行情 報を生成します。すなわち、コマンドでステップインするか、ステップオー バするかを選択する可能性のあるソースコード上の位置に、ステップポイン トを生成します。ステップポイントは文だけでなく、関数呼出しの位置にも 生成されるので、単純に文をステップ実行するよりも詳細にステップ実行で きます。ステップコマンドには、以下の 4 つのコマンドがあります。 ● ステップイン ● ステップオーバ ● 次の実行文が設定されました ● ステップアウト 以下に示す例で、1 つ前のステップ実行の結果、現在 f(i) 関数呼出し(強調 表示)の位置にいるものとします。 int f(int n) { value = f(n-1) + f(n-2) + f(n-3); return value; } ... f(i); value ++; ステップ実行中は、通常は関数にステップインして関数かサブルーチンの内部 でステップ実行を継続することを考えます。 [ステップイン]コマンドを実行 すると、サブルーチン f(n-1) 内部の最初のステップポイントに移動します。 int f(int n) { value = f(n-1) + f(n-2) + f(n-3); return value; } ... f(i); value ++; IAR Embedded Workbench IDE 110 ユーザガイド UEW-9 アプリケーションの実行 [ステップイン]コマンドは、通常の制御の流れに従い、次のステップポイン トが同じであるか別の関数であるかどうかに関わらず、次のステップポイン トまで実行します。 [ステップオーバ]コマンドは、同じ関数の次のステップポイントまで実行し ます。呼び出された関数の内部にステップインすることはありません。上の 例でステップオーバを実行すると、f(n-2) 関数呼出しまで実行します。この 関数呼出しは独立した文ではなく、f(n-1) と同じ文にあります。このように して、文の一部に興味のない関数呼出しがある場合にそこをスキップして、 重要な部分だけをデバッグすることができます。 int f(int n) { value = f(n-1) + f(n-2) + f(n-3); return value; } ... f(i); value ++; [次の実行文が設定されました]コマンドは、次の文である return value ま で一気に実行します。これによって、高速にステップを進めることができ ます。 int f(int n) { value = f(n-1) + f(n-2) + f(n-3); return value; } ... f(i); value ++; 関数内部では、必要に応じて、[ステップアウト]コマンドを実行すると、関 数の最後に到達する前に、ステップアウトすることができます。これによっ て、関数呼出しの直後の文まで一気に実行します。 int f(int n) { value = f(n-1) + f(n-2) f(n-3); return value; ... } ... f(i); value ++; 複雑な文の一部である個別の関数にステップインできる機能は、複数回ネス トしている関数呼出しを含む C ソースコードを使用している場合に、特に役 パート 3 デバッグ UEW-9 111 実行 に立ちます。また、コンストラクタ、デストラクタ、代入演算子、その他の ユーザ定義演算子など、多くの間接的な関数呼出しを使用する傾向がある Embedded C++ でも、ステップイン機能が非常に役に立ちます。 細かいステップ実行は、状況によっては役立つ場合もありますが、不必要に 処理を遅くすることもあります。そのため、文単位でステップ実行する機能 があり、これによって高速なステップ実行が可能になります。 GO [Go] コマンドは、現在の位置からブレークポイントまたはプログラムの最後 に到達するまで、続けて実行します。 カーソルまで実行 [カーソルまで実行]コマンドは、ソースコードの現在カーソルのある位置ま で実行します。[カーソルまで実行]コマンドは、[逆アセンブリ]ウィンド ウと[呼出しスタック]ウィンドウでも使用できます。 強調表示 エディタウィンドウと[逆アセンブリ]ウィンドウの両方で実行を停止する たびに、C-SPY は対応する C/C++ ソースまたは命令を緑色で強調表示しま す。さらに緑色の矢印が、C/C++ ソースレベルでステップする場合はエディ タウィンドウに、逆アセンブリレベルでステップする場合は[逆アセンブリ] ウィンドウに表示されます。これは、どのウィンドウがアクティブであるか によって決まります。アクティブなウィンドウがない場合、現在どのウィン ドウが他のウィンドウの上にあるかによって決まります。 図 40: C-SPY で強調表示されるソース位置 関数呼出しのない単純な文の場合、通常は文全体が強調表示されます。複数 の関数呼出しを含む文で停止した場合、[ステップイン]と[ステップオー バ]の違いを明確に表すために、最初の関数呼出しが強調表示されます。 ときどき、ソースウィンドウの文が通常の強調表示よりも薄い色で強調表示 される場合があります。これは、プログラムカウンタはソース文を構成する アセンブラ命令を指していても、そこが正確なステップポイントではないこ とを意味します。これは、[逆アセンブリ]ウィンドウでステップ実行してい IAR Embedded Workbench IDE 112 ユーザガイド UEW-9 アプリケーションの実行 るときによく発生します。プログラムカウンタがソース文の最初の命令を指 している場合は、通常の強調表示色が使用されます。 ブレークポイントを使用した停止 アプリケーションにブレークポイントを設定して、必要な位置で停止させる ことができます。ブレークポイントは、コードセクションに設定してプログ ラムロジックが正しいかどうか調べたり、データアクセスに設定してデータ が変更されたタイミングと方法を調べたりできます。使用するデバッガシス テムによっては、他の種類のブレークポイントを使用する場合もあります。 たとえば、C-SPY シミュレータを使用する場合は、単純なハードウェアデバ イスのシミュレーションを円滑に実行するための特殊なブレークポイントが あります。詳細については、「シミュレータ固有のデバッグ」を参照してくだ さい。 より高度なシミュレーションでは、ユーザが指定した特定の条件が成立した ときに停止させることができます。また、C-SPY マクロをブレークポイント に接続することもできます。このマクロは、アクションを実行するように定 義することができます。たとえば、このアクションで特定のハードウェアの 動作をシミュレーションできます。 このようにさまざまな使い方ができるため、アプリケーション実行中のさま ざまな段階における変数やレジスタの値などのステータスを検証するための 柔軟なツールとして使用できます。 ブレークポイントシステムやさまざまなブレークポイントの種類の使用方法 の詳細については、「ブレークポイントの使用」を参照してください。 [ブレイク]ボタンによる停止 アプリケーションを実行している間は、デバッグツールバーの[ブレイク] ボタンは赤で強調表示されています。実行を停止するには、[ブレイク]ボタ ンをクリックするか、[デバッグ]>[ブレイク]コマンドを選択します。 プログラムの終了位置で停止 通常は、組込みアプリケーションの実行は終了することを想定していません。 これは、アプリケーションが通常は終了しないことを意味します。ただし、 デバッグセッションのように、終了を制御する必要がある場合もあります。 アプリケーションは、終了ラベルが含まれる特殊なライブラリにリンクするこ とができます。そのラベルにはブレークポイントが自動的に設定され、そこ まで到達すると実行を停止します。C-SPY を起動する前に、[プロジェクト] >[オプション]を選択して、[リンカ]カテゴリを選択します。XLINK リン カの場合は、[出力]>[ランタイム管理モジュール付き]を、ILINK リンカ の場合は[ライブラリ]>[C-SPY デバッグサポートを含める]をそれぞれ 選択します。 パート 3 デバッグ UEW-9 113 呼出しスタック情報 呼出しスタック情報 コンパイラは、大量のバックトレース情報を生成します。これにより、 C-SPY は、実行に影響を及ぼすことなく、いつでも呼出しチェーン全体を表 示できます。 この機能は通常、以下の 2 つの目的で使用します。 ● 現在の関数の呼出し元のコンテキストを決定する場合 ● 不正な変数やパラメータの値を検出したときに、その発生元をトレースし て、呼出しチェーン内で問題が発生した関数を特定する場合 [呼出しスタック]ウィンドウは、[表示]メニューからアクセスでき、関数 呼出しリストを表示します。上端には現在の関数が表示されます。呼出し チェーンで関数を調べる場合、関数呼出しフレームをダブルクリックすると、 影響を受けるすべてのウィンドウの内容が更新されて、その呼出しフレーム の状態が表示されます。影響を受けるウィンドウには、エディタ、[ローカ ル]、[レジスタ]、[ウォッチ]、[逆アセンブリ]の各ウィンドウがあります。 通常、関数がすべてのレジスタを使用することはないため、一部のレジスタ は状態が未定義であり、そのときはダッシュ記号 (---) で表示されます。[呼出 しスタック]ウィンドウのリファレンス情報については、306 ページの[呼 出 しスタック]ウィンドウを参照してください。 エディタウィンドウと[逆アセンブリ]ウィンドウでは、最上位または現在 の呼出しフレームは緑色で強調表示され、他のフレームを検証しているとき は黄色で強調表示されます。 使いやすさを高めるために、呼出しスタックで関数を選択して、[デバッグ] メニューやコンテキストメニューで[カーソルまで実行]コマンドをクリッ クすると、選択されている関数を実行できます。 アセンブラソースコードには、自動的にバックトレース情報が挿入されるこ とはありません。適切な CFI アセンブラディレクティブをソースコードに追 加すると、アセンブラモジュールの呼出しチェーンも表示できるようになり 『IAR アセンブラリファレンスガイド』を参照してく ます。詳細については、 ださい。 ターミナル I/O 場合によっては、stdin や stdout を使用するアプリケーションの構文を、実 際のハードウェアデバイスを入出力として使用しないでデバッグする必要が あります。[ターミナル I/O]ウィンドウは、[表示]メニューからアクセスで き、アプリケーションへ入力したり、アプリケーションからの出力を表示し たりできます。 IAR Embedded Workbench IDE 114 ユーザガイド UEW-9 アプリケーションの実行 この機能は、以下の 2 つのコンテキストで使用します。 ● アプリケーションが stdin と stdout を使用している場合 ● デバッグトレース出力を生成する場合 このウィンドウを使用するには、XLINK の場合、C-SPY のデバッグサポート を含むライブラリをアプリケーションにリンクする必要があります。つまり、 オプション[I/O エミュレーションを使用]を選択してください。ILINK の場 合は、オプション[C-SPY デバッグサポートを含める]を選択します。それ によって、C-SPY は stdin、stdout、stderr をこのウィンドウに転送します。 リファレンス情報については、308 ページの[ターミナル I/O]ウィンドウを 参照してください。 stdin と stdout をファイルに転送 stdin と stdout をファイルに直接転送することもできます。ファイルをエ ディタなどの別のツールで開くことができるため、ファイルの中で特に興味 のある部分だけ調べることができます。[ターミナル I/O ログファイル]ダイ アログボックス([デバッグ]>[ログ]を選択して表示)では、出力先ログ ファイルを選択し、C-SPY のターミナル I/O ログをそのファイルに保存する ことができます。 リファレンス情報については、325 ページの[ターミナル I/O ログファイル] ダイアログボックスを参照してください。 パート 3 デバッグ UEW-9 115 ターミナル I/O IAR Embedded Workbench IDE 116 ユーザガイド UEW-9 変数と式の扱い この章では、C-SPY® で使用する変数と式を定義します。また、変数 や式を調べる方法についても説明します。 C-SPY 式 C-SPY では、アプリケーションコードで定義されている C 言語の変数や式、 アセンブラシンボルを調べることができます。また、C-SPY のマクロ変数や マクロ関数を定義して、式の評価に使用することもできます。これらのコン ポーネントから構成された式は C-SPY 式と呼ばれ、さまざまな方法で C-SPY 式をモニタできます。 C-SPY 式には、関数呼出しを除く任意の種類の C 言語の式を使用できます。 また、以下に示すシンボルも使用できます。 ● C/C++ シンボル ● アセンブラシンボル(レジスタ名、アセンブララベル) ● C-SPY マクロ関数 ● C-SPY マクロ変数 有効な C-SPY 式の例を以下に示します。 i + j i = 42 #asm_label #R2 #PC my_macro_func(19) C 言語のシンボル C 言語のシンボルは、アプリケーションの C ソースコードで定義した、変 数、定数、関数などのシンボルです。C 言語のシンボルは、その名前で参照 できます。 sizeof の使用 C 規格に準じて、2 つの sizeof の構文形式をとります。 sizeof(タイプ) sizeof 式 前者がタイプ用で、後者が式用です。 パート 3 デバッグ UEW-9 117 C-SPY 式 C-SPY では、sizeof 演算子の使用時に式を括弧で囲いません。たとえば、 sizeof (x+2) の代わりに sizeof x+2 を使用します。 アセンブラシンボル アセンブラシンボルは、アセンブララベルかレジスタ名です。つまり、汎用 レジスタと、プログラムカウンタやステータスレジスタなどの特殊機能レジ スタがあります。デバイス記述ファイルを使用する場合は、I/O ポートなど、 メモリにマッピングされたすべての周辺ユニットも、CPU レジスタと同様に アセンブラシンボルとして使用できます。103 ページのデバイス記述ファイ ルの選択を参照してください。 アセンブラシンボルの頭に # が付いている場合は C-SPY 式で使用できます。 例 実行される内容 #pc++ プログラムカウンタ値をインクリメント myptr = #label7 myptr にそのゾーン内の label7 のアドレスを設定 表 13: C-SPY アセンブラシンボル式 ハードウェアレジスタとアセンブララベルの名前が衝突する場合、ハード ウェアレジスタが優先的に選択されます。そのような場合にアセンブララベ ルを参照するには、ラベルをバッククォート(ASCII 文字 0x60)で囲む必要 があります。以下に例を示します。 例 実行される内容 #pc プログラムカウンタを参照 #`pc` アセンブララベル pc を参照 表 14: ハードウェアレジスタとアセンブララベルの名前が衝突する場合の処理 [レジスタ]ウィンドウには、デフォルトで使用できるプロセッサ固有のシン ボルが、CPU レジスタレジスタグループに基づいて表示されます。138 ページ のレジスタグループを参照してください。 マクロ関数 マクロ関数は、C-SPY 変数定義と、マクロが呼び出されたときに実行される マクロ文から構成されます。 C-SPY マクロ関数とその使用方法の詳細については、142 ページのマクロ言 語を参照してください。 マクロ変数 マクロ変数の定義と配置はアプリケーションの外部で行われ、C-SPY 式で使 用できます。C 言語のシンボルと C-SPY マクロ変数の名前が衝突する場合、 IAR Embedded Workbench IDE 118 ユーザガイド UEW-9 変数と式の扱い C-SPY マクロ変数が C 言語の変数よりも優先的に選択されます。 マクロ変数 に代入すると、その値と型の両方に代入が行われます。 C-SPY マクロ変数とその使用方法の詳細については、403 ページのマクロ言 語を参照してください。 変数情報の制限 C 言語の変数の値は、ステップポイント、すなわち文の先頭の命令と関数呼 出しの位置でのみ有効です。その場合、エディタウィンドウで淡い緑色で強 調表示されます。実際には、変数の値はそれ以外の位置でもアクセスでき、 正しい値を示すことがほとんどです。 プログラムカウンタが文の内部でステップポイント以外の位置を指している 場合は、その文または文の一部は通常の強調表示色よりも薄い色で強調表示 されます。 最適化の影響 コンパイラは、予想される動作が実行できる範囲内であれば、可能な限り自 由にアプリケーションソフトウェアを最適化します。プロジェクト設定に よっては、最高水準の最適化を実行すると、コードのサイズは小さくなり、 実行時間は速くなりますが、コンパイルに要する時間は長くなります。生成 されたコードとソースコードの関連もわかりにくくなるため、デバッグは難 しくなります。通常は、高いレベルで最適化を行うと、コードに変更が生じ、 予想と違って、変数の値を参照できなくなります。 1 つ例を示します。 myFunction() { int i = 42; ... x = compute(i); /* i の値は C-SPY に認識されています */ ... } 変数 i が宣言されてから実際に使用されるまで、コンパイラはその変数用の スペースをスタックやレジスタに確保する必要はありません。コンパイラは このコードを最適化できますが、C-SPY はその変数が実際に使用されるまで その値を表示できなくなります。一時的に使用できない状態にある変数の値 を表示しようとすると、C-SPY は以下のメッセージを表示します。 使用不可能 デバッグセッションで変数の値を常に把握する必要がある場合は、コンパイ ル時に一番低い最適化レベル、[なし]を指定する必要があります。 パート 3 デバッグ UEW-9 119 変数と式の表示 変数と式の表示 変数の値を参照、計算する方法はいろいろあります。 ● ツールチップウォッチは、エディタウィンドウで表示され、変数や、より 複雑な式の値を表示するための最も簡単な方法です。ポインタで変数を指 すだけで、変数の横にその値が表示されます。 ● [自動]ウィンドウ([表示]メニューから表示)には、現在の文かその近 くにある変数が自動的に表示されます。 ● [ローカル]ウィンドウ([表示]メニューから表示)には、ローカル変 数、つまりアクティブな関数の自動変数と関数パラメータが自動的に表示 されます。 ● [ウォッチ]ウィンドウ([表示]メニューから表示)では、C-SPY の式や 変数の値をモニタすることができます。 ● [ライブウォッチ]ウィンドウ( [表示]メニューから表示)には、アプリ ケーション実行中に継続的に式の値がサンプリングされて表示されます。 式の変数は、グローバル変数のように、静的に特定できる必要があります。 ● [静的]ウィンドウ([表示]メニューから表示)は、静的記憶寿命変数の 値を自動的に表示します。 ● [クイックウォッチ]ウィンドウについては、「121 ページの[クイック ウォッチ]ウィンドウの使用」を参照してください。 ● トレースシステムについては、「121 ページのトレースシステムの使用」を 参照してください。 列の長さ以上の長さのテキストは、[トレース]ウィンドウ以外のこれらのす べてのウィンドウで切り詰められており、該当するテキストにマウスポイン タを置くと、ツールチップ情報が表示されます。 他のウィンドウのリファレンス情報については、「283 ページの C-SPY のウィ ンドウ」を参照してください。 ウィンドウの操作 ウィンドウはどれも使いやすく設計されています。ウィンドウでは、式の追 加、変更、削除、表示フォーマットの変更を行うことができます。 どのウィンドウでも、ウィンドウ内で右クリックすると、便利なコマンドを 含むコンテキストメニューが表示されます。[ローカル]ウィンドウと[ク イックウォッチ]ウィンドウ以外のウィンドウでは、ウィンドウ間のドラッ グアンドドロップもサポートされています。 値を追加するには、点線の長方形をクリックして、調べる式を入力します。 式の値を変更するには、[値]フィールドをクリックして、その内容を変更 します。式を削除するには、式を選択して、Delete キーを押します。 IAR Embedded Workbench IDE 120 ユーザガイド UEW-9 変数と式の扱い [クイックウォッチ]ウィンドウの使用 [クイックウォッチ]ウィンドウ([表示]メニューから表示)では、変数や 式の値のモニタや式の評価を行うことができます。 [クイックウォッチ]ウィンドウと[ウォッチ]ウィンドウには、以下に示す ような違いがあります。 ● [クイックウォッチ]ウィンドウを使用すると、短時間で式を検証して、 評価することができます。評価式を右クリックして、表示されるコンテキ ストメニューで[クイックウォッチ]を選択します。[クイックウォッチ] ウィンドウに式が自動的に表示されます。 ● [ウォッチ]ウィンドウと違って、[クイックウォッチ]ウィンドウでは式 を評価するタイミングを細かく制御できます。代入や C-SPY マクロ関数な どアクションのある式の場合は、条件を制御しながら評価することができ ます(単一変数では必要ない場合が多い)。 トレースシステムの使用 トレースは、ターゲットシステムで記録されたイベントシーケンスであり、 通常は実行されたマシン命令です。使用する C-SPY ドライバに応じて、他の タイプのトレースデータを記録できます。たとえば、メモリのリード / ライ トアクセス、C-SPY 式の値などを記録できます。 トレースシステムを使用することで、特定の状態(アプリケーションのク ラッシュなど)になるまでのプログラムの流れをトレースしたり、トレース 情報を使用して問題の原因を特定したりすることができます。トレース情報 は、不規則な症状が散発的に発生するようなプログラミングエラーを特定す る際に役に立ちます。また、テストドキュメントとしても使用できます。 一部の C-SPY ドライバは、トレースシステムをサポートしていません。使用 している C-SPY ドライバが提供するトレースシステムとコンポーネントの詳 細については、対応するドライバのおよびを参照してください。 使用できるトレースシステム機能は、使用している C-SPY ドライバによって 異なります。ただし、トレースシステムをサポートするすべての C-SPY ドラ イバでは、[トレース]ウィンドウ、[トレースを検索]ウィンドウ、[トレー スを検索]ダイアログボックスは常に使用できます。トレース情報はファイ ルに保存して、後から分析できます。 [トレース]ウィンドウとブラウズモード [トレース]ウィンドウに表示される情報の種類は、使用している C-SPY ド ライバによって異なります。異なるトレースデータは別の列に表示されます が、使用しているドライバがトレースシステムをサポートしている場合、[ト レース]列は常に表示されます。対応するソースコードも表示できます。 パート 3 デバッグ UEW-9 121 変数と式の表示 [トレース]ウィンドウを表示してスクロールするだけで、実行履歴をたど ることができます。別の方法として、ブラウズモードに入ることができま す。ブラウズモードに入るには、[トレース]ウィンドウで項目をダブルク リックするか、ツールバーの[ブラウズ]ボタンをクリックします。選択さ れた項目が黄色で表示され、ソースウィンドウと逆アセンブリウィンドウの 対応する位置が強調表示されます。ここで、上向き矢印キーと下向き矢印 キーを使用するか、スクロールしてクリックすることで、[トレース]ウィ ンドウ内を移動できます。ソースウィンドウと逆アセンブリウィンドウも、 対応する位置が表示されるように更新されます。もう一度ダブルクリックす ると、ブラウズモードが終了します。 トレースデータの検索 記録されたトレースデータに対して高度な検索を実行できます。[トレースを 検索]ダイアログボックスで検索基準を指定すると、[トレースを検索]ウィ ンドウに結果が表示されます。 [トレースを検索]ウィンドウは[トレース]ウィンドウと非常によく似てお り、表示される列とデータは同じですが、表示される行は、指定された検索 基準に一致した行だけです。[トレースを検索]ウィンドウで項目をダブルク リックすると、[トレース]ウィンドウに同じ項目が表示されます。 アセンブラ変数の表示 アセンブララベルは、型に関する情報を何も持たないため、C-SPY はそれ以 外の情報が与えられなければ、そのラベルの位置にあるデータを簡単に表示 することはできません。データを簡単に表示する方法として、デフォルトで は、C-SPY はアセンブララベルの位置にあるすべてのデータを int 型の変数 として処理します。ただし、[ウォッチ]、[クイックウォッチ]、[ライブ ウォッチ]の各ウィンドウでは、変数宣言に合せて別の解釈を選択すること ができます。 IAR Embedded Workbench IDE 122 ユーザガイド UEW-9 変数と式の扱い 以下に示す図では、4 つの変数が[ウォッチ]ウィンドウに表示され、対応 する宣言が左側のアセンブラソースファイルで示されています。 図 41: [ウォッチ]ウィンドウでのアセンブラ変数の表示 asmvar4 は、元のアセンブラ宣言では 1 バイトデータとして意図していたの に対し、 [ウォッチ]ウィンドウでは int 型として表示されていることに注意 してください。コンテキストメニューを使用すると、たとえば 8 ビットの符 号なし変数として表示するように指定できます。asmvar3 変数は、すでにそ のように指定されています。 パート 3 デバッグ UEW-9 123 変数と式の表示 IAR Embedded Workbench IDE 124 ユーザガイド UEW-9 ブレークポイントの使用 この章では、ブレークポイントシステムについて説明するとともに、 ブレークポイントの作成およびモニタを行うためのさまざまな方法に ついて説明します。また、ブレークポイントに関する有益なヒント と、ブレークポイントの設定元に関する情報も提供します。 ブレークポイントシステム C-SPY® のブレークポイントシステムを使用すると、デバッグ中のアプリ ケーションで、さまざまな種類のブレークポイントを設定して、必要な位置 で実行を停止することができます。ブレークポイントをコード部分に設定す ると、プログラムロジックが正しいかどうかを調べたり、トレースを出力し たりできます。コードブレークポイントの他に、使用している C-SPY ドライ バによっては、別の種類のブレークポイントを使用できる場合があります。 たとえば、データブレークポイントを設定すると、データがいつどのように 変更されるかを調べることができます。シミュレータドライバを使用してい る場合は、イミディエイトブレークポイントを設定することもできます。ま た、C-SPY では、複数の方法でブレークポイントを定義できます。 設定したブレークポイントはすべて[ブレークポイント]ウィンドウに表示 され、簡単にそれらをモニタ、有効 / 無効にすることができます。 ユーザが指定した特定の条件が成立したときにのみ実行を停止させることが できます。また、実行を停止することなく、C-SPY マクロ関数の実行などの 2 次アクションをブレークポイントからトリガすることもできます。マクロ 関数を定義すると、ハードウェアの動作のシミュレーションなど、さまざま なアクションを実行できます。 デバッグセッションがアクティブでなくても、コードを編集しながらブレー クポイントを設定できます。設定したブレークポイントは、デバッグセッ ションを開始するときに検証されます。ブレークポイントはデバッグセッ ション終了後も保持されます。 このようにさまざまな使い方ができるため、アプリケーションのステータス を検証するための柔軟なツールとして使用できます。 ブレークポイントの定義 ブレークポイントはさまざまな方法で設定でき、定義したブレークポイント は、[ブレークポイント]ウィンドウに表示されます。このウィンドウでは、 パート 3 デバッグ UEW-9 125 ブレークポイントの定義 すべてのブレークポイントの表示、ブレークポイントの有効化 / 無効化、新 しいブレークポイントを定義するためのダイアログボックスの表示を実行で きます。 ブレークポイントは、ステップ動作と同じメカニズムを使用して、行単位よ りも細かい精度で設定されます。精度に関する詳細については、110 ページの ステップを参照してください。 コードブレークポイントとログブレークポイントのリファレンス情報につい ては、219 ページの[コード]ブレークポイントダイアログボックスおよび 221 ページの[ログ]ブレークポイントダイアログボックスを参照してくだ さい。それ以外の種類のブレークポイントの詳細については、ドライバ固有 のドキュメントを参照してください。 ブレークポイントアイコン ブレークポイントはエディタウィンドウの左余白にあるアイコンでマークを 付け、コードブレークポイント用とログブレークポイント用で違うアイコン を使用します。 コードブレークポ イント ログブレークポ イント ツールチップ情報 無効なコードブレー クポイント 図 42: ブレークポイントアイコン ブレークポイントアイコンが表示されない場合は、[ブックマークの表示]オ プションが選択されていることを確認します(257 ページの[エディタ]オ プションを参照)。 マウスポインタをブレークポイントアイコンに置くだけで、同じ位置に設定し たすべてのブレークポイントに関する詳細なツールチップ情報を取得できま す。最初の行がユーザブレークポイント情報を、後続する行が、ユーザブレー クポイントの実装に使用する物理ブレークポイントを説明します。後者の情報 は、 [ブレークポイントの使用]ダイアログボックスでも表示されます。 注 : ブレークポイントアイコンは、使用している C-SPY ドライバによって異 なった外観になります。ブレークポイントアイコンの詳細については、ドラ イバ関連ドキュメントを参照してください。 IAR Embedded Workbench IDE 126 ユーザガイド UEW-9 ブレークポイントの使用 ブレークポイントの各種設定方法 ブレークポイントは、さまざまな方法で設定できます。 ● [ブレークポイントの切替え]コマンドを使用すると、コードブレークポ イントが切り替わります。このコマンドは、[ツール]メニューのほか、 エディタウィンドウや[逆アセンブリ]ウィンドウでのコンテキストメ ニューからも使用できます。 ● エディタウィンドウまたは[逆アセンブリ]ウィンドウの左側の余白部分 で右クリックすると、コードブレークポイントが切り替わります。 ● エディタウィンドウ、[ブレークポイント]ウィンドウ、[逆アセンブリ] ウィンドウのコンテキストメニューから[新規ブレークポイント]ダイア ログボックスおよび[ブレークポイントの編集]ダイアログボックスを使 用する方法。これらのダイアログボックスでは、すべてのブレークポイン トオプションにアクセスできます。 ● ● [メモリ]ウィンドウでメモリエリアに直接データブレークポイントを設 定する方法。 定義済システムマクロを使用してブレークポイントを設定する方法。自動 化が可能になります。 方法によって簡単さ、複雑さ、自動化のレベルが異なります。 シンプルなコードブレークポイントトグル コードブレークポイントのトグルは、簡単にブレークポイントを設定するた めの方法です。エディタウィンドウと[逆アセンブリ]ウィンドウの両方で、 次の方法を使用できます。 ● ウィンドウの左側の灰色で表示された余白部分をダブルクリック ● ブレークポイントを設定する C 言語のソース文、アセンブラ命令に挿入ポ イントを配置して、ツールバーの[ブレークポイントの切替え]ボタンを クリック ● ● [編集]>[ブレークポイントの切替え]を選択 右クリックして、表示されるコンテキストメニューで[ブレークポイント の切替え]を選択 ダイアログボックスによるブレークポイントの定義 ブレークポイントダイアログボックスを使用する利点は、グラフィカルイン タフェースで対話的にブレークポイントの特性を微調整できるということで す。この方法では、オプションを設定した後、すぐにブレークポイントが意 図したとおりに動作するかどうかをテストできます。 パート 3 デバッグ UEW-9 127 ブレークポイントの定義 ブレークポイントダイアログボックスで定義したブレークポイントはすべて、 デバッグセッションが終了後も保持されます。 ブレークポイントダイアログボックスは、エディタウィンドウ、[ブレークポ イント]ウィンドウ、[逆アセンブリ]ウィンドウのコンテキストメニューか ら開くことができます。 新しいブレークポイントを定義するには 1 [表示]>[ブレークポイント]を選択して、[ブレークポイント]ウィンドウ を開きます。 2 [ブレークポイント]ウィンドウで右クリックして、コンテキストメニューを 開きます。 3 コンテキストメニューで、[新規ブレークポイント]を選択します。 4 サブメニューで、設定するブレークポイントの種類を選択します。使用して いる C-SPY ドライバによっては、別の種類のブレークポイントを使用できる 場合があります。 ブレークポイントダイアログボックスが表示されます。ブレークポイント設 定を指定して、[OK] をクリックします。ブレークポイントが[ブレークポイ ント]ウィンドウに表示されます(131 ページのすべてのブレークポイント の表示参照)。 既存のブレークポイントを変更するには 1 [ブレークポイント]ウィンドウ、エディタウィンドウ、または[逆アセンブ リ]ウィンドウで変更するブレークポイントを選択し、右クリックしてコン テキストメニューを開きます。 IAR Embedded Workbench IDE 128 ユーザガイド UEW-9 ブレークポイントの使用 図 43: コンテキストメニューからのブレークポイントの設定 同一の行に複数のブレークポイントが設定されている場合、それらはサブメ ニューに一覧表示されます。 2 コンテキストメニューで、目的のコマンドを選択します。 ブレークポイントダイアログボックスが表示されます。ブレークポイント設 定を指定して、[OK] をクリックします。ブレークポイントが[ブレークポイ ント]ウィンドウに表示されます(131 ページのすべてのブレークポイント の表示参照)。 [メモリ]ウィンドウでのデータブレークポイントの設定 [メモリ]ウィンドウでメモリロケーションにブレークポイントを直接設定す ることができます。ウィンドウを右クリックして、表示されるコンテキスト メニューからブレークポイントコマンドを選択します。範囲にブレークポイ ントを設定するには、メモリの該当領域を選択します。 ブレークポイントは強調表示されません。[ブレークポイント]ウィンドウで ブレークポイントの表示、編集、削除が行えます。このウィンドウには、[表 示]メニューからアクセスできます。このウィンドウで設定したブレークポ イントは、リードとライトの両方のアクセスでトリガされます。[メモリ] ウィンドウで定義したブレークポイントはすべて、デバッグセッションが終 了後も保持されます。 パート 3 デバッグ UEW-9 129 ブレークポイントの定義 [メモリ]ウィンドウで複数の種類のブレークポイントを設定できるのは、使 用しているドライバがそれらの種類のブレークポイントをサポートしている 場合だけです。 システムマクロによるブレークポイントの定義 ブレークポイントの定義は、[ブレークポイント]ダイアログボックス以外 に、C-SPY の組込みシステムマクロでも行えます。マクロを使用してブレー クポイントを定義すると、ブレークポイントの特性は関数パラメータとして 指定されます。 マクロによる定義は、要求どおりのブレークポイント設定ができない場合に 便利です。組込みのシステムマクロを使用してブレークポイントをマクロ ファイルに定義し、C-SPY の起動時にマクロファイルを実行することができ ます。これにより、ブレークポイントは、C-SPY を起動するたびに自動的に 設定されます。他にも、デバッグセッションがドキュメント化される、開発 プロジェクトに携わる複数のエンジニア間でマクロファイルを共有できると いった長所があります。 システムマクロを使用して設定されたブレークポイントも、[ブレークポイン ト]ウィンドウで表示や変更を行えます。ダイアログボックスを使用して定 義されたブレークポイントと異なり、システムマクロを使用して定義された ブレークポイントはデバッグセッションを終了するとすべて削除されます。 使用している C-SPY ドライバによっては、以下のブレークポイントを使用で きます。 __setCodeBreak __setDataBreak __setLogBreak __setSimBreak __setTraceStartBreak __setTraceStopBreak __clearBreak ブレークポイントマクロの詳細については、「C-SPY マクロリファレンス」を 参照してください。 セットアップマクロファイルを使用して C-SPY 起動時にブレークポ イントを定義 セットアップマクロファイルを使用して C-SPY の起動時にブレークポイント を定義できます。手順の詳細については、145 ページのセットアップマクロ とセットアップファイルによる登録と実行を参照してください。 IAR Embedded Workbench IDE 130 ユーザガイド UEW-9 ブレークポイントの使用 ブレークポイントのヒント 以下は、ブレークポイントの設定に関連して役に立つヒントを説明します。 不正な関数引数のトレース 関数が呼び出されるときに、そのポインタ引数に誤って NULL が渡されること がある場合は、関数の先頭行にブレークポイントを設定して、パラメータが 0 のときだけ真になる条件を指定すると便利です。このブレークポイントは、 問題となる状況が実際に発生するまでトリガされません。 実行を停止して、または停止しないでタスクを実行 ブレークポイントがトリガされたときに、実行を停止して、または実行を停 止しないで、タスクを実行できます。 [アクション]テキストボックスを使用すると、C-SPY マクロ関数などのアク ションをブレークポイントに関連付けることができます。ブレークポイント がトリガされ、アプリケーションの実行が停止すると、マクロ関数が実行さ れます。 実行を停止しないでタスクを実行する必要がある場合は、0(偽)を返す条件 を設定します。ブレークポイントがトリガされると条件が評価されますが、 結果は真ではないため、アプリケーションの実行は続行されます。 C-SPY マクロ関数が単純なタスクを実行する例を考えます。 __var my_counter; count() { my_counter += 1; return 0; } この関数をブレークポイントの条件として使用するには、[条件]の[式]テ キストボックスに「count()」 と入力します。これにより、ブレークポイント がトリガされると、タスクが実行されます。マクロ関数 count は常に 0 を返 すため、条件は偽であり、プログラムは停止することなく自動的に再開され ます。 すべてのブレークポイントの表示 ブレークポイントは、[ブレークポイント]ウィンドウと[ブレークポイント の使用]ダイアログボックスで表示できます。 パート 3 デバッグ UEW-9 131 すべてのブレークポイントの表示 [ブレークポイント]ウィンドウについては、218 ページの[ブレークポイン ト]ウィンドウを参照してください。 [ブレークポイントの使用]ダイアログボックスの使用 [ブレークポイントの使用]ダイアログボックスは、[シミュレータ]メ ニューなど、C-SPY のドライバ固有のメニューからアクセスでき、すべての アクティブなブレークポイントのリストを表示します。 図 44: [ブレークポイントの使用]ダイアログボックス [ブレークポイントの使用]ダイアログボックスには、ターゲットシステム で現在設定されているすべてのブレークポイントのリストが表示されます。 これらのブレークポイントには、ユーザ定義によるブレークポイントと C-SPY が内部的に使用しているブレークポイントが含まれます。リスト内の 各ブレークポイントについて、アドレスとアクセスタイプが表示されます。 また、各ブレークポイントを拡張すると、その発生元が表示されます。この ダイアログボックスの項目のフォーマットは、使用している C-SPY ドライバ によって異なります。 このダイアログボックスでは、すべてのブレークポイントの下位レベルの情 報が表示されます。これらの項目は、[ブレークポイント]ダイアログボック スで表示されるブレークポイントのリストと関連はありますが、同一ではあ りません。 使用できる下位レベルのブレークポイントの数を超えると、デバッガがステッ プ実行するようになります。この場合、大幅に実行速度が低下します。そのた め、ブレークポイントの数が限られているデバッガシステムでは、以下の目的 で[ブレークポイントの使用]ダイアログボックスを使用すると便利です。 IAR Embedded Workbench IDE 132 ユーザガイド UEW-9 ● すべてのブレークポイントの設定元を特定 ● ターゲットシステムでサポートされているアクティブなブレークポイント の数をチェック ブレークポイントの使用 ● 可能であれば、使用できるブレークポイントを効率よく利用できるように デバッガを設定 使用しているデバッガシステムで使用できるブレークポイントの数と使用で きるブレークポイントを効率よく使用する方法については、使用しているデ バッガシステムに対応する本書のパートでブレークポイントについて説明し ているセクションを参照してください。 ブレークポイントの設定元 デバッガシステムには複数のブレークポイントの設定元が存在します。 ユーザブレークポイント([ブレークポイント]ダイアログボックスで定義し たブレークポイントまたはエディタウィンドウでブレークポイントを切り替え ることによって定義したブレークポイント)は、多くの場合下位レベルのブ レークポイントを 1 つずつ使用しますが、状況によってこの数は大きく変わり ます。一部のユーザブレークポイントは複数の下位レベルのブレークポイント を使用します。逆に複数のユーザブレークポイントが 1 つの下位レベルのブ レークポイントを共有することもできます。ユーザブレークポイントは、たと [ブレークポイントの使用]ダイア えば「Data @[R] callCount」 のように、 ログボックスと[ブレークポイント]ウィンドウに同じように表示されます。 C-SPY 自身もブレークポイントを使用します。C-SPY は以下の場合にブレー クポイントを設定します。 ● デバッガオプション[実行]が選択され、いずれかのステップコマンドが 使用されている場合。これらはデバッガシステムの実行時にのみ設定され る一時的なブレークポイントです。したがって、[ブレークポイントの使 用]ウィンドウにはこれらのブレークポイントは表示されません。 ● リンカオプション[I/O エミュレーションを使用](XLINK の場合) 、およ び[C-SPY デバッグサポートを含める](ILINK の場合)が選択されてい る場合。 この 2 種類のブレークポイントの設定元は、[ブレークポイントの使用]ダイ アログボックスに、たとえば「C-SPY Terminal I/O & libsupport module」 のように表示されます。 リアルタイムオペレーティングシステム用モジュールなどの C-SPY プラグイ ンモジュールもブレークポイントを使用する場合があります。特にデフォル トでは、[スタック]ウィンドウでブレークポイントを使用します。[スタッ ク]ウィンドウで使用するブレークポイントを無効にするには、以下の操作 を行います。 ● [ツール]>[オプション]>[スタック]を選択します。 ● [プログラム開始までスタックポインタを無効にする]の[ラベル]オプ ションの選択を解除します。 パート 3 デバッグ UEW-9 133 すべてのブレークポイントの表示 IAR Embedded Workbench IDE 134 ユーザガイド UEW-9 メモリとレジスタのモニタ この章では、以下に示す IAR C-SPY® デバッガの機能を使用してメモ リとレジスタを調べる方法について説明します。 メモリアドレッシング C-SPY では、ゾーンは名前付きメモリエリアを表します。メモリアドレス、 またはメモリアドレス(ロケーション)は、ゾーンとそのゾーン内のオフ セット値の組合せです。 メモリゾーンはさまざまなコンテキストで使用されますが、[メモリ]ウィン ドウと[逆アセンブリ]ウィンドウで最も重要な役割を果たします。これら のウィンドウにある[ゾーン]ボックスでは、表示するメモリゾーンを選択 します。 メモリゾーンはデバイス記述ファイルに定義されています。詳細については、 103 ページのデバイス記述ファイルの選択を参照してください。 メモリとレジスタのモニタ用ウィンドウ C-SPY には、メモリとレジスタをモニタするウィンドウが多数あり、それら は個々に[表示]メニューから表示できます。 ● [メモリ]ウィンドウ 指定メモリエリアであるメモリゾーンの最新状態を表示して、編集できま す。様々な色を使用して、アプリケーションの実行に伴うデータカバレッ ジを示します。指定エリアに特定の値を設定して、メモリ位置と範囲に直 接ブレークポイントを設定できます。このウィンドウで数個のインスタン スを開き、様々なメモリエリアをモニタできます。詳細については、 291 ページの[メモリ]ウィンドウを参照してください。129 ページの[メ モリ]ウィンドウでのデータブレークポイントの設定も参照してください。 ● [シンボルメモリ]ウィンドウ 静的記憶寿命変数がメモリ内でどのように配置されるかを表示します。こ れにより、メモリの使用が理解し易くなり、バッファオーバランなど上書 きされた変数に起因して発生した問題の調査に役立ちます。 ● [スタック]ウィンドウ メモリ内でのスタック変数の配置を含むスタック内容を表示します。ま た、スタックの整合性チェックを実行し、スタックオーバフローを検出し パート 3 デバッグ UEW-9 135 メモリとレジスタのモニタ用ウィンドウ てワーニングすることもできます。たとえば、 [スタック]ウィンドウを 使用して、スタックの最適サイズを特定できます。 ● [レジスタ]ウィンドウ プロセッサレジスタと SFR の内容の最新状態を表示し、それを編集でき ます。 特定の変数の内容を表示するには、単純にその変数を[メモリ]ウィンドウ または[シンボルメモリ]ウィンドウにドラッグします。変数が配置されて いるメモリエリアが表示されます。 [スタック]ウィンドウの使用 [スタック]ウィンドウを開く前に、それが有効であることを確認する必要が あります。[スタック]ウィンドウを有効にするには、[プロジェクト]>[オ プション]>[デバッガ]>[プラグイン]を選択して、表示されるプラグイ ンのリストで[スタック]を選択します。C-SPY では、[表示]>[スタック] を選択して、[スタック]ウィンドウを表示することができます。 [スタック] ウィンドウの複数のインスタンスを表示し、それぞれ異なるスタックを表示 する(スタックが複数ある場合)か、同じスタックを異なる表示設定値で表 示することができます。 スタック 現在のスタッ クポインタ ビュー 使用中のスタック メモリ、濃い灰色 未使用のスタックメ モリ、淡い灰色 ツールチップ情報を提 供するグラフィカルス タックバー 現在のスタッ クポインタ 図 45: [スタック]ウィンドウ [スタック]ウィンドウの詳細なリファレンス情報、スタックの使用量と制限 値の計算方法については、316 ページの[スタック]ウィンドウを参照して ください。 [スタック]ウィンドウに固有のリファレンス情報については、 271 ページの[スタック]オプションを参照してください。 マウスポインタをスタックバーの上に移動すると、スタック使用量に関する ツールチップ情報が表示されます。 IAR Embedded Workbench IDE 136 ユーザガイド UEW-9 メモリとレジスタのモニタ スタックオーバフローの検出 [ツール]>[オプション]>[スタック]を選択して[スタックチェックの有 効化]オプションを選択すると、スタックオーバフローの検出に必要な機能 も有効になります。これは、アプリケーションが実行を停止したときに、 C-SPY がスタックオーバフローのワーニングを出力できることを意味します。 ワーニングは、スタック使用量がユーザが指定するしきい値を超えたときか、 スタックポインタがスタックメモリ範囲以外のエリアを指したときに出力さ れます。 スタックの内容の表示 [スタック]ウィンドウの表示エリアにはスタック内容が表示されます。この 表示は、さまざまな状況で役に立ちます。以下に例を示します。 ● C モジュールからアセンブラモジュールを呼び出すか、その逆のときに、 スタック使用量を調べる場合 ● 適切なエレメントがスタック上に配置されているかどうかを調べる場合 ● スタックが正しく復元されているかどうかを調べる場合 レジスタの操作 [レジスタ]ウィンドウにはプロセッサレジスタと特殊機能レジスタの最新状 態が表示されており、これらの編集が可能です。 図 46: [レジスタ]ウィンドウ C-SPY が停止するたびに、前回停止したときから変更された値が強調表示さ れます。レジスタの内容を編集するには、レジスタをクリックして、値を変 更します。レジスタによっては、展開して、ビット別またはビットのサブグ ループ別に表示できます。 パート 3 デバッグ UEW-9 137 メモリとレジスタのモニタ用ウィンドウ 表示フォーマットを変更するには、[ツール]>[オプション]を選択して、 [レジスタフィルタ]ページで[ベース]設定を変更します。 レジスタグループ レジスタは、メモリにマッピングされた周辺ユニットレジスタや CPU レジス タなどが多数存在するため、[レジスタ]ウィンドウに同時にすべてのレジス タを表示するのは不便です。その場合は、レジスタをレジスタグループに分 割する方法があります。デフォルトでは、デバッガには CPU Registers という レジスタグループが 1 つ存在します。 [CPU レジスタ]の他に、cpuname\config ディレクトリのデバイス記述ファ イルに追加のレジスタグループが事前定義されています。これらのレジスタ グループを使用することによって、すべての SFR レジスタがレジスタウィン ドウで使用可能になります。デバイス記述ファイルには、特殊機能レジスタ とそのグループを定義するセクションがあります。 [レジスタ]ウィンドウで表示するレジスタグループを、ドロップダウンリス トで選択できます。[レジスタ]ウィンドウは複数のインスタンスを同時に開 くことができるため、異なるレジスタグループを同時にトレースできます。 定義済レジスタグループの有効化 定義済レジスタグループを使用するには、デバイスに適合するデバイス記述 ファイルを選択します。103 ページのデバイス記述ファイルの選択を参照し てください。 C-SPY の実行中に[ツール]>[オプション]を選択すると、[レジスタフィ ルタ]ページに使用できるレジスタグループが表示されます。 アプリケーション固有のグループの定義 定義済レジスタグループの他に、アプリケーションでのレジスタの使用方法 に合せてユーザ独自のレジスタグループを作成できます。 新しいレジスタグループを定義するには、[ツール]>[オプション]を選択 して、[レジスタフィルタ]タブをクリックします。このページは、デバッガ の実行中のみ使用できます。 IAR Embedded Workbench IDE 138 ユーザガイド UEW-9 メモリとレジスタのモニタ 図 47: [レジスタフィルタ]ページ このダイアログボックスのリファレンス情報については、273 ページの[レ ジスタフィルタ]オプションを参照してください。 パート 3 デバッグ UEW-9 139 メモリとレジスタのモニタ用ウィンドウ IAR Embedded Workbench IDE 140 ユーザガイド UEW-9 C-SPY マクロシステムの 使用 C-SPY には、包括的なマクロシステムが含まれており、デバッグ処理 の自動化や、周辺デバイスのシミュレーションができます。マクロを 複雑なブレークポイントと割込みシミュレーションと関連付けて使用 すると、さまざまなタスクを実行できます。 この章では、マクロシステム、その機能、適用可能な目的、使用方法 について説明します。 マクロシステム C-SPY マクロは、単独で使用することもできますが、複雑なブレークポイン トおよび割込みシミュレーションとともに使用することにより、さまざまな タスクを実行できます。マクロが役に立つ例をいくつか示します。 ● トレース出力、変数値の出力、ブレークポイントの設定などによるデバッ グセッションの自動化。 ● ハードウェアレジスタの初期化などのハードウェア設定。 ● スタックの深さを計算する関数など、簡単なデバッグユーティリティ関数 の開発。 ● 周辺デバイスのシミュレーション。「割込みシミュレーション」を参照し てください。シミュレータドライバを使用している必要があります。 マクロシステムの特長を以下に示します。 ● C 言語に似たマクロ言語。独自のマクロ関数を作成できます。 ● 定義済みシステムマクロ。ファイルのオープンやクローズ、ブレークポイ ントの設定、割込みシミュレーションの定義など便利なタスクを実行でき ます。 ● 予約セットアップマクロ。マクロ関数を実行するタイミングの定義に使用 可能。独自の関数はセットアップマクロファイルに定義します。 ● マクロ関数を 1 つ以上のマクロファイルにまとめるオプション。 ● マクロ関数とマクロファイルを表示、登録、編集するためのダイアログ ボックス。ダイアログボックスではなく、設定機能やシステムマクロを使 用してマクロファイルとマクロ関数を登録し、実行することもできます。 パート 3 デバッグ UEW-9 141 マクロシステム 多くの C-SPY タスクは、ダイアログボックスかマクロ関数を使用して実行で きます。ダイアログボックスを使用すると、グラフィカルインタフェースで 対話的に、ブレークポイントの設定など、実行する必要があるタスクの特性 を微調整できます。この方法では、パラメータを追加して、すぐにブレーク ポイントが意図したとおりに動作するかどうかをテストできます。 一方、マクロは、要件どおりのブレークポイント設定ができない場合に便利 です。マクロファイルを作成し、たとえば C-SPY の起動時にそのマクロファ イルを実行することによって、シミュレータ環境を自動的に設定できます。 他にも、デバッグセッションがドキュメント化されることや、開発プロジェ クトに複数のエンジニアが携わっている場合にマクロファイルを共有できる などの長所があります。 マクロ言語 マクロ言語の構文は C 言語に非常によく似ています。C 言語の文に似たマク ロ文があります。マクロ関数を、パラメータとリターン値の有無を指定して 定義できます。組込みシステムマクロは、C 言語のライブラリ関数に似てい ます。最後に、グローバルとローカルのマクロ変数を定義できます。マクロ 言語のコンポーネントの詳細については、403 ページのマクロ言語を参照し てください。 例 以下に示すマクロ関数の例では、マクロ言語のさまざまなコンポーネントが 示されています。 CheckLatest(value) { oldvalue; if (oldvalue != value) { __message "Message: Changed from ", oldvalue, " to ", value; oldvalue = value; } } 注 : マクロの予約語は、名前の衝突を避けるために、2 連のアンダースコアで 始まります。 マクロファイル マクロ変数とマクロ関数は 1 つ以上のマクロファイルにまとめます。マクロ 変数またはマクロ関数を定義するには、まずそれらの定義を含むテキスト ファイルを作成します。テキストエディタとしては、IDE で提供されるエ ディタなど、適当なエディタを任意に使用できます。ファイルには適切な名 前を付けて、ファイル名の拡張子を mac として保存します。 IAR Embedded Workbench IDE 142 ユーザガイド UEW-9 C-SPY マクロシステムの使用 セットアップマクロファイル C-SPY の起動時にマクロファイルをロードすることができます。そのような マクロファイルをセットアップマクロファイルと呼びます。一部の CPU レジ スタやメモリにマッピングされた周辺ユニットを初期化するなどのアクショ ンを、アプリケーションソフトウェアをロードする前に C-SPY に実行させる 必要がある場合に、非常に便利な機能です。また、C-SPY の初期化を自動化 する必要がある場合や、複数のセットアップマクロファイルを登録する必要 がある場合にも使用できます。C-SPY セットアップマクロファイルの例とし ては、cpuname\tutor ディレクトリの SetupSimple.mac があります。 セットアップマクロファイルのロード方法については、145 ページのセット アップマクロとセットアップファイルによる登録と実行を参照してください。 セットアップマクロファイルの使用例については、「パート 1. チュートリア ル」の「割込みシミュレーション」を参照してください。 セットアップマクロ関数 セットアップマクロ関数は予約済みのマクロ関数名であり、実行中に特定の タイミングで呼び出されます。以下に、呼出し可能なタイミングを示します。 ● ターゲットシステムとの通信確立後、アプリケーションソフトウェアをダ ウンロードするまでの間 ● アプリケーションソフトウェアのダウンロードが完了した直後 ● リセットコマンドが発行されるたび ● デバッグセッションの終了直後 マクロ関数を呼び出すタイミングを定義するには、マクロ関数をセットアッ プマクロ関数に定義し、登録する必要があります。たとえば、アプリケー ションソフトウェアをロードする前に特定のメモリエリアをクリアする必要 がある場合は、マクロ設定関数 execUserPreload が適しています。アプリ ケーションソフトウェアをロードする前に一部の CPU レジスタやメモリに マッピングされた周辺ユニットを初期化する必要がある場合にも、この関数 は適しています。各セットアップマクロ関数の詳細については、408 ページ のセットアップマクロ関数のまとめを参照してください。 他のマクロ関数と同じように、セットアップマクロ関数もマクロファイルに まとめます。セットアップマクロ関数の多くは main に到達する前に実行され るので、これらの関数はセットアップマクロファイルで定義する必要があり ます。 パート 3 デバッグ UEW-9 143 C-SPY マクロの使用 C-SPY マクロの使用 C-SPY マクロを使用することを決定したら、まずマクロ関数を定義するため のマクロファイルを作成する必要があります。次に、定義したマクロ関数を 使用することを C-SPY に通知する必要があるため、マクロファイルを登録 (ロード)する必要があります。デバッグセッション中は、使用可能なすべて のマクロ関数の一覧を表示し、それらを実行する必要があります。 登録されているマクロ関数のリストを表示するには、[マクロ設定]ダイアロ グボックスを使用します。マクロ関数の登録と実行は、それぞれさまざまな 方法で実行できます。 ● [マクロ設定]ダイアログボックスでは、対話的にマクロを登録できます。 ● セットアップマクロファイルにセットアップマクロ関数を定義することに よって、C-SPY の起動シーケンスでマクロ関数を登録し、実行できます。 ● システムマクロ __ registerMacroFile を使用すると、マクロ関数定義を含 むファイルを登録できます。これは、実行時の条件に応じて、登録するマ クロファイルを動的に選択できることを意味します。さらに、システムマ クロを使用する場合は、同時に複数のファイルを登録できます。システム マクロの詳細については、422 ページの __registerMacroFile を参照してくだ さい。 ● ● [クイックウォッチ]ウィンドウでは式を評価できるため、それによって マクロ関数を実行できます。 マクロはブレークポイントに接続でき、ブレークポイントがトリガされる と、マクロが実行されます。 [マクロ設定]ダイアログボックスの使用 [マクロ設定]ダイアログボックス([デバッグ]>[マクロ]を選択して表 示)では、マクロファイル / 関数の表示、登録、編集を行うことができます。 このダイアログボックスは、マクロ関数を対話的に登録できるインタフェー スを提供します。マクロ関数を開発するときに、そのロードとテストを繰り 返すような場合に便利です。 IAR Embedded Workbench IDE 144 ユーザガイド UEW-9 C-SPY マクロシステムの使用 ダイアログボックスを使用して登録したマクロ関数は、デバッグセッション を終了すると無効になり、次のデバッグセッションで自動的には登録されま せん。 図 48: [マクロ設定]ダイアログボックス このダイアログボックスのリファレンス情報については、322 ページの[マ クロ設定]ダイアログボックスを参照してください。 セットアップマクロとセットアップファイルによる登録と実行 C-SPY の起動シーケンスでマクロファイルを登録できると、特に既製の複数 のマクロ関数を使用する場合に、便利です。その場合、C-SPY は main に到 達する前にマクロを実行します。そのためには、デバッガを起動する前に ロードするマクロファイルを指定します。この場合、マクロ関数は、C-SPY を起動するたびに自動的に登録されます。 セットアップマクロ関数名を使用してマクロ関数を定義する場合は、マクロ 関数を実行するタイミングを正確に定義できます。 パート 3 デバッグ UEW-9 145 C-SPY マクロの使用 以下の手順を実行します。 1 マクロ関数を定義するテキストファイルを作成します。 次に例を示します。 execUserSetup() { ... _ _registerMacroFile("MyMacroUtils.mac"); _ _registerMacroFile("MyDeviceSimulation.mac"); } このマクロ関数は、MyMacroUtils.mac と MyDeviceSimulation.mac の 2 つ のマクロファイルを登録します。このマクロ関数は execUserSetup という関 数名で定義されているため、アプリケーションのダウンロードが完了した直 後に実行されます。 2 ファイル名拡張子を mac としてこのファイルを保存します。 3 C-SPY を起動する前に、[プロジェクト]>[オプション]を選択して、[デ バッガ]カテゴリの[設定]タブをクリックします。 [セットアップファイル の使用]チェックボックスを選択して、作成したマクロファイルを選択します。 これで、割込みマクロが C-SPY の起動シーケンス中にロードされるようにな ります。 [クイックウォッチ]によるマクロの実行 [クイックウォッチ]ウィンドウ([表示]メニューから表示)では、変数や 式の値のモニタや評価を行うことができます。マクロに関しては、[クイック ウォッチ]ウィンドウではマクロ関数を実行するタイミングを動的に選択で きるため、非常に便利です。 以下に示す、ウォッチドッグタイマ割込みイネーブルビットのステータスを チェックする単純なマクロ関数について考えます。 WDTstatus() { if (#WDreg & 0x01 != 0) /* WDTIE の状態を確認します */ return "Timer enabled"; /* 使用した C-SPY マクロ文字列 */ else return "Timer disabled"; /* 使用した C-SPY マクロ文字列 */ } 1 ファイル名の拡張子を mac としてこのマクロ関数を保存します。ファイルは開 いたままにします。 IAR Embedded Workbench IDE 146 ユーザガイド UEW-9 C-SPY マクロシステムの使用 2 マクロファイルを登録するには、[デバッグ]>[マクロ]を選択します。[マ クロ設定]ダイアログボックスが表示されます。マクロファイルを特定して、 [追加]をクリックして、[レジスタ]をクリックします。登録されているマ クロのリストに、マクロ関数が表示されます。 3 マクロファイルエディタウィンドウで、マクロ関数名 WDTstatus を選択しま す。右クリックして、表示されるコンテキストメニューで[クイックウォッ チ]を選択します。 図 49: [クイックウォッチ]ウィンドウ マクロは、[クイックウォッチ]ウィンドウに自動的に表示されます。 [閉じる]をクリックして、ウィンドウを閉じます。 ブレークポイントにマクロを接続して実行 マクロは、ブレークポイントに接続できます。これにより、ブレークポイント がトリガされると、マクロが実行されます。この方法では、特定の場所で実行 を停止して、そこで特定のアクションを実行できるという長所があります。 たとえば、変数、シンボル、レジスタの値が変更された経緯などの情報を含 むログレポートを簡単に作成できます。これを実現するには、疑わしい位置 にブレークポイントを設定し、そのブレークポイントにログマクロを接続し ます。これにより、処理を実行した後で、レジスタの値が変更された経緯を 調べることができます。 ログマクロを作成してブレークポイントに接続する例を、以下に示します。 1 アプリケーションソースコードに以下の C 関数のスケルトンが定義されてい ると仮定します。 int fact(int x) { ... } パート 3 デバッグ UEW-9 147 C-SPY マクロの使用 2 以下の例のような簡単なログマクロ関数を作成します。 logfact() { __message "fact(" ,x, ")"; } __message 文で、メッセージが[ログ]ウィンドウにロギングされます。 マクロファイルのファイル名の拡張子を mac として、ログマクロ関数を保存 します。 3 このマクロを実行するには、先にマクロを登録する必要があります。[マク ロ設定]ダイアログボックス([デバッグ]>[マクロ]を選択して表示)で は、マクロファイルを[選択したマクロファイル]のリストに追加できま す。[レジスタ]をクリックすると、マクロ関数が[登録マクロ]のリスト に表示されます。ダイアログボックスを閉じます。 4 次に、[ブレークポイントの切替え]ボタンを使用して、アプリケーション ソースコードの fact 関数の最初の文にあるコードブレークポイントをトグル する必要があります。 [ブレークポイント]ダイアログボックス( [編集]> [ブレークポイント]を選択して表示)では、トグルしたブレークポイントが ダイアログボックスの最下部のブレークポイントリストに表示されます。そ のブレークポイントを選択します。 5 [アクション]フィールドにマクロ関数 logfact() の名前を入力してログマク ロ関数をブレークポイントに接続します。 [適用]をクリックします。ダイア ログボックスを閉じます。 6 これで、アプリケーションソースコードを実行できます。ブレークポイント がトリガされると、マクロ関数が実行されます。結果は [Log] ウィンドウに 表示されます。 ログマクロ関数は簡単に拡張できます。たとえば、__fmessage 文を使用する と、ファイルにログ情報を出力できます。__fmessage 文については、 406 ページのフォーマットした出力を参照してください。 マクロをブレークポイントに接続することによってシリアルポート入力バッ ファをシミュレーションする例の詳細については、「パート 1. チュートリア ル」の「割込みシミュレーション」を参照してください。 IAR Embedded Workbench IDE 148 ユーザガイド UEW-9 アプリケーションの分析 アプリケーションのボトルネックを特定したり、アプリケーションの あらゆる部分のテストが完了しているかどうかを確認することは重要 です。この章では、アプリケーションを分析するための IAR C-SPY® デバッガの機能について説明します。アプリケーションを分析するこ とによって、最適化に要する時間と労力を節約できます。 関数レベルのプロファイリング プロファイラを使用すると、特定の事象が発生したときに実行時間が最も長 かった関数を見つけることができます。このような関数には、コードを最適 化する際に、集中的に時間と労力をかける必要があります。簡単に関数を最 適化するには、実行速度最適化を指定してコンパイルします。別の方法とし て、関数をメモリ内に移動すると、最も効率的なアドレッシングモードで動 作させることができます。効率的なメモリの使用方法の詳細については、『コ ンパイラのドキュメント』を参照してください。 [プロファイリング]ウィンドウには、アプリケーションの関数のタイミング 情報であるプロファイリング情報が表示されます。プロファイリングは、 ウィンドウのツールバーにあるボタンを使用して明示的に有効にする必要が あります。有効にした後は、無効にするまではその状態に保持されます。 プロファイラは関数の開始から終了までの時間を測定します。したがって、 関数内で費やす時間は、その関数が復帰するか、別の関数が呼び出されるま で追加されません。これがわかるのは、関数内にステップ実行される場合だ けです。 [プロファイリング]ウィンドウのリファレンス情報については、312 ページ の[プロファイリング]ウィンドウを参照してください。 パート 3 デバッグ UEW-9 149 関数レベルのプロファイリング プロファイラの使用 [プロファイリング]ウィンドウを使用するには、アプリケーションをビルド する際に、以下のオプションを使用する必要があります。 カテゴリ 設定 C/C++ コンパイラ [出力]>[デバッグ情報の生成] リンカ (XLINK) [形式]>[C-SPY のデバッグ情報] リンカ (ILINK) [出力]>[出力ファイルにデバッグ情報を含める] 表 15: プロファイリングを有効にするためのプロジェクトオプション デバッガ [プラグイン]>[プロファイリング] 1 アプリケーションをビルドして C-SPY を起動した後、[表示]>[プロファイ リング]を選択してウィンドウを開き、[有効化]ボタンをクリックして、プ ロファイラを有効にします。 2 [クリア]ボタンをクリックするか、ウィンドウで右クリックして表示される コンテキストメニューを使用すると、新しいサンプリングが開始されます。 3 実行を開始します。プログラムの終了に到達した、ブレークポイントがトリガ されたなどの理由で実行が停止したときは、 [更新]ボタンをクリックします。 図 50: [プロファイリング]ウィンドウ プロファイリング情報がウィンドウに表示されます。 数値の表示 列の見出しをクリックすると、リスト全体がその列に従ってソートされます。 リストの灰色表示された項目は、その関数がソースコードを持たない関数 (デバッグ情報なしでコンパイルされた関数)から呼び出されたことを表しま す。関数が、ライブラリ関数のようにソースコードを持たない関数から呼び 出された場合、時間に関する測定は行われません。 リストには常に[メイン外]という項目が表示されます。これは、リスト内 のどの関数にも該当しない時間を示します。つまり、デバッグ情報(開始 / 終了コード、C/C++ ライブラリコードなど)なしでコンパイルされたコード を示します。 IAR Embedded Workbench IDE 150 ユーザガイド UEW-9 アプリケーションの分析 [グラフ]ボタンをクリックすると、パーセント値を表す列の表示方法を数値 や棒グラフに切り替えることができます。 図 51: [プロファイリング]ウィンドウのグラフ リストで選択された関数の詳細情報を表示するには、[詳細を表示]ボタンを クリックします。選択した関数の呼出し元と呼出し先の情報を示すウィンド ウが表示されます。 図 52: [関数詳細]ウィンドウ レポートの生成 レポートを生成するには、ウィンドウを右クリックして、表示されるコンテ キストメニューで[名前を付けて保存 ...]コマンドを選択します。[プロファ イリング]ウィンドウに表示されている内容がファイルに保存されます。 コードカバレッジ コードカバレッジ機能を使用すると、コードのあらゆる部分が実行されたか どうかを確認できます。この機能は、コードのあらゆる部分が実行されたこ とを確認するテスト手順を設計する場合に便利です。また、コードに到達不 可能な部分が存在するかどうかを調べる場合にも使用できます。 パート 3 デバッグ UEW-9 151 コードカバレッジ コードカバレッジの使用 [コードカバレッジ]ウィンドウ([表示]メニューから表示)には、現在の コードカバレッジ解析状態、つまり解析開始以降に少なくとも 1 回実行され ているコード部分が表示されます。コンパイラは、文や関数呼出しごとにス テップポイントという形式で詳細なステップ実行情報を生成します。レポー トには、すべてのモジュールと関数についての情報が表示されます。アプリ ケーション停止時点で実行済みのすべてのステップポイントの割合がレポー トされ、実行されていないすべてのステップポイントが表示されます。カバ レッジは、無効にするまで続行されます。 [コードカバレッジ]ウィンドウのリファレンス情報については、310 ページ の[コードカバレッジ]ウィンドウを参照してください。 [コードカバレッジ]ウィンドウを使用するには、アプリケーションをビルド する際に、以下のオプションを使用する必要があります。 カテゴリ 設定 C/C++ コンパイラ [出力]>[デバッグ情報の生成] リンカ (XLINK) [形式]>[C-SPY のデバッグ情報] リンカ (ILINK) [出力]>[出力ファイルにデバッグ情報を含める] デバッガ [プラグイン]>[コードカバレッジ] 表 16: コードカバレッジを有効にするためのプロジェクトオプション 1 アプリケーションをビルドして C-SPY を起動した後、[表示]>[コードカバ レッジ]を選択して[コードカバレッジ]ウィンドウを開きます。このウィ ンドウが表示されます。 図 53: [コードカバレッジ]ウィンドウ IAR Embedded Workbench IDE 152 ユーザガイド UEW-9 アプリケーションの分析 2 [有効化]ボタンをクリックするか、コンテキストメニューで[有効化]を選 択し、コードカバレッジアナライザを有効にします。 3 実行を開始します。プログラムの終了に到達した、ブレークポイントがトリ ガされたなどの理由で実行が停止したときは、[更新]ボタンをクリックし て、コードカバレッジ情報を確認します。 数値の表示 コードカバレッジ情報は、プログラム、モジュール、関数、ステップポイン トレベルがツリー構造で表示されます。プラス記号とマイナス記号をクリッ クすると、構造を展開したり折りたたんだりできます。 すべてのレベルの現在の状態は、以下のアイコンで示されます。 ● 赤色のひし形は、実行済みコードが 0% であることを示します。 ● 緑色のひし形は、実行済みコードが 100% であることを示します。 ● 赤と緑の 2 色のひし形は、一部のコードが実行済みであることを示します。 ● 黄色のひし形は、実行されていないステップポイントを示します。 プログラム、モジュール、関数の各行の末尾に表示されるパーセント値は、 それまでにカバーされたコードの量、すなわち実行済みのステップポイント 数をステップポイント総数で割った値を表します。 ステップポイントの行については、ソースウィンドウでのステップポイント の列番号範囲、行番号、ステップポイントのアドレスが表示されます。 <column start>-<column end>:row. ステップポイントは、その命令が 1 つでも実行されると、ステップポイント が実行されたとみなされます。実行されたステップポイントは、ウィンドウ から削除されます。 [コードカバレッジ]ウィンドウでステップポイントか関数をダブルクリック すると、ソースウィンドウがアクティブウィンドウになり、ダブルクリック したステップポイントか関数がソースウィンドウでの現在の位置になります。 プログラムレベルでモジュールをダブルクリックすると、ツリー構造を展開 したり、折りたたんだりできます。 タイトルバーにアスタリスク (*) が表示されている場合は、C-SPY が実行を 継続していること、および[コードカバレッジ]ウィンドウに表示されてい る情報が最新ではないため、それを最新の情報に更新する必要があることを 示します。最新の情報に更新するには、[更新]コマンドを使用します。 パート 3 デバッグ UEW-9 153 コードカバレッジ 表示されるコード部分 ウィンドウに表示されるのは、デバッグ情報付きでコンパイルされた文だけ です。したがって、起動コード、終了コード、ライブラリコードはウィンド ウには表示されません。また、インライン化された関数内の文のカバレッジ 情報は表示されません。インライン化された関数呼出しを含む文だけが実行 済みとしてマークされます。 レポートの生成 レポートを生成するには、ウィンドウを右クリックして、表示されるコンテ キストメニューで[名前を付けて保存 ...]コマンドを選択します。[コードカ バレッジ]ウィンドウに表示されている内容がファイルに保存されます。 IAR Embedded Workbench IDE 154 ユーザガイド UEW-9 パート 4. IAR C-SPY シ ミュレータ 『IAR Embedded Workbench IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● シミュレータ固有のデバッグ ● 割込みシミュレーション 155 UEW-9 156 UEW-9 シミュレータ固有のデバッグ C-SPY シミュレータは、一般の C-SPY® の機能に加えて、シミュレー タ固有の機能を提供します。この章ではシミュレータ固有の機能につ いて説明します。 リファレンス情報の他に、メモリアクセスチェックやブレークポイン トなど、ドライバ固有の特性についても説明します。 C-SPY シミュレータの概要 C-SPY シミュレータは、ターゲットプロセッサの機能をソフトウェアで完全 にシミュレーションするため、ハードウェアがすべて揃っていなくてもプログ ラムロジックをデバッグできます。ハードウェアが不要であるため、多くのア プリケーションにとって最も費用効果の高いソリューションでもあります。 機能 C-SPY の一般的な特長に加えて、シミュレータには以下のような特長があり ます。 ● 命令レベルのシミュレーション ● メモリの構成、検証 ● 割込みシミュレーション ● イミディエイトブレークポイントと C-SPY マクロシステムを使用した周辺 シミュレーション シミュレータドライバの選択 C-SPY を起動する前に、シミュレータドライバを選択する必要があります。 IDE で、[プロジェクト]>[オプション]を選択して、[デバッガ]カテゴリ の[設定]タブをクリックします。[ドライバ]ドロップダウンリストで[シ ミュレータ]を選択します。 C-SPY ドライバは、使用するコンピュータにインストールされたものしか選 択できません。 パート 4 IAR C-SPY シミュレータ UEW-9 157 シミュレータ固有のメニュー シミュレータ固有のメニュー シミュレータドライバを使用する場合、[シミュレータ]メニューがメニュー バーに追加されます。 [シミュレータ]メニュー 図 54: [シミュレータ]メニュー [シミュレータ]メニューには、以下のコマンドがあります。 メニューコマンド 説明 割込み設定 C-SPY の割込みシミュレーションを設定するためのダイアログボッ クスを開きます(183 ページの[割込み設定]ダイアログボックス を参照)。 強制割込み 割込みをトリガできるウィンドウを開きます(186 ページの[強制割 込み]ウィンドウを参照)。 割込みログ 定義されているすべての割込みのステータスを表示するウィンドウを 開きます(188 ページの[割込みログ]ウィンドウを参照)。 メモリアクセス さまざまなアクセスタイプでメモリエリアを指定して、メモリアクセ 設定 スチェックをシミュレーションするダイアログボックスを開きます (159 ページの[メモリアクセス設定]ダイアログボックスを参照)。 トレース 関数トレース [トレース]ウィンドウを開きます。記録されたトレースデータが表 示されます(167 ページの[トレース]ウィンドウを参照)。 関数の呼出しや復帰を示すトレースデータを表示する[関数トレー ス]ウィンドウを開きます(168 ページの[関数トレース]ウィンド ウを参照)。 ブレークポイン アクティブなすべてのブレークポイントのリストを表示する[ブレー トの使用 クポイントの使用]ダイアログボックスを開きます(177 ページの [ブレークポイントの使用]ダイアログボックスを参照)。 表 17: [シミュレータ]メニューコマンドの説明 IAR Embedded Workbench IDE 158 ユーザガイド UEW-9 シミュレータ固有のデバッグ メモリアクセスチェック C-SPY はターゲットハードウェアの様々なメモリアクセスタイプをシミュ レーションして、ライト専用メモリにリードアクセスするなどの不正なアク セスを検出します。特定のメモリエリアに対して指定されたアクセスタイプ に従わないメモリアクセスが発生した場合、C-SPY はそれを不正なアクセス と認識します。メモリアクセスチェック機能によって、ユーザはメモリアク セス違反を特定しやすくなります。 メモリエリアは、デバイス記述ファイルで定義済のゾーンか、デバッグファ イルのセグメント / セクション情報に基づいています。これら以外に、ユー ザが独自のメモリエリアを定義できます。アクセスタイプには、読み取 り 、書き込み、読み取り のみ、書き込み のみがあります。2 つの異なるアク セスタイプを同一のメモリエリアに割り当てることはできません。アクセス タイプの違反および未指定の範囲へのアクセスをチェックすることができま す。違反が検出された場合は、[デバッグログ]ウィンドウにロギングされま す。実行を停止するかどうかを選択することもできます。 [シミュレータ]>[メモリアクセス設定]を選択して、[メモリアクセス設 定]ダイアログボックスを開きます。 [メモリアクセス設定]ダイアログボックス [メモリアクセス設定]ダイアログボックス([シミュレータ]メニューから 表示)には、定義されているすべてのメモリエリアのリストが表示されます。 リストの各列はそれらのエリアのプロパティを指定します。つまり、このダ イアログボックスには、シミュレーション中に使用されるメモリアクセス設 定が表示されます。 パート 4 IAR C-SPY シミュレータ UEW-9 159 メモリアクセスチェック 図 55: [メモリアクセス設定]ダイアログボックス 注 :[使用範囲の設定基準ファイル]オプションと[使用範囲を手動で設定] オプションを両方とも有効にすると、定義されているすべての範囲へのメモ リアクセスがチェックされます。 表示される列とプロパティについては、162 ページの[メモリアクセスの編 集]ダイアログボックスを参照してください。 使用範囲の設定基準ファイル [使用範囲の設定基準ファイル]オプションを使用して、定義済メモリアクセ ス設定を選択します。以下の選択肢があります。 IAR Embedded Workbench IDE 160 ユーザガイド UEW-9 ● [デバイス記述ファイル]を選択すると、プロパティはデバイス記述ファ イルからロードされます。 ● [デバッグファイルセグメント情報]を選択すると、プロパティはデバッ グファイルのセグメント / セクション情報に基づいて決まります。この情 報は、デバッグ中のみ使用できます。このオプションの利点は、シミュ レータが、リンクされているアプリケーション以外からのメモリアクセス をキャプチャできることです。 シミュレータ固有のデバッグ 使用範囲を手動で設定 [使用範囲を手動で設定]オプションを使用して、[メモリアクセスの編集] ダイアログボックスで独自の範囲を手動で指定します。このダイアログボッ クスを開くには、[新規作成]を選択して新しいメモリ範囲を指定するか、メ モリゾーンを選択してから[編集]を選択してそのメモリゾーンを変更しま す。詳細については、162 ページの[メモリアクセスの編集]ダイアログ ボックスを参照してください。 手動で定義した範囲は、デバッグセッション終了後も保持されます。 メモリアクセスチェック [チェック対象]オプションを使用して、チェックする対象を指定します。 ● アクセスタイプ違反 ● 指定範囲外へのアクセス [アクション]オプションを使用して、アクセス違反が発生したときに実行す るアクションを指定します。以下から選択します。 ● 違反のログ ● ログと実行停止 違反が検出された場合は、[デバッグログ]ウィンドウにロギングされます。 ボタン [メモリアクセス設定]ダイアログボックスには、以下に示すボタンがあり ます。 ボタン 説明 OK 標準の「OK」 キャンセル 標準の「キャンセル」 新規 [メモリアクセスの編集]ダイアログボックスを開きます。新し いメモリ範囲を指定したり、アクセスタイプを割り当てたりする ことができます(162 ページの[メモリアクセスの編集]ダイア ログボックスを参照)。 編集 [メモリアクセスの編集]ダイアログボックスを開きます。選択 されたメモリエリアを編集できます。162 ページの[メモリアク セスの編集]ダイアログボックスを参照してください。 削除 選択されたメモリエリア定義を削除します。 全て削除 定義されているすべてのメモリエリア定義を削除します。 表 18: [メモリアクセス設定]ダイアログボックスの機能ボタン パート 4 IAR C-SPY シミュレータ UEW-9 161 メモリアクセスチェック 注 : [OK] ボタンと[キャンセル]ボタン以外のボタンは、[使用範囲を手動 で設定]オプションが選択されているときだけ使用できます。 [メモリアクセスの編集]ダイアログボックス [メモリアクセスの編集]ダイアログボックス([メモリアクセス設定]ダイ アログボックスから表示)では、メモリ範囲を指定したり、メモリ範囲ごと にアクセスタイプを割り当てて、シミュレーション中に不正なアクセスを検 出したりできます。 図 56: [メモリアクセスの編集]ダイアログボックス メモリ範囲ごとに、以下のプロパティを定義できます。 メモリ範囲 以下に示す設定を使用して、メモリアクセスをチェックするメモリエリアを 定義します。 ゾーン メモリゾーン。135 ページのメモリアドレッシングを参照して ください。 開始アドレス アドレス範囲の開始アドレスを 16 進表記で指定します。 終了アドレス アドレス範囲の終了アドレスを 16 進表記で指定します。 アクセスタイプ メモリ範囲に割り当てるアクセスタイプを、[リード / ライト]、 [リード 専 用]、[ライト 専用]の中から 1 つ選択します。2 つの異なるアクセスタイプ を同一のメモリエリアに割り当てることはできません。 IAR Embedded Workbench IDE 162 ユーザガイド UEW-9 シミュレータ固有のデバッグ シミュレータのトレースシステムの使用 ここでは、トレースシステムの使用について説明します。以下の項目につい て説明します。 ● 163 ページのトレースシステムの使用に関する要件 ● 163 ページのトレースシステムを使用する理由 ● 163 ページのトレースシステムの概要 ● 163 ページのトレースシステムの使用方法 ● 164 ページの関連リファレンス情報 トレースシステムの使用に関する要件 シミュレータでは、トレースシステムを使用する上で特定の要件はありま せん。 トレースシステムを使用する理由 トレースシステムを使用することで、特定の状態(アプリケーションのク ラッシュなど)になるまでのプログラムの流れをトレースしたり、トレース 情報を使用して問題の原因を特定したりすることができます。トレース情報 は、不規則な症状が散発的に発生するようなプログラミングエラーを特定す る際に役に立ちます。また、テストドキュメントとしても使用できます。 トレースシステムの概要 C-SPY シミュレータでは、トレースは、実行されたマシン命令シーケンスの 記録です。その他に、[トレース式]ウィンドウで式を選択すると、C-SPY 式 の値を記録できます。[トレース]ウィンドウにはすべての命令が表示されま すが、[関数トレース]ウィンドウには、関数呼出しと関数からの呼び出しに 対応するトレースデータだけが表示されます。 トレースシステムの使用方法 シミュレータのトレースシステムを使用する上で、特に必要なビルド設定は ありません。 1 アプリケーションをビルドして C-SPY を起動したら、[表示]>[トレース] を選択して[トレース]ウィンドウを開き、 [有効化]ボタンをクリックして トレースロギングを有効にします。 2 実行を開始します。プログラムの終了に到達した、ブレークポイントがトリ ガされたなどの理由で実行が停止したときは、[トレース]ウィンドウにト レースデータが表示されます。ウィンドウの情報については、「167 ページの [トレース]ウィンドウ」を参照してください。 パート 4 IAR C-SPY シミュレータ UEW-9 163 シミュレータのトレースシステムの使用 トレースシステムの汎用機能の詳細は、121 ページのトレースシステムの使 用を参照してください。 ブレークポイントを使用したトレースシステムの起動 2 つの実行ポイント間で命令を自動的にトレースする簡単な方法は、専用の ブレークポイントを使用してトレースシステムを開始および停止することで す。これらのブレークポイントを設定するには、[トレース開始]と[トレー ス停止]ダイアログボックスか、システムマクロ __setTraceStartBreak お よび __setTraceStopBreak を使用します。 関連リファレンス情報 トレースシステムを使用する際は、以下のウィンドウおよびダイアログボッ クスに関する情報を参照してください。 ● 164 ページの[トレース開始ブレークポイント]ダイアログボックス ● 165 ページの[トレース停止]ブレークポイントダイアログボックス ● 167 ページの[トレース]ウィンドウ ● 168 ページの[関数トレース]ウィンドウ ● 169 ページの[トレース式]ウィンドウ ● 170 ページの[トレースを検索]ウィンドウ ● 171 ページの[トレースを検索]ダイアログボックス [トレース開始ブレークポイント]ダイアログボックス トレース開始ブレークポイントのオプションを設定するには、[ブレークポイ ント]ウィンドウを右クリックしてコンテキストメニューを表示します。コ ンテキストメニューで[新規ブレークポイント]>[トレース開始]を選択し て、新しいブレークポイントを設定します。既存のブレークポイントを変更 するには、[ブレークポイント]ウィンドウでブレークポイントを選択し、コ ンテキストメニューから[編集]を選択します。 IAR Embedded Workbench IDE 164 ユーザガイド UEW-9 シミュレータ固有のデバッグ [トレース開始]ブレークポイントダイアログボックスが表示されます。 図 57: [トレース開始]ブレークポイントダイアログボックス ブレークポイントがトリガされると、トレースシステムが起動します。 トリガ位置 [トリガ位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]参照ボタンをクリックして[位置入力]ダイアログボック スを表示します。223 ページの[ブレーク位置入力]ダイアログボックスを 参照してください。 [トレース停止]ブレークポイントダイアログボックス トレース停止ブレークポイントのオプションを設定するには、[ブレークポイ ント]ウィンドウを右クリックしてコンテキストメニューを表示します。コ ンテキストメニューで[新規ブレークポイント]>[トレース停止]を選択し て、新しいブレークポイントを設定します。既存のブレークポイントを変更 するには、[ブレークポイント]ウィンドウでブレークポイントを選択し、コ ンテキストメニューから[編集]を選択します。 パート 4 IAR C-SPY シミュレータ UEW-9 165 シミュレータのトレースシステムの使用 [トレース停止]ブレークポイントダイアログボックスが表示されます。 図 58: [トレース停止]ブレークポイントダイアログボックス ブレークポイントがトリガされると、トレースシステムが停止します。 トリガ位置 [トリガ位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]参照ボタンをクリックして[位置入力]ダイアログボック スを表示します。223 ページの[ブレーク位置入力]ダイアログボックスを 参照してください。 IAR Embedded Workbench IDE 166 ユーザガイド UEW-9 シミュレータ固有のデバッグ [トレース]ウィンドウ [トレース]ウィンドウは、[シミュレータ]メニューからアクセスでき、実 行されたマシン命令シーケンスの記録を表示します。また、式のトレース データも表示できます。 図 59: [トレース]ウィンドウ C-SPY では、プログラムカウンタの位置に基づいて、トレース情報が生成さ れます。 [トレース]ツールバー [トレース]ウィンドウ上部および[関数トレース]ウィンドウにある[ト レース]ツールバーでは、次のツールバーボタンを使用できます。 ツールバーのボタン 説明 有効 / 無効 トレースを有効か無効にします。 [関数トレース]ウィンドウでは このボタンは使用できません。 トレースデータのク トレースバッファをクリアします。[トレース]ウィンドウと[関 リア 数トレース]ウィンドウが両方ともクリアされます。 ソースの切替え [トレース]列の表示を、逆アセンブリだけの表示と逆アセンブリ と対応するソースコードの両方の表示を切り替えます。 ブラウズ [トレース]ウィンドウで選択された項目のブラウズモードのオン とオフを切り替えます。ブラウズモードの詳細については、 121 ページの[トレース]ウィンドウとブラウズモードを参照し てください。 検索 [トレースを検索]ダイアログボックスを開きます。記録されたト レース情報を検索できます(171 ページの[トレースを検索]ダ イアログボックスを参照)。 表 19: [トレース]ツールバーのボタン パート 4 IAR C-SPY シミュレータ UEW-9 167 シミュレータのトレースシステムの使用 ツールバーのボタン 説明 保存 標準の[名前を付けて保存]ダイアログボックスを開きます。記 録されたトレース情報をタブ区切りでテキストファイルに保存で きます。 設定の編集 式の編集 C-SPY シミュレータではこのボタンは無効です。 [トレース式]ウィンドウを開きます(169 ページの[トレース 式]ウィンドウを参照)。 表 19: [トレース]ツールバーのボタン(続き) トレース表示エリア 表示エリアには、次の列のトレース情報が表示されます。 [トレース]ウィンドウ の列 説明 # トレースバッファの各行のシリアル番号。バッファ内の移動を 簡略化します。 トレース 実行されたマシン命令シーケンスの記録 オプションで、対応す るソースコードも表示できます。 式 表示するように定義した式はそれぞれ別の列に表示されます。 式列の各エントリには、同じ行の命令が実行された後に値が表 示されます。トレース情報を記録する式は、[トレース式] ウィンドウで指定します(169 ページの[トレース式]ウィン ドウを参照)。 表 20: [トレース]ウィンドウの列 [関数トレース]ウィンドウ [関数トレース]ウィンドウは、[シミュレータ]メニューからアクセスでき、 [トレース]ウィンドウに表示されたトレースデータの一部が表示されます。 IAR Embedded Workbench IDE 168 ユーザガイド UEW-9 シミュレータ固有のデバッグ [関数トレース]ウィンドウにはすべての行は表示されません。関数呼出しと 関数からの復帰に対応するトレースデータだけが表示されます。 図 60: [関数トレース]ウィンドウ ツールバー ツールバーについては、167 ページの[トレース]ツールバーを参照してく ださい。 表示エリア 表示エリアの列については、168 ページのトレース表示エリアを参照してく ださい。 [トレース式]ウィンドウ [トレース式]ウィンドウは、[トレース]ウィンドウのツールバーからアク セスでき、トレース情報を記録する必要がある特定の式を指定できます。 図 61: [トレース式]ウィンドウ パート 4 IAR C-SPY シミュレータ UEW-9 169 シミュレータのトレースシステムの使用 ツールバー 式の表示順序を変更するには、以下に示すツールバーのボタンを使用します。 ツールバーのボタン 説明 上向きの矢印 選択された行を上に移動します。 下向きの矢印 選択された行を下に移動します。 表 21: [トレース式]ウィンドウのツールバーのボタン 表示エリア 表示エリアでは、トレース情報を記録する式を指定できます。 列 説明 式 記録する任意の式を指定します。変数やレジスタなど、評価可能 な式を指定できます。 フォーマット 各式で使用される表示フォーマットが表示されます。 表 22: [トレース式]ウィンドウの列 このウィンドウの各行は、[トレース]ウィンドウに追加列として表示され ます。 [トレースを検索]ウィンドウ [トレースを検索]ウィンドウは、[表示]>[メッセージ]メニューからアク セスでき、トレースデータを検索した結果を表示します。 図 62: [トレースを検索]ウィンドウ [トレースを検索]ウィンドウは[トレース]ウィンドウと非常によく似てお り、表示される列とデータは同じですが、表示される行は、指定された検索 基準に一致した行だけです。[トレースを検索]ウィンドウで項目をダブルク リックすると、[トレース]ウィンドウに同じ項目が表示されます。 IAR Embedded Workbench IDE 170 ユーザガイド UEW-9 シミュレータ固有のデバッグ [トレースを検索]ダイアログボックスで検索基準を指定します。このダイア ログボックスを開く方法については、171 ページの[トレースを検索]ダイ アログボックスを参照してください。 [トレースを検索]ダイアログボックス [トレースを検索]ダイアログボックス([編集]>[検索と置換]>[検索] を選択するか、[トレース]ウィンドウのツールバーから表示)を使用して、 トレースデータの高度な検索用の検索基準を指定します。[編集]>[検索と 置換]>[検索]コマンドはコンテキスト依存型であることに、注意してくだ さい。このコマンドの操作時の現在のウィンドウが、[トレース]ウィンドウ であれば[トレースを検索]ダイアログボックスが表示され、エディタウィ ンドウであれば[検索]ダイアログボックスがそれぞれ表示されます。 図 63: [トレースを検索]ダイアログボックス 検索結果は[トレースを検索]ウィンドウ([表示]>[メッセージ]コマン ドを選択)に表示されます(170 ページの[トレースを検索]ウィンドウを 参照)。 [トレースを検索]ダイアログボックスでは、以下の設定で検索基準を指定し ます。 テキスト検索 検索文字列を入力するテキストフィールド。次のオプションを使用して、検 索を絞り込みます。 大文字 / 小文字 指定されたテキストの大文字と小文字が完全に一致するものだけを検 の区別 索します。このオプションを指定しない場合は、int を検索すると、 INT、Int も検索されます。 パート 4 IAR C-SPY シミュレータ UEW-9 171 シミュレータでのブレークポイントの使用 完全に一致する 単語として一致する箇所だけを検索します。このオプションを指定し 単語のみ なかった場合、int を検索すると、print、sprintf なども検索され ます。 一列のみ検索 ドロップダウンリストから選択した列だけを検索します。 アドレス範囲 テキストフィールドを使用して、アドレス範囲を指定します。アドレス範囲 内のトレースデータが表示されます。[テキスト検索]フィールドにテキスト 文字列も指定すると、アドレス範囲内でテキスト文字列を検索します。 シミュレータでのブレークポイントの使用 C-SPY シミュレータを使用する場合は、設定できるブレークポイントの数に 制限はありません。コードブレークポイントとデータブレークポイントには サイズ属性を定義できるため、範囲に対してブレークポイントを設定できま す。また、イミディエイトブレークポイントも設定できます。 ブレークポイントシステムについては、本書の章「ブレークポイントの使用。 コードブレークポイントの詳細については、219 ページの[コード]ブレー クポイントダイアログボックスを参照してください。 データブレークポイント データブレークポイントは、指定された位置のデータがアクセスされたとき にトリガされます。主にメモリ上の固定アドレスに割り当てられた変数に使 用します。アクセス可能なローカル変数にブレークポイントを設定した場合、 実際には対応するメモリアドレス(ロケーション)に設定されます。この位 置の妥当性が保証されるのは、コードの一部だけです。通常は、データにア クセスする命令が実行された直後に、実行が停止します。 データブレークポイントを設定するには、以下のいずれかを使用します。 IAR Embedded Workbench IDE 172 ユーザガイド UEW-9 ● ダイアログボックス(173 ページの[データブレークポイント]ダイアロ グボックスを参照)。 ● システムマクロ(参照:424 ページの __setDataBreak)。 ● [メモリ]ウィンドウ。「129 ページの[メモリ]ウィンドウでのデータブ レークポイントの設定」を参照してください。 ● エディタウィンドウについては、208 ページのエディタウィンドウを参照 してください。 シミュレータ固有のデバッグ [データブレークポイント]ダイアログボックス データブレークポイントを設定する場合、そのオプションを設定するには、 まず[ブレークポイント]ウィンドウを右クリックしてコンテキストメ ニューを表示します。コンテキストメニューで[新規ブレークポイント]> [データ]を選択して、新しいブレークポイントを設定します。既存のブレー クポイントを変更するには、[ブレークポイント]ウィンドウでブレークポイ ントを選択し、コンテキストメニューから[編集]を選択します。 [データブレークポイント]ダイアログボックスが表示されます。 図 64: [データブレークポイント]ダイアログボックス ブレーク位置 [ブレーク位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]参照ボタンをクリックして[位置入力]ダイアログボックス を表示します。223 ページの[ブレーク位置入力]ダイアログボックスを参 照してください。 アクセスタイプ [アクセスタイプ]エリアのオプションを使用して、データブレークポイント かイミディエイトブレークポイントをトリガするメモリアクセスタイプを指 定します。 メモリアクセスタイプ 説明 リード / ライト 指定された位置から読み取り / 書き込みます。 リード 指定された位置から読み取ります。 ライト 指定された位置に書き込みます。 表 23: データブレークポイントのメモリアクセスタイプ パート 4 IAR C-SPY シミュレータ UEW-9 173 シミュレータでのブレークポイントの使用 注 : データブレークポイントによって単一命令内で実行が停止することはあ りません。ブレークポイントは命令の実行後に記録、レポートされます。 (イミディエイトブレークポイントは一時的に命令の実行を停止するだけで、 すぐに実行を再開します。「175 ページのイミディエイトブレークポイント」 を参照してください)。 サイズ また、サイズ(実際にはロケーションの範囲)を指定することもできます。 指定されたメモリ範囲にリードアクセスやライトアクセスが行われると、ブ レークポイントがトリガされます。配列、構造体、共用体などのデータ構造 へのアクセスによってデータブレークポイントをトリガする必要がある場合 に、この機能は便利です。 サイズの指定方法は 2 種類あります。 ● [自動]を選択すると、ブレークポイントが設定されている式のタイプに 基づいて、サイズが自動的に決まります。たとえば、ブレークポイントを 12 バイトの構造体に設定すると、そのブレークポイントのサイズは 12 バ イトになります。 ● [手動]を選択した場合は、[サイズ]テキストボックスにブレークポイン トのサイズを手動で指定します。 アクション ブレークポイントにアクションを関連付けることもできます。C-SPY マクロ 関数などの式を指定すると、ブレークポイントのトリガ時に条件が真である ときに評価されます。 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式 条件が真 式の値が真の場合に、ブレークポイントがトリガされます。 条件(変更) 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 スキップ数 実行を停止するまでのブレークポイントトリガ回数(整数)を指 定します。 表 24: データブレークポイント条件 IAR Embedded Workbench IDE 174 ユーザガイド UEW-9 シミュレータ固有のデバッグ イミディエイトブレークポイント C-SPY シミュレータでは、汎用ブレークポイントの他に、一時的にのみ命令 の実行を停止するイミディエイトブレークポイントを使用できます。このブ レークポイントを使用すると、プロセッサがある位置からデータを読み込む 直前かある位置にデータを書き込んだ直後に、C-SPY マクロ関数を呼び出す ことができます。アクションが終了すると、命令の実行が再開されます。 イミディエイトブレークポイントは、メモリにマッピングされたさまざまな 種類のデバイス(シリアルポートやタイマなど)をシミュレーションする場 合に便利です。デバイスがメモリマッピングされた位置をプロセッサが読み 込むと、C-SPY マクロ関数が実行されて適切なデータを供給します。逆に、 デバイスがメモリマッピングされた位置にプロセッサが書き込むと、C-SPY マクロ関数が実行されて、書き込まれた値に応じた適切な動作を実行します。 イミディエイトブレークポイントを設定するには、以下の 2 つの方法があり ます。 ● ダイアログボックス(175 ページの[イミディエイトブレークポイント] ダイアログボックスを参照)。 ● システムマクロ(426 ページの __setSimBreak を参照)。 [イミディエイトブレークポイント]ダイアログボックス イミディエイトブレークポイントを設定する場合、そのオプションを設定する には、まず[ブレークポイント]ウィンドウを右クリックしてコンテキストメ ニューを表示します。コンテキストメニューで[新規ブレークポイント]> [イミディエイト]を選択して、新しいブレークポイントを設定します。既存 のブレークポイントを変更するには、 [ブレークポイント]ウィンドウでブ レークポイントを選択し、コンテキストメニューから[編集]を選択します。 パート 4 IAR C-SPY シミュレータ UEW-9 175 シミュレータでのブレークポイントの使用 [イミディエイト]ブレークポイントダイアログボックスが表示されます。 図 65: [イミディエイト]ブレークポイントページ ブレーク位置 [ブレーク位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]参照ボタンをクリックして[位置入力]ダイアログボックス を表示します。223 ページの[ブレーク位置入力]ダイアログボックスを参 照してください。 アクセスタイプ [アクセスタイプ]エリアのオプションを使用して、データブレークポイント かイミディエイトブレークポイントをトリガするメモリアクセスタイプを指 定します。 メモリアクセスタイプ 説明 リード 指定された位置から読み取ります。 ライト 指定された位置に書き込みます。 表 25: イミディエイトブレークポイントのメモリアクセスタイプ 注 : イミディエイトブレークポイントは一時的に命令の実行を停止するだけ で、すぐに実行を再開します。172 ページのシミュレータでのブレークポイ ントの使用を参照してください。 アクション ブレークポイントにはアクションを接続する必要があります。C-SPY マクロ 関数などの式を指定すると、ブレークポイントのトリガ時に条件が真である ときに評価されます。 IAR Embedded Workbench IDE 176 ユーザガイド UEW-9 シミュレータ固有のデバッグ [ブレークポイントの使用]ダイアログボックス [ブレークポイントの使用]ダイアログボックスは、[シミュレータ]メ ニューからアクセスでき、すべてのアクティブなブレークポイントのリスト が表示されます。 図 66: [ブレークポイントの使用]ダイアログボックス このダイアログボックスのリストには、ユーザが定義したすべてのブレーク ポイントの他に、デバッガが使用している内部ブレークポイントも表示され ます。 リスト内の各ブレークポイントについて、アドレスとアクセスタイプが表示 されます。また、リストの各ブレークポイントを拡張すると、その発生元が 表示されます。 詳細については、131 ページのすべてのブレークポイントの表示を参照して ください。 パート 4 IAR C-SPY シミュレータ UEW-9 177 シミュレータでのブレークポイントの使用 IAR Embedded Workbench IDE 178 ユーザガイド UEW-9 割込みシミュレーション 割込みシミュレーションができると、ハードウェアすべて揃っていな くてもプログラムロジックをデバッグできます。この章では、 C-SPY® の割込みシミュレーションシステムの詳細について説明しま す。また、ターゲットハードウェアの割込みに擬似割込みを反映させ る設定方法の詳細について説明します。最後に、各割込みシステムマ クロのリファレンス情報について説明します。 割込みサービスルーチンを作成するときに使用できる割込み固有の機 能については、『コンパイラのドキュメント』を参照してください。 C-SPY 割込みシミュレーションシステム C-SPY シミュレータには、デバッグ中に割込みの実行をシミュレーションで きる割込みシミュレーションシステムが用意されています。割込みシミュ レーションシステムをハードウェア割込みシステムと同じように構成するこ とができます。擬似割込みと C-SPY のマクロとブレークポイントを連携させ ることによって、割込み駆動型の周辺デバイスのような複雑なシミュレー ションを構築できます。また、擬似割込みを使用して、割込みサービスルー チンのロジックをテストすることもできます。 割込みシステムの特長を以下に示します。 ● マイクロコントローラの割込みシミュレーションの提供 ● 単発もしくはサイクルカウンタに基づく周期割込み ● さまざまなデバイス用の定義済割込み ● 保持時間、確率、タイミングのばらつきの設定 ● タイミングの問題を特定するためのステータス情報 ● 擬似割込みを設定するためのインタフェースとして、対話的なダイアログ ボックスと自動化するための C-SPY システムマクロを提供 ● 割込みを即時、もしくは定義したパラメータに基づいて有効化 ● 定義されている割込みのステータスを継続的に表示するログウィンドウ 割込みシステムは、デフォルトでは有効になっていますが、必要がない場合 は無効にすることでシミュレーションの実行速度を向上させることができま す。割込みシステムは、[割込み設定]ダイアログボックスまたはシステムマ クロを使用して、必要に応じて有効 / 無効を切り替えることができます。定 義された割込みは、削除されるまで保持されます。[割込み設定]ダイアログ パート 4 IAR C-SPY シミュレータ UEW-9 179 C-SPY 割込みシミュレーションシステム ボックスで定義した割込みはすべて、デバッグセッション終了後も保持され ます。 割込み特性 擬似割込みは、ターゲットハードウェアの実際の割込みに似せるために、各 割込みを微調整する属性のセットから構成されています。指定できる特性に は、初回割込み待機時間、繰返し間隔、保持時間、ばらつきがあります。 図 67: 擬似割込みの構成 割込みシミュレーションシステムは、サイクルカウンタを時計として使用し、 シミュレータで割込みを発生させるタイミングを決定します。初回割込み待 機時間は、サイクルカウンタ単位で指定します。C-SPY は、サイクルカウン タが指定された初回割込み待機時間を超えると、割込みを生成します。ただ し、割込みが生成されるのは命令と命令の間だけです。すなわち、1 つのア センブラ命令の実行が完了するまでは、その命令に必要なサイクル数に関係 なく、割込みの生成は待機させられます。 周期的に生成される割込みを定義するには、繰返し間隔を指定します。この 値は、次の割込みを生成するまでの間隔を表すサイクル数を定義します。繰 返し間隔の他に、その間隔が経過した後に実際に割込みを発生させる確率 (パーセント値)と、繰返し間隔に対するばらつき(パーセント値)の 2 つの オプションによって、実際の発生間隔を制御できます。この 2 つのオプショ ンを使用して、割込みシミューションをランダム化できます。その他に、割 込みの保持時間を指定できます。この時間が経過しても処理されない割込み は削除されます。保持時間を無限に設定すると、割込みが確認され削除され るまで対応する保持ビットが設定されます。 IAR Embedded Workbench IDE 180 ユーザガイド UEW-9 割込みシミュレーション 割込みシミュレーションの状態 割込みシミュレーションシステムには、アプリケーションでのタイミング問 題の場所を特定するために使用可能なステータス情報が含まれます。[割込み 設定]ダイアログボックスには、利用できるステータス情報が表示されます。 割込みに関して、下記の状態が表示されます。表示されるのは、 [待機]、[保 留]、[実行]、[実行済み]、[削除]、[期限切れ]のいずれかです。 ステータス 説明 待機 低い割込み有効信号です(無効) 。 保留 割込み有効信号はアクティブですが、割込みハンドラはまだ認識 していません。 実行 割込みは現在サービス中です。すなわち、割込みハンドラ機能は 実行中です。 実行済み 単発の割込みであり、サービスされました。 削除済み 割込みはユーザによって削除されました。しかし現在実行中であ るため、終了するまで[割込み設定]ダイアログボックスに表示 されます。 期限切れ 割込み有効信号がアクティブであった間にサービスされなかった 単発の割込みです。 表 26: 割込みステータス 繰返し可能割込みにおいて、指定された繰返し間隔が実行時間よりも長い場 合、ステータス情報の経時変化の例は以下のとおりです。 図 68: シミュレーション状態 - 例 1 注 : 割込み有効信号(保持ビットともいう)は、割込みハンドラが割込みを 認識するとすぐに、自動的に無効となります。 パート 4 IAR C-SPY シミュレータ UEW-9 181 割込みシミュレーションシステムの使用 割込みの繰返し間隔が実行時間よりも短く、割込みがリエントラント(また はノンマスカブル)の場合、ステータス情報の経時変化は以下のようになり ます。 図 69: シミュレーション状態 - 例 2 この例では、割込みハンドラの実行時間が繰返し間隔に比べて長すぎます。 場合によっては、割込みハンドラを書き換えて処理を速くするか、割込みシ ミュレーションシステムの繰返し間隔に、より大きな値を指定する必要があ ります。 割込みシミュレーションシステムの使用 割込みシミュレーションシステムは使いやすく設計されています。ただし、 割込みシミュレーションシステムの力を最大限に利用するには、使用してい るプロセッサに適合させる方法に習熟し、以下に示すインタフェースの使用 方法を学ぶ必要があります。 ● [強制割込み]ウィンドウ ● [割込み]ダイアログボックスと[割込み設定]ダイアログボックス ● ● IAR Embedded Workbench IDE 182 ユーザガイド UEW-9 割込み用の C-SPY システムマクロ [割込みログ]ウィンドウ 割込みシミュレーション ターゲットに合せた割込みシミュレーションシステムの調整 割込みシミュレーションは、ハードウェアと同じように動作します。これは、 割込みの実行はグローバルな割込みイネーブルビットのステータスに依存す ることを意味します。マスカブル割込みの実行も、個々の割込みイネーブル ビットのステータスに依存します。 さまざまな種類のハードウェアに対してこれらのアクションを実行できるよ うにするには、使用できる割込みの詳細情報を割込みシステムに通知する必 要があります。デフォルトの設定を除いて、この情報はデバイス記述ファイ ルにあります。事前定義された ddf ファイルは、cpuname\config ディレクト リにあります。デバイス記述ファイルが指定されなかった場合は、デフォル ト設定が使用されます。 1 C-SPY を起動する前にデバイス記述ファイルをロードするには、[プロジェク ト]>[オプション]を選択して、[デバッガ]カテゴリの[設定]タブをク リックします。 2 ターゲットに適合するデバイス記述ファイルを選択します。 注 : 使用するデバイスに適合する定義済デバイス記述ファイルが見つからな い場合は、必要に応じて新しいデバイス記述ファイルを定義できます。デバ イス記述ファイルの詳細については、103 ページのデバイス記述ファイルの 選択を参照してください。 [割込み設定]ダイアログボックス [割込み設定]ダイアログボックス([シミュレータ]>[割込み設定]を選択 して表示)では、定義されているすべての割込みのリストを表示します。 図 70: [割込み設定]ダイアログボックス パート 4 IAR C-SPY シミュレータ UEW-9 183 割込みシミュレーションシステムの使用 [割込みシミュレーションを有効にする]オプションは、割込みシミュレー ションを有効か無効にします。割込みシミュレーションが無効の場合、定義 はそのまま残りますが、割込みは発生しません。インストール済みの割込み も、リストの割込み名の左にあるチェックボックスを使用して、個別に有効 か無効にできます。 各列には、以下の情報が表示されます。 割込 すべての割込みが表示されます。 型 割込みタイプが表示されます。表示されるのは、 [強制]、 [単一]、[繰返し]のいずれかです。 ステータス 割込みステータスが表示されます。表示されるのは、 [待機]、 [削除]、 [保留]、 [実行]、 [期限切れ]のいずれかです。 次の実行 次に有効になるまでの待機時間がサイクル単位で表示され ます。 注 : 周期割込みの場合は、[タイプ]列に同じタイプの割込みの同時実行可能 数が表示される場合があります ([n executing])。n が 1 よりも大きい場合 は、割込みシミュレーションシステムには実行が決して終了しないリエント ラント割込みが存在します。この場合、アプリケーションに問題がある可能 性があります。 強制割込み以外の割込みのみ編集や削除ができます。 [新規作成 (N)]か[編集]をクリックして、[割込みの編集]ダイアログボッ クスを開きます。 [割込みの編集]ダイアログボックス [割込みの編集]ダイアログボックスは、[割込み設定]ダイアログボックス からアクセスでき、割込みを追加し変更します。このダイアログボックスを 使用すると、グラフィカルインタフェースで対話的に割込みシミュレーショ IAR Embedded Workbench IDE 184 ユーザガイド UEW-9 割込みシミュレーション ンのパラメータを微調整できます。パラメータを追加して、すぐに要求どお り割込みが発生するかどうかをテストできます。 図 71: [割込みの編集]ダイアログボックス 割込みごとに、以下のオプションを設定できます。 割込 使用できるすべての割込みが表示されるドロップダウ ンリスト。ここで割込みを選択すると、自動的に[説 明]ボックスが更新されます。リストには、選択した デバイス記述ファイルに記述されているエントリが表 示されます。 説明 選択された割込みの内容が設定されている場合は、そ れが表示されます。この内容は、選択したデバイス記 述ファイルから取得されます。システムマクロ __orderInterrupt を使用して指定された割込みの場 合は、[説明]ボックスには何も表示されません。 初回割込み 指定されたタイプの割込みを生成するまでの待機時間 を表すサイクルカウンタ値が表示されます。 繰返し感覚 割込みの繰返し間隔がサイクル単位で表示されます。 ばらつき (%) タイミングのばらつきが繰返し間隔に対するパーセン ト値として表示されます。このばらつきの範囲内に割 込みが発生する可能性があります。たとえば、繰返し 間隔が 100、ばらつきが 5% の場合、割込みは T=95 ~ 105 の間に発生する可能性があり、これによってタイ ミングのばらつきがシミュレーションされます。 パート 4 IAR C-SPY シミュレータ UEW-9 185 割込みシミュレーションシステムの使用 保持時間 割込みの保持時間がサイクル単位で表示されます。 この時間が経過しても処理されない割込みは削され ます。[無限]を選択すると、対応する保持ビットは 割込みが確認、削除されるまで設定されます。 確率 (%) 割込みが指定された期間内に実際に発生する確率を パーセント単位で表した値が表示されます。 [強制割込み]ウィンドウ [強制割込み]ウィンドウは、[シミュレータ]メニューからアクセスでき、 割込みを強制的に即時発生させることができます。割込みロジックや割込み ルーチンをチェックする場合に便利です。 図 72: [強制割込み]ウィンドウ 割込みを強制的に発生させるには、割込みシミュレーションシステムが有効 である必要があります。割込みシミュレーションシステムを有効にするには、 183 ページの[割込み設定]ダイアログボックスを参照してください。 [強制割込み]ウィンドウには、使用できるすべての割込みのリストがその定 義とともに表示されます。この記述フィールドは編集可能であり、選択した デバイス記述ファイルから取得されます。詳しい記述はこのファイルを参照 してください。 割込みを選択して[トリガ]ボタンをクリックすると、選択したタイプの割 込みが生成されます。 トリガされた割込みは、以下の属性があります。 IAR Embedded Workbench IDE 186 ユーザガイド UEW-9 割込みシミュレーション 属性 設定 初回割込み できるだけ早く (0) 繰返し間隔 0 保持時間 無限 ばらつき 0% 確率 100% 表 27: 強制的に生成された割込みの属性 割込み用の C-SPY システムマクロ マクロによる定義は、要求どおりのブレークポイント設定ができない場合に 便利です。擬似割込みの定義を含むマクロ関数を記述することによって、 C-SPY の起動時にそのマクロ関数を実行できます。他にも、マクロファイル を使用した場合に擬似込みの定義がドキュメント化されたり、開発プロジェ クトに複数のエンジニアが携わっている場合にグループ内でマクロファイル を共有できたりといった長所があります。 C-SPY シミュレータには、割込みシミュレーションシステム用に定義済シス テムマクロセットが用意されています。システムマクロを使用して擬似割込 みを指定すると、手順を自動化できるといった長所があります。 割込み関連のシステムマクロを以下に示します。 __enableInterrupts __disableInterrupts __orderInterrupt __cancelInterrupt __cancelAllInterrupts __popSimulatorInterruptExecutingStack 最初の 5 つのマクロのパラメータは、[割込み]ダイアログボックスの該当す るエントリに対応します。__popSimulatorInterruptExecutingStack マク ロの使用方法の詳細については、188 ページのマルチタスクシステムでの割 込みシミュレーションを参照してください。 各マクロに関するリファレンス情報の詳細については、411 ページの C-SPY システムマクロの説明を参照してください。 パート 4 IAR C-SPY シミュレータ UEW-9 187 割込みシミュレーションシステムの使用 セットアップファイルを使用して C-SPY 起動時に擬似割込みを定義 セットアップファイルを使用して C-SPY の起動時に擬似割込みを定義するに は、145 ページのセットアップマクロとセットアップファイルによる登録と 実行』で説明されている手順を実行します。 マルチタスクシステムでの割込みシミュレーション 割込みハンドラから復帰する際に通常の命令以外の方法で割込みを使用する 場合、たとえばタスク切替えが行われるオペレーティングシステムの場合、 シミュレータは割込みの実行が完了したことを自動的には検出できません。 割込みシミュレーションシステムは正常に動作しますが、[割込み設定]ダ イアログボックスのステータス情報は予想したようには表示されない可能性 があります。同時実行される割込みの数が多すぎると、ワーニングが出力さ れる場合があります。 これらの問題の発生を避けるには、__popSimulatorInterruptExecutingStack マクロを使用して、割込みハンドラからの復帰に使用する通常の命令が実行され た場合と同じように、割込みシミュレーションシステムに割込みハンドラの実行 が完了したことを通知します。以下の手順で実行できます。 1 割込み関数から復帰する命令にコードブレークポイントを設定します。 2 __popSimulatorInterruptExecutingStack マクロを条件としてブレークポ イントに指定します。 ブレークポイントがトリガされると、マクロが実行され、それが完了すると アプリケーションが自動的に実行を継続します。 [割込みログ]ウィンドウ [割込みログ]ウィンドウは[シミュレータ]メニューからアクセスでき、 [割込み]ダイアログボックスで有効にした割込みや[強制割込み]ウィンド ウで強制的に発生させた割込みに関するランタイム情報を表示します。この情 報は、ターゲットシステムの割込み処理をデバッグする場合に役に立ちます。 図 73: [割込みログ]ウィンドウ IAR Embedded Workbench IDE 188 ユーザガイド UEW-9 割込みシミュレーション 各列には、以下の情報が表示されます。 列 説明 サイクル イベントが発生したタイミング(サイクル単位) PC イベントが発生したときのプログラムカウンタの値 割込 デバイス記述ファイルで定義された割込み 番号 割込みに割り当てられた一意の番号。同じタイプの異なる割込み を区別するために使用します。 ステータス 割込みステータスが表示されます :[トリガ済み] 、[強制割込 み]、[実行] 、[終了]、または[期限切れ]が表示されます。 • トリガ済み : 待機時間がすでに経過している割込み • [Forced]: [トリガ済み]と同じだが[強制割込み]ウィンドウ で強制的に発生させた割込み • 実行: 現在実行中の割込み • 終了: 実行完了した割込み • 期限切れ : 処理される前に保持時間が経過した割込み 表 28: [割込みログ]ウィンドウの説明 [割込みログ]ウィンドウが開いている間は、実行中にステータスが常時更新 されます。 注 : ウィンドウがエントリで満杯になったら、古いエントリから消去され ます。 シンプルな割込みシミュレーション この例は、タイマ割込みのシミュレーション方法を示します。ただし、他の タイプの割込みも同じ手順でシミュレーションできます。 このシンプルなアプリケーションには、tick 変数をインクリメントするタイ マ用の割込みサービスルーチンが含まれます。main 関数は必要に応じてス テータスレジスタを設定します。アプリケーションは、100 回割込みが生成 されると終了します。 #include "iocpuname.h" #include <intrinsics.h> volatile int ticks = 0; void main (void) { /* タイマ設定コードをここに追加 */ __enable_interrupt(); /* 割込みを有効化 */ パート 4 IAR C-SPY シミュレータ UEW-9 189 シンプルな割込みシミュレーション while (ticks < 100); printf("Done\n"); /* エンドレスループ */ } /* タイマ割込みサービスルーチン */ #pragma vector = TIMER_VECTOR __interrupt void basic_timer(void) { ticks += 1; } 割込みシミュレーションとデバッグを行うには、以下の手順に従います。 1 割込みサービルルーチンをアプリケーションソースコードに追加して、その ファイルをプロジェクトに追加します。 2 C-SPY では、割込みシミュレーションを行うために割込みに関する情報が必 要です。この情報は、デバイス記述ファイルに記述されています。デバイス 記述ファイルを選択するには、 [プロジェクト]>[オプション]を選択して、 [デバッガ]カテゴリの[設定]タブをクリックします。ddf ファイルを探す には、 [デバイス記述ファイルの使用]参照ボタンを使用します。 3 プロジェクトをビルドして、シミュレータを起動します。 4 [シミュレータ]>[割込み設定]を選択して、[割込み設定]ダイアログボッ クスを表示します。 [割込みシミュレーションを有効にする]オプションを選 択して、割込みシミュレーションを有効にします。[新規作成]をクリックし て[割込みの編集]ダイアログボックスを開きます。下の表には、オプショ ンと推奨設定の一覧を示します。使用する割込みの要件に合せてオプション を確認してください。 オプション 設定 割込み TIMER_VECTOR 初回割込み 4000 繰返し間隔 2000 保持時間 0 確率 (%) 100 ばらつき (%) 0 表 29: タイマ割込み設定 [OK] をクリックします。 IAR Embedded Workbench IDE 190 ユーザガイド UEW-9 割込みシミュレーション 5 アプリケーションを実行します。アプリケーションソースコードで正常に割 込みが有効になっている場合、C-SPY は以下を実行します。 ● サイクルカウンタが 4000 を超えると割込みを生成 ● その後は約 2000 サイクルごとに周期割込みを生成 動作中の割込みをモニタするには、[シミュレータ]>[割込みログ]を選択 して[割込みログ]ウィンドウを開きます。 パート 4 IAR C-SPY シミュレータ UEW-9 191 シンプルな割込みシミュレーション IAR Embedded Workbench IDE 192 ユーザガイド UEW-9 パート 5. リファレンス情 報 『IAR Embedded Workbench IDE』ユーザガイドのこのパートは、以下 の章で構成されています。 ● IAR Embedded Workbench IDE リファレンス ● C-SPY リファレンス ● 一般オプション ● コンパイラオプション ● アセンブラオプション ● コンバータオプション ● カスタムビルドオプション ● ビルドアクションオプション ● XLINK リンカのオプション ● ILINK リンカのオプション ● ライブラリビルダオプション ● デバッガオプション ● C-SPY コマンドラインユーティリティ — cspybat ● C-SPY マクロリファレンス 193 UEW-9 194 UEW-9 IAR Embedded Workbench IDE リファレ ンス この章では、IDE のウィンドウ、メニュー、メニューコマンド、対応 するコンポーネントに関するリファレンス情報を提供します。目的に 応じた IDE の最適な使用方法については、本ガイドのパート 2 ~ 4 を 参照してください。この章は以下の内容で構成されています。 ● 195 ページのウィンドウ ● 228 ページのメニュー IDE は、モジュール化構造のアプリケーションです。使用可能なメ ニューは、インストールされているコンポーネントによって異なり ます。 ウィンドウ 使用可能なウィンドウは、以下のとおりです。 ● ● ● [IAR Embedded Workbench IDE]ウィンドウ [ワークスペース]ウィンドウ エディタウィンドウ ● [ソースブラウザ]ウィンドウ ● [ブレークポイント]ウィンドウ ● メッセージウィンドウ また、デバッガを起動すると、C-SPY 専用のウィンドウが使用可能になりま す。これらのウィンドウのリファレンス情報については、このガイドの 「C-SPY リファレンス」を参照してください。 パート 5 リファレンス情報 UEW-9 195 ウィンドウ [IAR EMBEDDED WORKBENCH IDE]ウィンドウ 以下の図は、IDE のメインウィンドウおよび各種コンポーネントを示します。 使用するプラグインモジュールによって、ウィンドウの表示が異なる場合が あります。 メニュー バー ツールバー エディタ ウィンドウ [ワークス ペース] ウィンドウ [メッセー ジ]ウィン ドウ ステータ スバー 図 74: [IAR Embedded Workbench IDE] ウィンドウ 以下では、ウィンドウ内の各項目の詳細を説明します。 メニューバー IDE のメニューが表示されます。 メニュー ファイル 説明 [ファイル]メニューには、ソースファイルおよびプロジェクトファイル のオープン、保存、出力、IDE の終了を実行するためのコマンドが表示さ れます。 表 30: IDE メニューバー IAR Embedded Workbench IDE 196 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニュー 説明 編集 [編集]メニューには、エディタウィンドウでの編集 / 検索用コマンドと、 C-SPY でのブレークポイントの設定 / 解除用コマンドが表示されます。 表示 [表示]メニューのコマンドは、開いているウィンドウの選択やツール バーの表示の切替えに使用します。 プロジェクト[プロジェクト]メニューには、プロジェクトへのファイルの追加、グ ループの作成、現在のプロジェクトでの IAR システムズツールの実行の ためのコマンドが表示されます。 ツール [ツール]メニューはユーザ設定可能なメニューであり、IDE で使用する ツールを追加することができます。 ウィンドウ [ウィンドウ]メニューのコマンドを使用して、IDE のウィンドウの操作 や画面上での配置を変更できます。 ヘルプ [ヘルプ]メニューのコマンドを使用して、IDE に関するヘルプを表示で きます。 表 30: IDE メニューバー(続き) 各メニューのリファレンス情報については、228 ページのメニューを参照し てください。 ツールバー IDE ツールバー([表示]メニューから表示)には、IDE のメニューで最も便 利なコマンドを実行するためのボタンと、文字列を入力してすばやく検索す るためのテキストボックスがあります。 マウスでボタンをポイントすると、そのボタンの説明が表示されます。コマ ンドが使用できない場合は、対応するツールバーボタンは灰色表示され、ク リックできないようになっています。 下図に、各ツールバーボタンに対応するメニューコマンドを示します。 切り取り 開く すべてを保存 保存 新規ドキュメント 印刷 リドゥ 貼り付け 置換 [クイック検索]テキ ストボックス コピー ブックマーク へ移動 次を検索 検索 前を検索 アンドゥ 移動 作成 次へ移動 前へ移動 ブックマークの切替え ダウンロードな しにデバッグ 切替え ブレークポイント ビルドを停止 コンパイル デバッグ 図 75: IDE ツールバー パート 5 リファレンス情報 UEW-9 197 ウィンドウ 注 : C-SPY の起動時、[ダウンロードしてデバッグ]ボタンは[作成してデ バッグ]ボタンになり、[ダウンロードなしにデバッグ]ボタンは[デバッガ を再起動]ボタンになります。 ステータスバー ウィンドウ下部のステータスバーには、ビルド中に発生したエラーおよび警 告の数、編集ウィンドウでの挿入位置、修飾キーの状態が表示されます。こ の[ステータス]バーは[表示]メニューから利用できます。 編集中は、ステータスバーには挿入ポイントがある現在の行 / 列番号と、 Caps Lock、Num Lock、上書きの各状態が表示されます。 図 76: [IAR Embedded Workbench IDE] ウィンドウのステータスバー [ワークスペース]ウィンドウ [ワークスペース]ウィンドウ([表示]メニューから表示)では、アプリ ケーションの開発中にプロジェクトやファイルへのアクセスができます。 構成ドロップダウンメニュー [プロジェクト] アイコン(現在は 複数ファイルのコ ンパイルを指す) 次にプロジェク トをビルドする ときに、ファイ ルがリビルドさ れることを示し ます ワークスペースの 表示内容を選択す るタブ オプションのオー バライド状態を示 します 図 77: [ワークスペース]ウィンドウ IAR Embedded Workbench IDE 198 ユーザガイド UEW-9 ソースコードの制 御状態を示します IAR Embedded Workbench IDE リファレンス ツールバー ウィンドウ上部にあるドロップダウンリストでは、特定プロジェクト用の ウィンドウで表示するビルド構成を選択できます。 表示エリア 表示エリアは、いくつかの列に分割されています。 [ファイル]列には、現在のワークスペースの名前、ワークスペースに含まれ るプロジェクト、グループ、ファイルのツリー表現が表示されます。以下か ら 1 つまたは複数のアイコンが表示されます。 ワークスペース プロジェクト 複数ファイルのコンパイルを伴うプロジェクト ファイルグループ ビルドから除外されたグループ ファイルグループ、複数ファイルコンパイルの一部 ファイルグループ、複数ファイルコンパイルの一部だがビルドから除外される オブジェクトファイルまたはライブラリ アセンブラソースファイル C ソースファイル C++ ソースファイル ビルドから除外されたソースファイル ヘッダファイル テキストエディタ HTML テキストファイル 制御ファイル、たとえばリンカ構成ファイルなど IDE 内部ファイル その他のファイル パート 5 リファレンス情報 UEW-9 199 ウィンドウ オプションのオーバライドに関するステータス情報を示す列には、プロジェ クトのレベルごとに 3 つのアイコンのいずれかが表示されます。 空白 このファイル / グループの設定 / オーバライドはありません。 黒のチェック このファイル / グループのローカル設定 / オーバライドがあります。 マーク 赤のチェック このファイル / グループのローカル設定 / オーバライドがありますが、 マーク これらは、継承した設定と同一であるか、複数ファイルのコンパイルが 使用されるため無視されます。すなわち、オーバライドは不必要です。 ビルドステータス情報を示す列には、プロジェクトのファイルごとに 3 つの アイコンのいずれかが表示されます。 空白 次回のプロジェクトのビルド時、このファイルはリビルドされません。 赤い星印 次回のプロジェクトのビルド時、このファイルはリビルドされます。 歯車 このファイルはリビルド中です。 各種ソースコード管理アイコンの詳細については、204 ページのソースコー ド管理状態を参照してください。 ウィンドウ下部では、表示するプロジェクトを選択できます。また、ワーク スペース全体の概要を表示することもできます。 プロジェクト管理と[ワークスペース]ウィンドウの使用の詳細については、 本ガイドの「パート 3. デバッグ」、「プロジェクト管理」の章。 IAR Embedded Workbench IDE 200 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ワークスペース]ウィンドウのコンテキストメニュー [ワークスペース]ウィンドウで右マウスボタンをクリックすると、コンテキ ストメニューが表示されます。これを使用して、コマンドを簡単に実行する ことができます。 図 78: [ワークスペース]ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは以下のとおりです。 メニューコマンド オプション 説明 [ワークスペース]ウィンドウで選択した項目に対して、各ビル ドツールのオプションを設定できるダイアログボックスを表示 します。プロジェクト全体、ファイルのグループ、個々のファ イルのオプションを設定できます。 作成 最後のビルド以降に変更されたファイルだけをコンパイル、ア センブル、リンクして、現在のターゲットを最新状態に更新し ます。 コンパイル 選択されているファイルを必要に応じてコンパイル / アセンブ ルします。[ワークスペース]ウィンドウで選択するか、コンパ イル対象ファイルが開かれたエディタウィンドウを選択するこ とで、ファイルを選択できます。 すべてをビルド 選択したビルド構成のすべてのファイルを再コンパイルし、再 リンクします。 クリーン 中間ファイルを削除します。 ビルドを停止 現在のビルド処理を停止します。 追加 > ファイルの 追加 プロジェクトにファイルを追加するためのダイアログボックス を表示します。 表 31: [ワークスペース]ウィンドウのコンテキストメニューコマンド パート 5 リファレンス情報 UEW-9 201 ウィンドウ メニューコマンド 説明 追加 > 追加 " ファイ ル名 " 指定したファイルをプロジェクトに追加します。このコマンド は、エディタで開かれているファイルがある場合にだけ使用で きます。 追加 > グループの 追加 プロジェクトに新しいグループを追加するためのダイアログ ボックスを表示します。 削除 選択した項目を[ワークスペース]ウィンドウから削除します。 名称変更 [グループの名称変更]ダイアログボックスが開き、グループの 名前を変更できます。グループの詳細は、66 ページのグループ を参照してください。 ソースコード管理 ソースコード管理用コマンドのサブメニューを表示します (202 ページの[ソースコード管理]メニューを参照) 。 ファイルプロパティ 選択したファイルについて、標準の[ファイルプロパティ]ダ イアログボックスを表示します。 アクティブに設定 概要ウィンドウで選択したプロジェクトをアクティブプロジェ クトに設定します。[作成]コマンド実行時にビルドされるのが アクティブプロジェクトです。 表 31: [ワークスペース]ウィンドウのコンテキストメニューコマンド(続き) [グループの名称変更]ダイアログボックス さまざまなベンダ製の複数の SCC システムが使用可能な場合は、 [ソース コード管理プロバイダの選択]ダイアログボックスが表示されます。このダ イアログボックスを使用して、使用する SCC システムを選択します。 図 79: [ソースコード管理プロバイダの選択]ダイアログボックス [ソースコード管理]メニュー [ソースコード管理]メニューは、[プロジェクト]メニューか、[ワークス ペース]ウィンドウのコンテキストメニューから選択できます。このメ IAR Embedded Workbench IDE 202 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス ニューには、サードパーティ製の外部ソースコード管理システムの最もよく 使用するコマンドのいくつかが表示されます。 図 80: [ソースコード管理]メニュー 外部ソースコード管理システムの操作の詳細については、「71 ページのソー スコード管理」を参照してください。 サブメニューから実行できるコマンドは以下のとおりです。 メニューコマンド 説明 チェックイン [ファイルのチェックイン]ダイアログボックスを表示します。こ のダイアログボックスで、選択したファイルをチェックインできま す。206 ページの[ファイルのチェックイン]ダイアログボックス を参照してください。ファイルで行ったすべての変更は、アーカイ ブに保存されます。このコマンドは、チェックアウトしているファ イルを[ワークスペース]ウィンドウで選択すると使用可能になり ます。 チェックアウト 選択したファイルをチェックアウトします。使用する SCC システ ムによっては、ダイアログボックスが表示されます(207 ページの [ファイルのチェックアウト]ダイアログボックスを参照)。チェッ クアウトとは、ファイルをローカルにコピーして編集できるように することです。このコマンドは、チェックインしているファイルを [ワークスペース]ウィンドウで選択すると使用可能になります。 チェックアウトを 選択したファイルを最新のアーカイブバージョンに戻します。ファ 元に戻す イルはチェックアウト状態ではなくなります。ファイルで行ったす べての変更は破棄されます。このコマンドは、チェックアウトして いるファイルを[ワークスペース]ウィンドウで選択すると使用可 能になります。 最新バージョンを 選択したファイルを最新のアーカイブバージョンに置き換えます。 取得 表 32: ソースコード管理コマンドの説明 パート 5 リファレンス情報 UEW-9 203 ウィンドウ メニューコマンド 説明 比較 SCC 専用ウィンドウで、ローカルバージョンと最新アーカイブバー ジョンの違いを表示します。 履歴 選択したファイルのレビジョン履歴に関する SCC 固有情報を表示 します。 プロパティ 選択したファイルについて SCC システムで取得可能な情報を表示 します。 更新 プロジェクトに含まれるすべてのファイルの SCC 表示を更新しま す。このコマンドは、SCC で管理するすべてのプロジェクトで常に 使用できます。 プロジェクトを SCC クライアントアプリケーションでダイアログを表示し、選択し SCC プロジェクト た IAR Embedded Workbench プロジェクトと SCC プロジェクトを関 に接続 連付けます。IAR Embedded Workbench プロジェクトが SCC 管理化 のプロジェクトになります。関連付けを行うと、ステータス情報を 示す特別な列が[ワークスペース]ウィンドウに表示されます。 選択した IAR Embedded Workbench プロジェクトと SCC プロジェク プロジェクトを SCC プロジェクト トの関連付けを削除します。プロジェクトが SCC 管理の対象外に なります。[ワークスペース]ウィンドウで SCC ステータス情報を から切断 示す列が、そのプロジェクトについては表示されなくなります。 表 32: ソースコード管理コマンドの説明(続き) ソースコード管理状態 ソースコード管理対象ファイルは、複数の状態のいずれかになります。 SCC 状態 説明 チェックアウトされています。ファイルの編集が可能です。 チェックアウトされています。ファイルの編集が可能で、ファイル が修正されています。 (灰色の錠) チェックインされています。多くの SCC システムでは、ファイル が書き込み保護されていることを示します。 (灰色の錠) (赤の錠) (赤の錠) チェックインされています。アーカイブに新しいバージョンがあり ます。 他のユーザ専用にチェックアウトされています。多くの SCC シス テムでは、ファイルをチェックアウトできないことを示します。 他のユーザ専用にチェックアウトされています。アーカイブに新し いバージョンがあります。多くの SCC システムでは、ファイルを チェックアウトできないことを示します。 表 33: ソースコード管理状態の説明 IAR Embedded Workbench IDE 204 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス 注 : IAR Embedded Workbench でのソースコード管理では、SCC システムが提 供する情報を使用します。SCC システムがステータスについて誤った、ある いは不完全な情報を提供すると、IAR Embedded Workbench で誤ったアイコン が表示されることがあります。 [ソースコード管理プロバイダの選択]ダイアログボックス さまざまなベンダ製の複数の SCC システムが使用可能な場合は、 [ソース コード管理プロバイダの選択]ダイアログボックスが表示されます。このダ イアログボックスを使用して、使用する SCC システムを選択します。 図 81: [ソースコード管理プロバイダの選択]ダイアログボックス パート 5 リファレンス情報 UEW-9 205 ウィンドウ [ファイルのチェックイン]ダイアログボックス [ファイルのチェックイン]ダイアログボックスは、[プロジェクト]>[ソー スコード管理]>[チェックイン]コマンドを選択する([ワークスペース] ウィンドウのコンテキストメニューからも選択可能)と表示されます。 図 82: ファイルのチェックインダイアログボックス コメント コメントを入力できるテキストボックスです。通常は、変更点などの説明を 入力します。入力内容は、ファイルレビジョンと併せてアーカイブに保存さ れます。このテキストボックスは、SCC システムがチェックイン時のコメン ト追加をサポートしている場合にだけ使用可能になります。 チェックアウトを維持 チェックイン後も、ファイルがチェックアウト状態のままになります。通常 は、ファイルに対する作業を停止せずに、プロジェクトチームの他のメンバ が修正を確認できるようにする場合に使用します。 詳細設定 SCC クライアントアプリケーションの詳細オプション設定用ダイアログボッ クスを表示します。このボタンは、SCC システムがチェックイン時の詳細オ プション設定をサポートしている場合にだけ使用可能になります。 IAR Embedded Workbench IDE 206 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス ファイル チェックインされるファイルのリストを表示します。リストには、このダイ アログボックス表示時に[ワークスペース]ウィンドウで選択されていたす べてのファイルが表示されます。 [ファイルのチェックアウト]ダイアログボックス [ソースコード管理プロ]ダイアログボックスは、[プロジェクト]>[ソー スコード管理]>[チェックアウト]コマンドを選択すると表示されます ([ワークスペース]ウィンドウのコンテキストメニューからも選択可能)。 ただし、このボタンは、SCC システムがチェックアウト時のコメント追加や 詳細オプション設定をサポートしている場合にだけ使用可能になります。 図 83: ファイルのチェックアウトダイアログボックス コメント コメントを入力できるテキストフィールドです。通常は、ファイルのチェッ クアウトの理由を入力します。入力内容は、ファイルレビジョンと併せて アーカイブに保存されます。このテキストボックスは、SCC システムが チェックアウト時のコメント追加をサポートしている場合にだけ使用可能に なります。 詳細設定 SCC クライアントアプリケーションの詳細オプション設定用ダイアログボッ クスを表示します。このボタンは、SCC システムがチェックアウト時の詳細 オプション設定をサポートしている場合にだけ使用可能になります。 パート 5 リファレンス情報 UEW-9 207 ウィンドウ ファイル チェックアウトされるファイルのリストを表示します。リストには、このダ イアログボックス表示時に[ワークスペース]ウィンドウで選択されていた すべてのファイルが表示されます。 エディタウィンドウ ソースコードファイルと HTML ファイルがエディタウィンドウに表示されま す。同時に複数のエディタウィンドウを表示できます。エディタウィンドウ は常にドッキングされていて、サイズと位置は他の開いているウィンドウに 応じて変化します。 ツールチップ情報 ドロップダウンメ ニュー ウィンドウタブ 分割 制御 ブレークポイント アイコン 括弧の一致 ブックマーク 分割バー 関数に移動 右側の余白 印字領域の範囲 図 84: エディタウィンドウ 開いているファイルの名前がタブに表示されます。ファイルがリードオン リーの場合は、エディタウィンドウの左下隅に錠アイコンが表示されます。 最後に保存した後にファイルが修正されている場合は、Utilities.c * のよ うに、タブ上のファイル名の後にアスタリスクが表示されます。エディタ ウィンドウの右上にある ドロップダウンメニューから、開いているすべての ファイルを選択できます。 エディタの使用の詳細については、 「83 ページの編集」を参照してください。 IAR Embedded Workbench IDE 208 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス HTML ファイル エディタウィンドウで HTML ドキュメントを開くには、[ファイル]>[開 く]コマンドを使用します。ハイパーリンクを使用して、HTML ドキュメン トから別のドキュメントに移動することができます。 ● html または htm ファイルへのリンクは、通常のウェブブラウジングと同様 ● eww ワークスペースファイルへのリンクは、IDE でワークスペースを開くこ に動作します。 とや、現在開いているワークスペースおよび HTML ドキュメントを閉じる ことができます。 [分割]コマンド エディタウィンドウを縦 / 横に分割するには、[ウィンドウ]>[分割]コマ ンドを選択するか、分割バーを使用します。 [ウィンドウ]メニューには、複数のエディタウィンドウを開くコマンドや、 エディタウィンドウ間でファイルを移動するためのコマンドもあります。 関数に移動 エディタウィンドウの左下隅にある[関数に移動]ボタンをクリックして、 エディタウィンドウで使用されているすべての C/C++ 関数を[関数に移動] ウィンドウに一覧表示することができます。 図 85: [関数に移動]ウィンドウ 関数をダブルクリックすると、ソースコードのその場所に移動します。 エディタウィンドウタブのコンテキストメニュー エディタウィンドウのタブを右クリックすると表示されるコンテキストメ ニューです。 図 86: エディタウィンドウタブのコンテキストメニュー パート 5 リファレンス情報 UEW-9 209 ウィンドウ コンテキストメニューに表示されるコマンドを以下に示します。 メニューコマンド 説明 ファイルの保存 ファイルを保存します。 閉じる ファイルを閉じます。 ファイルプロパティ 標準のファイルプロパティダイアログボックスを表示します。 表 34: エディタウィンドウタブでのコンテキストメニューに表示されるコマンド エディタウィンドウのコンテキストメニュー エディタウィンドウのコンテキストメニューを使用して、いくつかのコマン ドを簡単に実行できます。 図 87: エディタウィンドウのコンテキストメニュー 注 : このメニューの内容は動的であるため、この図以外のコマンドが表示さ れる場合があります。すべての使用可能なコマンドについては、表 35「エ ディタウィンドウのコンテキストメニューのコマンドの詳細」で説明してい ます。 IAR Embedded Workbench IDE 210 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス エディタウィンドウのコンテキストメニューから実行できるコマンドは、以 下のとおりです。 メニューコマンド 説明 切り取り、コピー、 貼り付け Windows 標準のコマンド 入力補完 入力内容に応じて、エディタドキュメントの他の部分の内容か ら入力語を推測して補完します。 括弧のマッチング 挿入ポイントの直近の括弧内のテキストをすべて選択します。 すでに選択されている場合は、その外側の次の括弧まで選択範 囲を拡大します。外側に括弧がない場合は、ビープ音を再生し ます。 テンプレートの挿入 挿入ポイントの位置に挿入するコードテンプレートを選択でき るリストを、エディタウィンドウで表示します。選択したコー ドテンプレートでフィールドへの入力が必要な場合は、[テンプ レート]ダイアログボックスが表示されます。このダイアログ ボックスについては、239 ページの[テンプレート]ダイアロ グボックスを参照してください。コードテンプレートの使用方 法については、88 ページのコードテンプレートの使用と追加を 参照してください。 "header.h" を開く "header.h" という名前のヘッダファイルをエディタウィンドウ で開きます。このメニューコマンドは、コンテキストメニュー を表示したときに挿入ポイントが #include 行にある場合にだ け使用できます。 ヘッダ / ソースファ イルを開く 現在のファイルから、対応するヘッダファイルかソースファイ ルに移動します。コマンド実行時に対象ファイルが開かれてい ない場合は、そのファイルを開きます。このメニューコマンド は、コンテキストメニューを表示したときに挿入ポイントが #include 行を除く任意の行にある場合に使用できます。この コマンドは、 [ファイル]>[開く]メニューから選択すること もできます。 シンボルの定義に 挿入ポイントのある箇所のシンボルの定義を表示します。 移動 チェックイン チェックアウト チェックアウトを元 に戻す ソースコード管理用コマンド(202 ページの[ソースコード管 理]メニューを参照)。これらのコマンドは、エディタウィンド ウで表示中のソースファイルが SCC 管理対象である場合にだけ 使用できます。また、ファイルが現在のプロジェクトに含まれ ている必要があります。 表 35: エディタウィンドウのコンテキストメニューのコマンドの詳細 パート 5 リファレンス情報 UEW-9 211 ウィンドウ メニューコマンド 説明 ブレークポイントの 切替え(コード) ソースウィンドウで、カーソルを含む、または直近の文か命令 で、コードブレークポイントを設定 / 解除します。コードブ レークポイントについては、219 ページの[コード]ブレーク ポイントダイアログボックスを参照してください。 ブレークポイントの 切替え(ログ) ソースウィンドウで、カーソルを含む、または直近の文か命令 で、ログブレークポイントを設定 / 解除します。ログブレーク ポイントについては、221 ページの[ログ]ブレークポイント ダイアログボックスを参照してください。 ブレークポイント の切替え(トレー ス開始) トレース開始ブレークポイントを切替えます。ブレークポイン トがトリガされると、トレースシステムが起動します。トレー ス開始ブレークポイントについては、 『164 ページの[トレース 開始ブレークポイント]ダイアログボックス』を参照してくだ さい。このメニューコマンドは、使用している C-SPY ドライバ でトレースシステムがサポートされている場合にのみ使用でき ます。 ブレークポイント の切替え(トレー ス停止) トレース停止ブレークポイントを切替えます。ブレークポイン トがトリガされると、トレースシステムが停止します。トレー ス停止ブレークポイントについては、 『165 ページの[トレース 停止]ブレークポイントダイアログボックス』を参照してくだ さい。このメニューコマンドは、使用している C-SPY ドライバ でトレースシステムがサポートされている場合にのみ使用でき ます。 有効 / 無効 ブレークポイント ブレークポイントの無効(実際には削除せず、後で再度使用で きる状態にする)と有効を切り替えます。 データブレークポイ ントの設定 ( 変数用) 静的記憶寿命変数のデータブレークポイントを切り替えます。 使用している C-SPY ドライバでサポートされていることが必要 です。 ブレークポイントの [ブレークポイントの編集]ダイアログボックスを表示します。 編集 このダイアログボックスを使用して、現在選択しているブレー クポイントの編集ができます。複数のブレークポイントが選択 行にある場合、使用可能なすべてのブレークポイントの一覧を 示すサブメニューがその行に表示されます。 次の実行文の設定 コードを実行せずに、選択した文か命令の位置に PC を設定し ます。このコマンドは慎重に使用してください。このコマンド は、デバッガ使用時にだけ使用できます。 クイックウォッチ [クイックウォッチ]ウィンドウを表示します(305 ページの [クイック ウォッチ]ウィンドウを参照)。このコマンドは、デ バッガ使用時にだけ使用できます。 表 35: エディタウィンドウのコンテキストメニューのコマンドの詳細 (続き) IAR Embedded Workbench IDE 212 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニューコマンド 説明 ウォッチへ追加 選択したシンボルを[ウォッチ]ウィンドウに追加します。 このコマンドは、デバッガ使用時にだけ使用できます。 PC へ移動 挿入ポイントを、エディタウィンドウで現在の PC 位置に移動 します。このコマンドは、デバッガ使用時にだけ使用できます。 カーソルまで実行 現在の文 / 命令から、選択した文 / 命令までコードを実行しま す。このコマンドは、デバッガ使用時にだけ使用できます。 オプション [IDE オプション]ダイアログボックスを表示します (253 ページの[ツール]メニュー を参照)。 表 35: エディタウィンドウのコンテキストメニューのコマンドの詳細 (続き) ソースファイルパス IDE は、ソースファイルの相対パスを一部サポートします。 ソースファイルがプロジェクトファイルディレクトリかプロジェクトファイ ルディレクトリ内のサブディレクトリにある場合、IDE はプロジェクトファ イルとの相対パスを使用してソースファイルにアクセスします。 エディタのキー操作のまとめ 下表に、エディタのキーボードコマンドをまとめています。 挿入ポイントの移動には、以下のキーやキーコンビネーションを使用します。 挿入ポイントの移動操作 キー 左に 1 文字分移動 ← 右に 1 文字分移動 → 左に 1 語分移動 Ctrl+ ← 右に 1 語分移動 Ctrl+ → 上に 1 行分移動 ↑ 下に 1 行分移動 ↓ 行の先頭まで Home 行の最後まで End ファイルの先頭行に移動 Ctrl+Home ファイルの最終行に移動 Ctrl+End 表 36: エディタで挿入ポイントを移動するキーボードコマンド パート 5 リファレンス情報 UEW-9 213 ウィンドウ テキストのスクロールには、以下のキーやキーコンビネーションを使用し ます。 スクロール操作 キー 上に 1 行 Ctrl+ ↑ 下に 1 行 Ctrl+ ↓ 上に 1 ページ Page Up 下に 1 ページ Page Down 表 37: エディタでのスクロール用キーボードコマンド テキストの選択には、以下のキーやキーコンビネーションを使用します。 選択操作 キー 左側の文字 Shift+ ← 右側の文字 Shift+ → 左側の 1 語 Shift+Ctrl+ ← 右側の 1 語 Shift+Ctrl+ → 前の行の同一位置まで Shift+ ↑ 次の行の同一位置まで Shift+ ↓ 行の先頭まで Shift+Home 行の最後まで Shift+End 上に 1 画面分選択 Shift+Page Up 下に 1 画面分選択 Shift+Page Down ファイルの先頭まで Shift+Ctrl+Home ファイルの最後まで Shift+Ctrl+End 表 38: エディタでのテキスト選択用キーボードコマンド IAR Embedded Workbench IDE 214 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ソースブラウザ]ウィンドウ [ソースブラウザ]ウィンドウ([表示]メニューから表示)には、アクティ ブなビルド構成で定義されているすべてのシンボルが、アルファベット順で 階層表示されます。 図 88: [ソースブラウザ]ウィンドウ このウィンドウは、2 つの別々の表示エリアで構成されています。 上側の表示エリア 上側の表示エリアには、2 つの列があります。 列 説明 アイコン シンボルの種類に対応するアイコンについては、216 ページのシン 名称 プロジェクトで定義されているグローバルシンボルや関数の名前が 表示されます。 ボルの種類に使用されるアイコンを参照してください。 表 39: [ソースブラウザ]ウィンドウの列 ウィンドウのヘッダをクリックすると、名前またはシンボルの種類を基準に シンボルをソートできます。 上側の表示エリアでは、コンテキストメニューも使用できます(217 ページ の[ソースブラウザ]ウィンドウのコンテキストメニューを参照)。 パート 5 リファレンス情報 UEW-9 215 ウィンドウ 下の表示エリア 上側の表示エリアで選択したシンボルに応じて、下側のエリアにそのプロパ ティが表示されます。 プロパティ 説明 フルネーム 各エレメントの一意の名前(classname::membername など)が 表示されます。 シンボルのタイプ 各エレメントのシンボルの種類が表示されます(216 ページのシ ンボルの種類に使用されるアイコンを参照)。 ファイル名 エレメントが定義されているファイルのパスを示します。 表 40: [ソースブラウザ]ウィンドウの情報 シンボルの種類に使用されるアイコン 使用されるアイコンは次のとおりです。 基底クラス クラス 設定 列挙型 列挙定数 (黄色のひし形) 構造体のフィールド (紫のひし形) 関数 マクロ 名前空間 テンプレートクラス テンプレート関数 タイプの定義 共用体 (黄色のひし形) 変数 用途 [ソースブラウザ]ウィンドウの使用方法の詳細については、70 ページのブ ラウズ情報の表示を参照してください。を参照してください。 IAR Embedded Workbench IDE 216 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ソースブラウザ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが上側の表示エリアで使用可能です。 図 89: [ソースブラウザ]ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは以下のとおりです。 メニューコマンド 説明 定義に移動 エディタウィンドウで、選択した項目の定義を表示します。 親に移動 選択したエレメントがクラス、構造体、共用体、列挙型、名前 空間のメンバーである場合に、このメニューコマンドを使用し て、そのエレメントの親エレメントに移動することができます。 すべてのシンボル タイプフィルタ。プロジェクト内で定義されたすべてのグロー バルシンボルや関数が表示されます。 すべての関数と変数 タイプフィルタ。プロジェクト内で定義されたすべての関数や 変数が表示されます。 非メンバ関数と変数 タイプフィルタ。クラスのメンバではない関数および変数がす べて表示されます。 タイプ タイプフィルタ。プロジェクト内で定義されたすべての型(構 造体、クラスなど)が表示されます。 定数とマクロ タイプフィルタ。プロジェクト内で定義されたすべての定数や マクロが表示されます。 すべてのファイル ファイルフィルタ。プロジェクトに明示的に追加したすべての ファイルと、それらのファイルでインクルードされるすべての ファイル内のシンボルが表示されます。 システムインクルード ファイルフィルタ。プロジェクトに明示的に追加したすべての を除外 ファイルと、それらのファイルでインクルードされるすべての ファイル内(IAR Embedded Workbench のインストールディレク トリ内のインクルードファイルを除く)のシンボルが表示され ます。 表 41: [ソースブラウザ]ウィンドウのコンテキストメニューのコマンド パート 5 リファレンス情報 UEW-9 217 ウィンドウ メニューコマンド 説明 プロジェクトメンバ のみ ファイルフィルタ。プロジェクトに明示的に追加したすべての ファイル(それらのファイルでインクルードされるファイルを 除く)内のシンボルが表示されます。 表 41: [ソースブラウザ]ウィンドウのコンテキストメニューのコマンド(続き) [ブレークポイント]ウィンドウ [ブレークポイント]ウィンドウ([表示]メニューから表示)には、すべて のブレークポイントが表示されます。このウィンドウでは、ブレークポイン トのモニタや有効 / 無効の切替えを簡単に行うことができます。また、新し いブレークポイントの定義や、既存のブレークポイントの修正も行うことが できます。 図 90: [ブレークポイント]ウィンドウ 定義したすべてのブレークポイントが[ブレークポイント]ウィンドウに表 示されます。 ブレークポイントシステムとブレークポイントの設定方法の詳細については、 「パート 4. IAR C-SPY シミュレータ」の「ブレークポイントの使用」を参照し てください。 [ブレークポイント]ウィンドウのコンテキストメニュー [ブレークポイント]ウィンドウで右クリックすると、コンテキストメニュー が表示されます。これを使用してコマンドを実行できます。 図 91: [ブレークポイント]ウィンドウのコンテキストメニュー IAR Embedded Workbench IDE 218 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス コンテキストメニューから実行できるコマンドは以下のとおりです。 メニューコマンド 説明 ソースへ移動 ブレークポイントに対応する位置がソースにある場合に、挿入ポイ ントをブレークポイント位置に移動します。[ブレークポイント] ウィンドウでブレークポイントをダブルクリックした場合も、同一 の操作が実行されます。 編集 選択したファイルについて、標準の[ブレークポイントの編集]ダ イアログボックスを表示します。 削除 選択したブレークポイントを削除します。Delete キーを押した場合 も、同一の操作が実行されます。 有効化 選択したブレークポイントを有効にします。行の最初にあるチェッ クボックスが選択されます。チェックボックスを手動で選択して も、同一の結果になります。このコマンドは、選択したブレークポ イントが無効になっている場合にだけ使用できます。 無効 選択したブレークポイントを無効にします。行の最初にあるチェッ クボックスが選択解除されます。チェックボックスを手動で選択解 除しても、同一の結果になります。このコマンドは、選択したブ レークポイントが有効になっている場合にだけ使用できます。 すべて有効 定義されたすべてのブレークポイントを有効にします。 すべて無効 定義されたすべてのブレークポイントを無効にします。 新規ブレークポイ [新規ブレークポイント]ダイアログボックスを開くためのサブメ ント ニューを表示します。ここで、使用可能な種類のブレークポイント を定義できます。[新規ブレークポイント]ダイアログボックスで 定義したすべてのブレークポイントは、デバッグセッションの終了 後も保持されます。使用する C-SPY ドライバによっては、コード / ログブレークポイント(219 ページの[コード]ブレークポイント ダイアログボックス を参照)以外の種類のブレークポイントも使用 可能な場合があります。ドライバ固有のブレークポイントの種類に ついては、そのドライバのデバッガ関連ドキュメントを参照してく ださい。 表 42: [ブレークポイント]ウィンドウのコンテキストメニューのコマンド [コード]ブレークポイントダイアログボックス コードブレークポイントは、指定位置から命令をフェッチした時にトリガさ れます。特定のマシン命令にブレークポイントを設定した場合は、命令の実 行前にブレークポイントがトリガされ、実行が停止します。 コードブレークポイントを設定するには、[ブレークポイント]ウィンドウを 右クリックし、コンテキストメニューから[新規ブレークポイント]>[コー ド]を選択します。既存のブレークポイントを修正するには、[ブレークポイ パート 5 リファレンス情報 UEW-9 219 ウィンドウ ント]ウィンドウでそのブレークポイントを選択し、コンテキストメニュー から[編集]を選択します。 [コード]ブレークポイントダイアログボックスが表示されます。 図 92: [コード]ブレークポイントページ ブレーク位置 [ブレーク位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]ボタンをクリックして[位置入力]ダイアログボックスを表 示します(223 ページの[ブレーク位置入力]ダイアログボックスを参照)。 サイズ また、サイズ(実際にはロケーションの範囲)を指定することもできます。 指定したメモリ範囲に対してフェッチアクセスが発生するごとに、ブレーク ポイントがトリガされます。サイズの指定方法は 2 種類あります。 ● [自動]を指定すると、サイズが自動設定される(通常は 1) ● [手動]を指定した場合は、[サイズ]テキストボックスでブレークポイン ト範囲のサイズを手動で指定する。 アクション ブレークポイントにアクションを関連付けることもできます。C-SPY マクロ 関数などの式を指定すると、ブレークポイントのトリガ時に条件が真である ときに評価されます。 IAR Embedded Workbench IDE 220 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式 条件が真 式の値が真の場合に、ブレークポイントがトリガされます。 条件(変更) 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 スキップ数 実行を停止するまでのブレークポイントトリガ回数(整数)を指 定します。 表 43: ブレークポイントの条件 [ログ]ブレークポイントダイアログボックス ログブレークポイントは、指定位置から命令をフェッチ時にトリガされます。 特定のマシン命令にブレークポイントを設定した場合は、命令の実行前にブ レークポイントがトリガされ、実行が一時停止し、指定したメッセージが [C-SPY デバッグログ]ウィンドウに出力されます。これを使用して、アプリ ケーションの実行時に、アプリケーションソースコードを変更せずにトレー ス出力を追加することができます。 ログブレークポイントを設定するには、[ブレークポイント]ウィンドウを右 クリックし、コンテキストメニューから[新規ブレークポイント]>[ログ] を選択します。既存のブレークポイントを修正するには、[ブレークポイン ト]ウィンドウでそのブレークポイントを選択し、コンテキストメニューか ら[編集]を選択します。 [ログ]ブレークポイントダイアログボックスが表示されます。 図 93: [ログ]ブレークポイントページ パート 5 リファレンス情報 UEW-9 221 ウィンドウ ログブレークポイントを設定するには、エディタウィンドウまたは[逆アセ ンブリ]ウィンドウで右クリックすると表示されるコンテキストメニューか ら[ブレークポイントの切替え(ログ)]を選択するのが最も簡単で一般的な 方法です。ブレークポイントの設定方法の詳細については、125 ページのブ レークポイントの定義を参照してください。 ブレーク位置 [ブレーク位置]テキストボックスでブレークポイントの位置を指定します。 または、[編集]ボタンをクリックして[位置入力]ダイアログボックスを表 示します(223 ページの[ブレーク位置入力]ダイアログボックスを参照)。 メッセージ [C-SPY デバッグログ]ウィンドウで表示するメッセージを指定します。通常 のテキストか、コンマ区切りの引数リスト([C-SPY マクロ "__message" style]オプションも選択している場合)を入力します。 C-SPY マクロ "__message" style [メッセージ]テキストボックスで指定したコンマ区切りの引数リストを C-SPY マクロ言語文 __message の引数として使用する場合は、このオプショ ンを選択します(406 ページのフォーマットした出力を参照)。 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式 条件が真 式の値が真の場合に、ブレークポイントがトリガされます。 条件(変更) 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 表 44: ログブレークポイントの条件 IAR Embedded Workbench IDE 222 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ブレーク位置入力]ダイアログボックス ブレークポイントの位置を指定するには、[位置入力]ダイアログボックス ([ブレークポイント]ダイアログボックスから表示)を使用します。 図 94: [位置入力]ダイアログボックス 以下からブレークポイントの位置および設定を選択できます。 位置の種類 説明 / 例 式 関数や変数名などの、評価結果が有効なアドレスになる式。コー ドブレークポイントは関数に、データブレークポイントは変数名 にそれぞれ設定します。たとえば、my_var は変数 my_var の位 置、arr[3] は配列 arr の 3 番目のエレメントを参照します。 絶対アドレス zone:hexaddress という形式または単に hexaddress という 形式で示した絶対アドレス。ゾーンは、アドレスが属するメモリ を指定します。Memory:0x42 のように指定します。 有効でないゾーンとアドレスの組合せを入力すると、C-SPY は組 合せが無効であることを示します。 ソース位置 次の構文を使用して示した C ソースコード内の位置。 {file path}.row.column. file path には、ファイル名およびフ ルパスを指定します。row には、ブレークポイントを設定する行 を指定します。column には、ブレークポイントを設定する列を指 定します。[ソース位置]は、通常はコードのブレークポイント だけに使用します。 たとえば、{C:\my_projects\Utilities.c}.22.3 は、ソースファイル Utilities.c の 22 行目の 3 文字目の位置 にブレークポイントを設定します。 表 45: 位置の種類 パート 5 リファレンス情報 UEW-9 223 ウィンドウ [ソースの曖昧さの解決]ダイアログボックス [ソースの曖昧さの解決]ダイアログボックスは、たとえばインライン関数や テンプレート上にブレークポイントを設定しようとして、ソース位置が複数 の関数に対応するような場合に表示されます。 図 95: [ソースの曖昧さの解決]ダイアログボックス すべて リストされたすべての場所が使用されます。 選択 リストで 1 つまたは複数の場所を選択します。選択された場所のみが使用さ れます。 キャンセル どの場所も使用されません。 自動的にすべて選択 指定されたソース位置が複数の関数と一致する場合、すべての場所が使用さ れます。 このオプションは、[IDE オプション]ダイアログボックスでも指定できる点 に注意してください(269 ページの[デバッガ]オプションを参照)。 IAR Embedded Workbench IDE 224 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ビルド]ウィンドウ [ビルド]ウィンドウ([表示]>[メッセージ]を選択して表示)には、ビル ド構成のビルド中のメッセージが表示されます。デフォルトでは、このウィ ンドウは他のメッセージウィンドウとグループ化されて表示されます (195 ページのウィンドウを参照)。 図 96: [ビルド]ウィンドウ(メッセージウィンドウ) [ビルド]ウィンドウでメッセージをダブルクリックすると、該当ファイルが 編集用に開かれ、挿入ポイントが正しい箇所に表示されます。 [ビルド]ウィンドウを右クリックすると、コンテキストメニューが表示され ます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行でき ます。 図 97: [ビルド]ウィンドウのコンテキストメニュー [オプション]コマンドを選択すると、[IDE オプション]ダイアログボック スで[メッセージ]ページが表示されます。このページで、メッセージ関連 オプションを設定することができます(265 ページの[メッセージ]オプ ションを参照)。 [ファイルから検索]ウィンドウ [ファイルで検索]ウィンドウ([表示]>[メッセージ]を選択して表示)で は、[編集]>[検索と置換]>[ファイルから検索]コマンドの出力を表示し パート 5 リファレンス情報 UEW-9 225 ウィンドウ ます。デフォルトでは、このウィンドウは他のメッセージウィンドウとグ ループ化されて表示されます(195 ページのウィンドウを参照)。 図 98: [ファイルから検索]ウィンドウ(メッセージウィンドウ) このウィンドウでメッセージをダブルクリックすると、該当ファイルが編集 用に開かれ、挿入ポイントが正しい箇所に表示されます。 [ファイルで検索]ウィンドウを右クリックすると、コンテキストメニューが 表示されます。これを使用して、ウィンドウの内容のコピー、選択、消去を 実行できます。 図 99: [ファイルで検索]ウィンドウのコンテキストメニュー [ツール出力]ウィンドウ [ツール出力]ウィンドウ( [表示]>[メッセージ]を選択して表示)では、 [出力ウィンドウにリダイレクト]オプションを[ツールの設定]ダイアログ ボックスで選択している場合に、 [ツール (T)]メニューに含まれるユーザ定義 「276 ページの[構成ツール]ダ ツールが出力したメッセージを表示します。 イアログボックス」を参照してください。デフォルトでは、このウィンドウは IAR Embedded Workbench IDE 226 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス 他のメッセージウィンドウとグループ化されて表示されます(195 ページの ウィンドウを参照)。 図 100: [ツール出力]ウィンドウ(メッセージウィンドウ) [ツール出力]ウィンドウを右クリックすると、コンテキストメニューが表示 されます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行 できます。 図 101: [ツール出力]ウィンドウのコンテキストメニュー [デバッグログ]ウィンドウ [デバッグログ]ウィンドウ([表示]>[メッセージ]を選択して表示)で は、診断メッセージやトレース情報などのデバッガ出力を表示します。この 出力は、C-SPY の実行中のみ使用できます。デフォルトでは、このウィンド ウは他のメッセージウィンドウとグループ化されて表示されます(195 ペー ジのウィンドウを参照)。 図 102: [デバッグログ]ウィンドウ(メッセージウィンドウ) パート 5 リファレンス情報 UEW-9 227 メニュー 以下のフォーマットのいずれかの行をダブルクリックすると、対応するソー スコードが[エディタ]ウィンドウに表示されます。 <path> (<row>):<message> <path> (<row>,<column>):<message> [デバッグログ]ウィンドウを右クリックすると、コンテキストメニューが表 示されます。これを使用して、ウィンドウの内容のコピーや消去を実行でき ます。 図 103: [デバッグログ]ウィンドウのコンテキストメニュー メニュー IDE で使用可能なメニューは以下のとおりです。 ● [ファイル]メニュー ● [編集]メニュー ● [表示]メニュー ● [プロジェクト]メニュー ● [ツール]メニュー ● [ウィンドウ]メニュー ● [ヘルプ]メニュー。 また、デバッガを起動すると、C-SPY 専用のメニューが使用可能になります。 これらのメニューのリファレンス情報については、283 ページの C-SPY リ ファレンスを参照してください。 [ファイル]メニュー [ファイル]メニューには、ワークスペースおよびソースファイルのオープ ン、保存、出力、IDE の終了を実行するためのコマンドが表示されます。 IAR Embedded Workbench IDE 228 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス また、最近開いたファイルやワークスペースの番号付きリストも表示されま す。メニューから選択することにより、これらを開くことができます。 図 104: [ファイル]メニュー [ファイル]メニューから実行できるコマンドは以下のとおりです。 メニューコマンド ショート カット 説明 新規 CTRL+N 新しいワークスペースやテキストファイルを作成するコ マンドを含むサブメニューを表示します。 開く > ファイル CTRL+O テキストファイルや HTML ドキュメントを選択して開く ことができるサブメニューを表示します。 開く > ワークスペース 開く > ヘッダ / ソース ファイル ワークスペースファイルを開くためのダイアログボック スを表示します。 新しいワークスペースを開く前に、現在開かれていて修 正されているワークスペースファイルを保存して閉じる かどうかを確認するメッセージが表示されます。 CTRL+ SHIFT+H 現在のファイルに対応するヘッダファイルやソースファ イルを開き、現在のファイルから新しく開かれたファイ ルに移動します。このコマンドは、エディタウィンドウ のコンテキストメニューからも実行できます。 閉じる アクティブなウィンドウを閉じます。修正されている ファイルを、閉じる前に保存するかどうかを確認する メッセージが表示されます。 名前を付けてワー クスペースを保存 現在のワークスペースファイルを保存します。 表 46: [ファイル]メニューのコマンド パート 5 リファレンス情報 UEW-9 229 メニュー メニューコマンド ショート カット ワークスペースを 閉じる 保存 説明 現在のワークスペースファイルを閉じます。 CTRL+S 現在のテキストファイルやワークスペースファイルを保 存します。 名前を付けて保存 現在のファイルを別名で保存するためのダイアログボッ クスを表示します。 すべてを保存 開かれているすべてのテキストドキュメントとワークス ペースファイルを保存します。 ページ設定 印刷オプションを設定するためのダイアログボックスを 表示します。 出力 CTRL+P テキストドキュメントを印刷するためのダイアログボッ クスを表示します。 最近使用したファ イル 最近開いたテキストドキュメントをすばやく開くための サブメニューを表示します。 最近使用したワー クスペース 最近開いたワークスペースファイルをすばやく開くため のサブメニューを表示します。 終了 IDE を終了します。テキストウィンドウを閉じる前に、変 更内容を保存するかどうかを確認するメッセージが表示 されます。プロジェクトの変更は自動的に保存されます。 表 46: [ファイル]メニューのコマンド(続き) IAR Embedded Workbench IDE 230 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [編集]メニュー [編集]メニューから、編集 / 検索用のコマンドを実行できます。 図 105: [編集]メニュー メニューコマンド ショート カット 説明 アンドゥ CTRL+Z 現在のエディタウィンドウで最後に行った変更を取り消 します。 リドゥ CTRL+Y 現在のエディタウィンドウで[アンドゥ]により取り消 した変更を再実行します。 エディタウィンドウごとに、編集のアンドゥ / リドゥを 無制限に実行することができます。 切り取り CTRL+X エディタウィンドウとテキストボックスでテキストを切 り取るための Windows 標準のコマンド。 コピー CTRL+C エディタウィンドウとテキストボックスでテキストをコ ピーするための Windows 標準のコマンド 貼り付け CTRL+V エディタウィンドウとテキストボックスでテキストを貼 り付けるための Windows 標準のコマンド 形式を選択して貼 り付け クリップボードに最近コピーした内容から、エディタド キュメントに貼り付けるものを選択できます。 形式を選択して貼 CTRL+A り付け アクティブなエディタウィンドウで、すべてのテキスト を選択します。 表 47: [編集]メニューのコマンド パート 5 リファレンス情報 UEW-9 231 メニュー メニューコマンド ショート カット 検索と置換 > 検索 CTRL+F 説明 現在のエディタウィンドウでテキストを検索するための [検索]ダイアログボックスを表示します。[検索]コマ ンド選択時に[メモリ]ウィンドウに挿入ポイントがあ る場合は、ダイアログボックスに表示されるオプション が異なります。[検索]コマンドの選択時に[トレース] ウィンドウに挿入ポイントがある場合は、[トレース内 を検索]ダイアログボックスが表示されます。このダイ アログボックスの内容は、使用している C-SPY ドライバ によって異なります。詳細については、ドライバのド キュメントを参照してください。 検索と置換 > 次を検索 F3 指定した文字列に一致する次の箇所を検索します。 検索と置換 > 前を検索 SHIFT+F3 指定した文字列に一致する前の箇所を検索します。 CTRL+F3 検索と置換 > 次を検索(指定文 字列) 現在選択されている文字列または現在挿入ポイントを囲 んでいる単語に一致する次の箇所を検索します。 CTRL+ 検索と置換 > 前を検索(選択) SHIFT+F3 現在選択されている文字列または現在挿入ポイントを囲 んでいる単語に一致する前の箇所を検索します。 検索と置換 > 置換 指定した文字列を検索し、一致箇所を別の文字列に置換 するためのダイアログボックスを表示します。[置換] コマンドの選択時に[メモリ]ウィンドウに挿入ポイン トがある場合は、ダイアログボックスに表示されるオプ ションが変化します。 CTRL+H 検索と置換 > ファイルで検索 指定した文字列を複数のテキストファイルで検索するた めのダイアログボックスを表示します(236 ページの [ファイルで検索]ダイアログボックスを参照)。 CTRL+I 検索と置換 > インクリメンタル 検索 移動 > 移動 検索文字列を少しずつ変更し、検索の絞込みや拡大を行 うことができるダイアログボックスを表示します。 CTRL+G [行へ移動]ダイアログボックスを表示します。このダ イアログボックスを使用して、現在のエディタウィン ドウで指定されている行や列に挿入ポイントを移動で きます。 CTRL+F2 移動 > ブックマークの切 替え アクティブなエディタウィンドウの挿入ポイントのある 行で、ブックマークを設定 / 解除します。 表 47: [編集]メニューのコマンド(続き) IAR Embedded Workbench IDE 232 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニューコマンド ショート カット 説明 移動 > ブックマークへ 移動 F2 挿入ポイントを、 [ブックマークの切替え]コマンドで 定義した次のブックマークに移動します。 移動 > 前へ移動 ALT+ ← 挿入ポイント履歴で前の項目に移動します。挿入ポイン トの現在の位置は、 [定義に移動]コマンドの実行時や、 [ファイルで検索]コマンドの結果をクリックしたとき に、履歴に追加されます。 移動 > 次へ移動 ALT+ → 挿入ポイント履歴で次の項目に移動します。挿入ポイン トの現在の位置は、 [定義に移動]コマンドの実行時や、 [ファイルで検索]コマンドの結果をクリックしたとき に、履歴に追加されます。 移動 > 定義に移動 F12 選択されたシンボルや挿入ポイントが置かれているシン ボルの定義を表示します。ブラウズ情報が有効な場合 に、このメニューコマンドを使用できます(267 ページ の[プロジェクト]オプションを参照)。 コードテンプ レート > テンプレートの 挿入 CTRL+ SHIFT+ SPACE 挿入ポイントの位置に挿入するコードテンプレートを選 択できるリストを、エディタウィンドウで表示します。 選択したコードテンプレートでフィールドへの入力が必 要な場合は、 [テンプレート]ダイアログボックスが表 示されます。このダイアログボックスについては、 239 ページの[テンプレート]ダイアログボックスを参 照してください。コードテンプレートの使用方法につい ては、88 ページのコードテンプレートの使用と追加を 参照してください。 コードテンプレー ト> テンプレートの編 集 現在のコードテンプレートファイルを開き、既存のコー ドテンプレートの修正やユーザ定義コードテンプレート の追加を行います。コードテンプレートの使用方法につ いては、88 ページのコードテンプレートの使用と追加 を参照してください。 次のエラー / タグ F4 [メッセージ]ウィンドウにエラーメッセージのリスト や[ファイル の 検索]検索の結果が表示されている場 合、このコマンドを使用すると、エディタウィンドウの 該当リストにおける次の項目がに表示されます。 前のエラー / タグ SHIFT+F4 [メッセージ]ウィンドウにエラーメッセージのリスト や[ファイル の 検索]検索の結果が表示されている場 合、このコマンドを使用すると、エディタウィンドウの 該当リストにおける前の項目が表示されます。 表 47: [編集]メニューのコマンド(続き) パート 5 リファレンス情報 UEW-9 233 メニュー メニューコマンド 入力補完 ショート カット CTRL+ エリア 括弧のマッチング 自動インデント 説明 入力内容に応じて、エディタドキュメントの他の部分の 内容から入力語を推測して補完します。 挿入ポイントの直近の括弧内のテキストをすべて選択し ます。すでに選択されている場合は、その外側の次の括 弧まで選択範囲を拡大します。外側に括弧がない場合 は、ビープ音を再生します。 CTRL+T C/C++ ソースファイルで選択した行にインデントを設定 します。インデントの設定については、259 ページの [自動インデントの設定]ダイアログボックスを参照し てください。 ブロックコメント CTRL+SHIF C++ のコメント文字列 // を、 選択した行の最初に追加し T+K ます。 選択した行の最初から削除 ブロックコメント CTRL+SHIF C++ のコメント文字列 // を、 T+K します。 の解除 ブレークポイント F9 の切替え ソースウィンドウで、カーソルを含むかまたはカーソル の近くの文か命令で、ブレークポイントを設定 / 解除し ます。 このコマンドは、デバッグバーのアイコンボタンからも 実行できます。 有効化 / 無効ブ レークポイント ブレークポイントの無効(実際には削除せず、後で再度 使用できる状態にする)と有効を切り替えます。 CTRL+F9 表 47: [編集]メニューのコマンド(続き) [検索]ダイアログボックス [検索]ダイアログボックスは[編集]メニューからアクセスできます。 [メモリ]ウィンドウで検索した場合と、エディタウィンドウで検索した場 合を比較すると、このダイアログボックスの内容の表示が異なることに注 意してください。 オプション 説明 検索テキスト 検索するテキストを選択します。 大文字 / 小文字の 区別 指定されたテキストの大文字と小文字が完全に一致するものだけ を検索します。このオプションを指定しない場合は、int を検索 すると、INT、Int も検索されます。このオプションは、エディ タウィンドウでの検索時にだけ使用できます。 表 48: [検索]ダイアログボックスのオプション IAR Embedded Workbench IDE 234 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス オプション 説明 完全に一致する単語 単語として一致する箇所だけを検索します。このオプションを指 のみ 定しない場合は、int を検索すると、INT、Int も検索されます。 このオプションは、エディタウィンドウでの検索時にだけ使用で きます。 16 進数値を検索 指定した 16 進数値を検索します。このオプションは、[メモリ] ウィンドウでの検索時にだけ使用できます。 次を検索 選択したテキストに一致する次の箇所を検索します。 前を検索 選択したテキストに一致する前の箇所を検索します。 停止 実行中の検索を停止します。このボタンは、[メモリ]ウィンドウ での検索時にだけ使用できます。 表 48: [検索]ダイアログボックスのオプション(続き) [置換]ダイアログボックス [置換]ダイアログは[編集]メニューから実行できます。 オプション 説明 検索テキスト 検索して置換するテキストを選択します。 置換テキスト 置換するテキスト。 大文字 / 小文字の区別 指定されたテキストの大文字と小文字が完全に一致するものだ けを検索します。このオプションを指定しない場合は、int を 検索すると、INT、Int も検索されます。 完全に一致する単語のみ単語として一致する箇所だけを検索します。このオプションを 指定しない場合は、int を検索すると、出力、sprintf など も検索されます。このチェックボックスは、 [メモリ]ウィン ドウでの検索時には使用できません。 16 進数値を検索 指定した 16 進数値を検索します。このチェックボックスは、 [メモリ]ウィンドウでの検索時にだけ使用できます。 次を検索 指定したテキストに一致する次の箇所を検索します。 置換 一致箇所のテキストを指定テキストに置換します。 すべて置換 現在のエディタウィンドウで検索テキストに一致する箇所をす べて置換します。 表 49: [置換]ダイアログボックスのオプション パート 5 リファレンス情報 UEW-9 235 メニュー [ファイルで検索]ダイアログボックス 複数のファイル内の文字列を検索するには、[ファイルで検索]ダイアログ ボックス([編集]メニューから表示)を使用します。 図 106: [ファイルで検索]ダイアログボックス 検索結果は、[ファイルで検索]メッセージウィンドウ([表示]メニューか ら表示)で表示されます。[編集]>[次のエラー / タグ]コマンドを選択す るか、[ファイルで検索]メッセージウィンドウでメッセージをダブルクリッ クして、一致箇所に移動することができます。対応するファイルがエディタ ウィンドウで表示され、一致箇所の最初の位置に挿入ポイントが設定されま す。左端の余白にある青色のフラグにより、該当行が示されます。 [ファイルで検索]ダイアログボックスで、以下の設定を使用して検索条件を 指定します。 検索テキスト: 正規表現を検索するための文字列を入力するテキストフィールド。以下のコ マンドから選択します。 大文字 / 小文字の区別 IAR Embedded Workbench IDE 236 ユーザガイド UEW-9 指定されたテキストの大文字と小文字が完全に一致するもの だけを検索します。このオプションを指定しない場合は、 int を検索すると、INT、Int も検索されます。 IAR Embedded Workbench IDE リファレンス 完全に一致する単語のみ 単語として独立した文字列のみを検索します(ショートカッ ト &w) 。このオプションを指定しなかった場合、int を検索 すると、print、sprintf なども検索されます。 正規表現に一致 正規表現のみを検索します。つまり、Perl プログラミング言 語の標準に従う必要があります。 検索場所 [検索場所]にあるオプションを使用して、指定した文字列を検索するファイ ルを指定できます。以下から選択します。 ワークプレイス内の全プ アクティブなプロジェクトだけでなく、ワークスペースの全 ロジェクトが対象 プロジェクトが順番に検索されます。 プロジェクトファイル プロジェクトに明示的に追加したすべてのファイルに対して 検索が実行されます。 プロジェクトファイルお プロジェクトに明示的に追加したすべてのファイルと、それ よびユーザのインクルー らのファイルに含まれるすべてのファイル(IAR Embedded Workbench のインストールディレクトリ内のインクルード ドファイル ファイルを除く)に対して検索が実行されます。 プロジェクトファイルと プロジェクトに明示的に追加したすべてのファイルと、そ すべてのインクルード れらに含まれるすべてのファイルに対して検索が実行され ファイル ます。 ディレクトリ 指定したディレクトリ内のファイルに対して検索が実行さ れます。最近検索した場所が、ドロップダウンリストに保 存されます。参照ボタンを使用して、ディレクトリを指定 します。 サブディレクトリを検索 指定したディレクトリおよびそのサブディレクトリ内のファ イルに対して検索が実行されます。 ファイルタイプ 検索対象のファイルタイプを選択するフィルタ。[検索場所]のすべてのオプ ションに適用されます。ドロップダウンリストからフィルタを選択します。 [ファイルタイプ]テキストフィールドは編集可能で、任意のフィルタを追加 できます。フィルタのゼロ文字以上の任意の文字を示すには * を、任意の 1 文字を示すには ? を使用します。 停止 実行中の検索を停止します。このボタンは、検索中にだけ使用できます。 パート 5 リファレンス情報 UEW-9 237 メニュー [インクリメンタル検索]ダイアログボックス [インクリメンタル検索]ダイアログボックス([編集]メニューから表示) を使用して、検索文字列を徐々に絞り込むか、広げることができます。 図 107: [インクリメンタル検索]ダイアログボックス 検索テキスト 検索する文字列を入力します。検索は、挿入ポイントの位置(開始位置)か ら実行されます。検索文字列を段階的に長くすると、検索条件が段階的に拡 大されます。バックスペースを押すと、検索文字列から 1 文字削除されます。 検索は、残りの文字列に対して実行され、開始位置から開始されます。 [インクリメンタル検索]ダイアログボックスを表示したときにエディタウィ ンドウで文字列を選択している場合は、その文字列が[検索テキスト]テキ ストボックスに表示されます。 大文字 / 小文字の区別 このオプションを使って、指定されたテキストの大文字と小文字が完全に一 致するものだけを検索します。このオプションを指定しない場合は、int を 検索すると、INT、Int も検索されます。 機能ボタン 機能ボタン 説明 次を検索 現在の検索文字列に一致する次の箇所を検索します。 [次を検索] ボタンをクリックしたときに[検索テキスト]テキストボックス が空白の場合は、検索文字列がドロップダウンリストから自動的 に選択されます。この文字列を検索するには、 [次を検索]をク リックします。 閉じる このダイアログボックスを閉じます。 表 50: [インクリメンタル検索]機能ボタン IAR Embedded Workbench IDE 238 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [テンプレート]ダイアログボックス 挿入したソースコードテンプレートで必要なフィールド入力を指定するには、 [テンプレート]ダイアログボックスを使用します。このダイアログボックス は、フィールドへの入力が必要なコードテンプレートを挿入すると表示され ます。 図 108: [テンプレート]ダイアログボックス 注 : この図は、for ループ用コードを自動挿入するためのデフォルトコードテ ンプレートの表示です。 このダイアログボックスの内容は、コードテンプレートに一致します。つま り、コードテンプレートの定義に応じたフィールドが表示されます。 ダイアログボックスの下部には、そのコードテンプレートで生成されるコー ドが表示されます。 コードテンプレートの使用方法については、88 ページのコードテンプレート の使用と追加を参照してください。 パート 5 リファレンス情報 UEW-9 239 メニュー [表示]メニュー [表示]メニューのコマンドを使用して、IAR Embedded Workbench IDE で表示 する項目を選択できます。デバッグセッション中に、[表示]メニューからデ バッガ専用ウィンドウを表示することもできます。 図 109: [表示]メニュー メニューコマンド 説明 メッセージ IAR Embedded Workbench コマンドからのメッセージやテキスト出 力を表示するメッセージウィンドウ([ビルド]、[ファイルで検 索]、[ツール出力] 、[デバッグログ])を選択するためのサブメ ニューを表示します。メニューから選択したウィンドウがすでに 開いている場合は、そのウィンドウがアクティブになります。 ワークスペース ソースブラウザ 現在の[ワークスペース]ウィンドウを開きます。 [ソースブラウザ]ウィンドウを表示します。 ソースブラウザ [ブレークポイント]ウィンドウを表示します。 ツールバー [メイン]/[デバッグ]オプションが 2 つのツールバーの表示 / 非表示を切り替えます。 ステータスバー ステータスバーの表示 / 非表示を切り替えます。 表 51: [表示]メニューのコマンド IAR Embedded Workbench IDE 240 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニューコマンド 説明 デバッガウィンドウ デバッグセッション中に、 [表示]メニューからさまざまなデ バッグウィンドウを表示することもできます。 [逆アセンブリ]ウィンドウ [メモリ]ウィンドウ [シンボルメモリ]ウィンドウ [レジスタ]ウィンドウ [ウォッチ]ウィンドウ [ロケール]ウィンドウ [静的]ウィンドウ [自動]ウィンドウ [ライブウォッチ]ウィンドウ [クイック ウォッチ]ウィンドウ [呼出 しスタック]ウィンドウ [ターミナル I/O]ウィンドウ [コードカバレッジ]ウィンドウ [プロファイリング]ウィンドウ [スタック]ウィンドウ これらのウィンドウの詳細については、283 ページの C-SPY の ウィンドウを参照してください。 表 51: [表示]メニューのコマンド(続き) パート 5 リファレンス情報 UEW-9 241 メニュー [プロジェクト]メニュー [プロジェクト]メニューには、ワークスペース、プロジェクト、グループ、 ファイルの操作用コマンド、ビルドツールのオプションの指定用コマンド、 現在のプロジェクトでツールを実行するためのコマンドが表示されます。 図 110: [プロジェクト]メニュー メニューコマンド 説明 ファイルの追加 現在のプロジェクトに追加するファイルを選択するためのダイア ログボックスを表示します。 グループの追加 新しいグループを作成するためのダイアログボックスを表示しま す。 [グループ名]テキストボックスには、新しいグループ名を 入力します。グループの詳細は、66 ページのグループを参照し てください。 表 52: [プロジェクト]メニューのコマンド IAR Embedded Workbench IDE 242 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニューコマンド 説明 ファイルリストのイ 通常の[開く]ダイアログボックスを表示します。このダイアロ ンポート グボックスを使用して、IAR システムズの別のツールチェーンで 作成したプロジェクトからファイルやグループに関する情報をイ ンポートできます。 ファイル拡張子が古い形式の pew、prj のいずれかであるプロ ジェクトファイルから情報をインポートするには、使用している IAR Embedded Workbench のコンテキストメニューにある[ファ イルリストのエクスポート]を使用して、先に情報をエクスポー トする必要があります。 設定の編集 新しいビルド構成の定義や既存のビルド構成の削除を行うための [プロジェクトの構成]ダイアログボックスを表示します。 削除 [ワークスペース]ウィンドウで、選択した項目をワークスペー スから削除します。 新規プロジェクトの 新しいプロジェクトを作成してワークスペースに追加するための 作成 ダイアログボックスを表示します。 既存プロジェクトの 既存のプロジェクトをワークスペースに追加するためのダイアロ 追加 グボックスを表示します。 オプション (Alt+F7) [ワークスペース]ウィンドウで選択した項目に対して、各ビル ドツールのオプションを設定できる[ノードのオプション]ダイ アログボックスを表示します。プロジェクト全体、ファイルのグ ループ、個々のファイルのオプションを設定できます。 ソースコード管理 作成 (F7) ソースコード管理用コマンドのサブメニューを表示します (202 ページの[ソースコード管理]メニューを参照) 。 最後のビルド以降に変更されたファイルだけをコンパイル、アセ ンブル、リンクして、現在のビルド構成を最新状態に更新 表 52: [プロジェクト]メニューのコマンド(続き) パート 5 リファレンス情報 UEW-9 243 メニュー メニューコマンド 説明 コンパイル (Ctrl+F7) 選択されているファイルやグループをコンパイル / アセンブルし ます。 [ワークスペース]ウィンドウで、1 つまたは複数のファイルを 選択することができます。グループが異なる場合も含め、同一 プロジェクト内のすべてのファイルを選択できます。コンパイ ルするファイルが表示されたエディタウィンドウを選択するこ ともできます。[コンパイル]コマンドは、選択したすべての ファイルに対してコマンドを個別に実行できる場合のみ使用可 能になります。 グループを選択することもできます。その場合、コンパイルでき ないファイル(ヘッダファイルなど)がグループに含まれている 場合でも、そのグループ内(ネストされたグループを含む)のコ ンパイル可能なファイルごとにコマンドが実行されます。 選択したファイルが複数ファイルコンパイルグループの一部であ る場合にも、コマンドは選択したファイルのみに作用します。 すべてをビルド 現在のターゲットのすべてのファイルをリビルドし再リンクし ます。 クリーン すべての中間ファイルを削除します。 バッチビルド (F8) 指定したバッチビルド構成を作成し、指定したバッチをビルドす るためのダイアログボックスを表示します。 ビルドを停止 (Ctrl+Break) 現在のビルド処理を停止します。 ダウンロードしてデ プロジェクトのオブジェクトファイルのデバッグができるよう バッグ (Ctrl+D) に、アプリケーションをダウンロードし、C-SPY を起動します。 必要であれば、C-SPY の実行前に make が実行され、プロジェ クトが更新されます。このコマンドは、デバッグ中は使用でき ません。 ダウンロードなしに プロジェクトのオブジェクトファイルのデバッグができるよう デバッグ に、C-SPY を起動します。このメニューコマンドは、[ダウン ロード]ページの[ダウンロードを中止する]オプションの ショートカットです。このコマンドは、デバッグ中は使用できま せん。 メイク後デバッガを C-SPY の停止、アクティブなビルド構成の作成、デバッガ再開を 再起動 実行します。すべてを 1 つのコマンドで実行します。このコマン ドは、デバッグ中のみ使用できます。 デバッガを再起動 C-SPY の停止とデバッガ再開を実行します。すべてを 1 つのコ マンドで実行します。このコマンドは、デバッグ中のみ使用で きます。 表 52: [プロジェクト]メニューのコマンド(続き) IAR Embedded Workbench IDE 244 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス メニューコマンド ダウンロード 説明 IAR Embedded Workbench に備わったフラッシュローダのメカニ ズムを使用したフラッシュダウンロードのコマンド。このメカニ ズムは使用している製品パッケージに該当しない可能性もありま す。その場合、これらのコマンドは[プロジェクト]メニューに 表示されません。以下のコマンドから選択します。 [アクティブなアプリケーションのダウンロード]は、すべての デバッグセッションを開始せずに、アクティブなアプリケーショ ンをターゲットにダウンロードします。この結果は、デバッグ セッションを開始して実行が発生する前に終了したときとほぼ同 じになります。 [ファイルのダウンロード]は、標準の[開く]ダイアログボッ クスを開きます。ここでは、完全なデバッグセッションを開始せ ずにターゲットシステムにダウンロードするファイルを指定でき ます。 [メモリ消去]フラッシュメモリのすべてまたは一部を消去しま す。.board ファイルでフラッシュメモリが 1 つだけ指定されて いる場合、消去を確認する単純な確認のダイアログボックスが表 示されます。ただし、.board ファイルで 2 つ以上のフラッシュ メモリが指定されている場合、 [メモリ消去]ダイアログボック スが表示されます。245 ページの[メモリ消去]ダイアログボッ クスを参照してください。 表 52: [プロジェクト]メニューのコマンド(続き) [メモリ消去]ダイアログボックス [メモリ消去]ダイアログボックスは、製品パッケージが IAR Embedded Workbench のフラッシュローダのメカニズムをサポートしている場合にのみ 使用できます。 [メモリ消去]ダイアログボックスは[プロジェクト]>[メモリ消去]コマ ンドを選択して、フラッシュメモリシステム設定ファイル(ファイル名の拡 パート 5 リファレンス情報 UEW-9 245 メニュー 張子 .board)で 2 つ以上のフラッシュメモリが指定されている場合に表示さ れます。1 つまたは複数のフラッシュメモリを消去できます。 図 111: [メモリ消去]ダイアログボックス 各行にフラッシュメモリのデバイス設定ファイル(ファイル名の拡張子 .flash)のパスと関連のメモリ範囲が一覧表示されます。消去するメモリを 選択してください。 以下のボタンを選択できます。 すべて消去 個別に選択した行に関係なく、このダイアログボックスに 表示されたすべてのメモリが消去されます。 消去 選択したメモリが消去されます。 キャンセル ダイアログボックスをキャンセルします。 引数変数のまとめ 以下の引数変数をパスや引数に使用できます。 変数 $CONFIG_NAME$ 現在のビルド構成の名前(Debug、Release など)。 $CUR_DIR$ 現在のディレクトリ $CUR_LINE$ 現在の行 $DATE$ 今日の日付 $EW_DIR$ IAR Embedded Workbench のトップディレクトリ(例 : c:\program files\iar systems\embedded workbench 6.n) $EXE_DIR$ 実行可能ファイル出力用ディレクトリ $FILE_BNAME$ ファイル名(拡張子を除く) $FILE_BPATH$ フルパス(拡張子を除く) 表 53: 引数変数 IAR Embedded Workbench IDE 246 ユーザガイド UEW-9 説明 IAR Embedded Workbench IDE リファレンス 変数 説明 $FILE_DIR$ アクティブなファイルのディレクトリ(ファイル名を除く) $FILE_FNAME$ アクティブなファイルのファイル名(パスを除く) $FILE_PATH$ エディタ、プロジェクト、メッセージウィンドウで、アクティブ なファイルのフルパス $LIST_DIR$ リスト出力用ディレクトリ $OBJ_DIR$ オブジェクト出力用ディレクトリ $PROJ_DIR$ プロジェクトディレクトリ $PROJ_FNAME$ プロジェクトファイル名(パスを除く) $PROJ_PATH$ プロジェクトファイルのフルパス $TARGET_DIR$ 主要出力ファイル用ディレクトリ $TARGET_BNAME$ 主要出力ファイルのファイル名(パス、拡張子を除く) $TARGET_BPATH$ 主要出力ファイルのフルパス(拡張子を除く) $TARGET_FNAME$ 主要出力ファイルのファイル名(パスを除く) $TARGET_PATH$ 主要出力ファイルのフルパス $TOOLKIT_DIR$ アクティブな製品のディレクトリ(例 : c:\program files\iar systems\embedded workbench 6.n\cpuname) $USER_NAME$ ホストログイン名 $_ENVVAR_$ 環境変数 ENVVAR。$_ と _$ に囲まれた名前はすべて、そのシス テム環境変数に展開されます。 表 53: 引数変数(続き) [ビルドの構成]ダイアログボックス [ビルドの構成]ダイアログボックス([プロジェクト]>[ビルドの編集]を 選択して表示) で、選択したプロジェクト用のビルド構成を新規に、または既 存のプロジェクトを基に定義することができます。 図 112: [プロジェクトの構成]ダイアログボックス パート 5 リファレンス情報 UEW-9 247 メニュー このダイアログボックスの内容は、以下のとおりです。 項目 説明 ビルド構成 既存のビルド構成を表示します。ここに表示された構成を、新し い構成のテンプレートとして使用できます。 新規作成 新しいビルド構成を定義するためのダイアログボックスを表示し ます。 削除 [構成]リストで選択した構成を削除します。 表 54: [プロジェクトの構成]ダイアログボックスのオプション [新規構成]ダイアログボックス [新規プロジェクトの作成]ダイアログボックス([プロジェクトの構成]ダ イアログボックスで[新規作成]をクリックして表示)で、ビルド構成を新 規に、または 既存の構成を基に定義することができます。 図 113: [新規プロジェクトの作成]ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 名前 ビルド構成名。 ツールチェーン ビルド対象ターゲット。異なるターゲット用に複数のバージョン の IAR Embedded Workbench がホストコンピュータにインストー ルされている場合は、ドロップダウンリストからターゲットを選 択できます。 表 55: [新規構成]ダイアログボックスのオプション IAR Embedded Workbench IDE 248 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス 項目 基になる構成 工場出荷時設定 説明 新しい構成の基になる既存のビルド構成。新しい構成は、プロ ジェクトの設定と出荷時設定情報を既存の構成から継承します。 [なし]を選択した場合は、デフォルトの出荷時設定が適用され、 既存の構成の情報は継承しません。 新しいビルド構成に適用するデフォルトの出荷時設定([デバッ グ]か[リリース] )を指定します。ここで指定した出荷時設定 が、[オプション]ダイアログボックスの[工場出荷時設定]ボ タンを押したときにプロジェクトで使用されます。 表 55: [新規構成]ダイアログボックスのオプション(続き) [新規プロジェクトの作成]ダイアログボックス [新規プロジェクトの作成]ダイアログボックス([プロジェクト]メ ニューから表示)を使用して、テンプレートプロジェクトを基に新しいプ ロジェクトを作成することができます。テンプレートプロジェクトは、 C/C++ アプリケーション、アセンブラアプリケーション、ライブラリプロ ジェクトに使用できます。また、自分でテンプレートプロジェクトを作成 することもできます。 図 114: [新規プロジェクトの作成]ダイアログボックス パート 5 リファレンス情報 UEW-9 249 メニュー このダイアログボックスの内容は、以下のとおりです。 項目 説明 ツールチェーン ビルド対象ターゲット。異なるターゲット用に複数のバージョン の IAR Embedded Workbench がホストコンピュータにインストー ルされている場合は、ドロップダウンリストからターゲットを選 択できます。 プロジェクトテンプ 新しいプロジェクトの作成に使用できるテンプレートプロジェク レート トをすべて表示します。 表 56: [新規プロジェクトの作成]ダイアログボックスの説明 オプションダイアログボックス [オプション]ダイアログボックスは、[プロジェクト]メニューから表示し ます。 [カテゴリ]リストでは、オプションを設定するビルドツールを選択できま す。 [カテゴリ]リストに表示されるオプションは、IAR Embedded Workbench IDE にインストールされたツールによって異なります。通常は以下のオプ ションが表示されます。 カテゴリ 説明 一般オプション 一般オプション C/C++ コンパイラ IARC/C++ コンパイラオプション アセンブラ IAR アセンブラオプション 出力コンバータ ELF 出力を Motorola または Intel 標準に変換するオプ ション。これらのオプションは、使用する製品パッケー ジに ILINK リンカが含まれる場合にのみ使用できます。 カスタムビルド ツールチェーンを拡張するオプション ビルドアクション ビルド前 / ビルド後のアクション用オプション リンカ リンカオプション このカテゴリは、アプリケーション プロジェクトの場合に表示されます。 ライブラリビルダ ライブラリビルダオプション このカテゴリは、ライブ ラリプロジェクトの場合に表示されます。 デバッガ IAR C-SPY デバッガオプション シミュレータ シミュレータ専用オプション 表 57: プロジェクトオプションのカテゴリ 注 : インストールされているデバッガドライバによっては、他のデバッガカ テゴリも表示される場合があります。 IAR Embedded Workbench IDE 250 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス カテゴリを選択すると、IDE のコンポーネントに対するオプションのページ が表示されます。 各オプションの詳細については、以下に示すオプションのリファレンスの章 を参照してください。 ● ● ● ● ● ● ● ● ● ● 一般オプション コンパイラオプション アセンブラオプション コンバータオプション カスタムビルドオプション ビルドアクションオプション XLINK リンカのオプション ILINK リンカのオプション ライブラリビルダオプション デバッガオプション。 使用可能なハードウェアデバッガシステムに関連したオプションについては、 オンラインヘルプシステムを参照してください。 [バッチビルド]ダイアログボックス [バッチビルド]ダイアログボックス([プロジェクト]>[バッチビルド]を 選択して表示)には、定義されているビルド構成のバッチがすべて表示され ます。 図 115: [バッチビルド]ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 パート 5 リファレンス情報 UEW-9 251 メニュー 項目 説明 バッチ 定義されているビルド構成のバッチをすべて表示します。 新規作成 ビルド構成のバッチを定義するための[バッチビルドの編集]ダ イアログボックスを表示します。 編集 定義済みのバッチを修正するための[バッチビルドの編集]ダイ アログボックスを表示します。 削除 選択したバッチを削除します。 ビルド [作成]、[クリーン]、[すべてをビルド]の 3 つのビルドコマン ドで構成されます。 表 58: [バッチビルド]ダイアログボックスの詳細 [バッチビルドの編集]ダイアログボックス [バッチビルドの編集]ダイアログボックス([バッチビルド]ダイアログ ボックスから表示)で、ビルド構成のバッチの新規作成や既存のバッチの編 集を行うことができます。 図 116: [バッチビルドの編集]ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 名称 バッチ名 使用可能な構成 ワークスペースに含まれるすべてのビルド構成を表示します。 ビルドする構成 指定したバッチに追加されるビルド構成を表示します。 表 59: [バッチビルドの編集]ダイアログボックスの詳細 IAR Embedded Workbench IDE 252 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス ビルド構成を[使用可能な構成]から[ビルドする構成]に移動するには、 矢印ボタンを使用します。また、[ビルドする構成]でビルド構成をドラッグ し、ビルド構成の順序を変更することもできます。 [ツール]メニュー [ツール]メニューには、共通フォントの変更、ショートカットキーの変更な どの、環境のカスタマイズ用コマンドが表示されます。 ユーザが定義可能なメニューで、IAR Embedded Workbench で使用するツール を追加することができます。したがって、メニュー項目として表示されるよ うに設定したツールに応じて、表示が異なる場合があります。276 ページの [構成ツール]ダイアログボックスを参照してください。 図 117: [ツール]メニュー [ツール]メニューのコマンド メニューコマンド オプション 説明 [IDE オプション]ダイアログボックスを表示します。このダイア ログボックスを使用して、IDE のカスタマイズができます。ダイ アログボックス左側でカテゴリを選択すると、ダイアログボック ス右側に対応するオプションが表示されます。このダイアログ ボックスで表示されるカテゴリは、IDE の構成と、IDE がデバッグ セッション中かどうかによって異なります。 ツールの設定 外部ツールを利用するためのインタフェースを設定できるダイア ログボックスを表示します。 ファイル名拡張子 ビルドツールで指定可能なファイル名の拡張子を定義するための ダイアログボックスを表示します。 ビューアの構成 ドキュメント表示用のビューアアプリケーションを設定するため のダイアログボックスを表示します。 Note pad ユーザ設定項目。ユーザが[ツール]メニューに追加した項目が 表示されます。 表 60: [ツール]メニューのコマンド パート 5 リファレンス情報 UEW-9 253 メニュー [共通フォント]オプション [共通フォント]オプション([ツール]>[オプション]を選択して表示)を 使用して、エディタウィンドウを除くすべてのプロジェクトウィンドウで使 用されているフォントを設定します。 図 118: [共通フォント]オプション [フォント]ボタンを使用して、等幅フォントとプロポーショナルフォントを 変更することができます。 [固定幅フォント]オプションの変更は、[逆アセンブリ]、[レジスタ]、[メ モリ]の各ウィンドウに適用されます。[プロポーショナルフォント]オプ ションの変更は、それ以外のすべてのウィンドウに適用されます。 このページで行った設定は、エディタウィンドウには適用されません。エ ディタウィンドウのフォントの変更方法については、「264 ページのエディタ 色とフォントオプション」を参照してください。 IAR Embedded Workbench IDE 254 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [キーバインディング]オプション [キーバインディング]オプション([ツール]>[オプション]を選択して表 示)は、IDE メニューコマンドに使用するショートカットキーのカスタマイ ズに使用します。 図 119: [キーバインディング]オプション メニュー ドロップダウンリストを使用して、編集するメニューを選択します。現在定 義されているショートカットキーが、ドロップダウンリストの下にあるスク ロールリストに表示されます。 コマンド 選択したメニューで表示可能なすべてのコマンドのリストが[コマンド]列 に表示されます。ユーザ定義ショートカットキーに設定するメニューコマン ドを選択します。 ショートカットキーを押してください テキストフィールドに、ショートカットキーとして使用するキーコンビネー ションを入力します。他のコマンドで使用されているショートカットの設定 や追加はできません。 プライマリ メニューコマンド名の横にショートカットキーが表示されます。[設定]ボタ ンをクリックして選択したコマンド用にキーコンビネーションを設定するか、 [クリア]ボタンをクリックしてショートカットを削除します。 パート 5 リファレンス情報 UEW-9 255 メニュー エイリアス ここで設定したショートカットキーは、機能しますがメニューでは表示され ません。[追加]ボタンをクリックして、キーに選択したコマンドの機能を設 定するか、[クリア]ボタンをクリックして、ショートカットを削除します。 すべてリセット すべてのコマンドショートカットキーを出荷時設定に戻します。 [言語]オプション ウィンドウ、メニュー、ダイアログボックスなどで使用される言語を指定す るには、[言語]オプション([ツール]>[オプション]を選択して表示)を 使用します。 図 120: [言語]オプション 言語 使用する言語をドロップダウンリストから選択します。使用できる言語は、 製品パッケージに応じて異なります。 注 : 同一ディレクトリの複数の異なるツールチェーンに対して IAR Embedded Workbench IDE がインストールされ、これらのツールチェーンで異なる言語 が使用可能である場合、IDE で言語が混在することがあります。 IAR Embedded Workbench IDE 256 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [エディタ]オプション [エディタ]オプション([ツール]>[オプション]を選択して表示)を使用 してエディタを設定します。 図 121: [エディタ]オプション IAR Embedded Workbench IDE エディタおよびその使用方法の詳細については、 83 ページの編集を参照してください。 タブサイズ このオプションを使用して、個々のタブに相当する文字数を指定します。 インデントサイズ このオプションを使用して、インデントに使用する文字数を指定します。 タブ キー 機能 このオプションを使用して、タブキーの使用方法を指定します。以下から選 択します。 ● タブを挿入 ● スペースによるインデント パート 5 リファレンス情報 UEW-9 257 メニュー EOL 文字 このオプションを使用して、エディタドキュメントの保存時に使用する改行 文字を選択します。以下から選択します。 PC(デフォルト) Windows と DOS 形式の改行文字。デフォルトでは PC フォー マットを使用します。 UNIX UNIX 形式の改行文字。 元のファイルに従う 開かれたときファイルに設定されているのと同じ、PC または UNIX のどちらかの形式の改行文字。開かれたファイルに両方の 形式が存在する場合や、どちらも存在しない場合には、PC 形式 の改行文字が使用されます。 右余白の表示 エディタウィンドウの右側の余白部分の外側領域が薄い灰色で表示されます。 ここを選択して、左余白と右余白の間のテキストフィールドサイズを設定で きます。以下を基準にサイズを選択して、設定します。 印刷の境界 一般的プリンタ設定に準じた印刷可能エリアに基づくサイズ。 列 列数に基づくサイズ。 構文の強調表示 このオプションを使用して、エディタで C/C++ アプリケーションの構文を 様々なテキストスタイルで表示します。 構文強調表示の詳細については、「264 ページのエディタ色とフォントオプ ション」、「86 ページの構文カラー表示」。 自動 インデント このオプションを使用すると、Return を押したときに、新しい行が自動的にイ ンデントされます。C/C++ ソースファイルの場合は、 [自動インデントの設定] ダイアログボックスでの設定に従ってインデントが実行されます。 [設定]ボ タンをクリックすると、自動インデントを設定するためのダイアログボックス が表示されます(259 ページの[自動インデントの設定]ダイアログボックス を参照) 。他のテキストファイルの場合は、新しい行のインデントは前の行と 同一に設定されます。 行番号の表示 このオプションを使用して、エディタウィンドウの行番号を表示します。 IAR Embedded Workbench IDE 258 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス 更新ファイルをスキャン このオプションを使用して、他のツールで修正されたファイルを再ロードし ます。 ファイルが IDE で開かれていて、同じファイルが同時に別のツールで修正さ れている場合、そのファイルが自動的に IDE で再ロードされます。ただし、 ファイルの編集をすでに開始している場合、ファイルを再ロードする前にプ ロンプトが表示されます。 ブックマークの表示 このオプションを使用して、エディタウィンドウの左側に列を表示します。こ の列には、コンパイラのエラーとワーニング、 [ファイルから検索]の結果、 ユーザ定義のブックマーク、ブレークポイントのアイコンが表示されます。 仮想スペースを有効にする このオプションを使用すると、挿入ポイントをテキストエリア外に移動でき ます。 末尾の空白を削除 このオプションを使用して、ファイルをディスクに保存するときに、最後の 空白を削除します。最後の空白とは、空白以外の最後の文字と行末文字の間 の空白文字です。 [自動インデントの設定]ダイアログボックス [自動インデントの設定]ダイアログボックスは、エディタがソースコードに 対して実行する自動インデントの設定に使用します。C/C++ ダイアログボッ クスを表示するには、以下の手順に従います。 1 [ツール]>[オプション]を選択します。 2 [エディタ]タブをクリックします。 3 [自動インデント]オプションを選択します。 パート 5 リファレンス情報 UEW-9 259 メニュー 4 [設定]ボタンをクリックします。 図 122: [自動インデントの設定]ダイアログボックス インデントの詳細については、「86 ページの自動テキストインデント」 。 左括弧 (a) このテキストボックスを使用して、左括弧のインデントに使用する空白文字 数を入力します。 本文 (b) このテキストボックスを使用して、左括弧の後または次の行にまたがる文の 後のインデントコードに使用する追加空白文字数を入力します。 ラベル (c) このテキストボックスを使用して、ラベル(case のラベルを含む)のインデ ントに使用する空白文字数を入力します。 サンプルコード このエリアに、テキストボックスで設定したインデント用設定が反映されま す。すべてのインデントは、前の行、文、その他の文法構造と相対的に設定 されます。 IAR Embedded Workbench IDE 260 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [外部エディタ]のオプション [外部 エディタ]オプション([ツール]>[オプション]を選択して表示) を使用して、使用する外部エディタを指定します。 図 123: [外部エディタ]のオプション 注 : このダイアログボックスの外観は、[タイプ]オプションの設定によって 異なります。 関連項目 92 ページの外部エディタの連携。 外部エディタの使用 このオプションを使用して、外部エディタの使用を有効にします。 タイプ ドロップダウンリストを使用して、インタフェースのタイプを選択します。 以下から選択します。 ● Command line ● DDE (Windows Dynamic Data Exchange) エディタ このテキストフィールドを使用して、外部エディタのファイル名とパスを指 定します。参照ボタンを使用して選択することもできます。 パート 5 リファレンス情報 UEW-9 261 メニュー 引数 このテキストフィールドを使用して、エディタへ渡す引数を指定します。イ ンタフェースのタイプとして[Command line]を選択した場合に限り、適用 できます(261 ページのタイプを参照)。 サービス このテキストフィールドを使用して、エディタで使用する DDE サービス名を 指定します。インタフェースのタイプとして [DDE] を選択した場合に限り、 適用できます(261 ページのタイプを参照)。 サービス名は、使用する外部エディタに応じて指定します。外部エディタの ドキュメントを参照して、適切に設定してください。 コマンド テキストフィールドを使用して、エディタに送信するコマンド文字列シーケン スを指定します。コマンド文字列は、以下の形式で入力する必要があります。 DDE-Topic CommandString DDE-Topic CommandString インタフェースのタイプとして [DDE] を選択した場合に限り、適用できます (261 ページのタイプを参照)。 コマンド文字列は、使用する外部エディタに応じて指定します。外部エディ タのドキュメントを参照して、適切に設定してください。 注 : 引数に変数を使用できます。使用可能な引数変数については、246 ページ の引数変数のまとめを参照してください。 IAR Embedded Workbench IDE 262 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス エディタのセットアップファイルのオプション [エディタセットアップファイル]オプション([ツール]>[オプション]を 選択して表示)を使用して、エディタのセットアップファイルを指定します。 図 124: [エディタセットアップファイル]オプション カスタムキーワードファイルの使用 このオプションは、エディタで強調表示するキーワードを記述したテキスト ファイルの指定に使用します。構文カラー表示については、「86 ページの構 文カラー表示」を参照してください。 コードテンプレートの使用 このオプションは、頻繁に使用するコードをソースファイルに挿入するため のコードテンプレートを記述したテキストファイルを指定するときに使用し ます。コードテンプレートの使用方法については、「88 ページのコードテン プレートの使用と追加」を参照してください。 パート 5 リファレンス情報 UEW-9 263 メニュー エディタ色とフォントオプション [エディタ色とフォント]オプション([ツール]>[オプション]を選択して 表示)を使用して、エディタウィンドウのテキストに使用する色やフォント を指定します。 図 125: [エディタ色とフォント]オプション エディタフォント [フォント]ボタンを押して、標準[フォント]ダイアログを開き、エディタ ウィンドウで使用するフォントとそのサイズを選択できます。 構文の色 [構文の色]オプションを使用して、選択した項目の色とタイプスタイルを選 択します。以下のオプションを使用します。 IAR Embedded Workbench IDE 264 ユーザガイド UEW-9 項目リスト 色とフォントを指定する項目を表示します。リストから項目を 1 つ選択して、色とフォントスタイルを選択します。 [ユーザキー ワード]リストの項目は、カスタムキーワードファイルにリスト したキーワードを参照します(263 ページのカスタムキーワード ファイルの使用を参照)。 色 選択したエレメントに対する色選択リストを表示します。独自の 色を定義するには、色のリストから[カスタム]を選択します。 Windows の標準の[カラー]ダイアログボックスが表示されます。 スタイル タイプスタイル選択リストを表示します。 IAR Embedded Workbench IDE リファレンス サンプル 選択した項目の現在の設定が表示されます。 背景色 エディタウィンドウに対する背景色選択リストを表示します。 アセンブラおよび C/C++ ソースコードの構文強調表示を制御するキーワード は、それぞれ syntax_icc.cfg と syntax_asm.cfg のファイルに記述されて います。これらのファイルは、config ディレクトリにあります。 [メッセージ]オプション [メッセージ]オプション([ツール]>[オプション]を選択して表示)は、 [ビルドメッセージ]ウィンドウに表示する出力内容の選択に使用します。 図 126: [メッセージ]オプション ビルドメッセージの表示 このドロップダウンメニューを使用して、[ビルドメッセージ]ウィンドウで の出力内容を指定します。以下から選択します。 すべて コンパイラとリンカの情報を含むすべてのメッセージを表示します。 メッセージ メッセージ、ワーニング、エラーを表示します。 ワーニング ワーニングやエラーを表示します。 エラー エラーのみ表示します。 パート 5 リファレンス情報 UEW-9 265 メニュー ファイルのログ このオプションを使用してビルドメッセージをログファイルに書き込みます。 オプションを有効にするには、[ファイルのビルドメッセージログ]オプショ ンを選択します。以下から選択します。 ファイルの末尾に追加 指定したファイルの最後にメッセージを追加します。 古いファイルに上書き 指定したファイルの内容を置換します。 使用するファイル名をテキストボックスに入力します。参照ボタンを使用し て選択することもできます。 すべてのダイアログを有効にする [すべてのダイアログを有効にする]ボタンをクリックすると、無効化されて いるすべてのダイアログボックスが有効になります。 一部のダイアログボックスは、[このダイアログは表示しない]チェックボッ クスを選択することで無効化できます(以下の例を参照)。 図 127: [このダイアログは表示しない]オプションを含む[メッセージ]ダイアログボックス IAR Embedded Workbench IDE 266 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [プロジェクト]オプション [プロジェクト]オプションして([ツール]>[オプション]を選択して表 示)を使用[作成]コマンドと[ビルド]コマンドのオプションを設定し ます。 図 128: [プロジェクト]オプション 以下の選択肢があります。 オプション 説明 ビルド処理の 停止 ビルド処理の停止条件を指定します。 条件 [停止しない]: 停止しません。 [ワーニング]: ワーニングやエラーで停止します。 [エラー]: エラーで停止します。 ビルド前にエディタ[常に保存する]:[作成]/[ビルド]の実行前に常に保存します。 ウィンドウを保存 [保存前に確認する]: 保存前に確認します。 [停止しない]: 保存しません。 ビルド前にワークス[常に保存する]:[作成]/[ビルド]の実行前に常に保存します。 ペースとプロジェク[保存前に確認する]: 保存前に確認します。 [停止しない]: 保存しません。 トを保存 デバッグ前にメイク[常に保存する]: 常に、デバッグ前に[作成]コマンドを実行し を実行 ます。 [保存前に確認する]: 常に、[作成]コマンドの実行前に確認 します。 [停止しない]: デバッグ前に[作成]コマンドを実行しないでく ださい。 表 61: [プロジェクト IDE]オプション パート 5 リファレンス情報 UEW-9 267 メニュー オプション 説明 起動時に最後に開い 次に IAR Embedded Workbench を起動するときに、最後にアク たワークスペースを ティブになっていたワークスペースを自動的にロードするかどう リロード かを指定します。 ビルド処理終了後に ビルド処理の完了時に音を再生します。 サウンドを再生 ブラウズ情報を生成[ソースブラウザ]ウィンドウの使用を有効にします(215 ページ の[ソースブラウザ]ウィンドウを参照)。 表 61: [プロジェクト IDE]オプション(続き) [ソースコード管理]オプション [ソースコード管理]オプション([ツール]>[オプション]を選択して表 示)を使用して、IAR Embedded Workbench プロジェクトと SCC プロジェクト の相互処理を設定します。 図 129: [ソースコード管理]オプション チェックイン時にアイテムをチェックアウト状態に保つ [ファイルのチェックイン]ダイアログボックスの[チェックアウトを維持] オプションのデフォルト設定を指定します(206 ページの[ファイルの チェックイン]ダイアログボックスを参照)。 IAR Embedded Workbench IDE 268 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス ソースコード管理コマンドを実行する前にエディタウィンドウを保存 ソースコード管理コマンドの実行前にエディタウィンドウを保存するかどう かを指定します。以下から選択します。 確認する ソースコード管理コマンドを実行すると、先にエディタウィンドウ を保存するかどうかを確認するメッセージが表示されます。 しない ソースコード管理コマンドの実行前にエディタウィンドウが保存さ れません。 常に保存する ソースコード管理コマンドの実行前にエディタウィンドウが常に保 存されます。 [デバッガ]オプション [デバッガ]オプション([ツール]>[オプション]を選択して表示)は、 デバッガ環境の設定に使用します。 図 130: [デバッガ]オプション 複数の関数インスタンスにソースを分解する場合 一部のソースコード(テンプレートコードなど)は、複数のコードインスタ ンスに対応しています。このようなコードでソース位置を指定する場合 (ソースのブレークポイント設定時など)は、C-SPY ですべてのインスタンス を選択するか、その一部だけを選択するかを指定できます。[すべてのインス タンス]オプションを使用して、C-SPY で最初に確認しないですべてのイン スタンスを処理します。 パート 5 リファレンス情報 UEW-9 269 メニュー [逆アセンブリ]ウィンドウのソースコード色]ウィンドウ [色]ボタンを使用して、[逆アセンブリ]ウィンドウのソースコードの色を 選択します。独自の色を定義するには、色のリストから[カスタム]を選択 します。Windows の標準の[カラー]ダイアログボックスが表示されます。 関数のステップイン このオプションを使用して、[ステップイン]コマンドの動作を制御します。 以下から選択します。 すべての関数 デバッガですべての関数にステップインします。 ソースのみの関数 デバッガは、ソースコードを認識する関数だけにステッ プインします。これにより、ライブラリ関数内のコード のステップ実行や、逆アセンブリモードのデバッグを回 避することができます。 STL コンテナ拡張 コンテナの値を[ウォッチ]ウィンドウなどで展開したときに、[深さ]の値 で、最初に表示されるエレメント数を指定します。展開用の矢印をクリック すると、追加のエレメントが表示されます。 更新間隔 [更新間隔]の設定により、[ライブウォッチ]ウィンドウおよび[メモリ] ウィンドウの更新頻度が指定されます。 これらのオプションは、使用している C-SPY ドライバがアプリケーションの 実行中にターゲットのシステムメモリにアクセス可能な場合にのみ使用でき ます。 デフォルト整数フォーマット このドロップダウンリストは、[ウォッチ]ウィンドウ、[ローカル]ウィン ドウ、および関連ウィンドウのデフォルト整数フォーマットの設定に使用し ます。 IAR Embedded Workbench IDE 270 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [スタック]オプション [スタック]オプション([ツール]>[オプション]または、[メモリ]ウィ ンドウのコンテクストメニューから選択)は、[スタック]ウィンドウに固有 のオプションを設定するときに使用します。 図 131: [スタック]オプション グラフィカルスタック表示とスタック使用トラッキングを有効にする このオプションは、[スタック]ウィンドウ上部のスタックバー表示を有効に する場合に使用します。このオプションを有効にすると、スタックのオーバ フローを検出する機能も有効になります。スタックバーの詳細やスタック バーが示す内容については、316 ページのグラフィカルスタックバーを参照 してください。 スタック使用しきい値 このテキストフィールドを使用して、C-SPY がスタックオーバフローワーニ ングを表示するスタック使用率を指定します。 パート 5 リファレンス情報 UEW-9 271 メニュー スタックしきい値の超過時にワーニング このオプションを使用して、スタック使用量が[% スタック使用しきい値] オプションに指定したしきい値を超えた場合に、C-SPY からワーニングを発 生します。 スタックポインタが境界外の時にワーニング このオプションを使用して、スタップポインタがスタックメモリ範囲外を指 したときに、C-SPY からワーニングを発生します。 プログラムが以下に達するまでスタックポインタが無効 このオプションは、アプリケーションコード中でスタックの表示と検証を行 う位置を指定するときに使用します。[スタック]ウィンドウでは、実行がこ の位置に到達するまでは、スタック使用率情報が表示されません。デフォル トでは、main 関数に到達するまではスタック使用率が表示されません。main 関数がないアプリケーション(たとえば、アセンブラのみのプロジェクト) の場合、独自の開始ラベルを指定する必要があります。このオプションを使 用すると、C-SPY は、毎回のリセット後、指定された位置のブレークポイン トに到達するまでこのブレークポイントを保持します。 通常は、スタックポインタはシステム初期化コード cstartup に設定します が、最初の命令からスタック使用率をトレースする必要はありません。この オプションを使用することで、アプリケーションのこの部分について誤った ワーニングや誤解を招くスタック表示を回避できます。 ワーニング 以下のいずれかのオプションを使用して、ワーニングの表示を選択できます。 ログ [デバッグログ]ウィンドウにワーニングを表示します ログとアラート [デバッグログ]ウィンドウ、ワーニングダイアログボックス にワーニングを表示します。 スタック表示の制限 このオプションは、[スタック]ウィンドウで表示されるメモリ容量を、ス タックポインタからのバイト数で指定します。このオプションは、スタック が大きい場合や、スタックの最初の部分の表示だけが必要な場合に便利で す。このオプションを使用すると、特にターゲットシステムからのメモリ リード速度が遅い場合に、[スタック]ウィンドウの表示速度を向上するこ とができます。デフォルトでは、[スタック]ウィンドウにはスタック全体、 つまりスタックポインタからスタックの最後までが表示されます。デバッガ IAR Embedded Workbench IDE 272 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス がスタックのメモリ範囲を特定できない場合は、このオプションを選択して いない場合でも、表示されるバイト範囲が制限されます。 注 :[スタック]ウィンドウは、アプリケーションの実行速度には影響しませ んが、実行停止時に表示される情報を更新するために、大量のデータをリー ドする場合があります。 [レジスタフィルタ]オプション [レジスタフィルタ]オプション(デバッガの実行中に[ツール]>[オプ ション]を選択して表示)は、[レジスタ]ウィンドウでユーザ定義グループ 別にレジスタを表示するときに使用します。レジスタグループの詳細につい ては、「138 ページのレジスタグループ」を参照してください。 図 132: [レジスタフィルタ]のオプション 以下のオプションを選択できます。 オプション 説明 レジスタフィルタの レジスタフィルタの使用を有効にします。 使用 フィルタファイル フィルタファイルの選択や新規作成を行うダイアログボックスを 表示します。 グループ レジスタフィルタファイルで定義されているグループを表示しま す。また、新しいレジスタグループを表示します。 新規グループ 新しいレジスタグループの名前を設定します。 表 62: [レジスタフィルタ]のオプション パート 5 リファレンス情報 UEW-9 273 メニュー オプション 説明 グループメンバ レジスタのスクロールバーウィンドウで選択したレジスタを表示 します。 基数 デフォルトの整数表記を変更します。 表 62: [レジスタフィルタ]のオプション(続き) [ターミナル I/O]オプション [ターミナル I/O]オプション(デバッガの実行中に >[ツール][オプショ ン]を選択して表示)は、C-SPY のターミナル I/O 機能を設定するときに使 用します。 図 133: [ターミナル I/O]オプション キーボード [キーボード]オプションを使用して、キーボードから入力文字を読み取りま す。以下から選択します。 IAR Embedded Workbench IDE 274 ユーザガイド UEW-9 バッファに格納 入力文字はバッファに格納されます。 ダイレクト 入力文字はバッファに格納されません。 IAR Embedded Workbench IDE リファレンス ファイル [ファイル]オプションを使用して、ファイルから入力文字を読み取ります。 参照ボタンを使用してファイルを選択することもできます。以下から選択し ます。 テキスト 入力文字をテキストファイルから読み取ります。 バイナリ 入力文字をバイナリファイルから読み取ります。 入力エコー ログファイルか C-SPY の[ターミナル I/O]ウィンドウで、入力文字をエ コーすることができます。ファイルの入力をエコーするには、実行前に[デ バッグ]>[ログ]>[ログファイルを有効にする]オプションを有効にして おく必要があります。 [ターミナル I/O]ウィンドウでターゲットリセットを表示 ターゲットのリセット時に、C-SPY の[ターミナル I/O]ウィンドウでメッ セージを表示します。 パート 5 リファレンス情報 UEW-9 275 メニュー [構成ツール]ダイアログボックス [ツールの設定]ダイアログボックス([ツール]から表示)では、[ツール] メニューに追加するユーザ定義ツールを指定できます。 図 134: [ツールの設定]ダイアログボックス 注 : 標準ビルドツールチェーンに外部ツールを追加する場合は、「80 ページの ツールチェーンの拡張」を参照してください。 以下の選択肢があります。 オプション 説明 メニュー内容 使用可能なすべてのユーザ定義メニューコマンドを表示します。 メニューテキスト メニューコマンドのテキストを指定します。& という記号を追加 すると、その後の文字(この例では N)がこのコマンドのニーモ ニックキーとして表示されます。このフィールドに入力したテキ ストは、 [メニュー内容]フィールドに反映されます。 コマンド メニューから選択したときに実行されるコマンドおよびそのパス を指定します。参照ボタンを使用して選択することもできます。 引数 コマンドの引数を入力します(省略可能)。 初期ディレクトリ ツールの初期作業ディレクトリを指定します。 表 63: [ツールの設定]ダイアログボックスのオプション IAR Embedded Workbench IDE 276 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス オプション 説明 出力ウィンドウにリ ツールから[メッセージ]ウィンドウの[ツール 出力]ページへ ダイレクト のコンソール出力を指定します。このオプションを指定して起動 したツールは、キーボードなどによるユーザ入力を受け付けるこ とはできません。 入力が必要なツールや、実行するコンソールに特別な条件がある ツールは、このオプションを指定すると動作しません。 コマンドラインのプ コマンドを[ツール]メニューから選択したときに、コマンドラ ロンプト イン引数の指定を指示するプロンプトを表示します。 使用可能なツール ツールが使用可能なコンテキスト(デバッグ時 / 非デバッグ時の み)を指定します。 表 63: [ツールの設定]ダイアログボックスのオプション(続き) 注 : 引数で変数を使用することによって、コマンドラインのレビジョン管理 システムとのインタフェースや、選択したファイルに対して外部ツールを実 行するなどの便利なツールを設定できます。 [ツール]メニューからコマンドを削除するには、このリストで目的のコマン ドを選択し、[削除]をクリックします。 [OK] をクリックすると、[ツール]メニューの変更が適用されます。 指定したメニュー項目が、[ツール]メニューに表示されます。 図 135: カスタマイズした[ツール]メニュー コマンドラインのコマンドまたはバッチファイルの指定 コマンドラインのコマンドやバッチファイルは、コマンドシェルから実行 する必要があります。これらを[ツール]メニューに追加する際の適切な コマンドシェルを[コマンド]テキストボックスに指定することができま す。コマンドとして入力できるコマンドシェルを以下に示します。 コマンドシェル システム cmd.exe Windows XP/Vista/7 表 64: コマンドシェル この例については、61 ページのコマンドラインコマンドの追加を参照してく ださい。 パート 5 リファレンス情報 UEW-9 277 メニュー [ファイル名拡張子]ダイアログボックス [ファイル名の拡張子]ダイアログボックス([ツール]メニューから表示) では、ビルドツールで処理するファイル名の拡張子をカスタマイズすること ができます。これは、ファイル名の拡張子が異なるソースファイルが多数あ る場合に便利です。 別のマイクロプロセッサ用の IAR Embedded Workbench をホストコンピュータ にインストールしている場合は、そのツールチェーンが[ツールチェーン] ボックスに表示される場合があります。その場合は、カスタマイズするツー ルチェーンを選択する必要があります。 図 136: [ファイル名の拡張子]ダイアログボックス * 記号は、ユーザ定義のオーバライドを示します。* 記号がない場合は、出荷 時設定が使用されます。 [編集]をクリックすると、[ファイル名拡張子のオーバライド]ダイアログ ボックスが表示されます。 IAR Embedded Workbench IDE 278 ユーザガイド UEW-9 IAR Embedded Workbench IDE リファレンス [ファイル名拡張子のオーバライド]ダイアログボックス [ファイル名拡張子のオーバライド]ダイアログボックス([ファイル名の拡 張子]ダイアログボックスで[編集]をクリックして表示)には、ビルド チェーンで使用可能なツール、ファイル名の拡張子の出荷時設定、定義され ているオーバライドが表示されます。 図 137: [ファイル名拡張子のオーバライド]ダイアログボックス ファイル名の拡張子を追加定義するツールを選択し、[編集]をクリックして [ファイル名拡張子の編集]ダイアログボックスを表示します。 [ファイル名拡張子の編集]ダイアログボックス [ファイル名拡張子の編集]ダイアログボックス([ファイル名拡張子のオー バライド]ダイアログボックスで[編集]をクリックして表示)には、デ フォルトで認識されるファイル名の拡張子リストが表示され、新しい拡張子 を定義できます。 図 138: [ファイル名拡張子の編集]ダイアログボックス [オーバライド]をクリックし、追加する拡張子を入力します。拡張子が複数 の場合はコンマかセミコロンで区切ります。また、最初のピリオドも含めて 入力する必要があります。 パート 5 リファレンス情報 UEW-9 279 メニュー [ビューアの構成]ダイアログボックス [ビューアの設定]ダイアログボックス([ツール]メニューから表示)には、 IAR Embedded Workbench が処理できるドキュメントフォーマットのファイル 名拡張子リストとともに、そのドキュメントタイプを開くのに使用される ビューアアプリケーションが表示されます。[アクション]列に[デフォルト エクスプローラ]と表示されている場合は、そのドキュメントタイプを開く 際に、Windows エクスプローラで指定したファイルタイプに関連付けられて いるデフォルトのアプリケーションが使用されます。 図 139: [ビューアの構成]ダイアログボックス 新しいドキュメントタイプを開く方法を指定する、または既存のドキュメン トタイプの設定を変更するには、[新規作成]か[編集]をクリックし、 [ビューア拡張子の編集]ダイアログボックスを表示します。 [ビューア拡張子の編集]ダイアログボックス ドキュメントタイプのファイル名拡張子にピリオド (.) を含めて、 [ファイル 名の拡張子]ボックスに入力します。 図 140: [ビューア拡張子の編集]ダイアログボックス 次に、[アクション]で以下のいずれかを選択します。 ● IAR Embedded Workbench IDE 280 ユーザガイド UEW-9 [内蔵テキストエディタ]指定したタイプのドキュメントを、IAR Embedded Workbench のテキストエディタで開きます。 IAR Embedded Workbench IDE リファレンス ● [ファイルエクスプローラの関連付けを使用]指定したタイプのドキュメ ントを、Windows エクスプローラで関連付けられたデフォルトのアプリ ケーションを使用して開きます。 ● [コマンドライン]ビューアアプリケーションを選択するか、ファイルの パスを入力し、必要なコマンドラインオプションを指定します。 [ウィンドウ]メニュー [ウィンドウ]メニューのコマンドを使用して、IDE のウィンドウを操作し、 画面上での配置を変更できます。 [ウィンドウ]メニューの最後のセクションには、画面で開かれているウィン ドウのリストが表示されます。リストからウィンドウを選択すると、その ウィンドウに切り替ります。 図 141: [ウィンドウ]メニュー [ウィンドウ]メニューから実行できるコマンドは以下のとおりです。 メニューコマンド 説明 タブを閉じる アクティブなタブを閉じます。 ウィンドウを閉じる CTRL+F4 アクティブなエディタウィンドウを閉じます。 分割 ウィンドウを縦または横方向に 2 つか 4 つに分割し、 同一ファイルの異なる部分を同時に表示します。 新規エディタウィン ドウを縦に並べる 新しい空白ウィンドウを、現在のエディタウィンド ウの横に表示します。 新規エディタウィン ドウを横に並べる 新しい空白ウィンドウを、現在のエディタウィンド ウの下に表示します。 次のウィンドウへタ ブを移動 現在のウィンドウのすべてのタブを次のウィンドウ に移動します。 前のウィンドウへタ ブを移動 現在のウィンドウのすべてのタブを前のウィンドウ に移動します。 表 65: [ウィンドウ]メニューのコマンド パート 5 リファレンス情報 UEW-9 281 メニュー メニューコマンド 説明 すべてのアクティブ でないタブを閉じる アクティブなタブ以外のすべてのタブを閉じます。 すべてのエディタタ ブを閉じる エディタウィンドウで表示されているすべてのタブ を閉じます。 表 65: [ウィンドウ]メニューのコマンド(続き) [ヘルプ]メニュー [ヘルプ]メニューには、IAR Embedded Workbench IDE に関するヘルプと、 ユーザインタフェースおよび IAR Embedded IDE のバージョン番号が表示され ます。 インフォメーションセンタには[ヘルプ]メニューからもアクセスできます。 インフォメーションセンタは、チュートリアルやプロジェクトのサンプル、 ユーザガイド、サポート情報、リリースノートなど、プロジェクト開発の開 始時や作業中に必要な情報リソースに簡単にアクセス可能にするナビゲー ションシステムです。また、IAR Systems の Web サイトで役に立つセクショ ンへのショートカットも提供します。 IAR Embedded Workbench IDE 282 ユーザガイド UEW-9 C-SPY リファレンス この章では、IAR C-SPY® デバッガ専用のウィンドウ、メニュー、メ ニューコマンド、および対応するコンポーネントのリファレンス情報 を提供します。この章は以下の内容で構成されています。 ● 283 ページの C-SPY のウィンドウ ● 320 ページの C-SPY メニュー C-SPY のウィンドウ 以下の C-SPY 専用ウィンドウがあります。 ● C-SPY デバッガメインウィンドウ ● [逆アセンブリ]ウィンドウ ● [メモリ]ウィンドウ ● [シンボルメモリ]ウィンドウ ● [レジスタ]ウィンドウ ● [ウォッチ]ウィンドウ ● [ロケール]ウィンドウ ● [静的]ウィンドウ ● [自動]ウィンドウ ● [ライブウォッチ]ウィンドウ ● [クイック ウォッチ]ウィンドウ ● [呼出 しスタック]ウィンドウ ● [ターミナル I/O]ウィンドウ ● [コードカバレッジ]ウィンドウ ● [プロファイリング]ウィンドウ ● [イメージ]ウィンドウ ● [スタック]ウィンドウ ● [シンボル]ウィンドウ 使用する C-SPY ドライバに応じて、他のウィンドウも使用可能です。各ドラ イバの情報については、そのドライバのドキュメントを参照してください。 パート 5 リファレンス情報 UEW-9 283 C-SPY のウィンドウ C-SPY のウィンドウでの編集 [メモリ]、[シンボルメモリ]、[レジスタ]、[自動]、[ウォッチ]、[ロケー ル]、[静的]、[ライブウォッチ]、[クイックウォッチ]の各ウィンドウの内 容を編集することができます。 これらのウィンドウ内容の編集には、以下のキー操作を使用します。 キー 説明 Enter 項目を編集可能にします。また、新しい値を保存します。 Esc 新しい値を取り消します。 表 66: C-SPY ウィンドウでの編集 [式]フィールドが編集可能なウィンドウでは、整数の後にセミコロンを追加 すると表示されるエレメントの数を指定することができます。たとえば、 myArray という配列の最初の 3 つのエレメントのみ、またはポインタによっ て示されるエレメントから続いて 3 つのエレメントを表示するには、次のよ うに記述します。 myArray;3 または、最初のエレメントを指定するコンマと整数を 1 つずつ追加します。 たとえば、10 から 14 のエレメントを表示するには、次のように記述します。 myArray;5.10 C-SPY デバッガメインウィンドウ C-SPY デバッガを起動すると、IAR Embedded Workbench IDE のメインウィン ドウに、以下のデバッガ専用項目が表示されます。 ● アプリケーションの実行、デバッグ用コマンドが含まれるデバッグ専用メ ニュー ● 使用する C-SPY ドライバに応じたドライバ専用メニュー。通常は、このメ ニューには、ドライバ専用のウィンドウやダイアログボックスを表示する ためのメニューコマンドが表示されます。詳細については、ドライバのド キュメントを参照してください ● デバッグ用ツールバー ● C-SPY 専用のウィンドウ、ダイアログボックス 使用するコンポーネントによって、ウィンドウの表示が異なる場合があり ます。 以下では、ウィンドウ内の各項目の詳細を説明します。 IAR Embedded Workbench IDE 284 ユーザガイド UEW-9 C-SPY リファレンス メニューバー 開発環境で使用可能なメニューに加えて、C-SPY の実行中は[デバッグ]メ ニューが使用可能になります。[デバッグ]メニューには、ソースアプリケー ションの実行 / デバッグ用コマンドが表示されます。ほとんどのコマンドは、 デバッグツールバーのアイコンボタンからも実行できます。 インストールしたデバッガドライバに依存して、追加メニューを使用できま す。詳細については、ドライバ関連ドキュメントを参照してください。 デバッグツールバー デバッグツールバーには、[デバッグ]メニューで最もよく使用するコマンド 用のボタンが表示されます。 マウスポインタでボタンをポイントすると、そのボタンの説明が表示されま す。コマンドが使用できない場合、対応するツールバーボタンは灰色表示さ れ、選択できません。 下図に、各ボタンに対応するコマンドを示します。 ブレーク リセット ステップイン ステップ 次の実行文が設 定されました ステップアウト Go カーソル位置 デバッグの まで実行 停止 図 142: C-SPY のデバッグツールバー パート 5 リファレンス情報 UEW-9 285 C-SPY のウィンドウ [逆アセンブリ]ウィンドウ C-SPY の[逆アセンブリ]ウィンドウ( [表示]メニューから表示)には、デ バッグ中のアプリケーションを逆アセンブルしたアプリケーションコードが 表示されます。 ゾーン表示 逆アセンブリモー ドの切替え [移動]メモ リアドレス コードカバ レッジ情報 現在の位置 ブレークポ イント 図 143: C-SPY の[逆アセンブリ]ウィンドウ ツールバー ウィンドウ上部のツールバーに以下のツールバーボタンが表示されます。 ツールバーのボタン 説明 移動 表示するロケーションを指定できます。それには、メモリアドレ ス、または変数、機能、ラベルの名前を指定できます。 ゾーン表示 表示可能なメモリゾーンのリストを示します。ゾーンの詳細につ いては、セクション「135 ページのメモリアドレッシング」を参 照してください。 混在モードのトグル 逆アセンブリしたコードだけを表示するか、対応するソースコー ドも併せて表示するかを選択します。ソースコードを表示するに は、デバッグ情報付きでソースファイルをコンパイルしておく必 要があります。 表 67: [逆アセンブリ]ウィンドウツールバー IAR Embedded Workbench IDE 286 ユーザガイド UEW-9 C-SPY リファレンス 表示エリア 現在の位置(緑色で強調表示)は、次に実行されるアセンブラ命令を示しま す。[Disassembly] ウィンドウの任意の行をクリックすると、その行にカーソ ルが移動します。また、移動キーを使用してカーソルを移動することもでき ます。ウィンドウ左側の灰色で表示された余白部分をダブルクリックして、 赤色で示されたブレークポイントを設定します。実行済みのコード(コード カバレッジ)は、緑色のひし形で示されます。 命令プロファイリングが有効化(コンテキストメニューで設定)されている 場合、それぞれの命令が実行された回数に関する情報を表示する列が左側の 余白部に追加されます。 [逆アセンブリ]ウィンドウでのデフォルトのソースコード色を変更するに は、[ツール]>[オプション]>[デバッガ]を選択します。デフォルトの色 を設定するには、[[逆アセンブリ]ウィンドウのソースコード色]オプショ ンを使用します。 関数に対応するアセンブラコードを表示するには、エディタウィンドウでそ の関数を選択し、[逆アセンブリ]ウィンドウにドラッグします。 [逆アセンブリ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[逆アセンブリ]ウィンドウで使用可能です。 図 144: [逆アセンブリ]ウィンドウのコンテキストメニュー 注 : このメニューの内容は動的であるため、この図以外のコマンドが表示さ れる場合があります。すべての使用可能なコマンドについては、表 68「[逆 アセンブリ]ウィンドウのコンテキストメニューのコマンド」で説明してい ます。 パート 5 リファレンス情報 UEW-9 287 C-SPY のウィンドウ メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 PC へ移動 現在のプログラムカウンタ位置のコードを表示します。 カーソルまで実行 現在の位置からカーソルを含む行まで、アプリケーションを実行し ます。 コードカバレッジ コードカバレッジ制御用コマンドのサブメニューを表示します。 このコマンドは、使用しているドライバがサポートする場合のみ 使用できます。 [有効化]は、コードカバレッジの有効 / 無効を切り替えます。 [表示]は、コードカバレッジの表示を切り替えます。実行される コードは、緑色のひし形で示されます。 [クリア]は、すべてのコードカバレッジ情報を消去します。 命令プロファイリ 命令プロファイリング制御用コマンドのサブメニューを表示しま ング す。このコマンドは、使用しているドライバがサポートする場合の み使用できます。 [有効化]は、命令プロファイリングの有効 / 無効を切り替えます。 [表示]は、命令プロファイリングの表示を切り替えます。それぞ れの命令ごとに、命令の実行回数が左側の余白部に表示されます。 [クリア]は、すべての命令プロファイリング情報を消去します。 ブレークポイント コードブレークポイントを設定 / 解除します。コードブレークポイ の切替え(コード)ントが設定されたアセンブラ命令は赤色で強調表示されます。コー ドブレークポイントについては、219 ページの[コード]ブレーク ポイントダイアログボックスを参照してください。 ブレークポイント ログでトレースを出力するためのブレークポイントを設定 / 解除 の切替え(ログ) します。ログブレークポイントが設定されたアセンブラ命令は赤 色で強調表示されます。ログブレークポイントについては、 221 ページの[ログ]ブレークポイントダイアログボックスを参 照してください。 ブレークポイント トレース開始ブレークポイントを切替えます。ブレークポイントが の切替え(トレー トリガされると、トレースシステムが起動します。トレース開始ブ レークポイントについては、『164 ページの[トレース開始ブレー ス開始) クポイント]ダイアログボックス』を参照してください。このメ ニューコマンドは、使用している C-SPY ドライバでトレースシステ ムがサポートされている場合にのみ使用できます。 表 68: [逆アセンブリ]ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench IDE 288 ユーザガイド UEW-9 C-SPY リファレンス メニューコマンド 説明 ブレークポイント トレース停止ブレークポイントを切替えます。ブレークポイントが の切替え(トレー トリガされると、トレースシステムが停止します。トレース停止ブ ス停止) レークポイントについては、『165 ページの[トレース停止]ブ レークポイントダイアログボックス』を参照してください。このメ ニューコマンドは、使用している C-SPY ドライバでトレースシステ ムがサポートされている場合にのみ使用できます。 ブレークポイント ブレークポイントを有効 / 無効にします。 の有効化 / 無効化 ブレークポイント [ブレークポイントの編集]ダイアログボックスを表示します。この の編集 ダイアログボックスを使用して、現在選択しているブレークポイン トの編集ができます。複数のブレークポイントが選択行にある場合、 使用可能なすべてのブレークポイントの一覧を示すサブメニューが その行に表示されます。 次の文の設定 プログラムカウンタを挿入ポイントの位置に設定します。 ウィンドウ内容の [逆アセンブリ]ウィンドウで選択した内容をクリップボードにコ コピー ピーします。 混在モード 逆アセンブリしたコードだけを表示するか、対応するソースコード も併せて表示するかを選択します。ソースコードを表示するには、 デバッグ情報付きでソースファイルをコンパイルしておく必要があ ります。 表 68: [逆アセンブリ]ウィンドウのコンテキストメニューのコマンド(続き) パート 5 リファレンス情報 UEW-9 289 C-SPY のウィンドウ [シンボルの曖昧さの解決]ダイアログボックス [シンボルの曖昧さの解決]ダイアログボックスは、たとえば[逆アセンブ リ]ウィンドウで移動先のシンボルを指定して、テンプレートや関数のオー バロードのために同じシンボルが複数ある場合などに表示されます。 図 145: [シンボルの曖昧さの解決]ダイアログボックス 曖昧なシンボル 曖昧なシンボルを指定します。 シンボルを 1 つ選択してください 曖昧なシンボルに一致する項目の一覧。使用するものを 1 つ選択します。 IAR Embedded Workbench IDE 290 ユーザガイド UEW-9 C-SPY リファレンス [メモリ]ウィンドウ [メモリ]ウィンドウ([表示]メニューから表示)では、指定されたメモリ エリアの最新状態の表示や編集を行うことができます。このウィンドウは複 数表示でき、メモリやレジスタの複数のゾーンをトレースする場合や、メモ リのさまざまな部分をモニタする場合に非常に便利です。 メモリの内容 指定可能なゾーン コンテキストメニューボタン 位置間の移動 メモリアドレス データカバレッジ ASCII フォーマットのメモリ内 図 146: [メモリ]ウィンドウ ツールバー ウィンドウ上部のツールバーに以下のコマンドが表示されます。 項目 説明 移動 表示するロケーションを指定できます。それには、メモリアドレ ス、または変数、機能、ラベルの名前を指定できます。 ゾーン表示 表示可能なメモリゾーンのリストを示します。ゾーンの詳細につい ては、135 ページのメモリアドレッシングを参照してください。 コンテキストメ ニューボタン コンテキストメニューを表示するには、 「293 ページの[メモリ] ウィンドウのコンテキストメニュー」を参照してください。 表 69: [メモリ]ウィンドウでの操作 パート 5 リファレンス情報 UEW-9 291 C-SPY のウィンドウ 項目 説明 今すぐ更新 アプリケーションの実行中に[メモリ]ウィンドウの内容を更新し ます。このボタンは、使用している C-SPY ドライバがアプリケー ションの実行中にターゲットのシステムメモリにアクセス可能な場 合のみ有効化されます。 ライブ更新 アプリケーションの実行中に[メモリ]ウィンドウの内容を定期的 に更新します。このボタンは、使用している C-SPY ドライバがアプ リケーションの実行中にターゲットのシステムメモリにアクセス可 能な場合のみ有効化されます。更新頻度を設定するには、[IDE オ プション]>[デバッガ]ダイアログボックスに適切な頻度を指定 します。 表 69: [メモリ]ウィンドウでの操作(続き) 表示エリア 表示エリアに、現在表示しているアドレス、選択したフォーマットのメモリ 内容、ASCII フォーマットのメモリ内容が表示されます。[メモリ]ウィンド ウの内容は、16 進表示と ASCII 表示のどちらの部分でも編集できます。 データカバレッジは、以下の色で表示されます。 ● 黄色は、データのリードが実行されたことを示します。 ● 青色は、データのライトが実行されたことを示します。 ● 緑色は、データのリードとライトの両方が実行されたことを示します。 注 : 一部の C-SPY ドライバは、データカバレッジをサポートしていません。 C-SPY シミュレータは、データカバレッジをサポートしています。 変数に対応するメモリを表示するには、エディタウィンドウでその変数を選 択し、[メモリ]ウィンドウにドラッグします。 IAR Embedded Workbench IDE 292 ユーザガイド UEW-9 C-SPY リファレンス [メモリ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[メモリ]ウィンドウで使用できます。 図 147: [メモリ]ウィンドウのコンテキストメニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 コピー、貼り付け 標準の編集コマンド ゾーン 表示可能なメモリゾーンのリストを示します。ゾーンの詳細に ついては、135 ページのメモリアドレッシングを参照してくだ さい。 x1 Units、x2 Units、 メモリ内容の表示単位を 8 ビット、16 ビット、32 ビットに切り x4 Units 替えます。 リトルエンディアン メモリ内容の表示をビッグエンディアンかリトルエンディアンに ビッグエンディアン 切り替えます。 データカバレッジ 以下から選択します。 [有効化]は、データカバレッジの有効 / 無効を切り替えます。 [表示]は、データカバレッジの表示 / 非表示を切り替えます。 [クリア]は、すべてのデータカバレッジ情報を消去します。 検索 [メモリ]ウィンドウでテキストを検索するための[検索]ダイ アログボックスを表示します(234 ページの[検索]ダイアログ ボックスを参照)。 表 70: [メモリ]ウィンドウのコンテキストメニューのコマンド パート 5 リファレンス情報 UEW-9 293 C-SPY のウィンドウ メニューコマンド 説明 置換 指定した文字列を検索し、一致箇所を別の文字列に置換するため のダイアログボックスを表示します(235 ページの[置換]ダイ アログボックスを参照)。 メモリフィル [フィル]ダイアログボックスを表示します。このダイアログ ボックスを使用して、指定エリアに値を設定できます(294 ペー ジの[フィル]ダイアログボックスを参照)。 メモリ保存 : [メモリ保存]ダイアログボックスを表示します。このダイアロ グボックスを使用して、指定したメモリエリアの内容をファイル に保存できます(295 ページの[メモリ保存]ダイアログボック スを参照)。 メモリ復元 [メモリ復元]ダイアログボックスを表示します。このダイアロ グボックスを使用して、Intel-hex や Motorola S-record フォーマッ トのファイルの内容を指定したメモリゾーンにロードできます (296 ページの[メモリ復元]ダイアログボックスを参照) 。 データブレークポイ [メモリ]ウィンドウでブレークポイントを直接設定します。ブ ントの設定 レークポイントが強調表示されていない場合は、[ブレークポイ ント]ダイアログボックスでブレークポイントを表示、編集、削 除することができます。このウィンドウで設定したブレークポイ ントは、リードとライトの両方のアクセスでトリガされます。 表 70: [メモリ]ウィンドウのコンテキストメニューのコマンド(続き) [フィル]ダイアログボックス [フィル]ダイアログボックス([メモリ]ウィンドウのコンテキストメ ニューから表示)を使用して、指定したメモリ領域に値を入力できます。 図 148: [フィル]ダイアログボックス IAR Embedded Workbench IDE 294 ユーザガイド UEW-9 C-SPY リファレンス オプション オプション 説明 開始アドレス 2 進数、8 進数、10 進数、16 進数のいずれかの表記法で開始アド レスを入力します。 長さ 2 進数、8 進数、10 進数、16 進数のいずれかの表記法でデータ長 を入力します。 ゾーン メモリゾーンを選択します。 値 各メモリアドレス(ロケーション)に設定する 8 ビット値を入力 します。 表 71: [フィル]ダイアログボックスのオプション 以下のメモリ操作を使用できます。 操作 説明 コピー [値]に入力した値が、指定したメモリエリアにコピーされます。 :AND: [AND] を指定すると、 [値]の値とメモリの既存値の論理積がメ モリに書き込まれます。 XOR [XOR] を指定すると、 [値]の値とメモリの既存値の排他的論理 和がメモリに書き込まれます。 :OR: [OR] を指定すると、[値]の値とメモリの既存値の論理和がメ モリに書き込まれます。 表 72: メモリ操作 [メモリ保存]ダイアログボックス [メモリ保存]ダイアログボックス([デバッグ]>[メモリ]>[保存]を選 択するか、[メモリ]ウィンドウのコンテキストメニューから選択)は、指定 したメモリエリアの内容をファイルに保存するときに使用します。 図 149: [メモリ保存]ダイアログボックス パート 5 リファレンス情報 UEW-9 295 C-SPY のウィンドウ ゾーン 使用可能なメモリゾーン。 開始アドレス 保存するメモリ範囲の開始アドレス。 停止アドレス 保存するメモリ範囲の停止アドレス。 ファイルフォーマット 使用するファイルフォーマット。デフォルトでは Intel-extended です。 ファイル名 使用する対象ファイル。参照ボタンを使用して選択すると便利です。 保存 選択したメモリゾーン範囲を指定ファイルに保存します。 [メモリ復元]ダイアログボックス [メモリ復元]ダイアログボックス([デバッグ]>[メモリ]>[保存]を選 択するか、[メモリ]ウィンドウのコンテキストメニューから選択)は、 Intel-extended または Motorola S-record フォーマットのファイルの内容を指定 したメモリゾーンにロードするときに使用します。 図 150: [メモリ復元]ダイアログボックス ゾーン 使用可能なメモリゾーン。 ファイル名 リード対象ファイル。参照ボタンを使用して選択すると便利です。 IAR Embedded Workbench IDE 296 ユーザガイド UEW-9 C-SPY リファレンス 元に戻す 指定ファイルの内容を選択したメモリゾーンにロードします。 [シンボルメモリ]ウィンドウ [シンボルメモリ]ウィンドウ(デバッガの実行中に[表示]メニューから選 択)には、静的記憶寿命変数(通常はファイルスコープ付き変数、および関 数とクラスの静的変数)がメモリ内でどのように配置されるかが表示されま す。この機能は、アラインメントの穴の検出や上書きしたバッファに起因す る問題の理解に役立ちます。 図 151: [シンボルメモリ]ウィンドウ ツールバー ウィンドウ上部のツールバーに以下のツールバーボタンが表示されます。 項目 説明 移動 表示するメモリアドレス(ロケーション)またはシンボルを指定 できます。 ゾーン表示 表示可能なメモリゾーンのリストを示します。ゾーンの詳細につ いては、「135 ページのメモリアドレッシング」を参照してくださ い。 前へ 前のシンボルへジャンプします。 次へ 次のシンボルへジャンプします。 表 73: [シンボルメモリ]ウィンドウツールバー パート 5 リファレンス情報 UEW-9 297 C-SPY のウィンドウ 表示エリア 表示エリアにはメモリ空間が表示され、情報が以下の列に表示されます。 列 説明 位置 メモリアドレス。 データ 16 進フォーマットのメモリ内容。データはシンボルサイズに従っ てグループ化されます。この列は編集できます。 変数 変数名。変数には固定されたメモリ位置が必要です。ローカル変 数は表示されません。 値 変数の値。この列は編集できます。 型 変数のタイプ。 表 74: [シンボルメモリ]ウィンドウの列 いくつかの方法でメモリ空間内を移動できます。 ● ウィンドウでドロップされるテキストがシンボルと解釈されます。 ● ウィンドウ右側のスクロールバー ● ツールバーボタン[次へ]と[前のエラー] ● ツールバーリストボックス[移動]は、特定の場所やシンボルの検出に使 用できます。 注 : 対応する値を変更すると行に赤色のマークが付けられます。 [シンボルメモリ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[シンボルメモリ]ウィンドウで使用でき ます。 図 152: [シンボルメモリ]ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは以下のとおりです。 メニューコマンド 説明 次のシンボル 次のシンボルへジャンプします。 前のシンボル 前のシンボルへジャンプします。 表 75: [シンボルメモリ]ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench IDE 298 ユーザガイド UEW-9 C-SPY リファレンス メニューコマンド 説明 x1 Units、x2 Units、 x4 Units メモリ内容の表示単位を 8 ビット、16 ビット、32 ビットに切 り替えます。これは変数を含まない行にのみ適用します。 [ウォッチ]ウィンドウ に追加 選択したシンボルを[ウォッチ]ウィンドウに追加します。 表 75: [シンボルメモリ]ウィンドウのコンテキストメニューのコマンド(続き) [レジスタ]ウィンドウ [レジスタ]ウィンドウ([表示]メニューから表示)では、プロセッサレジ スタの最新状態の表示と編集を行うことができます。値が変化すると、その 値が強調表示されます。一部のレジスタは展開可能です。つまり、関連する ビットやビットのサブグループが含まれています。 このウィンドウは複数表示でき、複数のレジスタグループをトレースするの に非常に便利です。 図 153: [レジスタ]ウィンドウ [レジスタ]ウィンドウで表示するレジスタグループをドロップダウンリス トから選択できます。アプリケーション固有のレジスタグループを定義する には、138 ページのアプリケーション固有のグループの定義を参照してくだ さい。 [ウォッチ]ウィンドウ [ウォッチ]ウィンドウ([表示]メニューから選択)では、C-SPY の式や変 数の値をモニタすることができます。[ウォッチ]ウィンドウでは、式の表 パート 5 リファレンス情報 UEW-9 299 C-SPY のウィンドウ 示、追加、修正、削除が可能です。配列、構造体、共用体は展開可能です。 つまり、各エレメントの値をモニタすることができます。 図 154: [ウォッチ]ウィンドウ C-SPY での実行が停止するごとに、その前に停止して以降に変化した値が強 調表示されます。実際には、メモリが変化するごとに、赤色で強調表示され た値の更新も含め、[ウォッチ]ウィンドウの値が再計算されます。 [ウォッチ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[ウォッチ]ウィンドウで使用できます。 図 155: [ウォッチ]ウィンドウのコンテキストメニュー このメニューに表示されるコマンドは以下のとおりです。 メニューコマンド 説明 追加 / 削除 選択した式を追加 / 削除します。 表 76: [ウォッチ]ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench IDE 300 ユーザガイド UEW-9 C-SPY リファレンス メニューコマンド 説明 デフォルトフォー マット、 2 進フォーマット、 8 進フォーマット、 10 進フォーマット、 16 進フォーマット、 文字フォーマット 式の表示フォーマットを変更します。表示フォーマット設定は、 式の種類によって適用対象が異なります。表 77「式の種類によ る表示フォーマット設定の影響」を参照してください。表示 フォーマットの選択は、デバッグセッションの終了後も保持さ れます。 表示フォーマット 変数のデフォルトの型解釈を変更するコマンドをサブメニュー で表示します。このサブメニューのコマンドは、デフォルトで 整数として表示されるアセンブラの変数(アセンブララベルで のデータ)に主に使用します。詳細については、122 ページのア センブラ変数の表示を参照してください。 表 76: [ウォッチ]ウィンドウのコンテキストメニューのコマンド (続き) 表示フォーマット設定は、式の種類によって適用対象が異なります。 式の種類 表示フォーマット設定の影響 変数 表示設定は、選択した変数だけに適用されます。他の変数には適 用されません。 配列エレメント 表示設定は配列全体に適用されます。つまり、配列の各エレメン トに同一の表示フォーマットが使用されます。 構造体のフィールド 定義が同一のエレメント(フィールド名、C の宣言型)に表示設 定が適用されます。 表 77: 式の種類による表示フォーマット設定の影響 [ロケール]ウィンドウ [ロケール]ウィンドウ([表示]メニューから表示)には、ローカル変数や 関数パラメータが自動的に表示されます。 図 156: [ロケール]ウィンドウ パート 5 リファレンス情報 UEW-9 301 C-SPY のウィンドウ [ロケール]ウィンドウのコンテキストメニュー [ロケール]ウィンドウのコンテキストメニューには、式の表示フォーマット の変更コマンドが表示されます。コマンドの詳細については、300 ページの [ウォッチ]ウィンドウのコンテキストメニューを参照してください。 [静的]ウィンドウ [静的]ウィンドウ([表示]メニューから選択)には、静的記憶寿命変数 (通常はファイルスコープ付き変数、および関数とクラスの静的変数)の値が 表示されます。volatile として宣言された静的記憶寿命変数は表示されない ことに、注意してください。 図 157: [静的]ウィンドウ 表示エリア 表示エリアには静的記憶寿命変数の値が表示され、情報が以下の列に表示さ れます。 列 説明 式 変数名。変数のベース名に続いて、モジュール、クラス、または 関数スコープを含むフルネームが表示されます。この列は編集で きません。 値 変数の値。変更された値は赤色で強調表示されます。この列は編 集できます。 位置 この変数が格納されているメモリの場所。 型 変数のデータ型。 表 78: [シンボルメモリ]ウィンドウの列 IAR Embedded Workbench IDE 302 ユーザガイド UEW-9 C-SPY リファレンス [静的]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[静的]ウィンドウで使用できます。 図 158: [静的]ウィンドウのコンテキストメニュー このメニューに表示されるコマンドは以下のとおりです。 メニューコマンド 説明 デフォルトフォーマット、 2 進フォーマット、 8 進フォーマット、 10 進フォーマット、 16 進フォーマット、 文字フォーマット 式の表示フォーマットを変更します。表示フォーマット設 定は、式の種類によって適用対象が異なります。表 77「式 の種類による表示フォーマット設定の影響」を参照してく ださい。表示フォーマットの選択は、デバッグセッション の終了後も保持されます。 静的変数の選択 [静的]ウィンドウに表示する変数のサブセットを選択する ダイアログボックスを、表示します(306 ページの[静的] ダイアログボックスの選択を参照)。 表 79: [静的]ウィンドウのコンテキストメニューのコマンド [自動]ウィンドウ [自動]ウィンドウ([表示]メニューから表示)には、現在の文やその近く にある文の変数や式が自動的に表示されます。 図 159: [自動]ウィンドウ パート 5 リファレンス情報 UEW-9 303 C-SPY のウィンドウ [自動]ウィンドウのコンテキストメニュー [自動]ウィンドウのコンテキストメニューには、式の表示フォーマットの変 更コマンドが表示されます。コマンドの詳細については、300 ページの [ウォッチ]ウィンドウのコンテキストメニューを参照してください。 [ライブウォッチ]ウィンドウ [ライブウォッチ]ウィンドウ([表示]メニューから表示)には、アプリ ケーション実行中に継続的に式の値がサンプリングされて表示されます。 式の変数は、グローバル変数のように、静的に特定できる必要があります。 図 160: [ライブウォッチ]ウィンドウ 通常はこのウィンドウは、この機能をサポートするハードウェアターゲット システムで使用します。 [ライブウォッチ]ウィンドウのコンテキストメニュー [Live Watch] ウィンドウのコンテキストメニューには、式の追加 / 削除コマン ド、式の表示フォーマットの変更コマンド、変数のデフォルトの型解釈の変 更コマンドが表示されます。これらのコマンドについては、300 ページの [ウォッチ]ウィンドウのコンテキストメニューを参照してください。 また、このメニューには[オプション]コマンドが含まれています。このコ マンドを選択すると、[デバッガ]ダイアログボックスが表示され、[更新間 隔]オプションを設定することができます。このオプションのデフォルト値 は 1000 ミリ秒です。つまり、プログラム実行中に、[ライブウォッチ]ウィ ンドウが 1 秒に 1 回更新されます。 IAR Embedded Workbench IDE 304 ユーザガイド UEW-9 C-SPY リファレンス [クイック ウォッチ]ウィンドウ [クイックウォッチ]ウィンドウ([表示]メニューから表示)では、変数や 式の値のモニタや式の評価を行うことができます。 図 161: [クイックウォッチ]ウィンドウ 確認したいファイル名を[式]テキストボックスに入力します。[再計算]ボ タンをクリックすると、式の値が計算されます。[クイックウォッチ]ウィン ドウの使用例については、「121 ページの[クイックウォッチ]ウィンドウの 使用」、「146 ページの[クイックウォッチ]によるマクロの実行」を参照し てください。 [クイックウォッチ]ウィンドウのコンテキストメニュー [クイックウォッチ]ウィンドウのコンテキストメニューには、式の表示 フォーマットの変更コマンドおよび変数のデフォルトの型解釈の変更コマン ドが表示されます。これらのコマンドについては、300 ページの[ウォッチ] ウィンドウのコンテキストメニューを参照してください。 また、このメニューには[ウォッチウィンドウに追加]コマンドも表示され ます。このコマンドは、選択した式を[ウォッチ]ウィンドウに追加します。 パート 5 リファレンス情報 UEW-9 305 C-SPY のウィンドウ [静的]ダイアログボックスの選択 [静的の選択]ダイアログボックス([静的]ウィンドウのコンテキストメ ニューから選択)は、[静的]ウィンドウに表示する変数を選択するときに使 用します。 図 162: [静的変数の選択]ダイアログボックス 静的記憶寿命変数に対してすべての変数を表示 このオプションを使用して、デバッグセッションの終了後にアプリケーショ ンに追加された新規変数を含めたすべての変数を、[静的]ウィンドウに表示 します。 選択した変数のみ表示 このオプションを使用して、[静的]ウィンドウに表示する変数を選択しま す。この場合、2 回のデバッグセッションの間にアプリケーションに追加さ れた新規変数は、[静的]ウィンドウに自動的に表示されないことに、注意し てください。変数の横にあるチェックボックスを選択すると、その編集が表 示されます。 [呼出 しスタック]ウィンドウ [呼出しスタック]ウィンドウ([表示]メニューから表示)には、C 関数呼 出しスタックが表示されます。ウィンドウ上部には、現在の関数が表示され IAR Embedded Workbench IDE 306 ユーザガイド UEW-9 C-SPY リファレンス ます。関数呼出しを調べるには、ダブルクリックします。C-SPY でその呼出 しフレームが代わりに表示されます。 ステップ実行先 図 163: [呼出しスタック]ウィンドウ 各エントリは、次のフォーマットで表示されます。 function(values) ここで、(values) はパラメータの現在値のリストを示します。関数がパラ メータを取らない場合は、空白になります。 [ステップイン]コマンドが関数呼出し内部に移動してステップ実行する場合 は、ウィンドウ上部の灰色部分に関数名が表示されます。これは、C++ のコ ンストラクタ、デストラクタ、演算子のような暗黙的な関数呼出しの場合に 特に便利です。 [呼出しスタック]ウィンドウのコンテキストメニュー [呼出しスタック]ウィンドウで右クリックして表示されるコンテキストメ ニューでは、以下のコマンドを使用できます。 図 164: [呼出しスタック]ウィンドウのコンテキストメニュー コマンド ソースへ移動 選択した関数を[逆アセンブリ]ウィンドウかエディタウィ ンドウで表示します。 引数の表示 関数の引数を表示します。 カーソルまで実行 呼出しスタックで選択した関数まで実行します。 パート 5 リファレンス情報 UEW-9 307 C-SPY のウィンドウ ブレークポイントの切替 コードブレークポイントを設定 / 解除します。 え(コード) ブレークポイントの切替 ログブレークポイントを設定 / 解除します。 え(ログ) ブレークポイントの有効 選択したブレークポイントを有効 / 無効にします。 化 / 無効化 [ターミナル I/O]ウィンドウ [ターミナル I/O]ウィンドウ([表示]メニューから表示)では、アプリケー ションへの入力の設定やアプリケーションからの出力の表示を行うことがで きます。このウィンドウを使用するには、XLINK の場合、C-SPY のデバッグ サポートを含むライブラリをアプリケーションにリンクする必要があります。 つまり、オプション[I/O エミュレーションを使用]を選択してください。 ILINK の場合は、オプション[C-SPY デバッグサポートを含める]を選択し ます。これにより、C-SPY は stdin、stdout、stderr をこのウィンドウに転 送します。[ターミナル I/O]ウィンドウが表示されていない場合は、入力が 必要な場合に自動的に表示されます。出力の場合は自動表示されません。 図 165: [ターミナル I/O]ウィンドウ [制御コード]ボタンをクリックすると、EOF(ファイル終端)や NUL などの 特殊文字の入力用サブメニューが表示されます。 図 166: [制御コード]メニュー IAR Embedded Workbench IDE 308 ユーザガイド UEW-9 C-SPY リファレンス [入力モード]ボタンをクリックすると、[入力モード]ダイアログボックス が表示されます。ここで、キーボードとテキストファイルのどちらからデー タを入力するかを選択できます。 図 167: [入力モード]ダイアログボックス このダイアログボックスのオプションのリファレンス情報については、 274 ページの[ターミナル I/O]オプションを参照してください。 [アサートの報告]ダイアログボックス [アサートの報告]ダイアログボックスは、アプリケーションのソースコード に assert 関数の呼出しがあり、アサート条件が偽の場合に表示されます。 このダイアログボックスで先の処理を選択できます。 図 168: [アサートの報告]ダイアログボックス 中止 アプリケーションは実行を停止し、ターゲットシステム上のアプリケーショ ンの一部であるランタイムライブラリ関数 abort が呼び出されます。つまり、 アプリケーション自体が実行を終了します。 デバッグ C-SPY がアプリケーションの実行を停止し、ユーザに制御の権限が戻ります。 パート 5 リファレンス情報 UEW-9 309 C-SPY のウィンドウ 無視 アサートが無視され、アプリケーションは実行を継続します。 [コードカバレッジ]ウィンドウ [コードカバレッジ]ウィンドウ([表示]メニューから表示)には、現在の コードカバレッジ解析状態、つまり解析開始以降に少なくとも 1 回実行され ているコード部分が表示されます。コンパイラは、文や関数呼出しごとにス テップポイントという形式で詳細なステップ実行情報を生成します。レポー トには、すべてのモジュールと関数についての情報が表示されます。アプリ ケーション停止時点で実行済みのすべてのステップポイントの割合がレポー トされ、実行されていないすべてのステップポイントが表示されます。カバ レッジは、無効にするまで続行されます。 図 169: [コードカバレッジ]ウィンドウ 注 : コードカバレッジプラグインモジュールは、デバッガ >[オプション] ダイアログボックスの[プラグイン]ページで有効にすることができます。 一部の C-SPY ドライバは、コードカバレッジをサポートしていません。使用 している C-SPY ドライバがコードカバレッジをサポートしているかどうかに ついては、[ヘルプ]メニューからアクセスできるオンラインヘルプシステム のドライバ個別の資料を参照してください。C-SPY シミュレータは、コード カバレッジをサポートしています。 IAR Embedded Workbench IDE 310 ユーザガイド UEW-9 C-SPY リファレンス ツールバー ウィンドウ上部に、ツールバーが表示されます。以下のボタンがあります。 ツールバーのボタン 説明 有効化 実行時のコードカバレッジの有効 / 無効を切り替えます。 クリア すべてのコードカバレッジ情報を消去します。すべてのステップ ポイントが未実行として表示されます。 更新 コードカバレッジ情報を更新し、ウィンドウを再描画します。 最後の更新以降に実行されたすべてのステップポイントは、ツ リーから削除されます。 自動更新 コードカバレッジ情報の自動再ロードの有効 / 無効を切り替えま す。有効にした場合は、ブレークポイント、ステップポイント、 プログラム終了で C-SPY が停止したときに、コードカバレッジ情 報が自動的に再ロードされます。 名前を付けて保存 現在のコードカバレッジ結果をテキストファイルに保存します。 セッションの保存 コードカバレッジセッションのデータを *.dat ファイルに保存 します。 セッションの復元 前回保存したコードカバレッジセッションのデータを復元します。 表 80: [コードカバレッジ]ウィンドウのツールバー 表示エリア すべてのレベルの現在の状態は、以下のアイコンで示されます。 ● 赤色のひし形は、実行済みコードが 0% であることを示します。 ● 緑色のひし形は、実行済みコードが 100% であることを示します。 ● 赤と緑の 2 色のひし形は、一部のコードが実行済みであることを示します。 ● 黄色のひし形は、実行されていないステップポイントを示します。 ステップポイントの行については、ソースウィンドウでのステップポイント の列番号範囲、行番号、ステップポイントのアドレスが表示されます。 <column start>-<column end>:<row> パート 5 リファレンス情報 UEW-9 311 C-SPY のウィンドウ [コードカバレッジ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[コードカバレッジ]ウィンドウで使用でき ます。 図 170: [コードカバレッジ]のコンテキストメニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 有効化 実行時のコードカバレッジの有効 / 無効を切り替えます。 クリア すべてのコードカバレッジ情報を消去します。すべてのステップ ポイントが未実行として表示されます。 更新 コードカバレッジ情報を更新し、ウィンドウを再描画します。最 後の更新以降に実行されたすべてのステップポイントは、ツリー から削除されます。 自動更新 コードカバレッジ情報の自動再ロードの有効 / 無効を切り替えま す。有効にした場合は、ブレークポイント、ステップポイント、 プログラム終了で C-SPY が停止したときに、コードカバレッジ情 報が自動的に再ロードされます。 名前を付けて保存 現在のコードカバレッジ結果をテキストファイルに保存します。 表 81: [コードカバレッジ]ウィンドウのコンテキストメニューのコマンド [プロファイリング]ウィンドウ [プロファイリング]ウィンドウ([表示]メニューから表示)には、プロ ファイリング情報(アプリケーション内の関数のタイミング情報)が表示さ れます。プロファイリングは、ウィンドウのツールバーにあるボタンを使用 して明示的に有効にする必要があります。有効にした後は、無効にするまで はその状態に保持されます。 プロファイラは、関数に入る時間と関数から戻る時間を測定します。した がって、関数内で費やす時間は、その関数が復帰するか、別の関数が呼び出 IAR Embedded Workbench IDE 312 ユーザガイド UEW-9 C-SPY リファレンス されるまで追加されません。これがわかるのは、関数内にステップ実行され る場合だけです。 図 171: [プロファイリング]ウィンドウ 注 : Profiling プラグインモジュールは、[オプション]ダイアログボックスの [デバッガ]>[プラグイン]ページで有効にすることができます。 一部の C-SPY ドライバは、プロファイリングをサポートしていません。使用 している C-SPY ドライバがコードカバレッジをサポートしているかどうかに ついては、[ヘルプ]メニューからアクセスできるオンラインヘルプシステム のドライバ個別の資料を参照してください。C-SPY シミュレータは、プロ ファイリングをサポートしています。 プロファイリングのコマンド ツールバーのボタンで実行可能なコマンド以外に、[プロファイリング]ウィ ンドウのコンテキストメニューから、これらのコマンドやいくつかの追加コ マンドを実行できます。 図 172: [プロファイリング]ウィンドウのコンテキストメニュー メニューに表示されるコマンドは以下のとおりです。 有効化 実行時のプロファイリングの有効 / 無効を切り替えます。 新しい測定 新しい測定を開始します。ボタンをクリックすると、表示値がゼ ロにリセットされます。 グラフ [フラット時間]、 [累積時間]の割合を棒グラフなどのグラフや 数値で表示します。 パート 5 リファレンス情報 UEW-9 313 C-SPY のウィンドウ 詳細を表示 リストで選択した関数の詳細を表示します。選択した関数の呼出 し元と呼出し先の情報を示すウィンドウが表示されます。 更新 プロファイリング情報を更新し、ウィンドウを再描画します。 自動更新 プロファイリング情報の自動更新の有効 / 無効を切り替えます。 有効にした場合は、ブレークポイント、ステップポイント、プロ グラム終了で C-SPY が停止したときに、プロファイリング情報が 自動的に更新されます。 名前を付けて保存 現在のプロファイリング情報をテキストファイルに保存します。 [プロファイリング]ウィンドウの列 [プロファイリング]ウィンドウには以下の列が含まれます。 列 説明 関数 関数名 呼出し 関数の呼出し回数 フラット時間 サイクル数や合計時間に占める割合で示す、各関数に使用された 時間(その関数から実行されたすべての関数呼出しを除く) 累積時間 サイクル数や合計時間に占める割合で示す、各関数に使用された 時間(その関数から実行されたすべての関数呼出しを含む) 表 82: [プロファイリング]ウィンドウの列 リストには、[メイン外]という項目が常に表示されています。これは、リス ト内のどの関数にも該当しない時間を示します。つまり、デバッグ情報(開 始 / 終了コード、C/C++ ライブラリコードなど)なしでコンパイルされた コードを示します。 [イメージ]ウィンドウ [イメージ]ウィンドウは[表示]メニューからアクセスでき、現在ロードさ れているイメージ(デバッグファイル)の一覧が表示されます。 図 173: [イメージ]ウィンドウ IAR Embedded Workbench IDE 314 ユーザガイド UEW-9 C-SPY リファレンス 通常、デバッグ可能なアプリケーションは、デバッグ対象の 1 つのイメージ のみで構成されます。ただし、デバッグセッションの開始後に追加のイメー ジをロードすることも可能です。すなわち、デバッグ対象のユニット全体は 複数のイメージで構成されることになります。 この機能は、プラットフォーム提供の機能に関する追加ライブラリが含まれ るビルド済 ROM イメージと一緒にアプリケーションをデバッグする場合に 便利です。ROM イメージとアプリケーションは、別々のプロジェクトを使用 して IAR Embedded Workbench IDE でビルドされ、別々の出力ファイルを生成 します。 表示エリア 表示エリアにはロードされたイメージがリストされます。 列 説明 名称 ロードされているイメージ名。 パス ロードされているイメージのパス。 表 83: [イメージ]ウィンドウの列 C-SPY はロードされているすべてのイメージからのデバッグ情報を同時に使 用するか、または 1 回ごとに 1 つのイメージから使用できます。そのイメー ジだけの情報を表示するには、行をダブルクリックします。現在の選択内容 が強調表示されます。 [イメージ]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[イメージ]ウィンドウで使用できます。 図 174: [イメージ]ウィンドウのコンテキストメニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 すべてのイメージの ロードされたすべてのデバッグイメージのデバッグ情報を表示し 表示 ます。 イメージのみを表示 選択されたデバッグイメージのデバッグ情報を表示します。 表 84: [イメージ]ウィンドウのコンテキストメニューのコマンド 関連情報 関連情報については、以下を参照してください。 パート 5 リファレンス情報 UEW-9 315 C-SPY のウィンドウ ● 107 ページの複数イメージのロード ● 415 ページの __loadImage ● 391 ページのイメージ [スタック]ウィンドウ [スタック]ウィンドウには、スタックの内容が表示されます。また、スタッ クの整合性チェックを実行し、スタックオーバフローを検出してワーニング することもできます。たとえば、[スタック]ウィンドウを使用して、スタッ クの最適サイズを特定できます。 [スタック]ウィンドウを開く前に、有効にする必要があります。 [プロジェ クト]>[オプション]>[デバッガ]>[プラグイン]を選択した後、プラグ インのリストから[スタック]を選択します。C-SPY では、 [表示]>[ス タック]を選択して、 [スタック]ウィンドウを表示することができます。複 数の[スタック]ウィンドウを表示し、それぞれ異なるスタックを表示する (スタックが複数ある場合)か、同一のスタックを異なる表示設定で、表示す ることができます。 図 175: [スタック]ウィンドウ スタックドロップダウンメニュー 使用するマイクロコントローラに複数のスタックがある場合は、ウィンドウ 上部にあるスタックドロップダウンメニューを使用して、表示するスタック を選択することができます。 グラフィカルスタックバー ウィンドウの最上部に表示されているスタックバーは、スタックの状態をグ ラフィカルに表します。スタックバーを表示するには、有効になっているこ とを確認する必要があります。[ツール]>[オプション]>[スタック]を選 択した後、オプション[グラフィカルスタック表示とスタック使用トラッキ ングを有効にする]を選択します。 IAR Embedded Workbench IDE 316 ユーザガイド UEW-9 C-SPY リファレンス スタックバーの左端はスタックの底、つまりスタックが空白のときのスタッ クポインタの位置を示します。右端は、スタック用に予約されているメモリ エリアの最後を示します。緑色の線は、スタックポインタの現在の値を示し ます。実行中に使用されていたスタックメモリの部分は濃い灰色で、未使用 部分は淡い灰色でそれぞれ表示されます。スタック使用率が指定のしきい値 を超えると、スタックバーは赤色に変化します。 アプリケーションを最初にロードするときや、リセットごとに、スタックエ リアのメモリに 0xCD というバイト値が設定され、その後でアプリケーション の実行が開始されます。実行が停止すると、スタックの最後から、値が 0xCD でないバイトの位置(スタック中で使用された最も上の位置)までの範囲の スタックメモリが検索されます。これはスタック使用率のトレース方法とし ては信頼性の高い方法ですが、スタックオーバフローが検出されるという保 証はありません。たとえば、スタックが範囲を超えて誤って拡張され、ス タック上限近辺のバイトは変更されることなく、スタック範囲外のメモリが 変更される可能性があります。同様に、アプリケーションがスタック範囲内 のメモリを誤って修正する可能性もあります。さらに、[スタック]ウィンド ウで検出できるのはスタックオーバフローの痕跡だけで、スタックオーバフ ローを発生時点で検出することはできません。 注 : スタックのサイズと場所は、リンカの構成ファイルで作成されるスタッ ク(通常は CSTACK)を保持するセグメント / セクションの定義から取得され ます。何らかの理由で、システム起動コード (cstartup) によるスタック初期 化を変更する場合は、その変更に応じて、リンカの構成ファイルでのセグメ ントセグメント定義も変更する必要があります。これを行わないと、[Stack] ウィンドウでスタック使用率を追跡できません。この詳細については、『コン パイラのドキュメント』を参照してください。 スタックバーを有効にすると、スタックオーバフローの検出とワーニングに必 要な機能も有効になります(271 ページの[スタック]オプションを参照) 。 [スタック]ウィンドウの列 ウィンドウの主要部分には、スタックメモリの内容が以下の列に表示され ます。 列 説明 位置 メモリでの位置を示します。アドレスは小さい方から順に表示さ れます。ターゲットシステムのスタックが上位アドレスに向かっ て上がっていく場合、スタック最上部がウィンドウの最下部に配 置されるようになります。スタックポインタが参照するアドレ ス、つまりスタック最上部は、緑色で強調表示されます。 表 85: [スタック]ウィンドウの列 パート 5 リファレンス情報 UEW-9 317 C-SPY のウィンドウ 列 説明 データ その位置のメモリユニットの内容を表示します。[スタック] ウィンドウのコンテキストメニューで、データの表示方法(1 バ イト、2 バイト、4 バイトのいずれかの単位)を選択できます。 変数 その位置にローカル変数がある場合に、その変数名を表示しま す。変数は、関数内でローカルに宣言されていて、レジスタでは なくスタックにある場合にだけ表示されます。 値 フレーム [変数]列に表示されている変数の値を示します。 呼出しフレームが対応する関数の名前を示します。 表 85: [スタック]ウィンドウの列 (続き) [スタック]ウィンドウのコンテキストメニュー [スタック]ウィンドウで右クリックすると、以下のコンテキストメニューが 表示されます。 図 176: [スタック]ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは以下のとおりです。 変数を表示 オフセットを表示 IAR Embedded Workbench IDE 318 ユーザガイド UEW-9 [スタック]ウィンドウには、[変数]、 [値]、 [フレーム]の 各列が表示されます。 [スタック]ウィンドウで表示される メモリ位置にある変数が、これらの列に表示されます。 このオプションを選択すると、[位置]列に位置がスタック ポインタからのオフセットとして表示されます。選択を解除 すると、位置は絶対アドレスとして表示されます。 1x ユニット [データ]列のデータを 1 バイト単位で表示します。 2x ユニット [データ]列のデータを 2 バイト単位で表示します。 4x ユニット [データ]列のデータを 4 バイト単位で表示します。 オプション [IDE オプション]ダイアログボックスを表示します。この ダイアログボックスで、[スタック]ウィンドウ専用オプ ションを設定できます(271 ページの[スタック]オプショ ンを参照)。 C-SPY リファレンス [シンボル]ウィンドウ [シンボル]ウィンドウ([表示]メニューから選択)には、ランタイムライ ブラリのシンボルを含め、静的な位置を持つすべてのシンボル(すなわち、 C/C++ 関数、アセンブララベル、静的記憶寿命変数)が表示されます。 図 177: [シンボル]ウィンドウ 表示エリア 表示エリアにはシンボルの一覧が表示され、情報が以下の列に表示されます。 列 説明 シンボル シンボル名。 位置 メモリアドレス。 フルネーム シンボル名。通常は[シンボル]列の内容と同じですが、C++ メ ンバ関数などでは異なります。 表 86: [シンボル]ウィンドウの列 列の見出しをクリックすると、名前、位置、またはフルネームに基づいてリ ストがソートされます。 [シンボル]ウィンドウのコンテキストメニュー 以下のコンテキストメニューが[シンボル]ウィンドウで使用できます。 図 178: [シンボル]ウィンドウのコンテキストメニュー パート 5 リファレンス情報 UEW-9 319 C-SPY メニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 関数 リスト内の関数シンボルの表示を切り替えます。 変数 リスト内の変数の表示を切り替えます。 ラベル リスト内のラベルの表示を切り替えます。 表 87: [シンボル]ウィンドウのコンテキストメニューのコマンド C-SPY メニュー 開発環境で使用可能なメニューに加えて、C-SPY の実行中は[デバッグ]メ ニューが使用可能になります。 使用する C-SPY ドライバに応じて、他のメニューも使用可能です。ドライバ 固有のメニューに関する情報は、[ヘルプ]メニューからオンラインヘルプシ ステムを参照してください。 [デバッグ]メニュー [デバッグ]メニューには、アプリケーションの実行 / デバッグ用コマンドが 表示されます。ほとんどのコマンドは、ツールバーのボタンからも実行でき ます。 図 179: [デバッグ]メニュー メニューコマンド Go 説明 F5 現在の文 / 命令から、ブレークポイントかプログラム終 了までコードを実行します。 表 88: [デバッグ]メニューのコマンド IAR Embedded Workbench IDE 320 ユーザガイド UEW-9 C-SPY リファレンス メニューコマンド 説明 ブレーク アプリケーション実行を停止します。 リセット ターゲットプロセッサをリセットします。 デバッグ停止 Ctrl+Shift+D デバッグセッションを停止し、プロジェクトマネージャ に戻ります。 ステップオーバF10 C/C++ 関数やアセンブラサブルーチンに入らずに、次の 文 / 関数呼出し / 命令を実行します。 ステップイン C/C++ 関数やアセンブラサブルーチンに入って次の文 / 命令を実行します。 F11 ステップアウトShift+F11 現在の文から、現在の関数の呼出し後の文までを実行し ます。 次の実行文が設定されました 各関数呼び出しを停止せずに次の文を直接実行します。 カーソルまで実行 自動ステップ 次の実行文の設定 現在の文 / 命令から、選択した文 / 命令までコードを実 行します。 [自動ステップの設定]ダイアログボックスを表示しま す。ここで、自動ステップ実行の設定と開始を行うこと ができます。 プログラムカウンタをカーソル位置に直接移動します。 ソースコードは実行しません。ただし、プログラムフ ローに異常が生じ、予期しない効果が発生することがあ ります。 メモリ > 保存 [メモリ保存]ダイアログボックスを表示します。このダ イアログボックスを使用して、指定したメモリエリアの 内容をファイルに保存できます(295 ページの[メモリ 保存]ダイアログボックスを参照)。 メモリ > 復元 [メモリ復元]ダイアログボックスを表示します。このダ イアログボックスを使用して、Intel-extended や Motorola S-record フォーマットのファイルの内容を指定したメモ リゾーンにロードできます(296 ページの[メモリ復元] ダイアログボックスを参照)。 更新 すべてのデバッガウィンドウの内容を更新します。ウィ ンドウの更新は自動的に行われるため、C-SPY が検出で きない方法でターゲットメモリが修正された場合など、 通常の状態でない場合にのみ更新が必要です。[逆アセン ブリ]ウィンドウに表示されたコードが変更された場合 にも有効です。 表 88: [デバッグ]メニューのコマンド(続き) パート 5 リファレンス情報 UEW-9 321 C-SPY メニュー メニューコマンド マクロ ログ > ログファイルの設定 説明 [マクロ設定]ダイアログボックスを表示します。ここ で、マクロファイルや関数の表示、登録、編集を行うこ とができます。 C-SPY の入出力ログをファイルに保存するためのダイア ログボックスを表示します。ログファイルの種類と場所 を選択できます。以下の項目から選択して記録できます。 エラー、ワーニング、システム情報、ユーザメッセージ のいずれか、またはすべて。 ログ > C-SPY のターミナル I/O ログをファイルに保存するため ターミナル I/O ログファイル のダイアログボックスを表示します。ログファイルの場 の設定 所を選択できます。 表 88: [デバッグ]メニューのコマンド(続き) [自動ステップの設定]ダイアログボックス [自動ステップの設定]ダイアログボックス([デバッグ]メニューから表示) で、自動ステップ実行をカスタマイズできます。 図 180: [自動ステップの設定]ダイアログボックス ドロップダウンメニューに、使用可能なステップコマンドが表示されます。 [遅延]テキストボックスを使用して、ステップ間の遅延を指定できます。 [マクロ設定]ダイアログボックス [マクロ設定]ダイアログボックス([デバッグ]>[マクロ]を選択して表 示)で、マクロファイルや関数の表示、登録、編集を行うことができます。 IAR Embedded Workbench IDE 322 ユーザガイド UEW-9 C-SPY リファレンス ダイアログボックスを使用して登録したマクロ関数は、デバッグセッション を終了すると無効になり、次のデバッグセッションでは自動登録されません。 図 181: [マクロ設定]ダイアログボックス マクロファイルの登録 登録するマクロファイルをファイル選択リストで選択し、[追加]か[すべて 追加]をクリックして[選択したマクロファイル]のリストに追加します。 逆に、[選択したマクロファイル]リストからファイルを削除するには、[削 除]か[すべてを削除]を使用します。 使用するマクロファイルを選択したら、[レジスタ]をクリックして登録し、 以前に定義したマクロ関数や変数と置き換えます。登録したマクロ関数は、 [登録マクロ]のスクロールリストに表示されます。システムマクロは常に登 録されていて、リストから削除することはできません。 マクロ関数の表示 [すべて]を選択すると、すべてのマクロ関数が表示されます。[ユーザ]を 選択すると、すべてのユーザ定義マクロが表示されます。[システム]を選択 すると、すべてのシステムマクロが表示されます。 パート 5 リファレンス情報 UEW-9 323 C-SPY メニュー [登録マクロ]にある[マクロ名]か[ファイル (F)]をクリックすると、列 の内容がマクロ名かファイル名を基準にしてソートされます。もう一度ク リックすると、逆順でソートされます。 マクロファイルの修正 ユーザ定義マクロ関数を[マクロ名]列でダブルクリックすると、その関数 が定義されているファイルが自動的に表示され、必要に応じて修正を行うこ とができます。 [ログファイル]ダイアログボックス [ログファイル]ダイアログボックス([デバッグ]>[ログ]>[ログファイ ルの設定]を選択して表示)で、C-SPY の出力ログをファイルに保存でき ます。 図 182: [ログファイル]ダイアログボックス ファイルへのログ保存を有効 / 無効にするには、[ログファイルを有効にす る]チェックボックスを使用します。 ファイルに出力される情報は、デフォルトでは[ログ]ウィンドウに表示さ れる内容と同一です。出力内容を変更するには、[インクルード]オプション を使用します。 オプション 説明 エラー C-SPY が処理の実行に失敗したことを示します。 ワーニング エラーの可能性があることを示します。 マクロ実行情報 C-SPY が実行したアクションの進行状況を示します。 ユーザ C-SPY マクロからの出力、つまり__message 文を使用した出力 を示します。 表 89: ログファイルのオプション IAR Embedded Workbench IDE 324 ユーザガイド UEW-9 C-SPY リファレンス デフォルト設定以外のファイルタイプや場所を指定するには、参照ボタンを クリックします。指定したファイルを選択するには、[保存]をクリックしま す。デフォルトのファイル拡張子は log です。 [ターミナル I/O ログファイル]ダイアログボックス [ターミナル I/O ログファイル]ダイアログボックス([デバッグ]>[ログ] を選択して表示)では、出力先ログファイルを選択し、C-SPY のターミナル I/O ログをそのファイルに保存できます。 図 183: [ターミナル I/O ログファイル]ダイアログボックス 参照ボタンをクリックすると、標準の[名前を付けて 保存]ダイアログボッ クスが表示されます。指定したファイルを選択するには、[保存]をクリック します。デフォルトのファイル拡張子は log です。 パート 5 リファレンス情報 UEW-9 325 C-SPY メニュー IAR Embedded Workbench IDE 326 ユーザガイド UEW-9 一般オプション この章では、IAR Embedded Workbench® IDE の一般オプションについ て説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 ターゲット [ターゲット]オプションについては、[ヘルプ]メニューから表示できるオ ンラインヘルプシステムを参照してください。 出力 [出力]オプションを使用して、出力ファイルのタイプ([実行可能ファイル] または[ライブラリ])を指定できます。また、実行可能ファイル、オブジェ クトファイル、リストファイルの保存先も指定できます。 図 184: [出力]オプション パート 5 リファレンス情報 UEW-9 327 出力 出力ファイル 出力ファイルのタイプを指定します。以下から選択します。 実行可能ファイル ビルドプロセスの結果、リンカがアプリケーション(実行可能出力 (デフォルト) ファイル)を作成します。このオプションを選択した場合は、リン カのオプションを[オプション]ダイアログボックスで設定できま す。出力を作成する前に、該当するリンカオプションを設定する必 要があります。 ライブラリ ビルドプロセスの結果、ライブラリビルダがライブラリ出力ファイ ルを作成します。このオプションを選択した場合は、ライブラリビ ルダオプションを[オプション]ダイアログボックスで設定でき、 [リンカ]は、カテゴリリストから削除されます。ライブラリを作成 する前に、オプションを設定する必要があります。 出力ディレクトリ 出力先ディレクトリのパスを指定します。プロジェクトディレクトリとの相 対パスを指定します。以下の出力先ディレクトリのパスを指定できます。 実行可能ファイル / デフォルト以外の実行可能ファイルかライブラリファイル用ディレ ライブラリ クトリを指定する場合に使用します。プロジェクトの実行可能ファ イルを保存するディレクトリの名前を入力します。 オブジェクトファ デフォルト以外のオブジェクトファイル用ディレクトリを指定する イル 場合に使用します。プロジェクトのオブジェクトファイルを保存す るディレクトリの名前を入力します。 リストファイル IAR Embedded Workbench IDE 328 ユーザガイド UEW-9 デフォルト以外のリストファイル用ディレクトリを指定する場合に 使用します。プロジェクトのリストファイルを保存するディレクト リの名前を入力します。 一般オプション ライブラリ構成 [ライブラリ構成]オプションを使用して、使用するライブラリを指定でき ます。 図 185: ライブラリ設定オプション ランタイムライブラリ、ライブラリ構成、これらのライブラリ構成が提供す るランタイム環境、可能なカスタマイズについては、『コンパイラのドキュメ ント』を参照してください。 ライブラリ このオプションは、XLINK リンカにのみ適用されます。 [ライブラリ]ドロップダウンリストで、使用するランタイムライブラリを選 択します。使用可能なライブラリについては、『コンパイラのドキュメント』 を参照してください。 注 : C++ のプロジェクトの場合は、DLIB ライブラリバリアントのいずれかを 使用する必要があります。 実際に使用されるライブラリオブジェクトファイルとライブラリ設定ファイ ルの名前は、それぞれ[ライブラリファイル]テキストボックスと[設定 ファイル]テキストボックスに表示されます。 ライブラリファイル このオプションは、XLINK リンカにのみ適用されます。 [ライブラリファイル]テキストボックスには、使用されるライブラリオブ ジェクトファイルが表示されます。ライブラリオブジェクトファイルは、一 部の設定に応じて自動的に選択されます。コンパイラのドキュメンテーショ ンを参照してください。 パート 5 リファレンス情報 UEW-9 329 ライブラリオプション [カスタム]ライブラリを[ライブラリ]ドロップダウンリストで選択した場 合は、独自のライブラリオブジェクトファイルを指定する必要があります。 設定ファイル [設定ファイル]テキストボックスには、使用されるライブラリ設定ファイル が表示されます。ライブラリ設定ファイルは、プロジェクトの設定に応じて 自動的に選択されます。[カスタム DLIB]を[ライブラリ]ドロップダウン リストで選択した場合は、ライブラリ設定ファイルを指定する必要がありま す。 注 : ライブラリ設定ファイルが必要なのは DLIB ライブラリだけですが、一部 の製品バージョンでは DLIB ライブラリがサポートされません。 ライブラリオプション [ライブラリオプション]ページのオプションを使用して、printf フォー マッタおよび scanf フォーマッタを選択できます。 図 186: [ライブラリオプション]ページ フォーマット機能の詳細については、『コンパイラのドキュメント』を参照し てください。 PRINTF フォーマッタ フルフォーマッタバージョンはメモリ消費量が多く、多くの組込みアプリ ケーションで不要な機能を提供しています。メモリ消費量を少なくするため に、別のバージョンがいくつか用意されています。 IAR Embedded Workbench IDE 330 ユーザガイド UEW-9 ● IAR DLIB ライブラリの Printf フォーマッタ:Full、Large、Small、Tiny。 ● IAR CLIB ライブラリの Printf フォーマッタ:Large、Medium、Small。 一般オプション アプリケーションの要件に合ったフォーマッタを選択してください。 使用可能な printf フォーマッタについては、コンパイラのドキュメンテー ションを参照してください。 SCANF のフォーマッタ フルフォーマッタバージョンはメモリ消費量が多く、多くの組込みアプリ ケーションで不要な機能を提供しています。メモリ消費量を少なくするため に、別のバージョンがいくつか用意されています。 ● IAR DLIB ライブラリの Scanf フォーマッタ:Full、Large、Small。 ● IAR CLIB ライブラリの Scanf フォーマッタ:Large、Medium。 アプリケーションの要件に合ったフォーマッタを選択してください。 使用可能な scanf フォーマッタについては、コンパイラのドキュメンテー ションを参照してください。 スタック / ヒープ [スタック / ヒープ]ページのオプションを使用して、ヒープサイズとスタッ クサイズをカスタマイズできます。詳細については、[ヘルプ]メニューから 表示できるオンラインヘルプシステムを参照してください。 MISRA-C この [MISRA-C:1998] ページおよび [MISRA-C:2004] ページのオプションは、 ソースコードの MISRA-C 規則からの逸脱を IDE が確認する方法を制御する ときに使用します。この設定は、コンパイラとリンカの両方に使用されます。 特定のオプションの詳細については、 『IAR Embedded Workbench® MISRA-C:2004 リファレンスガイド』または『IAR Embedded Workbench® MISRA-C:1998 リファ レンスガイド』を参照してください。これらは、[ヘルプ]メニューから利用 できます。 使用する製品パッケージによっては、MISRA-C オプションは使用できない場 合があります。 パート 5 リファレンス情報 UEW-9 331 MISRA-C IAR Embedded Workbench IDE 332 ユーザガイド UEW-9 コンパイラオプション この章では、IAR Embedded Workbench® IDE のコンパイラオプション について説明します。 オプションの設定方法の詳細については、「75 ページのオプションの 設定」を参照してください。 複数ファイルのコンパイル 使用する製品パッケージによっては、複数ファイルのコンパイルオプション は使用できない場合があります。 特定のコンパイラオプションを設定する前に、複数ファイルのコンパイルを 使用するかどうかの指定ができます。これは、最適化のテクニックの 1 つで す。コンパイラの 1 回の呼び出しで複数のソースファイルのコンパイルを可 能にすることにより、多くの場合で最適化がより効率的になります。 このオプションは、プロジェクト全体で使用するほか、ファイルのグループ ごとに使用することもできます。このようなグループ内のすべての C/C++ ソースファイルが、1 回のコンパイラの呼出しで一緒にコンパイルされます。 [ワークスペース]ウィンドウで選択したプロジェクトファイルのグループに 対して複数ファイルのコンパイルを許可するには、[オプション]ダイアログ ボックスで[複数ファイルのコンパイル]を選択してください。[未使用のパ ブリックを破棄]は、未使用のパブリック関数と変数をコンパイルユニット から破棄するときに使用します。 図 187: 複数ファイルのコンパイル このオプションを使用する場合、選択したグループに含まれるファイルはす べて、そのグループまたは任意のオプションが設定された直近の親ノードに 設定されているコンパイラオプションを使用してコンパイルされます。1 つ または複数のファイルに対してオーバライドするコンパイラオプションはす べて、ビルド時に無視されます。これは、グループコンパイルでオプション のセットを 1 つだけ使用する必要があるためです。 パート 5 リファレンス情報 UEW-9 333 言語 複数ファイルのコンパイルがどのように[ワークスペース]ウィンドウに表 示されるかについては、198 ページの[ワークスペース]ウィンドウを参照 してください。 複数ファイルのコンパイルおよび未使用パブリック関数の破棄の詳細につい ては、『コンパイラのドキュメント』を参照してください。 言語 [言語]オプションを使用して、C/C++ 言語へのターゲット依存の拡張を有効 にすることができます。 図 188: コンパイラの言語オプション 言語 [言語]オプションを使用すると、コンパイラで C または C++ のどちらかを サポートするよう指定できます。ただし、使用する製品パッケージが C++ を サポートしている必要があります。以下から選択します。 IAR Embedded Workbench IDE 334 ユーザガイド UEW-9 C デフォルトでは、IAR C/C++ コンパイラは C モードで実行さ れ、C++ に固有の機能は使用できません。 C++ C++ モードでは、コンパイラはソースコードを Embedded C++ または拡張 Embedded C++ として処理します。つまり、クラ スやオーバロードといった C++ 固有の機能を使用できます。 C++ では、DLIB ライブラリ(C/C++ ライブラリ)が使用され ている必要があります。 コンパイラオプション 自動 [自動]を選択した場合は、コンパイルするファイルのファイ ル名拡張子に応じて、言語サポートが自動的に決定されます。 ファイル名の拡張子が c のファイルは、C ソースファイルとし てコンパイルされます。 ファイル名の拡張子が cpp のファイルは、C++ ソースファイ ルとしてコンパイルされます。 注 : 一部の製品パッケージは C++ をサポートしていません。C++ をサポート していない製品の場合は、[言語]オプションは使用できません。 C の派生言語 サポートされる言語として C を選択した場合、 [C 派生言語]を使用して派生 言語を指定できます。使用する製品パッケージに応じて、以下のオプション が使用できます。 C89 このオプションを選択して、標準の C ではなく C89 標準を有効に します。 注記 : このオプションは、MISRA-C のチェックが有効な場合に必 須です。 使用する製品パッケージによっては、このオプションは使用でき ない場合があります。この場合は、C89 がデフォルトの標準にな ります。詳細については、『コンパイラのドキュメント』を参照し てください。 C99 このオプションを選択して、標準の C ではなく C99 標準を有効に します。これはコンパイラで使用されるデフォルト標準で、C89 よりも厳密です。C89 に固有の機能は使用できません。 使用する製品パッケージによっては、このオプションは使用でき ない場合があります。この場合は C89 がデフォルトの標準で、 C99 のサポートは限定されます。詳細については、『コンパイラの ドキュメント』を参照してください。 VLA の許可 このオプションは、可変長の配列を許可するときに選択します。 使用する製品パッケージによっては、このオプションは使用でき ない場合があります。 プロトタイプの強制 すべての関数が正しいプロトタイプを持つかどうかをコンパイラ で強制的に検証します。このオプションを使用すると、以下のい ずれかが含まれるコードではエラーが発生します。 • 宣言のない関数、Kernighan & Ritchie C 形式で宣言された関数呼 出し • 先にプロトタイプが宣言されていない public 関数の関数定義 • プロトタイプを含まない型の関数ポインタによる間接的な関数 呼出し パート 5 リファレンス情報 UEW-9 335 言語 .C++ の派生言語 [C++ 派生言語]オプションを使用すると、サポートされる言語として [C++] や[自動]を選択した場合に、C++ の派生言語を指定できます。以下から選 択します。 Embedded C++ Embedded C++ モードでは、コンパイラはソースコードを Embedded C++ として処理します。つまり、クラスやオーバ ロードといった C++ 固有の機能を使用できます。 拡張 Embedded C++ 拡張 Embedded C++ モードでは、名前空間や標準テンプレー トライブラリといった機能をソースコードで利用できます。 C++ では、DLIB ライブラリ(C/C++ ライブラリ)が使用されている必要があ ります。Embedded C++ と拡張 Embedded C++ の詳細については、 『コンパイラ のドキュメント』を参照してください。 注 : 一部の製品パッケージは C++ をサポートしていません。C++ をサポート していない製品の場合は、[C++ 派生言語]オプションは使用できません。 言語の適合 [言語の適合]オプションを使用すると、コンパイラが標準の C/C++ 言語に 対してどの程度厳密に準拠するかを指定できます。以下から選択します。 IAR 拡張ありの標準 このオプションを選択すると、コンパイラは標準の C/C++ 言語 に対する拡張としてターゲット固有のキーワードを受け入れま す。IDE では、このオプションはデフォルトで有効です。 標準 このオプションは、IAR システムの拡張を無効にしますが、選択 した C/C++ の派生言語に厳密に準拠するわけではありません。 非常に役立つ C/C++ への緩和対応もそのまま利用できます。 厳密 このオプションは、選択した C/C++ の派生言語に厳密に準拠す る場合に選択します。このオプションは C/C++ 役立つ拡張や緩 和措置の数多くを無効にします。 言語拡張の詳細については、『コンパイラのドキュメント』を参照してくだ さい。 ‘CHAR’ の型 通常コンパイラは char 型を unsigned char や signed char として解釈しま す。ランタイムライブラリは、コンパイラで使用されるデフォルトの型と同 じ設定によってコンパイルされます。これについては、コンパイラのマニュ アルを参照してください。 IAR Embedded Workbench IDE 336 ユーザガイド UEW-9 コンパイラオプション [‘CHAR’ の型]オプションは、たとえば別のコンパイラとの互換性のため に、コンパイラでデフォルトの型をオーバライドするときなどに使用します。 注 : このオプションを使用してデフォルトの動作をオーバライドする場合、 通常の文字を使用するライブラリ機能への参照は機能しなくなり、異なる型 の設定でビルドされます。 マルチバイト文字サポートを有効にする デフォルトでは、マルチバイト文字を C や Embedded C++ のソースコードで 使用することはできません。このオプションを有効にすると、ソースコード 内のマルチバイト文字は、ホストコンピュータのデフォルトのマルチバイト 文字サポート設定に従って解釈されます。 マルチバイト文字は、C/C++ 形式のコメント、文字列定数、文字定数で使用 できます。これらはそのまま生成コードに移動します。 浮動小数点精度の緩和 使用する製品パッケージによっては、このオプションは使用できない場合が あります。 このオプションを選択して、コンパイラで言語規則を緩和させ、浮動小数点 式の最適化をより積極的に実行します。このオプションは、以下の条件を満 たす浮動小数点式のパフォーマンスを向上させます。 ● 式に単精度および倍精度の値が両方含まれている。 ● 倍精度の値が精度を失わずに単精度に変換できる。 ● 式の結果は単精度に変換されます。 倍精度の代わりに単精度で計算を実行すると、精度が失われることがあり ます。 IAR 移行プリプロセッサ拡張を有効にする 移行プリプロセッサ拡張は、プリプロセッサを拡張し、旧バージョンの IAR システムズコンパイラのコードを簡単に移行できるようにします。以前の IARC/C++ コンパイラからコードを移行する必要がある場合に、このオプ ションを使用します。製品のインストール内容によっては、このオプション は使用できない場合があります。 注 : このオプションを使用すると、規格に準拠していないコードがコンパイ ラで許可されるだけでなく、規格に準拠しているコードが拒否されることも あります。 パート 5 リファレンス情報 UEW-9 337 コード 重要:新しく記述するコードでは、これらの拡張を使用しないでください。 これらの拡張は、将来のコンパイラバージョンでは削除される可能性があり ます。 使用する製品パッケージによっては、このオプションは使用できない場合が あります。 コード [コード]ページのオプションを使用して、コード生成をカスタマイズできま す。詳細については、[ヘルプ]メニューから表示できるオンラインヘルプシ ステムを参照してください。製品パッケージによっては、このページは使用 できない場合があります。 最適化 [最適化]オプションは、オブジェクトコード生成の最適化の種類とレベルを 設定します。 図 189: コンパイラ最適化オプション 最適化 コンパイラでは、さまざまなレベルの最適化をサポートしています。また最 も高いレベルでは、最適化の目標(サイズまたは速度)を実現するために、 明示的に最適化を微調整することが可能です。以下から選択します。 IAR Embedded Workbench IDE 338 ユーザガイド UEW-9 ● なし(デバッグサポートに最適) ● 低 ● 中 コンパイラオプション ● 高、バランス(速度とサイズのバランス) ● 高、速度(速度優先) ● 高、サイズ(サイズ優先) デフォルトでは、デバッグプロジェクトのサイズの最適化は、完全にデバッ グが可能なレベルに設定されます。一方リリースプロジェクトでは、速度を 損なうことなく小さいコードを生成する、バランスの取れた最適化レベルに 設定されます。 各最適化レベルで実行される最適化リストについては、『コンパイラのドキュ メント』を参照してください。 使用可能な変換 以下の変換は、最適化の異なるレベルで使用可能です。 ● 共通部分式除去 ● ループ展開 ● 関数のインライン化 ● コード移動 ● 型ベースエイリアス解析 注 : 製品パッケージによっては、他の変換も使用可能な場合があります。 変換が使用可能な場合、チェックボックスを使用して、各変換を有効か無効 にすることができます。 デバッグプロジェクトでは、デフォルトで変換が無効になっています。リ リースプロジェクトでは、デフォルトで変換が有効になっています。 個別に無効にできる変換の説明は、『コンパイラのドキュメント』を参照して ください。 パート 5 リファレンス情報 UEW-9 339 出力 出力 [出力]ページは、生成されたコンパイラの出力設定を提供します。 図 190: コンパイラの出力オプション このページのオプションは、使用するリンカ(XLINK リンカまたは ILINK リ ンカ)に依存します。 モジュールタイプ このオプションは、XLINK リンカにのみ適用されます。 デフォルトでは、コンパイラはプログラムモジュールを生成します。このオ プションは、アプリケーションで参照される場合にだけインクルードされる ライブラリモジュールを作成する場合に使用します。[デフォルトのオーバラ イド]チェックボックスを選択し、以下のいずれかを指定します。 プログラムモジュール オブジェクトファイルを、ライブラリモジュールではなく プログラムモジュールとして処理します。 ライブラリモジュール オブジェクトファイルを、プログラムモジュールではなく ライブラリモジュールとして処理します。 プログラム / ライブラリモジュールおよびライブラリの使用方法については、 [ヘルプ]メニューから表示できる『IAR リンカおよびライブラリツールリ ファレンスガイド』の XLIB、XAR の章を参照してください。 IAR Embedded Workbench IDE 340 ユーザガイド UEW-9 コンパイラオプション オブジェクトモジュール名 このオプションは、XLINK リンカにのみ適用されます。 通常、オブジェクトモジュールの内部名は、ディレクトリ名や拡張子を除い たソースファイル名です。このオプションは、オブジェクトモジュール名を 明示的に設定する場合に使用します。 [オブジェクトモジュール名]チェックボックスを選択し、入力フィールドに 名前を入力します。 ソースファイルがプリプロセッサの生成した一時ファイルである場合など、複 数のモジュールのファイル名が同一の場合、モジュール名の重複によりリンカ エラーが発生します。このオプションは、このような場合に特に便利です。 デバッグ情報の生成 このオプションは、C-SPY® や他のシンボリックデバッガで必要なオブジェ クトモジュールに追加情報を含めるようにコンパイラを設定します。 [デバッグ情報の生成]オプションは、デフォルトでは選択されています。 コンパイラでデバッグ情報を生成しないように設定する場合は、このオプ ションの選択を解除します。 注 : デバッグ情報を含めると、オブジェクトファイルのサイズが増加します。 リスト [リスト]オプションは、リストファイルを生成するかどうかと、リストファ イルに含める情報を設定します。 図 191: コンパイラのリストファイルオプション パート 5 リファレンス情報 UEW-9 341 プリプロセッサ 通常は、コンパイラはリストファイルを生成しません。リストファイルかア センブラファイルを生成する場合は、以下のオプションを選択します。リス トファイルは、リストディレクトリに保存されます。ファイル名は、ソース ファイル名に拡張子 lst を付けて設定されます。[ワークスペース]ウィンド ウの[出力]フォルダから出力ファイルを直接開くことができます。 リストファイルの出力 [リストファイルの出力]オプションを選択し、リストファイルに含める情報 の種類を選択します。 アセンブラニーモニック アセンブラニーモニックをリストファイルに含めます。 診断 診断情報をリストファイルに含めます。 アセンブラ出力ファイル [アセンブラ出力ファイル]オプションを選択し、リストファイルに含める情 報の種類を選択します。 ソースのインクルード ソースコードをアセンブラファイルに含めます。 呼出しフレーム情報のイン コンパイラが生成したランタイムモデル属性情報、呼出し クルード フレーム情報、フレームサイズ情報を含めます。 プリプロセッサ [プリプロセッサ]オプションを使用して、コンパイラで使用するシンボルお よびインクルードパスを定義できます。 図 192: コンパイラのプリプロセッサオプション IAR Embedded Workbench IDE 342 ユーザガイド UEW-9 コンパイラオプション 標準のインクルードディレクトリを無視 このオプションを選択すると、プロジェクトのビルド時に標準のインクルー ドファイルが使用されません。 追加インクルードディレクトリ [追加インクルードディレクトリ]オプションは、#include ファイルパスの リストにパスを追加する場合に使用します。製品で必要なパスは、ランタイ ムライブラリの選択に基づいて自動的に指定されます。 #include ファイルのフルパスを入力します。 注 : このオプションを使用して指定した追加ディレクトリは、標準のインク ルードディレクトリの前に検索されます。 プロジェクトの移植性を向上するには、アクティブな製品のサブディレクト リに引数変数 $TOOLKIT_DIR$、現在のプロジェクトのディレクトリに $PROJ_DIR$ を使用します。引数変数の概要については、246 ページの引数変 数のまとめを参照してください。 プリインクルードファイル このオプションは、コンパイラでソースファイルのリードを開始する前に、 指定のインクルードファイルをインクルードする場合に使用します。これは、 アプリケーション全体のソースコードで変更を行う場合(新しいシンボルを 定義する場合など)に便利です。 シンボル定義 [シンボル定義]オプションでは、通常はソースファイルで指定する値や選択 を指定できます。 プロジェクトで定義するシンボルを入力します。次に例を示します。 TESTVER=1 等号の前後に空白文字を挿入しないでください。 [シンボル定義]オプションは、ソースファイルの最初に #define 文を記述 した場合と同様に機能します。 たとえば、シンボル TESTVER が定義されているかどうかに応じてアプリケー ションのテストバージョンと製品バージョンのいずれかを生成するように、 ソースコードを記述するとします。この場合、以下のようなセクションを記 述します。 #ifdef TESTVER ... ; テストバージョンのみの追加コード行 #endif パート 5 リファレンス情報 UEW-9 343 診断 このとき、シンボル TESTVER は、デバッグターゲットでは定義し、リリース ターゲットでは定義しません。 ファイルへのプリプロセッサ出力 デフォルトでは、コンパイラはプリプロセッサ出力を生成しません。 プリプロセッサ出力を生成する場合は、[ファイルへのプリプロセッサ出力] を選択します。また、コメントの保持、#line ディレクティブの生成も選択 できます。 診断 [診断]オプションは、診断の分類 / 表示方法を設定します。デフォルト以外 の分類を指定する場合に使用します。 注 : 致命的なエラーの表示を無効にする、あるいは致命的なエラーの分類を 変更することはできません。 図 193: コンパイラの診断オプション リマークを有効化 最も軽度の診断メッセージを、リマークと呼びます。リマークは、ソース コード中で、生成したコードで異常な動作の原因となる可能性がある部分を 示します。 デフォルトでは、リマークは出力されません。コンパイラでリマークを生成 する場合は、[リマークを 有効化]オプションを選択します。 IAR Embedded Workbench IDE 344 ユーザガイド UEW-9 コンパイラオプション 診断を無効化 指定したタグの診断の出力を無効にします。 たとえば、Pe117 および Pe177 のワーニングを無効にするには、次のように 入力します。 Pe117,Pe177 リマークとして処理 リマークは、最も軽度の診断メッセージです。リマークは、ソースコード中 で、生成したコードで異常な動作の原因となる可能性がある部分を示します。 このオプションは、診断をリマークとして分類する場合に使用します。 たとえば、Pe117 のワーニングをリマークとして分類するには、次のように 入力します。 Pe177 ワーニングとして処理 ワーニングは、問題はあるが、コンパイルの途中終了の原因にはならないエ ラーや脱落を示します。このオプションは、診断メッセージをワーニングと して分類する場合に使用します。 たとえば、Pe826 のリマークをワーニングとして分類するには、次のように 入力します。 Pe826 エラーとして処理 エラーは、C/C++ 言語の規則違反のうち、オブジェクトコードが生成されず、 終了コードがゼロ以外になるものを示します。このオプションは、診断メッ セージをエラーとして分類する場合に使用します。 たとえば、Pe117 のワーニングをエラーとして分類するには、次のように入 力します。 Pe117 すべてのワーニングをエラーとして処理 このオプションは、コンパイラでワーニングをエラーとして処理する場合に 使用します。コンパイラがエラーを検出した場合は、オブジェクトコードは 生成されません。 パート 5 リファレンス情報 UEW-9 345 MISRA-C MISRA-C これらのオプションは、[一般オプション]カテゴリの [MISRA-C:1998] およ び [MISRA-C:2004] ページで設定したオプションをオーバライドするときに 使用します。 特定のオプションの詳細については、『IAR Embedded Workbench® MISRA-C:2004 リファレンスガイド』または『IAR Embedded Workbench® MISRA-C:1998 リファレンスガイド』を参照してください。これらは、 [ヘル プ]メニューから利用できます。 使用する製品パッケージによっては、MISRA-C オプションは使用できない場 合があります。 追加オプション [追加オプション]ページは、コンパイラへのコマンドラインインタフェース を提供します。 図 194: コンパイラ用の[追加オプション]ページ コマンドラインオプションの使用 コンパイラに(GUI では指定できない)コマンドライン引数を追加指定でき ます。 IAR Embedded Workbench IDE 346 ユーザガイド UEW-9 アセンブラオプション この章では、IAR Embedded Workbench® IDE で使用できるアセンブラ オプションについて説明します。 オプションの設定方法の詳細については、「75 ページのオプションの 設定」を参照してください。 言語 [言語]オプションは、アセンブラのコード生成を制御します。 注 : 使用する製品パッケージによっては、ここで説明するオプションのいく つかは使用できない場合があります。 図 195: アセンブラの言語オプション ユーザシンボルの大文字 / 小文字を区別する デフォルトでは、大文字と小文字が区別されます。つまり、LABEL と label は異なるシンボルを示します。[ユーザシンボルの大文字 / 小文字を区別す る]の選択を解除すると、大文字と小文字の区別を無効にできます。この場 合は、LABEL と label は同一のシンボルを示します。 マルチバイト文字サポートを有効にする デフォルトでは、マルチバイト文字をアセンブラのソースコードで使用する ことはできません。このオプションを有効にすると、ソースコード内のマル チバイト文字は、ホストコンピュータのデフォルトのマルチバイト文字サ ポート設定に従って解釈されます。 パート 5 リファレンス情報 UEW-9 347 言語 マルチバイト文字は、コメント、文字列定数、文字定数で使用できます。こ れらはそのまま生成コードに移動します。 最初の列でニーモニックを許可する 使用する製品パッケージによっては、このオプションは使用できない場合が あります。 アセンブラのデフォルト動作では、最初の列で始まるすべての識別子はラベ ルとして処理されます。 このオプションは、最初の列で開始するニーモニック名(最後のコロンを除 く)をニーモニックとして認識させる場合に使用します。 最初の列でディレクティブを許可する 使用する製品パッケージによっては、このオプションは使用できない場合が あります。 アセンブラのデフォルト動作では、最初の列で始まるすべての識別子はラベ ルとして処理されます。 このオプションは、最初の列で開始するディレクティブ名(最後のコロンを 除く)をディレクティブとして認識させる場合に使用します。 マクロの引用符 [マクロの引用符]オプションは、各マクロ引数の左右の引用符に使用する文 字を設定します。 デフォルトでは、これらの引用符は < と > です。このオプションを使用して、 他の表記法に合せて引用符を変更する、あるいはマクロ引数に < や > を使用 可能にできます。 ドロップダウンリストで、4 種類の括弧から、マクロの引用符として使用す るものを選択します。 図 196: マクロの引用符の選択 IAR Embedded Workbench IDE 348 ユーザガイド UEW-9 アセンブラオプション 出力 [出力]オプションを使用して、IAR C-SPY® デバッガなどのデバッガで使用 される情報を生成できます。 図 197: アセンブラの出力オプション デバッグ情報の生成 アプリケーションでデバッガを使用する場合は、[デバッグ情報の生成]オプ ションを選する必要があります。デフォルトでは、このオプションは、デ バッグプロジェクトでは選択されていて、リリースプロジェクトでは選択が 解除されています。 リスト [リスト]オプションは、アセンブラによるリストファイルの生成と、リスト ファイルの内容の選択に使用します。各オプションの参考情報は、[ヘルプ] メニューからオンラインヘルプシステムを参照してください。 パート 5 リファレンス情報 UEW-9 349 プリプロセッサ プリプロセッサ [プリプロセッサ]オプションを使用して、アセンブラで使用するインクルー ドパスおよびシンボルを定義できます。 図 198: アセンブラのプリプロセッサオプション 標準のインクルードディレクトリを無視 このオプションを選択すると、プロジェクトのビルド時に標準のインクルー ドファイルが使用されません。 追加インクルードディレクトリ [追加インクルードディレクトリ]オプションは、#include ファイルパスの リストにパスを追加する場合に使用します。製品で必要なパスは、自動的に 指定されます。 アセンブラで #include ファイルを検索するディレクトリのフルパスを入力 します。 プロジェクトの移植性を向上するには、アクティブな製品のサブディレクト リに引数変数 $TOOLKIT_DIR$、現在のプロジェクトのディレクトリに $PROJ_DIR$ を使用します。引数変数の概要については、246 ページの引数変 数のまとめを参照してください。 #include ディレクティブについては、 『IAR アセンブラリファレンスガイド』 を参照してください。 注 : デフォルトでは、アセンブラは環境変数 ACPUNAME_INC(XLINK の場合) および IASMCPUNAME_INC(ILINK の場合)で指定されたパスの #include ファ イルも検索します。ただし、IDE で環境変数を使用することはお勧めしません。 IAR Embedded Workbench IDE 350 ユーザガイド UEW-9 アセンブラオプション シンボル定義 このオプションでは、通常はソースファイルで指定する必要がある値や選択 を指定できます。 定義するシンボルを、1 行に1つずつ入力します。 ● たとえば、シンボル TESTVER が定義されているかどうかに応じてアプリ ケーションのテストバージョンと製品バージョンのいずれかを生成するよ うに、ソースコードを記述するとします。この場合、以下のようなセク ションを記述します。 #ifdef TESTVER ... ; テストバージョンのみの追加コード行 #endif このとき、シンボル TESTVER は、デバッグターゲットでは定義し、リリー スターゲットでは定義しません。 ● また、頻繁に変更する必要のある変数 FRAMERATE をソースで使用するとしま す。この場合、ソースではこの変数を定義せず、このオプションを使用し てプロジェクトでの値を FRAMERATE=3 のように指定することができます。 ユーザ定義シンボルを削除するには、[シンボル定義]リストで選択し、 Delete キーを押します。 ファイルへのプリプロセッサ出力 デフォルトでは、アセンブラはプリプロセッサ出力を生成しません。 プリプロセッサ出力を生成する場合は、[ファイルへのプリプロセッサ出力] を選択します。また、コメントの保持、#line ディレクティブの生成も選択 できます。 注 : 使用する製品バージョンによっては、このオプションは使用できない場 合があります。 診断 [診断]オプションは、診断の分類 / 表示方法を設定します。デフォルト以外 の分類を指定する場合に使用します。 各オプションの参考情報は、[ヘルプ]メニューからオンラインヘルプシステ ムを参照してください。 パート 5 リファレンス情報 UEW-9 351 追加オプション 追加オプション [追加オプション]ページは、アセンブラへのコマンドラインインタフェース を提供します。 図 199: アセンブラ用の[追加オプション]ページ コマンドラインオプションの使用 アセンブラに(GUI では指定できない)コマンドライン引数を追加指定で きます。 IAR Embedded Workbench IDE 352 ユーザガイド UEW-9 コンバータオプション この章では、ELF 形式から出力ファイルを変換するために IAR Embedded Workbench® IDE で使用できるオプションについて説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 出力 コンバータの[出力]オプションは、ILINK リンカのみに適用されます。 [出力]オプションは、プラグラム可能な出力フォーマット、および出力ファ イルに含めるデバッグ情報のレベルに関する詳細情報を指定する場合に使用 します。 図 200: コンバータ出力ファイルオプション プログラム可能な出力フォーマット ILINK リンカでは、出力として ELF を生成します(オプションとしてデバッ グ情報用の DWARF を含む)。[プラグラム可能な出力フォーマット]ドロッ プダウンリストは、ELF 出力を異なる形式(Motorola、Intel-extended など) に変換するときに使用します。ielftool コンバータはファイルの変換に使用 されます。コンバータの詳細については、『コンパイラのドキュメント』を参 照してください。 パート 5 リファレンス情報 UEW-9 353 出力 出力ファイル [出力ファイル]を使用して、iarchive コンバート出力ファイルの名前を指 定します。名前を指定していない場合は、プロジェクト名にファイル名拡張 子を付けたものが使用されます。ファイル名の拡張子は、選択した出力 フォーマット(srec、hex など)によって異なります。 デフォルトのオーバライド デフォルト以外のファイル名拡張子を指定する場合は、このオプションを使 用します。 IAR Embedded Workbench IDE 354 ユーザガイド UEW-9 カスタムビルドオプション この章では、IAR Embedded Workbench® IDE のカスタムビルドオプ ションについて説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 カスタムツール構成 IDE でカスタムビルドオプションを設定するには、[プロジェクト]>[オプ ション]を選択し、[オプション]ダイアログボックスを表示します。次に、 [カテゴリ]リストで[カスタムビルド]を選択し、[カスタムツール構成] ページを表示します。 図 201: カスタムツールオプション [ファイル名の拡張子]テキストボックスには、このカスタムツールで処理す るファイルタイプのファイル名拡張子を指定します。複数の拡張子を入力で きます。区切り文字には、コンマ、セミコロン、空白文字を使用します。次 に例を示します。 .htm、.html [コマンドライン]テキストボックスには、外部ツールの実行用コマンドライ ンを入力します。 [出力ファイル]テキストボックスには、外部ツールからの出力ファイルを指 定します。 パート 5 リファレンス情報 UEW-9 355 カスタムツール構成 ビルド処理中に外部ツールで使用するファイルが他にある場合は、それらを [追加入力ファイル]テキストボックスに追加します。これらの追加入力ファ イル(依存ファイル)を修正した場合は、リビルドの必要性が検出されます。 例については、80 ページのツールチェーンの拡張を参照してくださいを参照 してください。 IAR Embedded Workbench IDE 356 ユーザガイド UEW-9 ビルドアクションオプション この章では、IAR Embedded Workbench® IDE のビルド前とビルド後の アクション用オプションについて説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 [ビルドアクションの構成] IDE でビルド前とビルド後のアクション用オプションを設定するには、 [プロ ジェクト]>[オプション]を選択し、[オプション]ダイアログボックスを 表示します。次に、[カテゴリ]リストで[ビルドアクション]を選択し、 [ビルドアクションの構成]ページを表示します。 これらのオプションは、ビルド構成全体に適用されます。グループやファイ ル単位で設定することはできません。 図 202: ビルドアクションオプション プリビルドコマンドライン ビルド直前に実行するコマンドラインを入力します。必要に応じて、参照ボ タンを使用して拡張コマンドラインファイルを選択することもできます。構 成が更新済みの場合は、コマンドは実行されません。 パート 5 リファレンス情報 UEW-9 357 [ビルドアクションの構成] プリビルドコマンドライン ビルド成功直前に実行するコマンドラインを入力します。必要に応じて、参照 ボタンも使用できます。構成がすでに更新されていた場合は、コマンドは実行 されません。このオプションは、出力ファイルのコピーや後処理に便利です。 IAR Embedded Workbench IDE 358 ユーザガイド UEW-9 XLINK リンカのオプション この章では、IAR Embedded Workbench® IDE で使用できる XLINK リン カオプションについて説明します。ILINK リンカの場合は、375 ペー ジの ILINK リンカのオプションを参照してください。 オプションの設定方法の詳細については、75 ページのオプションの設 定を参照してください。 リンカ設定ファイルでのセグメント定義に使用する XLINK コマンド ラインオプションについては、『IAR リンカおよびライブラリツールリ ファレンスガイド』を参照してください。 設定 [設定]オプションを使用すると、リンカ設定ファイルのパスや名前の指定 や、デフォルトのプログラムエントリのオーバライド、ライブラリ検索パス の指定を行うことができます。 図 203: リンカ設定オプション パート 5 リファレンス情報 UEW-9 359 設定 リンカ設定ファイル デフォルトのリンカ設定ファイルは、[一般オプション]カテゴリで選択した [ターゲット]設定に応じて自動的に選択されます。これをオーバーライド fi するには、[デフォルトのオーバライド]オプションを選択し、他のファイル を指定することで、デフォルト以外のリンカコマンドファイルを指定します。 引数変数 $TOOLKIT_DIR$ か $PROJ_DIR$ をここに入力し、プロジェクト固有 のリンカ設定ファイルか定義済みのリンカコマンドファイルを指定すること もできます。 デフォルトプログラムエントリをオーバライドする デフォルトでは、プログラムエントリには __program_start というシンボル が設定されています。リンカは、プログラムエントリシンボルを含むモ ジュールが含まれていて、そのシンボルを含むセグメントパートが破棄され ていないことを確認します。 デフォルト以外のプログラム処理を設定するには、[デフォルトプログラムエ ントリをオーバライドする]を選択します。 [エントリシンボル]オプションを選択すると、__program_start 以外のシ ンボルをプログラムエントリに指定できます。 [アプリケーションで定義]オプションを選択すると、開始シンボルの使用が 無効になります。リンカは、通常と同様に、すべてのプログラムモジュール と、すべてのシンボル参照に必要なライブラリモジュールを含め、root 属性 が設定されたすべてのセグメントパート、またはそのようなセグメントパー トから直接的 / 間接的に参照されるすべてのセグメントパートを保持します。 パス検索 [パス検索]オプションは、現在の作業ディレクトリでリンク対象オブジェク トファイルが見つからない場合に XLINK が検索するディレクトリの名前を指 定します。XLINK で検索するディレクトリのフルパスを追加します。 製品で必要なパスは、ランタイムライブラリの選択に基づいて自動的に指定 されます。空白にした場合は、XLINK は現在の作業ディレクトリだけでオブ ジェクトファイルを検索します。 #include ファイルのフルパスを入力します。プロジェクトの移植性を向上す るには、アクティブな製品のサブディレクトリに引数変数 $TOOLKIT_DIR$、 現在のプロジェクトのディレクトリに $PROJ_DIR$ を使用します。引数変数 の概要については、246 ページの引数変数のまとめを参照してください。 IAR Embedded Workbench IDE 360 ユーザガイド UEW-9 XLINK リンカのオプション 未処理バイナリイメージ [未処理バイナリイメージ]オプションは、通常の入力ファイル以外に、ピュ アバイナリファイルをリンクする場合に使用します。テキストボックスを使 用して、以下のパラメータを指定します。 ファイル リンクするバイナリファイルを入力します。 シンボル バイナリデータが配置されるセグメントパートにより定義されるシンボ ルを入力します。 セグメント バイナリデータを配置するセグメントを入力します。 アライメント バイナリデータが配置されるセグメントパートのアラインメントを入力 します。 ファイルの内容全体が、指定したセグメントに配置されます。つまり、この セグメントはロウバイナリ出力フォーマットなどのピュアバイナリデータだ けを含むことができます。指定したファイルの内容が配置されるセグメント パートは、指定したシンボルがアプリケーションで要求される場合にだけ含 まれます。シンボルを強制的に参照するには、-g リンカオプションを使用し ます。単一出力ファイルおよび -g オプションについては、『IAR リンカおよ びライブラリツールリファレンスガイド』を参照してください。 出力 [出力]オプションは、プラグラム可能な出力フォーマット、および出力ファ イルに含めるデバッグ情報のレベルに関する詳細情報を指定する場合に使用 します。 図 204: XLINK の出力ファイルのオプション パート 5 リファレンス情報 UEW-9 361 出力 出力ファイル [出力ファイル]を使用して、XLINK の出力ファイルの名前を指定します。 名前を指定していない場合は、プロジェクト名にファイル名拡張子を付けた ものが使用されます。ファイル名拡張子は、選択した出力フォーマットに よって異なります。[C-SPY のデバッグ情報]を選択した場合、出力ファイ ルのファイル名拡張子は dxx になります。 注 : 出力ファイルが 2 つ生成されるフォーマットを選択した場合は、指定し たファイルタイプは主要出力ファイル(最初のフォーマット)だけに適用さ れます。 デフォルトのオーバライド デフォルト以外のファイル名拡張子を指定する場合は、このオプションを使 用します。 フォーマット 出力オプションは、IAR XLINK リンカが生成する出力ファイルのフォーマッ トを決定します。出力ファイルは、デバッガへの入力、ターゲットシステム のプログラミングでの入力として使用します。IAR システムズの専用出力 フォーマットは、UBROF(Universal Binary Relocatable Object Format) と呼びま す。 デフォルトの出力設定は、以下のとおりです。 ● デバッグプロジェクトでは、 [C-SPY のデバッグ情報]、 [ランタイム管理モ ジュール付き]、[I/O エミュレーションモジュール付き]がデフォルトで 選択されています。 ● リリースプロジェクトでは、ターゲットダウンロードに適した出力フォー マットが自動的に選択されています。 注 : C-SPY® 以外のデバッガの場合は、使用するフォーマット / バリアントに ついては、デバッガに付属のユーザドキュメントを参照してください。 デバッガのランタイムインタフェースの詳細については、『コンパイラのド キュメント』を参照してください。 C-SPY のデバッグ情報 このオプションは、C-SPY で使用する UBROF 出力ファイルを、dxx という ファイル名拡張子で作成します。 IAR Embedded Workbench IDE 362 ユーザガイド UEW-9 XLINK リンカのオプション ランタイム管理モジュール付き このオプションは、[C-SPY のデバッグ情報]オプションで生成される出力に 加えて、プログラムの中止、終了、起動用のデバッガサポートも生成します。 通常のライブラリ関数に対応する C-SPY 専用のバリアントが、アプリケー ションにリンクされます。 I/O エミュレーションモジュール付き このオプションは、[C-SPY のデバッグ情報]、[ランタイム管理モジュール付 き]の各オプションで生成される出力に加えて、ターミナル I/O デバッガサ ポートも生成します。つまり、stdin および stdout が[ターミナル I/O] ウィンドウにリダイレクトされ、デバッグ時にホストコンピュータでファイ ルにアクセスすることができます。 バッファしたターミナル出力 C-SPY でのプログラム実行中に、文字が生成されるごとに C-SPY の[ターミ ナル I/O]ウィンドウに即座に出力する代わりに、出力をバッファに格納しま す。このオプションは、通信速度が遅いデバッガシステムを使用する場合に 便利です。 C-SPY 固有の追加出力ファイルを許可 [追加出力]ページのオプションを有効にします。 [ランタイム管理モジュール付き]、[I/O エミュレーションモジュール付き] のいずれかのオプションを選択した場合は、生成される出力ファイルで、 putchar などの一部のライブラリ関数がダミー関数として実装され、それら の関数を C-SPY で処理するために必要な追加デバッグ情報が生成されます。 この場合は、[追加出力]ページのオプションが無効になり、追加出力ファイ ルを生成できません。これは、追加出力ファイルにはダミー関数が含まれま すが、必要な追加デバッグ情報がなく、通常の用途ではこれらのファイルに 意味がなくなるためです。 ただし、一部のデバッガシステムでは、同一のビルドプロセスで生成された 2 つの出力ファイル(必要なデバッグ情報を含むファイルと、デバッグ前に ハードウェアに書き込むことができるファイル)が必要です。これは、不揮 発性メモリに格納したコードをデバッグする場合に使用します。この場合は、 [C-SPY 固有の追加出力ファイルを許可]オプションを選択し、追加出力ファ イルが生成されるように設定する必要があります。 パート 5 リファレンス情報 UEW-9 363 追加出力 その他 このオプションは、[C-SPY のデバッグ情報]、[ランタイム管理モジュール付 き]、[I/O エミュレーションモジュール付き]で生成される出力以外の出力を 生成する場合に使用します。 [出力形式]ドロップダウンリストを使用して、適切な出力を選択します。 必要に応じて、[フォーマットのバリアント]を使用して、一部の出力 フォーマットのバリアントを選択します。選択可能な項目は、選択した出力 フォーマットによって異なります。 [その他]>[出力フォーマット]オプションを[デバッグ (ubrof)]、[ubrof] のいずれかに指定した場合は、ファイル名拡張子が dbg の UBROF 出力ファ イルが生成されます。生成した出力ファイルには、プログラム終了時の停止、 ロングジャンプ命令、ターミナル I/O などをシミュレーションするためのデ バッグ情報は含まれません。デバッグ時にこれらの機能をサポートする必要 がある場合は、それぞれオプション[C-SPY のデバッグ情報]、[ランタイム 管理モジュール付き]、[I/O エミュレーションモジュール付き]を使用する必 要があります。 詳細については、『IAR リンカおよびライブラリツールリファレンスガイド』 を参照してください。 モジュールローカルシンボル 入力モジュール内のローカル(非 public)シンボルを IAR XLINK リンカで含 めるかどうかを指定します。無効にした場合は、ローカルシンボルはクロス リファレンスリストに含まれず、出力ファイルには引き渡されません。 コンパイラが生成したローカルシンボル(ジャンプ、定数ラベルなど)を無 視するように設定することもできます。通常は、このようなシンボルはアセ ンブラレベルでのデバッグでのみ必要です。 注 : ローカルシンボルがファイルに出力されるのは、それを指定するオプ ションを使用してコンパイル / アセンブルされた場合だけです。 追加出力 [追加出力]オプションは、追加出力ファイルの生成およびそのフォーマット の指定に使用します。 注 :[ランタイム管理モジュール付き]、[I/O エミュレーションモジュール付 き]のいずれかのオプションを[出力]ページで選択した場合は、[C-SPY 固 IAR Embedded Workbench IDE 364 ユーザガイド UEW-9 XLINK リンカのオプション 有の追加出力ファイルを許可]オプションも選択し、[追加出力]オプション を有効にする必要があります。 図 205: XLINK の追加出力ファイルのオプション [追加出力ファイルの生成]オプションは、ビルドプロセスから追加出力ファ イルを生成する場合に使用します。 [デフォルトのオーバライド]オプションは、デフォルト以外のファイル名を 指定する場合に使用します。名前を指定していない場合は、プロジェクト名 に、選択した出力フォーマットに応じたファイル名拡張子を付けたものが使 用されます。 注 : 出力ファイルが 2 つ生成されるフォーマットを選択した場合は、指定し たファイルタイプは主要出力ファイル(最初のフォーマット)だけに適用さ れます。 [出力形式]ドロップダウンリストを使用して、適切な出力を選択します。 必要に応じて、[フォーマットのバリアント]を使用して、一部の出力 フォーマットのバリアントを選択します。選択可能な項目は、選択した出力 フォーマットによって異なります。 [出力形式]オプションを[デバッグ (ubrof)]、[ubrof] のいずれかに指定した 場合は、ファイル名拡張子が dbg の UBROF 出力ファイルが生成されます。 パート 5 リファレンス情報 UEW-9 365 リスト リスト [リスト]オプションは、XLINK のクロスリファレンスリストの生成を設定 します。 図 206: リンカリストファイルオプション リンカリストの生成 リンカでリストを生成し、projectname.map というファイルに出力します。 セグメントマップ [セグメントマップ]は、セグメントマップを XLINK のリストファイルに含 める場合に使用します。セグメントマップには、すべてのセグメントのリス トがダンプ順で含まれています。 シンボル 以下のオプションを選択できます。 オプション 説明 なし リンカのリストからシンボルを除外します。 シンボルリスト すべてのモジュールのすべてのエントリ(グローバルシンボル) の略式リストを生成。このエントリマップは、ルーチンやデー タエレメントのアドレスをすばやく特定するのに便利です。 モジュールマップ アプリケーション内のすべてのモジュールのすべてのセグメン ト、ローカルシンボル、エントリ(public シンボル)のリストを 生成します。 表 90: XLINK のリストファイルオプション IAR Embedded Workbench IDE 366 ユーザガイド UEW-9 XLINK リンカのオプション モジュールサマリ [モジュールサマリ]オプションは、合計使用メモリに占める各モジュールの メモリ使用率の概要を生成します。 メモリ使用に影響するモジュールだけがリストに含まれます。 無効にしたエントリのインクルード このオプションは、リンクされたモジュール内で、出力に含まれたセグメント パートだけでなく、すべてのセグメントパートをリストファイルに含めるよう に指定します。これにより、不要であったエントリを正確に特定できます。 静的オーバレイマップ コンパイラが静的オーバレイを使用する場合、このオプションを指定すると、 静的オーバレイシステムのリストをリストファイルに含めます。静的オーバ 『IAR リンカおよびライブラリツールリファレ レイマップの詳細については、 ンスガイド』を参照してください。 ファイルフォーマット 以下のオプションを選択できます。 オプション 説明 テキスト 通常のテキストファイル HTML ハイパーリンク付きの HTML フォーマット 表 91: XLINK のリストファイルフォーマットオプション 行 / ページ XLINK のリストでのページあたりの行数を lines の値に設定します。 10 ~ 150 の値に設定する必要があります。 パート 5 リファレンス情報 UEW-9 367 #define #define #define オプションを使用して、シンボルを定義できます。 図 207: リンカのシンボル定義オプション シンボル定義 [定義済みシンボル]は、リンク時に絶対シンボルを定義する場合に使用しま す。これは、設定目的の場合に特に便利です。 プロジェクトで定義するシンボルを入力します。次に例を示します。 TESTVER=1 等号の前後に空白文字を挿入しないでください。 リンカ設定ファイルでは、任意の個数のシンボルを定義できます。この方法 で定義したシンボルは、リンカが生成する ?ABS_ENTRY_MOD という特別なモ ジュールに含まれます。 既存のシンボルを再定義しようとすると、エラーメッセージが表示されます。 IAR Embedded Workbench IDE 368 ユーザガイド UEW-9 XLINK リンカのオプション 診断 [診断]オプションは、IAR XLINK リンカが生成するエラーおよびワーニン グメッセージを決定します。 図 208: リンカ診断オプション 常に出力を生成 [常に出力を生成]は、グローバルエントリの欠落や宣言の重複のような、致 命的でないエラーがリンク手順時に検出された場合でも、出力ファイルを生 成する場合に指定します。通常、エラーが検出された場合、XLINK は出力 ファイルを生成しません。 注 : XLINK は、このオプションが指定されていた場合でも、致命的なエラー 時には常に処理を中止します。 [常に出力を生成]オプションを選択した場合は、欠落したエントリを後から 絶対出力イメージで補完できます。 セグメントオーバラップワーニング [セグメントオーバラップワーニング]は、セグメントオーバラップエラーを ワーニングに引き下げて、クロスリファレンスマップなどを生成できるよう にする場合に使用します。 グローバル型チェックなし [グローバル型チェックなし]は、リンク時のタイプチェックを無効にする場 合に使用します。問題なく記述されたアプリケーションであればこのオプ ションは不要ですが、このオプションが役立つ場合があります。 デフォルトでは、XLINK はリンク時のモジュール間の型チェックを、エント リへの外部参照と PUBLIC エントリを比較することで行います(対象のオブ パート 5 リファレンス情報 UEW-9 369 診断 ジェクトモジュールに情報が存在する場合)。不一致がある場合は、ワーニン グが発生します。 範囲チェック [範囲チェック]は、アドレス範囲の指定に使用します。下表に、IDE の範囲 チェックオプションを示します。 オプション 説明 エラー生成 エラーメッセージが発生 ワーニングを生成 範囲エラーをワーニングとして処理 無効 アドレスレンジチェックを無効化 表 92: XLINK の範囲チェックオプション アドレスがターゲット CPU のアドレス範囲外(コード、外部データ、内部 データのアドレス)に再配置された場合は、エラーメッセージを発します。 通常、このエラーメッセージは、アセンブラ言語モジュールかセグメント配 置にエラーがあることを示します。 ワーニング / エラー デフォルトでは、IAR XLINK リンカは、生成されたコードが正常であって も、何らかの問題が考えられる場合にワーニングを発します。[ワーニング / エラー]オプションを使用して、すべてのワーニングを無効 / 有効にしたり、 エラーとワーニングの重大度の区分を変更したりできます。 『IAR リンカおよびライブ ワーニングやエラーメッセージの詳細については、 ラリツールリファレンスガイド』を参照してください。 ワーニングやエラーメッセージの発生を制御するには、以下のオプションを 使用します。 すべてのワーニングを無効化 すべてのワーニングを無効にします。 診断を無効化 指定したタグの診断の出力を無効にします。 たとえば、w117 および w177 のワーニングを無効にするには、w117,w177 と 入力します。 ワーニングとして処理 : このオプションは、エラーをワーニングとして処理する場合に使用します。た とえば、エラー 106 をワーニングとして処理するには、e106 と入力します。 IAR Embedded Workbench IDE 370 ユーザガイド UEW-9 XLINK リンカのオプション エラーとして処理 このオプションは、ワーニングをエラーとして処理する場合に使用します。 たとえば、ワーニング 26 をエラーとして処理するには、w26 と入力します。 チェックサム [チェックサム]オプションを使用して、コードの生成方法の詳細を指定でき ます。 図 209: リンカのチェックサムおよびフィルオプション 未使用コードメモリをフィルする [未使用コードメモリをフィルする]は、リンカにより生じたセグメントパー ト間のギャップに、ユーザが指定した値を設定する場合に使用します。アラ インメントの制限がある場合や、セグメント配置オプションで設定された範 囲の最後などに、リンカがギャップを生成することがあります。 デフォルト(このオプションは未使用)では、出力ファイルではギャップに 値が設定されません。 [未使用コードメモリをフィルする]は、指定された範囲に未使用のメモリを フィルする場合に使用します。 フィルパターン このオプションは、セグメントパート間のギャップに設定する値のサイズを 16 進数表記で指定します。 パート 5 リファレンス情報 UEW-9 371 チェックサム 開始アドレス このオプションを使用して、フィルする範囲の開始アドレスを指定します。 終了アドレス このオプションを使用して、フィルする範囲の終了アドレスを指定します。 チェックサム生成 [チェックサム生成]は、生成されるすべての raw データバイトのチェックサ ムを生成する場合に使用します。このオプションは、[未使用コードメモリを フィルする]オプションを指定している場合にだけ使用できます。 [チェックサム生成]は、指定した範囲のチェックサムに使用します。 サイズ [サイズ]は、チェックサムのバイト数 (1、2、4) を指定します。 アラインメント チェックサムのアラインメントを指定する場合に使用します。アラインメン トを明示的に指定しない場合は、2 のアラインメントが使用されます。 アルゴリズム 使用可能なアルゴリズムは、以下のとおりです。 アルゴリズム 説明 算術合計 単純な算術合計 結果は 8 ビットに切り詰められます。[フルサ イズでの結果]オプションを使用して、指定サイズの結果を取 得します。 CRC16 CRC16、生成多項式 0x11021(デフォルト) CRC32 CRC32、生成多項式 0x104C11DB7 CRC 多項式 入力した値の生成多項式による CRC 表 93: リンカのチェックサムアルゴリズム 補数 [補数]ドロップダウンリストを使用して、1 の補数か 2 の補数を指定します。 IAR Embedded Workbench IDE 372 ユーザガイド UEW-9 XLINK リンカのオプション ビット順 デフォルトでは、結果の最上位の 1 バイト、2 バイト、4 バイトのいずれか ([MSB]) が、プロセッサの通常のバイトオーダで出力されます。最下位バイ トを出力する場合は、 [ビット順]ドロップダウンリストから [LSB] を選択 します。 初期値 チェックサムの初期値を指定する場合に使用します。これは、使用するマイ クロコントローラに専用のチェックサム計算があり、その計算をリンカが実 行する計算に一致させる場合に使用します。 追加オプション [追加オプション]ページは、リンカへのコマンドラインインタフェースを提 供します。 図 210: リンカ用の[追加オプション]ページ コマンドラインオプションの使用 リンカに(GUI では指定できない)コマンドライン引数を追加指定できます。 パート 5 リファレンス情報 UEW-9 373 追加オプション IAR Embedded Workbench IDE 374 ユーザガイド UEW-9 ILINK リンカのオプション この章では、IAR Embedded Workbench® IDE で使用できるリンカオプ ションについて説明します。XLINK リンカの場合は、359 ページの XLINK リンカのオプションを参照してください。 オプションの設定方法の詳細については、75 ページのオプションの設 定を参照してください。 設定 [設定]オプションを使用すると、リンカ設定ファイルのパスと名前を指定し て、設定ファイルにシンボルを定義することができます。 図 211: リンカ設定オプション リンカ設定ファイル デフォルトのリンカ設定ファイルは、使用するプロジェクト設定に応じて自 動的に選択されます。これをオーバーライド fi するには、[デフォルトのオー バライド]オプションを選択し、他のファイルを指定することで、デフォル ト以外のリンカコマンドファイルを指定します。 引数変数 $TOOLKIT_DIR$ か $PROJ_DIR$ をここに入力し、プロジェクト固有 の設定ファイルか定義済みの設定ファイルを指定することもできます。 パート 5 リファレンス情報 UEW-9 375 ライブラリ リンカ設定ファイルのシンボル定義 設定ファイルで使用する常時設定シンボルを定義します。このようなシンボ ルは、リンカ設定ファイルの define symbol ディレクティブを使用して定義 したシンボルと同じ効果があります。 ライブラリ [ライブラリ]ページのオプションを使用すると、ライブラリの設定値を利用 できます。 図 212: [ライブラリの使用]ページ 使用可能なライブラリの詳細については、『コンパイラのドキュメント』を参 照してください。 自動ランタイムライブラリ選択 このオプションは、ILINK でプロジェクト設定値に基づいて適切なライブラ リを自動的に選択する場合に使用します。 C-SPY デバッグサポートを含める このオプションは、デバッグするアプリケーションとデバッガ自体の通信の ためにデバッグライブラリを含めるときに選択します。 IAR Embedded Workbench IDE 376 ユーザガイド ILINK リンカのオプション バッファした書込み C-SPY でのプログラム実行中に、文字が生成されるごとに C-SPY の[ターミ ナル I/O]ウィンドウに即座に出力する代わりに、出力をバッファに格納しま す。このオプションは、通信速度が遅いデバッガシステムを使用する場合に 便利です。 追加ライブラリ テキストボックスを使用して、リンカプロセス中にリンカが追加する追加ラ イブラリを指定します。ライブラリは 1 行に 1 つしか指定できず、ライブラ リへのフルパスを指定する必要があります。引数変数 $PROJ_DIR$ と $TOOLKIT_DIR$ が使用できます。 または、[ワークスペース]ウィンドウで補足のライブラリをプロジェクトに 直接追加することができます。この例は、ライブラリの作成および使用の チュートリアルにあります。 フォルトプログラムエントリのオーバライド デフォルトでは、プログラムエントリには __iar_program_start というラ ベルが設定されています。リンカは、プログラムエントリラベルを含むモ ジュールが含まれていて、そのラベルを含むセクションが破棄されていない ことを確認します。 [フォルトプログラムエントリのオーバライド]オプションは、デフォルトの エントリラベルをオーバライドする場合に使用します。以下から選択します。 エントリシンボル デフォルトで使用するシンボルとは異なるエントリシンボルを 指定します。テキストフィールドを使用して、プログラムエン トリに使用する __iar_program_start 以外のシンボルを指 定します。 アプリケーションで エントリシンボルの使用を無効にします。リンカは、通常と同 定義 様に、すべてのプログラムモジュールと、すべてのシンボル参 照に必要なライブラリモジュールを含め、root 属性が設定され たすべてのセクション、またはそのようなセクションから直接 的 / 間接的に参照されるすべてのセクションを保持します。 パート 5 リファレンス情報 UEW-9 377 入力 入力 [入力]オプションは、リンカへの入力を処理する方法を指定する場合に使用 します。 図 213: ILINK 入力ファイルオプション シンボルをキープ 一般的にリンカでは、アプリケーションで必要なシンボルのみを保存します。 テキストボックスを使用して、最終的なアプリケーションに常に含める、1 つ またはコンマで区切った複数のシンボルを指定します。 未処理バイナリイメージ [未処理バイナリイメージ]オプションは、通常の入力ファイル以外に、ピュ アバイナリファイルをリンクする場合に使用します。テキストボックスを使 用して、以下のパラメータを指定します。 ファイル リンクするバイナリファイルを入力します。 シンボル バイナリデータが配置されるセクションにより定義されるシンボル を入力します。 セクション バイナリデータを配置するセクションを入力します。 アライメント バイナリデータが配置されるセクションのアラインメントを入力し ます。 ファイルの内容全体が、指定したセクションに配置されます。つまり、この セクションはロウバイナリ出力フォーマットなどのピュアバイナリデータだ けを含むことができます。指定したファイルの内容が配置されるセクション IAR Embedded Workbench IDE 378 ユーザガイド UEW-9 ILINK リンカのオプション は、指定したシンボルがアプリケーションで要求される場合にだけ含まれま す。シンボルを強制的に参照するには、--keep リンカオプションを使用しま す。単一出力ファイルおよび --keep オプションについては、『コンパイラの ドキュメント』を参照してください。 出力 [出力]オプションは、出力の詳細を指定するときに使用します。 図 214: ILINK 出力ファイルオプション 出力ファイル [出力ファイル]を使用して、ILINK の出力ファイルの名前を指定します。 名前を指定していない場合は、プロジェクト名にファイル名拡張子 axx を 付けたものが使用されます。 出力ファイルにデバッグ情報を含める [出力ファイルにデバッグ情報を含める]は、リンカで ELF 出力ファイル (デバッグ情報の DWARF を含む)を生成する場合に使用します。 パート 5 リファレンス情報 UEW-9 379 リスト リスト [リスト]オプションは、リンカリストの生成を設定します。 図 215: リンカ診断オプション リンカマップファイルの表示 [リンカマップファイルの表示]オプションは、リンカメモリマップファイル の作成に使用します。マップファイル名には、拡張子 map が付いています。 マップファイルとその内容に関する詳細については、『コンパイラのドキュメ ント』を参照してください。 ログファイルの生成 [ログファイルの生成]オプションは、ログ情報をファイルに保存する場合に 使用します。ログファイルは list ディレクトリに置かれ、ファイル名の拡張 子 log が付きます。ログ情報は、実行可能なイメージが現在の状態になった 原因を把握するために利用できる場合があります。以下のログをオプション で選択できます。 IAR Embedded Workbench IDE 380 ユーザガイド UEW-9 ● ライブラリ自動選択 ● 初期化決定 ● モジュール選択 ● リダイレクトされたシンボル ● セクション選択 ● 未使用のセクションフラグメント ILINK リンカのオプション #define #define オプションを使用して、シンボルを定義できます。 図 216: リンカのシンボル定義オプション シンボル定義 [定義済みシンボル]は、リンク時に絶対シンボルを定義する場合に使用しま す。これは、設定目的の場合に特に便利です。 プロジェクトで定義するシンボルを入力します。次に例を示します。 TESTVER=1 等号の前後に空白文字を挿入しないでください。 リンカ設定ファイルでは、任意の個数のシンボルを定義できます。この方法 で定義したシンボルは、リンカが生成する ?ABS_ENTRY_MOD という特別なモ ジュールに含まれます。 既存のシンボルを再定義しようとすると、エラーメッセージが表示されます。 診断 [診断]オプションは、診断の分類 / 表示方法を設定します。デフォルト以外 の分類を指定する場合に使用します。 パート 5 リファレンス情報 UEW-9 381 診断 注 : 致命的なエラーの表示を無効にする、あるいは致命的なエラーの分類を 変更することはできません。 図 217: リンカ診断オプション リマークを有効化 最も軽度の診断メッセージを、リマークと呼びます。リマークは、生成した コードで異常な動作の原因となる可能性がある構造を示します。 デフォルトでは、リマークは出力されません。リンカでリマークを生成する 場合は、[リマーク を有効化]オプションを選択します。 診断を無効化 指定したタグの診断の出力を無効にします。 たとえば、Pe117 および Pe177 のワーニングを無効にするには、次のように 入力します。 Pe117,Pe177 リマークとして処理 リマークは、最も軽度の診断メッセージです。リマークは、生成したコードま たは実行可能なイメージで異常な動作の原因となる可能性がある構造を示しま す。このオプションは、診断をリマークとして分類する場合に使用します。 たとえば、Pe117 のワーニングをリマークとして分類するには、次のように 入力します。 Pe177 IAR Embedded Workbench IDE 382 ユーザガイド UEW-9 ILINK リンカのオプション ワーニングとして処理 ワーニングは、問題はあるが、リンク処理の終了前にリンカが終了する原因 にはならないエラーや脱落を示します。このオプションは、診断メッセージ をワーニングとして分類する場合に使用します。 たとえば、Pe826 のリマークをワーニングとして分類するには、次のように 入力します。 Pe826 エラーとして処理 エラーは、リンクの規則違反のうち、実行可能なイメージが生成されず、終 了コードがゼロ以外になるものを示します。このオプションは、診断メッ セージをエラーとして分類する場合に使用します。 たとえば、Pe117 のワーニングをエラーとして分類するには、次のように入 力します。 Pe117 すべてのワーニングをエラーとして処理 このオプションは、リンカでワーニングをエラーとして処理する場合に使用 します。リンカがエラーを検出した場合は、実行可能イメージは生成されま せん。 パート 5 リファレンス情報 UEW-9 383 チェックサム チェックサム [チェックサム]オプションを使用して、コードの生成方法の詳細を指定でき ます。 図 218: リンカのチェックサムおよびフィルオプション フィリングおよびチェックサムに関する詳細については、『コンパイラのド キュメント』を参照してください。 未使用コードメモリをフィルする [未使用コードメモリをフィルする]は、リンカにより生じたセグメントパー ト間のギャップに、ユーザが指定した値を設定する場合に使用します。アラ インメントの制限がある場合や、セグメント配置オプションで設定された範 囲の最後などに、リンカがギャップを生成することがあります。 デフォルト(このオプションは未使用)では、出力ファイルではギャップに 値が設定されません。 [未使用コードメモリをフィルする]は、指定された範囲に未使用のメモリを フィルする場合に使用します。 フィルパターン このオプションは、セグメントパート間のギャップに設定する値のサイズを 16 進数表記で指定します。 開始アドレス このオプションを使用して、フィルする範囲の開始アドレスを指定します。 IAR Embedded Workbench IDE 384 ユーザガイド UEW-9 ILINK リンカのオプション 終了アドレス このオプションを使用して、フィルする範囲の終了アドレスを指定します。 チェックサム生成 [チェックサム生成]は、生成されるすべての raw データバイトのチェックサ ムを生成する場合に使用します。このオプションは、[未使用コードメモリを フィルする]オプションを指定している場合にだけ使用できます。 [チェックサム生成]は、指定した範囲のチェックサムに使用します。 サイズ [サイズ]は、チェックサムのバイト数 (1、2、4) を指定します。 アラインメント チェックサムのアラインメントを指定する場合に使用します。アラインメン トを明示的に指定しない場合は、2 のアラインメントが使用されます。 アルゴリズム 使用可能なアルゴリズムは、以下のとおりです。 アルゴリズム 説明 算術合計 単純な算術合計 結果は 8 ビットに切り詰められます。[フルサ イズでの結果]オプションを使用して、指定サイズの結果を取 得します。 CRC16 CRC16、生成多項式 0x11021(デフォルト) CRC32 CRC32、生成多項式 0x104C11DB7 CRC 多項式 入力した値の生成多項式による CRC 表 94: リンカのチェックサムアルゴリズム 補数 [補数]ドロップダウンリストを使用して、1 の補数か 2 の補数を指定します。 ビット順 デフォルトでは、結果の最上位の 1 バイト、2 バイト、4 バイトのいずれか ([MSB]) が、プロセッサの通常のバイトオーダで出力されます。最下位バイ トを出力する場合は、[ビット順]ドロップダウンリストから [LSB] を選択 します。 パート 5 リファレンス情報 UEW-9 385 追加オプション 初期値 チェックサムの初期値を指定する場合に使用します。これは、使用するマイ クロコントローラに専用のチェックサム計算があり、その計算をリンカが実 行する計算に一致させる場合に使用します。 追加オプション [追加オプション]ページは、リンカへのコマンドラインインタフェースを提 供します。 図 219: リンカ用の[追加オプション]ページ コマンドラインオプションの使用 リンカに(GUI では指定できない)コマンドライン引数を追加指定できます。 IAR Embedded Workbench IDE 386 ユーザガイド UEW-9 ライブラリビルダオプション この章では、IAR Embedded Workbench® IDE のライブラリビルダオプ ションについて説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 出力 ライブラリビルダのオプションはデフォルトでは使用できません。これらの オプションを IDE で設定するには、先にライブラリビルダツールをカテゴリ リストに追加する必要があります。[プロジェクト]>[オプション]を選択 して[オプション]ダイアログボックスを表示し、[一般オプション]カテゴ リを選択します。[出力]ページで、[ライブラリ]オプションを選択します。 [ライブラリ]オプションを選択した場合は、[ライブラリビルダ]が[オプ ション]ダイアログボックスでカテゴリとして表示されます。ビルドプロセ スの結果、ライブラリビルダではライブラリ出力ファイルを作成します。ラ イブラリを作成する前に、出力オプションを設定できます。 パート 5 リファレンス情報 UEW-9 387 出力 オプションを設定するには、カテゴリリストから[ライブラリビルダ]を選 択し、オプションを選択します。 図 220: ライブラリビルダの出力オプション すべての設定をデフォルトの出荷時の設定に戻すには、[出荷時設定]ボタン をクリックします。 [出力ファイル]オプションは、デフォルト以外の出力ファイル名の指定に使 用します。新しい名前を[デフォルトのオーバライド]テキストボックスに 入力します。 IAR Embedded Workbench IDE 388 ユーザガイド UEW-9 デバッガオプション この章では、IAR Embedded Workbench® IDE の C-SPY® オプションに ついて説明します。 オプションの設定方法の詳細については、75 ページのオプションの 設定を参照してください。 また、C-SPY ハードウェアデバッガシステムに固有のオプションにつ いては、[ヘルプ]メニューからオンラインヘルプシステムを参照し てください。 設定 IDE で C-SPY オプションを設定するには、[プロジェクト]>[オプション] を選択して、[オプション]ダイアログボックスを表示します。次に、デバッ ガ[カテゴリ]リストでを選択します。[設定]ページでは、一般的な C-SPY オプションを設定します。 図 221: 一般的な C-SPY オプション すべての設定をデフォルトの出荷時設定に戻すには、[工場出荷時設定]ボタ ンをクリックします。 [設定]オプションは、使用する C-SPY ドライバ、セットアップマクロファ イル、デバイス記述ファイルと、デフォルトでソースコードのどの位置まで 実行するかを指定します。 パート 5 リファレンス情報 UEW-9 389 設定 ドライバ C-SPY で使用するドライバ(シミュレータやエミュレータなど)を選択し ます。 使用可能な C-SPY ドライバの最新情報については、販売代理店か IAR システ ムズの担当者までお問い合せいただくか、IAR システムズの Web サイト (www.iar.com/jp) を参照してください。 指定位置まで実行 このオプションは、C-SPY の起動時や、リセット後に、ソースコードでどの 位置まで実行するかを指定する場合に使用します。 デフォルトでは、main 関数まで実行します。他の位置まで実行する場合は、 その位置の名前を入力します。アセンブララベルかそれに相当するもの(関 数名など)を指定できます。 オプションを選択していない場合は、リセットごとにプログラムカウンタに 通常のハードウェアリセットアドレスが格納されます。 セットアップマクロ C-SPY の起動シーケンスでセットアップマクロの内容を登録するには、 [マク ロファイルの 使用]を選択し、セットアップファイルのパスと名前 (SetupSimple.mac など)を入力します。拡張子を指定していない場合は、 mac が使用されます。参照ボタンを使用して選択することもできます。 デバイス記述ファイル このオプションは、デバイス固有情報を含むデバイス記述ファイルをロード する場合に使用します。 デバイス記述ファイルについては、103 ページのデバイス記述ファイルの選 択を参照してください。 デバイス記述ファイルは cpuname\config ディレクトリにあり、ファイル名 拡張子 ddf が付いています。 ダウンロード C-SPY ドライバに固有のオプションについては、 [ヘルプ]メニューのオンラ インヘルプシステムを参照してください。 IAR Embedded Workbench IDE 390 ユーザガイド UEW-9 デバッガオプション 追加オプション [追加オプション]ページは、C-SPY へのコマンドラインインタフェースを提 供します。 図 222: C-SPY 用の[追加オプション]ページ コマンドラインオプションの使用 C-SPY の追加コマンドライン引数(GUI では未サポート)をここで指定でき ます。 イメージ [イメージ]ページでは、ダウンロードするその他のデバッグファイルを指定 できます。 図 223: C-SPY の[イメージ]ページ パート 5 リファレンス情報 UEW-9 391 プラグイン 追加イメージを使用する テキストボックスを使用して、ダウンロードする追加イメージを指定します。 パス ダウンロードするデバッグファイルを指定します。参照 ボタンを使用して選択することもできます。 ダウンロードを中止する 完全なデバッグファイルではなく、デバッグ情報のみを ダウンロードします。 4 つ以上のイメージをダウンロードするには、関連の C-SPY マクロを使用し ます(415 ページの __loadImage を参照)。 プラグイン [プラグイン]ページでは、デバッグセッションでロードして使用する C-SPY プラグインモジュールを指定します。IAR システムズやサードパーティ製の プラグインモジュールを使用できます。使用可能なモジュールについては、 ソフトウェア販売代理店または IAR システムズの担当者までお問い合せくだ さい。また、IAR システムズの Web サイトでも情報を提供しています。 図 224: C-SPY プラグインオプション デフォルトでは、[ロードするプラグインの選択]に、製品に付属のプラグイ ンモジュールが表示されます。 サードパーティ製の C-SPY プラグインモジュールがある場合は、それらもリ ストに表示されます。 common\plugins ディレクトリは、汎用プラグインモジュールに使用します。 cpuname\plugins ディレクトリは、ターゲット専用プラグインモジュールに 使用します。 IAR Embedded Workbench IDE 392 ユーザガイド UEW-9 C-SPY コマンドラインユー ティリティ — cspybat C-SPY コマンドラインユーティリティの cspybat.exe は、IAR C-SPY デ バッガをバッチモードで実行できます。この章では、このユーティリ ティについて説明します。 C-SPY をバッチモードで使用 コマンドラインユーティリティの cspybat を使用すると、C-SPY をバッチ モードで実行できます。このユーティリティは、common\bin ディレクトリに インストールされています。 呼出し構文 cspybat の呼出し構文は以下のとおりです。 cspybat processor_DLL driver_DLL debug_file [cspybat_options] --backend driver_options 注 : ファイル名(DLL ファイルも含む)が要求される場合には、ファイル名 のフルパスを指定することが推奨されます。 パラメータ パラメータを以下に示します。 パラメータ 説明 processor_DLL プロセッサ固有の DLL ファイルです。cpuname\bin にあり ます。 driver_DLL C-SPY ドライバ DLL ファイルです。cpuname\bin にあります。 debug_file デバッグ対象のオブジェクトファイルです(ファイル名拡張子 dxx)。 cspybat_options cspybat に渡すコマンドラインオプションです。これらのオ プションは省略可能です。それぞれのオプションについては、 396 ページの C-SPY コマンドラインオプションの詳細を参照し てください。 表 95: cspybat のパラメータ パート 5 リファレンス情報 UEW-9 393 C-SPY をバッチモードで使用 パラメータ 説明 --backend C-SPY ドライバに送信するパラメータの開始を示します。後に 続くすべてのオプションがドライバに渡されます。このオプ ションは必須です。 driver_options C-SPY ドライバに渡すコマンドラインオプションです。これら のオプションには、必須のものと省略可能なものがあります。 それぞれのオプションについては、396 ページの C-SPY コマン ドラインオプションの詳細を参照してください。 表 95: cspybat のパラメータ ( 続き ) 例 以下の例では、シミュレータドライバを使用して cspybat を起動します。 EW_DIR\common\bin\cspybat EW_DIR\cpuname\bin\cpunameproc.dll EW_DIR\cpuname\bin\cpunamesim.dll PROJ_DIR\myproject.dxx --plugin EW_DIR\cpuname\bin\cpunamebat.dll --backend -B -p EW_DIR\cpuname\bin\config\devicedescription.ddf ここで、EW_DIR は IAR Embedded Workbench のインストール先ディレクトリ のフルパス、 PROJ_DIR はプロジェクトディレクトリのパスです。 詳細な例については、[ヘルプ]メニューからオンラインヘルプシステムを 参照してください。または、cpuname\doc ディレクトリの HelpCPUNAMEIDE2.chm ファイルを参照してください。 出力 cspybat の実行時、以下のタイプの出力を生成できます。 ● cspybat 自身からのターミナル出力 このターミナル出力はすべて stderr に転送されます。コマンドラインか ら引数なしで cspybat を実行する場合、cspybat のバージョン番号と利用 可能なすべてのオプション(簡単な説明を含む)が stdout に転送され、 画面に表示されます。 ● デバッグ対象アプリケーションからのターミナル出力 このターミナル出力はすべて stdout に転送されます。 ● エラーリターンコード cspybat は、バッチファイル内で評価可能なステータス情報をホストオペ レーティングシステムに返します。成功の場合は値 int 0 が返され、失敗 の場合は値 int 1 が返されます。 IAR Embedded Workbench IDE 394 ユーザガイド UEW-9 C-SPY コマンドラインユーティリティ — cspybat 自動生成されたバッチファイルの使用 IDE で C-SPY を使用する場合、C-SPY が初期化されるたびに projectname.cspy.bat というバッチファイルが C-SPY から生成されます。 このファイルは、$PROJ_DIR$\settings ディレクトリに保存されています。 このバッチファイルには、IDE での設定と同じ設定が記述されており、最小 限の変更を加えることにより、このファイルをコマンドラインから使用して cspybat を起動することができます。このファイルには、必要な変更に関す る情報も記述されています。 C-SPY コマンドラインオプション CSPYBAT の一般オプション --backend C-SPY ドライバに送信するパラメータの開始を示します(必須)。 --code_coverage_file コードカバレッジ情報の生成を可能にして、それを指定ファイル に記録します。 --cycles 実行するサイクルの最大回数を指定します。 --download_only 後でデバッグセッションを開始せずにフラッシュローダを実行し ます。 --flash_loader フラッシュローダ仕様 XML ファイルを指定します。(IAR フラッ シュローダのメカニズムをサポートする製品パッケージのみ) --macro 使用するマクロファイルを指定します。 --plugin 使用するマクロファイルを指定します。 --silent サインオンメッセージを省略します。 --timeout 最長実行時間を設定します。 すべての C-SPY ドライバで使用可能なオプション -B バッチモードを有効化します(必須)。 -p 使用するデバイス記述ファイルを指定します。 ターゲット固有のオプションが他にも利用できる場合もあります。利用可能 なオプションの一覧については、[ヘルプ]メニューからオンラインヘルプシ ステムを参照してください。または、cpuname\doc ディレクトリの HelpCPUNAMEIDE2.chm ファイルを参照してください。 パート 5 リファレンス情報 UEW-9 395 C-SPY コマンドラインオプションの詳細 シミュレータドライバで使用可能なオプション --disable_interrupts 割込みシミュレーションを無効化します。 --mapu メモリアクセスチェックをアクティブにします。 使用可能なオプションの一覧については、[ヘルプ]メニューからオンライン ヘルプシステムを参照してください。または、cpuname\doc ディレクトリの HelpCPUNAMEIDE2.chm ファイルを参照してください。 C-SPY ハードウェアドライバで使用可能なオプション 使用可能なオプションの一覧については、[ヘルプ]メニューからオンライン ヘルプシステムを参照してください。または、cpuname\doc ディレクトリの HelpCPUNAMEIDE2.chm ファイルを参照してください。 C-SPY コマンドラインオプションの詳細 ここでは、cspybat の各オプションおよび C-SPY ドライバで使用可能な各オ プションに関する詳細なリファレンス情報を提供します。 -B 構文 -B 適用範囲 すべての C-SPY ドライバ 説明 このオプションは、バッチモードを有効にするときに使用します。 --backend 構文 --backend {driver options} パラメータ driver options 適用範囲 cspybat への送信(必須) 説明 このオプションは、各種オプションを C-SPY ドライバに送信するときに使用 します。--backend の後に続くすべてのオプションは、C-SPY ドライバに送 信され、cspybat 自身では処理されません。 IAR Embedded Workbench IDE 396 ユーザガイド UEW-9 使用している C-SPY ドライバで使用可能なすべてのオプション。 C-SPY コマンドラインユーティリティ — cspybat --code_coverage_file 構文 --code_coverage_file file パラメータ file コードカバレッジ情報の対象ファイル名。 適用範囲 cspybat への送信 説明 このオプションを使用して、コードカバレッジ情報の生成を有効にします。 コードカバレッジ情報は実行が完了した後に生成され、指定したファイルに 保存されます。 このオプションでは、使用する C-SPY ドライバがコードカバレッジをサポー トしている必要があります。このオプションをコードカバレッジをサポート していない C-SPY ドライバで使用すると、エラーメッセージが stderr に出 力されます。 関連項目 310 ページの[コードカバレッジ]ウィンドウ。 --cycles 構文 --cycles cycles パラメータ cycles 実行するサイクル数。 適用範囲 cspybat への送信 説明 このオプションは、実行するサイクルの最大回数を指定するときに使用しま す。ターゲットプログラムが指定サイクル数より長く実行された場合、ター ゲットプログラムは異常終了されます。このオプションを使用するには、使 用している C-SPY ドライバがサイクルカウンタをサポートし、実行中にサイ クルカウントのサンプリングが可能であることが必要です。 --disable_interrupts 構文 --disable_interrupts 適用範囲 C-SPY シミュレータドライバ パート 5 リファレンス情報 UEW-9 397 C-SPY コマンドラインオプションの詳細 説明 このオプションは、命令シミュレーションを無効にするときに使用します。 このオプションを設定するには、 [シミュレータ]>[割込み設定]を選択し て、 [割込みシミュレーションを有効にする]オプションの選択を解除します。 --download_only 構文 --download_only 適用範囲 cspybat への送信 説明 このオプションを使用して、後でデバッグセッションを開始せずにフラッ シュローダを実行します。 関連項目 IAR Embedded Workbench flash loader User Guide オプションを設定するには、以下のように選択します。 [プロジェクト]>[ダウンロード] --flash_loader 構文 --flash_loader filename パラメータ ファイル名 適用範囲 cspybat への送信 説明 このオプションは、フラッシュのロードに関するすべての関連情報を記述し たフラッシュローダ仕様 xml ファイルを指定するときに使用します。この引 数は複数指定できます。その場合、それぞれの引数が指定の順序で処理され、 複数のフラッシュプログラミングパスが得られます。 関連項目 IAR Embedded Workbench flash loader User Guide IAR Embedded Workbench IDE 398 ユーザガイド UEW-9 フラッシュローダ仕様 XML ファイル。 C-SPY コマンドラインユーティリティ — cspybat --macro 構文 --macro filename パラメータ ファイル名 使用する C-SPY マクロファイル(ファイル名拡張子 mac)。 適用範囲 cspybat への送信 説明 このオプションは、ターゲットアプリケーションを実行する前にロードする C-SPY マクロファイルを指定するときに使用します。このオプションは、1 つのコマンドラインで複数個使用できます。 関連項目 142 ページのマクロファイル。 --mapu 構文 --mapu 適用範囲 C-SPY シミュレータドライバへの送信 説明 このオプションは、デバッグファイル内のセグメント / セクション情報をメ モリアクセスチェックに使用する場合に指定します。すると、実行中に未指 定エリアへのアクセスがシミュレータでチェックされます。未指定エリアへ のアクセスが検出された場合、メッセージが stdout に出力され、実行が停止 されます。 関連項目 159 ページのメモリアクセスチェック。 オプションを設定するには、以下のように選択します。 [シミュレータ]>[メモリアクセス設定] -p 構文 -p filename パラメータ ファイル名 適用範囲 使用するデバイス記述ファイル。 すべての C-SPY ドライバ パート 5 リファレンス情報 UEW-9 399 C-SPY コマンドラインオプションの詳細 説明 このオプションは、使用するデバイス記述ファイルを指定るときに使用し ます。 関連項目 103 ページのデバイス記述ファイルの選択。 --plugin 構文 --plugin filename パラメータ ファイル名 使用するプラグインファイル(ファイル名拡張子 dll)。 適用範囲 cspybat への送信 説明 特定の C/C++ 標準ライブラリ関数(printf など)を、実際のハードウェア デバイスの代わりに、C-SPY([C-SPY ターミナル I/O]ウィンドウなど)で サポートできます。このようなサポートを cspybat で有効にするには、 cpuname\bin ディレクトリにある cpunameLibSupport.dll または cpunamebat.dll という専用のプラグインモジュールを使用する必要があり ます。 このオプションは、このプラグインをデバッグセッション中にインクルード するときに使用します。このオプションは、1 つのコマンドラインで複数個 使用できます。 注 : このオプションは、別のプラグインモジュールのインクルードにも使用 できますが、その場合の条件として、特にモジュールが cspybat で動作可能 であることが必要となります。これは、common\plugin ディレクトリにある C-SPY プラグインモジュールは、通常、cspybat で使用できないことを意味 します。 --silent 構文 --silent 適用範囲 cspybat への送信 説明 このオプションは、サインオンメッセージを省略するときに使用します。 IAR Embedded Workbench IDE 400 ユーザガイド UEW-9 C-SPY コマンドラインユーティリティ — cspybat --timeout 構文 --timeout milliseconds パラメータ milliseconds 実行が停止するまでの時間(ミリ秒)。 適用範囲 cspybat への送信 説明 このオプションを使用して、最長実行時間を制限します。 このオプションは、IDE では使用できません。 パート 5 リファレンス情報 UEW-9 401 C-SPY コマンドラインオプションの詳細 IAR Embedded Workbench IDE 402 ユーザガイド UEW-9 C-SPY マクロリファレンス この章では、C-SPY® マクロのリファレンス情報を収録しています。 最初に、マクロ言語の構文について説明します。次に、使用可能な セットアップマクロ関数と定義済みシステムマクロについて要約し ています。最後に、各システムマクロの詳細を説明します。 マクロ言語 マクロ言語の構文は C 言語に非常によく似ています。C 言語の文に似たマク ロ文があります。マクロ関数を、パラメータやリターン値の有無を指定して定 義できます。C ライブラリ関数のような内蔵システムマクロを使用できます。 最後に、グローバル / ローカルのマクロ変数を定義できます。マクロ関数は、 マクロファイル(ファイル名拡張子は mac)にまとめることができます。 マクロ関数 C-SPY のマクロ関数は、C-SPY 変数定義と、マクロが呼び出されたときに実 行されるマクロ文で構成されます。マクロ関数には任意の個数のパラメータ を引き渡すことができます。また、マクロ関数は終了時に値を返すことがで きます。 C-SPY マクロの形式は、以下のとおりです。 macroName (parameterList) { macroBody } ここで、parameterList にはコンマ区切りのマクロパラメータリスト、 macroBody には C-SPY 変数定義および C-SPY 文を記述します。 タイプチェックは、マクロ関数に引き渡される値とリターン値のいずれでも 実行されません。 定義済みシステムマクロ関数 マクロ言語には、C ライブラリ関数のような、さまざまな定義済みシステム マクロ関数(組込み関数)も含まれています。各システムマクロの詳細につ いては、411 ページの C-SPY システムマクロの説明を参照してください。 パート 5 リファレンス情報 UEW-9 403 マクロ言語 マクロ変数 マクロ変数は、アプリケーション空間外で定義して配置される変数です。配 置された変数は、C-SPY 式で使用することができます。C-SPY の式の詳細に ついては、117 ページの C-SPY 式を参照してください。 マクロ変数を定義する構文は、以下のとおりです。 __var nameList; ここで、nameList にはコンマ区切りの C-SPY 変数名リストを指定します。 マクロ本体の外で定義したマクロ変数は、グローバルスコープになり、デ バッグセッション全体に存在します。マクロ本体内部で定義されたマクロ変 数は、その定義文の実行時に作成され、マクロから戻るときに破棄されます。 デフォルトでは、マクロ変数は符号付き整数として処理され、0 に初期化さ れます。式で C-SPY 変数に値を割り当てると、その式の型も変数に適用され ます。次に例を示します。 式 意味 myvar = 3.5; myvar の型は float、値は 3.5 に設定されます。 myvar = (int*)i; myvar は int 型ポインタになり、値は i と同一です。 表 96: C-SPY マクロ変数の例 C のシンボルと C-SPY マクロ変数の間で名前が重複する場合は、C-SPY マク ロ変数の方が C の変数よりも優先されます。マクロ変数はデバッガホストに 割り当てられるため、アプリケーションは影響されないことに注意してくだ さい。 マクロ文字列 C のデータ型に加えて、マクロ変数に マクロ文字列 の値を保持できます。 マクロ文字列は C 言語文字列と異ななることに、注意してください。 C-SPY 式に "Hello!" などの文字列リテラルを書き込む場合、この値はマク ロ文字列になります。char* はターゲットメモリの文字列を参照する必要が ありますが、C-SPY ではターゲットメモリに実際に存在するいかなる文字列 も使用できないので、これは C- 形式文字ポインタ char* ではありません。 __strFind や __subString などの組込みマクロ関数を使用して、マクロ文字 列を操作できます。結果として新しいマクロ文字列が作成されます。str + "tail" などのような + 演算子を使用して、マクロ文字列を連結できます。 str[3] などのサブスクリプションを使用して、個々の文字も取得できます。 sizeof(str) を使用して、文字列の長さを取得できます。マクロ文字列は NULL 終了ではないことに注意してください。 IAR Embedded Workbench IDE 404 ユーザガイド UEW-9 C-SPY マクロリファレンス マクロ関数 __toString を使用して、アプリケーション内の NULL 終了 C 文 字列(char* または char[])からマクロ文字列に変換します。たとえば、ア プリケーションに以下の C 文字列の定義があると仮定します。 char const *cstr = "Hello"; 次に、以下の例を検討します。 __var str; /* マクロ変数 */ str = cstr /* str は現在、char へのポインタです */ sizeof str /* sizeof (char*) と同様で、通常は 2 か 4 です */ str = __toString(cstr,512) /* str は現在、マクロ文字列です */ sizeof str /* 5、文字列の長さ */ str[1] /* 101、'e' の ASCII コード */ str += " World!" /* str はここで "Hello World!" になります */ 406 ページのフォーマットした出力も参照してください。 マクロ文 マクロ文は、相当する C 文と同様に機能します。以下の C-SPY マクロ文を使 用できます。 式 式; C-SPY の式の詳細については、117 ページの C-SPY 式を参照してください。 条件文 if (式) 文 if (式) 文 else 文 ループ文 for (init_expression; cond_expression; update_expression) 文 while (式) 文 do 文 パート 5 リファレンス情報 UEW-9 405 マクロ言語 while (式); return 文 return; return 式 ; リターン値が明示的に設定されていない場合は、デフォルトでは signed int 0 が返されます。 ブロック マクロ文をブロックとしてグループ化できます。 { statement1 statement2 . . . statementN } フォーマットした出力 C-SPY では、フォーマットした出力をさまざまな方法で生成できます。 __message argList; [デバッグログ]ウィンドウに出力します。 __fmessage file, argList; 指定ファイルに出力します。 __smessage argList; フォーマットした出力を文字列に格納して戻 します。 ここで、argList は C-SPY の式か文字列をコンマで区切ったリストで、file は __openFile システムマクロの実行結果です(417 ページの _ _openFile を参 照)。 例 以下の例のように __message 文を使用します。 var1 = 42; var2 = 37; __message "This line prints the values ", var1, " and ", var2, " in the Log window."; IAR Embedded Workbench IDE 406 ユーザガイド UEW-9 C-SPY マクロリファレンス このマクロを実行すると、以下のメッセージが[ログ]ウィンドウに出力さ れます。 This line prints the values 42 and 37 in the Log window. __fmessage を使用して、次のように指定ファイルに出力を書き込みます。 __fmessage myfile, "Result is ", res, "!\n"; 最後に、__smessage を使用して次のように文字列を生成します。 myMacroVar = __smessage 42, " is the answer."; myMacroVar に、ここで文字列 "42 is the answer" が格納されます。 引数の表示フォーマットの指定 argList のスカラ引数(数値またはポインタ)のデフォルトの表示フォー マットは、後に : およびフォーマット指定子を記述することで 変更すること ができます。指定子として、%b (2 進数)、%o (8 進数)、%d (10 進数)、%x (16 進数)、%c (文字)を使用できます。これらの指定子は、[ウォッチ] ウィンドウや[ロケール]ウィンドウで使用可能なフォーマットと同一です が、プレフィックスや文字列 / 文字の前後の引用符は出力されません。別の 例を示します。 __message "The character '", cvar:%c, "' has the decimal value ", cvar; この場合、次のように出力されます。 The character 'A' has the decimal value 65 注 : 単一引用符で括った文字(文字定数)は整数定数として処理され、文字 としてフォーマットされません。次に例を示します。 __message 'A', " is the numeric value of the character ", 'A':%c; この場合、次のように出力されます。 65 is the numeric value of the character A 注 : 特定タイプ用デフォルトフォーマットは主に[ウォッチ]ウィンドウや その他の関連するウィンドウで使用できるように設計されています。たとえ ば、タイプ char は 'A' (0x41) に、文字(主に C 文字列)用ポインタは 0x8102 "Hello" にフォーマットされるように、文字列部分には文字列の始めの部分 (現在、60 文字まで)が表示されます。 char* 型の値の出力時にフォーマット指定子 %x を使用して、ポインタ値を 16 進数表記で出力するか、またはシステムマクロ __toString を使用して全文 字列値を取得します。 パート 5 リファレンス情報 UEW-9 407 セットアップマクロ関数のまとめ セットアップマクロ関数のまとめ 使用可能なセットアップマクロ関数の概要を以下の表に示します。 マクロ 説明 execUserPreload ターゲットシステムとの通信確立後、ターゲットアプリケー ションのダウンロード前に呼び出します。 このマクロは、データを適切にロードするために必要なメモ リアドレス(ロケーション)/ レジスタを初期化する場合に 実装します。 execUserFlashInit execUserSetup フラッシュローダが RAM にダウンロードされる前に一度呼 び出します。通常、このマクロは、フラッシュローダで必 要なメモリマップを設定する場合に実装します。このマク ロは、フラッシュのプログラミング時に一度だけ呼び出し ます。また、フラッシュローダ機能用にのみ使用します。 (フラッシュローダの使用をサポートするパッケージのみ) ターゲットアプリケーションのダウンロード後に一度呼び出 します。 このマクロは、メモリマップ、ブレークポイント、割込み、 レジスタマクロファイルなどの設定を行う場合に実装します。 execUserFlashReset フラッシュローダが RAM にダウンロードされた後、フラッ シュローダの実行前に一度呼び出します。このマクロは、フ ラッシュのプログラミング時に一度だけ呼び出します。また、 フラッシュローダ機能用にのみ使用します。 (フラッシュロー ダの使用をサポートするパッケージのみ) execUserReset リセットコマンドの実行ごとに呼び出します。 このマクロは、データの設定 / 復元を行う場合に実装します。 execUserExit デバッグセッションの終了時に一度呼び出します。 このマクロは、状態データなどの保存を行う場合に実装し ます。 execUserFlashExit デバッグセッションの終了時に一度呼び出します。 このマクロは、状態データなどの保存を行う場合に実装しま す。このマクロは、フラッシュローダ機能用に使用します。 (フラッシュローダの使用をサポートするパッケージのみ) 表 97: C-SPY セットアップマクロ 注記 : システム起動時に実行されるマクロファイル(execUserSetup を使用) で割込みやブレークポイントを定義する場合は、システム終了時にそれらが 削除(execUserExit を使用)されていることを確認してください。 SetupSimple.mac で使用可能な例については、 「39 ページの割込みシミュ レーション」を参照してください。 IAR Embedded Workbench IDE 408 ユーザガイド UEW-9 C-SPY マクロリファレンス シミュレータでは割込み設定がセッション終了後も保持されるため、削除し ていない場合、execUserSetup の実行ごとに重複して作成されます。これが 原因で、実行速度が大幅に低下します。 C-SPY システムマクロのまとめ 以下の表に定義済みシステムマクロをまとめています。 マクロ 説明 __cancelAllInterrupts 設定されたすべての割込みを取り消します。 __cancelInterrupt 割込みを取り消します。 __clearBreak ブレークポイントを削除します。 __closeFile __openFile で開かれたファイルを閉じます。 __delay 実行を遅らせます。 __disableInterrupts 割込み生成を無効にします。 __driverType ドライバタイプを確認します。 __enableInterrupts 割込み生成を有効にします。 __evaluate 入力文字列を式として解釈して、評価します。 __isBatchMode C-SPY がバッチモードで実行中かどうかを チェックします。 __loadImage イメージをロードします。 __memoryRestore ファイルの内容を指定したメモリゾーンに復元 します。 __memorySave 指定したメモリエリアの内容をファイルに保存 します。 __openFile ファイルを入出力処理用に開きます。 __orderInterrupt 割込みを生成します。 __popSimulatorInterruptExecutingStack 割込みシミュレーションシステムに、割込みハ ンドラの実行が終了したことを通知します。 __readFile 指定したファイルからリードします。 __readFileByte 指定したファイルから 1 バイトリードします。 __readMemory8, __readMemoryByte 指定したメモリアドレス(ロケーション)から 1 バイトリードします。 __readMemory16 指定したメモリアドレス(ロケーション)から 2 バイトリードします。 表 98: システムマクロのまとめ パート 5 リファレンス情報 UEW-9 409 C-SPY システムマクロのまとめ マクロ 説明 __readMemory32 指定したメモリアドレス(ロケーション)から 4 バイトリードします。 __registerMacroFile 指定したファイルからマクロを登録します。 __resetFile __openFile で開かれたファイル内の位置を先頭に 戻します。 __setCodeBreak コードブレークポイントを設定します。 __setDataBreak データブレークポイントを設定します。 __setLogBreak ログブレークポイントを設定します。 __setSimBreak シミュレーションブレークポイントを設定し ます。 __setTraceStartBreak トレース開始ブレークポイントを設定します。 __setTraceStopBreak トレース停止ブレークポイントを設定します。 __sourcePosition 現在の実行位置がソース位置に対応する場合、 ファイル名とソース位置を返します。 __strFind 指定した文字列で別の文字列を検索します __subString 文字列から部分文字列を抽出します。 __targetDebuggerVersion ターゲットデバッガのバージョンを返します。 __toLower パラメータ文字列のコピーを、すべての文字を 小文字に変換して返します。 __toString 文字列を出力します。 __toUpper パラメータ文字列のコピーを、すべての文字を 大文字に変換して返します。 __writeFile 指定したファイルにライトします。 __writeFileByte 指定したファイルに 1 バイトライトします。 __writeMemory8, __writeMemoryByte 指定したメモリアドレス(ロケーション)に 1 バイトライトします。 __writeMemory16 指定したメモリアドレス(ロケーション)に 2 バイトワードをライトします。 __writeMemory32 指定したメモリアドレス(ロケーション)に 4 バイトワードをライトします。 表 98: システムマクロのまとめ (続き) IAR Embedded Workbench IDE 410 ユーザガイド UEW-9 C-SPY マクロリファレンス C-SPY システムマクロの説明 ここでは、各 C-SPY システムマクロのリファレンスを収録しています。 __cancelAllInterrupts 構文 __cancelAllInterrupts() リターン値 int 0 説明 設定されたすべての割込みを取り消します。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 __cancelInterrupt 構文 __cancelInterrupt(interrupt_id) パラメータ interrupt_id 対応する で返される値 __orderInterrupt macro call (unsigned long) リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 99: __cancelInterrupt のリターン値 説明 指定した割込みを取り消します。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 __clearBreak 構文 __clearBreak(break_id) パラメータ break_id リターン値 設定したブレークポイントマクロのいずれかが返した値 int 0 パート 5 リファレンス情報 UEW-9 411 C-SPY システムマクロの説明 説明 ユーザ定義ブレークポイントを削除します。 関連項目 125 ページのブレークポイントの定義。 __closeFile 構文 __closeFile(fileHandle) パラメータ fileHandle __openFile マクロでファイルハンドルとして使用するマク ロ変数 リターン値 int 0 説明 先に __openFile で開いたファイルを閉じます。 __delay 構文 __delay(value) パラメータ value 実行を遅らせる時間(ミリ秒) リターン値 int 0 説明 指定したミリ秒数だけ実行を遅らせます。 __disableInterrupts 構文 __disableInterrupts() リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 100: __disableInterrupts のリターン値 説明 割込み生成を無効にします。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 IAR Embedded Workbench IDE 412 ユーザガイド UEW-9 C-SPY マクロリファレンス __driverType 構文 __driverType(driver_id) パラメータ driver_id チェックするドライバに対応する文字列。サポートされる文 字列のリストは、[ヘルプ]メニューからオンラインヘルプシ ステムを参照してください。 リターン値 結果 値 成功 1 失敗 0 表 101: __driverType のリターン値 説明 現在の C-SPY ドライバが、driver_id パラメータで指定したドライバタイプ と同一かどうかを確認します。 例 __driverType("sim") シミュレータが現在のドライバである場合は、1 が返されます。それ以外の 場合は 0 が返されます。 __enableInterrupts 構文 __enableInterrupts() リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 102: __enableInterrupts のリターン値 説明 割込み生成を有効にします。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 パート 5 リファレンス情報 UEW-9 413 C-SPY システムマクロの説明 __evaluate 構文 __evaluate(string, valuePtr) パラメータ string 式文字列 valuePtr 結果を保持するマクロ変数ポインタ リターン値 結果 値 成功 int 0 失敗 int 1 表 103: __evaluate リターン値 説明 このマクロは入力文字列を式として解釈して、評価します。結果は valuePtr で参照される変数に格納されます。 例 以下の例では、変数 i が定義され、値 5 に設定されていると仮定しています。 __evaluate("i + 3", &myVar) マクロ変数 myVar に値 8 が割り当てられます。 __isBatchMode 構文 __isBatchMode() リターン値 結果 値 True int 1 False int 0 表 104: __isBatchMode のリターン値 説明 IAR Embedded Workbench IDE 414 ユーザガイド UEW-9 このマクロは、デバッガがバッチモードで実行中の場合に True(真)を、そ れ以外の場合は False(偽)を返します。 C-SPY マクロリファレンス __loadImage 構文 __loadImage(filename, suppressDownload) パラメータ ファイル名 ロードされるデバッグファイルです。filename にはパスを含め る必要があります。パスは絶対パスか、引数変数を使用しなけ ればなりません。246 ページの引数変数のまとめを参照してく ださい。 suppressDownload ゼロ以外の値の場合、ターゲットシステムにコードやデータは ダウンロードされません。すなわち、C-SPY はデバッグファイ ルからデバッグ情報を読み込むのみとなります。0 の場合、ダ ウンロードされます。 リターン値 値 結果 ゼロ以外整数値 固有のモジュール識別子。 int 0 ロードに失敗しました。 表 105: __loadModule のリターン値 説明 イメージ(デバッグファイル)をロードします。 例1 システムが ROM ライブラリとアプリケーションで構成されているとします。 アプリケーションはアクティブプロジェクトですが、ライブラリに対応する デバッグファイルがあります。この場合には、プロジェクトに関連付けられ た C-SPY マクロファイルの execUserSetup マクロに以下のマクロ呼出しを 追加します。 __loadImage(ROMfile, 1); このマクロ呼出しは、ROM ライブラリ ROMfile のデバッグ情報をロードし、 その内容はダウンロードしません(内容はすでに ROM にあると推定される ため)。すると、ライブラリと一緒にアプリケーションのデバッグが可能にな ります。 例2 システムが ROM ライブラリとアプリケーションで構成されており、主にライ ブラリに心配があるとします。ライブラリは、デバッグセッションの前にフ ラッシュメモリにプログラミングする必要があります。したがって、ライブラ リの開発中は、ライブラリプロジェクトが IDE でアクティブプロジェクトで なければなりません。この場合には、プロジェクトに関連付けられた C-SPY マクロファイルの execUserSetup マクロに以下のマクロ呼出しを追加します。 __loadImage(ApplicationFile, 0); パート 5 リファレンス情報 UEW-9 415 C-SPY システムマクロの説明 このマクロ呼出しは、アプリケーションのデバッグ情報をロードし、その内 容をダウンロードします(通常は RAM に)。すると、アプリケーションと一 緒にライブラリのデバッグが可能になります。 関連項目 391 ページのイメージと 107 ページの複数イメージのロード。 __memoryRestore 構文 __memoryRestore(zone, filename) パラメータ ゾーン メモリゾーン名(文字列)。使用可能なゾーンの一覧は、[ヘルプ]メ ニューからオンラインヘルプシステムを参照してください。 ファイル名 読み込むファイルを指定する文字列。filename にはパスを含める必要があ ります。パスは絶対パスか、引数変数を使用しなければなりません。 246 ページの引数変数のまとめを参照。 リターン値 int 0 説明 ファイルの内容を読み込んで、指定したメモリゾーンに保存します。 例 __memoryRestore("Memory", "c:\\temp\\saved_memory.hex"); 関連項目 296 ページの[メモリ復元]ダイアログボックス。 __memorySave 構文 __memorySave(start, stop, format, file) パラメータ IAR Embedded Workbench IDE 416 ユーザガイド UEW-9 start 保存するメモリエリアの最初の位置を指定する文字列。 stop 保存するメモリエリアの最後の位置を指定する文字列。 format 保存したメモリに使用されるフォーマットを指定する文字列。以下から 選択します。 Intel-extended motorola motorola-s19 motorola-s28 motorola-s37 C-SPY マクロリファレンス ファイル名 書き込むファイルを指定する文字列。filename にはパスを含める必要があ ります。パスは絶対パスか、引数変数を使用しなければなりません。 246 ページの引数変数のまとめを参照してください。 リターン値 int 0 説明 指定したメモリエリアの内容をファイルに保存します。 例 __memorySave("Memory:0x00", "Memory:0xFF", "intel-extended", "c:\\temp\\saved_memory.hex"); 関連項目 295 ページの[メモリ保存]ダイアログボックス。 __openFile 構文 __openFile(filename, access) パラメータ ファイル名 開くファイル。filename にはパスを含める必要があります。パスは絶 対パスか、引数変数を使用しなければなりません。246 ページの引数 変数のまとめを参照してください。 access アクセスタイプ(文字列)。 以下は必須ですが、混在できません(互いに排他的)。 "a" 付加。開かれたファイルの最後に新しいデータが付加され ます。 "r" リード "w" ライト 以下はオプションです。これらは混在できません(互いに排他的)。 "b" バイナリ。ファイルをバイナリモードで開きます。 "t" ASCII テキスト。ファイルをテキストモードで開きます。 以下のアクセスタイプはオプションです。 "+" とともに r、w、または a を使用。r+ または w+ はリードお よびライトですが、a+ はリードおよび付加になります リターン値 結果 値 成功 ファイルハンドル 失敗 無効なファイルハンドル(評価結果は False) 表 106: __openFile のリターン値 パート 5 リファレンス情報 UEW-9 417 C-SPY システムマクロの説明 説明 ファイルを入出力処理用に開きます。このマクロのデフォルトの基準ディレ クトリは、開かれているプロジェクトファイル (*.ewp) のある場所になりま す。__openFile の引数では、このディレクトリとの相対位置を指定できま す。また、$PROJ_DIR$ や $TOOLKIT_DIR$ などの引数変数をパスとして指定 することもできます。 例 /* ファイルハンドルを保持する */ /* マクロ変数 */ myFileHandle = __openFile("$PROJ_DIR$\\Debug\\Exe\\test.tst", "r"); if (myFileHandle) { /* 正常に開きます */ } 関連項目 246 ページの引数変数のまとめ。 __var myFileHandle; __orderInterrupt 構文 __orderInterrupt(specification, first_activation, repeat_interval, variance, infinite_hold_time, hold_time, probability) パラメータ リターン値 specification 割込み(文字列)。specification には、デバイス記述ファイ ル (ddf) で使用されている仕様全体か、名前のみを指定で きます。名前のみを指定した場合は、割込みシステムはデ バイス記述ファイルから詳細を自動的に取得します。 first_activation サイクル単位で指定した最初の実行時間(整数) repeat_interval サイクル単位で指定した周期(整数) variance パーセントで指定したタイミング変動範囲(0 ~ 100 の 整数) infinite_hold_time 無制限の場合は 1、それ以外の場合は 0 hold_time ホールド時間(整数) probability パーセントで指定した確立(0 ~ 100 の整数) このマクロは、割込み識別子 (unsigned long) を返します。 specification の構文に誤りがある場合は、-1 を返します。 説明 IAR Embedded Workbench IDE 418 ユーザガイド UEW-9 割込みを生成します。 C-SPY マクロリファレンス 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 例 以下の例では、4000 サイクルの後に初めて実行された保持時間無制限の周期 割込みを生成します。 __orderInterrupt( "USARTR_VECTOR", 4000, 2000, 0, 1, 0, 100 ); __popSimulatorInterruptExecutingStack 構文 __popSimulatorInterruptExecutingStack(void) リターン値 このマクロにはリターン値はありません。 説明 割込みシミュレーションシステムに、割込みハンドラ実行から戻る際に使用 される通常の命令と同様に、割込みハンドラの実行が終了したことを通知し ます。 割込みハンドラから復帰する際に通常の命令を使用しない場合(タスク切替 え機能のあるオペレーティングシステムの場合など)に使用します。この場 合、割込みシミュレーションシステムは割込みハンドラの実行が終了したこ とを自動的には検出できません。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 __readFile 構文 __readFile(fileHandle, valuePtr) パラメータ fileHandle __openFile マクロでファイルハンドルとして使用するマク ロ変数 valuePtr 変数へのポインタ リターン値 結果 値 成功 0 失敗 ゼロ以外のエラー番号 表 107: __readFile リターン値 説明 指定したファイルから 16 進数を順にリードし、unsigned long に変換して、 value パラメータに代入します。この値は、マクロ変数へのポインタになり ます。 パート 5 リファレンス情報 UEW-9 419 C-SPY システムマクロの説明 例 __var number; if (__readFile(myFileHandle, &number) == 0) { // 数字を処理します } __readFileByte 構文 __readFileByte(fileHandle) パラメータ fileHandle __openFile マクロでファイルハンドルとして使用するマク ロ変数 リターン値 エラー、ファイル終端時に -1 それ以外は、0 ~ 255。 説明 file で指定したファイルから 1 バイトリードします。 例 __var byte; while ( (byte = __readFileByte(myFileHandle)) != -1 ) { /* バイトを処理します */ } __readMemory8, __readMemoryByte 構文 __readMemory8(address, zone) __readMemoryByte(address, zone) パラメータ ゾーン メモリゾーン名(文字列) 。使用可能なゾーンの一覧は、 [ヘ ルプ]メニューからオンラインヘルプシステムを参照してく ださい。 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス(ロケーション)から 1 バイトリードします。 例 __readMemory8(0x0108, "Memory"); ユーザガイド UEW-9 メモリアドレス(整数) リターン値 IAR Embedded Workbench IDE 420 address C-SPY マクロリファレンス __readMemory16 構文 __readMemory16(address, zone) パラメータ address ゾーン メモリアドレス(整数) メモリゾーン名(文字列)。使用可能なゾーンの一覧は、 [ヘルプ]メニューからオンラインヘルプシステムを参照し てください。 リターン値 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス(ロケーション)から 2 バイトワードをリードし ます。 例 __readMemory16(0x0108, "Memory"); __readMemory32 構文 __readMemory32(address, zone) パラメータ address ゾーン メモリアドレス(整数) メモリゾーン名(文字列)。使用可能なゾーンの一覧は、 [ヘルプ]メニューからオンラインヘルプシステムを参 照してください。 リターン値 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス(ロケーション)から 4 バイトワードをリードし ます。 例 __readMemory32(0x0108, "Memory"); パート 5 リファレンス情報 UEW-9 421 C-SPY システムマクロの説明 __registerMacroFile 構文 __registerMacroFile(filename) パラメータ ファイル名 登録するマクロが記述されたファイル(文字列)filename には パスを含める必要があります。パスは絶対パスか、引数変数 を使用しなければなりません。246 ページの引数変数のまと めを参照してください。 リターン値 int 0 説明 セットアップマクロファイルからマクロを登録します。この関数を使用して、 複数のマクロファイルを C-SPY 起動時に登録できます。 例 __registerMacroFile("c:\\testdir\\macro.mac"); 関連項目 145 ページのセットアップマクロとセットアップファイルによる登録と実行。 __resetFile 構文 __resetFile(fileHandle) パラメータ fileHandle リターン値 int 0 説明 先に __openFile で開いたファイルを先頭に戻します。 IAR Embedded Workbench IDE 422 ユーザガイド UEW-9 __openFile マクロでファイルハンドルとして使用す るマクロ変数 C-SPY マクロリファレンス __setCodeBreak 構文 __setCodeBreak(location, count, condition, cond_type, action) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など) zone:hexaddress または単に hexaddress という形式で示し た絶対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(main など) count 実行を停止するまでのブレークポイント条件発生回数(整数) condition ブレークポイント条件(文字列) cond_type 条件の種類。「CHANGED」または「TRUE」(文字列) action ブレークポイント検出時に評価される式(通常はマクロ呼出し) 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポイ ントを削除する際には、この値を使用する必要があります。 失敗 0 リターン値 表 108: __setCodeBreak のリターン値 説明 コードブレークポイント(プロセッサが指定位置で命令をフェッチする直前 にトリガされるブレークポイント)を設定します 例 __setCodeBreak("{D:\\src\\prog.c}.12.9", 3, "d>16", "TRUE", "ActionCode()"); 以下の例は、ソース中の main というラベルにコードブレークポイントを設定 します。 __setCodeBreak("main", 0, "1", "TRUE", ""); 関連項目 125 ページのブレークポイントの定義。 パート 5 リファレンス情報 UEW-9 423 C-SPY システムマクロの説明 __setDataBreak 構文 __setDataBreak(location, count, condition, cond_type, access, action) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など)。ただし、これはデータブレー クポイントとしてはそれほど便利ではありません。 zone:hexaddress または単に hexaddress という形式で示した 絶対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(my_global_variable など) count 実行を停止するまでのブレークポイント条件発生回数(整数) condition ブレークポイント条件(文字列) cond_type 条件の種類。「CHANGED」または「TRUE」(文字列) access メモリアクセスタイプ : リードの場合は "R"、ライトの場合は "W"、リード / ライトの場合は "RW" action ブレークポイント検出時に評価される式(通常はマクロ呼出し) 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポイン トを削除する際には、この値を使用する必要があります。 失敗 0 リターン値 表 109: __setDataBreak のリターン値 説明 データブレークポイント(プロセッサが指定位置でデータのリード / ライト を実行した直後にトリガされるブレークポイント)を設定します。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 例 __var brk; brk = __setDataBreak("Memory:0x4710", 3, "d>6", "TRUE", "W", "ActionData()"); ... __clearBreak(brk); 関連項目 125 ページのブレークポイントの定義。 IAR Embedded Workbench IDE 424 ユーザガイド UEW-9 C-SPY マクロリファレンス __setLogBreak 構文 __setLogBreak(location, message, mesg_type, condition, cond_type) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など) zone:hexaddress または単に hexaddress という形式で示 した絶対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(main など) message メッセージテキスト msg_type 以下のメッセージタイプのどちらかを選択します。 TEXT:メッセージがそのまま書き込まれます。 ARGS:メッセージは、C-SPY の式または文字列をコンマで区 切ったリストとして認識されます。 condition ブレークポイント条件(文字列) cond_type 条件の種類。「CHANGED」または「TRUE」(文字列) リターン値 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポ イントを削除する際には、同じ値を使用する必要があります。 失敗 0 表 110: __setLogBreak のリターン値 説明 ログブレークポイントを設定します。つまり、命令が指定の場所からフェッ チされたときにトリガされるブレークポイントです。特定のマシン命令にブ レークポイントを設定した場合は、命令の実行前にブレークポイントがトリ ガされ、実行が一時停止し、指定したメッセージが[C-SPY デバッグログ] ウィンドウに出力されます。 例 __var logBp1; __var logBp2; logOn() { logBp1 = __setLogBreak ("{C:\\temp\\Utilities.c}.23.1", "\"Entering trace zone at :\", #PC:%X", "ARGS", "1", "TRUE"); logBp2 = __setLogBreak ("{C:\\temp\\Utilities.c}.30.1", "Leaving trace zone...", "TEXT", "1", "TRUE"); パート 5 リファレンス情報 UEW-9 425 C-SPY システムマクロの説明 } logOff() { __clearBreak(logBp1); __clearBreak(logBp2); } 関連項目 406 ページのフォーマットした出力、221 ページの[ログ]ブレークポイント ダイアログボックス、125 ページのブレークポイントの定義。を参照してく ださい。 __setSimBreak 構文 __setSimBreak(location, access, action) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など) zone:hexaddress または単に hexaddress という形式で示した絶 対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(main など) access メモリアクセスタイプ : リードの場合は "R"、ライトの場合は "W" action ブレークポイント検出時に評価される式(通常はマクロ関数呼出し) リターン値 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポイン トを消去する際には、この値を使用する必要があります。 失敗 0 表 111: __setSimBreak のリターン値 説明 このシステムマクロを使用して、一時的にのみ命令の実行を停止するイミ ディエイト ブレークポイントを設定します。このブレークポイントを使用す ると、プロセッサがある位置からデータを読み込む直前かある位置にデータ を書き込んだ直後に、C-SPY マクロ関数を呼び出すことができます。アク ションが終了すると、命令の実行が再開されます。 イミディエイトブレークポイントは、メモリにマッピングされたさまざまな 種類のデバイス(シリアルポートやタイマなど)をシミュレーションする場 合に便利です。デバイスがメモリマッピングされた位置をプロセッサが読み IAR Embedded Workbench IDE 426 ユーザガイド UEW-9 C-SPY マクロリファレンス 込むと、C-SPY マクロ関数が実行されて適切なデータを供給します。逆に、 デバイスがメモリマッピングされた位置にプロセッサが書き込むと、C-SPY マクロ関数が実行されて、書き込まれた値に応じた適切な動作を実行します。 適用範囲 このシステムマクロは、C-SPY シミュレータでのみ使用できます。 __setTraceStartBreak 構文 __setTraceStartBreak(location) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など) zone:hexaddress または単に hexaddress という形式で示 した絶対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(main など) リターン値 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポ イントを削除する際には、同じ値を使用する必要があります。 失敗 0 表 112: __setTraceStartBreak のリターン値 説明 指定の位置にブレークポイントを設定します。そのブレークポイントがトリ ガされると、トレースシステムが起動します。 適用範囲 このシステムマクロは、C-SPY シミュレータで使用できます。ハードウェ アデバッグのために使用する C-SPY ドライバでは、使用できないことがあ ります。 例 __var startTraceBp; __var stopTraceBp; traceOn() { startTraceBp = __setTraceStartBreak ("{C:\\TEMP\\Utilities.c}.23.1"); stopTraceBp = __setTraceStopBreak ("{C:\\temp\\Utilities.c}.30.1"); } パート 5 リファレンス情報 UEW-9 427 C-SPY システムマクロの説明 traceOff() { __clearBreak(startTraceBp); __clearBreak(stopTraceBp); } 関連項目 125 ページのブレークポイントの定義。 __setTraceStopBreak 構文 __setTraceStopBreak(location) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など) zone:hexaddress または単に hexaddress という形式で示 した絶対アドレス(Memory:0x42 など) 評価結果が位置を示す値になる式(main など) リターン値 結果 値 成功 ブレークポイントを一意に特定する符号なし整数。ブレークポ イントを削除する際には、同じ値を使用する必要があります。 失敗 int 0 表 113: __setTraceStopBreak のリターン値 説明 指定の位置にブレークポイントを設定します。そのブレークポイントがトリ ガされると、トレースシステムが停止します。 適用範囲 このシステムマクロは、C-SPY シミュレータで使用できます。ハードウェ アデバッグのために使用する C-SPY ドライバでは、使用できないことがあ ります。 例 __var brk; brk = __setDataBreak("Memory:0x4710", 3, "d>6", "TRUE", "W", "ActionData()"); ... __clearBreak(brk); 関連項目 125 ページのブレークポイントの定義。 IAR Embedded Workbench IDE 428 ユーザガイド UEW-9 C-SPY マクロリファレンス __sourcePosition 構文 __sourcePosition(linePtr, colPtr) パラメータ linePtr 行番号を格納する変数へのポインタ colPtr 列番号を格納する変数へのポインタ リターン値 結果 値 成功 ファイル名文字列 失敗 空き ("") 文字列 表 114: __sourcePosition リターン値 説明 現在の実行位置がソース位置に対応する場合、このマクロはファイル名を文 字列として返します。パラメータで参照する変数の値を、ソース位置の行番 号と列番号に設定します。 __strFind 構文 __strFind(macroString, pattern, position) パラメータ macroString 検索先のマクロ文字列 pattern 検索対象の文字列パターン position 検索の開始位置。最初の位置は 0 です。 リターン値 パターンが見つかった位置。文字列が見つからなかった場合は -1。 説明 このマクロは、指定した文字列で別の文字列を検索します。 例 __strFind("Compiler", "pile", 0) __strFind("Compiler", "foo", 0) 関連項目 404 ページのマクロ文字列。 = 3 = -1 パート 5 リファレンス情報 UEW-9 429 C-SPY システムマクロの説明 __subString 構文 __subString(macroString, position, length) パラメータ macroString 部分文字列の抽出元のマクロ文字列 position 部分文字列の開始位置。最初の位置は 0 です length 部分文字列の長さ リターン値 指定したマクロ文字列から抽出した部分文字列 説明 このマクロは、文字列から部分文字列を抽出します。 例 __subString("Compiler", 0, 2) 生成されたマクロ文字列に Co が含まれます。 __subString("Compiler", 3, 4) 生成されたマクロ文字列に pile が含まれます。 関連項目 404 ページのマクロ文字列。 __targetDebuggerVersion 構文 __targetDebuggerVersion リターン値 C-SPY デバッガのプロセッサモジュールのバージョン番号を表す文字列。 説明 このマクロは、C-SPY デバッガのプロセッサモジュールのバージョン番号を 返します。 例 __var toolVer; toolVer = __targetDebuggerVersion(); __message "The target debugger version is, ", toolVer; __toLower 構文 __toLower(macroString) パラメータ macroString IAR Embedded Workbench IDE 430 ユーザガイド UEW-9 任意のマクロ文字列 C-SPY マクロリファレンス リターン値 変換後のマクロ文字列 説明 このマクロは、パラメータ文字列のコピーを、すべての文字を小文字に変換 して返します。 例 __toLower("IAR") 生成されたマクロ文字列に iar が含まれます。 __toLower("Mix42") 生成されたマクロ文字列 mix42 が含まれます。 関連項目 404 ページのマクロ文字列。 __toString 構文 __toString(C_string, maxlength) パラメータ string NULL 終端 C 文字列 maxlength 返されるマクロ文字列の最大長 リターン値 マクロ文字列 説明 このマクロを使用して、C 文字列(char* または char[])をマクロ文字列に 変換します。 例 アプリケーションに以下の定義が含まれていると仮定します。 char const * hptr = "Hello World!"; 以下のマクロ呼出しを使用します。 __toString(hptr, 5) Hello を含むマクロ文字列を返します。 関連項目 404 ページのマクロ文字列。 __toUpper 構文 __toUpper(macroString) パラメータ macroString は任意のマクロ文字列です。 パート 5 リファレンス情報 UEW-9 431 C-SPY システムマクロの説明 リターン値 変換後の文字列 説明 このマクロは、すべての文字を大文字に変換して、パラメータ macroString のコピーを返します。 例 __toUpper("string") 生成されたマクロ文字列に STRING が含まれます。 関連項目 404 ページのマクロ文字列。 __writeFile 構文 __writeFile(file, value) パラメータ fileHandle __openFile マクロでファイルハンドルとして使用するマク ロ変数 value 整数 リターン値 int 0 説明 整数値を 16 進数フォーマット(後の空白文字を含む)でファイル file に出 力します。 注 : __fmessage 文でも同様の操作を実行できます。__writeFile マクロは、 __readFile との対称性の観点から提供されています。 __writeFileByte 構文 __writeFileByte(file, value) パラメータ value 0 ~ 255 の範囲の整数 int 0 説明 file ファイルに 1 バイトライトします。 ユーザガイド UEW-9 __openFile マクロでファイルハンドルとして使用す るマクロ変数 リターン値 IAR Embedded Workbench IDE 432 fileHandle C-SPY マクロリファレンス __writeMemory8, __writeMemoryByte 構文 __writeMemory8(value, address, zone) __writeMemoryByte(value, address, zone) パラメータ value 書き込む値(整数) address メモリアドレス(整数) ゾーン メモリゾーン名(文字列)。使用可能なゾーンの一覧は、 [ヘルプ]メニューからオンラインヘルプシステムを参照 してください。 リターン値 int 0 説明 指定したメモリアドレス(ロケーション)に 1 バイトライトします。 例 __writeMemory8(0x2F, 0x8020, "Memory"); __writeMemory16 構文 __writeMemory16(value, address, zone) パラメータ value 書き込む値(整数) address メモリアドレス(整数) ゾーン メモリゾーン名(文字列)。使用可能なゾーンの一覧は、 [ヘルプ]メニューからオンラインヘルプシステムを参 照してください。 リターン値 int 0 説明 指定したメモリアドレス(ロケーション)に 2 バイトライトします。 例 __writeMemory16(0x2FFF, 0x8020, "Memory"); パート 5 リファレンス情報 UEW-9 433 C-SPY システムマクロの説明 __writeMemory32 構文 __writeMemory32(value, address, zone) パラメータ value 書き込む値(整数) address メモリアドレス(整数) ゾーン メモリゾーン名(文字列)。使用可能なゾーンの一覧は、 [ヘルプ]メニューからオンラインヘルプシステムを参照 してください。 リターン値 int 0 説明 指定したメモリアドレス(ロケーション)に 4 バイトライトします。 例 __writeMemory32(0x5555FFFF, 0x8020, "Memory"); IAR Embedded Workbench IDE 434 ユーザガイド UEW-9 用語集 用語集 この用語集は、組込みシステムのプログラミングに関 連した一般的な用語を対象しています。用語によって は、ご使用の IAR Embedded Workbench® のバージョン に該当しないこともあります。 A 絶対アドレス リンカが割り当てるアドレスではなく、ソースコード で指定したオブジェクトの特定メモリアドレス。 絶対セグメント リンク前にメモリ中に固定アドレスが割り当てられて いるセグメント。 アドレス式 値がアドレスになっている式。 アプリケーション IAR システムズのツールキットのユーザが開発し、 ターゲットプロセッサで組込みアプリケーションとし て実行されるプログラム。 Archive アーカイブ、つまりライブラリから作成、修正、抽出 するための GNU バイナリユーティリティ。関連項目 アーキテクチャ コンピュータ設計者の間で使用される、複雑な情報処 理システムの構造を示す用語。使用される命令やデー タの種類、メモリ構成やアドレッシング方法、システ ムの実装方法などを示します。プロセッサ設計で使用 される主流アーキテクチャとして、ハーバードアーキ テクチャとノイマンアーキテクチャの 2 つがあります。 アーカイブ ライブラリを参照してください。 アセンブラディレクティブ アセンブラの処理を制御するコマンドセット。 アセンブラオプション アセンブラのデフォルトの動作を変更するためのパラ メータ。 アセンブラ言語 ターゲットプロセッサと、入出力レジスタやデータエリ アに対する処理を指定するために使用する、個々のマシ ン固有のニーモニックセット。メモリ使用量の節約や、 アプリケーションの実行速度の向上には、C/C++ よりも アセンブラ言語の方が適している場合があります。 属性 セクション属性 (ILINK) を参照してください。 自動変数 変数が宣言されている関数が呼び出されるごとに、変 数の新しいインスタンスが自動的に作成されることを 指します。静的オーバレイを使用するシステム(関数 が再帰的に呼び出された場合でも、ローカル変数が 1 つのインスタンスにだけ存在)でのローカル変数の処 理と比較できます。ローカル変数と呼ばれることもあ ります。レジスタ変数と比較してください。 B バックトレース IAR C-SPY® デバッガが関数から正常に戻れるように、 呼出しフレーム情報を最新に保つための情報。呼出し フレーム情報も参照してください。 バンク メモリバンクを参照してください。 バンク切替え 異なるメモリバンクの切替え。このソフトウェア技術 を使用することで、メモリの異なる部分が同一のアド レス空間を占有できるため、コンピュータの使用可能 メモリが増加します。 バンクコード 複数のメモリバンクに分散したコード。各関数はそれ ぞれ 1 つのバンクだけにしか常駐できません。 435 UEW-9 バンクデータ 複数のメモリバンクに分散したデータ。各データオブ ジェクトがそれぞれ 1 つのメモリバンク内に収まる必 要があります。 バンクメモリ 同一アドレス用に複数の格納場所があるメモリ。メモ リバンクも参照してください。 バンク切替えルーチン メモリバンクを選択するコード。 バッチファイル コマンドラインインタプリタで実行されるオペレー ティングシステムコマンドを記述したテキストファイ ル。UNIX では、コマンドラインインタプリタが UNIX シェルに含まれているため、「シェルスクリプト」と呼 びます。バッチファイルを使用して、既存のコマンド を組み合せ、新しいコマンドとして実行することがで きます。 ビットフィールド 1 単位として見なされるビットのグループ。 リンカ設定ファイル内のブロック (ILINK) 連続するコードまたはデータ。ブロック、オーバレ イ、セクションのいずれかで構成され、空の場合もあ ります。ブロックには名前があり、ブロックの開始お よび終了アドレスはアプリケーションから参照できま す。また、ブロックには、最大サイズ、特定のサイ ズ、または最小アラインメントなどの属性を指定でき ます。内容の順序は固定または任意です。 ブレークポイント 1. コードブレークポイント : プログラム中、そこに到達 するとデバッグ用の特殊な処理が実行される地点。通 常は、プログラムの実行の停止や、プログラムの変数 の一部または全部のダンプを行う箇所に、ブレークポ イントを使用します。ブレークポイントは、プログラ ムの実行を詳細に検証する場合にプログラムそのもの の一部として、またはプログラマがデバッグツールで の対話セッションの一部として設定します。 IAR Embedded Workbench IDE 436 ユーザガイド UEW-9 2. データブレークポイント : メモリ中で、そこにアクセ スするとデバッグ用の特殊な処理が実行される地点。 通常は、リード / ライト処理のいずれかでアドレス位 置がアクセスされてプログラムの実行を停止する場合 に、データブレークポイントを使用します。 3. イミディエイトブレークポイント : メモリ中で、そこ にアクセスするとデバッグ用の特殊な処理が実行され る地点。通常は、メモリアクセス命令の実行中(アク セスの種類に応じて、実際のメモリアクセスの前後) に、プログラム実行を一時停止してユーザが指定した アクションを実行する場合に、イミディエイトブレー クポイントを使用します。実行はその後再開されます。 この機能は、C-SPY のシミュレータバージョンでのみ 使用できます。 C 呼出しフレーム情報 C 関数をコンパイルしたコードで、完全な関数の呼出 しスタック(呼出しスタック)を、プログラムカウン タの位置に関わらず、また実行に影響を及ぼすことな く、IAR C-SPY® デバッガで表示できるようにするた めの情報。バックトレースも参照してください。 呼出し規約 プログラム内の関数が別の関数を呼び出す方法を規定 したもの。レジスタパラメータの処理方法、値を返す 方法、呼出し先関数が保持するレジスタなどが規定さ れています。C/C++ 関数では、すべてコンパイラが自 動的に処理します。アセンブラ言語で記述したコード の場合は、C/C++ 関数からの呼出しや、C/C++ 関数の 呼出しを実行できるように、呼出し規約のルールに従 う必要があります。C の呼出し規約および C++ の呼出 し規約は、同一でない場合があります。 安価 安価なメモリアクセスのように使用します。安価なメ モリアクセスでは、実行にかかるサイクル数や、実装 に必要なコードバイト数が少なくなります。メモリア クセスが安価なことを、低コストと言います。メモリ アクセスコストを参照。 用語集 チェックサム アプリケーションの全体または一部の ROM の内容に 基づいて計算され、データの破壊を検出するためにア プリケーションに格納される値。チェックサムは、ア プリケーションで検証するためにリンカで生成されま す。複数のアルゴリズムがサポートされています。CRC (巡回冗長検査 ) と比較してください。 コードバンキング バンクコードを参照してください。 コードモデル コードモデルは、アプリケーション用コードの生成方 法を制御します。通常は、コードモデルは、関数の呼 出し方法や関数が配置されるコードセグメント / セク ションなどの挙動を制御します。アプリケーションの すべてのオブジェクトファイルは、同一のコードモデ ルを使用してコンパイルする必要があります。 コードポインタ コードポインタとは、関数ポインタを意味します。多 くのマイクロコントローラでは複数の異なる方法で関 数を呼び出せるため、組込みシステム用のコンパイラ では通常はこれらの方法をすべて使用できます。 コードポインタとデータポインタを混同しないでくだ さい。 コードセグメント / セクション コードを含むリードオンリーセグメント / セクション。 セグメント (XLINK)、セクション (ILINK) も参照してくだ さい。 コンパイル単位 コンパイラオプション コンパイラのデフォルトの動作を変更するためのパラ メータ。 コスト メモリアクセスコストを参照してください。 CRC(巡回冗長検査 ) データ損傷を検出するため、データブロックから計算 してデータブロックと共に保存する値。CRC は、多項 式を使用して計算される値で、単純な演算による チェックサムよりも高度なエラー検出方法です。 チェックサムと比較してください。 C-SPY オプション IAR C-SPY デバッガのデフォルトの動作を変更するた めのパラメータ。 Cstartup アプリケーションの実行開始前にシステムを設定する コード。 C 形式のプリプロセッサ プリプロセッサは、実際のコンパイル前に入力スト リームを前処理するスタンドアロンアプリケーション かコンパイラ内蔵機能です。C 形式のプリプロセッサ は、標準の C で設定された規則に従い、#define、 #if、#include などのテキストマクロ置換、条件付き コンパイル、他のファイルのインクルードなどを処理 するためのコマンドを実装します。 D コンパイル単位を参照してください。 データバンキング バンクデータを参照してください。 コンパイラ関数ディレクティブ (XLINK) コンパイラ関数ディレクティブは、関数および関数呼 出しの情報を IAR XLINK リンカへ渡すためにコンパイ ラによって生成されます。これらのコンパイラを参照 するには、アセンブラリストファイルを作成する必要 があります。これらのディレクティブは、主に静的 オーバレイをサポートするコンパイラのために使用し ます。これは、より小型のマイクロコントローラで役 に立つ機能です。 データモデル データモデルは、デフォルトのメモリタイプを指定し ます。言い換えれば、このデータモデルで通常、下記 の1つまたは複数を制御します。静的 / グローバル変 数、動的に割り当てられたデータ、ランタイムスタッ クに、アクセスするために使用される方法および生成 されるコードを、制御します。また、デフォルトのポ インタタイプと、静的 / グローバル変数が配置される 437 UEW-9 データセグメント / セクションも制御します。1 つのプ ロジェクトで同時に使用できるデータモデルは 1 つだ けです。また、プロジェクト内のすべてのユーザモ ジュールとライブラリモジュールで同一のモデルを使 用する必要があります。 データポインタ 多くのマイクロコントローラでは、異なるメモリタイ プやアドレス空間にアクセスするため、複数のアド レッシングモードがあります。通常は、組込みシステ ム用コンパイラでは、空きメモリに効率的にアクセス できるように、複数のデータポインタタイプセットに 対応しています。 データ表現 データタイプのメモリでの配置方法、データタイプが 表現する値の範囲。 宣言 オブジェクト(変数、関数)が存在することをコンパ イラに対して明示することを指します。オブジェクト そのものは、1 つの翻訳単位(ソースファイル)だけ で定義する必要があります。オブジェクトは、使用前 に宣言し、定義しておく必要があります。通常は、多 くのファイルで使用するオブジェクトを 1 つのソース ファイルで定義します。オブジェクトの宣言はヘッダ ファイルに記述し、そのオブジェクトを使用するファ イルでそのヘッダファイルをインクルードします。 次に例を示します。 /* 変数 "a" がどこかに存在。関数 "b" は 2 つの int パラメータを取得して 1 つの int. を返します。*/ extern int a; int b(int, int); 定義 変数か関数そのものを指します。プリケーションの各 変数 / 関数につき 1 つだけ、定義を記述できます。仮 定義も参照してください。 IAR Embedded Workbench IDE 438 ユーザガイド UEW-9 次に例を示します。 int a; int b(int x, int y) { return x + y; } デマングル (ILINK) マングル化された名前をより一般的な C/C++ 名に復元 すること。マングル化 (ILINK) も参照してください。 派生品 マイクロプロセッサとマイクロコントローラのシリー ズまたはファミリに属する派生プロセッサ。 デバイス記述ファイル 入出力レジスタ (SFR) 定義、割込みベクタ、制御レジ スタ定義などのデバイス固有の情報を含む、C-SPY で 使用されるファイル。 デバイスドライバ 高水準のプログラミングインタフェースを周辺デバイ スに提供するソフトウェア。 デジタル信号プロセッサ (DSP) マイクロプロセッサに類似するデバイスで、内部 CPU が離散時間信号処理用に最適化されています。デジタ ル信号プロセッサは、マイクロプロセッサの標準命令 に加えて、一般的な信号処理計算を高速に実行するた めの複雑な命令セットもサポートしています。 逆アセンブリウィンドウ メモリの内容を逆アセンブルしてマシン命令に変換し、 可能であれば、対応する C ソースコードを挿入して表 示する C-SPY ウィンドウ。 DWARF ソースレベルデバッグをサポートする業界標準デバッ グフォーマット。これは、オブジェクトでデバッグ情 報を表すときに IAR ILINK リンカで使用されるフォー マットです。 用語集 動的初期化 C で記述されたプログラム内の変数は、実行の初期段 階で(main 関数が呼び出される前に)初期化されま す。これらの変数は、コンパイル時やリンク時に決定 される静的な値で初期化されます。これを静的初期化 と呼びます。C++ では、グローバルオブジェクトのコ ンストラクタや、動的メモリ割当てなどのコードを実 行することで、変数の初期化が必要な場合があります。 動的メモリ割当て 変数の保存には、リンク時に静的に行う方法と、実行時 に動的に行う方法の 2 つがあります。動的メモリ割当 ては、多くの場合はヒープから実行されます。ヒープ のサイズにより、動的オブジェクトや変数に使用可能 なメモリ量が決定されます。動的メモリ割当てには、 同時に使用されない複数の変数やオブジェクトを同一 メモリに格納することで、アプリケーションで必要な メモリ量を削減できるという利点があります。ヒープ メモリも参照してください。 動的オブジェクト 実行時に割当て、作成、破棄、解放が行われるオブ ジェクト。動的オブジェクトは、ほとんどの場合、動 的に割り当てられたメモリに格納されます。静的オブ ジェクトと比較してください。 E EEPROM Electrically Erasable, Programmable Read-Only Memory(電気 的消去可能プログラマブルリードオンリーメモリ)の 略。電子的に消去して書き換えることが可能な ROM。 ELF Executable and Linking Format、業界標準オブジェクト ファイルフォーマット。これは、IAR ILINK リンカに より使用されるフォーマットです。デバッグ情報は DWARF を使用してフォーマット化されます。 EPROM Erasable, Programmable Read-Only Memory(消去可能プロ グラマブルリードオンリーメモリ)の略。紫外線の照 射により消去した後に、書き換えることが可能な ROM。 Embedded C++ 組込みシステムのプログラミング用に設計された、 C++ プログラミング言語のサブセット。言語の設計時 に、組込みシステム開発で性能と移植性が特に重要で あることが考慮されています。 組込みシステム 特定用途向けに設計されたハードウェアとソフトウェ アの組合せ。組込みシステムがより大規模なシステム や製品の一部となっている場合も多数あります。 エミュレータ プロセッサファミリの派生品のエミュレーションを実 行するハードウェアデバイス。エミュレータは、しば しば実際のマイクロコントローラの代りに使用し、プ リント基板(実際の用途ではマイクロコントローラを 接続)に接続デバイス経由で接続します。エミュレー タは、常にターゲットプロセッサと完全に同様に動作 し、デバッグですべてのシステムアクチュエータが必 要な場合や、デバイスドライバをデバッグする場合に 使用します。 Enea OSE Load モジュールフォーマット OSE オペレーティングシステムでロード可能な特別な ELF フォーマット。ELF も参照してください。 列挙型 その型の変数で可能なすべての値のリストを定義に含 む型。一般的な例として、[true, false] のリスト中のい ずれかの値を取るブール値や、[Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] のいずれ かの値を取る曜日などがあります。列挙型は、C や Ada などの型付き言語の機能です。 文字、整数(サイズ固定)、浮動小数点数などの型も、 大きな意味では列挙型と見なされる場合があります (通常は列挙型には属さない)。 実行可能イメージ 実行可能なイメージが含まれます。いくつかの再配置 可能オブジェクトファイルのリンク結果とライブラリ で構成されます。オブジェクトファイルに使用される ファイルフォーマットは、XLINK では UBROF、ILINK ではデバッグ情報用の組込み DWARF を含む ELF です。 439 UEW-9 例外 プロセッサハードウェア、メモリ管理ユニット (MMU) などの、プロセッサと緻密に結合されたハードウェア が開始する割込み。アーキテクチャルールの違反(保 護メモリへのアクセス)や、極端なエラー状態(ゼロ による除算)を示します。 この用語と、C++ 言語(Embedded C++ を除く)で使用 される例外という用語とを混同しないでください。 高価 高価なメモリアクセスのように使用します。高価なメ モリアクセスでは、実行にかかるサイクル数か、実装 に必要なコードバイト数が多くなります。メモリアク セスが高価なことを、高コストであると言います。メ モリアクセスコストを参照してください。 拡張キーワード C/C++ での非標準キーワード。通常は、オブジェクト、 定義、宣言(データ、関数)を制御します。キーワー ドも参照してください。 F フィル 実行可能イメージのセグメント / セクション間に存在 するバイト(特定のフィルパターンを使用)を埋める こと。これらのバイトは、セグメント / セクションの アラインメント要求のために存在します。 フォーマット指定子 printf などのライブラリ関数で文字列のフォーマット を指定するために使用します。次の例では、関数呼出 しでフォーマット指定子 %c を 1 つ含むフォーマット文 字列を 1 つ指定しており、a の値を 1 つの ASCII 文字 として出力します。 printf("a = %c", a); IAR Embedded Workbench IDE 440 ユーザガイド UEW-9 G 一般オプション IDE に含まれる全ツールのデフォルトの動作を変更す るためのパラメータ。 汎用ポインタ ハーバードアーキテクチャベースのマイクロコント ローラなどで、すべてのメモリタイプを示すことがで きるポインタ。 H ハーバードアーキテクチャ ハーバードアーキテクチャベースのマイクロコント ローラは、独立したデータバスと命令バスを備えてい ます。これにより、並列実行が可能となっています。 命令のフェッチ中に、現在の命令がデータバスで実行 されます。現在の命令が完了すると、次の命令をすぐ に実行できます。これにより、理論上はノイマンアー キテクチャよりも大幅に高速な実行が可能です。ただ し、回路は複雑になります。ノイマンアーキテクチャ と比較してください。 ヒープメモリ ヒープとは、システムで動的メモリ割当て用に確保さ れたメモリプールです。ヒープの一部をアプリケー ション専用に使用することができます。ヒープから割 り当てたメモリは、アプリケーションが明示的に解放 してヒープに戻すまで有効です。このタイプのメモリ は、アプリケーションを実行するまで必要なオブジェ クト量がわからない場合に便利です。このタイプのメ モリは、メモリ容量が限られているシステムや、長期 間実行するシステムで使用すると問題が生じることが あります。 ヒープサイズ 動的に割当て可能なメモリの合計サイズ。 用語集 ホスト ターゲットプロセッサと通信するコンピュータ。この 用語は、デバッガを実行するコンピュータと、開発し た組込みアプリケーションを実行するマイクロコント ローラとを区別するために使用します。 リンカ設定ファイル内の初期化設定 (ILINK) イニシャライザによる RAM セクションの初期化方法 の定義。通常、定数でなく、noinit 以外の変数のみが初 期化されます。たとえば、コードの一部も初期化でき ます。 I 初期化済みセグメント / セクション 起動時に特定の値で初期化されるリード / ライトセグ メント / セクション。セグメント (XLINK)、セクション (ILINK) も参照してください。 Iarchive アーカイブ、つまりライブラリを作成する IAR システ ムズのユーティリティ。Iarchive は、IAR Embedded Workbench に付属しています。 IDE(統合開発環境) 必要なすべてのツールを 1 つのアプリケーションに統 合したプログラミング環境。 Ielfdump IAR システムズのユーティリティ。ELF 再配置可能イ メージまたは実行可能イメージの内容のテキスト表示 を作成するために使用します。 Ielftool IAR システムズのユーティリティ。ELF 実行可能イ メージ上でさまざまな変換(フィル、チェックサム、 フォーマット変換など)を実行するために使用します。 ILINK ELF/DWARF フォーマットで絶対出力を生成する IAR ILINK リンカ。 ILINK 設定 使用可能な物理メモリの定義およびこれらのメモリに 対するセクション(コードやデータ)の配置。ILINK では、実行可能イメージを構築する設定が必要です。 イメージ 実行可能イメージを参照してください。 インクルードファイル ソースファイルにインクルードされるテキストファイ ル。この処理は、多くの場合はプリプロセッサが実行 します。 インラインアセンブラ C 言語の文の間に直接挿入するアセンブラ言語。 インライン化 呼出し先関数の本体を関数呼出しに置き換える最適化 処理。この最適化により実行速度が向上し、場合に よっては生成コードのサイズも削減できます。 命令ニーモニック アセンブラ言語で、マシン命令を表現するために使用 される語や頭辞語。プロセッサによって命令セットが 異なるため、ADD、BR(分岐)、BLT(値が小さい場合に 分岐)、MOVE、LDR(レジスタのロード)などの命令を 表現するニーモニックセットも異なります。 割込みベクタ 割込み発生時に実行されるコードの一部か、そのコー ドを示すポインタ。 割込みベクタテーブル 割込みベクタをタイプ別にインデックス化して格納し たテーブル。このテーブルには、プロセッサでの割込 みと割込みサービスルーチンのマッピングが格納され、 プログラマが初期化する必要があります。 割込み 組込みシステムでは、割込みを使用して、タイマオー バフローやボタンが押されたときなどの外部イベント を即座に検出します。 441 UEW-9 割込みは、通常処理を一時停止し、制御フローを「割 込みハンドラ」ルーチンに一時的に渡す非同期イベン トです。割込みは、ハードウェア(入出力、タイマ、 マシンチェック)とソフトウェア(モニタプログラム、 システム呼出し、トラップ命令)の両方により発生し ます。トラップと比較してください。 組込み ネイティブのコンパイラオブジェクト、プロパティ、 イベント、メソッドを意味する形容詞。 ライブラリ設定ファイル ランタイムライブラリの設定が記述されたファイル。 このファイルでは、ランタイムライブラリに含まれる 機能が定義されています。ランタイムライブラリのビ ルドを調整するために使用されます。ランタイムライ ブラリも参照してください。 組込み関数 1. 特定のマシンコードシーケンスに直接展開される関 数呼出し。2. コンパイラが内部的用途(浮動小数点演 算など)で呼び出す関数。 リンカ設定ファイル (XLINK) IAR XLINK リンカが使用するファイル。アプリケー ションがターゲットチップに適応するように、メモリ セグメントを配置できる場所を指定するコマンドライ ンオプションが含まれています。 Iobjmanip ELF オブジェクトファイルの低レベルの操作に使用す る IAR システムズのユーティリティ。 チップ固有の情報の多くは、ソースコードではなくリ ンカ設定ファイルで指定するため、リンカ設定ファイ ルはコードの移植性を実現するためにも利用します。 K 特に、リンカはセグメントの配置、スタックサイズ、 ヒープサイズを指定します。 キーバインディング IDE で使用するメニューコマンド用キーショート カット。 リンカ設定ファイル (ILINK) 実行可能イメージを構築するときに IAR ILINK リンカ により使用される設定を含むファイル。ILINK 設定も参 照してください。 キーワード プログラミング言語の構文で定義されているシンボル セット。言語で使用されるすべてのキーワードは予約 済みで、識別子(変数やプロシージャなどのユーザ定 義オブジェクト)として使用することはできません。 拡張キーワードも参照してください。 L L値 代入文の左辺の変更可能な値。単純な変数、逆参照さ れたポインタがこれに該当します。(x + 10) のような 式には新しい値を代入できないため、L 値にはなりま せん。 言語拡張 ターゲット固有の C 言語拡張。 IAR Embedded Workbench IDE 442 ライブラリ ランタイムライブラリを参照してください。 ユーザガイド UEW-9 ローカル変数 自動変数を参照。 ロケーションカウンタ プログラムロケーションカウンタ (PLC) を参照してくだ さい。 論理アドレス 仮想アドレス(論理アドレス)を参照してください。 用語集 M MAC(積和演算) 乗算を加算と共に実行する特殊な命令、オンチップデ バイス。次の形式のフィルタや変換を多数使って信号 処理を実行する場合に多用されます。 MAC のアキュムレータは、通常のレジスタより高精度 (ビット数が多い)です。デジタル信号プロセッサ (DSP) も参照してください。 マクロ 1. アセンブラマクロは、ユーザ定義のアセンブラ行 セットであり、後で指定のマクロ名を参照することに より、ソースファイルに展開されます。参照時には、 パラメータの置換が行われます。 2. C マクロは、ソースファイルの前処理中に使用される テキスト置換の仕組みです。マクロは、#define プリ プロセッサディレクティブを使用して定義します。そ れ以降の翻訳単位でマクロ名が記述された箇所が、各 マクロに対応する置換用テキストに置換されます。 3. C-SPY マクロは、C-SPY の機能を拡張するために ユーザが記述できるプログラムです。C-SPY マクロは、 典型的な例として、ブレークポイントに対応付けて使 用します。ブレークポイントに到達したときにそのマ クロを実行し、周辺デバイスのシミュレーション、複 雑な条件の評価、トレースの出力などを行うことがで きます。 C-SPY マクロ言語は、C の簡易版ですが、C ほど厳密 なデータ型がありません。 メールボックス RTOS でのメールボックスとは、複数のタスク間の通 信拠点です。タスクは、別のタスクのメールボックス にメッセージを保存することで、そのタスクにメッ セージを送信できます。メールボックスは、メッセー ジキュー、メッセージポートとも呼びます。 マングル化 (ILINK) マングル化とは、複雑な C/C++ 名を簡単な名前にマッ ピングするときに使用される技術です。ILINK メッ セージの C/C++ シンボルに対して、マングル化した名 前とデマングル化した名前の両方を生成できます。 メモリ、リンカ設定ファイル内 (ILINK) 物理メモリ。物理メモリに含まれるユニット数および 1 つのユニットを構成するビット数。リンカ設定ファ イルで定義されます。メモリは、常に 0x0 ~(サイズ -1)からアドレスできます。 メモリアクセスコスト メモリアクセスコストは、アクセス実行に必要なク ロックサイクル数かコードのバイト数で示されます。 サイズの大きな命令や多数の命令が必要なメモリは、 よりサイズが小さい命令や少ない命令でアクセスでき るメモリよりもアクセスコストが高い、というように 使用します。 メモリエリア メモリの領域を意味します。 メモリバンク バンクメモリ内のシーケンシャルメモリの最小単位。 マイクロコントローラの物理アドレス空間で一度に認 識できるメモリバンクは 1 つです。 メモリマップ マイクロコントローラで使用可能なさまざまなメモリ エリアのマップ。 メモリモデル メモリ階層やシステムが処理できるメモリ容量を示し ます。アプリケーションで同時に使用できるメモリモ デルは 1 つだけです。また、すべてのユーザモジュー ルやライブラリモジュールで同一のモデルを使用する 必要があります。 マイクロコントローラ 組込みシステムとして動作する 1 つの集積回路上のマ イクロプロセッサ。マイクロコントローラは、CPU に 加え、小容量の RAM、PROM、タイマ、入出力ポート を内蔵しています。 443 UEW-9 マイクロプロセッサ 1 つ(または少数の)集積回路に内蔵された CPU。シ ングルチップマイクロプロセッサには、メモリ、メモ リ管理、キャッシュ、浮動小数点演算ユニット、入出 力ポート、タイマなどのコンポーネントを内蔵できま す。このようなデバイスを、マイクロコントローラと も呼びます。 複数ファイルのコンパイル コンパイラで複数のソースファイルを 1 つのコンパイ ルユニットとしてコンパイルするテクニック。これに より、コンパイルユニット内の複数のソースファイル でのインライン化、クロスコール、クロスジャンプな ど、プロシージャ間の最適化が可能になります。 モジュール オブジェクト。オブジェクトファイルはモジュールを 含み、ライブラリは 1 つ以上のオブジェクトを含みま す。リンクの基本単位。モジュールには、シンボル定 義(エクスポート)や外部シンボルへの参照(イン ポート)が含まれます。C/C++ のコンパイル時には、 翻訳単位ごとに 1 つモジュールが生成されます。 N ネスト割込み 割込みに対して別の割込みを実行できるシステムを、 ネスト割込み機能を持つと言います。 非バンクメモリ マイクロコントローラの物理アドレス空間で、各メモ リアドレスにつき 1 つ格納場所があること。 非初期化メモリ リセット時に任意の値を持つことができる、またはソ フトリセット時にリセット前の値を保持できるメモリ。 No-init セグメント s/ セクション 起動時に初期化されないリード / ライトセクション。 セグメント (XLINK)、セクション (ILINK) も参照してくだ さい。 IAR Embedded Workbench IDE 444 ユーザガイド UEW-9 不揮発性ストレージ バッテリバックアップ RAM、ROM、磁気テープ、磁 気ディスクなどの、電源を切断してもデータを保持で きるメモリデバイス。揮発性ストレージと比較してく ださい。 NOP No operation(無動作命令)の略。何の処理も実行せず、 遅延を発生させるために使用する命令。パイプライン アーキテクチャでは、NOP 命令を使用して、パイプラ インを同期させることができます。パイプラインも参 照してください。 O Objcopy ELF フォーマットの絶対オブジェクトファイルを、た とえば、フォーマット Motorola-std や Intel-std などの絶 対オブジェクトファイルに変換する GNU バイナリユー ティリティ。Ielftool も参照してください。 オブジェクト ライブラリメンバのオブジェクトファイル。 オブジェクトファイル、絶対 実行可能イメージを参照してください。 オブジェクトファイル、再配置可能 ソースファイルをコンパイルまたはアセンブルした結 果。オブジェクトファイルに使用されるファイル フォーマットは、XLINK では UBROF、ILINK ではデ バッグ情報用の組込み DWARF を含む ELF です。 演算子 関数として使用されるシンボルで、引数が 2 つある場 合は中置記法(+ など)、引数が 1 つだけの場合は前置 記法(ビット単位の否定を示す ~ など)で使用します。 多くの言語では、算術演算や論理演算などの組込み関 数に演算子を使用します。 用語集 演算子の優先順位 それぞれの演算子には優先順位が設定され、演算子と オペランドが評価される順番はそれによって決定され ます。優先順位が一番高い演算子が最初に評価されま す。演算子およびオペランドをグループ化し、式の評 価順序を変更するには、括弧を使用します。 オプション コンパイラやリンカなどツールの動作を制御するコマ ンドのセット。オプションは、コマンドラインや IDE によって指定できます。 出力イメージ リンク後の結果のアプリケーション。この用語は、IAR システムズのユーザドキュメントで使用される用語で ある、実行可能イメージと同じです。 オーバレイ、リンカ設定ファイル内 (ILINK) ブロックと似ているが、それぞれがブロック、オーバ レイ、セクションで構成されるいくつかの重複エン ティティを含む。オーバレイのサイズは、その最大要 素で決定されます。 P パラメータの受渡し 呼出し規約を参照してください。 周辺ユニット メモリや入出力デバイスなど、プロセッサ以外のハー ドウェアコンポーネント。 パイプライン 計算が流れる一連のステージで構成される構造。他の 処理がパイプライン経由で実行中でも、パイプライン の開始地点で新しい処理を開始できます。 配置、リンカ設定ファイル内 (ILINK) ブロック、オーバレイおよびセクションを領域に配置 する方法。コードおよびデータが、使用可能な物理メ モリに実際にどのように配置されるかを決定します。 ポインタ 指定した型の他のオブジェクトのアドレスを格納する オブジェクト。 #pragma C/C++ プログラムのコンパイル中に、#pragma プリプ ロセッサディレクティブが検出されると、コンパイラ を処理系定義に従って動作させます。これには、コン ソールでの出力生成、それ以降のオブジェクトの宣言 の変更、最適化レベルの変更、言語拡張の有効 / 無効 の切替えなどがあります。 プリエンプティブマルチタスク RTOS のタスクは、より優先順位の高いプロセスが有効 になるまでの間、実行を許可されます。割込みの結果、 優先順位の高いタスクが有効になる場合があります。プ リエンプティブとは、タスクが一定の実行時間(タイム スライス)を割り当てられている場合でも、プロセッサ の使用権を失うことがあることを意味します。割込みが 発生するごとに、タスクスケジューラはそのときに有効 なタスクの中で優先順位が最高のものを特定し、そのタ スクに処理を切り替えます。特定されたタスクが割込み 前に実行されていたタスクと異なる場合は、前のタスク は割込み時点の状態で一時停止します。 ラウンドロビンと比較してください。 プリプロセッサディレクティブ 実際のコードの解析を開始する前に実行されるディレ クティブ。 プリプロセッサ C 形式のプリプロセッサを参照してください。 派生プロセッサ コンパイラがサポートする別のチップ構成。派生品を 参照してください。 プログラムカウンタ (PC) 命令のアドレッシングに使用する特殊なプロセッサレ ジスタ。プログラムロケーションカウンタ (PLC) と比較 してください。 445 UEW-9 プログラムロケーションカウンタ (PLC) IAR アセンブラで、現在の命令のコードアドレスを指 定する際に使用します。PLC は、算術式で使用できる 特別なシンボル(通常は $)で表現されます。単にロ ケーションカウンタ (LC) とも呼びます。 PROM Programmable Read-Only Memory(プログラマブルリー ドオンリーメモリ)の略。1 回だけライト可能な ROM。 プロジェクト ユーザアプリケーション開発プロジェクト。 プロジェクトオプション アプリケーションを実行するターゲットプロセッサな どの、プロジェクト全体に適用される一般オプション。 Q 修飾子 型修飾子を参照してください。 R 範囲、リンカ設定ファイル メモリ内での連続するアドレスの範囲。領域は、範囲 で構成されます。 R値 代入文の右辺に指定可能な値。単純に値だけがこれに 該当します。L 値も参照してください。 リードオンリーセグメント / セクション コードや定数を含むセグメント / セクション。セグメン ト (XLINK)、セクション (ILINK) も参照してください。 リアルタイムオペレーティングシステム (RTOS) 割込みが発生してから割込みハンドラが開始されるま での遅延と、タスクのスケジューリング方法を保証す るオペレーティングシステム。一般的に RTOS は、通 常のデスクトップ用オペレーティングシステムよりも 大幅に小さなサイズとなっています。リアルタイムシ ステムと比較してください。 IAR Embedded Workbench IDE 446 ユーザガイド UEW-9 リアルタイムシステム プロセスが時間に依存するコンピュータシステム。リ アルタイムオペレーティングシステム (RTOS) と比較し てください。 領域、リンカ設定ファイル 重複しない範囲のセット。範囲は、1 つ以上のメモリ に存在できます。ILINK の場合はブロック、オーバレ イ、セクションは、リンカ設定ファイルの領域に配置 されます。XLINK の場合、セグメントは領域に配置さ れます。 領域式、リンカ設定ファイル内 (ILINK) 領域リテラル、領域、リンカ設定ファイルで使用でき る共通セット操作で構成される領域。 領域リテラル、リンカ設定ファイル内 (ILINK) メモリ内で重複しない 1 つ以上の範囲セットを定義す るリテラル。 レジスタ定数 システム初期化の際に、プロセッサの専用レジスタに ロードされる値。コンパイラは、定数が専用レジスタ に格納されていることを前提に、コードを生成するこ とができます。 レジスタ 特にアクセス速度が高速で、プログラム実行時の一時 記憶エリアとして確保されている小型オンチップメモ リユニット。通常の容量は数バイトです。 レジスタロック 通常のコード生成時に、コンパイラで一部のプロセッ サレジスタの使用を禁止することを指します。多くの 状況で使用します。たとえば、高速化のため、システ ムの一部をアセンブラ言語で記述する場合があります。 この部分に、専用のプロセッサレジスタを割り当てる 場合もあります。また、オペレーティングシステムや サードパーティ製ソフトウェアでレジスタが使用され る場合もあります。 用語集 レジスタ変数 通常、レジスタ変数は、関数の(スタック)フレーム の代りにレジスタに格納されるローカル変数を指しま す。レジスタ変数は、メモリアクセスが不要で、コン パイラでレジスタ変数を使用することで命令の実行時 間を短縮できるため、他の変数よりも大幅に高速で す。自動変数も参照してください。 再配置可能セグメント / セクション リンク前にメモリ位置を固定していないセグメント / セクション。 リセット システムの初期状態から再起動することを指します。 リセットは、ハードウェア(ハードリセット)または ソフトウェア(ソフトリセット)から実行できます。 ハードリセットは通常は電源投入と区別できません が、ソフトリセットは区別できます。 ROM モニタ デバッグツールでの使用に特化した組込みソフトウェ ア。評価ボードチップの ROM に格納されていて、シ リアルポートかネットワーク接続経由でデバッガと通 信します。ROM モニタは、メモリアドレス(ロケー ション)やレジスタの表示と修正、ブレークポイント の作成と削除、アプリケーションの実行などの基本コ マンドセットを提供します。デバッガは、これらの基 本コマンドを組み合せて、プログラムのダウンロード やステップ実行など、より高度な機能を実現できます。 ラウンドロビン オペレーティングシステムでのタスクスケジュール。 ここでは、すべてのタスクの優先順位レベルが同じで あり、1 つずつ順番に実行されます。プリエンプティ ブマルチタスクと比較してください。 RTOS リアルタイムオペレーティングシステム (RTOS) を参照 してください。 ランタイムライブラリ オブジェクトファイルから参照される場合のみ、つま り条件付きでリンクされる場合のみ、実行可能イメー ジに含まれる再配置可能オブジェクトファイルの集合。 ランタイムモデル属性 相互に互換性のない複数のモジュールがアプリケー ションにリンクされないようにする仕組み。ランタイ ム属性は、名前付きのキーと対応する値のペアで構成 されます。 XLINK の場合、2 つのモジュールの両方で定義されてい る各キーの値が同一の場合にだけ、これらのモジュール をリンクできます。ILINK は、ライブラリを自動的に選 択するときに、ランタイムモデル属性を使用して、正し いライブラリが使用されているか確認します。 S 飽和演算 ほとんどの C/C++ の実装では、mod2N 2 の補数ベース の演算を使用します。オーバフロー時には、定義域で 値がラップされます。つまり、(127 + 1) = -128 となりま す。一方、飽和演算では、定義域でのラップが許可さ れていません。たとえば、定義域の上限値が 127 の場 合、(127 + 1) = 127 となります。飽和演算は、ラップが 許可されているとオーバフロー状態が致命的な問題に なる信号処理で、よく使用されます。 スケジューラ RTOS でタスク切替えを担当する部分。また、実行を 許可するタスクの選択も担当します。スケジューリン グアルゴリズムには多種ありますが、ほとんどは静的 スケジューリング(コンパイル時に実行)または動的 スケジューリング(次に実行するタスクを、タスク切 替え時のシステムの状態に応じて実行時に選択)のい ずれかです。ほとんどのリアルタイムシステムでは、 システムのリアルタイム要件違反を排除できるため、 静的スケジューリングが使用されています。 スコープ アプリケーションコード内で、関数や変数を名前で参 照できる部分。ある項目のスコープは、ファイル、関 数、ブロックのいずれかに制限されることがあります。 セクション (ILINK) データまたはテキストのいずれかを含むエンティティ。 通常は1つ以上の変数または関数です。セクションは、 最小のリンク可能ユニットです。 447 UEW-9 セクション属性 (ILINK) 各セクションは名前と属性を持つ。属性は、セクショ ンの内容、つまり、セクションの内容がリードオン リー、リード / ライト、コード、データなどを定義し ます。 セクションフラグメント (ILINK) セクションの一部。通常は変数または関数です。 セクション選択 (ILINK) リンカ設定ファイルにおいて、セクションセレクタを 使用してセクションのセットを定義します。セクショ ンは、複数の選択の一部となる可能性がある場合、最 も制限の厳しいセクションセレクタに属します。セレ クタには、セクション属性(セクションの内容で選択)、 セクション名(セクション名で選択)、オブジェクト名 (特定のオブジェクトから選択)の 3 種類があり、これ らは個別に使用したり、組み合わせて使用してセク ションのセットを選択したりできます。 セグメント (XLINK) メモリ内の物理アドレスにマッピングされるデータや コードのかたまり。セグメントは、RAM(リード / ラ イト可能メモリ)にも ROM(リードオンリーメモリ) にも配置できます。 セグメントマップ (XLINK) セグメントおよびそれらのアドレスのセット。 セグメントパート (XLINK) セグメントの一部。通常は変数または関数です。 セマフォ リソースへの排他的アクセスを保証するために使用す るフラグの一種。リソースとしては、ハードウェア ポート、構成メモリ、変数などがあります。複数のタ スクが同一リソースにアクセスする必要がある場合は、 リソースにアクセスする部分のコード(クリティカル セクション)をすべてのタスクに対して排他的にする 必要があります。これには、そのリソースを保護する セマフォを取得し、他のタスクからそのリソースを遮 断します。他のタスクがそのリソースを使用する場合 は、そのタスクもセマフォを取得する必要があります。 IAR Embedded Workbench IDE 448 ユーザガイド UEW-9 セマフォが使用中の場合は、セマフォが解放されるま で待機する必要があります。セマフォが解放された後 は、2 番目のタスクが実行を許可され、セマフォを取 得してリソースへの排他的アクセスを実行できます。 重要度 何らかの問題を検出したときにアセンブラ、コンパイ ラ、デバッガから返される診断応答の重要度。通常、 重要度は、リマーク、ワーニング、エラー、致命的な エラーの 4 段階です。リマークは問題の可能性を示す だけですが、致命的なエラーの場合はプログラミング ツールが処理の完了前に終了したことを示します。 共有 いくつかの方法でアドレスが可能な物理メモリ。ILINK の場合は、リンカ設定ファイルで定義します。XLINK の場合、コマンドラインオプション -u を使用します。 ショートアドレッシング 多くのマイクロコントローラでは、内部 RAM、メモリ マップド I/O へのアクセスを効率的に行うため、特別 なアドレッシングモードがあります。データポインタ も参照してください。 副作用 C/C++ の式がシステムの状態を変更することを、副作 用があると言います。例として、変数への代入や、変 数に後置インクリメント演算子を使用する場合などが あります。C/C++ の規格では、副作用のある変数を式 で複数回使用しないように規定されています。 たとえば、次の文はこのルールに違反します。 *d++ = *d; シグナル シグナルは、イベントベースのタスク間通信を提供し ます。1 つのタスクは、他の 1 つ以上のタスクからの シグナルを待つことがあります。待っているシグナル をタスクが受信すると、実行が続行されます。RTOS では、シグナルを待つタスクは処理時間を費やさない ため、他のタスクを実行できます。 用語集 シミュレータ ホスト上で実行し、ターゲットプロセッサと可能な限 り同一に動作するデバッグツール。シミュレータは、 ハードウェアが使用できないときか、ハードウェアを デバッグに使わないときに、アプリケーションのデ バッグのために使用します。物理的な周辺デバイスに は通常接続しません。シミュレーションされたプロ セッサは、多くの場合は実際のハードウェアよりも (場合によっては大幅に)低速になります。 ステップ実行 デバッガで一度に 1 つずつ命令や C 言語の文を実行す ることを指します。 スケルトンコード ユーザがコードを特定用途化できる、未完成のコード フレームワーク。 特殊機能レジスタ (SFR) マイクロコントローラのハードウェアコンポーネント に対するリード / ライトに使用するレジスタ。 スタックフレーム データオブジェクト(保持レジスタ、ローカル変数、特 定のスコープ用に一時的に保持する必要のある他のデー タオブジェクト)を含むデータ構造(通常は関数) 。 以前のコンパイラでは、関数全体でスタックフレーム のサイズとレイアウトが固定されていましたが、最近 のコンパイラでは、関数内の任意の箇所 / 時間で、非 常に動的にレイアウトとサイズを変更できる場合があ ります。 スタックセグメント / セクション スタックのエリアを予約するセグメント / セクションま たはセグメント / セクション。ほとんどのプロセッサは 呼出しとパラメータで同一のスタックを使用しますが、 一部のプロセッサでは個別のスタックを使用します。 静的割当てメモリ この種のメモリは、リンク時に 1 度だけ割り当てられ、 アプリケーションの実行終了まで有効です。global ま たは static として宣言された変数が、この方法で割り 当てられます。 静的オブジェクト リンク時にメモリが割り当てられ、システム起動時 (または最初の使用時)に作成されるオブジェクト。 動的オブジェクトと比較してください。 静的オーバレイ (XLINK) パラメータや自動変数に動的配置方式を使用する代り に、リンク時にパラメータや自動変数にエリアを割り 当てます。この方法ではスタックの使用効率は最悪に なりますが、スタックアクセスが高価な、またはス タックアクセスがまったくない小型チップには、適し ている場合があります。 構造体値 構造体および共用体の集合名。構造体は、メモリに連 続的に配置されたデータオブジェクトの集合です (データオブジェクト間にパッドバイトが挿入されてい ることもある)。共用体は、同一メモリアドレス(ロ ケーション)を共有するデータの集合です。 シンボル位置 正確なアドレスがわからないためにシンボル名を使用 している位置。 T ターゲット 1. アーキテクチャ。2. ハードウェア。アプリケーショ ン開発対象の組込みシステムを指します。この用語は、 通常はシステムとホストシステムの区別に使用します。 標準ライブラリ C/C++ 標準で定義されている C/C++ ライブラリ関数、 および浮動小数点ルーチンなどのコンパイラのサポー トルーチン。 449 UEW-9 タスク(スレッド) タスクは、システムでの実行スレッドです。多くの並 列で実行されるタスクを含むシステムを、マルチタス クシステムと呼びます。プロセッサは一度に 1 つの命 令ストリームだけを実行するため、ほとんどのシステ ムは何らかのタスク切替えメカニズム(多くの場合コ ンテキスト切替えと呼ぶ)を実装し、処理時間をすべ てのタスクに配分します。次に実行を許可するタスク の決定プロセスを、スケジューリングと呼びます。一 般的なスケジューリング方法として、プリエンプティ ブマルチタスクとラウンドロビンがあります。 仮定義 定義が同一で、絶対アドレスである場合に、複数の ファイルで定義可能な変数。 ターミナル I/O C-SPY の端末シミュレーションウィンドウ。 タイムスライス RTOS で、タスクスケジューリングアルゴリズムを実行 せずに 1 つのタスクを実行可能な(最長)時間。タスク 切替えまでに、複数の連続したタイムスライスにわたっ て 1 つのタスクが実行されることがあります。また、プ リエンプティブシステムで、より優先順位の高いタスク が割込みにより実行された場合のように、タスクが自身 に割り当てられたタイムスライス全体を使用できないこ ともあります。 タイマ プログラム実行とは無関係にカウントを実行する周辺 デバイス。 コンパイル単位 ソースファイルと、プリプロセッサディレクティブ #include でインクルードされるすべてのヘッダファイ ルやソースファイル(#if や #ifdef などの条件プリプ ロセッサディレクティブで省略された行を除く)を合 せたもの。 トラップ 命令ストリームに特殊な命令を挿入することで実行さ れる割込み。多くのシステムでは、トラップを使用し て、オペレーティングシステム関数を呼び出します。 ソフトウェア割込みとも呼びます。 IAR Embedded Workbench IDE 450 ユーザガイド UEW-9 型修飾子 標準 C/C++ では const、volatile。IAR システムズの コンパイラは、通常はメモリや他の型属性用にター ゲット固有の型修飾子を追加します。 U UBROF (Universal Binary Relocatable Object Format) 使用する製品パッケージに XLINK リンカが含まれる場 合に、一部の IAR システムズのプログラミングツール により生成されるファイルフォーマット。 V 値式、リンカ設定ファイル C 式と同様の構文を使用する式で構成できる定数値。 仮想アドレス(論理アドレス) コンパイラ、リンカ、ランタイムシステムによって、 使用前に物理メモリアドレスに変換する必要のあるア ドレス。仮想アドレスはアプリケーションで認識され るアドレスであり、システムの他の部分で認識される アドレスとは異なる場合があります。 仮想空間 IAR Embedded Workbench のエディタの機能で、実際の 文字のある領域外に挿入ポイントを移動できます。 揮発性ストレージ 揮発性記憶デバイスに保存したデータは、そのデバイ スの電源を切った場合は保持されません。電源を切っ た後もデータを保持するには、不揮発性ストレージに 保存する必要があります。C 言語のキーワードである volatile と混同しないでください。不揮発性ストレー ジと比較してください。 ノイマンアーキテクチャ 命令とデータの両方が共通のデータチャネルで転送さ れるコンピュータアーキテクチャ。ハーバードアーキ テクチャと比較してください。 用語集 W ウォッチポイント C 言語の変数や式の値を、アプリケーション実行中に C-SPY の[ウォッチ]ウィンドウでトレースします。 X ゾーン プロセッサによって、メモリアーキテクチャは大幅に 異なります。ゾーンとは、C-SPY で名前付きメモリエ リアを示す用語です。たとえば、個別にアドレッシン グ可能なコードおよびデータメモリを持つプロセッサ では、少なくとも 2 つゾーンがあります。複雑なバン クメモリ方式を採用したプロセッサの場合は、ゾーン が複数存在する場合があります。 XAR アーカイブ、つまりライブラリを作成する IAR の ツール。XAR は IAR Embedded Workbench に付属して います。 XLIB アーカイブ(ライブラリ)を作成したり、オブジェク トコードのリスト化、絶対オブジェクトファイルを別 のフォーマットの絶対オブジェクトファイルに変換す るための IAR ツール。XLIB は IAR Embedded Workbench に付属しています。 XLINK UBROF 出力フォーマットを使用する IAR XLINK リ ンカ。 Z ゼロ初期化済みセグメント / セクション 起動時にゼロに初期化されるべきセグメント / セク ション。セグメント (XLINK)、セクション (ILINK) も参照 してください。 ゼロオーバヘッドループ ループ条件(ループ開始地点へ戻る分岐を含む)の処 理に時間がまったくかからないループ。通常はプロ セッサの特別なハードウェア機能として実装されるた め、利用できないアーキテクチャがあります。 451 UEW-9 IAR Embedded Workbench IDE 452 ユーザガイド UEW-9 索引 索引 A ar、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 asm(ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi axx (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi B -B (C-SPY コマンドラインオプション). . . . . . . . . . 396 --backend (C-SPY コマンドラインオプション). . . . 396 bat (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvi bin、common (サブディレクトリ). . . . . . . . . . . . . . . xlv bin、cpuname (サブディレクトリ). . . . . . . . . . . . . .xliii C C (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . 334 c (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . . xlvi __cancelAllInterrupts (C-SPY システムマクロ). . . . . 411 __cancelInterrupt (C-SPY システムマクロ). . . . . . . . 411 cfg (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvi ‘CHAR’ の型(コンパイラオプション). . . . . . . . . . . 336 chm (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi __clearBreak (C-SPY システムマクロ). . . . . . . . . . . 411 CLIB、ドキュメンテーション . . . . . . . . . . . . . . . . . xxxix __closeFile (C-SPY システムマクロ). . . . . . . . . . . . . 412 --code_coverage (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 common (ディレクトリ). . . . . . . . . . . . . . . . . . . . . . . xlv $CONFIG_NAME$ (引数変数). . . . . . . . . . . . . . . . . . 246 config、common (サブディレクトリ). . . . . . . . . . . . xlv config、cpuname (サブディレクトリ). . . . . . . . . . . . xliv cpp (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi cpuname (ディレクトリ). . . . . . . . . . . . . . . . . . . . . . .xliii CPU レジスタ、ddf ファイル内の定義 . . . . . . . . . . . . 103 CPU 派生品、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 CRC、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 cspybat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 cstartup (システム起動コード) プログラムが以下に達するまでスタック ポインタが無効 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 $CUR_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 246 $CUR_LINE$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 246 --cycles (C-SPY コマンドラインオプション). . . . . . 397 C のキーワード、エディタのテキストスタイル . . . . . 86 C のコメント、エディタのテキストスタイル . . . . . . . 86 C 関数情報、C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 C 形式プリプロセッサ、定義 . . . . . . . . . . . . . . . . . . . . 437 C 言語のシンボル、C-SPY 式で使用 . . . . . . . . . . . . . . 117 C 言語の変数、C-SPY 式で使用 . . . . . . . . . . . . . . . . . . 117 C 構文、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . . 334 C-SPY IDE リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . 283 コマンドラインオプション . . . . . . . . . . . . . . . . . . . 396 シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 デバッガシステム、概要 . . . . . . . . . . . . . . . . . . . . . 100 デバッガの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 バッチモード、使用 . . . . . . . . . . . . . . . . . . . . . . . . . 393 プラグインモジュール、ロード . . . . . . . . . . . . . . . 104 環境の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C-SPYLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C-SPY オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 イメージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 追加オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 [オプション]ダイアログボックス内 . . . . . . . . . . 250 C-SPY オプション、定義 . . . . . . . . . . . . . . . . . . . . . . . 437 C-SPY デバッグサポートを含める (ILINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 C-SPY ドライバ シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 C-SPY の sizeof 演算子 . . . . . . . . . . . . . . . . . . . . . . . . . . 117 C-SPY のデバッグ情報(XLINK オプション). . . . . . 362 C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141, 403 453 UEW-9 C-SPY 式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 システムマクロ、まとめ . . . . . . . . . . . . . . . . . . . . . 409 セットアップマクロファイル 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 セットアップマクロ関数 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ダイアログボックス . . . . . . . . . . . . . . . . . . . . . . . . . 322 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ブロック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 マクロ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 ループ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118, 403 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 セットアップマクロとセットアッ プファイルの使用 . . . . . . . . . . . . . . . . . . . . . . . . 145 ブレークポイントに接続 . . . . . . . . . . . . . . . . . . . 147 [クイックウォッチ]を使用 . . . . . . . . . . . . . . . . 146 条件文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118, 404 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 execUserSetup . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 47 WDT のステータスのチェック . . . . . . . . . . . . . . 146 レジスタのステータスのチェック . . . . . . . . . . . 146 ログマクロの作成 . . . . . . . . . . . . . . . . . . . . . . . . 147 C-SPY 固有の追加出力ファイルを許可 (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 363 C-SPY 式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 クイックウォッチ、使用 . . . . . . . . . . . . . . . . . . . . . 121 ツールチップウォッチ、使用 . . . . . . . . . . . . . . . . . 120 評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 [ウォッチ]ウィンドウ、使用 . . . . . . . . . . . . . . . . 120 C/C++ 構文スタイル、オプション . . . . . . . . . . . . . . . . 264 C++ (コンパイラオプション). . . . . . . . . . . . . . . . . . . 334 C++ チュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 C++ のキーワード、エディタのテキストスタイル . . . 86 C++ のコメント、エディタのテキストスタイル . . . . . 86 IAR Embedded Workbench IDE 454 ユーザガイド UEW-9 C++ 構文、コンパイラで有効化 . . . . . . . . . . . . . . . . . . 334 C++ 用語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix C89 (コンパイラオプション). . . . . . . . . . . . . . . . . . . 335 C89、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . . . . 335 C99 (コンパイラオプション). . . . . . . . . . . . . . . . . . . 335 C99、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . . . . 335 D dat (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvi $DATE$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . . . . 246 dbg (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi dbgt (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi ddf (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi デバイス記述ファイルの選択 . . . . . . . . . . . . . . . . . 104 define (ILINK オプション). . . . . . . . . . . . . . . . . . . . . 381 define (XLINK オプション). . . . . . . . . . . . . . . . . . . . 368 __delay (C-SPY システムマクロ). . . . . . . . . . . . . . . . 412 dep (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi __disableInterrupts (C-SPY システムマクロ). . . . . . . 412 --disable_interrupts (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 DLIB ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 DLIB ライブラリ関数、リファレンス情報 . . . . . . . . . . 85 dni (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvi do (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 doc、common (サブディレクトリ). . . . . . . . . . . . . . xlv doc、cpuname (サブディレクトリ). . . . . . . . . . . . . . xliv --download_only (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 drivers、cpuname (サブディレクトリ). . . . . . . . . . . . xliv __driverType (C-SPY システムマクロ). . . . . . . . . . . 413 DSP デジタル信号プロセッサを参照。 DWARF、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 dxx (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi Dynamic Data Exchange (DDE) . . . . . . . . . . . . . . . . . . . . . 92 外部エディタの呼び出し . . . . . . . . . . . . . . . . . . . . . 261 索引 E EEC++ 構文(コンパイラオプション). . . . . . . . . . . . 336 EEPROM、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ELF 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Embedded C++ 構文、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . 336 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Embedded C++ Technical Committee . . . . . . . . . . . . . xxxix Embedded C++(コンパイラオプション) [Embedded C++ コンパイラオプション]. . . . . . . . . . . 336 Embedded Workbench エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 バージョン番号、表示 . . . . . . . . . . . . . . . . . . . . . . . 282 メインウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . 56, 196 リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 __enableInterrupts (C-SPY システムマクロ). . . . . . . 413 Enea OSE Load モジュールフォーマット、定義 . . . . . 439 EOL 文字 (エディタのオプション). . . . . . . . . . . . . . 258 EPROM、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 __evaluate (C-SPY システムマクロ). . . . . . . . . . . . . 414 ewd (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi ewp (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvi ewplugin (ファイル名の拡張子). . . . . . . . . . . . . . . . xlvii eww (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . xlvii ワークスペースファイル . . . . . . . . . . . . . . . . . . . . . . 57 $EW_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 246 examples、cpuname (サブディレクトリ). . . . . . . . . . xliv execUserExit (C-SPY セットアップマクロ). . . . . . . 408 execUserFlashExit (C-SPY セットアップマクロ). . . 408 execUserFlashInit (C-SPY セットアップマクロ). . . . 408 execUserFlashReset (C-SPY セットアップマクロ). . 408 execUserPreload (C-SPY セットアップマクロ). . . . . 408 execUserReset (C-SPY セットアップマクロ). . . . . . 408 execUserSetup (C-SPY セットアップマクロ). . . . . . 408 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 47 $EXE_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 246 F $FILE_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 $FILE_FNAME$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 $FILE_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 247 --flash_loader (C-SPY コマンドラインオプション). . 398 fmt (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii for (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 G Go (ボタン). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Go ([デバッグ]メニュー). . . . . . . . . . . . . . . . . . . . . 112 H h (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . helpfiles (ファイル名の拡張子). . . . . . . . . . . . . . . . htm (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . html (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . xlvii xlvii xlvii xlvii I i (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvii iarbuild、コマンドラインからのビルド . . . . . . . . . . . . . 79 iarchive ライブラリ作成用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 IarIdePm.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 IAR 拡張ありの標準 (コンパイラオプション). . . . 336 icf (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii IDE、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 if else (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 if (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 ILINK オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 455 UEW-9 チェックサム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 追加オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 #define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ILINK の設定、定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 ILINK 設定ファイルでの初期化、定義 . . . . . . . . . . . . 441 ILINK、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 inc (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii inc、cpuname (サブディレクトリ). . . . . . . . . . . . . . . xliv ini (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii Intel-extended、C-SPY 入力フォーマット . . . . . . . . . . 101 iobjmanip、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 __isBatchMode (C-SPY システムマクロ). . . . . . . . . . 414 ixx (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii I/O エミュレーションモジュール付き (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 363 L N NDEBUG、プリプロセッサシンボル . . . . . . . . . . . . . . 65 NOP (アセンブラ命令)、定義 . . . . . . . . . . . . . . . . . . 444 no-init セクション、定義 . . . . . . . . . . . . . . . . . . . . . . . . 444 lib、cpuname (サブディレクトリ). . . . . . . . . . . . . . . xliv lightbulb アイコン、本ガイドの . . . . . . . . . . . . . . . . . . . xl #line ディレクティブ、生成 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 $LIST_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 __loadImage (C-SPY システムマクロ). . . . . . . . . . . . 415 lst (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii L 値、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 O M P mac (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii マクロファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 マクロファイルの使用 . . . . . . . . . . . . . . . . . . . . . . . 103 -p (C-SPY コマンドラインオプション). . . . . . . . . . 399 pbd (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii pbi (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii IAR Embedded Workbench IDE 456 MAC、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 main 関数、C-SPY 起動時に実行 . . . . . . . . . . . . . 102, 390 main.s (アセンブラチュートリアルファイル). . . . . . 49 main.sxx (アセンブラチュートリアルファイル). . . . 49 map (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii リンカリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xlviii --mapu (C-SPY コマンドラインオプション). . . . . . 399 maxmin.sxx (アセンブラチュートリアル ファイル). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 __memoryRestore (C-SPY システムマクロ). . . . . . . 416 __memorySave (C-SPY システムマクロ). . . . . . . . . . 416 metadata (サブディレクトリ). . . . . . . . . . . . . . . . . . . xlvi MISRA-C コンパイラオプション . . . . . . . . . . . . . . . . . . . . . . . 346 一般オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 MODULE(アセンブラディレクティブ). . . . . . . . . . . 50 Motorola、C-SPY 入力フォーマット . . . . . . . . . . . . . . 101 ユーザガイド UEW-9 o (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvii objcopy、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 objdump、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 $OBJ_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 247 __openFile (C-SPY システムマクロ). . . . . . . . . . . . . 417 __orderInterrupt (C-SPY システムマクロ). . . . . . . . . 418 out (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . . xlvi 索引 pew (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii --plugin (C-SPY コマンドラインオプション). . . . . . 400 __popSimulatorInterruptExecutingStack (C-SPY システムマクロ). . . . . . . . . . . . . . . . . . . . . . . 419 powerpac、cpuname (サブディレクトリ). . . . . . . . . xlv PRINTF フォーマッタ(一般オプション). . . . . . . . . 330 prj (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . xlvii $PROJ_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 $PROJ_FNAME$ (引数変数). . . . . . . . . . . . . . . . . . . 247 $PROJ_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 247 PROM、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 PUBLIC (アセンブラディレクティブ). . . . . . . . . . . . 50 R __readFile (C-SPY システムマクロ). . . . . . . . . . . . . . 419 __readFileByte (C-SPY システムマクロ). . . . . . . . . . 420 __readMemoryByte (C-SPY システムマクロ). . . . . . 420 __readMemory8 (C-SPY システムマクロ). . . . . . . . . 420 __readMemory16 (C-SPY システムマクロ). . . . . . . . 421 __readMemory32 (C-SPY システムマクロ). . . . . . . . 421 readme ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv 「リリースノート」を参照 __registerMacroFile (C-SPY システムマクロ). . . . . . 422 __resetFile (C-SPY システムマクロ). . . . . . . . . . . . . 422 return (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 ROM モニタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . 101, 447 RTOS 認識デバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 RTOS 認識(C-SPY プラグインモジュール). . . . . . . 104 RTOS、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 rxx (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . xlvii R 値、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 S s (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . . .xlviii SCANF のフォーマッタ(一般オプション). . . . . . . . 331 SCC。ソースコード管理システムを参照してください。 __setCodeBreak (C-SPY システムマクロ). . . . . . . . . 423 __setDataBreak (C-SPY システムマクロ). . . . . . . . . 424 __setLogBreak (C-SPY システムマクロ). . . . . . . . . . 425 __setSimBreak (C-SPY システムマクロ). . . . . . . . . . 426 __setTraceStartBreak (C-SPY システムマクロ). . . . . 427 __setTraceStopBreak (C-SPY システムマクロ). . . . . 428 SFR ヘッダファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 [レジスタ]ウィンドウ内 . . . . . . . . . . . . . . . . . . . . 138 sfr (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . .xlviii --silent (C-SPY コマンドラインオプション). . . . . . . 400 sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 __sourcePosition (C-SPY システムマクロ). . . . . . . . 429 src、cpuname (サブディレクトリ). . . . . . . . . . . . . . . xlv stdin と stdout、ファイルにリダイレクト . . . . . . . . . . 115 STL コンテナ拡張(IDE オプション). . . . . . . . . . . . . 270 __strFind (C-SPY システムマクロ). . . . . . . . . . . . . . 429 __subString (C-SPY システムマクロ). . . . . . . . . . . . 430 sxx (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . .xlviii T __targetDebuggerVersion (C-SPY システムマクロ). . 430 $TARGET_BNAME$ (引数変数). . . . . . . . . . . . . . . . 247 $TARGET_BPATH$ (引数変数). . . . . . . . . . . . . . . . . 247 $TARGET_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 $TARGET_FNAME$ (引数変数). . . . . . . . . . . . . . . . 247 $TARGET_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . 247 --timeout (C-SPY コマンドラインオプション). . . . . 401 __toLower (C-SPY システムマクロ). . . . . . . . . . . . . 430 $TOOLKIT_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . 247 __toString (C-SPY システムマクロ). . . . . . . . . . . . . . 431 touch、オープンソースコマンドライン ユーティリティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 __toUpper (C-SPY システムマクロ). . . . . . . . . . . . . . 431 tutor、cpuname (サブディレクトリ). . . . . . . . . . . . . xlv 457 UEW-9 UBROF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 UBROF (Universal Binary Relocatable Object Format)。 UBROF を参照してください。 $USER_NAME$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 追加オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 追加出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 #define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 XLINK、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 V あ U visualSTATE C-SPY プラグインモジュール . . . . . . . . . . . . . . . . . 102 ツールチェーンの一部 . . . . . . . . . . . . . . . . . . . . . . . . 55 プロジェクトファイル . . . . . . . . . . . . . . . . . . . . . .xlviii VLA の許可 (コンパイラオプション). . . . . . . . . . . . 335 vsp (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . .xlviii W Web サイト、推奨 . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix while (マクロ文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 __writeFile (C-SPY システムマクロ). . . . . . . . . . . . . 432 __writeFileByte (C-SPY システムマクロ). . . . . . . . . 432 __writeMemoryByte (C-SPY システムマクロ). . . . . 433 __writeMemory8 (C-SPY システムマクロ). . . . . . . . 433 __writeMemory16 (C-SPY システムマクロ). . . . . . . 433 __writeMemory32 (C-SPY システムマクロ). . . . . . . 434 wsdt (ファイル名の拡張子). . . . . . . . . . . . . . . . . . .xlviii X XAR、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 xcl(ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . .xlviii xlb (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . . .xlviii XLIB、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 XLINK オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 I/O エミュレーションモジュール付き . . . . . . . . . . 363 チェックサム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 IAR Embedded Workbench IDE 458 ユーザガイド UEW-9 アクション([ブレークポイント] ダイアログボックス) イミディエイトブレークポイント . . . . . . . . . . . . . 176 コードブレークポイント : . . . . . . . . . . . . . . . . . . . . 220 データブレークポイント . . . . . . . . . . . . . . . . . . . . . 174 アクセスタイプ([ブレークポイント] ダイアログボックス) イミディエイトブレークポイント . . . . . . . . . . . . . 176 データブレークポイント . . . . . . . . . . . . . . . . . . . . . 173 アサーション、ビルドアプリケーション . . . . . . . . . . . 65 アセンブラオプション . . . . . . . . . . . . . . . . . . . . . . . . . 347 プリプロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 言語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 アセンブラシンボル C-SPY 式で使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 アセンブラディレクティブ . . . . . . . . . . . . . . . . . . . . . . . 50 エディタのテキストスタイル . . . . . . . . . . . . . . . . . . 86 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 アセンブラニーモニック (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 342 アセンブラのコメント、エディタの テキストスタイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 アセンブラの出力、デバッグ情報を含める . . . . . . . . 349 アセンブラプリプロセッサ . . . . . . . . . . . . . . . . . . . . . . 350 アセンブララベル、表示. . . . . . . . . . . . . . . . . . . . . . . . 122 索引 アセンブラリストファイル format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 コンパイラの呼出しフレーム情報 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 アセンブラ言語、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 435 アセンブラ出力ファイル(コンパイラオプション). 342 アセンブラ変数、表示 . . . . . . . . . . . . . . . . . . . . . . . . . 122 アセンブラ、コマンドラインバージョン . . . . . . . . . . . 55 アドレス式、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 アドレス範囲チェック、リンカで指定 . . . . . . . . . . . . 370 アプリケーション IDE の外部でビルド . . . . . . . . . . . . . . . . . . . . . . . . . 105 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79, 149 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 アプリケーションで定義 (ILINK オプション). . . . 377 アプリケーションで定義 (XLINK オプション). . . . 360 アーカイブ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 アーキテクチャ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 435 い イミディエイトブレークポイント . . . . . . . . . . . . . . . . 175 イメージ、複数のロード. . . . . . . . . . . . . . . . . . . . . . . . 391 インクルードファイル . . . . . . . . . . . . . . . . . . . . . . . . . xliv アセンブラ、パスを指定 . . . . . . . . . . . . . . . . . . . . . 350 コンパイラ、パスを指定 . . . . . . . . . . . . . . . . . . . . . 343 リンカ、パスを指定 . . . . . . . . . . . . . . . . . . . . . . . . . 360 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 インストールされるファイル . . . . . . . . . . . . . . . . . . . .xliii インクルード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv–xlv ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv 実行可能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv インストールパス、デフォルト . . . . . . . . . . . . . . . . . .xliii インストール先ディレクトリ . . . . . . . . . . . . . . . . . . xxxix インデントサイズ (エディタのオプション). . . . . . 257 インデント、エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . 86 インラインアセンブラ、定義 . . . . . . . . . . . . . . . . . . . . 441 インライン化、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 う ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 C-SPY 専用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 画面上の編成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ウォッチポイント 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 エディタ HTML ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 インデント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 キーボードコマンド . . . . . . . . . . . . . . . . . . . . . . . . . 213 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 コードテンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ステータスバー、使用 . . . . . . . . . . . . . . . . . . . . . . . . 87 外部 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 括弧と中括弧の対応 . . . . . . . . . . . . . . . . . . . . . . . . . . 87 環境のカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . 91 関数のショートカット . . . . . . . . . . . . . . . . . . . . 91, 209 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 分割バー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 エディタ ([外部エディタ]オプション). . . . . . . . . 261 エディタウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 210 タブ、コンテキストメニュー . . . . . . . . . . . . . . . . . 209 エディタウィンドウでの検索 . . . . . . . . . . . . . . . . . . . . . 91 エディタセットアップファイル ([IDE オプション]ダイアログボックス). . . . . . . . . 263 エディタセットアップファイル、オプション . . . . . . 263 エディタフォント ([エディタ色とフォント] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 エディタ色とフォント ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 264 エミュレータ(C-SPY ドライバ)、定義 . . . . . . . . . . . 439 エラーとして処理(ILINK オプション). . . . . . . . . . . 383 エラーとして処理(XLINK オプション). . . . . . . . . . 371 エラーとして処理(コンパイラオプション). . . . . . . 345 459 UEW-9 エラーメッセージ コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 リンカ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371, 383 エントリシンボル、指定. . . . . . . . . . . . . . . . . . . . . . . . 360 エントリシンボル(ILINK オプション). . . . . . . . . . . 377 お オブジェクトファイル、~の出力ディレクトリの 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 オブジェクトファイル(再配置可能)、定義 . . . . . . . 444 オブジェクトファイル(絶対)、定義 . . . . . . . . . . . . . 444 オブジェクトモジュール名 (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 341 オブジェクト、定義 . . . . . . . . . . . . . . . . . . . . . . . 444–445 オプション C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 C-SPY コマンドライン . . . . . . . . . . . . . . . . . . . . . . . 396 ILINK リンカ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 XLINK リンカ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 エディタセットアップファイル . . . . . . . . . . . . . . . 263 カスタムビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 コンバータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 ビルドアクション . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 ライブラリビルダ . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 一般 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 オプションの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 オプション、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 オンラインドキュメント common、ディレクトリ . . . . . . . . . . . . . . . . . . . . . . xlv ターゲット固有、ディレクトリ . . . . . . . . . . . . . . . xliv [ヘルプ]メニューから使用可能 . . . . . . . . . . . . . . 282 オーバレイ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 IAR Embedded Workbench IDE 460 ユーザガイド UEW-9 か ガイドラインの確認 . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii カスタムキーワードファイルの使用 (エディタのオプション). . . . . . . . . . . . . . . . . . . . . . . . 263 カスタムツール構成(カスタムビルドオプション). 355 カスタムビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 カスタムビルド構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 カテゴリ、[オプション]ダイアログボックス . . 77, 250 カーソルまで実行 デバッグツールバーのボタン . . . . . . . . . . . . . . . . . 285 実行用コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 [デバッグ]メニューで . . . . . . . . . . . . . . . . . . . . . . 321 カーソル、C-SPY の[逆アセンブリ]ウィンドウ . . 287 き キーカスタマイズ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 255 キーバインディング、定義 . . . . . . . . . . . . . . . . . . . . . . 442 キーワード エディタでの構文カラーの指定 . . . . . . . . . . . . . . . . 86 言語拡張の有効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 キーワード、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 キー操作のまとめ、エディタ . . . . . . . . . . . . . . . . . . . . 213 く グラフィカルスタック表示とスタック使用トラッキン グを有効にする([スタック]オプション). . . . . . . . 271 -clean (iarbuild コマンドラインオプション). . . . . . . . 79 グループ ([レジスタフィルタ]オプション). . . . . 273 グループメンバ ([レジスタフィルタ] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 グループ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 グローバル型チェックなし(XLINK オプション). . 369 索引 こ コスト。メモリアクセスコストを参照。 このガイドで使用されている規則 . . . . . . . . . . . . . . xxxix コピー(ボタン). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 コマンド ([外部エディタ]オプション). . . . . . . . . 262 コマンドプロンプトアイコン、本ガイド . . . . . . . . . . . xl コマンドラインオプション 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xl [ツール]メニューから指定 . . . . . . . . . . . . . . . . . . . 61 コンテキストメニュー、ウィンドウ . . . . . . . . . . . . . . 120 コンパイラオプション . . . . . . . . . . . . . . . . . . . . . . . . . 333 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 Embedded Workbench での設定、例. . . . . . . . . . . . . . 11 MISRA-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 プリプロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 言語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 コンパイラのシンボル、定義 . . . . . . . . . . . . . . . . . . . . 343 コンパイラのプリプロセッサ . . . . . . . . . . . . . . . . . . . . 342 コンパイラのリストファイル アセンブラニーモニック、含める . . . . . . . . . . . . . 342 ソースコード、含める . . . . . . . . . . . . . . . . . . . . . . . 342 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 コンパイラの診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 コンパイラ関数ディレクティブ、定義 . . . . . . . . . . . . 437 コンパイラ出力 デバッグ情報を含める . . . . . . . . . . . . . . . . . . . . . . . 341 プログラムまたはライブラリ . . . . . . . . . . . . . . . . . 340 モジュール名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 コンパイラ、コマンドラインバージョン . . . . . . . . . . . 55 コンバータオプション . . . . . . . . . . . . . . . . . . . . . . . . . 353 コンピュータスタイル、表記規則 . . . . . . . . . . . . . . . . . xl コード スケルトン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 バンク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 コードカバレッジ 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 コードセクション、定義. . . . . . . . . . . . . . . . . . . . . . . . 437 コードテンプレートの使用 (エディタのオプション). . . . . . . . . . . . . . . . . . . . . . . . 263 コードテンプレート、エディタで使用 . . . . . . . . . . . . . 88 コードのテンプレート、使用 . . . . . . . . . . . . . . . . . . . . . 88 コードの整合性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 コードポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 437 コードメモリ、使用部分のフィル . . . . . . . . . . . . 371, 384 コードモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 コード生成、アセンブラ. . . . . . . . . . . . . . . . . . . . . . . . 347 さ サイズの最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 サイズ([ブレークポイント] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . 174, 220 サービス ([外部エディタ]のオプション). . . . . . . 262 し シグナル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 システムマクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 シミュレータ 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 シミュレータドライバ、選択 . . . . . . . . . . . . . . . . . . . . 157 ショートアドレッシング、定義 . . . . . . . . . . . . . . . . . . 448 ショートカットキー . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ショートカットキーを押してください ([キーカスタマイズ]オプション). . . . . . . . . . . . . . . 255 461 UEW-9 シンボル ユーザシンボルも参照 C-SPY 式で使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 アセンブラでの定義 . . . . . . . . . . . . . . . . . . . . . . . . . 351 コンパイラでの定義 . . . . . . . . . . . . . . . . . . . . . . . . . 343 リンカでの定義 . . . . . . . . . . . . . . . . . . . . . . . . . 368, 381 入力モジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 シンボルをキープ(ILINK オプション). . . . . . . . . . . 378 シンボル位置、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 シンボル定義(ILINK オプション). . . . . . . . . . . . . . . 381 シンボル定義(XLINK オプション). . . . . . . . . . . . . . 368 シンボル定義(アセンブラオプション). . . . . . . . . . . 351 シンボル定義(コンパイラオプション). . . . . . . . . . . 343 す スクロール、~のためのショートカットキー . . . . . . . 85 スケジューラ(RTOS)、定義 . . . . . . . . . . . . . . . . . . . . 447 スケルトンコード 呼出し規約のチェック . . . . . . . . . . . . . . . . . . . . . . . . 29 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 スコープ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 スタック ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 271 スタックしきい値の超過時にワーニング ([スタック]オプション). . . . . . . . . . . . . . . . . . . . . . . 272 スタックセグメント、定義 . . . . . . . . . . . . . . . . . . . . . . 449 スタックフレーム、定義. . . . . . . . . . . . . . . . . . . . . . . . 449 スタックポインタが境界外の時にワーニング ([スタック]オプション). . . . . . . . . . . . . . . . . . . . . . . 272 スタック / ヒープ(一般オプション). . . . . . . . . . . . . 331 ステップアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ステップイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ステップオーバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ステップポイント、定義. . . . . . . . . . . . . . . . . . . . . . . . 110 ステップ実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 IAR Embedded Workbench IDE 462 ユーザガイド UEW-9 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ステータスバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 すべてのワーニングをエラーとして処理 (ILINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 すべてのワーニングをエラーとして処理 (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 345 すべてのワーニングを無効化 (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 370 すべてを保存(ボタン). . . . . . . . . . . . . . . . . . . . . . . . . 197 すべてを保存([ファイル]メニュー). . . . . . . . . . . . 230 スレッド、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 せ セクション バイナリデータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 セクションの属性、定義. . . . . . . . . . . . . . . . . . . . . . . . 448 セクションフラグメント、定義 . . . . . . . . . . . . . . . . . . 448 セクション選択、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 448 セグメント オーバラップエラー、引下げ . . . . . . . . . . . . . . . . . 369 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 範囲チェック、制御 . . . . . . . . . . . . . . . . . . . . . . . . . 370 セグメントオーバラップワーニング (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 369 セグメントパート 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 セグメントパート、リストファイルにすべて 含める . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 セグメントマップ 生成の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 セグメントマップ(XLINK オプション). . . . . . . . . . 366 セットアップマクロ、C-SPY。C-SPY マクロを参照 セットアップマクロ(C-SPY オプション). . . . . . . . . 390 セマフォ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 ゼロオーバヘッドループ、定義 . . . . . . . . . . . . . . . . . . 451 ゼロ初期化されたセクション、定義 . . . . . . . . . . . . . . 451 索引 そ ち ソースコード コンパイラリストファイルに含める . . . . . . . . . . . 342 テンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ソースコード管理 ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 268 ソースコード管理システム . . . . . . . . . . . . . . . . . . . . . . . 71 ソースのインクルード(コンパイラオプション). . . 342 ソースファイル プロジェクトへの追加 . . . . . . . . . . . . . . . . . . . . . . . . 10 プロジェクト管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ソースファイルの編集 . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ソースファイルパス . . . . . . . . . . . . . . . . . . . . . . . . 68, 213 ゾーン C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 チェックサム 生成 (ILINK). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 生成 (XLINK). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 チェックサム (ILINK オプション). . . . . . . . . . . . . . 384 チェックサム (XLINK オプション). . . . . . . . . . . . . . 371 チェックサム生成(ILINK オプション). . . . . . . . . . . 385 チェックサム生成(XLINK オプション). . . . . . . . . . 372 た タイプ ([外部エディタ]のオプション). . . . . . . . . 261 タイマ割込み、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 タイマ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 タイムスライス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 450 ダウンロードを中止する (C-SPY イメージオプション). . . . . . . . . . . . . . . . . . . 392 タスク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 タブキーの機能 (エディタのオプション). . . . . . . . 257 タブサイズ (エディタのオプション). . . . . . . . . . . . 257 ターゲットシステム、定義 . . . . . . . . . . . . . . . . . . . . . . 100 ターゲット、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 ターゲット(一般オプション). . . . . . . . . . . . . . . . . . . 327 ターミナル I/O ( [IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 274 ターミナル I/O ログファイル . . . . . . . . . . . . . . . . . . . . 115 ターミナル I/O、シミュレーション . . . . . . . . . . . . . . . 363 つ ツールアイコン、本ガイド . . . . . . . . . . . . . . . . . . . . . . . xl ツールチェーン 拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ツールバー IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 デバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 トレース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 ツール、ユーザ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 て ディレクトリ common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv cpuname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xliii アセンブラ、標準のインクルードを無視 . . . . . . . 350 コンパイラ、標準のインクルードを無視 . . . . . . . 343 ルート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xliii ディレクトリ構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xliii テキストの選択、~のためのショートカットキー . . . 85 デジタル信号プロセッサ、定義 . . . . . . . . . . . . . . . . . . 438 テスト、コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 デバイスドライバ、定義. . . . . . . . . . . . . . . . . . . . . . . . 438 デバイス記述ファイル . . . . . . . . . . . . . . . . . . . . . xliv, 104 割込みの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 463 UEW-9 デバイス記述ファイル(C-SPY オプション). . . . . . . 390 デバイス選択ファイル . . . . . . . . . . . . . . . . . . . . . . . . . xliv デバッガ ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 269 デバッガシステムの概要. . . . . . . . . . . . . . . . . . . . . . . . 100 デバッガドライバ C-SPY ドライバを参照 デバッガの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 デバッグの停止 (ボタン). . . . . . . . . . . . . . . . . . . . . . 285 デバッグ情報 アセンブラで生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 コンパイラ、生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 デバッグ情報の生成 (アセンブラオプション). . . . 349 デバッグ情報の生成(コンパイラオプション). . . . . 341 デバッグ前にメイクを実行 ([IDE プロジェクト] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 デバッグ、RTOS 認識 . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 デフォルトのインストールパス . . . . . . . . . . . . . . . . . .xliii デフォルトの出荷時設定の復元 . . . . . . . . . . . . . . . . . . . 77 デフォルト整数フォーマット (IDE オプション). . . 270 デマングル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 データカバレッジ、[メモリ]ウィンドウ内 . . . . . . . 292 データブレークポイント. . . . . . . . . . . . . . . . . . . . . . . . 172 データポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 438 データモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 データ表現、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 と ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xliii オンライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv–xlv ガイドの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii ガイドラインの確認 . . . . . . . . . . . . . . . . . . . . . . . xxxiii 本ガイドの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv ドッキング可能なウィンドウ . . . . . . . . . . . . . . . . . . . . . 57 ドライバ(C-SPY オプション). . . . . . . . . . . . . . . . . . 390 ドラッグアンドドロップ エディタウィンドウのテキスト . . . . . . . . . . . . . . . . 85 [ワークスペース]ウィンドウのファイル . . . . . . . 67 IAR Embedded Workbench IDE 464 ユーザガイド UEW-9 トラップ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 トレース、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ね ネスト割込み、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 の ノイマンアーキテクチャ、定義 . . . . . . . . . . . . . . . . . . 450 は パイプライン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 パス アセンブラのインクルードファイル . . . . . . . . . . . 350 コンパイラのインクルードファイル . . . . . . . . . . . 343 ソースファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 リンカのインクルードファイル . . . . . . . . . . . . . . . 360 相対、Embedded Workbench . . . . . . . . . . . . . . . . 68, 213 パス(C-SPY イメージオプション). . . . . . . . . . . . . . . 392 バックトレース情報 コンパイラが生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 [呼出しスタック]ウィンドウでの表示 . . . . . . . . 306 バッチファイル 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 [ツール]メニューから指定 . . . . . . . . . . . . . . . . . . . 61 バッチモード、C-SPY を使用 . . . . . . . . . . . . . . . . . . . 393 バッファしたターミナル出力 (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 363 バッファした書込み (ILINK オプション). . . . . . . . 377 ばらつき(割込みプロパティ). . . . . . . . . . . . . . . . . . . 185 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 パラメータ 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xl 不正な値のトレース . . . . . . . . . . . . . . . . . . . . . . . . . 114 バンクコード、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 バンクデータ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 索引 バンクメモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 バンク切替えルーチン、定義 . . . . . . . . . . . . . . . . . . . . 436 バンク切替え、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 バージョン Embedded Workbench . . . . . . . . . . . . . . . . . . . . . . . . . 282 本ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ii, ii バージョン管理システム. . . . . . . . . . . . . . . . . . . . . . . . . 71 ハーバードアーキテクチャ、定義 . . . . . . . . . . . . . . . . 440 ひ ビットフィールド、定義. . . . . . . . . . . . . . . . . . . . . . . . 436 ビルド オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 コマンドラインから . . . . . . . . . . . . . . . . . . . . . . . . . . 79 処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 -build (iarbuild コマンドラインオプション). . . . . . . . 79 ビルドアクションの構成 (ビルドアクションオプション). . . . . . . . . . . . . . . . . . 357 ビルドウィンドウ([表示]メニュー). . . . . . . . . . . . 225 ビルド構成 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 ビルド処理終了後にサウンドを再生 ([IDE プロジェクト ]オプション). . . . . . . . . . . . . . 268 ビルド前にエディタウィンドウを保存 ([IDE プロジェクト ] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 ビルド前にワークスペースとプロジェクトを保存 ([IDE プロジェクト]オプション). . . . . . . . . . . . . . . 267 ヒープサイズ 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 ヒープメモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 ふ ファイル コンパイル、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 チェックインとチェックアウト . . . . . . . . . . . . . . . . 72 プロジェクトへの追加 . . . . . . . . . . . . . . . . . . . . . . . . 10 間のナビゲート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ファイルタイプ map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 readme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv–xlv インクルード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv コマンドライン拡張 . . . . . . . . . . . . . . . . . . . . . . . .xlviii デバイスの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv デバイス記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv Embedded Workbench で指定 . . . . . . . . . . . . . . . . 104 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv フラッシュローダアプリケーション . . . . . . . . . . . xliv プロジェクトテンプレート . . . . . . . . . . . . . . . . . . . xliv ヘッダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 390 ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv リンカ設定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . xliv 構文カラー表示設定 . . . . . . . . . . . . . . . . . . . . . . . . . xliv 特殊機能レジスタの記述ファイル . . . . . . . . . . . . . xliv ファイルのチェックアウトダイアログボックス . . . . 207 ファイルのチェックインダイアログボックス . . . . . . 206 ファイルへのプリプロセッサ出力 (アセンブラオプション). . . . . . . . . . . . . . . . . . . . . . . . 351 ファイルへのプリプロセッサ出力 (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 344 ファイル拡張子。ファイル名の拡張子を参照 ファイル名の拡張子 . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi cfg、構文強調表示 . . . . . . . . . . . . . . . . . . . . . . . . . . 265 ddf、デバイス記述ファイルの選択 . . . . . . . . . . . . . 104 eww、ワークスペースファイル . . . . . . . . . . . . . . . . 57 icf、リンカ設定ファイル (ILINK). . . . . . . . . . . . . 16 mac マクロファイル . . . . . . . . . . . . . . . . . . . . . . . . . . 142 マクロファイルの使用. . . . . . . . . . . . . . . . . . . . . 103 xcl、拡張コマンドファイル . . . . . . . . . . . . . . . . . . . . 16 デフォルト以外 . . . . . . . . . . . . . . . . . . . . . . . . . . . .xlviii マップ、リンカリスト . . . . . . . . . . . . . . . . . . . . . .xlviii 465 UEW-9 フィルタファイル ([レジスタフィルタ] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 フィルパターン(ILINK オプション). . . . . . . . . . . . . 384 フィルパターン(XLINK オプション). . . . . . . . . . . . 371 フィル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 フォルトプログラムエントリのオーバライド (ILINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 フォルトプログラムエントリのオーバライド (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 360 フォント エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 プロポーショナル . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 等幅 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 フォーマット XLINK 出力 デフォルト、変更 . . . . . . . . . . . . . . . . . . . . 364–365 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 アセンブラリストファイル . . . . . . . . . . . . . . . . . . . . 32 コンパイラリストファイル . . . . . . . . . . . . . . . . . . . . 14 フォーマット指定子、定義 . . . . . . . . . . . . . . . . . . . . . . 440 ブックマーク エディタで表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ブックマークの切替え (ボタン). . . . . . . . . . . . . . . . 197 ブックマークの表示 (エディタのオプション). . . . 259 ブックマークへ移動(ボタン). . . . . . . . . . . . . . . . . . . 197 ブラウズ情報を生成 ([IDE プロジェクト] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 プラグイン common (サブディレクトリ). . . . . . . . . . . . . . . . . xlv cpuname (サブディレクトリ). . . . . . . . . . . . . . . . xliv プラグインモジュール(C-SPY). . . . . . . . . . . . . . . . . 101 ロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 プラグイン(C-SPY オプション). . . . . . . . . . . . . . . . . 392 #pragma ディレクティブ、定義 . . . . . . . . . . . . . . . . . . 445 フラッシュメモリ ライブラリモジュールのロード . . . . . . . . . . . . . . . 415 外部でビルドされたアプリケーションの ロード先 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 フラッシュローダアプリケーション . . . . . . . . . . . . . . xliv IAR Embedded Workbench IDE 466 ユーザガイド UEW-9 プリインクルードファイル (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 343 プリエンプティブマルチタスク、定義 . . . . . . . . . . . . 445 プリプロセッサ ファイルへの出力の出力 . . . . . . . . . . . . . . . . . . . . . 344 移行拡張を有効にする . . . . . . . . . . . . . . . . . . . . . . . 337 定義。C 形式プリプロセッサを参照 プリプロセッサ (コンパイラオプション). . . . . . . . 342 プリプロセッサディレクティブ エディタのテキストスタイル . . . . . . . . . . . . . . . . . . 86 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 プリプロセッサ(アセンブラオプション). . . . . . . . . 350 ブレイク(ボタン). . . . . . . . . . . . . . . . . . . . . . . . 113, 285 ブレークポイント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 C-SPY マクロに接続 . . . . . . . . . . . . . . . . . . . . . . . . . 147 イミディエイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 コンシューマ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 コード、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 システム、説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 すべてのリスト表示 . . . . . . . . . . . . . . . . . . . . . . . . . 132 データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172–173 例 . . . . . . . . . . . . . . . . . . . . . . . . . . 424–425, 427–428 トグル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ヒント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 条件付き、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 システムマクロの使用. . . . . . . . . . . . . . . . . . . . . 130 ダイアログボックスを使用 . . . . . . . . . . . . . . . . . 127 [メモリ]ウィンドウで . . . . . . . . . . . . . . . . . . . . 129 設定されていない場合のステップ実行 . . . . . . . . . 103 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 [メモリ]ウィンドウで . . . . . . . . . . . . . . . . . . . . . . 129 ブレークポイントアイコン . . . . . . . . . . . . . . . . . . . . . . 126 ブレークポイントの切替え (ボタン). . . . . . . . . . . . 197 ブレークポイントの切替え、例 . . . . . . . . . . . . . . . . 24, 46 ブレークポイントまでプログラムを実行 . . . . . . . . . . . 25 ブレークポイント条件、例 . . . . . . . . . . . . . . . . . . . . . . 131 ブレークポイント、定義. . . . . . . . . . . . . . . . . . . . . . . . 436 索引 プログラミング経験 . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii プログラムカウンタ、定義 . . . . . . . . . . . . . . . . . . . . . . 445 プログラムの実行、C-SPY . . . . . . . . . . . . . . . . . . . . . . 109 プログラムロケーションカウンタ、定義 . . . . . . . . . . 446 プログラム可能な出力フォーマット (出力コンバータオプション). . . . . . . . . . . . . . . . . . . . 353 プロジェクト オプションの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 グループとファイルの排除 . . . . . . . . . . . . . . . . . . . . 67 グループ、作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 コンパイル、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ソースコード管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 バージョン管理システム . . . . . . . . . . . . . . . . . . . . . . 71 ビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 ビルド構成、作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ファイル チェックインとチェックアウト . . . . . . . . . . . . . . 72 移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ファイルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . 67, 242 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ワークスペース、作成 . . . . . . . . . . . . . . . . . . . . . . . . 67 外部でビルドされたアプリケーションの デバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 項目の削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 67 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 446 編成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 プロジェクト IDE ([IDE プロジェクト ] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 プロジェクトオプション、定義 . . . . . . . . . . . . . . . . . . 446 プロジェクトのデバッグ 外部でビルドされたアプリケーション . . . . . . . . . 105 逆アセンブリモード、例 . . . . . . . . . . . . . . . . . . . . . . 22 複数イメージのロード . . . . . . . . . . . . . . . . . . . . . . . 107 プロジェクトメイク、オプション . . . . . . . . . . . . . . . . 267 プロジェクトモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 ブロック、C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . 406 ブロック、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 プロトタイプの強制(コンパイラオプション). . . . . 335 プロトタイプ、存在の検証 . . . . . . . . . . . . . . . . . . . . . . 335 プロファイリング情報 . . . . . . . . . . . . . . . . . . . . . . . . . 149 プロポーショナルフォント(IDE オプション). . . . . 254 フローティングウィンドウ . . . . . . . . . . . . . . . . . . . . . . . 57 へ ヘッダファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv 迅速なアクセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ほ ポインタ スタックがメモリ範囲以外の場合 . . . . . . . . . . . . . 137 スタックポインタが範囲外の時にワーニング . . . 272 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 ホスト、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 ま マイクロコントローラ、定義 . . . . . . . . . . . . . . . . . . . . 443 マイクロプロセッサ、定義 . . . . . . . . . . . . . . . . . . . . . . 444 マクロ 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 --macro (C-SPY コマンドラインオプション). . . . . . 399 マクロの引用符(アセンブラオプション). . . . . . . . . 348 マクロファイル、指定 . . . . . . . . . . . . . . . . . . . . . 103, 390 マクロ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 マップファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 リンカから生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 マルチタスク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 467 UEW-9 マルチバイト文字サポートを有効にする (アセンブラオプション). . . . . . . . . . . . . . . . . . . . . . . . 347 マルチバイト文字サポートを有効にする (コンパイラオプション). . . . . . . . . . . . . . . . . . . . . . . . 337 マングル化、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 め メッセージ ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 265 メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 C-SPY 専用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 メニュー (ファイル名の拡張子). . . . . . . . . . . . . . . xlvii メニューバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 C-SPY 専用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 メニュー([キーカスタマイズ]オプション). . . . . . 255 メモリ モニタ、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 未使用部分のフィル . . . . . . . . . . . . . . . . . . . . . 371, 384 メモリアクセスコスト、定義 . . . . . . . . . . . . . . . . . . . . 443 メモリアクセスチェック. . . . . . . . . . . . . . . . . . . . 159, 161 メモリアクセス、不正な. . . . . . . . . . . . . . . . . . . . . . . . 159 メモリエリア、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 メモリゾーン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 メモリバンク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 メモリマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 メモリモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 メモリ使用、概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 メールボックス(RTOS)、定義 . . . . . . . . . . . . . . . . . . 443 も モジュール ローカルシンボルを入力に含める . . . . . . . . . . . . . 364 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 モジュールサマリ(XLINK オプション). . . . . . . . . . 367 モジュールタイプ(コンパイラオプション). . . . . . . 340 IAR Embedded Workbench IDE 468 ユーザガイド UEW-9 モジュールローカルシンボル (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 364 モジュール名、コンパイラで指定 . . . . . . . . . . . . . . . . 341 ゆ ユーザアプリケーション、定義 . . . . . . . . . . . . . . . . . . 100 ユーザシンボルの大文字 / 小文字を区別する (アセンブラオプション). . . . . . . . . . . . . . . . . . . . . . . . 347 ら ライブラリ プロジェクトの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . 50 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 ライブラリオプション(一般オプション). . . . . . . . . 330 ライブラリビルダ オプションの出荷時設定 . . . . . . . . . . . . . . . . . . . . . 388 ライブラリ作成用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 出力オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 ライブラリファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv ライブラリファイル(一般オプション). . . . . . . . . . . 329 ライブラリモジュール コンパイラで指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 ライブラリ関数 リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 設定可能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv ライブラリ構成(一般オプション). . . . . . . . . . . . . . . 329 ライブラリ設定ファイル IDE からの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 ライブラリ(ILINK オプション). . . . . . . . . . . . . . . . . 376 ライブラリ(一般オプション). . . . . . . . . . . . . . . . . . . 329 ラウンドロビン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 447 ラベル(c)([自動インデントの設定] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 ラベル(アセンブラ)、表示 . . . . . . . . . . . . . . . . . . . . . 122 索引 ランタイムモデル属性 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 ランタイムライブラリ、定義 . . . . . . . . . . . . . . . . . . . . 447 ランタイム管理モジュール付き (XLINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . 363 り リアルタイムオペレーティングシステム、定義 . . . . 446 リアルタイムシステム、定義 . . . . . . . . . . . . . . . . . . . . 446 リスト (XLINK オプション). . . . . . . . . . . . . . . . . . . 366 リストファイル アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 コンパイラのランタイム情報 コンパイラ アセンブラニーモニック、含める . . . . . . . . . . . 342 ソースコード、含める. . . . . . . . . . . . . . . . . . . . . 342 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 リンカ セグメントマップを含める . . . . . . . . . . . . . . . . . 366 ページあたりの行数を指定 . . . . . . . . . . . . . . . . . 367 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 出力先指定用オプション . . . . . . . . . . . . . . . . . . . . . 328 リストファイルの出力(コンパイラオプション). . . 342 リスト(ILINK オプション). . . . . . . . . . . . . . . . . . . . . 380 リスト(アセンブラオプション). . . . . . . . . . . . . . . . . 349 リスト(コンパイラオプション). . . . . . . . . . . . . . . . . 341 リセット (ボタン). . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 リセット、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 リセット([デバッグ]メニュー)、例 . . . . . . . . . . . . . 28 リマーク コンパイラの診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 リンカ診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 リマークとして処理(ILINK オプション). . . . . . . . . 382 リマークとして処理(コンパイラオプション). . . . . 345 リマークを有効化(ILINK オプション). . . . . . . . . . . 382 リマークを有効化(コンパイラオプション). . . . . . . 344 リリースノート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv リンカ コマンドラインバージョン . . . . . . . . . . . . . . . . . . . . 55 デフォルト出力の変更 . . . . . . . . . . . . . . . . . . . 364–365 診断、無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 リンカシンボル、定義 . . . . . . . . . . . . . . . . . . . . . 368, 381 リンカマップファイルの表示 (ILINK オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 リンカリストの生成(XLINK オプション). . . . . . . . 366 リンカリストファイル セグメントマップを含める . . . . . . . . . . . . . . . . . . . 366 ページあたりの行数を指定 . . . . . . . . . . . . . . . . . . . 367 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 リンカ診断、無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 リンカ設定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ILINK での指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 XLINK で指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 ディレクトリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv パス、指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 リンカ設定ファイル(ILINK オプション). . . . . 375–376 リンカ設定ファイル(XLINK オプション). . . . . . . . 360 リンク、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 リードオンリーセクション、定義 . . . . . . . . . . . . . . . . 446 る ルートディレクトリ . . . . . . . . . . . . . . . . . . . . . . . . . . .xliii ループ文、C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . 405 れ レイアウト、Embedded Workbench の . . . . . . . . . . . . . . 57 レジスタ 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 [レジスタ]ウィンドウに表示 . . . . . . . . . . . . . . . . 137 レジスタグループ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 アプリケーション固有、定義 . . . . . . . . . . . . . . . . . 138 定義済み、有効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 469 UEW-9 レジスタフィルタ ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 273 レジスタフィルタの使用 ([レジスタフィルタ] オプション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 レジスタロック、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 446 レジスタ定数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 レジスタ変数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 ろ -log (iarbuild コマンドラインオプション). . . . . . . . . 79 ログ (ファイル名の拡張子). . . . . . . . . . . . . . . . . . . xlvii ログファイルの生成 (ILINK オプション). . . . . . . . 380 ログファイル、リンカからの生成 . . . . . . . . . . . . . . . . 380 ロケーションカウンタ、定義 . . . . . . . . . . . . . . . . . . . . 446 わ ワークスペース 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 67 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 ワークスペースを閉じる ([ファイル] メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 ワーニング コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 リンカ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370, 383 ワーニングとして処理(ILINK オプション). . . . . . . 383 ワーニングとして処理(XLINK オプション). . . . . . 370 ワーニングとして処理(コンパイラオプション). . . 345 ワーニング / エラー(XLINK オプション). . . . . . . . . 370 記号 __cancelAllInterrupts (C-SPY システムマクロ). . . . . 411 __cancelInterrupt (C-SPY システムマクロ). . . . . . . . 411 __clearBreak (C-SPY システムマクロ). . . . . . . . . . . 411 __closeFile (C-SPY システムマクロ). . . . . . . . . . . . . 412 __delay (C-SPY システムマクロ). . . . . . . . . . . . . . . . 412 __disableInterrupts (C-SPY システムマクロ). . . . . . . 412 IAR Embedded Workbench IDE 470 ユーザガイド UEW-9 __driverType (C-SPY システムマクロ). . . . . . . . . . . 413 __enableInterrupts (C-SPY システムマクロ). . . . . . . 413 __evaluate (C-SPY システムマクロ). . . . . . . . . . . . . 414 __fmessage (C-SPY マクロ文). . . . . . . . . . . . . . . . . . . 406 __isBatchMode (C-SPY システムマクロ). . . . . . . . . . 414 __loadImage (C-SPY システムマクロ). . . . . . . . . . . . 415 __memoryRestore (C-SPY システムマクロ). . . . . . . 416 __memorySave (C-SPY システムマクロ). . . . . . . . . . 416 __message (C-SPY マクロ文). . . . . . . . . . . . . . . . . . . 406 __openFile (C-SPY システムマクロ). . . . . . . . . . . . . 417 __orderInterrupt (C-SPY システムマクロ). . . . . . . . . 418 __popSimulatorInterruptExecutingStack (C-SPY システムマクロ). . . . . . . . . . . . . . . . . . . . . . . 419 __readFile (C-SPY システムマクロ). . . . . . . . . . . . . . 419 __readFileByte (C-SPY システムマクロ). . . . . . . . . . 420 __readMemoryByte (C-SPY システムマクロ). . . . . . 420 __readMemory8 (C-SPY システムマクロ). . . . . . . . . 420 __readMemory16 (C-SPY システムマクロ). . . . . . . . 421 __readMemory32 (C-SPY システムマクロ). . . . . . . . 421 __registerMacroFile (C-SPY システムマクロ). . . . . . 422 __resetFile (C-SPY システムマクロ). . . . . . . . . . . . . 422 __setCodeBreak (C-SPY システムマクロ). . . . . . . . . 423 __setDataBreak (C-SPY システムマクロ). . . . . . . . . 424 __setLogBreak (C-SPY システムマクロ). . . . . . . . . . 425 __setSimBreak (C-SPY システムマクロ). . . . . . . . . . 426 __setTraceStartBreak (C-SPY システムマクロ). . . . . 427 __setTraceStopBreak (C-SPY システムマクロ). . . . . 428 __smessage (C-SPY マクロ文). . . . . . . . . . . . . . . . . . 406 __sourcePosition (C-SPY システムマクロ). . . . . . . . 429 __strFind (C-SPY システムマクロ). . . . . . . . . . . . . . 429 __subString (C-SPY システムマクロ). . . . . . . . . . . . 430 __targetDebuggerVersion (C-SPY システムマクロ). . 430 __toLower (C-SPY システムマクロ). . . . . . . . . . . . . 430 __toString (C-SPY システムマクロ). . . . . . . . . . . . . . 431 __toUpper (C-SPY システムマクロ). . . . . . . . . . . . . . 431 __writeFile (C-SPY システムマクロ). . . . . . . . . . . . . 432 __writeFileByte (C-SPY システムマクロ). . . . . . . . . 432 __writeMemoryByte (C-SPY システムマクロ). . . . . 433 __writeMemory8 (C-SPY システムマクロ). . . . . . . . 433 __writeMemory16 (C-SPY システムマクロ). . . . . . . 433 索引 __writeMemory32 (C-SPY システムマクロ). . . . . . . 434 -B (C-SPY コマンドラインオプション). . . . . . . . . . 396 -p (C-SPY コマンドラインオプション). . . . . . . . . . 399 --backend (C-SPY コマンドラインオプション). . . . 396 --code_coverage (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 --cycles (C-SPY コマンドラインオプション). . . . . . 397 --disable_interrupts (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 --download_only (C-SPY コマンドラインオ プション). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 --flash_loader (C-SPY コマンドラインオプション). 398 --macro (C-SPY コマンドラインオプション). . . . . . 399 --mapu (C-SPY コマンドラインオプション). . . . . . 399 --plugin (C-SPY コマンドラインオプション). . . . . . 400 --silent (C-SPY コマンドラインオプション). . . . . . . 400 --timeout (C-SPY コマンドラインオプション). . . . . 401 [IDE オプション]ダイアログボックス . . . . . . . . . . . 257 [アサートの報告]ダイアログボックス . . . . . . . . . . . 309 [イメージ]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 314 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 315 [インクリメンタル検索]ダイアログボックス ([編集]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 [ウィンドウ]メニュー. . . . . . . . . . . . . . . . . . . . . . . . . 281 [ウォッチ]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 299 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 300 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 [オプション]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 250 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 [キーカスタマイズ]オプション . . . . . . . . . . . . . 255–256 [クイックウォッチ]ウィンドウ . . . . . . . . . . . . . . . . . 305 C-SPY マクロの実行 . . . . . . . . . . . . . . . . . . . . . . . . . 146 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 [クイック検索]テキストボックス . . . . . . . . . . . . . . . 197 [グループの名称変更]ダイアログボックス . . . . . . . 202 [コードカバレッジ]ウィンドウ . . . . . . . . . . . . . . . . . 310 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 312 [コード]ページ (コンパイラオプション). . . . . . . 338 [シミュレータ]メニュー. . . . . . . . . . . . . . . . . . . . . . . 158 [シンボルメモリ]ウィンドウ . . . . . . . . . . . . . . . . . . . 297 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 298 ツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 [シンボル]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 319 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 319 [スタック]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 316 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 [ソースコード管理プロバイダの選択] ダイアログボックス([プロジェクト]メニュー). . 205 [ソースコード管理]コンテキストメニュー . . . . . . . 202 [ソースの曖昧さの解決]ダイアログボックス . . . . . 224 [ソースブラウザ]ウィンドウ . . . . . . . . . . . . . . . . . . . 215 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 217 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 [ダウンロードなしにデバッグ]テキストボックス . 197 [ターゲット]オプション、指定 . . . . . . . . . . . . . . . . . 327 [ターミナル I/O ログファイル]ダイアロ グボックス ([デバッグ]メニュー). . . . . . . . . . . . . 325 [ターミナル I/O]ウィンドウ . . . . . . . . . . . . . . . . . . . 308 使用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 [ツール出力]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . 226 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 227 [ツール]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 [デバッグログ]ウィンドウの コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . . . 228 [デバッグログ]ウィンドウ([表示]メニュー). . . 227 [デバッグ]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . 320 [テンプレート]ダイアログボックス ([編集]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 [トレースを検索]ダイアログボックス . . . . . . . . . . . 171 [トレースを検索]ウィンドウ . . . . . . . . . . . . . . . . . . . 170 [トレース開始]ブレークポイントダイアロ グボックス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 [トレース式]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . 169 [トレース停止]ブレークポイントダイアロ グボックス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 [トレース]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 167 ツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 471 UEW-9 [バッチビルドの編集]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 252 [バッチビルド]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 251 [ビューアの設定]ダイアログボックス ([ツール]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . 280 [ビルド]ウィンドウのコンテキストメニュー . . . . . 225 [ファイルで検索]ウィンドウ ([表示]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 226 [ファイルで検索]ダイアログボックス ([編集]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 [ファイル名の拡張子]ダイアログボックス ([ツール]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . 278 [ファイル名拡張子のオーバライド] ダイアログボックス ([ツール]メニュー). . . . . . . 279 [ファイル名拡張子の編集]ダイアログボックス ([ツール]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . 279 [ファイル]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . 228 [フィル]ダイアログボックス([メモリ] ウィンドウ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 [ブレークポイントの使用]ダイアログボックス ([シミュレータ]メニュー). . . . . . . . . . . . . . . . . . . . . 177 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 [ブレークポイント]ウィンドウ([表示] メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 [ブレークポイント]ダイアログボックス イミディエイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 トレース開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 トレース停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 ログ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 [プロジェクトの構成]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 247 [プロジェクト]ページ ([IDE オプション] ダイアログボックス). . . . . . . . . . . . . . . . . . . . . . . . . . 267 [プロジェクト]メニュー. . . . . . . . . . . . . . . . . . . . . . . 242 [プロファイリング]ウィンドウ . . . . . . . . . . . . . . . . . 312 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 [ヘルプ]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 IAR Embedded Workbench IDE 472 ユーザガイド UEW-9 [マクロ設定]ダイアログボックス ([デバッグ]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . 322 [メッセージ]ウィンドウ、出力内容 . . . . . . . . . . . . . 265 [メモリアクセスの編集]ダイアログボックス . . . . . 162 [メモリアクセス設定]ダイアログボックス ([シミュレータ]メニュー). . . . . . . . . . . . . . . . . . . . . 159 [メモリ消去]ダイアログボックス . . . . . . . . . . . . . . . 245 [メモリ復元]ダイアログボックス . . . . . . . . . . . . . . . 296 [メモリ保存]ダイアログボックス . . . . . . . . . . . . . . . 295 [メモリ]ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . 291 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 293 [ライブウォッチ]ウィンドウ . . . . . . . . . . . . . . . . . . . 304 コンテキストメニュー . . . . . . . . . . . . . . . . . . . 304–305 [レジスタ]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 299 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 [ログファイルの設定]ダイアログボックス ([デバッグ]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . 322 [ログファイル]ダイアログボックス ([デバッグ]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . 324 [ロケール]ウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . . 301 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 302 [ワークスペース]ウィンドウ . . . . . . . . . . . . . . . . . . . 198 コンテキストメニュー . . . . . . . . . . . . . . . . . . . 201, 218 ファイルのドラッグアンドドロップ . . . . . . . . . . . . 67 例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 [割込みの編集]ダイアログボックス ([シミュレータ]メニュー). . . . . . . . . . . . . . . . . . . . . 184 [割込みログ]ウィンドウ([シミュレータ] メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 [割込み設定]ダイアログボックス ([シミュレータ]メニュー). . . . . . . . . . . . . . . . . . . . . 183 [逆アセンブリ]ウィンドウ、定義 . . . . . . . . . . . . . . . 438 [強制割込み]ウィンドウ([シミュレータ] メニュー). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 [検索]ダイアログボックス([編集]メニュー). . . 234 [言語]([IDE オプション]ダイアログボックス). . 256 [呼出しスタック]ウィンドウ . . . . . . . . . . . . . . . . . . . 306 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 307 バックトレース情報 . . . . . . . . . . . . . . . . . . . . . . . . . 114 索引 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 [行へ移動]ダイアログボックス . . . . . . . . . . . . . . . . . 232 [最適化]ページ(コンパイラオプション). . . . . . . . 338 [自動ステップの設定]ダイアログボックス ([デバッグ]メニュー). . . . . . . . . . . . . . . . . . . . . . . . . 322 [自動]ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 304 [新規プロジェクトの作成]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 249 [新規構成]ダイアログボックス ([プロジェクト]メニュー). . . . . . . . . . . . . . . . . . . . . 248 [静的の選択]ダイアログボックス([静的] ウィンドウ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 [静的]ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 303 [置換]ダイアログボックス([編集]メニュー). . . 235 [入力モード]ダイアログボックス . . . . . . . . . . . . . . . 309 [表示]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 [編集]メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 [[逆アセンブリ]ウィンドウのソースコード色] ウィンドウ(IDE オプション). . . . . . . . . . . . . . . . . . . 270 #define オプション(ILINK オプション). . . . . . . . . . 381 #define オプション(XLINK オプション). . . . . . . . . . 368 #define 文、コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . 343 #define オプション(ILINK オプション). . . . . . . . . . 381 #define オプション(XLINK オプション). . . . . . . . . . 368 #define 文、コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . 343 #line ディレクティブ、アセンブラで生成 . . . . . . . . . 351 #line ディレクティブ、コンパイラで生成 . . . . . . . . . 344 #pragma ディレクティブ、定義 . . . . . . . . . . . . . . . . . . 445 % スタック使用しきい値 ([スタック]オプション). . . . . . . . . . . . . . . . . . . . . . . 271 $CONFIG_NAME$ (引数変数). . . . . . . . . . . . . . . . . . 246 $CUR_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 246 $CUR_LINE$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 246 $DATE$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . . . . 246 $EW_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 246 $EXE_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 246 $FILE_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 $FILE_FNAME$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 $FILE_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 247 $LIST_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 $OBJ_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . . 247 $PROJ_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . . . . 247 $PROJ_FNAME$ (引数変数). . . . . . . . . . . . . . . . . . . 247 $PROJ_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . . . . 247 $TARGET_BNAME$ (引数変数). . . . . . . . . . . . . . . . 247 $TARGET_BPATH$ (引数変数). . . . . . . . . . . . . . . . . 247 $TARGET_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 $TARGET_FNAME$ (引数変数). . . . . . . . . . . . . . . . 247 $TARGET_PATH$ (引数変数). . . . . . . . . . . . . . . . . . . 247 $TOOLKIT_DIR$ (引数変数). . . . . . . . . . . . . . . . . . . 247 $USER_NAME$ (引数変数). . . . . . . . . . . . . . . . . . . . 247 473 UEW-9 IAR Embedded Workbench IDE 474 ユーザガイド UEW-9 IAR Embedded Workbench® IDE ユーザガイド www.iar.com/jp UEW-9 <-- ê‹ÇËñ⁄ îwï\éÜ IAR Embedded Workbench® IDE ユーザガイド UEW-9-J UEW-9 îwï\éÜ <-- ê‹ÇËñ⁄
© Copyright 2024 Paperzz