Comments
Description
Transcript
78K IAR Embedded Workbench IDEユーザガイド
IAR Embedded Workbench® IDE ユーザガイド 版権事項 © Copyright 1996–2006 IAR Systems. All rights reserved. 本書のいかなる部分も、IAR システムズの書面による事前の同意なく複製する ことを禁止します。本書で解説するソフトウェアは使用許諾契約に基づき提供 され、その条項に従う場合に限り使用または複製できるものとします。 免責事項 本書の内容は予告なく変更されることがあります。また、IAR システムズは、 その内容についていかなる責任を負うものではありません。本書の内容につい ては正確を期していますが、IAR システムズは誤りや記載漏れについて一切の 責任を負わないものとします。 IAR システムズおよびその従業員、契約業者、本書の執筆者は、いかなる場合 でも、特殊、直接、間接、または結果的な損害、損失、費用、負担、請求、要 求、およびその性質を問わず利益損失、費用、支出の補填要求について、一切 の責任を負わないものとします。 商標 IAR Systems、From Idea to Target、IAR Embedded Workbench、visualSTATE、IAR MakeApp、C-SPY は、IAR Systems AB が所有権を有する商標です。 Microsoft および Windows は、Microsoft Corporation の登録商標です。Adobe お よび Acrobat Reader は、Adobe Systems Incorporated の登録商標です。CodeWright は、Starbase Corporation の登録商標です。 その他のすべての製品名は、その所有者の商標または登録商標です。 改版情報 第 6 版 : 2006 年 6 月 部品番号 : UEW-6-J 内部参照 : 4.7.0. 簡易目次 表 ............................................................................................................................. xix 図 ........................................................................................................................... xxiii はじめに ........................................................................................................... xxix パート 1: 製品概要 製品概要 .................................................................................. 1 ................................................................................................................ 3 インストールファイル .............................................................................. 13 パート 2: チュートリアル ............................................................. 21 アプリケーションプロジェクトの作成 ......................................... 23 IAR C-SPY® デバッガを使用したデバッグ C 言語とアセンブラモジュールの結合 C++ の使用 ................................. 33 ......................................... 43 ........................................................................................................ 47 割込みシミュレーション ......................................................................... 53 ライブラリモジュールの結合 .............................................................. 63 パート 3: プロジェクト管理とビルド 開発環境 .............................................................................................................. 69 プロジェクト管理 ビルド 編集 .............................. 67 ......................................................................................... 75 ................................................................................................................... 85 ......................................................................................................................... 91 パート 4: デバッグ .............................................................................. 101 IAR C-SPY® デバッガ ............................................................................... 103 iii アプリケーションの実行 変数と式の扱い ....................................................................... 111 ............................................................................................ 117 ブレークポイントの使用 ....................................................................... 125 メモリとレジスタのモニタ ................................................................. 131 C-SPY® マクロシステムの使用 アプリケーションの分析 ......................................................... 137 ....................................................................... 145 パート 5: IAR C-SPY シミュレータ シミュレータ固有のデバッグ 割込みシミュレーション ................................ 151 ............................................................ 153 ....................................................................... 171 パート 6: リファレンス情報 ..................................................... 183 IAR Embedded Workbench® IDE リファレンス C-SPY® デバッガリファレンス 一般オプション コンパイラオプション ............................................................................ 303 アセンブラオプション ............................................................................ 315 ................................................................. 321 ビルドアクションオプション リンカオプション ............................................................ 323 ....................................................................................... 325 ライブラリビルダオプション デバッガオプション ............................................................ 339 ................................................................................. 341 C-SPY® マクロリファレンス IAR Embedded Workbench® IDE ユーザガイド ......................................................... 261 ............................................................................................ 297 カスタムビルドオプション iv ....................... 185 .............................................................. 345 目次 表 ............................................................................................................................. xix 図 ........................................................................................................................... xxiii はじめに ........................................................................................................... xxix 本ガイドの対象者 .................................................................................. xxix 本ガイドの使用方法 ............................................................................. xxix 本ガイドの内容 ....................................................................................... xxx その他のドキュメント .......................................................................xxxiii 表記規則 ..................................................................................................xxxiii パート 1: 製品概要 製品概要 .................................................................................. 1 ................................................................................................................ 3 IAR Embedded Workbench IDE ........................................................ 3 拡張可能なモジュール化構造の環境 .............................................. 4 特長 ...................................................................................................... 4 ドキュメント ...................................................................................... 5 IAR C-SPY デバッガ ................................................................................. 5 C-SPY デバッガの特長 ..................................................................... 6 RTOS 認識 .......................................................................................... 8 IAR C-SPY シミュレータ ................................................................. 8 ドキュメント ...................................................................................... 9 IAR C/C++ コンパイラ ............................................................................ 9 特長 ...................................................................................................... 9 ランタイム環境 ................................................................................ 10 ドキュメント .................................................................................... 10 IAR アセンブラ ......................................................................................... 10 特長 .................................................................................................... 10 ドキュメント .................................................................................... 10 IAR XLINK リンカ .................................................................................. 11 特長 .................................................................................................... 11 v ドキュメント .................................................................................... 11 IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン ....... 12 特長 .................................................................................................... 12 ドキュメント .................................................................................... 12 インストールファイル .............................................................................. 13 ディレクトリ構成 ..................................................................................... 13 ルートディレクトリ ........................................................................ 13 common ディレクトリ ..................................................................... 13 CPUNAME ディレクトリ ................................................................ 14 ファイルタイプ ......................................................................................... 15 ドキュメント .............................................................................................. 17 ユーザガイド / リファレンスガイド ............................................ 18 オンラインヘルプ ............................................................................ 18 IAR の Web サイト .......................................................................... 19 パート 2: チュートリアル ............................................................. 21 アプリケーションプロジェクトの作成 ......................................... 23 新しいプロジェクトの設定 ................................................................... 23 [ ワークスペース ] ウィンドウの作成 .......................................... 23 新しいプロジェクトの作成 ............................................................ 24 プロジェクトへのファイルの追加 ................................................ 26 プロジェクトオプションの設定 .................................................... 27 アプリケーションのコンパイルとリンク ........................................ 28 ソースファイルのコンパイル ........................................................ 28 リストファイルの表示 .................................................................... 29 アプリケーションのリンク ............................................................ 31 マップファイルの表示 .................................................................... 32 IAR C-SPY® デバッガを使用したデバッグ ................................. 33 アプリケーションのデバッグ .............................................................. 33 デバッガの起動 ................................................................................ 33 ウィンドウの編成 ............................................................................ 33 ソース文の検証 ................................................................................ 34 IAR Embedded Workbench® IDE vi ユーザガイド 目次 変数の検証 ....................................................................................... 36 ブレークポイントの設定とモニタ ................................................ 38 レジスタのモニタ ............................................................................ 40 メモリのモニタ ................................................................................ 40 ターミナル I/O の表示 .................................................................... 41 プログラムの最後まで実行 ............................................................ 41 C 言語とアセンブラモジュールの結合 ......................................... 43 呼出し規約のチェック ............................................................................ 43 プロジェクトへのアセンブラモジュールの追加 ........................... 44 プロジェクトの設定 ........................................................................ 45 C++ の使用 ........................................................................................................ 47 C++ アプリケーションの作成 .............................................................. 47 C++ アプリケーションのコンパイルとリンク ........................... 47 ブレークポイントの設定と実行 .................................................... 48 フィボナッチ数列の出力 ................................................................ 50 割込みシミュレーション ......................................................................... 53 割込みハンドラの追加 ............................................................................ 53 アプリケーションの概要 ................................................................ 53 割込みハンドラの記述 .................................................................... 54 プロジェクトの設定 ........................................................................ 54 シミュレーション環境の設定 .............................................................. 54 C-SPY セットアップマクロファイルの定義 ............................... 55 C-SPY オプションの指定 ............................................................... 56 プロジェクトのビルド .................................................................... 57 シミュレータの起動 ........................................................................ 57 割込みシミュレーションの指定 ................................................... 58 イミディエイトブレークポイントの設定 .................................... 59 割込みシミュレーション ....................................................................... 60 アプリケーションの実行 ................................................................ 60 vii マクロによる割込みとブレークポイントの設定 ........................... 61 ライブラリモジュールの結合 .............................................................. 63 ライブラリの使用 ..................................................................................... 63 新しいプロジェクトの作成 ............................................................ 64 ライブラリプロジェクトの作成 .................................................... 64 アプリケーションプロジェクトでのライブラリの使用 ............ 65 パート 3: プロジェクト管理とビルド 開発環境 .............................. 67 .............................................................................................................. 69 IAR Embedded Workbench IDE ...................................................... 69 IAR Embedded Workbench IDE の実行 ......................................... 70 終了 .................................................................................................... 71 環境のカスタマイズ ................................................................................ 71 画面上のウィンドウの編成 ............................................................ 71 IDE のカスタマイズ ........................................................................ 72 外部ツールとの連携 ........................................................................ 73 プロジェクト管理 ......................................................................................... 75 プロジェクトモデル ................................................................................ 75 プロジェクトの編成方法 ................................................................ 75 ワークスペースの作成と管理 ........................................................ 78 プロジェクトファイルのナビゲート ................................................. 79 ワークスペースの表示 .................................................................... 80 ブラウズ情報の表示 ........................................................................ 81 ソースコード管理 ..................................................................................... 82 ソースコード管理システムの操作 ................................................ 82 ビルド ................................................................................................................... 85 アプリケーションのビルド ................................................................... 85 オプションの設定 ............................................................................ 85 プロジェクトのビルド .................................................................... 87 バッチによる複数構成のビルド .................................................... 87 ビルド中に検出されたエラーの修正 ............................................ 88 IAR Embedded Workbench® IDE viii ユーザガイド 目次 コマンドラインからのビルド ........................................................ 88 ツールチェーンの拡張 ............................................................................ 89 ツールチェーンに追加可能なツール ............................................ 89 外部ツールの追加 ............................................................................ 90 編集 ......................................................................................................................... 91 IAR Embedded Workbench エディタの使用 .............................. 91 ファイルの編集 ................................................................................ 91 コードテンプレートの使用と追加 ................................................ 95 ファイル間のナビゲート ................................................................ 97 検索 .................................................................................................... 97 エディタ環境のカスタマイズ .............................................................. 97 外部エディタの使用 ........................................................................ 98 パート 4: デバッグ .............................................................................. 101 IAR C-SPY® デバッガ ............................................................................... 103 デバッガの概念 ....................................................................................... 103 IAR C-SPY デバッガとターゲットシステム ............................. 103 デバッガ .......................................................................................... 104 ターゲットシステム ...................................................................... 104 ユーザアプリケーション .............................................................. 104 IAR C-SPY デバッガシステム ..................................................... 105 ROM モニタプログラム ................................................................ 105 サードパーティ製デバッガ .......................................................... 105 C-SPY 環境 ............................................................................................... 106 統合環境 .......................................................................................... 106 IAR C-SPY デバッガの設定 ............................................................... 106 デバッグドライバの選択 .............................................................. 107 リセットからの実行 ..................................................................... 107 セットアップマクロファイルの使用 .......................................... 107 デバイス記述ファイルの選択 ...................................................... 108 プラグインモジュールのロード .................................................. 108 ix IAR C-SPY デバッガの起動 ............................................................... 109 デバッガの出力をファイルにリダイレクト .............................. 109 アプリケーションの実行 ....................................................................... 111 ソースモードと逆アセンブリモードのデバッグ ......................... 111 実行 ............................................................................................................. 112 ステップ .......................................................................................... 112 実行 .................................................................................................. 114 カーソル位置まで実行 .................................................................. 114 強調表示 .......................................................................................... 114 ブレークポイントを使用した停止 .............................................. 115 [ ブレーク ] ボタンによる停止 .................................................... 115 プログラムの終了位置で停止 ...................................................... 115 呼出しスタック情報 .............................................................................. 115 ターミナル I/O ........................................................................................ 116 変数と式の扱い ............................................................................................ 117 C-SPY 式 ................................................................................................... 117 C 言語のシンボル .......................................................................... 117 アセンブラシンボル ...................................................................... 118 マクロ関数 ..................................................................................... 118 マクロ変数 ...................................................................................... 118 変数情報の制限 ....................................................................................... 119 最適化の影響 .................................................................................. 119 変数と式の表示 ....................................................................................... 120 ウィンドウの操作 .......................................................................... 120 トレースシステムの使用 .............................................................. 121 アセンブラ変数の表示 .................................................................. 122 ブレークポイントの使用 ....................................................................... 125 ブレークポイントシステム ................................................................. 125 ブレークポイントの定義 ..................................................................... 125 シンプルなコードブレークポイントの切り替え ...................... 126 [ メモリ ] ウィンドウによるブレークポイントの設定 ............ 127 ダイアログボックスによるブレークポイントの定義 .............. 127 IAR Embedded Workbench® IDE x ユーザガイド 目次 システムマクロによるブレークポイントの定義 ...................... 128 すべてのブレークポイントの表示 .................................................... 129 [ ブレークポイントの使用 ] ダイアログボックスの使用 ........ 129 メモリとレジスタのモニタ ................................................................. 131 メモリアドレッシング .......................................................................... 131 メモリとレジスタのモニタ用ウィンドウ ...................................... 131 [ メモリ ] ウィンドウの使用 ........................................................ 132 [ スタック ] ウィンドウの使用 .................................................... 133 レジスタの操作 .............................................................................. 134 C-SPY® マクロシステムの使用 ......................................................... 137 マクロシステム ....................................................................................... 137 マクロ言語 ...................................................................................... 138 マクロファイル .............................................................................. 138 セットアップマクロ関数 .............................................................. 139 C-SPY マクロの使用 ............................................................................. 139 [ マクロ設定 ] ダイアログボックスの使用 ................................ 140 セットアップマクロとセットアップファイルによる登録と 実行 .................................................................................................. 141 [ クイックウォッチ ] によるマクロの実行 ............................... 142 ブレークポイントにマクロを接続して実行 .............................. 143 アプリケーションの分析 ....................................................................... 145 関数レベルのプロファイリング ........................................................ 145 プロファイラの使用 ...................................................................... 145 コードカバレッジ ................................................................................... 147 コードカバレッジの使用 .............................................................. 147 パート 5: IAR C-SPY シミュレータ シミュレータ固有のデバッグ ................................ 151 ............................................................ 153 IAR C-SPY シミュレータの概要 ...................................................... 153 特長 .................................................................................................. 153 シミュレータドライバの選択 ...................................................... 153 xi シミュレータ固有のメニュー ............................................................ 154 [ シミュレータ ] メニュー ............................................................ 154 シミュレータのトレースシステムの使用 ...................................... 155 [ トレース ] ウィンドウ ................................................................ 155 [ トレース ] ツールバー ................................................................ 156 [ 関数トレース ] ウィンドウ ........................................................ 157 [ トレース式 ] ウィンドウ ............................................................ 158 [ トレースを検索 ] ウィンドウ .................................................... 159 [ トレースを検索 ] ダイアログボックス .................................... 160 メモリアクセスチェック ..................................................................... 161 [ メモリアクセス設定 ] ダイアログボックス ............................ 162 [ メモリアクセスの編集 ] ダイアログボックス ........................ 164 シミュレータでのブレークポイントの使用 .................................. 165 データブレークポイント .............................................................. 166 イミディエイトブレークポイント .............................................. 168 [ プレークポイントの使用 ] ダイアログボックス .................... 170 割込みシミュレーション ....................................................................... 171 C-SPY 割込みシミュレーションシステム ..................................... 171 割込み特性 ...................................................................................... 172 割込みシミュレーションの状態 .................................................. 173 割込みシミュレーションシステムの使用 ...................................... 173 ターゲットに合せた割込みシミュレーションシステム の調整 .............................................................................................. 174 [ 割込み設定 ] ダイアログボックス ............................................ 174 [ 割込みの編集 ] ダイアログボックス ........................................ 176 [ 強制割込み ] ウィンドウ ............................................................ 177 割込み用の C-SPY システムマクロ ............................................ 178 [ 割込みログ ] ウィンドウ ............................................................ 179 IAR Embedded Workbench® IDE xii ユーザガイド 目次 シンプルな割込みシミュレーション ............................................... 180 パート 6: リファレンス情報 ..................................................... 183 IAR Embedded Workbench® IDE リファレンス ....................... 185 ウィンドウ ................................................................................................ 185 [IAR Embedded Workbench IDE] ウィンドウ .............................. 186 [ ワークスペース ] ウィンドウ .................................................... 188 エディタウィンドウ ...................................................................... 196 [ ソースブラウザ ] ウィンドウ .................................................... 201 [ ブレークポイント ] ウィンドウ ................................................ 203 [ ビルド ] ウィンドウ .................................................................... 209 [ ファイルから検索 ] ウィンドウ ................................................ 210 [ ツール出力 ] ウィンドウ ............................................................ 211 [ デバッグログ ] ウィンドウ ........................................................ 212 メニュー ..................................................................................................... 212 [ ファイル ] メニュー .................................................................... 213 [ 編集 ] メニュー ............................................................................ 215 [ 表示 ] メニュー ............................................................................ 223 [ プロジェクト ] メニュー ............................................................ 224 [ ツール ] メニュー ........................................................................ 233 [ 共通フォント ] オプション ........................................................ 234 [ キーカスタマイズ ] オプション ................................................ 235 [ エディタ ] オプション ................................................................ 236 [ 自動インデントの設定 ] ダイアログボックス ........................ 238 [ 外部エディタ ] オプション ........................................................ 240 [ セットアップファイル ] のオプション .................................... 241 [ 色とフォント ] オプション ........................................................ 242 [ メッセージ ] オプション ............................................................ 243 [ プロジェクト ] オプション ........................................................ 244 [ ソースコード管理 ] オプション ................................................ 246 [ デバッガ ] オプション ................................................................ 247 [ スタック ] オプション ................................................................ 248 [ レジスタフィルタ ] オプション ................................................ 250 xiii [ ターミナル I/O] オプション ....................................................... 251 [ 構成ツール ] ダイアログボックス ............................................ 252 [ ファイル名拡張子 ] ダイアログボックス ................................ 254 [ ファイル名拡張子のオーバライド ] ダイアログボックス .... 255 [ ファイル名拡張子の編集 ] ダイアログボックス .................... 255 [ ビューアを構成 ] ダイアログボックス ................................... 256 [ ビューア拡張子の編集 ] ダイアログボックス ....................... 256 [ ウィンドウ ] メニュー ................................................................ 257 [ ヘルプ ] メニュー ........................................................................ 258 [Embedded Workbench の起動 ] ダイアログボックス ............... 259 C-SPY® デバッガリファレンス ......................................................... 261 C-SPY のウィンドウ ............................................................................. 261 C-SPY のウィンドウでの編集 ..................................................... 261 IAR C-SPY デバッガメインウィンドウ ..................................... 262 [ 逆アセンブリ ] ウィンドウ ........................................................ 263 [ メモリ ] ウィンドウ .................................................................... 266 [ フィル ] ダイアログボックス .................................................... 269 [ メモリ保存 ] ダイアログボックス ............................................ 270 [ メモリ復元 ] ダイアログボックス ............................................ 271 [ シンボルメモリ ] ウィンドウ .................................................... 272 [ レジスタ ] ウィンドウ ................................................................ 274 [ ウォッチ ] ウィンドウ ................................................................ 275 [ ローカル ] ウィンドウ ................................................................ 276 [ 自動 ] ウィンドウ ........................................................................ 277 [ ライブウォッチ ] ウィンドウ .................................................... 278 [ クイックウォッチ ] ウィンドウ ................................................ 278 [ 静的 ] ウィンドウ ........................................................................ 279 [ 静的変数の選択 ] ダイアログボックス .................................... 281 [ 呼出しスタック ] ウィンドウ .................................................... 282 [ ターミナル I/O ] ウィンドウ ...................................................... 283 [ コードカバレッジ ] ウィンドウ ................................................ 284 [ プロファイリング ] ウィンドウ ................................................ 286 [ スタック ] ウィンドウ ................................................................ 287 IAR Embedded Workbench® IDE xiv ユーザガイド 目次 C-SPY のメニュー ................................................................................. 290 [ デバッグ ] メニュー .................................................................... 291 一般オプション ............................................................................................ 297 ターゲット ................................................................................................ 297 [ 出力 ] ....................................................................................................... 297 出力ファイル名 .............................................................................. 298 出力ディレクトリ .......................................................................... 298 ライブラリ設定 ....................................................................................... 299 ライブラリ ...................................................................................... 299 ライブラリファイル ...................................................................... 299 設定ファイル .................................................................................. 299 ライブラリオプション .......................................................................... 300 printf フォーマッタ ....................................................................... 300 Scanf フォーマッタ ........................................................................ 300 ヒープ / スタック .................................................................................... 301 コンパイラオプション ............................................................................ 303 言語 ............................................................................................................. 303 言語 .................................................................................................. 303 プロトタイプの強制 ...................................................................... 304 言語の適合 ...................................................................................... 304 'CHAR' の型 ................................................................................... 305 マルチバイト文字サポートを有効にする .................................. 305 IAR 移行プリプロセッサ拡張を有効にする ............................... 305 コード ......................................................................................................... 306 最適化 ......................................................................................................... 306 最適化 .............................................................................................. 306 [ 出力 ] ....................................................................................................... 307 モジュールタイプ .......................................................................... 308 オブジェクトモジュール名 .......................................................... 308 デバッグ情報の生成 ..................................................................... 308 リスト ......................................................................................................... 309 リストファイルの出力 .................................................................. 309 アセンブラファイルの出力 .......................................................... 309 xv プリプロセッサ ....................................................................................... 310 標準のインクルードディレクトリを無視 .................................. 310 追加インクルードディレクトリ .................................................. 310 プリインクルードファイル .......................................................... 310 定義済みシンボル .......................................................................... 311 ファイルへのプリプロセッサ出力 .............................................. 311 診断 ............................................................................................................. 311 リマークを有効化 .......................................................................... 312 診断を無効化 .................................................................................. 312 リマークとして処理 ...................................................................... 312 ワーニングとして処理 .................................................................. 313 エラーとして処理 ......................................................................... 313 すべてのワーニングをエラーとして処理 .................................. 313 追加オプション ....................................................................................... 314 コマンドラインオプションの使用 .............................................. 314 アセンブラオプション ............................................................................ 315 言語 ............................................................................................................. 315 ユーザシンボルで大文字と小文字を区別する .......................... 315 マルチバイト文字サポートを有効にする ................................ 315 第 1 カラムでニーモニックの許可 .............................................. 315 第 1 カラムでディレクティブの許可 .......................................... 315 マクロの引用符 .............................................................................. 316 [ 出力 ] ....................................................................................................... 316 デバッグ情報の生成 ...................................................................... 316 リスト ......................................................................................................... 317 プリプロセッサ ....................................................................................... 317 標準のインクルードディレクトリを無視 .................................. 317 追加インクルードディレクトリ ................................................. 317 定義済みシンボル .......................................................................... 318 ファイルへのプリプロセッサ出力 .............................................. 318 診断 ............................................................................................................. 318 追加オプション ....................................................................................... 319 コマンドラインオプションの使用 .............................................. 319 IAR Embedded Workbench® IDE xvi ユーザガイド 目次 カスタムビルドオプション ................................................................. 321 カスタムツール設定 .............................................................................. 321 ビルドアクションオプション ............................................................ 323 [ ビルドアクション設定 ] .................................................................... 323 プリビルドコマンドライン .......................................................... 323 ポストビルドコマンドライン ...................................................... 324 リンカオプション ....................................................................................... 325 [ 出力 ] ....................................................................................................... 325 出力ファイル名 ............................................................................. 325 フォーマット .................................................................................. 326 追加出力 ..................................................................................................... 328 #define ....................................................................................................... 329 定義済みシンボル ......................................................................... 329 診断 ............................................................................................................. 330 常に出力を生成 .............................................................................. 330 セグメントオーバラップワーニング .......................................... 330 グローバル型チェックなし .......................................................... 330 範囲チェック .................................................................................. 331 ワーニング / エラー ....................................................................... 331 リスト ......................................................................................................... 332 リンカリストの生成 ...................................................................... 332 設定 ............................................................................................................. 334 リンカコマンドファイル ............................................................. 334 Command file configuration tool ..................................................... 334 デフォルトプログラムエントリのオーバライド ...................... 334 パス検索 .......................................................................................... 335 未処理バイナリイメージ .............................................................. 335 処理 ............................................................................................................. 336 未使用コードメモリをフィルする .............................................. 336 チェックサムの計算 ...................................................................... 337 追加オプション ....................................................................................... 338 コマンドラインオプションの使用 .............................................. 338 xvii ライブラリビルダオプション ............................................................ 339 [ 出力 ] ....................................................................................................... 339 デバッガオプション ................................................................................. 341 設定 ............................................................................................................. 341 ドライバ .......................................................................................... 342 [Run to] ........................................................................................... 342 マクロ設定 ..................................................................................... 342 デバイス記述ファイル ................................................................. 342 追加オプション ....................................................................................... 343 コマンドラインオプションの使用 .............................................. 343 プラグイン ................................................................................................ 344 C-SPY® マクロリファレンス .............................................................. 345 マクロ言語 ................................................................................................ 345 マクロ関数 ...................................................................................... 345 定義済みシステムマクロ関数 ...................................................... 345 マクロ変数 ...................................................................................... 346 マクロ文 .......................................................................................... 347 フォーマットした出力 .................................................................. 348 セットアップマクロ関数のまとめ .................................................... 350 C-SPY システムマクロのまとめ ....................................................... 351 C-SPY システムマクロの説明 ........................................................... 352 IAR Embedded Workbench® IDE xviii ユーザガイド 表 1: 本ガイドで使用されている表記規則 .......................................................... xxxiii 2: ファイルタイプ ................................................................................................... 15 3: project2 のコンパイラオプション ..................................................................... 44 4: [ 割込み ] ダイアログボックス ......................................................................... 58 5: [ ブレークポイント ] ダイアログボックス ..................................................... 59 6: ライブラリプロジェクトの XLINK オプション ............................................ 64 7: コマンドシェル ................................................................................................... 74 8: iarbuild.exe コマンドラインオプション ........................................................... 88 9: C-SPY アセンブラシンボル式 ........................................................................ 118 10: ハードウェアレジスタとアセンブララベルの名前が衝突する場合 の処理 ............................................................................................................... 118 11: プロファイリングを有効にするためのプロジェクトオプション ........... 145 12: コードカバレッジを有効にするためのプロジェクトオプション ........... 148 13: [ シミュレータ ] メニューコマンドの説明 ................................................. 154 14: [ トレース ] ウィンドウの列 ......................................................................... 155 15: [ トレース ] ツールバーのコマンド ............................................................. 156 16: [ トレース式 ] ウィンドウのツールバーのボタン ..................................... 158 17: [ メモリアクセス設定 ] ダイアログボックスの機能ボタン ..................... 163 18: メモリエンティティへのアクセスコストの例 ........................................... 165 19: メモリアクセスタイプ ................................................................................... 167 20: ブレークポイントの条件 ............................................................................... 167 21: メモリアクセスタイプ ................................................................................... 169 22: 強制的に生成された割込みの属性 ............................................................... 177 23: [ 割込みログ ] ウィンドウの説明 ................................................................. 179 24: タイマ割込み設定 ........................................................................................... 181 25: IAR Embedded Workbench IDE メニューバー ............................................. 186 26: [ ワークスペース ] ウィンドウのコンテキストメニューコマンド ......... 189 27: ソースコード管理コマンドの説明 ............................................................... 191 28: ソースコード管理状態の説明 ....................................................................... 192 29: エディタウィンドウのコンテキストメニューのコマンドの詳細 ........... 197 30: エディタで挿入ポイントを移動するキーボードコマンド ....................... 199 xix 31: エディタでのスクロール用キーボードコマンド ....................................... 200 32: エディタでのテキスト選択用キーボードコマンド ................................... 200 33: [ ソースブラウザ ] ウィンドウの情報 ......................................................... 201 34: [ ソースブラウザ ] ウィンドウのコンテキストメニューのコマンド ..... 202 35: [ ブレークポイント ] ウィンドウのコンテキストメニューのコマンド ..... 204 36: ブレークポイントの条件 ............................................................................... 206 37: ログブレークポイントの条件 ....................................................................... 208 38: 位置の種類 ....................................................................................................... 208 39: [ ファイル ] メニューのコマンド ................................................................. 213 40: [ 編集 ] メニューのコマンド ......................................................................... 215 41: [ 検索 ] ダイアログボックスのオプション ................................................. 218 42: [ 置換 ] ダイアログボックスのオプション ................................................. 219 43: [ インクリメンタル検索 ] 機能ボタン ......................................................... 222 44: [ 表示 ] メニューのコマンド ......................................................................... 223 45: [ プロジェクト ] メニューのコマンド ......................................................... 224 46: 引数変数 ........................................................................................................... 226 47: [project の構成 ] ダイアログボックスのオプション .................................. 227 48: [ 新規構成 ] ダイアログボックスのオプション ......................................... 228 49: [ 新規プロジェクトの作成 ] ダイアログボックスの説明 ......................... 229 50: プロジェクトオプションのカテゴリ ........................................................... 230 51: [ バッチビルド ] ダイアログボックスの詳細 ............................................. 231 52: [ バッチビルドの編集 ] ダイアログボックスの詳細 ................................. 232 53: [ ツール ] メニューのコマンド ..................................................................... 233 54: [Project IDE] オプション ................................................................................ 245 55: [ レジスタフィルタ ] オプション ................................................................. 250 56: [ 構成ツール ] ダイアログボックスのオプション ..................................... 253 57: コマンドシェル ............................................................................................... 254 58: [ ウィンドウ ] メニューのコマンド ............................................................. 257 59: [ ヘルプ ] メニューのコマンド ..................................................................... 258 60: C-SPY ウィンドウでの編集 .......................................................................... 261 61: [ 逆アセンブリ ] ウィンドウツールバー ..................................................... 264 62: [ 逆アセンブリ ] ウィンドウのコンテキストメニューのコマンド ......... 265 63: [ メモリ ] ウィンドウでの操作 ..................................................................... 267 64: [ メモリ ] ウィンドウのコンテキストメニューのコマンド ..................... 268 IAR Embedded Workbench® IDE xx ユーザガイド 表 65: [ フィル ] ダイアログボックスのオプション ............................................. 269 66: メモリ操作 ....................................................................................................... 270 67: [ シンボルメモリ ] ウィンドウツールバー ................................................. 272 68: [ シンボルメモリ ] ウィンドウの列 ............................................................. 272 69: [ シンボルメモリ ] ウィンドウのコンテキストメニューのコマンド ..... 273 70: [ ウォッチ ] ウィンドウのコンテキストメニューのコマンド ................. 276 71: 式の種類による表示フォーマット設定の影響 ........................................... 276 72: [ シンボルメモリ ] ウィンドウの列 ............................................................. 280 73: [ 静的 ] ウィンドウのコンテキストメニューのコマンド ......................... 280 74: [ プロファイリング ] ウィンドウの列 ......................................................... 287 75: [ スタック ] ウィンドウの列 ......................................................................... 289 76: [ デバッグ ] メニューのコマンド ................................................................. 291 77: ログファイルのオプション ........................................................................... 294 78: XLINK の範囲チェックオプション ............................................................. 331 79: XLINK のリストファイルオプション ......................................................... 332 80: XLINK のリストファイルフォーマットオプション ................................. 333 81: XLINK のチェックサムアルゴリズム ......................................................... 337 82: C-SPY マクロ変数の例 .................................................................................. 346 83: C-SPY セットアップマクロ .......................................................................... 350 84: システムマクロのまとめ ............................................................................... 351 85: __cancelInterrupt のリターン値 ..................................................................... 353 86: __disableInterrupts のリターン値 ................................................................... 354 87: __driverType のリターン値 ............................................................................ 354 88: __enableInterrupts のリターン値 ................................................................... 355 89: __evaluate リターン値 .................................................................................... 355 90: __openFile のリターン値 ............................................................................... 356 91: __readFile リターン値 .................................................................................... 358 92: __setCodeBreak のリターン値 ....................................................................... 361 93: __setDataBreak のリターン値 ........................................................................ 362 94: __setSimBreak のリターン値 ......................................................................... 363 95: __sourcePosition リターン値 .......................................................................... 364 xxi IAR Embedded Workbench® IDE xxii ユーザガイド 図 1: [ 新規プロジェクトの作成 ] ダイアログボックス ......................................... 24 2: [ ワークスペース ] ウィンドウ ......................................................................... 25 3: [New Workspace] ダイアログボックス ............................................................. 25 4: project1 へのファイルの追加 ............................................................................. 26 5: コンパイラオプションの設定 ........................................................................... 27 6: コンパイルメッセージ ....................................................................................... 28 7: コンパイル後の [ ワークスペース ] ウィンドウ ............................................ 29 8: [ 更新ファイルをスキャン ] オプションの設定 ............................................. 30 9: C-SPY デバッガメインウィンドウ .................................................................. 34 10: C-SPY のステップイン .................................................................................... 35 11: C-SPY で [ ステップイン ] を使用 .................................................................. 36 12: [ 自動 ] ウィンドウでの変数の検証 ............................................................... 37 13: [ ウォッチ ] ウィンドウでの変数のモニタ ................................................... 38 14: ブレークポイントの設定 ................................................................................. 39 15: [ レジスタ ] ウィンドウ ................................................................................... 40 16: I/O 操作からの出力 .......................................................................................... 41 17: C-SPY でプログラムの最後まで実行 ............................................................ 42 18: CPPtutor.cpp にブレークポイントを設定 ...................................................... 49 19: 関数呼出しの検証 ............................................................................................. 50 20: フィボナッチ数列の出力 ................................................................................. 51 21: セットアップマクロファイルの指定 ............................................................. 57 22: 割込み設定の検証 ............................................................................................. 58 23: [ ターミナル I/O] ウィンドウへのフィボナッチ数列の出力 ...................... 60 24: [IAR Embedded Workbench IDE] ウィンドウ ................................................. 70 25: [ 構成ツール ] ダイアログボックス ............................................................... 73 26: カスタマイズした [ ツール ] メニュー .......................................................... 74 27: ワークスペースとプロジェクトの例 ............................................................. 76 28: [ ワークスペース ] ウィンドウでプロジェクトを表示 ............................... 80 29: [ ワークスペース ] ウィンドウの概要 ........................................................... 81 30: 一般オプション ................................................................................................. 86 31: エディタウィンドウ ......................................................................................... 92 xxiii 32: エディタウィンドウの括弧の対応 ................................................................. 95 33: エディタウィンドウのステータスバー ......................................................... 95 34: エディタウィンドウのコードテンプレートメニュー ................................. 96 35: 外部コマンドラインエディタの指定 ............................................................. 98 36: 外部エディタの DDE 設定 ............................................................................... 99 37: C-SPY で強調表示されるソース位置 .......................................................... 114 38: [ ウォッチ ] ウィンドウでのアセンブラ変数の表示 ................................. 122 39: ブレークポイントアイコン ........................................................................... 126 40: [ プレークポイントの使用 ] ダイアログボックス ..................................... 129 41: [ メモリ ] ウィンドウ ..................................................................................... 132 42: [ スタック ] ウィンドウ ................................................................................. 133 43: [ レジスタ ] ウィンドウ ................................................................................. 134 44: [ レジスタフィルタ ] ページ ......................................................................... 135 45: [ マクロ設定 ] ダイアログボックス ............................................................. 141 46: [ クイックウォッチ ] ウィンドウ ................................................................. 143 47: [ プロファイリング ] ウィンドウ ................................................................. 146 48: [ プロファイリング ] ウィンドウのグラフ ................................................. 146 49: [ プロファイリングの詳細 ] ウィンドウ ..................................................... 147 50: [ コードカバレッジ ] ウィンドウ ................................................................. 148 51: [ シミュレータ ] メニュー ............................................................................. 154 52: [ トレース ] ウィンドウ ................................................................................. 155 53: [ トレース ] ツールバー ................................................................................. 156 54: [ 関数トレース ] ウィンドウ ......................................................................... 157 55: [ トレース式 ] ウィンドウ ............................................................................. 158 56: [ トレースを検索 ] ウィンドウ ..................................................................... 159 57: [ トレースを検索 ] ダイアログボックス ..................................................... 160 58: [ メモリアクセス設定 ] ダイアログボックス ............................................. 162 59: [ メモリアクセスの編集 ] ダイアログボックス ......................................... 164 60: [ データ ] ブレークポイントダイアログボックス ..................................... 166 61: [ イミディエイト ] ブレークポイントページ ............................................. 169 62: [ プレークポイントの使用 ] ダイアログボックス ..................................... 170 63: 擬似割込みの構成 ........................................................................................... 172 64: シミュレーション状態 - 例 1 ........................................................................ 173 65: シミュレーション状態 - 例 2 ........................................................................ 173 IAR Embedded Workbench® IDE xxiv ユーザガイド 図 66: [ 割込み設定 ] ダイアログボックス ............................................................. 174 67: [ 割込みの編集 ] ダイアログボックス ......................................................... 176 68: [ 強制割込み ] ウィンドウ ............................................................................. 177 69: [ 割込みログ ] ウィンドウ ............................................................................. 179 70: [IAR Embedded Workbench IDE] ウィンドウ ............................................... 186 71: IAR Embedded Workbench IDE ツールバー ................................................. 187 72: [IAR Embedded Workbench IDE] ウィンドウのステータスバー ............... 188 73: [ ワークスペース ] ウィンドウ ..................................................................... 188 74: [ ワークスペース ] ウィンドウのコンテキストメニュー ......................... 189 75: [ ソースコード管理 ] メニュー ..................................................................... 190 76: [ ソースコード管理プロバイダの選択 ] ダイアログボックス ................. 193 77: [ ファイルのチェックイン ] ダイアログボックス ..................................... 193 78: [ ファイルのチェックアウト ] ダイアログボックス ................................. 195 79: エディタウィンドウ ....................................................................................... 196 80: エディタウィンドウのタブのコンテキストメニュー ............................... 197 81: エディタウィンドウのコンテキストメニュー ........................................... 197 82: [ ソースブラウザ ] ウィンドウ ..................................................................... 201 83: [ ソースブラウザ ] ウィンドウのコンテキストメニュー ......................... 202 84: [ ブレークポイント ] ウィンドウ ................................................................. 203 85: [ ブレークポイント ] ウィンドウのコンテキストメニュー ..................... 203 86: [ コード ] ブレークポイントページ ............................................................. 205 87: [ ログ ] ブレークポイントページ ................................................................. 207 88: [ ブレーク位置入力 ] ダイアログボックス ................................................. 208 89: [ ビルド ] ウィンドウ ( メッセージウィンドウ ) ....................................... 209 90: [ ビルド ] ウィンドウのコンテキストメニュー ......................................... 209 91: [ ファイルから検索 ] ウィンドウ ( メッセージウィンドウ ) ................... 210 92: [ ファイルから検索 ] ウィンドウのコンテキストメニュー ..................... 210 93: [ ツール出力 ] ウィンドウ ( メッセージウィンドウ ) ............................... 211 94: [ ツール出力 ] ウィンドウのコンテキストメニュー ................................. 211 95: [ デバッグログ ] ウィンドウ ( メッセージウィンドウ ) ........................... 212 96: [ デバッグログ ] ウィンドウのコンテキストメニュー ............................. 212 97: [ ファイル ] メニュー ..................................................................................... 213 98: [ 編集 ] メニュー ............................................................................................. 215 99: [ ファイルから検索 ] ダイアログボックス ................................................. 219 xxv 100: [ インクリメンタル検索 ] ダイアログボックス ....................................... 221 101: [ テンプレート ] ダイアログボックス ....................................................... 222 102: [ 表示 ] メニュー ........................................................................................... 223 103: [ プロジェクト ] メニュー ........................................................................... 224 104: [ プロジェクトの構成 ] ダイアログボックス ........................................... 227 105: [ 新規構成 ] ダイアログボックス ............................................................... 228 106: [ 新規プロジェクトの作成 ] ダイアログボックス ................................... 229 107: [ バッチビルド ] ダイアログボックス ....................................................... 231 108: [ バッチビルドの編集 ] ダイアログボックス ........................................... 232 109: [ ツール ] メニュー ....................................................................................... 233 110: [ 共通フォント ] オプション ....................................................................... 234 111: [ キーカスタマイズ ] オプション ............................................................... 235 112: [ エディタ ] オプション ............................................................................... 236 113: [ 自動インデントの設定 ] ダイアログボックス ....................................... 239 114: [ 外部エディタ ] のオプション ................................................................... 240 115: [ セットアップファイル ] オプション ....................................................... 241 116: [ 色とフォント ] オプション ....................................................................... 242 117: [ メッセージ ] オプション ........................................................................... 243 118: [ プロジェクト ] オプション ....................................................................... 244 119: [ ソースコード管理 ] オプション ............................................................... 246 120: [ デバッガ ] オプション ............................................................................... 247 121: [ スタック ] オプション ............................................................................... 248 122: [ レジスタフィルタ ] のオプション ........................................................... 250 123: [ ターミナル I/O] オプション ...................................................................... 251 124: [ 構成ツール ] ダイアログボックス ........................................................... 252 125: カスタマイズした [ ツール ] メニュー ...................................................... 254 126: [ ファイル名拡張子 ] ダイアログボックス ............................................... 254 127: [ ファイル名拡張子のオーバライド ] ダイアログボックス ................... 255 128: [ ファイル名拡張子の編集 ] ダイアログボックス ................................... 255 129: [ ビューアを構成 ] ダイアログボックス ................................................... 256 130: [ ビューア拡張子の編集 ] ダイアログボックス ....................................... 256 131: [ ウィンドウ ] メニュー ............................................................................... 257 132: [Embedded Workbench の起動 ] ダイアログボックス .............................. 259 133: C-SPY のデバッグツールバー .................................................................... 263 IAR Embedded Workbench® IDE xxvi ユーザガイド 図 134: C-SPY の [ 逆アセンブリ ] ウィンドウ ...................................................... 263 135: [ 逆アセンブリ ] ウィンドウのコンテキストメニュー ........................... 265 136: [ メモリ ] ウィンドウ ................................................................................... 266 137: [ メモリ ] ウィンドウのコンテキストメニュー ....................................... 268 138: [ フィル ] ダイアログボックス ................................................................... 269 139: [ メモリ保存 ] ダイアログボックス ........................................................... 270 140: [ メモリ復元 ] ダイアログボックス ........................................................... 271 141: [ シンボルメモリ ] ウィンドウ ................................................................... 272 142: [ シンボルメモリ ] ウィンドウのコンテキストメニュー ....................... 273 143: [ レジスタ ] ウィンドウ ............................................................................... 274 144: [ ウォッチ ] ウィンドウ ............................................................................... 275 145: [ ウォッチ ] ウィンドウのコンテキストメニュー ................................... 275 146: [ ローカル ] ウィンドウ ............................................................................... 277 147: [ 自動 ] ウィンドウ ....................................................................................... 277 148: [ ライブウォッチ ] ウィンドウ ................................................................... 278 149: [ クイックウォッチ ] ウィンドウ ............................................................... 278 150: [ 静的 ] ウィンドウ ....................................................................................... 279 151: [ 静的 ] ウィンドウのコンテキストメニュー ........................................... 280 152: [ 静的の変数の選択 ] ダイアログボックス ............................................... 281 153: [ 呼出しスタック ] ウィンドウ ................................................................... 282 154: [ 呼出しスタック ] ウィンドウのコンテキストメニュー ....................... 282 155: [ ターミナル I/O] ウィンドウ ...................................................................... 283 156: [ 制御コード ] メニュー ............................................................................... 283 157: [ 入力モード ] ダイアログボックス ........................................................... 284 158: [ コードカバレッジ ] ウィンドウ ............................................................... 284 159: [ コードカバレッジ ] のコンテキストメニュー ....................................... 285 160: [ プロファイリング ] ウィンドウ ............................................................... 286 161: [ プロファイリング ] ウィンドウのコンテキストメニュー ................... 286 162: [ スタック ] ウィンドウ ............................................................................... 288 163: [ スタック ] ウィンドウのコンテキストメニュー ................................... 290 164: [ デバッグ ] メニュー ................................................................................... 291 165: [ 自動ステップの設定 ] ダイアログボックス ........................................... 292 166: [ マクロ設定 ] ダイアログボックス ........................................................... 293 167: [ ログファイル ] ダイアログボックス ....................................................... 294 xxvii 168: [ ターミナル I/O ログファイル ] ダイアログボックス ............................ 295 169: [ 出力 ] オプション ....................................................................................... 297 170: [ ライブラリ設定 ] オプション ................................................................... 299 171: [ ライブラリオプション ] ページ ............................................................... 300 172: コンパイラの言語オプション ..................................................................... 303 173: コンパイラ最適化オプション ..................................................................... 306 174: コンパイラの出力オプション ..................................................................... 307 175: コンパイラのリストファイルオプション ................................................. 309 176: コンパイラのプリプロセッサオプション ................................................. 310 177: コンパイラの診断オプション ..................................................................... 312 178: コンパイラ用の [ 追加オプション ] ページ ............................................. 314 179: マクロの引用符の選択 ................................................................................. 316 180: アセンブラの出力オプション ..................................................................... 316 181: アセンブラのプリプロセッサオプション ................................................. 317 182: アセンブラ用の [ 追加オプション ] ページ .............................................. 319 183: カスタムツールオプション ......................................................................... 321 184: ビルドアクションオプション ..................................................................... 323 185: XLINK の出力ファイルのオプション ....................................................... 325 186: XLINK の追加出力ファイルのオプション ............................................... 328 187: XLINK のシンボル定義オプション ........................................................... 329 188: XLINK の診断オプション ........................................................................... 330 189: XLINK のリストファイルオプション ....................................................... 332 190: XLINK の設定オプション ........................................................................... 334 191: XLINK 処理オプション ............................................................................... 336 192: リンカ用の [ 追加オプション ] ページ ...................................................... 338 193: XAR の出力オプション ............................................................................... 339 194: 一般的な C-SPY オプション ....................................................................... 341 195: C-SPY デバッガ用の [ 追加オプション ] ページ ...................................... 343 196: C-SPY プラグインオプション .................................................................... 344 IAR Embedded Workbench® IDE xxviii ユーザガイド はじめに IAR Embedded Workbench® IDE ユーザガイドへようこそ。本ガイドは、 内蔵の Windows 用開発ツールを使用して IAR Embedded Workbench の機 能を十分に活用していただけるよう支援することを目的としています。 IAR Embedded Workbench IDE は、完全な組込みアプリケーションプロ ジェクトの開発および管理が可能な、非常に強力な統合開発環境です。 このユーザガイドには、初歩的な操作を説明するチュートリアルに加 えて、製品の概要、リファレンス情報が含まれています。また、編集、 プロジェクト管理、ビルド、デバッグの手順についても説明します。 注 : 本ガイドの説明の一部は、IAR Embedded Workbench® IDE の特定のバー ジョンだけが該当します。たとえば、一部のバージョンでは C++ をサポート していません。 本ガイドの対象者 本ガイドは、IAR Embedded Workbench IDE で利用可能なすべての機能および ツールを活用する場合に利用してください。また、以下について十分な知識が あるユーザを対象としています。 ● C/C++ プログラミング言語 ● 組込みシステム用アプリケーションの開発 ● 使用するプロセッサのアーキテクチャと命令セット(チップメーカのドキュ メントを参照 ) ● ホストコンピュータのオペレーティングシステム。 IAR Embedded Workbench IDE に統合されている他の開発ツールの詳細につい ては、 『IAR C/C++ コンパイラリファレンスガイド』、『IAR アセンブラリファ 『IAR リンカおよびライブラリツールリファレンスガイド』を レンスガイド』、 参照してください。 本ガイドの使用方法 この製品を初めて使用する場合は、まず「パート 1: 製品概要」で、IAR Embedded Workbench IDE で利用可能なツールおよび機能の概要を確認することをお勧め します。 xxix 本ガイドの内容 IAR Embedded Workbench の使用経験者で、IAR の開発ツールの使用方法を再 確認する必要がある場合は、 「パート 2: チュートリアル」から始めることをお 勧めします。プロジェクト管理、ビルド、編集手順については、67 ページの 「パート 3: プロジェクト管理とビルド」で説明しています。C-SPY® デバッガ については、101 ページの「パート 4: デバッグ」で説明しています。 十分な開発経験があり、本ガイドのリファレンス情報だけが必要な場合は、 「パート 6: リファレンス情報」のリファレンス情報および IAR Embedded Workbench の [ ヘルプ ] メニューから使用できるオンラインヘルプを参照して ください。 最後に、IAR システムズのユーザガイドやリファレンスガイドでわからない用 語がある場合は、 「用語集」を参照してください。 本ガイドの内容 本ガイドの構成および各章の概要を以下に示します。一部の章では、内容の一 部または全部が IAR Embedded Workbench® IDE の特定のバージョンについて のみ該当するものがあります。 「パート 1: 製品概要」 このセクションでは、慣れていただくために全 IAR 開発ツールの概要につい て説明します。 ● 「製品概要」では、IAR システムズの開発ツール (IAR Embedded Workbench® IDE、IARC/C++ コンパイラ、IAR アセンブラ、IAR XLINK リンカ、IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン、IAR C-SPY デバッガ ) の概 要、各ツールの機能について説明します。 ● 「インストールファイル」では、ディレクトリ構成および各ディレクトリに 含まれるファイルの種類について説明します。また、IAR 開発ツールで提 供されるドキュメントの概要も説明しています。 「パート 2: チュートリアル」 チュートリアルでは、ツールの基本的な使用方法を確認するための実践トレー ニングを説明します。 ● 「アプリケーションプロジェクトの作成」では、新規プロジェクトの設定、ア プリケーションのコンパイル、リストファイルの確認、アプリケーション のリンクを行います。このチュートリアルでは、一般的な開発サイクルを 説明します。次の章では、デバッグについて説明しています。 ● 「IAR C-SPY® デバッガを使用したデバッグ」では、デバッガの基本機能につ いて説明します。 IAR Embedded Workbench® IDE xxx ユーザガイド はじめに ● 「C 言語とアセンブラモジュールの結合」では、C で記述したソースモジュー ルとアセンブラモジュールを簡単に統合する方法を説明します。また、コ ンパイラを使用して呼出し規約を調べる方法についても説明します。 ● 「C++ の使用」では、C++ のクラスを作成します。ここでは、2 つの独立した オブジェクトを作成します。その後で、アプリケーションをビルドしてデ バッグします。この章の内容は、C++ をサポートするバージョンだけに該 当します。 ● 「割込みシミュレーション」では、割込みハンドラをプロジェクトに追加す る方法と、この割込みを C-SPY の割込みシミュレーション、ブレークポイ ント、マクロを使用してシミュレーションする方法を説明します。 ● 「ライブラリモジュールの結合」では、ライブラリモジュールの作成方法を 説明します。 「パート 3: プロジェクト管理とビルド」 アプリケーションの編集、ビルドの手順について説明します。 ● 「開発環境」では、IAR Embedded Workbench 開発環境の概要を説明します。 ● 「プロジェクト管理」では、ワークスペースを作成し、複数のオブジェクト、 また、必要に応じて環境をカスタマイズする機能についても説明します。 ビルド構成、グループ、ソースファイル、オプションを指定して、バージョ ンの異なるアプリケーションを管理する方法を説明します。 「ビルド」では、アプリケーションのビルド手順について説明します。 ● 「編集」では、IAR Embedded Workbench エディタの詳細、使用方法、関連機 ● 能について説明します。また、任意の外部エディタとの連携方法について も説明します。 「パート 4: デバッグ」 ここでは、C-SPY の機能の概要および使用方法について説明します。 ● 「IAR C-SPY® デバッガ」では、デバッグ全般について、および IAR C-SPY デ バッガについて説明します。また、C-SPY 環境およびその設定、起動、ター ゲットハードウェアに合せた設定の方法について説明します。 ● 「アプリケーションの実行」では、IAR C-SPY デバッガの初期化方法、ソー スモードと逆アセンブリモードのデバッグの違い、アプリケーションの実 行機能、ターミナルの I/O の操作方法について説明します。 ● 「変数と式の扱い」では、C-SPY で使用する式や変数の構文、および変数の 制限について説明します。また、変数や式のモニタ方法についても説明し ます。 ● 「ブレークポイントの使用」では、ブレークポイントシステムとブレークポ イントの定義方法について説明します。 xxxi 本ガイドの内容 ● 「メモリとレジスタのモニタ」では、メモリやレジスタの内容を調べる方法 ● 「C-SPY® マクロシステムの使用」では、C-SPY のマクロシステムとその機 ● 「アプリケーションの分析」では、アプリケーションを解析する機能につい について説明します。 能、マクロの用途、マクロの使用方法について説明します。 て説明します。 「パート 5: IAR C-SPY シミュレータ」 ● 「シミュレータ固有のデバッグ」では、シミュレータ固有の機能について説 明します。 ● 「割込みシミュレーション」では、C-SPY の割込みシミュレーションシステ ムの詳細と、ターゲットハードウェアの割込みに応じて割込みシミュレー ションを設定する方法について説明します。 「パート 6: リファレンス情報」 ● 「IAR Embedded Workbench® IDE リファレンス」は、グラフィカルユーザインタ ● 「C-SPY® デバッガリファレンス」は、IAR C-SPY デバッガのグラフィカル ● 「一般オプション」は、ターゲット、出力、ライブラリ、ヒープ、スタック フェースの詳細など、開発環境の詳細なリファレンス情報を収録しています。 ユーザインタフェースの詳細なリファレンス情報を収録しています。 のオプションについて説明します。 ● 「コンパイラオプション」では、言語、最適化、コード、出力、リストファイ ル、プリプロセッサ、診断用のコンパイラオプションについて説明します。 ● 「アセンブラオプション」では、言語、出力、リスト、プリプロセッサ、診 断用のアセンブラオプションについて説明します。 ● 「カスタムビルドオプション」では、ツールのカスタム設定用オプションに ついて説明します。 ● 「ビルドアクションオプション」では、ビルド前とビルド後のアクション用 オプションについて説明します。 ● 「リンカオプション」では、XLINK の出力、シンボル定義、診断、リスト生 成、インクルードパスの設定、入力、処理のオプションについて説明します。 ● 「ライブラリビルダオプション」 では、Embedded Workbench で使用可能な XAR オプションについて説明します。 ● 「デバッガオプション」は、一般的な C-SPY オプションのリファレンスを収 録しています。 ● 「C-SPY® マクロリファレンス」は、C-SPY マクロについて、マクロ言語の構 文、使用可能なセットアップマクロ関数の要約、定義済みシステムマクロ などのリファレンス情報を収録しています。最後に、各システムマクロに ついて説明しています。 「用語集」 用語集では、プログラミング用語の定義を説明します。 IAR Embedded Workbench® IDE xxxii ユーザガイド はじめに その他のドキュメント IAR の各開発ツールについては、一連のガイドで説明しています。知りたい情 報に対応するドキュメントを以下に示します。 ● ● IAR C/C++ コンパイラを使用したプログラミングについては、『IAR C/C++ コンパイラリファレンスガイド』を参照してください。 IAR アセンブラを使用したプログラミングについては、『IAR アセンブラリ ファレンスガイド』を参照してください。 ● IAR XLINK リンカ、IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン の使用方法については、 『IAR リンカおよびライブラリツールリファレンス ガイド』を参照してください。 これらのガイドは、すべてハイパーテキスト PDF か HTML フォーマットで、 インストール用メディアに収録されています。一部は、製本版としても提供さ れます。お使いになっている製品にインストールされている内容によっては、 [ ヘルプ ] メニューから他のドキュメントも表示できる場合があります。 推奨 Web サイト : ● チップ製造業者のWebサイトでは、使用するプロセッサについての情報およ びニュースが公開されています。 ● IARシステムズの Webサイト (www.iarsys.co.jp) では、アプリケーションノー トおよびその他の製品情報を公開しています。 ● Embedded C++ Technical Committee の Web サイト (www.caravan.net/ec2plus) では、Embedded C++ 規格についての情報が公開されています。 表記規則 本書では、以下の表記規則を使用しています。 スタイル 用途 computer 入力する、あるいは画面に表示されるテキストを示します。 parameter ラベルに、コマンドの一部として入力する実際の値を示します。ま た、cpuname、configfile、libraryfile、製品を示す他のラ ベル、ファイル名の拡張子の数値部分 xx にも使用されます。 [option] コマンドの省略可能な部分を示します。 {option} コマンドの必須部分を示します。 a|b|c コマンドの選択肢部分を示します。 bold 画面で表示されるメニュー、メニューコマンド、ボタン、ダイア ログボックスの名前を示します。 表 1: 本ガイドで使用されている表記規則 xxxiii 表記規則 スタイル 用途 リファレンス 本ガイドや他のガイドへのクロスリファレンスを示します。 … 直前の項目を任意の回数繰り返し可能であることを示します。 IAR Embedded Workbench IDE 固有の内容を示します。 コマンドラインインタフェース固有の内容を示します。 開発やプログラミングについてのヒントを示します。 表 1: 本ガイドで使用されている表記規則 ( 続き ) IAR Embedded Workbench® IDE xxxiv ユーザガイド パート 1: 製品概要 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● 製品概要 ● インストールファイル 1 2 製品概要 IAR Embedded Workbench® IDE は、完全な組込みアプリケーションプ ロジェクトの開発および管理が可能な、非常に強力な統合開発環境で す。毎日の作業に必要な機能をすべて備えた開発プラットフォームを 提供します。 この章では、IAR Embedded Workbench IDE の概要と、この製品に統合 されているすべてのツールの概要を説明します。 IAR Embedded Workbench IDE IAR Embedded Workbench IDE は、すべての必要なツールがシームレスに統合 されたフレームワークです。 ● ● ● ● ● ● ● ● 最適化性能が高い IAR C/C++ コンパイラ IAR アセンブラ 柔軟性の高い IAR XLINK リンカ IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン 強力なエディタ プロジェクトマネージャ コマンドラインビルドユーティリティ 高級言語に対応する最先端技術の IAR C-SPY® デバッガ IAR Embedded Workbench は、多くのマイクロプロセッサやマイクロコントロー ラ (8 ビット、16 ビット、32 ビット ) に対応するため、新たなプロジェクトで も使い慣れた開発環境をそのまま利用することができます。本製品は、コード を最大限に再利用できることや、一般的な機能とターゲット固有の機能をサ ポートすることで、操作が分かりやすく、非常に効率的な開発環境を実現して います。IAR Embedded Workbench は実用的な作業手法を採用しており、IAR シ ステムズのツールを使用して開発時間を大幅に短縮することができます。当社 ではこのコンセプトを、 「多様なアーキテクチャに ひとつのソリューション」 と呼んでいます。 サポート対象のターゲットプロセッサの詳細については、ソフトウェア販売代 理店または IAR の担当者までお問い合せいただくか、IAR システムズの Web サイト (www.iarsys.co.jp) で最新製品リリース情報をご覧ください。 パート 1: 製品概要 3 IAR Embedded Workbench IDE 拡張可能なモジュール化構造の環境 IAR Embedded Workbench IDE は、プロジェクトの成功のために必要なすべて の機能を提供していますが、同時に IAR システムズは他のツールと連携する 必要があることも理解しています。そのため、IAR Embedded Workbench IDE で は、ユーザが任意のエディタおよびソースコード管理システムと簡単に連携を とることができます。IAR XLINK リンカは多数の出力フォーマットに対応し ており、ほとんどのサードパーティ製エミュレータでデバッグが可能です。ま た、RTOS 認識デバッグのサポートも追加することができます。 ビルド済みプロジェクト環境で外部ツールとして利用したい場合は、コンパイ ラ、アセンブラ、リンカを、コマンドライン環境で実行することもできます。 特長 IAR Embedded Workbench IDE は、さまざまなターゲットプロセッサ用アプリ ケーションの開発が可能な、柔軟な統合開発環境です。使いやすい Windows イ ンタフェースを使用しているため、迅速に開発やデバッグを実行することがで きます。 プロジェクト管理 IAR Embedded Workbench IDE は、C/C++ ソースコードファイル、アセンブラ ファイル、インクルードファイル、その他の関連モジュールなど、すべてのプ ロジェクトモジュールを管理するための機能を装備しています。ワークスペー スを作成し、1 つまたは複数のプロジェクトを追加できます。ファイルはグ ループ化が可能で、プロジェクト、グループ、ファイルのすべてのレベルでオプ ションを設定できます。リビルド実行時に必要なモジュールが再変換されるよう に、変更が記録されます。そのため、古いモジュールが含まれる実行可能ファイ ルが作成されることがありません。他にも、以下のような特長があります。 ● ● ● ● ● ● ● ● すぐにビルド実行できるプロジェクトテンプレートが付属しており、開発 をスムーズに開始可能 プロジェクトを階層構造で表示 階層構造でシンボルを表示できるソースブラウザ オプションを全体、ソースファイルのグループ単位、個々のソースファイ ル単位に設定可能 [メイク]コマンドでは自動的に変更を検出して、 必要な操作のみを実行します。 テキストベースのプロジェクトファイル カスタムビルドユーティリティにより、標準ツールチェーンを簡単に拡張可能 プロジェクトファイルを入力としてコマンドラインビルド可能 ソースコード管理 ソースコード管理 (SCC) ( レビジョン管理 ) を使用して、バージョンの異なる ソースコードを管理することができます。IAR Embedded Workbench では、 Microsoft が公開している SCC インタフェースに準拠する任意のサードパー ティ製ソースコード管理システムを利用できます。 IAR Embedded Workbench® IDE 4 ユーザガイド 製品概要 ウィンドウ管理 ウィンドウの配置を自在かつ簡単に設定できるように、各ウィンドウはドッキ ング可能になっています。また、ウィンドウをタブグループで整理することも できます。また、ドッキング可能なウィンドウシステムでは、表示領域を節約 しながら多数のウィンドウを同時に開くことができます。さらに、ウィンドウ のサイズの変更も簡単に行うことができます。 テキストエディタ 内蔵テキストエディタでは、複数ファイルを平行して編集できます。また、無 制限のアンドゥ / リドゥ、テキストの自動補完といった、最新エディタに求め られる基本編集機能をすべて装備しています。また、キーワードのカラー表示 (C/C++、アセンブラ、ユーザ定義 )、ブロックインデント、ソースファイル内 での関数間の移動などのソフトウェア開発用機能も装備しています。さらに、 括弧のマッチングなど、C 言語のエレメントの認識にも対応しています。他に も、以下のような特長があります。 ● ● ● ● ● ● ● ● ● ライブラリ関数のリファレンス情報を表示できる文脈依存ヘルプシステム テキストスタイルおよびカラーで C/C++ プログラム、アセンブラディレク ティブの構文を区別して表示 複数ファイル検索などの強力な検索 / 置換コマンド エラーリストからコンテキストを直接表示 マルチバイト文字のサポート 括弧のマッチング 自動インデント ブックマーク 各ウィンドウで無制限にアンドゥ / リドゥ可能 ドキュメント IAR Embedded Workbench IDE の詳細は、『IAR Embedded Workbench® IDE ユー ザガイド』( 本ガイド ) で説明しています。また、ヘルプやユーザドキュメン トのハイパーテキスト PDF 版をオンラインで利用できます。 IAR C-SPY デバッガ IAR C-SPY デバッガは、組込みアプリケーション用の高級言語デバッガです。 IAR システムズのコンパイラやアセンブラと併せて使用するように設計され ており、IAR Embedded Workbench IDE に完全統合されているため、開発とデ バッグをシームレスに切り替えることができます。このため、以下のような操 作が可能です。 ● デバッグ中の編集。デバッグセッション中に、デバッグの制御に使用する ものと同じソースコードウィンドウで直接修正を行うことができます。変 更内容は、次にプロジェクトをリビルドしたときに有効になります。 パート 1: 製品概要 5 IAR C-SPY デバッガ ● デバッガ起動前に、ソースコードにブレークポイント設定可能。ソースコー ド中のブレークポイントは、コードを追加した後も、ソースコードの同一 部分に対応付けられます。 IAR C-SPY デバッガは、C-SPY の基本機能セットを提供する部分とドライバで 構成されています。C-SPY ドライバは、ターゲットシステムとの通信および ターゲットシステムの管理を提供します。また、ターゲットシステムが提供す る機能 ( 特別なブレークポイントなど ) を操作するためのユーザインタフェー ス ( 専用のメニュー、ウィンドウ、ダイアログボックス ) も提供します。 使用可能な C-SPY ドライバについては、ソフトウェア販売代理店か IAR システ ムズの担当者までお問い合せください。 また、 IARのWebサイト(www.iarsys.co.jp) でも情報を提供しています。 製品のインストール内容によっては、IAR C-SPY デバッガと併せて、シミュ レータドライバやハードウェアデバッガシステム用の追加ドライバもインス トールされます。ハードウェアデバッガシステムについては、[ ヘルプ ] メ ニューから表示できるオンラインヘルプシステムを参照してください。 C-SPY デバッガの特長 IAR システムズはツールチェーン全体を提供しているため、コンパイラやリン カの出力にデバッガ用の詳細なデバッグ情報を含めることができ、デバッグ時 に非常に役立ちます。IAR C-SPY デバッガは、以下のような一般機能を提供し ます。 ソースおよび逆アセンブリレベルのデバッグ IAR C-SPY デバッガでは、C/C++ とアセンブラの両方のソースコードで、ソー スと逆アセンブリのデバッグを必要に応じて切り替えることができます。 C/C++ ソースコードのデバッグにより、アプリケーションのプログラムロジッ クを短時間で簡単に検証できます。一方で、逆アセンブリのデバッグにより、 アプリケーションの重要部分を重点的に検証し、ハードウェアをより正確に制 御することができます。混在モード表示では、対応する C/C++ ソースコード と逆アセンブリリストを交互に表示することもできます。 関数呼出しのステップ実行 ソースレベルのステップ実行の最小単位が行単位である従来のデバッガとは 異なり、C-SPY ではすべての文および関数呼出しがステップポイントとして認 識されるため、より詳細な制御が可能です。つまり、式に含まれる呼出しと、 他の関数への呼出しのパラメータとして記述されている呼出しの両方をス テップ実行できます。パラメータ中の呼出しのステップ実行は、オブジェクト のコンストラクタなどのように、多数の追加関数呼出しが行われる C++ コー ドで特に便利です。 IAR Embedded Workbench® IDE 6 ユーザガイド 製品概要 デバッグ情報では、インライン関数が呼出し実行時と同様に示されるため、イ ンライン関数のソースコードも確認できます。 コード / データブレークポイント C-SPY のブレークポイントシステムでは、デバッグ対象のアプリケーションで さまざまなブレークポイントを設定し、目的箇所で実行を停止することができ ます。コード ブレークポイントを設定すると、プログラムロジックが正常か どうかを調べることができます。データブレークポイントを設定すると、デー タの変更がいつどのように実行されるかを調べることができます。また、ブ レークポイントに条件の追加およびアクションの接続ができます。 変数および式のモニタ 変数および式を調べる際に、さまざまな機能を使用できます。任意の変数およ び式をポップアップ表示で評価できます。指定した式の値をより長時間モニタ および記録することができます。ローカル変数をその場で制御でき、処理の中 断なくリアルタイムでデータが表示されます。さらに、最後に参照した変数が 自動的に表示されます。 コンテナ認識 IAR C-SPY デバッガでアプリケーションを実行すると、STL の list や vector など のライブラリデータ型のエレメントを表示することができます。これにより、 C++ STL コンテナの使用時に内容を簡単に把握してデバッグすることができます。 呼出しスタック情報 IAR C/C++ コンパイラは、詳細な呼出しスタック情報を生成します。これによ り、実行に影響することなく、プログラムカウンタがどこを指していても、関 数呼出しの完全な呼出しスタックを C-SPY で表示できます。呼出しスタック で任意の関数を選択し、その関数についてローカル変数やレジスタの情報を表 示することができます。 強力なマクロシステム IAR C-SPY デバッガは強力な内蔵マクロシステムを装備しており、複雑なアク ションを定義して実行することができます。C-SPY マクロは、単独で、あるい はブレークポイントや割込みシミュレーションシステム ( シミュレータ使用時 ) と組み合せて使用し、さまざまなタスクを実行することができます。 C-SPY デバッガのその他の特長 他にも、以下のような特長があります。 ● モジュール化構造の拡張可能なアーキテクチャにより、リアルタイムオペ レーティングシステム、周辺シミュレーションモジュール、エミュレータ ドライバなどのサードパーティ製拡張モジュールをデバッガに追加可能 パート 1: 製品概要 7 IAR C-SPY デバッガ ● ● ● ● ● ● ● ● ● スレッド実行により、ターゲットアプリケーションの実行中も IDE の応答性 を維持 自動ステップ実行 ソースブラウザで、関数、型、変数を簡単に表示可能 さまざまな変数の型を認識 設定可能なレジスタ (CPU、周辺 )、メモリウィンドウ 専用のスタックウィンドウ コードカバレッジ、関数レベルのプロファイルをサポート ターミナル I/O エミュレーション UBROF、Intel-extended、Motorola の各入力フォーマットに対応。 RTOS 認識 IAR C-SPY デバッガは、リアルタイム OS 対応のデバッグをサポートしてい ます。 IAR かサードパーティ製の RTOS プラグインモジュールを使用できます。サ ポートされている RTOS モジュールについては、ソフトウェア販売代理店か IAR システムズの担当者までお問い合せください。また、IAR システムズの Web サイトでも情報を提供しています。 IAR C-SPY シミュレータ C-SPY シミュレータドライバは、ターゲットプロセッサの機能をソフトウェア だけでシミュレーションします。このドライバを使用して、ハードウェアの入 手前にプログラムロジックをデバッグすることができます。ハードウェアが不 要であるため、多くのアプリケーションにとって最も費用効果の高いソリュー ションでもあります。 特長 C-SPY デバッガの一般的な特長に加えて、シミュレータには以下のような特長 があります。 ● ● ● ● 命令レベルのシミュレーション メモリの構成、検証 割込みシミュレーション イミディエイトブレークポイントと C-SPY マクロシステムを使用した周辺 シミュレーション IAR C-SPY シミュレータの詳細については、本ガイドの「パート 5: IAR C-SPY シミュレータ」を参照してください。 IAR Embedded Workbench® IDE 8 ユーザガイド 製品概要 ドキュメント IAR C-SPY デバッガの詳細は、『IAR Embedded Workbench® IDE ユーザガイド』 ( 本ガイド ) で説明しています。デバッガの一般機能については、 「パート 4: デ バッグ」を参照してください。各シミュレータのデバッガドライバ固有の機能 については、 「パート 5: IAR C-SPY シミュレータ」を参照してください。サポー ト対象のハードウェアデバッガシステム固有の機能については、[ ヘルプ ] メ ニューから表示できるオンラインヘルプシステムを参照してください。また、ヘ ルプやドキュメントのハイパーテキスト PDF 版をオンラインで利用できます。 IAR C/C++ コンパイラ IAR C/C++ コンパイラは、C/C++ 言語の標準機能に加えて、ターゲット固有の 機能を利用するための多くの拡張機能を装備した最新コンパイラです。 コンパイラは、IAR Embedded Workbench IDE の他の IAR システムズソフトウェ アと統合されています。 特長 IARC/C++ コンパイラには、以下の特長があります。 コード生成 ● ● ● ● 一般 / ターゲット固有の最適化技術により、非常に効率的なマシンコードを 生成 再配置可能なオブジェクトコード、アセンブラソースコード、アセンブラ ニーモニックに対応するリストファイルなどの広範囲な出力オプション オブジェクトコードをアセンブラルーチンにリンク可能 詳細なデバッグ情報を生成 言語機能 ● ● ● ● ● ● プログラミング言語 C と C++ をサポート ( 製品バージョンによっては C++ を サポートしていないものもあります ) テンプレート、名前空間、キャスト演算子 static_cast、const_cast、 reinterpret_cast、標準テンプレートライブラリ (STL) のような機能をサ ポートできる IAR Extended EC++ へのサポートは、C++ をサポートする製品 バージョンのみに適用されます。 さまざまなメモリタイプでのクラス配置 フリースタンディング環境での ISO/ANSI C 規格への準拠 特殊な関数型、キーワード拡張、pragma ディレクティブ、定義済みシンボ ル、組込み関数、絶対アドレス配置、インラインアセンブラなどのターゲッ ト固有の言語拡張 組込みシステムに使用可能な標準関数ライブラリ パート 1: 製品概要 9 IAR アセンブラ ● ● IEEE 互換浮動小数点演算 割込み関数を C/C++ で記述可能 タイプチェック ● ● ● コンパイル時の詳細なタイプチェック 外部参照のタイプをリンク時にチェック アプリケーションのモジュール間の整合性をリンク時にチェック ランタイム環境 ランタイム環境やランタイムライブラリをカスタマイズする仕組みが複数提 供されています。ランタイム環境の詳細については、『IAR C/C++ コンパイラ リファレンスガイド』を参照してください。 ドキュメント IARC/C++ コンパイラについては、『IAR C/C++ コンパイラリファレンスガイ ド』を参照してください。 IAR アセンブラ IAR アセンブラは、他の IAR システムズソフトウェア ツールと統合されてい ます。IAR アセンブラは、柔軟なディレクティブや式演算子セットを備えた 強力な再配置マクロアセンブラで、Intel/Motorola 形式をサポートしています。 C言語プリプロセッサを内蔵しており、条件アセンブリをサポートしています。 特長 IAR アセンブラには、以下の特長があります。 ● ● ● ● ● ● C プリプロセッサ 詳細なクロスリファレンス出力付きのリストファイル シンボル数、プログラムサイズの制限は PC のメモリ容量のみ 外部参照を含む複雑な式をサポート モジュールあたり最大 65536 個の再配置可能セグメント シンボル名の有効文字数は 255 文字 ドキュメント IAR アセンブラについては、 『IAR アセンブラリファレンスガイド』を参照し てください。 IAR Embedded Workbench® IDE 10 ユーザガイド 製品概要 IAR XLINK リンカ IAR XLINK リンカは、IAR アセンブラや IARC/C++ コンパイラで生成される 再配置可能オブジェクトファイルをリンクし、使用するプロセッサ用のマシン コードを生成します。サイズが小さく 1 ファイルのアセンブラアプリケーショ ンのリンクと、大規模で再配置可能な複数モジュールの C/C++ アプリケーショ ンや C/C++ アセンブラ混在アプリケーションのリンクの両方に適しています。 IAR C-SPY デバッガで使用する IAR システムズ専用デバッグフォーマットで ある UBROF (Universal Binary Relocatable Object Format) に加えて、30 以上ある 業界標準のローダフォーマットから 1 つのフォーマットを生成することも可能 です。任意のアセンブラと C/C++ アプリケーションを組み合せて使用し、任 意の個数の再配置可能な UBROF ファイルでアプリケーションを構成すること ができます。 IAR XLINK リンカが生成する最終出力は、プロセッサやハードウェアエミュ レータにダウンロードでき、ターゲットで実行可能な絶対オブジェクトファイ ルです。出力ファイルに、選択した出力フォーマットに応じたデバッグ情報を 含めるかどうかを選択することもできます。 IAR XLINK リンカは、ユーザライブラリをサポートしており、リンク対象ア プリケーションで実際に必要なモジュールだけをロードします。IAR XLINK リ ンカは、すべてのモジュールの完全な C レベルのタイプチェックと、入力順に 関係なく、全入力ファイルの全シンボルの完全な依存関係の解決をリンク前に 実行します。また、すべてのモジュールでコンパイラ設定に矛盾がないかどう かを調べ、正しいバージョンおよびバリエーションの C/C++ ランタイムライ ブラリが使用されていることを確認します。 特長 ● ● ● ● ● ● モジュール間の完全なタイプチェック ライブラリモジュールのオーバーライドが簡単 柔軟なセグメントコマンドにより、コードやデータの配置を細かく制御可能 リンク時のシンボル定義により、柔軟な構成制御が可能 ランタイムチェック用にコードのチェックサム生成が可能 未使用コード、データの削除 ドキュメント IAR XLINK リンカについては、『IAR リンカおよびライブラリツールリファレ ンスガイド』を参照してください。 パート 1: 製品概要 11 IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン IAR XAR ライブラリビルダ、IAR XLIB ライブラリアン ライブラリは、多数の再配置可能オブジェクトモジュールが含まれる単一の ファイルです。各モジュールは、ファイル内の他のモジュールから必要に応じ て個別にロードすることができます。IAR XAR ライブラリビルダ を使用する と、ライブラリを容易にビルドできます。さらに、IAR XLIB ライブラリアン によって、IAR システムズのアセンブラやコンパイラで作成した再配置可能な ライブラリオブジェクトファイルを操作できます。 ライブラリファイルは、多数の LIBRARY タイプのモジュールが含まれる点を 除き、アセンブラやコンパイラが生成する他の再配置可能オブジェクトファイ ルと違いはありません。すべての C/C++ アプリケーションでライブラリが利 用され、IARC/C++ コンパイラには、多数の標準ライブラリファイルが付属し ています。 特長 IAR XAR ライブラリビルダと IAR XLIB ライブラリアンには、以下の特長があ ります。 ● ● モジュールを結合してライブラリファイルを作成可能 対話型モードとバッチモードによる操作 IAR XLIB ライブラリアンには、他にも以下の特長があります。 ● ● ● ● モジュールの表示、追加、挿入、置換、削除が可能 プログラム、ライブラリ型ごとにモジュールを変更可能 セグメントを表示可能 シンボルを表示可能 ドキュメント IAR XLIB ライブラリアンと IAR XAR ライブラリビルダについては、 『IAR リ ンカおよびライブラリツールリファレンスガイド』を参照してください。ま た、IAR Embedded Workbench IDE の [ ヘルプ ] メニューから PDF 版を表示す ることができます。 IAR Embedded Workbench® IDE 12 ユーザガイド インストールファイル この章では、インストール時に作成されるディレクトリおよび使用さ れるファイルタイプについて説明します。この章の最後で、各ガイド およびオンラインドキュメントの概要を説明しています。 IAR システムズ製品のシステム要件、インストール方法、登録方法に ついては、付属の『QuickStart Card』、 『インストールとライセンス登録 ガイド』を参照してください。 ディレクトリ構成 インストール手順を実行すると、IAR システムズの開発ツールで使用される各 種ファイルを含む複数のディレクトリが作成されます。以下では、各ディレク トリにデフォルトで含まれるファイルについて説明します。 ルートディレクトリ デフォルトのインストール手順で作成されるルートディレクトリは、 x:\Program Files\IAR Systems\Embedded Workbench 4.n\ です。ここで、 x は Microsoft Windows がインストールされているドライブ、4.n は IAR Embedded Workbench IDE のバージョンを示します。 ルートディレクトリには、common サブディレクトリと、使用するプロセッサ に応じた名前のサブディレクトリの 2 つのサブディレクトリがあります。後者 のディレクトリを、以降 cpuname と呼びます。 注 : インストールパスは、先にインストールしていた IAR 製品や、ユーザの設 定によっては、上記に示すものと異なる場合があります。 COMMON ディレクトリ common ディレクトリには、すべての IAR Embedded Workbench 製品で共有する コンポーネント用のサブディレクトリが含まれています。 common\bin ディレクトリ common\bin サブディレクトリには、IAR XLINK リンカ、IAR XLIB ライブラ リアン、IAR XAR ライブラリビルダ、エディタ、グラフィカルユーザインタ フェースコンポーネントなど、すべての IAR Embedded Workbench 製品に共通 の コ ン ポ ー ネ ン ト 用 実 行 可 能 フ ァ イ ル が 含 ま れ て い ま す。IAR Embedded Workbench IDE 用の実行可能ファイルもここに含まれています。 パート 1: 製品概要 13 ディレクトリ構成 common\config ディレクトリ common\config サブディレクトリには、IAR Embedded Workbench で開発環境 の設定保存用に使用されるファイルが含まれています。 common\doc ディレクトリ common\doc サブディレクトリには、すべての IAR Embedded Workbench 製品に 共通のコンポーネント ( リンカツール、ライブラリツールなど ) についての最 新情報が記載された readme ファイルが含まれています。これらのファイルの内 『IAR リンカ 容を確認することをお勧めします。また、このディレクトリには、 およびライブラリツールリファレンスガイド』のオンラインバージョンが PDF フォーマットで含まれています。 common\plugins ディレクトリ common\plugins サブディレクトリには、プラグインモジュールとしてロード可 能なコンポーネント用の実行可能ファイルや説明ファイルが含まれています。 common\src ディレクトリ common\src サブディレクトリには、IAR XLINK リンカの出力フォーマット SIMPLE のサンプルリーダなど、すべての IAR Embedded Workbench 製品で共通 のコンポーネントのソースファイルが含まれています。 CPUNAME ディレクトリ cpuname ディレクトリには、 製品固有のサブディレクトリがすべて含まれています。 cpuname\bin ディレクトリ cpuname\bin サブディレクトリには、IARC/C++ コンパイラ、IAR アセンブラ、 IAR C-SPY® ドライバなどの、ターゲット固有のコンポーネント用に実行可能 ファイルが含まれています。 cpuname\config ディレクトリ cpuname\config サブディレクトリには、開発環境やプロジェクトの設定に使 用する以下のようなファイルが含まれています。 ● ● ● ● ● IAR Embedded Workbench® IDE 14 ユーザガイド リンカコマンドファイル (*.xcl) 特殊機能レジスタ記述ファイル (*.sfr) C-SPY デバイス記述ファイル (*.ddf) 構文カラー表示用設定ファイル (*.cfg) アプリケーション/ライブラリプロジェクト用のプロジェクトテンプレート (*.ewp)、ライブラリプロジェクト用のライブラリ設定ファイル インストールファイル cpuname\doc ディレクトリ cpuname\doc サブディレクトリには、ツールの最新更新情報を記載したリリー スノートが含まれています。これらのファイルすべての内容を確認することを お勧めします。また、本ユーザガイド、リファレンスガイドのオンラインハイ パーテキスト版 ( ハイパーテキスト PDF フォーマット )、オンラインヘルプ ファイル (CHM フォーマット ) も含まれています。 cpuname\inc ディレクトリ cpuname\inc サブディレクトリには、標準 C/C++ ライブラリのヘッダファイ ルなどのファイルが含まれています。また、特殊機能レジスタ (SFR) を定義す るヘッダファイルも含まれています。これらのファイルは、コンパイラとアセ ンブラの両方で使用されます。 cpuname\lib ディレクトリ cpuname\lib サブディレクトリには、コンパイラが使用するビルド済みライブ ラリおよび対応するライブラリ設定ファイルが含まれています。 cpuname\plugins ディレクトリ cpuname\plugins サブディレクトリには、プラグインモジュールとしてロー ド可能なコンポーネント用の実行可能ファイルおよび説明ファイルが含まれ ています。 cpuname\src ディレクトリ cpuname\src サブディレクトリには、設定変更可能なライブラリ関数のソース ファイルや、アプリケーションコード例が含まれています。このディレクトリ には、ライブラリのソースコードも含まれています。 cpuname\tutor ディレクトリ cpuname\tutor サブディレクトリには、 本ガイドのチュートリアルで使用され るファイルが含まれています。 ファイルタイプ このバージョンの IAR システムズの開発ツールは、以下のデフォルトのファ イル名拡張子を使用して、IAR 固有のファイルタイプを識別します。 拡張子 ファイルタイプ 出力元 入力先 axx ターゲットアプリケーション XLINK EPROM、C-SPY など asm アセンブラソースコード テキストエディタ Assembler c C ソースコード テキストエディタ コンパイラ 表 2: ファイルタイプ パート 1: 製品概要 15 ファイルタイプ 拡張子 ファイルタイプ 出力元 cfg 構文カラー表示設定 テキストエディタ IAR Embedded Workbench cpp Embedded C++ ソースコード テキストエディタ コンパイラ dxx ターゲットアプリケーション ( デ バッグ情報を含む ) XLINK C-SPY、その他のシン ボリックデバッガ dbg ターゲットアプリケーション ( デ バッグ情報を含む ) XLINK C-SPY、その他のシン ボリックデバッガ dbgt デバッガのデスクトップ設定 C-SPY C-SPY ddf デバイス記述ファイル テキストエディタ C-SPY dep 依存関係情報 IAR Embedded Workbench IAR Embedded Workbench dni デバッガ初期化ファイル C-SPY C-SPY ewd C-SPY のプロジェクト設定 IAR Embedded Workbench IAR Embedded Workbench ewp IAR Embedded Workbench プロジェク IAR Embedded Workbench ト ( 現行バージョン ) IAR Embedded Workbench eww ワークスペースファイル IAR Embedded Workbench IAR Embedded Workbench fmt [ ローカル ] ウィンドウ、[ ウォッチ ]IAR Embedded ウィンドウでの表示フォーマット設定 Workbench IAR Embedded Workbench h C/C++、アセンブラのヘッダソース テキストエディタ コンパイラ、アセンブ ラの #include i プリプロセス済みソース コンパイラ inc アセンブラのヘッダソース テキストエディタ アセンブラの #include lst リスト出力 コンパイラ、アセ – ンブラ mac C-SPY マクロ定義 テキストエディタ C-SPY IAR Embedded Workbench® IDE ユーザガイド コンパイラ map リスト出力 XLINK – pbd ソースブラウザ情報 IAR Embedded Workbench IAR Embedded Workbench pbi ソースブラウザ情報 IAR Embedded Workbench IAR Embedded Workbench pew IAR Embedded Workbench プロジェク IAR Embedded ト ( 旧プロジェクトフォーマット ) Workbench IAR Embedded Workbench 表 2: ファイルタイプ ( 続き ) 16 入力先 インストールファイル 拡張子 ファイルタイプ prj IAR Embedded Workbench プロジェク IAR Embedded ト ( 旧プロジェクトフォーマット ) Workbench 出力元 rxx オブジェクトモジュール 入力先 IAR Embedded Workbench コンパイラ、アセ XLINK、XAR、XLIB ンブラ sxx アセンブラソースコード テキストエディタ IAR アセンブラ sfr 特殊機能レジスタ定義 テキストエディタ C-SPY wsdt ワークスペースのデスクトップ設定 IAR Embedded Workbench xcl 拡張コマンドライン xlb ライブラリアンの拡張バッチコマンド テキストエディタ XLIB IAR Embedded Workbench テキストエディタ アセンブラ、コンパイ ラ、XLINK 表 2: ファイルタイプ ( 続き ) 注 : xx は、使用するプロセッサを識別する 2 桁の数字を示します。 ファイル名の指定時に拡張子を明示的に指定することで、デフォルトのファイ ル名の拡張子をオーバーライドすることができます。 ini、dni という拡張子のファイルは、IAR Embedded Workbench のツールを実 行すると動的に作成されます。これらのファイルには、プロジェクト設定やそ の他の設定が含まれており、プロジェクト用ディレクトリの settings サブ ディレクトリに作成されます。 注 : コマンドラインからツールを実行する場合は、XLINK リスト ( マップファ イル ) のデフォルトの拡張子は lst になります。このファイルにより、コンパ イラが生成したリストファイルが上書きされることがあります。そのため、 XLINK のマップファイルの名前を project1.map などに明示的に設定するこ とをお勧めします。 ドキュメント ここでは、ユーザガイド、リファレンスガイド、オンラインヘルプ、インター ネットで入手できる情報の概要を説明します。 IAR Embedded Workbench IDE の [ ヘルプ ] メニューを使用して、オンラインド キュメントを表示することができます。また、IAR Embedded Workbench IDE で F1 キーを押して表示することもできます。 readme.htm ファイルで、ユーザガイドには記載されていない最新情報を確認す ることをお勧めします。このファイルは、cpuname\doc ディレクトリにあります。 注 : 製品のインストール内容によっては、他のドキュメントも提供される場合 があります。 パート 1: 製品概要 17 ドキュメント ユーザガイド / リファレンスガイド IAR Embedded Workbench に付属するユーザガイド / リファレンスガイドは、以 下のとおりです。 IAR Embedded Workbench® IDE ユーザガイド 本ガイド。 IAR C/C++ コンパイラリファレンスガイド 本ガイドには、IARC/C++ コンパイラについてのリファレンス情報が収録され ています。以下の情報を確認する場合に、本ガイドを参照してください。 ● ● ● ● ● ● ターゲットプロセッサやアプリケーションの要件に合せたコンパイラ設定 方法 ターゲットプロセッサ用の効率的なコードの記述方法 アセンブラ言語のインタフェース、呼出し規約 使用可能なデータ型 ランタイムライブラリ IAR 言語拡張 IAR アセンブラリファレンスガイド 本ガイドでは、アセンブラソースフォーマットの詳細、およびアセンブラの演 算子、ディレクティブ、ニーモニック、診断のリファレンスなどの IAR アセ ンブラについての情報を説明しています。 IAR リンカおよびライブラリツールリファレンスガイド このオンライン PDF ガイドには、IAR リンカおよびライブラリツールについ てのリファレンス情報が収録されています。 ● ● ● IAR XLINK リンカのリファレンスセクションでは、XLINK のオプション、 出 力フォーマット、環境変数、診断について説明しています。 IAR XAR ライブラリビルダのリファレンスセクションでは、XAR のオプ ションや出力について説明しています。 IAR XLIB ライブラリアンのリファレンスセクションでは、XLIB コマンド、 環境変数、診断について説明しています。 オンラインヘルプ コンテキストメニューによるオンラインヘルプでは、IAR Embedded Workbench IDE のメニューやダイアログボックスについての説明が表示されます。また、 特定の関数のキーワードのリファレンス情報が表示されることもあります。関 数のリファレンス情報を確認するには、エディタウィンドウで関数名を選択 し、F1 キーを押します。 IAR Embedded Workbench® IDE 18 ユーザガイド インストールファイル IAR の WEB サイト Web サイト (www.iarsys.co.jp) で、IAR システムズの最新ニュースを提供して います。Web サイトは、Embedded Workbench IDE の [ ヘルプ ] メニューから表 示することができます。以下の情報が提供されています。 ● ● ● ● ● ● ● ● 新製品の発表 現行バージョンの更新情報、ニュース 特別企画 評価用の IAR システムズ製品 テクニカルノートなどの技術サポート アプリケーションノート チップメーカなどの関連サイト 各国の販売代理店の名称、連絡先 パート 1: 製品概要 19 ドキュメント IAR Embedded Workbench® IDE 20 ユーザガイド パート 2: チュートリアル 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● アプリケーションプロジェクトの作成 ● IAR C-SPY® デバッガを使用したデバッグ ● C 言語とアセンブラモジュールの結合 ● C++ の使用 ● 割込みシミュレーション ● ライブラリモジュールの結合 21 22 アプリケーションプロジェ クトの作成 この章では、IAR Embedded Workbench® 統合開発環境 (IDE) について説 明します。チュートリアルでは典型的な開発サイクルのデモを行い、 コンパイラとリンカを使用してデバイス向けの小さなアプリケーショ ンを作成する方法を示します。ここでは、開発サイクル、ワークスペー スの作成、C ソースファイルを含むプロジェクトの設定、アプリケー ションのコンパイルとリンクについて説明します。 開発サイクルについては、引き続き次の章でも説明します。33 ページ の「IAR C-SPY® デバッガを使用したデバッグ」を参照してください。 新しいプロジェクトの設定 IAR Embedded Workbench IDE を使用すると、高度なプロジェクトモデルを設 計できます。まずワークスペースを作成します。ワークスペースには、1 つ以 上のプロジェクトを追加します。アプリケーションプロジェクトとライブラリ プロジェクトのそれぞれについて、すぐに利用できるプロジェクトテンプレー トが用意されています。プロジェクトには、ソースファイルがまとめられたグ ループを階層的に作成できます。また、プロジェクトには、1 つ以上のビルド 構成を定義できます。プロジェクトモデルの設計の詳細については、本書の 「ソースコード管理」を参照してください。 このチュートリアルでは、使用するファイル数が非常に少ない単純なアプリ ケーションを扱っているので、高度なプロジェクトモデルを使用する必要はあ りません。 すべてのプロジェクトファイルを保存するディレクトリを 1 つ作成することをお 勧めします。このチュートリアルでは、そのディレクトリを projects と呼びま す。チュートリアルに必要なファイルはすべて cpuname\tutor ディレクトリに あります。tutor ディレクトリを projects ディレクトリにコピーしてください。 プロジェクトを作成する前に、ワークスペースを作成する必要があります。 [ ワークスペース ] ウィンドウの作成 最初の手順では、チュートリアルアプリケーション用の新しいワークスペース を作成します。IAR Embedded Workbench IDE を初めて起動したときは、常に既 製のワークスペースが開いているので、それをチュートリアルプロジェクト用 に使用できます。そのワークスペースを使用する場合は、この最初の手順は無 視してください。 パート 2: チュートリアル 23 新しいプロジェクトの設定 [ ファイル ]>[ 新規作成 ]>[ ワークスペース ] を選択します。プロジェクトを作 成してワークスペースに追加する準備はこれで完了です。 新しいプロジェクトの作成 1 新しいプロジェクトを作成するには、[ プロジェクト ]>[ 新規プロジェクトの作 成 ] を選択します。[ 新規プロジェクトの作成 ] ダイアログボックスが表示され ます。このダイアログボックスでは、プロジェクトテンプレートを使用して、 新しいプロジェクトを作成できます。 図 1: [ 新規プロジェクトの作成 ] ダイアログボックス 2 [ ツールチェーン ] ドロップダウンリストで、使用するツールチェーンを選択し て [OK] をクリックします。 3 このチュートリアルでは、プロジェクトテンプレート [ 空のプロジェクト ] を選 択します。このプロジェクトは、デフォルトのプロジェクト設定を使用する空 のプロジェクトを単純に作成します。 4 標準の [ 名前を付けて保存 ] ダイアログボックスが表示されるので、プロジェク トファイルを保存する場所、つまり新しく作成した projects ディレクトリを 指定します。[ ファイル名 ] ボックスに「project1」と入力して、[ 保存 ] をク リックし、新しいプロジェクトを作成します。 IAR Embedded Workbench® IDE 24 ユーザガイド アプリケーションプロジェクトの作成 [ ワークスペース ] ウィンドウにプロジェクトが表示されます。 図 2: [ ワークスペース ] ウィンドウ デフォルトで 2 つのビルド構成が作成されます。Debug と Release です。この チュートリアルでは Debug だけを使用します。ビルド構成は、ウィンドウ上端 のドロップダウンメニューから選択します。プロジェクト名にアスタリスクが 付いている場合は、そのプロジェクトが変更され、その変更が保存されていな いことを示します。 プロジェクトファイル ( ファイル拡張子 ewp) が、projects ディレクトリに作成 されます。このファイルはすぐには作成されず、後でワークスペースを保存す るときに作成されます。このファイルには、ビルドオプションなど、プロジェ クト固有の設定に関する情報が保存されます。 5 ファイルをプロジェクトに追加する前に、ワークスペースを保存してください。 [ ファイル ]>[ ワークスペースの保存 ] を選択して、ワークスペースファイルを 保 存 す る 場 所を 指 定 し ます。こ の チ ュ ー トリ ア ル で は、新し く 作 成 した projects ディレクトリに保存します。 [ ファイル名 ] ボックスに「tutorials」と 入力して、[ 保存 ] をクリックし、新しいワークスペースを作成します。 図 3: [New Workspace] ダイアログボックス パート 2: チュートリアル 25 新しいプロジェクトの設定 ワークスペースファイル ( ファイル拡張子 eww) が、projects ディレクトリに 作成されます。このファイルには、ワークスペースに追加するすべてのプロ ジェクトがリストされます。ウィンドウの配置やブレークポイントなど、現在 のセッションに関する情報は、projects\settings ディレクトリに作成され るファイルに保持されます。 プロジェクトへのファイルの追加 このチュートリアルでは、Tutor.c と Utilities.c の 2 つのソースファイルを 使用します。 ● ● Tutor.c アプリケーションは、 C 言語の標準関数だけを使用した単純なプロ グラムです。配列をフィボナッチ数列の最初の 10 個の数値で初期化して、結 果を stdout に出力します。 Utilities.c アプリケーションには、フィボナッチ数列を計算するための ユーティリティルーチンが含まれています。 複数のグループを作成すると、ソースファイルをプロジェクトの必要性に応じ て論理的に分類し、編成することができます。ただし、このプロジェクトでは 2 つのファイルしか使用しないので、グループを作成する必要はありません。 複雑なプロジェクト構造の作成方法の詳細については、「プロジェクト管理」 を参照してください。 1 [ ワークスペース ] ウィンドウで、ソースファイルの追加先としてグループかプ ロジェクトを選択します。この例では、直接プロジェクトに追加します。 2 [プロジェクト]>[ファイルの追加]を選択して、標準の参照ダイアログボックス を開きます。Tutor.c と Utilities.c の 2 つのファイルを探して、ファイル 選択リストで選択します。 [開く]をクリックして、 それらのファイルをproject1 プロジェクトに追加します。 図 4: project1 へのファイルの追加 IAR Embedded Workbench® IDE 26 ユーザガイド アプリケーションプロジェクトの作成 プロジェクトオプションの設定 次に、プロジェクトオプションを設定します。アプリケーションプロジェクトの 場合、ノードのすべてのレベルでオプションを設定できます。まず、このチュー トリアルのプロセッサ構成に合せて一般オプションを設定します。一般オプ ションはビルド構成全体で同一である必要があるので、プロジェクトノードで 設定する必要があります。 1 [ワークスペース]ウィンドウでプロジェクトフォルダアイコン[project1 - Debug] を選択して、[ プロジェクト ]>[ オプション ] を選択します。 [ 一般オプション ] カテゴリの [ ターゲット ] オプションページが表示されま す。このチュートリアルでは、デフォルト設定を使用します。その上で、プロ ジェクトのコンパイラオプションを設定します。 2 [ カテゴリ ] リストで [C/C++ コンパイラ ] を選択して、コンパイラのオプション ページを表示します。 図 5: コンパイラオプションの設定 3 デフォルト設定が使用されていることを確認します。デフォルト設定の他に、[ リ スト ] ページをクリックして、[ リストファイルの出力 ] オプションと [ アセンブ ラニーモニック ] オプションを選択します。[OK] をクリックして、指定したオプ ションを設定します。 注 : [ ビルド ] メッセージウィンドウに表示される情報の量は、カスタマイズ 可能です。このチュートリアルではデフォルト設定は使用しません。したがっ て、[ ビルド ] メッセージウィンドウに実際に表示される内容は、スクリーン ショットと異なる場合があります。 これで、プロジェクトをビルドする準備ができました。 パート 2: チュートリアル 27 アプリケーションのコンパイルとリンク アプリケーションのコンパイルとリンク 次は、アプリケーションをコンパイルして、リンクします。同時に、コンパイ ラリストファイルとリンカマップファイルを作成して、それらを表示します。 ソースファイルのコンパイル 1 Utilities.c をコンパイルするには、[ワークスペース]ウィンドウでそのソー スファイルを選択します。 2 [ プロジェクト ]>[ コンパイル ] を選択します。 別の方法として、ツールバーの [ コンパイル ] ボタンをクリックするか、[ ワー クスペース ] ウィンドウで選択したファイルを右クリックして表示されるコン テキストメニューで [ コンパイル ] コマンドを選択することもできます。 進捗状況は、[ ビルド ] メッセージウィンドウに表示されます。 図 6: コンパイルメッセージ 3 同じ方法で Tutor.c をコンパイルします。 IAR Embedded Workbench IDE によって、プロジェクトディレクトリに新しい ディレクトリが作成されます。現在はビルド構成 Debug を使用しているので、 Debug ディレクトリが作成され、その下に List、Obj、Exe の各ディレクトリが 作成されます。 ● ● ● IAR Embedded Workbench® IDE 28 ユーザガイド List ディレクトリには、リストファイルが保存されます。リストファイル の拡張子は lst です。 Obj ディレクトリには、 コンパイラとアセンブラが生成したオブジェクトファ イルが保存されます。オブジェクトファイルの拡張子は rxx であり、IAR XLINK リンカの入力として使用されます。 Exe ディレクトリには、実行可能ファイルが保存されます。実行可能ファイ IAR C-SPY® デバッガの入力として使用されます。 ルの拡張子は dxx であり、 このディレクトリは、オブジェクトファイルをリンクするまでは空である ことに注意してください。 アプリケーションプロジェクトの作成 [ ワークスペース ] ウィンドウでプラス記号をクリックして、ツリーを展開 します。[ ワークスペース ] ウィンドウには IAR Embedded Workbench によって 作成された出力フォルダのアイコンが表示されています。このフォルダには、 生成された出力ファイルが保存されます。同様に、インクルードされているす べてのヘッダファイルも表示され、ファイル間の依存関係を示しています。 図 7: コンパイル後の [ ワークスペース ] ウィンドウ リストファイルの表示 ここでコンパイラリストファイルを開いて、これから説明するように最適化レ ベルを変更して生成されるコードサイズが受ける影響を調べるにあたって、そ の内容がどのように自動更新されるかに注目します。 1 [ワークスペース]ウィンドウでリストファイルUtilities.lst をダブルクリック して開きます。リストファイルを開きます。以下に示す情報が記述されています。 ● ● ● ヘッダには、製品バージョン、ファイル作成日時、使用されたコンパイラ オプションのコマンドラインバージョンが記述されています。 リストファイルの本体には、文ごとに生成されたアセンブラコードとバイ ナリコードが記述されています。さらに、さまざまなセグメントへの変数 の割当ても示されます。 リストファイルのフッタには、スタック、コード、データの必要メモリ量 の他、エラーメッセージやワーニングメッセージが生成された場合はそれ らのメッセージが記述されます。 ファイルの最後に生成されたコードの量が記述されているので注意してくだ さい。ファイルは開いたままにしておきます。 パート 2: チュートリアル 29 アプリケーションのコンパイルとリンク 2 [ ツール ]>[ オプション ] を選択して [ IDE オプション ] ダイアログボックスを開 き、[ エディタ ] ページタブをクリックします。[ 更新ファイルをスキャン ] オ プションを選択します。このオプションは、リストファイルなど、エディタ ウィンドウで開かれているファイルの自動更新を有効にします。[OK] ボタン をクリックします。 図 8: [ 更新ファイルをスキャン ] オプションの設定 3 [ ワークスペース ] ウィンドウで Utilities.c を選択します。[ ワークスペース ] ウィンドウで選択したファイルを右クリックして、[C/C++ コンパイラ ] オプ ションダイアログボックスを開きます。[ 最適化 ] タブをクリックして、[ 継承 した設定をオーバライド ] オプションを選択します。[ 最適化 ] ドロップダウ ンリストで [High] を選択します。[OK] をクリックします。 [ ワークスペース ] ウィンドウで、ファイルノードで優先されるオプションが 示されていることに注意してください。 4 Utilities.c ファイルをコンパイルします。ここで、次の 2 点に注目します。最 初に、[ 更新ファイルをスキャン ] オプションが選択されているために、開か れているリストファイルが自動更新されていることに注意してください。次に リストファイルのフッタを参照して、最適化レベルを高めたことによるコード サイズの変化に注意してください。 5 このチュートリアルでは、最適化レベル[None]を使用するので、アプリケーショ ンをリンクする前にデフォルトの最適化レベルに戻します。[ ワークスペース ] ウィンドウで選択したファイルを右クリックして、 [C/C++ コンパイラ]オプショ ンダイアログボックスを開きます。[ 継承した設定をオーバライド ] オプショ ンを選択解除して、[OK] をクリックします。Utilities.c ファイルを再コン パイルします。 IAR Embedded Workbench® IDE 30 ユーザガイド アプリケーションプロジェクトの作成 アプリケーションのリンク ここでは、IAR XLINK リンカで使用するオプションを設定します。 1 [ワークスペース]ウィンドウでプロジェクトフォルダアイコン[project1 - Debug] を選択して、[ プロジェクト ]>[ オプション ] を選択します。[ カテゴリ ] リスト で [ リンカ ] を選択して、XLINK のオプションページを表示します。 このチュートリアルではデフォルトの出荷時設定を使用します。ただし、出力 形式とリンカコマンドファイルの選択には注意してください。 出力形式 出力形式は、目的に合せて選択することが重要です。デバッガにロードする場 合は、デバッグ情報付きで出力する必要があります。このチュートリアルで は、C-SPY デバッガに適したデフォルト出力オプション、すなわち [C-SPY のデバッグ情報 ]、[ ランタイム管理モジュール付き ]、[I/O エミュレーション モジュール付き ] の各オプションを使用します。これによって、stdin と stdout を C-SPY デバッガの [ ターミナル I/O] ウィンドウに接続する低レベルルーチ ンがリンクされます。これらのオプションは、[ 出力 ] ページにあります。 実際のアプリケーションプロジェクトでは、別の方法として、出力を PROM プ ログラマにロードすることができます。この場合は、Intel-hex、Motorola S-records など、デバッグ情報を含まない出力形式を使用する必要があります。 リンカコマンドファイル リンカコマンドファイルでは、セグメント制御用の XLINK コマンドラインオ プションを使用して、セグメントを配置します。リンカコマンドファイルとセ 『IAR C/C++ グメントの配置に慣れておくことは重要です。詳細については、 コンパイラリファレンスガイド』を参照してください。 製品に付属するリンカコマンドファイルのテンプレートは、シミュレータで使 用する場合と同様に使用できますが、ターゲットシステムで使用する場合は、 実際のハードウェアメモリレイアウトに合せた調整が必要になる場合がありま config ディレクトリに置かれています。 す。 付属するリンカコマンドファイルは、 このチュートリアルでは、デフォルトのリンカコマンドファイルを使用します。 このファイルは、[ 設定 ] ページで参照できます。 リンカコマンドファイルを開く場合は、IAR Embedded Workbench Editor などの 適切なテキストエディタを使用するか、ファイルの内容を印刷して、定義され ている内容が要件に適合していることを確認します。 リンカマップファイル デフォルトでは、マップファイルは生成されません。リンカマップファイルを 生成するには、[ リスト ] タブをクリックして、[ リンカリストの生成 ]、[ セグ メントマップ ]、[ モジュールマップ ] の各オプションを選択します。 パート 2: チュートリアル 31 アプリケーションのコンパイルとリンク 2 [OK] をクリックして、XLINK オプションを保存します。 次に、オブジェクトファイルをリンクして、デバッグ可能なコードを生成します。 3 [ プロジェクト ]>[ メイク ] を選択します。進捗状況は、[ ビルド ] メッセージウィ ンドウに表示されます。リンクした結果、デバッグ情報付きのコードファイル project1.dxx とマップファイル project1.map が生成されます。 マップファイルの表示 ファイル project1.map を開いて、セグメント定義とコードがどのようにメモ リ内に配置されたかを確認します。次にマップファイルの重要なポイントを示 します。 ● ● ● ● ● ヘッダにはリンク時に使用されるオプションが記述される CROSS REFERENCE セクションにはプログラムエントリのアドレスが記述さ れる RUNTIME MODEL セクションには使用されるランタイムモデル属性が記述さ れる MODULE MAP にはリンクされているファイルが記述される(各ファイルについ て、セグメントおよび各セグメントで宣言されているグローバルシンボル など、アプリケーションの一部としてロードされるモジュールの情報が表示 される ) SEGMENTS IN ADDRESS ORDER セクションにはアプリケーションを構成するす べてのセグメントがリストされる これで、project1.dxx アプリケーションを IAR C-SPY デバッガで実行する準 備ができました。 IAR Embedded Workbench® IDE 32 ユーザガイド IAR C-SPY® デバッガを使 用したデバッグ この章では、前章で始めた開発サイクルを引き続き実行し、IAR C-SPY デバッガの基本機能について説明します。 インストールされている IAR 製品パッケージによって、 IAR C-SPY デバッ ガが含まれている場合とそうでない場合があります。チュートリアル では、C-SPY シミュレータの使用を前提としています。 アプリケーションのデバッグ 前章で作成した、project1.dxx アプリケーションを、IAR C-SPY デバッガで 実行します。デバッガには、変数のモニタ、ブレークポイントの設定、逆アセ ンブリモードでのコード表示、レジスタとメモリのモニタ、プログラム出力の [ ターミナル I/O] ウィンドウへの出力などの機能があります。 デバッガの起動 IAR C-SPY デバッガを起動する前に、いくつかの C-SPY オプションを設定す る必要があります。 1 [ プロジェクト ]>[ オプション ] を選択して、[ デバッガ ] カテゴリを選択します。 [ 設定 ] ページで、[ ドライバ ] ドロップダウンリストから [ シミュレータ ] が 選択されていることと、[Run to main] が選択されていることを確認します。 [OK] をクリックします。 2 [プロジェクト]>[デバッグ]を選択します。別の方法として、ツールバーの[デバッ ガ ] ボタンをクリックすることもできます。IAR C-SPY デバッガが起動され、 project1.dxx アプリケーションがロードされます。Embedded Workbench ですで に開かれているウィンドウの他に、C-SPY 固有のウィンドウセットが開きます。 ウィンドウの編成 IAR Embedded Workbench IDE では、複数のウィンドウを特定の位置にドッキン グして、タブグループとして編成できます。また、ウィンドウをフローティン グ化することができます。フローティングウィンドウは、常に他のウィンドウ よりも前に表示されます。フローティングウィンドウのサイズや位置を変更し ても、現在開かれている他のウィンドウは影響を受けません。 Embedded Workbench メインウィンドウの下端にあるステータスバーには、 ウィ ンドウのサイズを変更するためのヘルプが用意されています。詳細について は、71 ページの「画面上のウィンドウの編成」を参照してください。 パート 2: チュートリアル 33 アプリケーションのデバッグ 画面上に、アクティブなビルド構成 [tutorials – project1] が表示された [ ワークス ペース ] ウィンドウ、ソースファイル Tutor.c と Utilities.c が表示された エディタウィンドウ、[ デバッグログ ] ウィンドウが表示されていることを確 認します。 図 9: C-SPY デバッガメインウィンドウ ソース文の検証 1 ソース文を検証するには、[ワークスペース]ウィンドウでファイル Tutor.c を ダブルクリックします。 2 エディタウィンドウにファイル Tutor.c が表示された状態で、まず [ デバッグ ]> [ ステップオーバ ] コマンドを使用して、ステップオーバします。 別の方法として、ツールバーの [ ステップオーバ ] ボタンをクリックすること もできます。 IAR Embedded Workbench® IDE 34 ユーザガイド IAR C-SPY® デバッガを使用したデバッグ 現在の位置は、init_fib 関数の呼出し位置のはずです。 図 10: C-SPY のステップイン 3 [デバッグ]>[ステップイン]を選択して、init_fib 関数にステップインします。 別の方法として、ツールバーの [ ステップイン ] ボタンをクリックすること もできます。 ソースレベルで [ ステップオーバ ] コマンドと [ ステップイン ] コマンドを使 用すると、アプリケーションを一度に 1 つずつ文や命令を実行できます。[ ス テップイン ] は、関数やサブルーチン呼出しの内部でもステップ実行を続けま す。一方、[ ステップオーバ ] は、1 ステップで 1 つの関数呼出しを実行しま す。詳細については、112 ページの「ステップ」を参照してください。 [ ステップイン ] を実行すると、アクティブウィンドウが Utilities.c に切り 替ります。これは、init_fib 関数がこのファイルに存在するためです。 パート 2: チュートリアル 35 アプリケーションのデバッグ 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 36 ユーザガイド IAR C-SPY® デバッガを使用したデバッグ 注 : 最適化レベルとして [None] が使用されている場合、すべての非静的変数は そのスコープが継続している間は有効であり、したがって、そのような変数は 完全にデバッグ可能です。それよりも高いレベルの最適化が使用されている場 合は、変数は完全にデバッグできない可能性があります。 [ 自動 ] ウィンドウの使用 1 [ 表示 ]>[ 自動 ] を選択して、[ 自動 ] ウィンドウを開きます。 [ 自動 ] ウィンドウには、最後に変更された式の現在の値が表示されます。 図 12: [ 自動 ] ウィンドウでの変数の検証 2 ステップの実行を続行して、値が変化する様子をモニタします。 ウォッチポイントの設定 次に、[ ウォッチ ] ウィンドウを使用して変数を検証します。 3 [ 表示 ]>[ ウォッチ ] を選択して、[ ウォッチ ] ウィンドウを開きます。このウィン ドウは、デフォルトで現在開いている [ 自動 ] ウィンドウとともにグループ化 されて、タブグループを構成していることに注目してください。 4 以下の手順に従って、変数 i にウォッチポイントを設定します。[ウォッチ]ウィ ンドウで点線の長方形をクリックします。表示される入力フィールドに、「i」 と入力して、Enter キーを押します。 エディタウィンドウから [ ウォッチ ] ウィンドウに変数をドラッグしても、 ウォッチポイントを設定できます。 5 init_fib 関数の root 配列を選択して、[ ウォッチ] ウィンドウにドラッグします。 パート 2: チュートリアル 37 アプリケーションのデバッグ [ ウォッチ ] ウィンドウには、i と root の現在の値が表示されます。root 配列 を展開すると、さらに詳細にモニタできます。 図 13: [ ウォッチ ] ウィンドウでの変数のモニタ 6 さらに何回かステップを実行して、iとrootの値が変化する様子をモニタします。 7 [ ウォッチ ] ウィンドウから変数を削除するには、削除する変数を選択して、[ 削 除 ] をクリックします。 ブレークポイントの設定とモニタ IAR C-SPY デバッガには、多くの機能を備えた強力なブレークポイントシステ ムが用意されています。複数のブレークポイントの詳細については、125 ペー ジの「ブレークポイントシステム」を参照してください。 最も使いやすいのは、対話的に設定する方法です。文の内部か近くに挿入ポイ ントを配置してから [ ブレークポイントの切り替え ] コマンドを選択し、ブレー クポイントを対話的に設定します。 1 以下の手順に従って、文 get_fib(i) にブレークポイントを設定します。最初に、 エディタウィンドウで [Utilities.c] タブをクリックし、挿入ポイントを配 置する文をクリックします。次に、[ 編集 ]>[ ブレークポイントの切り替え ] を 選択します。 別の方法として、ツールバーの [ ブレークポイントの切り替え ] ボタンをクリッ クすることもできます。 IAR Embedded Workbench® IDE 38 ユーザガイド IAR C-SPY® デバッガを使用したデバッグ ブレークポイントが、この文に設定されます。文が強調表示され、余白に赤色 の点でブレークポイント位置が示されます。 図 14: ブレークポイントの設定 定義済みのブレークポイントを全て表示するには [ 表示 ]>[ ブレークポイント ] を選択して、[ ブレークポイント ] ウィンドウを開きます。[ デバッグログ ] ウィ ンドウに、ブレークポイントの実行に関する情報が表示されます。 ブレークポイントまでの実行 2 アプリケーションをブレークポイントに到達するまで実行するには、[ デ バッグ ]>[ 実行 ] を選択します。 別の方法として、ツールバーの [ 実行 ] ボタンをクリックすることもできます。 設定されたブレークポイントまでアプリケーションが実行されます。[ ウォッ チ ] ウィンドウには root 式の値が表示され、[ デバッグログ ] ウィンドウには ブレークポイントに関する情報が表示されます。 3 ブレークポイントを選択して、[編集]>[ブレークポイントの切り替え]をクリッ クすると、ブレークポイントが削除されます。 パート 2: チュートリアル 39 アプリケーションのデバッグ レジスタのモニタ [ レジスタ ] ウィンドウを使用すると、プロセッサレジスタの内容をモニタ、変 更できます。 1 [ 表示 ]>[ レジスタ ] を選択して、[ レジスタ ] ウィンドウを開きます。 図 15: [ レジスタ ] ウィンドウ 2 [ ステップオーバ ] を選択して次の命令を実行し、[ レジスタ ] ウィンドウで値が 変化する様子をモニタします。 3 [ レジスタ ] ウィンドウを閉じます。 メモリのモニタ [ メモリ ] ウィンドウを使用すると、選択したメモリエリアをモニタできます。 以下の例では、変数 root に対応するメモリがモニタされます。 1 [ 表示 ]>[ メモリ ] を選択して、[ メモリ ] ウィンドウを開きます。 2 [Utilities.c]ウィンドウをアクティブにして、[root] を選択します。それをCソー スウィンドウから [ メモリ ] ウィンドウにドラッグします。 [ メモリ ] ウィンドウで root に対応するメモリの内容が選択されます。 [ メモリ ] ウィンドウで値を編集すると、メモリの内容を変更できます。編集 するメモリの内容に挿入ポイントを配置して、値を入力します。 [ メモリ ] ウィンドウを閉じます。 IAR Embedded Workbench® IDE 40 ユーザガイド IAR C-SPY® デバッガを使用したデバッグ ターミナル I/O の表示 場合によっては、stdin や stdout を使用するアプリケーションの構文を、ハー ドウェアを使用しないでデバッグする必要があります。C-SPY では、[ ターミ stdin と stdout をシミュレーションできます。 ナルI/O]ウィンドウを使用して、 注 : [ ターミナル I/O] ウィンドウは、出力オプション [I/O エミュレーションモ ジュール付き ] を使用してプロジェクトをリンクした場合にのみ、C-SPY で使 用できます。これは、stdin と stdout をデバッガの [ ターミナル I/O] ウィン ドウに接続する低レベルルーチンがリンクされることを意味します。31 ペー ジの「アプリケーションのリンク」を参照してください。 1 [ 表示 ]>[ ターミナル I/O] を選択すると、I/O 操作からの出力が表示されます。 図 16: I/O 操作からの出力 ウィンドウに表示される内容は、アプリケーションをどこまで実行したかに よって異なります。 プログラムの最後まで実行 1 アプリケーションの実行を完了するには、[ デバッグ ]>[ 実行 ] を選択します。 別の方法として、ツールバーの [ 実行 ] ボタンをクリックすることもできます。 パート 2: チュートリアル 41 アプリケーションのデバッグ C-SPY は、それ以上ブレークポイントを検出しなければ、そのままアプリケー ションの最後まで実行して、 [program exit reached] メッセージを [ デバッグ ログ ] ウィンドウに出力します。 図 17: C-SPY でプログラムの最後まで実行 これで、アプリケーションからのすべての出力が [ ターミナル I/O] ウィンドウ に表示されました。 既存のアプリケーションをもう一度起動する場合は、[ デバッグ ]>[ リセット ] を選択するか、ツールバーの [ リセット ] ボタンをクリックします。 2 C-SPY を終了するには、[ デバッグ ]>[ デバッグの中止 ] を選択します。別の方法 として、ツールバーの [ デバッグの 中止 ] ボタンをクリックすることもできま す。Embedded Workbench ワークスペースが表示されます。 C-SPY には、他にも多くのデバッグ機能があります。マクロや割込みシミュ レーションなど、その一部については、本書の以降のチュートリアルの章で説 明します。 C-SPY の詳細な使用方法については、 「パート 4: デバッグ」を参照してくださ 「パート 6: リファレンス情 い。C-SPY の機能のリファレンス情報については、 報」とオンラインヘルプシステムを参照してください。 IAR Embedded Workbench® IDE 42 ユーザガイド C 言語とアセンブラ モジュールの結合 一部のプロジェクトでは、ソースコードの一部をアセンブラ言語で記 述する必要があります。この章では、まず、コンパイラを使用して呼 出し規約をチェックする方法について説明します。呼出し規約は、C/C++ モジュールからアセンブラモジュールを呼び出したり、その逆を行う 場合に使用するので、その使用方法に慣れておく必要があります。次 に、C 言語で記述されたソースモジュールとアセンブラモジュールを 結合する方法について説明します。この結合は非常に簡単に実行でき るだけでなく、C++ をサポートする製品バージョンであれば、C++ で 記述されたソースモジュールを含むプロジェクトにも適用できます。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 呼出し規約のチェック C ルーチンから呼び出されるアセンブラルーチンを記述する場合、コンパイラが使 用する呼出し規約に注意する必要があります。 C 言語でスケルトンコードを作成し、 そこからコンパイラでアセンブラ出力ファイルを生成することによって、生成され たアセンブラ出力ファイルを検証し、呼出し規約の詳細を知ることができます。 この例では、ファイル Utilities.c を使用して、コンパイラでアセンブラ出 力ファイルを生成します。 1 前のチュートリアルで使用したワークスペース tutorials に新しいプロジェ クトを作成して、project2 と名前を付けます。 2 Tutor.c と Utilities.c の 2 つのファイルをプロジェクトに追加します。 ワークスペースの概要を表示するには、[ ワークスペース ] ウィンドウの下端 にある [ 概要 ] タブをクリックします。新しく作成したプロジェクトだけを表 示するには、[project2] タブをクリックします。ここでは [project2] ビューを表 示します。 3 オプションを設定するには、[プロジェクト]>[オプション]を選択して、[一般オプ ション ] カテゴリを選択します。このチュートリアルでは、プロジェクトレベル でデフォルトの出荷時設定を使用する必要があります。[OK] をクリックします。 4 ファイルレベルノードでオプションを設定するには、[ ワークスペース ] ウィン ドウで、ファイル Utilities.c を選択します。 パート 2: チュートリアル 43 プロジェクトへのアセンブラモジュールの追加 [ プロジェクト ]>[ オプション ] を選択します。選択できるカテゴリは、[C/C++ コンパイラ ] カテゴリと [ カスタムビルド ] カテゴリだけであることに注意し てください。 5 [C/C++ コンパイラ ] カテゴリで、[ 継承した設定をオーバライド ] を選択して、 以下の設定を確認します。 ページ オプション 最適化 サイズ : None ( デバッグサポートに最適 )* リスト アセンブラファイルの出力 ソースのインクルード 呼出しフレーム情報のインクルード ( 選択解除 )† 表 3: project2 のコンパイラオプション * この例では、コードをコンパイルするときに最適化レベルを低レベルに設定して、ローカル変数と グローバル変数へのアクセスを表示する必要があります。それより高い最適化レベルを使用すると、 必要なローカル変数への参照が削除される可能性があります。最適化レベルによって実際の関数宣言 が変更されることはありません。 † 使用しているバージョンによっては、 [Include compiler runtime information] オプションを選択す る必要があります。 6 [OK] をクリックして、[ ワークスペース ] ウィンドウに戻ります。 7 ファイル Utilities.c をコンパイルします。サブディレクトリ projects\debug\list に、出力ファイル Utilities.sxx が作成されます。 8 呼出し規約を調べて、アセンブラ言語で C/C++ コードがどのように記述される かを見るには、ファイル Utilities.sxx を開きます。 このファイルを見ることで、パラメータをどこでどのように受け渡すか、関数 が呼び出されたプログラム位置にどのようにして戻るか、結果値をどのように 戻すかを知ることができます。また、アセンブラレベルのルーチンではどのレ ジスタを保護する必要があるかがわかります。 アプリケーション関数の適切なインタフェースを入手するには、インタフェー スを必要とする関数ごとにスケルトンコードを作成する必要があります。 『IAR C/C++ コンパイラ コンパイラが使用する呼出し規約の詳細については、 リファレンスガイド』を参照してください。 プロジェクトへのアセンブラモジュールの追加 このチュートリアルでは、アセンブラモジュールと C モジュールを両方とも含 むプロジェクトを簡単に作成できる手順を示します。また、プロジェクトをコ ンパイルし、アセンブラ出力リストファイルを表示します。 IAR Embedded Workbench® IDE 44 ユーザガイド C 言語とアセンブラモジュールの結合 プロジェクトの設定 1 project2 を修正するには、まずファイルUtilities.c を削除して(このファイル を選択し、右クリックした後、表示されるコンテキストメニューから [ 削除 ] を 選択して削除 )、ファイル Utilities.sxx を追加します。 注 : [ ファイルの追加 ] ダイアログボックスでアセンブラファイルを表示する には、[ プロジェクト ]>[ ファイルの追加 ] を選択して、[ ファイルの種類 ] ド ロップダウンリストで [Assembler Files] を選択します。 2 [ワークスペース]ウィンドウでプロジェクトレベルノードを選択して、[プロ ジェクト ]>[ オプション ] を選択します。[ 一般オプション ]、[C/C++ コンパ イラ ]、[ リンカ ] の各カテゴリではデフォルト設定を使用します。[ アセンブ ラ ] カテゴリで [ リスト ] タブをクリックして、[ リストファイルの出力 ] オプ ションを選択します。 [OK] をクリックします。 3 [ワークスペース]ウィンドウでファイル Utilities.sxx を選択して[プロジェク ト ]>[ コンパイル ] を選択し、アセンブルします。 ソースファイルが正常にアセンブルされた場合は、リンク可能オブジェクト コードを含むファイル Utilities.rxx が作成されます。 アセンブラリストファイルの表示 4 [ワークスペース]ウィンドウで、OutputフォルダにあるファイルUtilities.lst を開きます。 ファイルのフッタには、生成されたエラーとワーニングの要約が記述されてい ます。 リストファイル形式の詳細については、 『IAR アセンブラリファレンスガイド』 を参照してください。 5 [ プロジェクト ]>[ メイク ] を選択して、project2 を再リンクします。 6 C-SPY を起動して、project2.dxx アプリケーションを実行します。前のチュー トリアルと同じように動作することを確認します。 操作が終わったら、デバッガを終了します。 パート 2: チュートリアル 45 プロジェクトへのアセンブラモジュールの追加 IAR Embedded Workbench® IDE 46 ユーザガイド C++ の使用 この章では、C++ を使用して C++ クラスを作成します。次に、作成した クラスを使用して 2 つの独立オブジェクトを作成し、アプリケーション をビルドしてデバッグします。その他に、条件付きブレークポイントの 設定例を示します。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 インストールされている IAR 製品パッケージによって、C++ がサポー トされている場合とそうでない場合があります。チュートリアルでは、 C++ がサポートされていることを前提としています。 C++ アプリケーションの作成 このチュートリアルでは、IAR Embedded Workbench C++ の機能の使用方法に ついて説明します。チュートリアルは、以下の 2 つのファイルで構成されます。 ● Fibonacci.cpp は、 フィボナッチ数列を抽出できるクラス fibonacci を作成 します。 ● CPPtutor.cpp は、 fibonacci クラスから fib1 と fib2 の 2 つのクラスを作成 します。さらに fibonacci クラスを使用して、2 組のフィボナッチ数列を 抽出します。 2 つのオブジェクトが互いに独立であることを示すために、数列を異なる速度 で抽出します。すなわち、ループ内で、fib1 からは毎回数値を取り出します が、fib2 からは 1 回おきに数値を取り出します。 オブジェクト fib1 はデフォルトコンストラクタを使用して作成しますが、 fib2 は引数として整数を受け取るコンストラクタを使用するように定義します。 C++ アプリケーションのコンパイルとリンク 1 前の章で使用したワークスペース tutorials に新しいプロジェクトを作成し て、project3 と名前を付けます。 2 Fibonacci.cpp と CPPtutor.cpp の 2 つのファイルを project3 に追加します。 パート 2: チュートリアル 47 C++ アプリケーションの作成 3 [プロジェクト]>[オプション]を選択して、デフォルトの出荷時設定が使用され ていることを確認します。 注 : このアプリケーションでは、デフォルトのスタックサイズが小さすぎるこ とがあります。必要な設定の詳細については、CPPtutor.cpp ファイルを参照 してください。 デフォルト設定の他に、C++ プログラミング言語に切り替える必要がありま す。C++ プログラミング言語は IAR DLIB ライブラリによってサポートされて います。DLIB ライブラリを使用するには、[ 一般オプション ] カテゴリを選択 して、[ ライブラリ設定 ] タブをクリックします。[ ライブラリ ] ドロップダウ ンリストで [Normal DLIB] を選択します。 C++ プログラミング言語に切り替えるには、[C/C++ コンパイラ ] カテゴリを 選択して、[ 言語 ] タブをクリックします。[Embedded C++] を選択します。 IAR DLIB ライブラリと C++ サポートの詳細については、 『IAR C/C++ コンパ イラリファレンスガイド』を参照してください。 4 [ プロジェクト ]>[ メイク ] を選択して、アプリケーションをコンパイルして、リ ンクします。 別の方法として、ツールバーの [ メイク ] ボタンをクリックすることもできま す。[メイク]コマンドは、変更されたファイルをコンパイルして、リンクします。 5 [ プロジェクト ]>[ デバッグ ] を選択して、IAR C-SPY® デバッガを起動します。 ブレークポイントの設定と実行 1 [CPPtutor.cpp] ウィンドウがまだ開かれていない場合は、それを開きます。 IAR Embedded Workbench® IDE 48 ユーザガイド 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); 7 関数呼出しを数レベル下までバックトレースし、各関数呼出しのパラメータの 値を調べてみると面白いかもしれません。ブレークポイントに条件を加える と、その条件が真になるまでブレークはトリガされないので、[ 呼出しスタッ ク ] ウィンドウで各関数呼出しを参照することができます。 パート 2: チュートリアル 49 C++ アプリケーションの作成 [ 表示 ]>[ ブレークポイント ] を選択して、[ ブレークポイント ] ウィンドウを開き ます。[ ブレークポイント ] ウィンドウでブレークポイントを選択して、右クリッ クしてコンテキストメニューを開き、[ 編集 ] を選択します。[ ブレークポイント の編集 ] ダイアログボックスが開きます。[ スキップ数 ] テキストボックスに「4」 と入力して、[OK] をクリックします。 ダイアログボックスを閉じます。 関数呼出しの参照 8 [ デバッグ ]>[ 実行 ] を選択して、ブレークポイント条件が成立するまでアプリ ケーションを実行します。 9 C-SPY がブレークポイントで停止したら、[ 表示 ]>[ 呼出しスタック ] を選択し て、[ 呼出しスタック ] ウィンドウを開きます。 図 19: 関数呼出しの検証 呼出しスタックに関数 nth のインスタンスが 5 つ表示されています。[ 呼出し スタック ] ウィンドウでは関数パラメータの値を参照できるので、各関数イン スタンスにおける n の値を知ることできます。 [ レジスタ ] ウィンドウを開き、関数インスタンスをダブルクリックして関数 呼出しをトレースすると、それによってウィンドウの内容が更新される様子を 参照できます。 フィボナッチ数列の出力 1 [ 表示 ] メニューを使用して、[ ターミナル I/O] ウィンドウを開きます。 IAR Embedded Workbench® IDE 50 ユーザガイド C++ の使用 2 ブレークポイントを削除して、アプリケーションを最後まで実行します。出力 されるフィボナッチ数列を確認します。 図 20: フィボナッチ数列の出力 パート 2: チュートリアル 51 C++ アプリケーションの作成 IAR Embedded Workbench® IDE 52 ユーザガイド 割込みシミュレーション このチュートリアルでは、シリアルポートの割込みハンドラをプロ ジェクトに追加します。フィボナッチ数列をオンチップ通信周辺デバイ スからリードします (UART)。 このチュートリアルでは、IAR C/C++ コンパイラの割込みキーワードと #pragma vector ディレクティブの使用方法を示します。また、割込み、 ブレークポイント、マクロをサポートする機能を使用して、割込みシ ミュレーションをする方法を示します。この例では、シミュレーショ ンの細かい説明は省かれていることに注意してください。ここでの目 的は、C-SPY® のマクロ、ブレークポイント、割込みシステムを使用し て、ハードウェアをシミュレーションできる状況を示すことです。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 割込みシミュレーションを実行するには、IAR C-SPY シミュレータを使 用する必要があることに注意してください。 割込みハンドラの追加 このセクションでは、割込みを簡単に記述する方法を示します。まずこのプロ ジェクトで使用するアプリケーションについて簡単に説明した後で、プロジェ クトの設定方法について説明します。 アプリケーションの概要 割込みハンドラは、シリアル通信ポート受信レジスタ (UART) の RBUF から値 をリードします。そして、その値を出力します。メインプログラムでは割込み を有効にして、割込みを待機しながら、フォアグラウンドプロセスでピリオド (.) の出力を開始します。 注 : このチュートリアルでは、シリアル通信ポートの UART と受信バッファレ ジスタの RBUF はシンボル名です。このチュートリアルに従って C-SPY シミュ レータで割込みシミュレーションするには、ターゲットシステムに適した名前 を使用する必要があります。cpuname\tutor ディレクトリにある Interrupt.c ファ イルを参照してください。 パート 2: チュートリアル 53 シミュレーション環境の設定 割込みハンドラの記述 以下の行は、このチュートリアルで使用されている割込みハンドラの定義です ( ソースコード全体については、cpuname\tutor ディレクトリにあるファイル Interrupt.c を参照 )。 /* 割込みハンドラを定義します */ #pragma vector=UARTR_VECTOR __interrupt void uartReceiveHandler( void ) #pragma vector ディレクティブは、 割込みベクタアドレス ( ここでは UART 受 信割込みベクタアドレス ) を指定します。キーワード __interrupt は、割込み 関数に必要な呼出し規約を使用するようにコンパイラに指示します。 注 : このチュートリアルではベクタの名前はシンボルです。このチュートリア ルに従って C-SPY シミュレータで割込みをシミュレーションするには、ター ゲットシステムに適した名前を使用する必要があります。cpuname\tutor ディ レクトリにある Interrupt.c ファイルを参照してください。 このチュートリアルで使用されている拡張キーワードとpragmaディレクティブ 『IAR C/C++ コンパイラリファレンスガイド』を参照して の詳細については、 ください。 プロジェクトの設定 1 前のチュートリアルで使用したワークスペース tutorials に新しいプロジェク トを作成して、project4 と名前を付けます。 2 Utilities.c と Interrupt.c の 2 つのファイルをプロジェクトに追加します。 3 [ ワークスペース ] ウィンドウでプロジェクトレベルノードを選択して、[ プ ロジェクト ]>[ オプション ] を選択します。[ 一般オプション ]、[C/C++ コン パイラ ]、[ リンカ ] の各カテゴリでデフォルト出荷時設定が使用されている ことを確認します。 注 : ファイル Interrupt.c が、必要に応じて固有の設定を指定する場合があり ます。 次に、シミュレーション環境を設定します。 シミュレーション環境の設定 C-SPY の割込みシステムは、サイクルカウンタに基づいて動作します。C-SPY が割込みを生成するまでの経過サイクル数を指定できます。 UART への入力をシミュレーションするために、値をファイル InputData.txt からリードします。このファイルには、フィボナッチ数列が格納されていま す。UART 受信レジスタ RBUF にイミディエイト読込みブレークポイントを設 定して、 ユーザ定義マクロ関数を接続します ( この例では Access マクロ関数 )。 このマクロは、テキストファイルからフィボナッチ数列をリードします。 IAR Embedded Workbench® IDE 54 ユーザガイド 割込みシミュレーション 割込みが生成され、割込みルーチンが RBUF をリードし、ブレークポイントがト リガされるたびに Access マクロ関数が実行されて、フィボナッチ数列が UART 受信レジスタにライトされます。 プロセッサが RBUF レジスタを読み込む前に、イミディエイト読込みブレーク ポイントによってブレークがトリガされるので、マクロがレジスタに格納した 値がすぐに命令によって読み込まれます。 このセクションでは、シリアルポートの割込みシミュレーションを行うためのシ ミュレータ設定に関連して実行する手順を示します。以下の手順があります。 ● ● ● ● ● ● C-SPY セットアップファイルの定義 ( ファイル InputData.txt を開いて Access マクロ関数を定義 ) C-SPY オプションの指定 プロジェクトのビルド シミュレータの起動 割込み要求の指定 ブレークポイントの設定と Access マクロ関数の関連付け 注 : システムタイマ割込みシミュレーションの簡単な例については、180 ページ の「シンプルな割込みシミュレーション」を参照してください。 C-SPY セットアップマクロファイルの定義 C-SPY では、C-SPY 起動シーケンス中に登録されるセットアップマクロを定義 できます。このチュートリアルでは、cpuname\tutor ディレクトリにある C-SPY マクロファイル SetupSimple.mac を使用します。このファイルの構造は以下の とおりです。 最初に、セットアップマクロ関数 execUserSetup が定義されています。このマ クロ関数は、C-SPY の設定中に自動的に実行されます。そのため、この関数を 使用して、シミュレーション環境を自動設定します。このマクロが実行された ことを示すメッセージが [ ログ ] ウィンドウに出力されます。 execUserSetup() { __message "execUserSetup() called\n"; 次に、ファイル InputData.txt を開きます。このファイルには、UART に格納 するフィボナッチ数列が記述されています。 _fileHandle = __openFile( "$TOOLKIT_DIR$\\tutor\\InputData.txt", "r" ); その次に、マクロ関数 Access が定義されています。このマクロ関数は、ファイ ル InputData.txt からフィボナッチ数列を読み込んで、受信レジスタアドレ スに代入します。 Access() { __message "Access() called\n"; パート 2: チュートリアル 55 シミュレーション環境の設定 __var _fibValue; if( 0 == __readFile( _fileHandle, &_fibValue ) ) { RBUF = _fibValue; } } Accessマクロは、 イミディエイト読込みブレークポイントに接続する必要があ ります。ただし、このチュートリアルでは、後半部分でその接続を行います。 これで、このファイルには、リセット時と終了時のファイルハンドリングを適 切に管理するための 2 つのマクロ関数が記述されています。 「C-SPY® マクロシステムの使用」と「C-SPY® マク マクロの詳細については、 ロリファレンス」を参照してください。 次に、マクロファイルを指定して、その他に必要な C-SPY オプションを設定し ます。 C-SPY オプションの指定 1 C-SPY オプションを選択するには、[ プロジェクト ]>[ オプション ] を選択しま す。[ デバッガ ] カテゴリで、[ 設定 ] タブをクリックします。 2 [ マクロファイルの使用 ] 参照ボタンを使用して、使用するマクロファイルを指 定します。 SetupSimple.mac 別の方法として、引数変数を使用してパスを指定することもできます。 $TOOLKIT_DIR$\tutor\SetupSimple.mac IAR Embedded Workbench® IDE 56 ユーザガイド 割込みシミュレーション 詳細については、226 ページの「引数変数のまとめ」を参照してください。 図 21: セットアップマクロファイルの指定 3 C-SPY 割込みシステムは、デバイス記述ファイルで提供される割込み定義を使 用します。[ デバイス記述ファイル ] オプションで、該当するファイルを指定で きます。このチュートリアルでは、デフォルトファイルを使用します。 4 [Run to main] を選択して、[OK] をクリックします。これにより、main 関数ま で実行するとデバッグセッションが開始されるように設定されます。 これで、プロジェクトをビルドする準備ができました。 プロジェクトのビルド 1 [ プロジェクト ]>[ メイク ] を選択して、プロジェクトをコンパイルして、リンク します。 別の方法として、ツールバーの[メイク]ボタンをクリックすることもできます。 [ メイク ] コマンドは、変更されたファイルをコンパイルして、リンクします。 シミュレータの起動 1 IAR C-SPY デバッガを起動して、project4 を実行します。 いくつかウィンドウが開く中で、[Interrupt.c] ウィンドウが表示されます。この ウィンドウをクリックして、アクティブウィンドウにします。 パート 2: チュートリアル 57 シミュレーション環境の設定 2 [ ログ ] ウィンドウを調べます。マクロファイルがロードされ、execUserSetup 関数が呼び出されたことを確認します。 割込みシミュレーションの指定 ここで、2000 サイクルごとの割込みをシミュレーションするように割込みを 指定します。 1 [シミュレータ]>[割込み設定]を選択して、[割込み設定]ダイアログボックスを 表示します。[ 新規作成 ] をクリックして、[ 割込みの編集 ] ダイアログボック スを表示します。ここで、以下の割込み設定を指定します。 設定 値 説明 割込み UARTR_VECTOR 使用する割込みを指定。 説明 As is シミュレータが割込みを正しくシミュレーショ ンするために使用する割込み定義。 初回割込み 4000 シミュレータを実行してから最初に割込みを有 効にするまでの待機時間を指定。サイクルカウ ンタがこの値に達すると、割込みが有効になり ます。 繰返し間隔 2000 割込みの繰り返し発生間隔をクロックサイクル 単位で指定。 保持時間 Infinite 保持時間 ( 今回は未使用 )。 確率 % 100 確率を指定します。(100% を指定すると割込みが 指定された頻度で発生。別のパーセント値を指 定すると、割込み動作をよりランダムにシミュ レーション可能 )。 確率 % 0 ばらつき ( 今回は未使用 )。 表 4: [ 割込み ] ダイアログボックス 図 22: 割込み設定の検証 IAR Embedded Workbench® IDE 58 ユーザガイド 割込みシミュレーション C-SPY を実行すると、サイクルカウンタが初回割込み待機時間に到達するまで 待機します。最初のアセンブラ命令が実行されると、その後は約 2000 サイクル ごとに割込みが繰り返し発生します。 2 設定を指定したら、[OK]をクリックして[割込みの編集]ダイアログボックスを 閉じます。もう一度 [OK] をクリックして、[ 割込み設定 ] ダイアログボックス を閉じます。 C-SPYセットアップファイルでシステムマクロ __orderInterrupt を使用して 割込み定義手順を自動化する方法の詳細については、61 ページの「マクロに よる割込みとブレークポイントの設定」を参照してください。 イミディエイトブレークポイントの設定 マクロを定義してイミディエイトブレークポイントに接続することによって、マ クロを使用してハードウェアデバイス、たとえばこのチュートリアルのように入 出力ポートの動作をシミュレーションできます。イミディエイトブレークポイン トでは実行を停止するわけではありません。一時的にシミュレーションの実行を 停止して、条件のチェックを行い、接続されているマクロを実行するだけです。 この例では、RBUF アドレスにイミディエイト読込みブレークポイントを設定 して、定義済みの Access マクロをそこに接続することによって、UART への 入力をシミュレーションします。 マクロにより UART への入力をシミュレーショ ンします。以下の手順に従います。 1 [表示]>[ブレークポイント]を選択して[ブレークポイント]ウィンドウを開き、 右クリックしてコンテキストメニューを開きます。そこから [ 新規ブレークポ イント ]>[ イミディエイト ] を選択して [ イミディエイト ] タブを開きます。 2 以下に示すブレークポイントのパラメータを追加します。 設定 値 説明 ブレーク位置 RBUF 受信バッファアドレス アクセスタイプ Read ブレークポイントタイプ ([ リード ]/[ ライト ]) アクション Access() ブレークポイントに接続するマクロ 表 5: [ ブレークポイント ] ダイアログボックス C-SPY は実行中に RBUF アドレスからの読込みアクセスを検出すると、一時的に Access マクロを実行します。 マクロはファ シミュレーションの実行を停止して、 イル InputData.txt から値をリードし、RBUF にライトします。C-SPY がシミュ レーションを再開して、RBUF の受信バッファ値をリードします。 3 [OK] をクリックして、[ ブレークポイント ] ダイアログボックスを閉じます。 C-SPYセットアップファイルでシステムマクロ__setSimBreakを使用してブレー クポイント設定手順を自動化する方法の詳細については、61 ページの「マクロに よる割込みとブレークポイントの設定」を参照してください。 パート 2: チュートリアル 59 割込みシミュレーション 割込みシミュレーション このセクションでは、アプリケーションを実行して、シリアルポートの割込み シミュレーションを行います。 アプリケーションの実行 1 アプリケーションをステップ実行して、whileループに到達したら停止します。 このループで、アプリケーションは入力を待機します。 2 [Interrupt.c] ソースウィンドウで、関数 uartReciveHandler を探します。 3 この関数の ++callCount; 文に挿入ポイントを設定した後、[編集]>[ブレーク ポイントの切り替え ] を選択するか、ツールバーの [ ブレークポイントの切り 替え ] ボタンをクリックして、ブレークポイントを設定します。その他に、コ ンテキストメニューから同じ操作を実行することもできます。 ブレークポイントの詳細を検証する場合、[ 編集 ]>[ ブレークポイント ] を選択 します。 4 [ ターミナルI/O]ウィンドウを開いて、[ デバッグ]>[ 実行]を選択するか、ツール バーの [ 実行 ] ボタンをクリックして、アプリケーションを実行します。 アプリケーションは割込み関数の位置で停止します。 5 もう一度[実行]をクリックすると、次の数字が[ターミナルI/O]ウィンドウに出 力されます。 メインプログラムでフィボナッチ値のカウンタに上限を設定しているので、 チュートリアルアプリケーションはすぐに exit ラベルに到達し、停止します。 [ ターミナル I/O] ウィンドウにフィボナッチ数列が表示されます。 図 23: [ ターミナル I/O] ウィンドウへのフィボナッチ数列の出力 IAR Embedded Workbench® IDE 60 ユーザガイド 割込みシミュレーション マクロによる割込みとブレークポイントの設定 ブレークポイントの設定や割込みを定義する手順を自動化するには、それぞれ システムマクロ _ _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"; } _breakID = __setSimBreak( "RBUF", "R", "Access()" ); } 前のチュートリアルで使用したファイル SetupSimple.mac をファイル SetupAdvanced.mac に置き換えることによって、ブレークポイントの設定と割 込みの定義が、C-SPY の起動時に自動的に実行されます。したがって、シミュ レーションを開始するときに、[ 割込み ] ダイアログボックスと [ ブレークポイ ント ] ダイアログボックスに値を手動で入力する必要はありません。 注 : ファイル SetupAdvanced.mac をロードするには、その前に定義されてい たブレークポイントと割込みを削除する必要があります。 パート 2: チュートリアル 61 マクロによる割込みとブレークポイントの設定 IAR Embedded Workbench® IDE 62 ユーザガイド ライブラリモジュールの結合 このチュートリアルでは、ライブラリモジュールを作成する方法とア プリケーションプロジェクトとライブラリプロジェクトの結合方法に ついて説明します。 このチュートリアルでは、読者はこれまでの章で説明されている IAR Embedded Workbench® IDE の基本事項について習熟していることを前 提としています。 ライブラリの使用 大規模なプロジェクトに取り組んでいると、多くのアプリケーションで使用さ れる便利なルーチンが集まってきます。必要になるたびにルーチンをアセンブ ルするのを避けるために、そのようなルーチンをオブジェクトファイルとして、 すなわちアセンブルだけしてリンクはしない状態で、保存することができます。 ルーチンを集めた単一オブジェクトファイルをライブラリと呼びます。デバイ スドライバなど関連するルーチンは、ライブラリファイルとしてまとめること をお勧めします。 ライブラリをビルドするには、IAR XAR ライブラリビルダを使用します。ライブ ラリを操作するには、IAR XLIB Librarian を使用します。以下の機能があります。 ● ● ● モジュールタイプを PROGRAM から LIBRARY に、またはその逆方向に変更 ライブラリファイルに対するモジュールの追加 / 削除 モジュール名、エントリ名などをリスト表示 Main.sxx プログラム Main.sxx プログラムは、max という名前のルーチンを使用して、1 つのレジス タに、他の 2 つのレジスタのどちらか大きいほうの値を設定します。EXTERN ディレクティブは、リンクする際に解決される外部シンボルとして、max を宣 言します。 プログラムのコピーは、cpuname\tutor ディレクトリにあります。 ライブラリルーチン 2 つのライブラリルーチンによって、個別にアセンブルされたライブラリが形 成されます。ライブラリは、main に呼び出される max ルーチンおよび対応す る min ルーチンから構成され、どちらも Main.sxx プログラムで使用している レジスタの内容を操作します。これらのライブラリルーチンを含むファイル は、Maxmin.sxx と呼ばれ、そのコピーが製品とともに提供されています。 パート 2: チュートリアル 63 ライブラリの使用 ルーチンは、MODULE ディレクティブによってライブラリモジュールとして定義され ます。このディレクティブは、モジュールが他のモジュールによって参照されてい る場合にのみそのモジュールにリンクするように、 IAR XLINK リンカに指示します。 PUBLIC ディレクティブは、 max と min を他のモジュールに対するパブリックシ ンボルとして宣言します。 MODULE ディレクティブと PUBLIC ディレクティブの詳細については、 『IAR アセ ンブラリファレンスガイド』を参照してください。 新しいプロジェクトの作成 1 これまでの章で使用したワークスペース tutorials に新しいプロジェクト project5 を追加します。 2 ファイル Main.sxx を新しいプロジェクトに追加します。 3 オプションを設定するには、[ プロジェクト ]>[ オプション ] を選択します。[ 一般 オプション ] カテゴリを選択して、[ ライブラリ設定 ] タブをクリックします。 [ ライブラリ ] ドロップダウンリストで [None] を選択します。これは、標準の C/C++ ライブラリはリンクされないことを意味します。 他のオプションカテゴリでは、デフォルトオプションを使用します。 4 ファイル Main.sxx をアセンブルするには、[ プロジェクト ]>[ コンパイル ] を選 択します。 別の方法として、 ツールバーの [ コンパイル ] ボタンをクリックすることもできます。 ライブラリプロジェクトの作成 これで、ライブラリプロジェクトを作成する準備が完了です。 1 同じワークスペースtutorialsに新しいプロジェクトtutor_libraryを追加します。 2 ファイル Maxmin.sxx をプロジェクトに追加します。 3 オプションを設定するには、[ プロジェクト ]>[ オプション ] を選択します。[ 一 般オプション ] カテゴリで、以下の設定を確認します。 ページ オプション 出力 出力ファイル : ライブラリ ライブラリ設定 ライブラリ :None 表 6: ライブラリプロジェクトの XLINK オプション カテゴリリストに [ ライブラリビルダ ] が表示されていることに注意してくだ さい。これは、IAR XAR ライブラリビルダがビルドツールチェーンに追加され たことを意味します。このチュートリアルでは、XAR 固有のオプションを設定 する必要はありません。 [OK] をクリックします。 4 [ プロジェクト ]>[ メイク ] を選択します。 IAR Embedded Workbench® IDE 64 ユーザガイド ライブラリモジュールの結合 これで、ライブラリ出力ファイル tutor_library.rxx が作成されました。 アプリケーションプロジェクトでのライブラリの使用 maxmin ルーチンを含むライブラリを project5 に追加します。 1 [ ワークスペース ] ウィンドウで、[project5] タブをクリックします。[ プロジェ クト ]>[ ファイルの追加 ] を選択して、projects\Debug\Exe ディレクトリ にあるファイル tutor_library.rxx を追加します。[ 開く ] をクリックします。 2 [ メイク ] をクリックして、プロジェクトをビルドします。 3 これで、ライブラリが実行可能オブジェクトに結合され、アプリケーションを 実行する準備が完了しました。ライブラリの操作方法の詳細については、 『IAR リンカおよびライブラリツールリファレンスガイド』を参照してください。 パート 2: チュートリアル 65 ライブラリの使用 IAR Embedded Workbench® IDE 66 ユーザガイド パート 3: プロジェクト管 理とビルド 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● 開発環境 ● プロジェクト管理 ● ビルド ● 編集 67 68 開発環境 この章では、IAR Embedded Workbench® 統合開発環境 (IDE) について 説明します。また、要件に適合するように環境をカスタマイズする方 法について説明します。 IAR Embedded Workbench IDE IAR Embedded Workbench IDE は、必要なツールがすべてシームレスに統合され ているフレームワークです。統合されているツールは、C/C++ コンパイラ、ア センブラ、IAR XLINK リンカ、IAR XAR ライブラリビルダ、IAR XLIB ライブ ラリアン、エディタ、Make ユーティリティを含むプロジェクトマネージャ、 IAR C-SPY® デバッガ ( 上位レベル言語デバッガ ) です。 ビルド済みプロジェクト環境で外部ツールとして利用したい場合は、コンパイ ラ、アセンブラ、リンカを、コマンドライン環境で実行することもできます。 パート 3: プロジェクト管理とビルド 69 IAR Embedded Workbench IDE 以下の図では、[IAR Embedded Workbench IDE] ウィンドウのさまざまなコン ポーネントを示します。 メニュー バー ツール バー エディタ ウィンドウ [ ワークス ペース ] ウィンドウ [ メッセー ジ ] ウィン ドウ Status bar 図 24: [IAR Embedded Workbench IDE] ウィンドウ 使用するツールによっては、ウィンドウの外観が異なる場合があります。 IAR EMBEDDED WORKBENCH IDE の実行 タスクバーの [ スタート ] ボタンをクリックして、[ ライブラリビルダ ]>[IAR Systems]>[IAR Embedded Workbench for CPUNAME]>[IAR Embedded Workbench] を選択します。 コマンドラインや Windows エクスプローラからプログラムを起動する場合は、 IAR インストールディレクトリの下の common\bin でファイル IarIdePm.exe を実行します。 IAR Embedded Workbench® IDE 70 ユーザガイド 開発環境 ワークスペースファイル名のダブルクリック ワークスペースファイル名には、拡張子 eww が付いています。ワークスペース ファイル名をダブルクリックすると、IAR Embedded Workbench IDE が起動し ます。複数バージョンの IAR Embedded Workbench がインストールされている 場合、ワークスペースファイルは、そのファイルタイプを使用する最新バー ジョンの IAR Embedded Workbench によって開かれます。 終了 IAR Embedded Workbench IDE を終了するには、[ ファイル ]>[ 終了 ] を選択し ます。終了する前に、エディタウィンドウ、プロジェクト、ワークスペースに 対する変更を保存するかどうかを確認するメッセージが表示されます。 環境のカスタマイズ IAR Embedded Workbench IDE は、高度にカスタマイズ可能な環境です。この セクションでは、画面上のウィンドウを操作し編成する方法、IDE で実行できる カスタマイズ、外部ツールと通信するための環境設定方法について説明します。 画面上のウィンドウの編成 IAR Embedded Workbench IDE では、ウィンドウの位置やレイアウトの調整を 任意に設定できます。ウィンドウは特定の位置にドッキングして、タブグルー プとして編成できます。また、ウィンドウをフローティング化することができ ます。フローティングウィンドウは、常に他のウィンドウよりも前に表示され ます。フローティングウィンドウのサイズや位置を変更しても、現在開かれて いる他のウィンドウは影響を受けません。 一度保存したワークスペースを開くと、保存したときと同じウィンドウが同じ サイズで同じ位置に開きます。 C-SPY 環境で実行されるプロジェクトのレイアウトはすべて個別に保存され ます。ワークスペースに関する情報の他に、開いているすべてのデバッガ固有 のウィンドウに関する情報も保存されます。 ドッキングウィンドウとフローティングウィンドウの使用 開くウィンドウにはそれぞれデフォルトの位置があり、それは現在開かれてい る他のウィンドウによって変わります。ウィンドウの位置を簡単に、そして完 全に制御できるように、各ウィンドウをドッキングしたりフローティング化し たりできます。 ドッキングされたウィンドウは、ユーザが決めた Embedded Workbench メイン ウィンドウの特定の領域にロックされます。同時に複数のウィンドウを開いた 状態を維持するには、ウィンドウをタブグループとして編成します。これは、 画面の特定の領域を、同時に開いている複数のウィンドウが使用することを意 味します。この場合、ウィンドウのサイズ変更も簡単に実行できます。ドッキ ングされたウィンドウの 1 つをサイズ変更すると、ドッキングされた他のウィ ンドウのサイズがそれに従って変更されます。 パート 3: プロジェクト管理とビルド 71 環境のカスタマイズ フローティングウィンドウは、常に他のウィンドウよりも前面に表示されます。 その位置とサイズは、現在開かれている他のウィンドウには影響を与えません。 フローティングウィンドウは画面上の任意の位置に移動することができ、IAR Embedded Workbench IDE メインウィンドウの外部にも配置できます。 注 : エディタウィンドウは常にドッキングされています。エディタウィンドウを 開くと、その位置は現在開いている他のウィンドウに応じて自動的に決まりま す。エディタウィンドウの操作方法の詳細については、91 ページの「IAR Embedded Workbench エディタの使用」を参照してください。 ウィンドウの編成 ウィンドウを個別のウィンドウとして配置するには、開いている別のウィンド ウの横にウィンドウをドラッグします。 ウィンドウを開いている別のウィンドウと同じタブグループに配置するには、 該当する領域の中央にウィンドウをドラッグして、ドロップします。 ウィンドウをフローティング化するには、ウィンドウのタイトルバーをダブル クリックします。 IAR Embedded Workbench IDE メインウィンドウの下端にあるステータスバー には、ウィンドウのサイズを変更するためのヘルプが用意されています。 IDE のカスタマイズ [ ツール ]>[ オプション ] を選択すると、以下に示すような IDE をカスタマイ ズするためのさまざまなコマンドを使用できます。 ● ● ● ● ● ● ● ● エディタの設定 エディタの色とフォントの設定 プロジェクトビルドコマンドの設定 C-SPY のウィンドウの設定 外部エディタの連携 共通フォントの変更 キーバインディングの変更 [ メッセージ ] ウィンドウへの出力数の設定 この他に、認識するファイル名拡張子の数を増やすことができます。デフォル トでは、ビルドツールチェーンの各ツールは、標準的なファイル名拡張子に対 応します。それ以外のファイル名拡張子を持つソースファイルを使用する場合 は、使用可能なファイル名拡張子を変更できます。[ ツール ]>[ ファイル名拡 張子 ] を選択して、必要なコマンドを実行してください。 IAR Embedded Workbench® IDE 72 ユーザガイド 開発環境 IDE をカスタマイズするコマンドのリファレンス情報については、233 ページ の「[ ツール ] メニュー」を参照してください。また、エディタのカスタマイ ズの詳細については、97 ページの「エディタ環境のカスタマイズ」を参照し 「パート 4: デバッ てください。C-SPY 関連のカスタマイズの詳細については、 グ」を参照してください。 外部ツールとの連携 [ ツール ] メニューは設定可能なメニューであり、外部ツールを追加すること によって、IAR Embedded Workbench IDE 内から簡単にそれらのツールを使用 できます。そのため、メニューコマンドとしてメニューに表示されるように事 前に設定したツールに応じて、表示されるメニューが異なる場合があります。 メニューに外部ツールを追加するには、[ ツール ]>[ ツールの設定 ] を選択し て、[ 構成ツール ] ダイアログボックスを開きます。 図 25: [ 構成ツール ] ダイアログボックス このダイアログボックスのリファレンス情報については、252 ページの「[ 構 成ツール ] ダイアログボックス」を参照してください。 パート 3: プロジェクト管理とビルド 73 環境のカスタマイズ 適切な情報を入力して [OK] をクリックすると、指定したメニューコマンドが [ ツール ] メニューに表示されます。 図 26: カスタマイズした [ ツール ] メニュー 注 : 標準ビルドツールチェーンに外部ツールを追加する場合は、 89 ページの 「ツー ルチェーンの拡張」を参照してください。 コマンドラインコマンドの追加 コマンドラインコマンドとバッチファイル呼出しは、コマンドシェルから実行 する必要があります。コマンドラインコマンドを [ ツール ] メニューに追加す ると、そのメニューからコマンドラインコマンドを実行できます。 1 [ ツール ] メニューにコマンドを追加するには、適切なコマンドシェルを指定す る必要があります。 [ コマンド ] テキストボックスに、以下に示すいずれかのコマンドシェルを入 力します。 システム コマンドシェル Windows 98/Me command.com Windows NT/2000/XP cmd.exe ( 推奨 )、command.com 表 7: コマンドシェル 2 [ 引数 ] テキストボックスで、コマンドラインコマンドかバッチファイル名を指 定します。 [ 引数 ] のテキストは、以下に示すように指定する必要があります。 /C name ここで、name は、実行するコマンドかバッチファイルの名前です。 /C オプションは、実行後にシェルを終了するように指定し、ツールの終了を IAR Embedded Workbench IDE が検出できるようにします。 例 ネットワークドライブに project ディレクトリ全体のコピーを作成するため に、コマンド Backup を [ ツール ] メニューに追加する場合は、[ コマンド ] を ホスト環境に応じて command.cmd か cmd.exe を指定し、[ 引数 ] は下記のよう に指定します。 /C copy c:\project\*.* F: 別の方法として、引数に変数を使用して、再配置可能パスを使用することもできます。 /C copy $PROJ_DIR$\*.* F: IAR Embedded Workbench® IDE 74 ユーザガイド プロジェクト管理 この章では、IAR Embedded Workbench IDE で使用されるプロジェクト モデルについて説明します。具体的には、プロジェクトの編成方法、 バージョンの異なるアプリケーションの管理を可能にする複数のプロ ジェクト、ビルド構成、グループ、ソースファイル、オプションを含 むワークスペースの指定方法について説明します。また、サードパー ティ製の外部ソースコード管理システムを対話的に操作する手順につ いても説明します。 プロジェクトモデル 数百ものファイルを扱う大規模な開発プロジェクトでは、簡単にアクセスで き、プロジェクトに関わる数人のエンジニアによる保守が可能な構造に、ファ イルを編成する必要があります。 IAR Embedded Workbench IDE は、同一プロジェクトで複数のターゲットプロ セッサを使用し、各ターゲットプロセッサ用のツールも含むようなプロジェク トを開発できる、柔軟な環境を提供します。 プロジェクトの編成方法 IAR Embedded Workbench IDE は、ソフトウェア開発プロジェクトで通常行わ れる編成方法に合せて設計されています。たとえば、バージョンの異なるター ゲットハードウェアに対応して関連するバージョンのアプリケーションを開 発する、初期のバージョンにはデバッグルーチンを組込み最終アプリケーショ ンには組み込まないようにする、などの編成が考えられます。 異なるターゲットハードウェアに応じ、複数バージョンのアプリケーションを 開発する場合でも、ソースファイルは共通であることが多いので、それらの ファイルのコピーを 1 つだけ保持するようにして、修正が自動的にアプリケー ションの各バージョンに反映されるように編成することができます。また、 ハードウェア依存部分を処理アプリケーションのように、複数のバージョンで ソースファイルが異なる場合もあります。 IAR Embedded Workbench IDE を使用すると、論理構造が一目でわかるような 階層ツリー構造にプロジェクトを編成できます。以降のセクションでは、階層 のさまざまなレベルについて説明します。 パート 3: プロジェクト管理とビルド 75 プロジェクトモデル プロジェクトとワークスペース 通常は、組込みシステムアプリケーションに必要なソースファイルを含むプロ ジェクトを作成します。関連プロジェクトが複数存在する場合は、それらに同 時にアクセスして操作できます。そのために、関連するプロジェクトをワーク スペースに編成する機能があります。 1 つのワークスペースには、1 つ以上のプロジェクトを追加できます。どのプ ロジェクトも、少なくとも 1 つのワークスペースに属している必要があります。 1 つ例を示します。2 つの関連するアプリケーション、たとえば A と B を開発しま す。開発チーム A はアプリ A を、開発チーム B はアプリ B を開発します。2 つの アプリケーションは関連性があるので、ソースコードの一部は両アプリケーション 間で共有できます。この場合、以下のプロジェクトモデルを適用できます。 3 つのプロジェクト。各アプリケーション用に 1 つずつのプロジェクト、共 通ソースコード用にもう 1 つのプロジェクト。 ● 2 つのワークスペース。チーム A のワークスペースとチーム B のワークス ペース。 共通のソースをライブラリプロジェクト ( コンパイル済みだがリンクはされて いないオブジェクトコード ) にまとめる方法は、不要なコンパイルを避けるこ とができるので、使いやすさと効率の両面で優れています。 ● 開発チーム A 開発チーム B アプリ A アプリ B アプリ A のプロジェクト ユーティリティ ライブラリ アプリ B のプロジェクト 共通ソースの ライブラリプロジェクト チーム A のワークスペース ■ アプリ A のプロジェクト ■ アプリ B のプロジェクト ■ ユーティリティライブラリ のプロジェクト ■ ユーティリティライブラ リのプロジェクト 図 27: ワークスペースとプロジェクトの例 IAR Embedded Workbench® IDE 76 ユーザガイド チーム B のワークスペース プロジェクト管理 ライブラリプロジェクトとアプリケーションプロジェクトを組み合せた例に ついては、 「パート 2: チュートリアル」の「ライブラリモジュールの結合」を 参照してください。 プロジェクトとビルド構成 多くの場合、複数バージョンのプロジェクトをビルドする必要があります。 Embedded Workbench を使用すると、プロジェクトごとに複数のビルド構成を 定義できます。たとえば、デバッグとリリースの 2 つだけを必要とする単純な ケースがあります。この 2 つのビルド構成は、最適化、デバッグ情報、出力形 式に使用するオプションだけが異なります。リリース構成では、プリプロセッ アプリケーションにはアサートが含まれません。 サシンボル NDEBUG が定義され、 ビルド構成を追加すると、複数のターゲットデバイス上でアプリケーションを 使用する場合などに便利です。つまり、アプリケーションは同じで、コードの ハードウェア関連の部分が異なる場合です。したがって、ビルドするターゲッ トデバイスに応じて、ビルド構成から適切なソースファイルを除外できます。 プロジェクト A では、以下のビルド構成によって要件が満たされます。 ● ● ● ● プロジェクト A - デバイス 1: リリース プロジェクト A - デバイス 1: デバッグ プロジェクト A - デバイス 2: リリース プロジェクト A - デバイス 2: デバッグ グループ 通常は、プロジェクトには論理的に関連する数百のファイルが含まれます。そ こで、関連するソースファイルをまとめてグループを定義して、そのような複 数のグループを各プロジェクトに定義することができます。また、複数レベル のサブグループを定義して、論理階層を表現することもできます。デフォルト では、グループはすべてのビルド構成に存在しますが、グループを特定のビル ド構成から排除するように指定することもできます。 ソースファイル ソースファイルは、プロジェクトノードかグループ階層の直下に置くことがで きます。プロジェクトのファイルの数が多く、扱いにくい場合は、グループ階 層を使用すると便利です。デフォルトでは、各ファイルはプロジェクトのすべ てのビルド構成に存在しますが、ファイルを特定のビルド構成から排除するよ うに指定することもできます。 実際にビルドされ、出力コードにリンクされるのは、ビルド構成に含まれる ファイルだけです。 プロジェクトを正常にビルドすると、ソースファイルの下に、そこにインク ルードされているファイルとそこから生成された出力ファイルが構造化され て表示されます。 パート 3: プロジェクト管理とビルド 77 プロジェクトモデル 注 : ビルド構成の設定によって、ソースファイルのコンパイル時に使用するイ ンクルードファイルを選択できます。これは、コンパイル後にソースファイル に関連付けられているインクルードファイルのセットは、ビルド構成によって 異なる場合があることを意味します。 ワークスペースの作成と管理 このセクションでは、ワークスペース、プロジェクト、グループ、ファイル、 ビルド構成を作成する手順の概要について説明します。[ファイル]メニューに は、ワークスペースを作成するコマンドがあります。[プロジェクト]メニュー には、プロジェクトの作成、プロジェクトへのファイルの追加、グループの作 成、プロジェクトオプションの指定、現在のプロジェクトに対するIARシステ ムズ製開発ツールの実行を行うコマンドがあります。 これらのメニュー、メニューコマンド、ダイアログボックスのリファレンス情報 については、 「IAR Embedded Workbench® IDE リファレンス」を参照してください。 ワークスペースとその内容の作成と管理に関連する手順を以下に示します。 ● ワークスペースの作成 空の [ ワークスペース ] ウィンドウが表示されます。ここで、プロジェクト、 グループ、ファイルを表示できます。 ● ワークスペースへの新規 / 既存プロジェクトの追加 新しいプロジェクトを作成する場合、プロジェクト設定が事前に設定され ているテンプレートプロジェクトを使用できます。C アプリケーション、 C++ アプリケーション、アセンブラアプリケーション、ライブラリプロジェ クトのそれぞれで使用できるテンプレートプロジェクトがあります。 ● グループの作成 グループは、プロジェクトの最上位ノードかプロジェクト内の別のグルー プのどちらかに追加できます。 ● プロジェクトへのファイルの追加 ファイルは、プロジェクトの最上位ノードかプロジェクト内のグループの どちらかに追加できます。 ● 新しいビルド構成の作成 デフォルトでは、ワークスペースに追加する各プロジェクトには、デバッ グとリリースの 2 つのビルド構成があります。 新しい構成を作成する場合、既存の構成を使用できます。別の方法として、 デフォルトのビルド構成を選択することもできます。 新しいビルド構成に使用するツールチェーンは、同じプロジェクト内の他 のビルド構成と同一である必要はありません。 ● IAR Embedded Workbench® IDE 78 ユーザガイド ビルド構成からのグループとファイルの排除 プロジェクト管理 [ ワークスペース ] ウィンドウで、排除されたグループやファイルを表すア イコンの色が白に変わることに注意してください。 ● プロジェクトから項目を削除 詳細な例については、23 ページの「アプリケーションプロジェクトの作成」を 参照してください。 注 : これらの手順の一部は実行する必要がない場合があります。 ドラッグアンドドロップ エクスプローラから、個々のソースファイルやプロジェクトファイルを [ ワー クスペース ] ウィンドウにドラッグすることができます。ソースファイルをグ ループにドロップすると、そのグループに追加されます。プロジェクトツリー の外 ([ ワークスペース ] ウィンドウの背景 ) にドロップされたソースファイル は、アクティブプロジェクトに追加されます。 ソースファイルパス IAR Embedded Workbench IDE は、ある程度までのソースファイルの相対パス をサポートします。 プロジェクトファイルディレクトリかプロジェクトファイルディレクトリのサ ブディレクトリに置かれているソースファイルにアクセスする場合、IAR Embedded Workbench IDE は、 プロジェクトファイルからの相対パスを使用します。 プロジェクトファイルのナビゲート プロジェクトファイルをナビゲートする場合、[ ワークスペース ] ウィンドウ を使用する方法と [ ソースブラウザ ] ウィンドウを使用する 2 つの主要な方法 があります。[ ワークスペース ] ウィンドウには、論理的にグループ化された ソースファイル、依存ファイル、出力ファイルが、階層構造で表示されます。 一方、[ ソースブラウザ ] ウィンドウには、現在 [ ワークスペース ] ウィンドウ でアクティブなビルド構成の情報が表示されます。ビルド構成については、変 数、関数、型定義など、グローバルに定義されているすべてのシンボルが階層 的に表示されます。クラスについては、基底クラスの情報も表示されます。 パート 3: プロジェクト管理とビルド 79 プロジェクトファイルのナビゲート ワークスペースの表示 [ ワークスペース ] ウィンドウは、アプリケーションの開発中にプロジェクト やファイルにアクセスするインタフェースです。 1 [ ワークスペース ] ウィンドウの下端にあるタブをクリックすると、そのプロ ジェクトが表示されます。 構成ドロップ ダウンメ ニュー ビルド中に検 出されたエ ラーのインジ ケータ ファイルノード で優先されるオ プションのイン ジケータ ワークスペース の表示内容を選 択するタブ 図 28: [ ワークスペース ] ウィンドウでプロジェクトを表示 ビルドされたファイルごとに Output フォルダアイコンが表示されます。この フォルダには、オブジェクトファイルやリストファイルなどの生成されたファ イルがあります。リストファイルは、リストファイルオプションが有効な場合 にのみ生成されます。プロジェクトノードにも Output フォルダが関連付けられ ています。このフォルダには、実行可能ファイルやリンカマップファイル ( リス トファイルオプションが有効な場合 ) など、プロジェクト全体に関連して生成さ れたファイルが含まれます。 また、インクルードされているヘッダファイルも表示され、依存関係をわかり やすく示しています。 2 別のビルド構成のプロジェクトを表示するには、[ ワークスペース ] ウィンドウ 上端のドロップダウンリストからそのビルド構成を選択します。 選択したプロジェクトとビルド構成は、[ ワークスペース ] ウィンドウで強調 表示されます。アプリケーションをビルドすると、ドロップダウンリストで選 択したこのプロジェクトとビルド構成がビルドされます。 IAR Embedded Workbench® IDE 80 ユーザガイド プロジェクト管理 3 ワークスペースですべてのプロジェクトの概要を表示するには、[ ワークスペー ス ] ウィンドウの下端にある [ 一覧 ] タブをクリックします。 すべてのプロジェクトメンバの概要が表示されます。 図 29: [ ワークスペース ] ウィンドウの概要 [Build Configuration] ドロップダウンリストで現在選択されている項目は、 ワークスペースの概要が表示されるときも強調表示されます。 ブラウズ情報の表示 [ ソースブラウザ ] ウィンドウでブラウズ情報を表示するには、[ ツール ]>[ オ プション ]> [ プロジェクト ] を選択して、オプション [ ブラウズ情報を生成 ] を選択します。 [ ソースブラウザ ] ウィンドウを開くには、[ 表示 ]>[ ソースブラウザ ] を選択 します。[ ソースブラウザ ] ウィンドウは、デフォルトでは [ ワークスペース ] ウィンドウにドッキングされています。表示されるのは、アクティブなビルド 構成のソースブラウズ情報です。リファレンス情報については、201 ページの 「[ ソースブラウザ ] ウィンドウ」を参照してください。 ウィンドウの上部ペインを右クリックして表示されるコンテキストメニュー で、ファイルフィルタとタイプフィルタを選択できます。 グローバルシンボルや関数の定義を表示するには、以下に示す 3 つの方法があ ります。 ● ● ● [ソースブラウザ]ウィンドウでシンボルか関数を右クリックして、表示され るコンテキストメニューで [ 定義に移動 ] コマンドを選択 [ ソースブラウザ ] ウィンドウで行をダブルクリック エディタウィンドウでシンボルか関数を右クリックして、表示されるコン テキストメニューで [ 定義に移動 ] コマンドを選択 シンボルや関数の定義は、エディタウィンドウに表示されます。 パート 3: プロジェクト管理とビルド 81 ソースコード管理 ソースブラウズ情報は、バックグラウンドで継続的に更新されます。ソース ファイルの編集中や、新しいプロジェクトを開いているときは、最新の情報が 表示されるまで少し時間がかかります。 ソースコード管理 Microsoft が発行する SCC (source code control: ソースコード管理 ) インタフェー スに準拠するサードパーティ製 SCC システムがインストールされている場合、 IAR Embedded Workbench はそれを認識してアクセスすることができます。IDE 内から IAR Embedded Workbench プロジェクトを外部 SCC プロジェクトに接続 すると、通常使用する操作を一部実行することができます。 IAR Embedded Workbench プロジェクトをソースコード管理システムに接続す る場合、使用しているソースコード管理のクライアントアプリケーションの操 作に慣れている必要があります。IAR Embedded Workbench からソースコード 管理システムを操作する際に表示されるウィンドウやダイアログボックスの 一部は、SCC システムによって表示されたものであり、IAR システムズが提供 するドキュメントでは説明されていませんのでご注意ください。SCC システム のクライアントアプリケーションの詳細については、そのアプリケーションに 付属するドキュメントを参照してください。 注 : 異なる SCC システムでは、最も基本的な概念に関する部分であっても、使 用されている用語が大きく異なります。以下の説明を読む際も、このことを念 頭に置いてください。 ソースコード管理システムの操作 SCC システムでは、クライアントアプリケーションを使用して、主アーカイブ を管理します。このアーカイブに、プロジェクトで使用するファイルの作業用 コピーが保存されます。IAR Embedded Workbench に SCC を統合することに よって、通常使用する SCC 操作の一部を、IDE 内から直接、簡単な操作で実 行できます。ただし、それ以外にもさまざまなタスクをクライアントアプリ ケーションで実行する必要があります。 IAR Embedded Workbench のプロジェクトをソースコード管理システムに接続 するには、以下の手順を実行する必要があります。 ● ● SCC クライアントアプリケーションで、SCC プロジェクトを設定する IAR Embedded Workbench で、プロジェクトを SCC プロジェクトに接続する SCC クライアントアプリケーションでの SCC プロジェクトの設定 SCC クライアントツールを使用して、SCC システムで管理する IAR Embedded Workbench プロジェクトのファイルの作業用ディレクトリを設定します。ファ イルは、共通ルートの下の 1 つ以上のネストしたサブディレクトリに置かれま す。具体的には、すべてのソースファイルは ewp プロジェクトファイルと同じ ディレクトリか、そのディレクトリのサブディレクトリに置かれます。 IAR Embedded Workbench® IDE 82 ユーザガイド プロジェクト管理 関連する手順については、SCC クライアントアプリケーションに付属するド キュメントを参照してください。 IAR Embedded Workbench のプロジェクトの接続 IAR Embedded Workbench で、アプリケーションプロジェクトを SCC プロジェ クトに接続します。 1 [ ワークスペース ] ウィンドウで、SCC プロジェクトを作成したプロジェクトを 選択します。[ プロジェクト ] メニューで [ ソースコード管理 ]>[ プロジェクト を SCC プロジェクトに接続 ] を選択します。このコマンドは、[ ワークスペー ス ] ウィンドウを右クリックして表示されるコンテキストメニューでも選択で きます。 注 : 使用できる SCC クライアントアプリケーションが少なくとも 1 つ存在す れば、[ ソースコード管理 ] サブメニューのコマンドが使用可能になります。 2 別のベンダのソースコード管理システムがインストールされている場合、接続 先を選択するダイアログボックスが表示されます。 3 SCC 固有のダイアログボックスが表示されるので、前の手順で設定した SCC プ ロジェクトに移動します。 SCC 状態の表示 IAR Embedded Workbench プロジェクトが SCC プロジェクトに接続されると、 ソースコード管理のステータス情報を表す列が [ ワークスペース ] ウィンドウ に表示されます。以下に示す条件に応じて異なるアイコンが表示されます。 ● ● ● ● ● ファイルがチェックアウトされているかどうか 他のユーザによってファイルがチェックアウトされているかどうか ファイルがチェックインされているかどうか ファイルが変更されているかどうか アーカイブにファイルの新しいバージョンがあるかどうか これらの状態の組合せを表すアイコンが表示される場合もあります。表示され る状態の解釈は、使用している SCC クライアントアプリケーションによって 異なることに注意してください。アイコンとそれが表す状態のリファレンス情 報については、192 ページの「ソースコード管理状態」を参照してください。 SCC システムにアクセスするコマンドのリファレンス情報については、190 ページの「[ ソースコード管理 ] メニュー」を参照してください。 パート 3: プロジェクト管理とビルド 83 ソースコード管理 ソースコード管理システムの設定 ソースコード管理システムをカスタマイズするには、[ ツール ]>[ オプション ] を選択して、[ ソースコード管理 ] タブをクリックします。使用できるコマン ドのリファレンス情報については、246 ページの「[ ソースコード管理 ] オプ ション」を参照してください。 IAR Embedded Workbench® IDE 84 ユーザガイド ビルド この章では、アプリケーションをビルドする処理について簡単に説明 し、続いてサードパーティ製ツールをビルドツールチェーンに追加す る方法について説明します。 アプリケーションのビルド ビルド処理は、以下の手順から構成されます。 ● ● ● プロジェクトオプションの設定 プロジェクトのビルド ビルドで検出されたエラーの修正 バッチビルドコマンドを使用すると、ビルド処理の効率を上げることができま す。このコマンドを使用すると、1 回の操作で複数のビルドを実行できます。 プロジェクトをビルドするには、IAR Embedded Workbench IDE を使用する以外 に、コマンドラインユーティリティ iarbuild.exe を使用する方法もあります。 アプリケーションプロジェクトとライブラリプロジェクトのビルド例につ いては、本書の「パート 2: チュートリアル」を参照してください。ライブラ リプロジェクトのビルドの詳細については、 『IAR C/C++ コンパイラリファレ ンスガイド』を参照してください。 オプションの設定 アプリケーションのビルド方法を指定するには、1 つ以上のビルド構成を定義す る必要があります。ビルド構成はそれぞれ独自の設定があり、他の設定には依 存しません。設定はすべて [ ワークスペース ] ウィンドウで個別の列に表示され ます。 たとえば、デバッグに使用する設定は、最適化の程度は低く、デバッグに適し た出力を生成します。逆に、最終アプリケーションのビルド構成は、高度に最 適化され、フラッシュ /PROM プログラマに適した出力を生成します。 各ビルド構成に対して、プロジェクトレベル、グループレベル、ファイルレベ ルでオプションを設定できます。プロジェクトレベルでのみ設定できるオプ ションが数多く存在しますが、これはそれらのオプションがビルド構成全体に 影響を与えるためです。そのようなオプションの例としては、[ 一般オプショ ン ]、[ リンカ ]、[ デバッガ ] があります。それ以外の、コンパイラオプション やアセンブラオプションなどのオプションをプロジェクトレベルで設定する と、それがビルド構成全体のデフォルト設定になります。 パート 3: プロジェクト管理とビルド 85 アプリケーションのビルド 必要な項目、たとえば特定のファイルグループを選択して、オプション [ 継承 した設定をオーバライド ] を選択すると、プロジェクトレベルの設定を無効に できます。新しい設定は、選択されたグループのすべてのメンバ、すなわち ファイルとファイルグループに影響を与えます。すべての設定をデフォルトの 出荷時設定に戻すには、[ 工場出荷時設定 ] ボタンをクリックします。 注 : オプションの設定について、1 つ重要な制限があります。ファイルレベル でオプションを設定 ( ファイルレベルでオーバライド ) すると、ファイルを適 用対象とする上位レベルのオプションは、一切このファイルに適用されなくな ります。 [ オプション ] ダイアログボックスの使用 [ オプション ] ダイアログボックス ([ プロジェクト ]>[ オプション ] を選択して 表示 ) では、ビルドツールのオプションを設定できます。設定したオプション は、[ ワークスペース ] ウィンドウで選択されている項目に適用されます。[ 一 般オプション ]、[ リンカ ]、[ デバッガ ] の各カテゴリのオプションは、ビルド 構成全体に対してのみ設定できます。個別のグループやファイルに対しては設 定できません。ただし、他のカテゴリのオプションは、ビルド構成全体だけで なく、ファイルグループや個別のファイルに対しても設定できます。 図 30: 一般オプション IAR Embedded Workbench® IDE 86 ユーザガイド ビルド [ カテゴリ ] リストで、オプションを設定するビルドツールを選択できます。 [ カテゴリ ] リストで選択できるツールは、製品に含まれるツールによって異 なります。[ 出力 ] ページで [ ライブラリ ] を出力ファイルとして選択した場 合は、[ リンカ ] の代わりに [ ライブラリビルダ ] がカテゴリリストに表示さ れます。カテゴリを選択すると、そのコンポーネントのオプションを含むペー ジが表示されます。このページは複数ページにわたる場合もあります。 表示 / 変更するオプションのタイプに対応するタブをクリックします。すべて の設定をデフォルトの出荷時設定に戻すには、[ 工場出荷時設定 ] ボタンをク リックします。このボタンは、[ 一般オプション ] と [ カスタムビルド ] を除く すべてのカテゴリで使用できます。使用できる出荷時設定には、デバッグとリ リースの 2 つがあることに注意してください。どちらを使用するかは、ビルド 構成に応じて異なります。228 ページの「[ 新規構成 ] ダイアログボックス」を 参照してください。 各オプションの説明とオプションの設定方法については、本書の「パート 6: リファレンス情報」の「一般オプション」、 「コンパイラオプション」、 「アセン 「リンカオプション」、 「ライブラリビルダオプション」、 「カ ブラオプション」、 スタムビルドオプション」、「デバッガオプション」の各章を参照してくださ い。使用するデバッガドライバ固有のオプションについては、本書の該当ドラ イバに対応する個所を参照してください。 注 : 認識されないファイル名拡張子を持つソースファイルをプロジェクトに追 加した場合、そのソースファイルに対してオプションを設定することはできま せん。ただし、そのファイル名拡張子に対するサポートを追加できます。リ ファレンス情報については、254 ページの「[ ファイル名拡張子 ] ダイアログ ボックス」を参照してください。 プロジェクトのビルド ビルドコマンドにアクセスするには、[ プロジェクト ] メニューか [ ワークス ペース ] ウィンドウで項目を右クリックして表示されるコンテキストメニュー を使用します。 3 つのビルドコマンド、メイク、コンパイル、すべてを再ビルドはバックグラ ウンドで動作するので、プロジェクトをビルドしている間も、IAR Embedded Workbench IDE で編集作業を続行できます。 詳細なリファレンス情報については、224 ページの「[ プロジェクト ] メニュー」 を参照してください。 バッチによる複数構成のビルド バッチビルド機能を使用すると、複数の構成を同時にビルドできます。バッチ は、ビルド構成が順序付けて記述されているリストです。[ バッチビルド ] ダ イアログボックスは、[ プロジェクト ] メニューからアクセスでき、複数の構 成バッチを作成、変更、ビルドできます。 複数の構成を含むワークスペースの場合は、1 つ以上のバッチを定義すると便 利です。ワークスペース全体をビルドするのではなく、リリース設定とデバッ グ設定のように特定のビルド構成だけをビルドできます。 パート 3: プロジェクト管理とビルド 87 アプリケーションのビルド [ バッチビルド ] ダイアログボックスの詳細については、231 ページの「[ バッ チビルド ] ダイアログボックス」を参照してください。 ビルド中に検出されたエラーの修正 コンパイラ、アセンブラ、デバッガは、完全に開発環境に統合されています。 したがって、ソースコードにエラーがあった場合、[ ビルド ] メッセージウィ ンドウのエラーリストのエラーメッセージをダブルクリックするか、エラーを 選択して Enter キーを押すことによって、該当するソースファイルの選択した エラーの位置に直接移動できます。 ビルド中に検出された問題をすべて解決して、プロジェクトをリビルドした ら、生成されたコードをソースレベルで直接デバッグできます。 [ ビルド ] メッセージウィンドウへの出力レベルを指定するには、[ ツール ]> [ オプション ] を選択して [IDE オプション ] ダイアログボックスを開きます。 [ メッセージ ] タブをクリックして、[ ビルドメッセージの表示 ] ドロップダウ ンリストで出力レベルを選択します。 [ ビルド ] メッセージウィンドウのリファレンス情報については、209 ページの 「[ ビルド ] ウィンドウ」を参照してください。 コマンドラインからのビルド IAR コマンドラインビルドユーティリティ (iarbuild.exe) を使用すると、コ マンドラインからプロジェクトをビルドできます。このユーティリティは、 common\bin ディレクトリにあります。入力としてプロジェクトファイルを使 用して、以下の構文で呼び出します。 iarbuild project.ewp [-clean|-build|-make] <configuration> [-log errors|warnings|info|all] パラメータ 説明 project.ewp IAR Embedded Workbench IDE プロジェクトファイル。 -clean すべての中間ファイルおよび出力ファイルを削除します。 -build 現在のビルド構成のすべてのファイルをリビルド / 再リンク。 -make 最後のビルド以降に変更されたファイルだけをコンパイル、アセ ンブル、リンクして、現在のビルド構成を最新状態に更新。 configuration ビルドする構成の名前 ( 定義済の構成 [ デバッグ ] または [ リリー ス ] か、ユーザが独自に定義した名前 ) を指定 ( ビルド構成の詳細 については、77 ページの「プロジェクトとビルド構成」を参照 )。 -log errors ビルドのエラーメッセージを表示。 -log warnings ビルドのワーニング、エラーメッセージを表示。 -log info ビルドのワーニングメッセージ、 エラーメッセージ、 および #pragma message プリプロセッサディレクティブによって出力されるメッ セージを表示します。 -log all ビルドで出力されるすべてのメッセージを表示(コンパイラのサイ ンオン情報やフルコマンドラインなど )。 表 8: iarbuild.exe コマンドラインオプション IAR Embedded Workbench® IDE 88 ユーザガイド ビルド プロジェクトファイルを指定しないでコマンドシェルからアプリケーション を実行すると、使用できるパラメータとその構文を示すサインオンメッセージ が表示されます。 ツールチェーンの拡張 IAR Embedded Workbench では、標準のツールチェーンを拡張するためのツー ル ( カスタムビルド ) が提供されています。この機能を使用して、外部ツール (IAR 以外のベンダが提供するツール ) を実行します。プロジェクト内の特定の ファイルが変更されるたびに、外部ツールを実行させることができます。 [ カスタムツール設定 ] ページでカスタムビルドオプションを指定すると、ビ ルドコマンドは、IAR Embedded Workbench IDE とその関連ファイルを処理す るのと同じ方法で、外部ツールとその関連ファイルを処理します。外部ツール とその入力ファイルと生成される出力ファイルの関係は、C/C++ コンパイラ、 c ファイル、h ファイル、rxx ファイルの間の関係に似ています。使用できるカ スタムビルドオプションの詳細については、321 ページの「カスタムビルドオ プション」を参照してください。 外部ツールの入力として使用するファイルのファイル名拡張子を指定します。 プロジェクトを最後にビルドした後で入力ファイルが変更された場合は、c ファイルが変更されたときにコンパイラが実行されるのと同じように、外部 ツールが実行されます。同様に、他の入力ファイル ( インクルードファイルな ど ) への変更も検出されます。 外部ツールの名前を指定する必要があります。同時に、外部ツールが必要とす るコマンドラインオプションや、外部ツールが生成する出力ファイルの名前も 指定できます。ファイルパスに置換される引数変数も使用できることに注意し てください。 ファイル情報の一部を表すのに、引数変数を使用できます。 カスタムビルドオプションは、プロジェクトツリーの任意のレベルに対して指 定できます。指定したオプションは、プロジェクトツリーの下位レベルに継承 されます。 ツールチェーンに追加可能なツール IAR Embedded Workbench ツールチェーンに追加できる外部ツールか、ツール の種類の例を以下に示します。 ● ● 言語仕様に基づいてファイルを生成するツール (Lex、YACC など ) バイナリファイル、たとえばビットマップイメージやオーディオデータを 含むファイルを、アセンブラか C ソースファイルのデータテーブルに変換 するツールです。( このデータは、コンパイルして、アプリケーションの他 のファイルとリンク可能 ) パート 3: プロジェクト管理とビルド 89 ツールチェーンの拡張 外部ツールの追加 ツール Flex をツールチェーンに追加する例を以下に示します。他のツールも 同じ手順で追加できます。 この例では、Flex はファイル foo.lex を入力として受け取ります。出力とし て、foo.c と foo.h の 2 つのファイルが生成されます。 1 使用するファイル、ここでは foo.lex を、プロジェクトに追加します。 2 [ ワークスペース ] ウィンドウでこのファイルを選択して、[ プロジェクト ]>[ オ プション ] を選択します。カテゴリリストで [ カスタムビルド ] を選択します。 3 [ ファイル名拡張子 ] フィールドにファイル名拡張子「.lex」を入力します。先 頭にピリオド (.) を指定するのを忘れないでください。 4 [ コマンドライン ] フィールドに、外部ツールを実行するコマンドラインを入力 します。以下に例を示します。 flex $FILE_PATH$ -o$FILE_BPATH$.c ビルド処理中に、このコマンドラインは以下のように展開されます。 flex foo.lex -ofoo.c 引数変数の使用方法に注意してください。引数変数の詳細については、226 ペー ジの「引数変数のまとめ」を参照してください。 $FILE_BNAME$ の使用方法には特に注意が必要です。この変数は入力ファイル のベース名に置換されます。この例では c 拡張子が連結されて、入力ファイル foo.lex と同じディレクトリに C ソースファイルが生成されます。 5 [ 出力ファイル ] フィールドに、ビルドに関連して生成される出力ファイルを記 述します。この例では、ツール Flex がソースファイルとヘッダファイルを 1 つ ずつ生成します。[ 出力ファイル ] テキストボックスでこれら 2 つのファイル を表すテキストは以下のようになります。 $FILE_BPATH$.c $FILE_BPATH$.h 6 ビルド中に外部ツールが使用するファイルが他にもある場合は、[追加入力ファ イル]フィールドにそれらのファイル名を追加する必要があります。以下に例を 示します。 $TOOLKIT_DIR$\inc\stdio.h 使用するファイルを追加する必要があるのは、依存ファイルが変更された場 合、条件が変わるのでリビルドする必要があるためです。 7 [OK] をクリックします。 8 アプリケーションをビルドするには、[ プロジェクト ]>[ メイク ] を選択します。 IAR Embedded Workbench® IDE 90 ユーザガイド 編集 この章では、IAR Embedded Workbench エディタの使用方法について説 明します。最後のセクションでは、エディタのカスタマイズ方法とユー ザが選択した外部エディタの使用方法について説明します。 IAR Embedded Workbench エディタの使用 統合されているテキストエディタには、複数ファイルを同時に編集する機能の 他、最新エディタが通常提供している基本的な編集機能がすべて用意されてい ます。さらに、ソフトウェア開発向けの機能も備わっています。このエディタ は、C/C++ 言語のエレメントを認識します。 ファイルの編集 エディタウィンドウでは、ソースコードの記述、表示、変更を行います。[ ファ イル ] メニューからファイルを選択するか、[ ワークスペース ] ウィンドウで ファイルをダブルクリックすることによって、1 つ以上のテキストファイルを 開くことができます。複数のファイルを開いている場合、それらのファイルは タブグループとして編成されます。同時に複数のエディタウィンドウを開いて おくことができます。 パート 3: プロジェクト管理とビルド 91 IAR Embedded Workbench エディタの使用 表示するファイルに対応するタブをクリックします。開いているファイルはす べて、エディタウィンドウの右上隅にあるドロップダウンメニューで選択する こともできます。 タイトルバー ( 更新イン ジケータ付 ) ファイル ドロップダウ ンメニュー 分割 バー ブックマーク 分割バー 関数に移動 図 31: エディタウィンドウ 開いているソースファイルの名前がタブに表示されます。ファイルがリードオ ンリーの場合は、エディタウィンドウの左下隅に錠アイコンが表示されます。 ファイルが最後に保存された後に変更された場合、たとえば「Utilities.c *」 のように、タブのファイル名の末尾にアスタリスクが表示されます。 [ ウィンドウ ] メニューのコマンドを使用すると、エディタウィンドウをペイ ンに分割できます。[ ウィンドウ ] メニューには、複数のエディタウィンドウ を開くコマンドや、エディタウィンドウ間でファイルを移動するためのコマン ドもあります。メニューの各コマンドのリファレンス情報については、257 ペー ジの「[ ウィンドウ ] メニュー」を参照してください。エディタウィンドウの リファレンス情報については、196 ページの「エディタウィンドウ」を参照し てください。 DLIB ライブラリ関数のリファレンス情報へのアクセス C/EC++ ライブラリ関数の構文を知る必要がある場合は、エディタウィンドウ で関数名を選択して、F1 を押します。選択された関数のライブラリドキュメ ントがヘルプウィンドウに表示されます。 IAR Embedded Workbench® IDE 92 ユーザガイド 編集 エディタコマンドとショートカットキーの使用とカスタマイズ [ 編集 ] メニューには、エディタウィンドウで編集と検索を行うコマンドがあ ります。たとえば、[ 編集 ]>[ 元に戻す ] コマンドと [ 編集 ]>[ やり直し ] コマ ンドは、それぞれ制限なく元に戻す操作とやり直し操作を実行できます。これ らのコマンドの一部は、エディタウィンドウを右クリックして表示されるコン テキストメニューからも選択できます。各コマンドのリファレンス情報につい ては、215 ページの「[ 編集 ] メニュー」を参照してください。 以下の操作を行うエディタショートカットキーもあります。 ● ● ● 挿入ポイントの移動 テキストのスクロール テキストの選択 ショートカットキーの詳細については、199 ページの「エディタのキー操作の まとめ」を参照してください。 デフォルトのショートカットキーバインディングを変更するには、[ ツール ]>[ オプ ション ] を選択して、[ キーカスタマイズ ] タブをクリックします。詳細につい ては、235 ページの「[ キーカスタマイズ ] オプション」を参照してください。 エディタウィンドウをペインに分割 エディタウィンドウを水平方向か垂直方向に分割して、複数ペインを生成でき ます。これによって、同時に同一ソースファイルの異なる部分を表示したり、 2 つの異なるペイン間でテキストを移動したりできます。 ウィンドウを分割するには、適切な分割バーをダブルクリックするか、ウィン ドウの中央までドラッグします。別の方法として、[ ウィンドウ ]>[ 分割 ] コマ ンドを使用してウィンドウをペインに分割することもできます。 1 つのペインに戻すには、分割バーをダブルクリックするか、スクロールバー の端までドラッグします。 テキストのドラッグアンドドロップ エディタウィンドウ内または複数のエディタウィンドウ間で、テキストを簡単 に移動できます。テキストを選択して、移動先にドラッグします。 構文カラー表示 [ ツール ]>[ オプション ]>[ エディタ ]>[ 構文の強調表示 ] オプションを有効にす ると、IAR Embedded Workbench エディタは、自動的に以下の構文を認識します。 ● ● ● ● ● C と C++ のキーワード C と C++ のコメント アセンブラディレクティブとコメント プリプロセッサのディレクティブ 文字列 ソースコードは、部分ごとに異なるテキストスタイルで表示されます。 パート 3: プロジェクト管理とビルド 93 IAR Embedded Workbench エディタの使用 これらのスタイルを変更するには、[ ツール ]>[ オプション ] を選択して、[ エ ディタ ]> [ 色とフォント ] オプションを使用します。その他の情報については、 242 ページの「[ 色とフォント ] オプション」を参照してください。 独自にキーワードセットを定義して、それらを自動的に構文カラー表示の対象 にすることができます。 1 テキストファイルに、自動的に構文カラー表示の対象にするすべてのキーワー ドを記述します。各キーワードは、スペースや改行で区切ります。 2 [ ツール ]>[ オプション ] を選択して、[ セットアップファイル ] を選択します。 3 [ カスタムキーワードファイルの使用 ] オプションを選択して、新しく作成した テキストファイルを指定します。参照ボタンを使用して選択することもできま す。 4 [エディタ]>[色とフォント]を選択して、[構文の色]リストから[ユーザキーワー ド ] を選択します。フォント、色、タイプスタイルを指定します。その他の情 「[ 色とフォント ] オプション」を参照してください。 報については、 242 ページの 5 エディタウィンドウで、キーワードファイルに記述したキーワードを入力し て、指定どおりにそのキーワードがカラー表示されていることを確認します。 自動テキストインデント テキストエディタには、さまざまな種類のインデントがあります。アセンブラ ソースファイルと通常のテキストファイルは、エディタによって、行の先頭が 前の行の先頭に一致するように自動インデントされます。複数の行をインデン トする場合は、該当する行を選択して、Tab キーを押します。Shift+Tab キーを 押して、選択した行をまとめて左に移動します。 C/C++ ソースファイルの場合、エディタは C/C++ ソースコードの構文に従っ て行をインデントします。インデントは以下のタイミングで実行されます。 ● ● ● Enter キーを押したとき {、}、:、# のいずれかの特殊文字が入力されたとき 1 行または複数行を選択して [ エディタ ]>[ 自動インデント ] を選択したとき インデントを有効 / 無効にするには、以下の手順を実行します。 1 [ ツール ]>[ オプション ] を選択して、[ エディタ ] を選択します。 2 [ 自動インデント ] オプションを選択 / 選択解除します。 C/C++ の自動インデントをカスタマイズするには、[ 設定 ] ボタンをクリック します。 その他の情報については、238 ページの「[ 自動インデントの設定 ] ダイアロ グボックス」を参照してください。 IAR Embedded Workbench® IDE 94 ユーザガイド 編集 中括弧と括弧の対応 括弧の近くに挿入ポイントがある場合、対応する括弧が淡い灰色で強調表示さ れます。 図 32: エディタウィンドウの括弧の対応 挿入ポイントが括弧の近くにある間は、対応する括弧は強調表示されたままです。 挿入ポイントを含む中括弧で囲まれたテキストをすべて選択するには、[編集]> [括弧のマッチング]を選択します。その後は、[括弧のマッチング]を選択するた びに、選択される範囲が次の階層の中括弧で囲まれた範囲まで広がります。 注 : 括弧の対応の機能 ( 自動検出、括弧で囲まれたテキストの選択 ) はどちら も、()、[]、{} に適用されます。 ステータス情報の表示 編集中は、ステータスバー ([ 表示 ]>[ ステータスバー ] を選択して表示 ) に、 現在挿入ポイントがある行番号と列番号、Caps Lock、Num Lock、上書きステー タスが表示されます。 図 33: エディタウィンドウのステータスバー コードテンプレートの使用と追加 コードテンプレートは、たとえば for ループや if 文のように、頻繁に使用さ れるソースコードシーケンスを簡単に挿入するための方法です。コードテンプ レートは、通常のテキストファイルで定義します。デフォルトで、いくつかの サンプルテンプレートが提供されています。それ以外に、簡単に独自のコード テンプレートを追加できます。 コードテンプレートの有効化 デフォルトで、コードテンプレートは有効になっています。コードテンプレー トの使用を有効 / 無効にするには、以下の手順を実行します。 1 [ ツール ]>[ オプション ] を選択します。 2 [ セットアップファイル ] ページに移動します。 3 [ コードテンプレートの使用 ] オプションを選択 / 選択解除します。 パート 3: プロジェクト管理とビルド 95 IAR Embedded Workbench エディタの使用 4 テキストフィールドで、使用するテンプレートとして、デフォルトファイルか 独自に作成したテンプレートファイルを指定します。参照ボタンを使用して選 択することもできます。 ソースコードへのコードテンプレートの挿入 コードテンプレートをソースコードに挿入するには、テンプレートを挿入する 位置に挿入ポイントを置いて、[ 編集 ]>[ テンプレートの挿入 ] を選択します。 エディタウィンドウにリストが表示されるので、そこから挿入するコードテン プレートを選択します。 図 34: エディタウィンドウのコードテンプレートメニュー 終値とカウント変数を必要とする for ループのように、選択したコードテンプ レートがフィールドへの入力を必要とする場合は、入力ダイアログボックスが 表示されます。 独自のコードテンプレートの追加 ソースコードテンプレートは、通常のテキストファイルで定義します。オリジ ナルテンプレートファイル CodeTemplates.txt は、common\config インストー ルディレクトリにあります。初めて IAR Embedded Workbench を使用するとき に、オリジナルテンプレートファイルがローカル設定用ディレクトリにコピー されます。コードテンプレートが有効な場合は、このファイルがデフォルトで 使用されます。独自のテンプレートファイルを使用する手順については、95 ページの「コードテンプレートの有効化」を参照してください。 テンプレートファイルを開いて、独自のコードテンプレートを定義するには、 [ 編集 ]>[ コードテンプレート ]>[ テンプレートの編集 ] を選択します。 テンプレートを定義するための構文は、デフォルトテンプレートファイルに記 述されています。 IAR Embedded Workbench® IDE 96 ユーザガイド 編集 ファイル間のナビゲート エディタには、ファイル内や異なるファイル間を簡単にナビゲートするための 機能が豊富に用意されています。 ● ソースファイルとヘッダファイル間の切替え 挿入ポイントが#include行にある場合、コンテキストメニューで[ "header.h" を開く ] コマンドを選択して、ヘッダファイルをエディタウィンドウで開く ことができます。また、コマンド[ヘッダ/ソースファイルを開く]を選択する と、現在のファイルに対応するヘッダファイルやソースファイルを開いた り、すでに開いている場合はアクティブにしたりできます。このコマンドは、 挿入ポイントが#include行の近くにあるときに選択できます。 ● 関数ナビゲーション エディタウィンドウの左下隅にある[関数に移動]ボタンをクリックすると、 ウィンドウに表示されているソースファイルで定義されているすべての関 数がリスト表示されます。リストで関数をダブルクリックすると、その関 数の位置に直接移動できます。 ● ブックマークの追加 [編集]>[ブックマークの追加/削除]コマンドを使用すると、ブックマークを 追加/削除できます。ブックマークされた位置間を移動するには、[編集]> [ブックマークへ移動]を選択します。 検索 エディタには、以下に示すさまざまな標準的検索機能が用意されています。 ● ● ● ● ● [ クイック検索 ] テキストボックス [ 検索 ] ダイアログボックス [ 置換 ] ダイアログボックス [ ファイルから検索 ] ダイアログボックス [ インクリメンタル検索 ] ダイアログボックス ツールバーの [ クイック検索 ] テキストボックスを使用するには、検索するテ キストを入力して、Enter キーを押します。Esc キーを押すと検索をキャンセル します。アクティブなエディタウィンドウでテキストを検索する場合は、この 方法が最も簡単です。 [ 検索 ]、[ 置換 ]、[ ファイルから検索 ]、[ インクリメンタル検索 ] の各機能を 使用するには、[ 編集 ] メニューで対応するコマンドを選択します。各検索機 能のリファレンス情報については、215 ページの「[ 編集 ] メニュー」を参照 してください。 エディタ環境のカスタマイズ IAR Embedded Workbench IDE エディタは、[IDE オプション ] の [ 編集 ] ページ と [ エディタ色とフォント ] ページで構成できます。これらのページにアクセ スするには、[ ツール ]>[ オプション ] を選択します。 パート 3: プロジェクト管理とビルド 97 エディタ環境のカスタマイズ これらのページの詳細については、233 ページの「[ ツール ] メニュー」を参 照してください。 外部エディタの使用 [ 外部エディタ ] オプション ([ ツール ]>[ オプション ]>[ 編集 ] を選択して表示 ) では、使用する外部エディタを選択することができます。 1 [ 外部エディタの使用 ] オプションを選択します。 2 外部エディタを呼び出すには、[タイプ]ドロップダウンメニューで以下の2つの 方法のどちらかを選択します。 [Command Line] は、外部エディタを呼び出して、コマンドラインパラメータ を渡します。 [DDE] は、DDE (Windows Dynamic Data Exchange: Windows 動的データ交換 ) を 使用して、外部エディタを呼び出します。 3 コマンドラインを使用する場合は、エディタに渡すコマンドライン、すなわち エディタの名前とそのパスを指定します。以下に例を示します。 C:\WINNT\NOTEPAD.EXE. [ 引数 ] フィールドに引数を入力すると、引数を外部エディタに送信できます。 たとえば、 「$FILE_PATH$」と入力すると、エディタが起動されて、アクティブ ファイルが開きます ( エディタ、プロジェクト、[ メッセージ ] ウィンドウ )。 図 35: 外部コマンドラインエディタの指定 4 DDEを使用する場合、[サービス]フィールドでエディタのDDEサービス名を指 定します。[ コマンド ] フィールドで、エディタに送信するコマンドシーケン スを表す文字列を指定します。 サービス名とコマンド文字列は、使用する外部エディタに応じて指定します。 外部エディタのドキュメントを参照して、適切に設定してください。 IAR Embedded Workbench® IDE 98 ユーザガイド 編集 コマンド文字列は、以下の形式で入力する必要があります。 DDE-Topic CommandString DDE-Topic CommandString 以下に示す例は、Codewright® に適用されるコマンド文字列です。 図 36: 外部エディタの DDE 設定 この例で指定したコマンド文字列で、外部エディタが開いて、専用ファイルが アクティブになります。カーソルは、たとえばファイル内の文字列を検索して いる場合や [ メッセージ ] ウィンドウでエラーメッセージをダブルクリックし た場合のように、ファイルを開いたコンテキストの定義に従って、現在の行に 置かれます。 5 [OK] をクリックします。 [ ワークスペース ] ウィンドウでファイルをダブルクリックして開いた場合、 そ のファイルは、外部エディタで開かれます。 引数に変数を使用できます。引数変数の詳細については、226 ページの「引数 変数のまとめ」を参照してください。 パート 3: プロジェクト管理とビルド 99 エディタ環境のカスタマイズ IAR Embedded Workbench® IDE 100 ユーザガイド パート 4: デバッグ 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● IAR C-SPY® デバッガ ● アプリケーションの実行 ● 変数と式の扱い ● ブレークポイントの使用 ● メモリとレジスタのモニタ ● C-SPY® マクロシステムの使用 ● アプリケーションの分析 101 102 IAR C-SPY® デバッガ この章では、IAR C-SPY デバッガについて説明します。最初に、デバッ グの一般的な概念と IAR C-SPY デバッガ独自の概念について説明しま す。次に、デバッガの環境とそれを設定および起動する方法について 説明し、最後にターゲットハードウェアに適合させる方法について説 明します。 デバッガの概念 このセクションでは、デバッグの一般的な概念と IAR C-SPY デバッガ独自の 概念について説明します。IAR C-SPY デバッガの機能に関する具体的な概念に ついては、ここでは説明しません。そのような情報については、このパートの 各章で説明します。IAR システムズのユーザドキュメントでは、デバッガの概 念を説明するときに、以下の用語を使用します。 IAR C-SPY デバッガとターゲットシステム IAR C-SPY デバッガは、ソフトウェア / ハードウェアターゲットシステムのデ バッグに使用できます。 パート 4: デバッグ 103 デバッガの概念 C-SPY とターゲットシステムの概要については、図「IAR C-SPY デバッガと ターゲットシステム」を参照してください。 ターゲットシステム シミュレータ シミュレータ ドライバ Embedded Workbench C-SPY ROM モニタ ドライバ エミュレータ ドライバ ROM モニタ ターゲット ハードウェア JTAG エミュ レータ ター ゲット ゲット ウェア アプリケーションソフトウェア IAR C-SPY デバッガ IAR C-SPY デバッガとターゲットシステム デバッガ C-SPY のようなデバッガは、ターゲットシステム上でアプリケーションをデ バッグするためのプログラムです。 ターゲットシステム ターゲットシステムは、アプリケーションをデバッグするときに、それを実行 するシステムです。ターゲットシステムは、評価ボードか独自に設計したハー ドウェアから構成されます。また、その全体または一部をソフトウェアでシ ミュレーションすることもできます。ターゲットシステムは、その種類ごとに 専用の C-SPY ドライバを必要とします。 ユーザアプリケーション ユーザアプリケーションは、ユーザが開発して、IAR C-SPY デバッガを使用し てデバッグを行うソフトウェアです。 IAR Embedded Workbench® IDE 104 ユーザガイド IAR C-SPY® デバッガ IAR C-SPY デバッガシステム IAR C-SPY デバッガは、大きく分けて、C-SPY の基本機能を構成する部分と各 種ドライバの 2 つの部分から構成されています。C-SPY ドライバは、ターゲッ トシステムとの通信およびターゲットシステムの管理を提供します。また、ド ライバでは、特殊なブレークポイントなど、ターゲットシステムが提供する機 能へのユーザインタフェースとして、メニュー、ウィンドウ、ダイアログボッ クスを提供します。C-SPY ドライバには、大きく分けて以下の 3 つの種類があ ります。 ● ● ● シミュレータドライバ ROM モニタドライバ エミュレータドライバ コンピュータに複数の C-SPY ドライバがインストールされている場合、IAR Embedded Workbench IDE で適切なドライバを選択することによって、使用す るドライバを切り替えることができます。 IAR C-SPY デバッガの一般的な機能の概要については、5 ページの「IAR C-SPY デバッガ」を参照してください。各ドライバが提供する機能の概要について は、[ ヘルプ ] メニューからオンラインヘルプシステムを参照してください。 doc ディレクトリに、 ドライバガイドがハイパーテキスト PDF フォーマットで 提供されている場合もあります。使用可能な C-SPY ドライバについては、ソ フトウェア販売代理店か IAR の担当者までお問い合せください。また、IAR シ ステムズの Web サイト (www.iarsys.co.jp) でも情報を提供しています。 ROM モニタプログラム ROM モニタプログラムは、ターゲットハードウェアの不揮発性メモリにロー ドされるファームウェアで、アプリケーションと並行して動作します。ROM モニタは、デバッガと通信して、ステップ実行やブレークポイントなど、アプ リケーションのデバッグに必要なサービスを提供します。 サードパーティ製デバッガ UBROF、ELF/DWARF、COFF、Intel-extended、Motorola など、XLINK が提供 するいずれかの出力フォーマットを読込み可能なサードパーティ製デバッガ であれば、IAR システムズのツールチェーンに組み込むことができます。サー ドパーティ製デバッガで使用するフォーマットについては、そのデバッガに付 属のユーザドキュメントを参照してください。 パート 4: デバッグ 105 C-SPY 環境 C-SPY 環境 統合環境 IAR C-SPY デバッガは、組込みアプリケーション用の高級言語デバッガです。 CPUNAMEIAR C/C++コンパイラとCPUNAMEIARアセンブラとともに使用し、 完全に IAR Embedded Workbench IDE に統合されているので、同一アプリケー ション内で開発とデバッグを行うことができます。 Embedded Workbench のワークスペースで開いているウィンドウはすべて、 C-SPY デバッガを起動してもそのまま開いています。それ以外に、C-SPY 固有 の複数のウィンドウが開かれます。 デバッグセッション中でもエディタウィンドウでソースコードを変更できま すが、デバッガを終了してアプリケーションをリビルドするまで変更は反映さ れません。 統合のもう 1 つのメリットは、開発サイクル中に任意のタイミングでテキスト エディタを使用してブレークポイントを設定できることです。デバッガを実行 していないときもブレークポイント定義を確認および修正することができ、ブ レークポイント定義フローを編集中のテキストで確認および修正できます。 ウォッチプロパティ、ウィンドウレイアウト、レジスタグループなどのデバッ グ設定は、デバッグセッションが終わるまで保持されます。デバッガ実行中 は、エディタウィンドウでブレークポイントが強調表示されます。 デバッグ環境では、IAR Embedded Workbench IDE で使用できる機能の他に、 C-SPY 固有のデバッグ用のツールバー、メニュー、ウィンドウ、ダイアログ ボックスなどが用意されています。 C-SPY 固有の項目のリファレンス情報については、261 ページの「C-SPY® デ バッガリファレンス」を参照してください。 C-SPY ドライバの具体的な情報については、本書のドライバに対応するパート を参照してください。 IAR C-SPY デバッガの設定 IAR C-SPY デバッガを起動する前に、デバッガシステムを設定するオプ ションを設定する必要があります。これらのオプションにアクセスするに は、[プロジェクト]>[オプション]を選択して、[デバッガ]カテゴリで [設定] ページを開きます。[プラグイン]ページでは、プラグインモジュールのロー ドに関するオプションを設定できます。 デバッガシステムを設定するオプション以外にも、デバッガ固有のIDEオプショ ンを設定できます。このオプションにアクセスするには、[ツール]>[オプション] を選択します。デバッガ固有のIDEオプションの詳細については、247ページの 「[デバッガ]オプション」を参照してください。 IAR Embedded Workbench® IDE 106 ユーザガイド IAR C-SPY® デバッガ デバッグドライバの選択 C-SPY を起動する前に、[ 設定 ] ページの [ ドライバ ] ドロップダウンリストか ら、デバッガシステムで使用するドライバを選択する必要があります。ドロッ プダウンリストに表示される内容はインストールされている製品によって異 なり、ハードウェアデバッガシステム用のドライバが存在する場合も存在しな い場合もあります。ハードウェアデバッガシステム用のドライバを選択した場 合、ハードウェア固有のオプションも設定する必要があります。ハードウェア 固有のオプションについては、[ ヘルプ ] メニューからオンラインヘルプシス テムを参照してください。 注 : 選択できるのは、コンピュータにインストール済みのドライバだけです。 リセットからの実行 [Run to] オプションを使用すると、デバッガの起動時やリセット後に C-SPY を 実行する位置を指定できます。C-SPY は指定された位置にブレークポイントを 配置して、そこまでのすべてのコードを実行してから、その位置で停止します。 デフォルトでは、main 関数まで実行します。他の位置まで実行する場合は、そ の位置の名前を入力します。アセンブララベルかそれに相当するもの ( 関数名 など ) を指定できます。 チェックボックスを選択していない場合は、リセットごとにプログラムカウン タに通常のハードウェアリセットアドレスが格納されます。 C-SPY の起動時に ブレークポイントが設定されていない場合は、ステップ実 行をする必要があることと、それには非常に時間がかかることを通知するワー ニングメッセージが表示されます。そこでステップ実行を継続するか、最初の 命令で停止するかを選択できます。最初の命令で停止することを選択した場 合、デバッガは [Run to] ボックスで入力した位置ではなく、PC ( プログラムカ ウンタ ) に格納されているデフォルトリセット位置から実行を開始します。 注 : C-SPY シミュレータではブレークポイントに制限がないので、 このメッセー ジは表示されません。 ブレークポイントに関するドライバ固有の情報については、[ ヘルプ ] メニュー からオンラインヘルプシステムを参照してください。 セットアップマクロファイルの使用 セットアップマクロファイルは、C-SPY の起動時に自動的にロードするように 指定する標準マクロファイルです。セットアップマクロファイルを定義する と、セットアップマクロ関数とシステムマクロを使用して要求に合せたアク ションを実行できます。したがって、セットアップマクロファイルをロードする ことによって、アクションを自動的に実行するように C-SPY を初期化できます。 セットアップマクロファイルを登録するには、[ マクロファイルの使用 ] を選 択 し て、セ ッ ト ア ッ プ マ ク ロ フ ァ イ ル の パ ス と フ ァ イ ル 名、た と え ば 「Setup.mac」を入力します。ファイル名拡張子の入力を省略した場合、拡張子 は mac とみなされます。参照ボタンを使用して選択することもできます。 パート 4: デバッグ 107 IAR C-SPY デバッガの設定 セットアップマクロファイルと関数の詳細については、138 ページの「マクロファ イル」を参照してください。セットアップマクロファイルの使用例については、 「パート 2: チュートリアル」の「割込みシミュレーション」を参照してください。 デバイス記述ファイルの選択 C-SPY は、デバイス記述ファイルを使用して、さまざまなターゲットに固有の 調整を行います。このファイルには、たとえば周辺ユニットや CPU レジスタの 定義、およびそれらのグループに関するデバイス固有情報が記述されています。 デバッグセッションでデバイス記述ファイルに記述されているデバイス固有 情報を使用する場合、適切なデバイス記述ファイルを選択する必要がありま す。デバイス記述ファイルは cpuname\config ディレクトリに置かれており、 ファイル名拡張子 ddf が付いています。 デバイスに適合するデバイス記述ファイルをロードするには、C-SPY デバッ ガを起動する前に[プロジェクト]>[オプション]を選択して、[デバッガ]カテゴ リを選択します。[ 設定 ] ページで、デバイス記述ファイルの使用を有効にし て、[デバイス記述ファイル]参照ボタンを使用してファイルを選択します。 セットアップマクロファイルの使用例については、 「パート 2: チュートリアル」 の「割込みシミュレーション」を参照してください。 プラグインモジュールのロード [ プラグイン ] ページでは、ロードしてデバッグセッションで使用できるよう にする C-SPY プラグインモジュールを指定できます。IAR かサードパーティ 製のプラグインモジュールを使用できます。使用可能なモジュールについて は、ソフトウェア販売代理店か IAR システムズの担当者までお問い合せくだ さい。また、IAR システムズの Web サイトでも情報を提供しています。 プラグインモジュールのロード方法については、344 ページの「プラグイン」 を参照してください。 IAR C-SPY RTOS 認識プラグインモジュール 使用している IAR Embedded Workbench バージョンで 1 つ以上のリアルタイム オペレーティングシステムのプラグインモジュールがサポートされている場 合は、IAR C-SPY デバッガで使用するプラグインモジュールを 1 つロードでき ます。C-SPY RTOS 認識プラグインモジュールを使用すると、リアルタイムオ ペレーティングシステム上で構築されたアプリケーションを高度に制御し、モ ニタできます。モニタできるのは、タスクリスト、キュー、セマフォ、メール ボックス、さまざまな RTOS システム変数などの RTOS 固有の項目です。タス ク固有のブレークポイントとタスク固有のステップ実行により、タスクを簡単 にデバッグできます。 デバッグセッションが開始されると、ロードされたプラグイン独自のウィンド ウとボタンが追加されます (RTOS がアプリケーションとリンクされている場 合)。その他のRTOS認識プラグインモジュールについては、 プラグインモジュー ルの製造元にお問い合せください。 IAR Embedded Workbench® IDE 108 ユーザガイド IAR C-SPY® デバッガ IAR C-SPY デバッガの起動 設定が完了したら、デバッガを起動できます。 IAR C-SPYデバッガを起動して現在のプロジェクトをロードするには、[デバッグ] ボタンをクリックします。別の方法として、[プロジェクト]>[デバッグ]コマンド を選択することもできます。 アプリケーションの実行方法と C-SPY の機能の使用方法については、 「パート 4: デバッグ」の残りの章を参照してください。 Embedded Workbench の外部でビルドされた実行可能ファイル IAR Embedded Workbench IDE の外部でビルドされたプロジェクト、たとえば コマンドラインでビルドされたプロジェクトとともに C-SPY をロードするこ ともできます。外部でビルドされたアプリケーションの C-SPY オプションを 設定できるようにするには、IAR Embedded Workbench IDE 内でプロジェクト を作成する必要があります。 外部でビルドされた実行可能ファイルをロードするには、最初にワークスペー ス内にそのファイル用のプロジェクトを作成する必要があります。[ プロジェ クト ]>[ 新規プロジェクトの作成 ] を選択して、プロジェクト名を指定します。 プロジェクトに実行可能ファイルを追加するには、[ プロジェクト ]>[ ファイ ルの追加 ] を選択して、[ ファイルの種類 ] ドロップダウンリストで [All Files] を選択します。実行可能ファイルを見つけます ( ファイル名の拡張子 dxx)。実 行可能ファイルを起動するには、[ ワークスペース ] ウィンドウでプロジェク トを選択して、[ デバッグ ] ボタンをクリックします。プロジェクトは、実行 可能ファイルをリビルドするたびに再利用できます。 このようなプロジェクトで設定する意味があるプロジェクトオプションは、 [ 一般オプション ] カテゴリと [ デバッガ ] カテゴリにだけあります。プロジェ クトの一般オプションは、実行可能ファイルをビルドしたときと同様に設定す るようにしてください。 外部生成アプリケーションをフラッシュするには、対応する sim ファイルが [dxx] ファイルと同じディレクトリに保存されている必要があります。 デバッガの出力をファイルにリダイレクト [ デバッグログ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、診断メッセー ジやトレース情報などのデバッガ出力が表示されます。これらの情報を、後 から簡単に検証できるファイルに記録できると便利な場合があります。[ ログ ファイル ] ダイアログボックス ([ デバッグ ] メニューから表示 ) を使用すると、 C-SPY の出力をファイルに記録できます。デバッガの出力をファイルに記録す ることで、主に 2 つのメリットがあります。 ● ● ファイルをエディタなどの別のツールで開くことができるので、ファイル の中で特に興味のある部分だけ調べることが可能 ファイルには、どこでブレークポイントが停止したかなど、プログラム実 行がどのように制御されたかの履歴が残る パート 4: デバッグ 109 IAR C-SPY デバッガの起動 ファイルに出力される情報は、デフォルトでは [ ログ ] ウィンドウに表示され る内容と同一です。ただし、以下の項目から選択して、ファイルに記録できま す。エラー、ワーニング、システム情報、ユーザメッセージのいずれか、また はすべて。[ ログファイル ] オプションのリファレンス情報については、294 ページの「[ ログファイル ] ダイアログボックス」を参照してください。 IAR Embedded Workbench® IDE 110 ユーザガイド アプリケーションの実行 IAR C-SPY® デバッガには、デバッグ中にアプリケーションを実行する ためのさまざまな機能があります。この章では、以下の内容について 説明します。 ● ソースモードと逆アセンブリモードのデバッグについての概念の違い ● アプリケーションの実行 ● 呼出しスタック ● ターミナル I/O の処理 ソースモードと逆アセンブリモードのデバッグ IAR C-SPY デバッガでは、必要に応じてソースモードと逆アセンブリモードを シームレスに切り替えてデバッグできます。 ソースモードのデバッグは、アプリケーションを短期間で簡単に開発するため の手段であり、コンパイラやアセンブラがどのようにコードを実装したかを知 る必要はありません。エディタウィンドウでは、一度に 1 文ずつアプリケー ションを実行しながら、変数やデータ構造体の値をモニタできます。 逆アセンブリモードのデバッグでは、アプリケーションの重要なセクションに 焦点を当てて、ハードウェアを高い精度で制御することができます。逆アセン ブリウィンドウを開くと、アプリケーションが、ソースコードではなく実際の メモリの内容に基づいて、ニーモニックアセンブリリストとして表示され、一 度にひとつの命令をアプリケーションで実行できます。混在モード表示では、 対応する C/C++ ソースコードと逆アセンブリリストを交互に表示することも できます。 どちらのモードでデバッグしている場合でも、レジスタとメモリを表示した り、その内容を書き換えたりすることができます。 Cソースモードと逆アセンブリモードのそれぞれのデバッグセッションの例に ついては、33 ページの「アプリケーションのデバッグ」を参照してください。 パート 4: デバッグ 111 実行 実行 IAR 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 112 ユーザガイド アプリケーションの実行 [ ステップオーバ ] コマンドは、同じ関数の次のステップポイントまで実行し ます。呼び出された関数の内部にステップインすることはありません。上の例 でステップオーバを実行すると、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 ソースコードを使用している場合に、特に役に立 ちます。また、コンストラクタ、デストラクタ、代入演算子、その他のユーザ 定義演算子など、多くの間接的な関数呼出しを使用する傾向がある Embedded C++ でも、ステップイン機能が非常に役に立ちます。 パート 4: デバッグ 113 実行 細かいステップ実行は、状況によっては役立つ場合もありますが、不必要に処 理を遅くすることもあります。そのため、文単位でステップ実行する機能があ り、これによって高速なステップ実行が可能になります。 実行 [ 実行 ] コマンドは、現在の位置からブレークポイントまたはプログラムの最 後に到達するまで、続けて実行します。 カーソル位置まで実行 [ カーソル位置まで実行 ] コマンドは、ソースコードの現在カーソルのある位 置まで実行します。[ カーソル位置まで実行 ] コマンドは、[ 逆アセンブリ ] ウィンドウと [ 呼出しスタック ] ウィンドウでも使用できます。 強調表示 エディタウィンドウと [ 逆アセンブリ ] ウィンドウの両方で実行を停止するた びに、C-SPY は対応する C/C++ ソースを緑色で強調表示します。さらに、エ ディタウィンドウでは C/C++ ソースレベルでデバッグ時に、[ 逆アセンブリ ] ウィンドウでは逆アセンブリレベルでデバッグ時に、緑色の矢印 が表示され ます。 図 37: C-SPY で強調表示されるソース位置 関数呼出しのない単純な文の場合、通常は文全体が強調表示されます。複数の 関数呼出しを含む文で停止した場合、[ ステップイン ] と [ ステップオーバ ] の 違いを明確に表すために、最初の関数呼出しが強調表示されます。 ときどき、ソースウィンドウの文が通常の強調表示よりも薄い色で強調表示さ れる場合があります。これは、プログラムカウンタはソース文を構成するアセ ンブラ命令を指していても、そこが正確なステップポイントではないことを意 味します。これは、[ 逆アセンブリ ] ウィンドウでステップ実行しているとき によく発生します。プログラムカウンタがソース文の最初の命令を指している 場合は、通常の強調表示色が使用されます。 IAR Embedded Workbench® IDE 114 ユーザガイド アプリケーションの実行 ブレークポイントを使用した停止 アプリケーションにブレークポイントを設定して、必要な位置で停止させるこ とができます。ブレークポイントは、コードセクションに設定してプログラム ロジックが正しいかどうか調べたり、データアクセスに設定してデータが変更 されたタイミングと方法を調べたりできます。使用するデバッガシステムに よっては、他の種類のブレークポイントを使用する場合もあります。たとえ ば、C-SPY シミュレータを使用する場合は、単純なハードウェアデバイスのシ ミュレーションを円滑に実行するための特殊なブレークポイントがあります。 詳細については、「シミュレータ固有のデバッグ」を参照してください。 より高度なシミュレーションでは、ユーザが指定した特定の条件が成立したと きに停止させることができます。また、C-SPY マクロをブレークポイントに接 続することもできます。このマクロは、アクションを実行するように定義する ことができます。たとえば、このアクションで特定のハードウェアの動作をシ ミュレーションできます。 このようにさまざまな使い方ができるので、アプリケーション実行中のさまざ まな段階における変数やレジスタの値などのステータスを検証するための柔 軟なツールとして使用できます。 ブレークポイントシステムやさまざまなブレークポイントの種類の使用方法 の詳細については、「ブレークポイントの使用」を参照してください。 [ ブレーク ] ボタンによる停止 アプリケーションを実行している間は、デバッグツールバーの[ブレーク] ボタンは赤で強調表示されています。[ブレーク]ボタンをクリックするか、 [デバッグ]>[ブレーク]コマンドを選択することによって、アプリケーショ ンの実行を停止することができます。 プログラムの終了位置で停止 通常は、組込みアプリケーションの実行は終了することを想定していません。 これは、アプリケーションが通常は終了しないことを意味します。ただし、デ バッグセッションのように、終了を制御する必要がある場合もあります。アプ リケーションは、終了ラベルが含まれる特殊なライブラリにリンクすることが できます。そのラベルにはブレークポイントが自動的に設定され、そこまで到 達すると実行を停止します。C-SPY を起動する前に、[ プロジェクト ]>[ オプ ション ] を選択して、[ リンカ ] カテゴリを選択します。[ 出力 ] ページで、[ ラ ンタイム管理モジュール付き (-r)] オプションを選択します。 呼出しスタック情報 CPUNAMEIARC/C++ コンパイラは、大量のバックトレース情報を生成します。 これにより、C-SPY は、実行に影響を及ぼすことなく、いつでも呼出しチェー ン全体を表示できます。この機能は、通常、以下の 2 つの目的で使用します。 ● ● 現在の関数の呼出し元のコンテキストを決定する場合 不正な変数やパラメータの値を検出したときに、その発生元をトレースし て、呼出しチェーン内で問題が発生した関数を特定する場合 パート 4: デバッグ 115 ターミナル I/O [呼出しスタック]ウィンドウは、[表示]メニューからアクセスでき、関数呼出し リストを表示します。上端には現在の関数が表示されます。呼出しチェーンで関 数を調べる場合、関数呼出しフレームをダブルクリックすると、影響を受けるす べてのウィンドウの内容が更新されて、その呼出しフレームの状態が表示されま す。影響を受けるウィンドウには、エディタ、[ローカル]、[レジスタ]、[ウォッ チ]、[逆アセンブリ]の各ウィンドウがあります。通常、関数がすべてのレジスタ を使用することはないので、一部のレジスタは状態が未定義であり、そのときは ダッシュ記号(---)で表示されます。[呼出しスタック]ウィンドウのリファレンス情 報については、282 ページの「[呼出しスタック]ウィンドウ」を参照してください。 エディタウィンドウと [ 逆アセンブリ ] ウィンドウでは、最上位または現在の 呼出しフレームは緑色で強調表示され、他のフレームを検証しているときは黄 色で強調表示されます。 使いやすさを高めるために、呼出しスタックで関数を選択して、[ デバッグ ] メニューやコンテキストメニューで[カーソル位置まで実行]コマンドをクリッ クすると、選択されている関数を実行できます。 アセンブラソースコードには、自動的にバックトレース情報が挿入されること はありません。適切な CFI アセンブラディレクティブをソースコードに追加す ると、アセンブラモジュールの呼出しチェーンも表示できるようになります。 詳細については、 『IAR アセンブラリファレンスガイド』を参照してください。 ターミナル I/O 場合によっては、stdin や stdout を使用するアプリケーションの構文を、 実際のハードウェアデバイスを入出力として使用しないでデバッグする必 要があります。[ ターミナル I/O] ウィンドウは、[ 表示 ] メニューからアクセ スでき、アプリケーションへ入力したり、アプリケーションからの出力を表示 したりできます。この機能は、以下の 2 つのコンテキストで使用します。 ● ● アプリケーションが stdin と stdout を使用している場合 デバッグトレース出力を生成する場合 このウィンドウを使用するには、[I/O エミュレーションモジュール付き ] オプ ションを使用して、アプリケーションをリンクする必要があります。それに よって、C-SPY は stdin、stdout、stderr をこのウィンドウに転送します。 リファレンス情報については、283 ページの「[ ターミナル I/O ] ウィンドウ」 を参照してください。 stdin と stdout をファイルに転送 stdin と stdout をファイルに直接転送することもできます。 ファイルをエディ タなどの別のツールで開くことができるので、ファイルの中で特に興味のある 部分だけ調べることができます。[ ターミナル I/O ログファイル ] ダイアログ ボックス ([ デバッグ ]>[ ログ ] を選択して表示 ) では、出力先ログファイルを 選択し、C-SPY のターミナル I/O の入力と出力のログをそのファイルに保存す ることができます。 リファレンス情報については、295 ページの「[ ターミナル I/O ログファイル ] ダイアログボックス」を参照してください。 IAR Embedded Workbench® IDE 116 ユーザガイド 変数と式の扱い この章では、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 の使用 ISO/ANSI C 規格に準じて、2つの sizeof の構文形式をとります。 sizeof( タイプ ) sizeof 式 パート 4: デバッグ 117 C-SPY 式 前者がタイプ用で、後者が式用です。 sizeof 演算子の使用時に式を括弧で囲いません。 たとえば、 sizeof C-SPY では、 (x+2) の代わりに sizeof x+2 を使用します。 アセンブラシンボル アセンブラシンボルは、アセンブララベルかレジスタ名です。つまり、汎用レ ジスタと、プログラムカウンタやステータスレジスタなどの特殊機能レジスタ があります。デバイス記述ファイルを使用する場合は、I/O ポートなど、メモ リにマッピングされたすべての周辺ユニットも、CPU レジスタと同様にアセン ブラシンボルとして使用できます。108 ページの「デバイス記述ファイルの選 択」を参照してください。 アセンブラシンボルの頭に # が付いている場合は C-SPY 式で使用できます。 例 実行される内容 #pc++ プログラムカウンタ値をインクリメント myptr = #label7 myptr にそのゾーン内の label7 のアドレスを設定 表 9: C-SPY アセンブラシンボル式 ハードウェアレジスタとアセンブララベルの名前が衝突する場合、ハードウェ アレジスタが優先的に選択されます。そのような場合にアセンブララベルを参 照するには、ラベルをバッククォート (ASCII 文字 0x60) で囲む必要がありま す。以下に例を示します。 例 実行される内容 #pc プログラムカウンタを参照 #`pc` アセンブララベル pc を参照 表 10: ハードウェアレジスタとアセンブララベルの名前が衝突する場合の処理 [ レジスタ ] ウィンドウには、デフォルトで使用できるプロセッサ固有のシン ボルが、CPU Registers レジスタグループに基づいて表示されます。134 ペー ジの「レジスタグループ」を参照してください。 マクロ関数 マクロ関数は、C-SPY 変数定義と、マクロが呼び出されたときに実行されるマ クロ文から構成されます。 C-SPY マクロ関数とその使用方法の詳細については、138 ページの「マクロ言 語」を参照してください。 マクロ変数 マクロ変数の定義と配置はアプリケーションの外部で行われ、C-SPY 式で使用 できます。C 言語のシンボルと C-SPY マクロ変数の名前が衝突する場合、C-SPY マクロ変数が C 言語の変数よりも優先的に選択されます。マクロ変数に代入す ると、その値と型の両方に代入が行われます。 IAR Embedded Workbench® IDE 118 ユーザガイド 変数と式の扱い C-SPY マクロ変数とその使用方法の詳細については、345 ページの「マクロ言 語」を参照してください。 変数情報の制限 C 言語の変数の値は、ステップポイント、すなわち文の先頭の命令と関数呼出 しの位置でのみ有効です。その場合、エディタウィンドウで淡い緑色で強調表 示されます。実際には、変数の値はそれ以外の位置でもアクセスでき、正しい 値を示すことがほとんどです。 プログラムカウンタが文の内部でステップポイント以外の位置を指している 場合は、その文または文の一部は通常の強調表示色よりも薄い色で強調表示さ れます。 最適化の影響 コンパイラは、予想される動作が実行できる範囲内であれば、可能な限り自 由にアプリケーションソフトウェアを最適化します。プロジェクト設定に よっては、最高水準の最適化を実行すると、コードのサイズは小さくなり、 実行時間は速くなりますが、コンパイルに要する時間は長くなります。生成 されたコードとソースコードの関連もわかりにくくなるので、デバッグは難 しくなります。通常は、高いレベルで最適化を行うと、コードに変更が生じ、 予想と違って、変数の値を参照できなくなります。 1 つ例を示します。 foo() { int i = 42; ... x = bar(i); // ここまで i の値は C-SPY に通知されません ... } 変数 i が宣言されてから実際に使用されるまで、コンパイラはその変数用のス ペースをスタックやレジスタに確保する必要はありません。コンパイラはこの コードを最適化することができますが、C-SPY はその変数が実際に使用される までその値を表示することができなくなります。一時的に使用できない状態に ある変数の値を表示しようとすると、C-SPY は以下のメッセージを表示します。 使用不可能 デバッグセッションで変数の値を常に把握する必要がある場合は、コンパイル 時に一番低い最適化レベル、[None] を指定する必要があります。 パート 4: デバッグ 119 変数と式の表示 変数と式の表示 変数の値を参照、計算する方法はいろいろあります。 ● ● ● ● ● ● ● ● ツールチップウォッチは、エディタウィンドウで表示され、変数や、より 複雑な式の値を表示するための最も簡単な方法です。ポインタで変数を指 すだけで、変数の横にその値が表示されます。 [ 自動 ] ウィンドウ ([ 表示 ] メニューから表示 ) には、現在の文かその近くにあ る変数が自動的に表示されます。 [ローカル]ウィンドウ([表示]メニューから表示)には、ローカル変数、 つまり アクティブな関数の自動変数と関数パラメータが自動的に表示されます。 [ウォッチ]ウィンドウ([表示]メニューから表示)では、C-SPYの式や変数の値 をモニタすることができます。 [ ライブウォッチ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、アプリケー ション実行中に継続的に式の値がサンプリングされて表示されます。式の 変数は、グローバル変数のように、静的に特定できる必要があります。 [ 静的 ] ウィンドウ ([ 表示 ] メニューから表示 ) は、静的記憶寿命変数の値を自 動的に表示します。 [ クイックウォッチ ] ウィンドウについては、120 ページの「[ クイックウォッ チ ] ウィンドウの使用」を参照してください。 トレースシステムについては、121 ページの「トレースシステムの使用」を 参照してください。 列の長さ以上の長さのテキストは、[ トレース ] ウィンドウ以外の上記のすべて のウィンドウで切り詰められており、該当するテキストにマウスポインタを置 くと、ツールチップ情報が表示されます。 他のウィンドウのリファレンス情報については、261 ページの「C-SPY のウィ ンドウ」を参照してください。 ウィンドウの操作 ウィンドウはどれも使いやすく設計されています。ウィンドウでは、式の追 加、変更、削除、表示フォーマットの変更を行うことができます。 どのウィンドウでも、ウィンドウ内で右クリックすると、便利なコマンドを含 むコンテキストメニューが表示されます。[ ローカル ] ウィンドウと [ クイッ クウォッチ ] ウィンドウ以外のウィンドウでは、ウィンドウ間のドラッグアン ドドロップもサポートされています。 値を追加するには、点線の長方形をクリックして、調べる式を入力します。式 の値を変更するには、[ 値 ] フィールドをクリックして、その内容を変更しま す。式を削除するには、式を選択して、Delete キーを押します。 [ クイックウォッチ ] ウィンドウの使用 [ クイックウォッチ ] ウィンドウ ([ 表示 ] メニューから表示 ) では、変数およ び式の値を監視することができ、式を評価できます。 [ クイックウォッチ ] ウィンドウと [ ウォッチ ] ウィンドウには、以下に示すよ うな違いがあります。 IAR Embedded Workbench® IDE 120 ユーザガイド 変数と式の扱い ● ● [ クイックウォッチ ] ウィンドウを使用すると、短時間で式を検証して、評価 することができます。評価式を右クリックして、表示されるコンテキスト メニューで [ クイックウォッチ ] を選択します。[ クイックウォッチ ] ウィ ンドウに式が自動的に表示されます。 [ウォッチ]ウィンドウと違って、 [クイックウォッチ]ウィンドウでは式を評価 するタイミングを細かく制御できます。代入や C-SPY マクロ関数などアク ションのある式の場合は、条件を制御しながら評価することができます ( 単 一変数では必要ない場合が多い )。 トレースシステムの使用 トレースは、ターゲットシステムで記録されたイベントシーケンスであり、通 常は実行されたマシン命令です。使用する C-SPY ドライバに応じて、他のタ イプのトレースデータを記録できます。たとえば、メモリのリード / ライトア クセス、C-SPY 式の値などを記録できます。 トレースシステムを使用することで、特定の状態 ( アプリケーションのクラッ シュなど ) になるまでのプログラムの流れをトレースしたり、トレース情報を 使用して問題の原因を特定したりすることができます。トレース情報は、不規 則な症状が散発的に発生するようなプログラミングエラーを特定する際に役 に立ちます。また、テストドキュメントとしても使用できます。 一部の C-SPY ドライバは、トレースシステムをサポートしていません。使用 している C-SPY ドライバが提供するトレースシステムとコンポーネントの詳 細については、対応するドライバのドキュメントを参照してください。 使用できるトレースシステム機能は、使用している C-SPY ドライバによって 異なります。ただし、[ トレース ] ウィンドウ、[ トレースを検索 ] ウィンドウ、 [ トレースを検索 ] ダイアログボックスは、使用している C-SPY ドライバに関 係なく、常に使用できます。トレース情報はファイルに保存して、後から分析 できます。 トレース ] ウィンドウとブラウズモード [ トレース ] ウィンドウに表示される情報の種類は、使用している C-SPY ドラ イバによって異なります。異なるトレースデータは別の列に表示されますが、 [ トレース ] 列は、使用しているドライバに関係なく、常に表示されます。対 応するソースコードも表示できます。 [ トレース ] ウィンドウを表示してスクロールするだけで、実行履歴をたどる ことができます。別の方法として、ブラウズモードに入ることができます。ブ ラウズモードに入るには、[ トレース ] ウィンドウで項目をダブルクリックす るか、ツールバーの [ ブラウズ ] ボタンをクリックします。選択された項目が 黄色で表示され、ソースウィンドウと逆アセンブリウィンドウの対応する位置 が強調表示されます。ここで、上向き矢印キーと下向き矢印キーを使用する パート 4: デバッグ 121 変数と式の表示 か、スクロールしてクリックすることで、[ トレース ] ウィンドウ内を移動で きます。ソースウィンドウと逆アセンブリウィンドウも、対応する位置が表示 されるように更新されます。もう一度ダブルクリックすると、ブラウズモード が終了します。 トレースデータの検索 記録されたトレースデータに対して高度な検索を実行できます。[ トレースを 検索 ] ダイアログボックスで検索基準を指定すると、[ トレースを検索 ] ウィ ンドウに結果が表示されます。 [ トレースを検索 ] ウィンドウは [ トレース ] ウィンドウと非常によく似てお り、表示される列とデータは同じですが、表示される行は、指定された検索基 準に一致した行だけです。[ トレースを検索 ] ウィンドウで項目をダブルクリッ クすると、[ トレース ] ウィンドウに同じ項目が表示されます。 アセンブラ変数の表示 アセンブララベルは、型に関する情報を何も持たないので、C-SPY はそれ以外 の情報が与えられなければ、そのラベルの位置にあるデータを簡単に表示する ことはできません。データを簡単に表示する方法として、デフォルトでは、 C-SPYはアセンブララベルの位置にあるすべてのデータを int 型の変数として 処理します。ただし、[ ウォッチ ]、[ クイックウォッチ ]、[ ライブウォッチ ] の各ウィンドウでは、変数宣言に合せて別の解釈を選択することができます。 以下に示す図では、4 つの変数が [ ウォッチ ] ウィンドウに表示され、対応す る宣言が左側のアセンブラソースファイルで示されています。 図 38: [ ウォッチ ] ウィンドウでのアセンブラ変数の表示 IAR Embedded Workbench® IDE 122 ユーザガイド 変数と式の扱い asmvar4 は、元のアセンブラ宣言では 1 バイトデータとして意図していたのに 対し、[ ウォッチ ] ウィンドウでは int 型として表示されていることに注意し てください。コンテキストメニューを使用すると、たとえば 8 ビットの符号な し変数として表示するように指定できます。asmvar3 変数は、すでにそのよう に指定されています。 パート 4: デバッグ 123 変数と式の表示 IAR Embedded Workbench® IDE 124 ユーザガイド ブレークポイントの使用 この章では、ブレークポイントシステムとブレークポイントを作成し、 モニタする複数の方法について説明します。 ブレークポイントシステム C-SPY® のブレークポイントシステムを使用すると、デバッグ中のアプリケー ションで、さまざまな種類のブレークポイントを設定して、必要な位置で実行 を停止することができます。ブレークポイントをコード部分に設定すると、プ ログラムロジックが正しいかどうかを調べたり、トレースを出力したりできま す。コードブレークポイントの他に、使用している C-SPY ドライバによって は、別の種類のブレークポイントを使用できる場合があります。たとえば、 データブレークポイントを設定すると、データがいつどのように変更されるか を調べることができます。シミュレータドライバを使用している場合は、イミ ディエイトブレークポイントも設定できます。 設定したブレークポイントはすべて [ ブレークポイント ] ウィンドウに表示さ れ、簡単にそれらをモニタ、有効 / 無効にすることができます。 より高度なシミュレーションでは、ユーザが指定した特定の条件が成立したと きに停止させることができます。また、ブレークポイントで実行を停止するこ となく、C-SPY マクロ関数の実行などのアクションをトリガできます。マクロ 関数を定義すると、ハードウェアの動作のシミュレーションなど、さまざまな アクションを実行できます。 デバッグセッションがアクティブでなくても、コードを編集しながらブレーク ポイントを設定できます。設定したブレークポイントは、デバッグセッション を開始するときに検証されます。ブレークポイントはデバッグセッション終了 後も保持されます。 C-SPY では、 複数の方法でブレークポイントを定義できます。 このようにさまざまな使い方ができるので、アプリケーションのステータスを 検証するための柔軟なツールとして使用できます。 ブレークポイントの定義 定義したブレークポイントは、[ ブレークポイント ] ウィンドウに表示されま す。このウィンドウでは、すべてのブレークポイントの表示、ブレークポイン トの有効化 / 無効化、新しいブレークポイントを定義するためのダイアログ ボックスの表示を実行できます。詳細については、203 ページの「[ ブレーク ポイント ] ウィンドウ」を参照してください。 ブレークポイントは行単位よりも細かく、ステップ単位で設定されます。ス テップの精度の詳細については、112 ページの 「ステップ」を参照してください。 パート 4: デバッグ 125 ブレークポイントの定義 いくつかの方法でブレークポイントを設定できます。[ メモリ ] ウィンドウ、ダ イアログボックス、または予め定義されているシステムマクロのいずれかに よって [ ブレークポイントの切り替え ] コマンドを使用します。異なる方法を 使用することで、複雑さや自動化のレベルを変えることができます。 シンプルなコードブレークポイントの切り替え コードブレークポイントのトグルは、簡単にブレークポイントを設定するため の方法です。エディタウィンドウと [ 逆アセンブリ ] ウィンドウの両方で、次 の方法を使用できます。 ● ● ● ● ウィンドウの左側の灰色で表示された余白部分をダブルクリック C 言語のソース文かアセンブラ命令にブレークポイントを設定する挿入ポイン トを配置して、ツールバーの [ ブレークポイントの切り替え ] ボタンをクリック [ 編集 ]>[ ブレークポイントの切り替え ] を選択 右クリックして、表示されるコンテキストメニューで [ ブレークポイントの 切り替え ] を選択 ブレークポイントアイコン ブレークポイントはエディタウィンドウの左余白にあるアイコンでマークを 付け、コードブレークポイント用とログブレークポイント用で違うアイコンを 使用します。 コードブレーク ポイント ログブレーク ポイント 無効なブレーク ポイント 図 39: ブレークポイントアイコン ブレークポイントアイコンが表示されない場合は、[ ブックマークの表示 ] オプ ションが選択されていることを確認します。236 ページの「[ エディタ ] オプ ション」を参照してください。 ブレークポイントアイコンは、設定されているブレークポイントが同じ位置に 複数あるかどうかは、示しません。ただし、マウスポインタをブレークポイン トアイコンに置くと、同じ位置に設定したすべてのブレークポイントに関する 詳細なツールチップ情報を取得できます。最初の行がユーザブレークポイント 情報を、後続する行が、ユーザブレークポイントの実装に使用する物理ブレー クポイントを説明します。後者の情報は、[ プレークポイントの使用 ] ダイア ログボックスでも表示されます。 注 : ブレークポイントアイコンは、使用している C-SPY ドライバによって異 なった外観になります。ブレークポイントアイコンの詳細については、ドライ バ関連ドキュメントを参照してください。 IAR Embedded Workbench® IDE 126 ユーザガイド ブレークポイントの使用 [ メモリ ] ウィンドウによるブレークポイントの設定 [ メモリ ] ウィンドウのメモリロケーションに直接ブレークポイントを設定で きます。ウィンドウを右クリックして、表示されるコンテキストメニューから ブレークポイントコマンドを選択します。範囲にブレークポイントを設定する には、メモリの該当領域を選択します。 ブレークポイントは強調表示されません。その表示、編集、削除は、[ ブレー クポイント]ウィンドウで行います。このウィンドウには、[表示]メニューから アクセスできます。このウィンドウで設定したブレークポイントは、リードと ライトの両方のアクセスでトリガされます。[メモリ]ウィンドウで定義したブ レークポイントはすべて、デバッグセッションが終了後も保持されます。 [ メモリ ] ウィンドウで複数の種類のブレークポイントを設定できるのは、使 用しているドライバがそれらの種類のブレークポイントをサポートしている 場合だけです。 ダイアログボックスによるブレークポイントの定義 ダイアログボックスを使用すると、グラフィカルインタフェースで対話的にブレー クポイントの特性を微調整できます。この方法では、オプションを設定した後、す ぐにブレークポイントが意図したとおりに動作するかどうかをテストできます。 新しいブレークポイントを定義するには、以下の手順を実行します。 1 [表示]>[ブレークポイント]を選択して、[ブレークポイント]ウィンドウを開きます。 2 [ブレークポイント]ウィンドウで右クリックして、コンテキストメニューを開きます。 3 コンテキストメニューで、[ 新規ブレークポイント ] を選択します。 4 サブメニューで、設定するブレークポイントの種類を選択します。使用してい る C-SPY ドライバによっては、別の種類のブレークポイントを使用できる場 合があります。 既存のブレークポイントを変更するには、以下の手順を実行します。 1 [表示]>[ブレークポイント]を選択して、[ブレークポイント]ウィンドウを開きます。 2 [ ブレークポイント ] ウィンドウで、変更するブレークポイントを選択します。 右クリックして、コンテキストメニューを開きます。 3 コンテキストメニューで、[ 編集 ] を選択します。 ブレークポイントダイアログボックスが表示されます。ブレークポイント設定を 指定して、[OK] をクリックします。ブレークポイントは、[ ブレークポイント ] ウィンドウに表示されます。 ブレークポイントダイアログボックスで定義したブレークポイントはすべて、 デバッグセッションが終了後も保持されます。 コードブレークポイントとログブレークポイントのリファレンス情報につい ては、205 ページの「[ コード ] ブレークポイントダイアログボックス」と 206 ページの「[ ログ ] ブレークポイントダイアログボックス」を参照してくださ い。それ以外の種類のブレークポイントの詳細については、ドライバ固有のド キュメントを参照してください。 パート 4: デバッグ 127 ブレークポイントの定義 不正な関数引数のトレース 関数が呼び出されるときに、そのポインタ引数に誤って NULL が渡されること がある場合は、関数の先頭行にブレークポイントを設定して、パラメータが 0 のときだけ真になる条件を指定すると便利です。このブレークポイントは、問 題となる状況が実際に発生するまでトリガされません。 実行を停止して、または停止しないでタスクを実行 ブレークポイントがトリガされたときに、実行を停止して、または実行を停止 しないで、タスクを実行できます。 [ アクション ] テキストボックスを使用すると、 C-SPY マクロ関数などのアクショ ンをブレークポイントに関連付けることができます。ブレークポイントがトリガ され、アプリケーションの実行が停止すると、マクロ関数が実行されます。 実行を停止しないでタスクを実行する必要がある場合は、0 ( 偽 ) を返す条件を 設定します。ブレークポイントがトリガされると条件が評価されますが、結果 は真ではないので、アプリケーションの実行は続行されます。 C-SPY マクロ関数が単純なタスクを実行する例を考えます。 __var my_counter; count() { my_counter += 1; return 0; } この関数をブレークポイントの条件として使用するには、[条件]の[式]テキス トボックスに「count()」 と入力します。これにより、ブレークポイントがト リガされると、タスクが実行されます。マクロ関数countは常に0を返すので、 条件は偽であり、プログラムは停止することなく自動的に再開されます。 システムマクロによるブレークポイントの定義 ブレークポイントを定義するには、[ ブレークポイント ] ダイアログボックス を使用する方法の他に、C-SPY の組込みシステムマクロを使用する方法もあり ます。マクロを使用してブレークポイントを定義すると、ブレークポイントの 特性は関数パラメータとして指定されます。 マクロによる定義は、要求どおりのブレークポイント設定ができない場合に便利 です。ブレークポイントは組込みシステムマクロを使用してマクロファイルに定 義します。C-SPY を起動すると、マクロファイルが実行されます。これにより、 ブレークポイントは、C-SPY を起動するたびに自動的に設定されます。他にも、 デバッグセッションがドキュメント化される、開発プロジェクトに携わる複数の エンジニア間でマクロファイルを共有できるといった長所があります。 IAR Embedded Workbench® IDE 128 ユーザガイド ブレークポイントの使用 [ ブレークポイント ] ウィンドウでは、システムマクロを使用して設定された ブレークポイントも表示 / 変更できます。ダイアログボックスを使用して定義 されたブレークポイントと異なり、システムマクロを使用して定義されたブ レークポイントはデバッグセッションを終了するとすべて削除されます。 使用できるブレークポイントマクロを以下に示します。 __setCodeBreak __setDataBreak __setSimBreak __clearBreak ブレークポイントマクロの詳細については、 「C-SPY® マクロリファレンス」を 参照してください。 セットアップマクロファイルを使用して C-SPY 起動時にブレークポ イントを定義 セットアップマクロファイルを使用して C-SPY の起動時にブレークポイント を定義できます。手順の詳細については、141 ページの「セットアップマクロ とセットアップファイルによる登録と実行」を参照してください。 すべてのブレークポイントの表示 ブレークポイントは、[ブレークポイント]ウィンドウと[ブレークポイントの 使用]ダイアログボックスで表示できます。 [ ブレークポイント ] ウィンドウについては、203 ページの「[ ブレークポイン ト ] ウィンドウ」を参照してください。 [ ブレークポイントの使用 ] ダイアログボックスの使用 [ プレークポイントの使用 ] ダイアログボックスは、[ シミュレータ ] メニュー など、C-SPY のドライバ固有のメニューからアクセスでき、すべてのアクティ ブなブレークポイントのリストを表示します。 図 40: [ プレークポイントの使用 ] ダイアログボックス パート 4: デバッグ 129 すべてのブレークポイントの表示 [ プレークポイントの使用 ] ダイアログボックスには、ターゲットシステムで現 在設定されているすべてのブレークポイントのリストが表示されます。これら のブレークポイントには、ユーザ定義によるブレークポイントと C-SPY が内部 的に使用しているブレークポイントが含まれます。リスト内の各ブレークポイ ントについて、アドレスとアクセスタイプが表示されます。また、各ブレーク ポイントを拡張すると、その発生元が表示されます。このダイアログボックス の項目のフォーマットは、使用している C-SPY ドライバによって異なります。 このダイアログボックスでは、すべてのブレークポイントの下位レベルの情報が 表示されます。これらの項目は、[ ブレークポイント ] ダイアログボックスで表 示されるブレークポイントのリストと関連はありますが、同一ではありません。 使用できる下位レベルのブレークポイントの数を超えると、デバッガがステッ プ実行するようになります。この場合、大幅に実行速度が低下します。そのた め、ブレークポイントの数が限られているデバッガシステムでは、以下の目的 で [ プレークポイントの使用 ] ダイアログボックスを使用すると便利です。 ● すべてのブレークポイントの設定元を特定 ● ターゲットシステムでサポートされているアクティブなブレークポイント の数をチェック ● 可能であれば、使用できるブレークポイントを効率よく利用できるように デバッガを設定 使用しているデバッガシステムで使用できるブレークポイントの数と使用で きるブレークポイントを効率よく使用する方法については、使用しているデ バッガシステムに対応する本書のパートでブレークポイントについて説明し ているセクションを参照してください。 ブレークポイントの設定元 デバッガシステムには複数のブレークポイントの設定元が存在します。 ユーザブレークポイント ([ ブレークポイント ] ダイアログボックスを使用して 定義したか、エディタウィンドウでブレークポイントをトグルで定義したブレーク ポイント)は、多くの場合下位レベルのブレークポイントを1つずつ使用します が、状況によってこの数は大きく変わります。一部のユーザブレークポイント は複数の下位レベルのブレークポイントを使用します。逆に複数のユーザブ レークポイントが 1 つの下位レベルのブレークポイントを共有することもでき ます。ユーザブレークポイントは、たとえば「Data @[R] callCount」のよう に、[プレークポイントの使用]ダイアログボックスと[ブレークポイント]ダイ アログボックスに同じように表示されます。 C-SPY 自身もブレークポイントを使用します。C-SPY は以下の場合にブレーク ポイントを設定します。 ● C-SPY オプション [Run to] が選択され、 いずれかのステップコマンドが使用 されている場合。これらはデバッガシステムの実行時にのみ設定される一 時的なブレークポイントです。したがって、[ プレークポイントの使用 ] ウィ ンドウにはこれらのブレークポイントは表示されません。 ● リンカオプション[I/Oエミュレーションモジュール付き]が選択されている場合 この 2 種類のブレークポイントの設定元は、[ プレークポイントの使用 ] ダイ アログボックスに、たとえば「C-SPY Terminal I/O & libsupport module」 のように表示されます。 また、リアルタイムオペレーティングシステム用モジュールなどの C-SPY プ ラグインモジュールもブレークポイントを使用する場合があります。 IAR Embedded Workbench® IDE 130 ユーザガイド メモリとレジスタのモニタ この章では、以下に示す IAR C-SPY® デバッガの機能を使用してメモリ とレジスタを調べる方法について説明します。 メモリアドレッシング C-SPY では、ゾーンは名前付きメモリエリアを表します。メモリアドレス、ま たはメモリアドレス ( ロケーション ) は、ゾーンとそのゾーン内のオフセット 値の組合せです。メモリゾーンはさまざまなコンテキストで使用されますが、 おそらく [ メモリ ] ウィンドウと [ 逆アセンブリ ] ウィンドウで最も重要な役 割を果たします。これらのウィンドウにある [ ゾーン ] ボックスでは、表示す るメモリゾーンを選択できます。 メモリゾーンは、デバイス記述ファイルで定義されます。詳細については、 108 ページの「デバイス記述ファイルの選択」を参照してください。 メモリとレジスタのモニタ用ウィンドウ C-SPY には、メモリとレジスタをモニタするウィンドウが多数あり、それらは 個々に [ 表示 ] メニューから表示できます。 ● [ メモリ ] ウィンドウ 指定メモリエリアであるメモリゾーンの最新状態を表示して、編集できま す。様々な色を使用して、アプリケーションの実行に伴うデータカバレッ ジを示します。指定エリアに特定の値を設定して、メモリ位置と範囲に直 接ブレークポイントを設定できます。このウィンドウで数個のインスタン スを開き、様々なメモリエリアをモニタできます。 ● [ シンボルメモリ ] ウィンドウ 静的記憶寿命変数がメモリ内でどのように配置されるかを表示します。こ れにより、メモリの使用が理解し易くなり、バッファオーバランなど上書 きされた変数に起因して発生した問題の調査に役立ちます。 ● [ スタック ] ウィンドウ メモリ内でのスタック変数の配置を含むスタック内容を表示します。また、 スタックの整合性チェックを実行し、スタックオーバフローを検出して ワーニングすることもできます。たとえば、[ スタック ] ウィンドウを使用 して、スタックの最適サイズを特定できます。 パート 4: デバッグ 131 メモリとレジスタのモニタ用ウィンドウ ● [ レジスタ ] ウィンドウ プロセッサレジスタとSFRの内容の最新状態を表示し、 それを編集できます。 特定の変数の内容を表示するには、その変数を [ メモリ ] ウィンドウまたは [ シンボルメモリ ] ウィンドウにドラッグします。変数が配置されているメモ リエリアが表示されます。 [ メモリ ] ウィンドウの使用 [ メモリ ] ウィンドウでは、指定されたメモリエリアの最新状態を表示して、編 集できます。 ゾーン表示 [ 移動 ] メモリ アドレス 図 41: [ メモリ ] ウィンドウ 表示エリアに、現在表示しているアドレス、選択したフォーマットのメモリ内 容、ASCII フォーマットのメモリ内容が表示されます。[ メモリ ] ウィンドウ の内容は、16 進表示と ASCII 表示のどちらの部分でも編集できます。 リファレンス情報については、266 ページの「[ メモリ ] ウィンドウ」を参照 してください。127 ページの「[ メモリ ] ウィンドウによるブレークポイント の設定」も参照してください。 IAR Embedded Workbench® IDE 132 ユーザガイド メモリとレジスタのモニタ [ スタック ] ウィンドウの使用 [ スタック ] ウィンドウを開く前に、それが有効であることを確認する必要があ ります。[ スタック ] ウィンドウを有効にするには、[ プロジェクト ]>[ オプショ ン ]>[ デバッガ ]>[ プラグイン ] を選択して、表示されるプラグインのリストで [ スタック ] を選択します。C-SPY では、[ 表示 ]>[ スタック ] を選択して、[ ス タック ] ウィンドウを表示することができます。[ スタック ] ウィンドウの複数 のインスタンスを開き、それぞれ異なるスタックを表示する ( スタックが複数 ある場合 ) か、同一のスタックを異なる表示設定で表示することができます。 スタック 現在のスタッ ビュー クポインタ 使用中のスタック メモリ、濃い灰色 未使用のスタックメ モリ、淡い灰色 ツールチップ情報を提 供するグラフィカルス タックバー 現在のスタック ポインタ 図 42: [ スタック ] ウィンドウ [ スタック ] ウィンドウの詳細なリファレンス情報、スタックの使用量と制限 値の計算方法については、287 ページの「[ スタック ] ウィンドウ」を参照し てください。[ スタック ] ウィンドウに固有のリファレンス情報については、 248 ページの「[ スタック ] オプション」を参照してください。 マウスポインタをスタックバーの上に移動すると、スタック使用量に関する ツールチップ情報が表示されます。 スタックオーバフローの検出 [ ツール ]>[ オプション ]>[ スタック ] を選択して [Enable stack checks] オプショ ンを選択すると、スタックオーバフローの検出に必要な機能も有効になりま す。これは、アプリケーションが実行を停止したときに、C-SPY がスタック オーバフローのワーニングを出力できることを意味します。ワーニングは、ス タック使用量がユーザが指定するしきい値を超えたときか、スタックポインタ がスタックメモリ範囲以外のエリアを指したときに、出力されます。 スタックの内容の表示 [ スタック ] ウィンドウの表示エリアにはスタック内容が表示されます。この 表示は、さまざまな状況で役に立ちます。以下に例を示します。 ● ● C モジュールからアセンブラモジュールを呼び出すか、その逆のときに、ス タック使用量を調べる場合 適切なエレメントがスタック上に配置されているかどうかを調べる場合 パート 4: デバッグ 133 メモリとレジスタのモニタ用ウィンドウ ● スタックが正しく復元されているかどうかを調べる場合 レジスタの操作 [ レジスタ ] ウィンドウはプロセッサレジスタと特殊機能レジスタの最新状態 を表示し、編集できます。 図 43: [ レジスタ ] ウィンドウ C-SPY が停止するたびに、前回停止したときから変更された値が強調表示され ます。レジスタの内容を編集するには、レジスタをクリックして、値を変更し ます。レジスタによっては、展開して、ビット別またはビットのサブグループ 別に表示できます。 表示フォーマットを変更するには、[ ツール ]>[ オプション ] を選択して、[ レ ジスタフィルタ ] ページで [ 基数 ] 設定を変更します。 レジスタグループ レジスタは、メモリにマッピングされた周辺ユニットレジスタや CPU レジス タなどが多数存在するので、[ レジスタ ] ウィンドウに同時にすべてのレジス タを表示するのは不便です。その場合は、レジスタをレジスタグループに分割 する方法があります。デフォルトでは、デバッガには [CPU Registers] という レジスタグループが 1 つだけ存在します。 [CPU Registers] の他に、cpuname\config にあるデバイス記述ファイルに定義 済のレジスタグループもあります。これらのレジスタグループを使用すること によって、すべての SFR レジスタをレジスタウィンドウで表示できます。デ バイス記述ファイルには、特殊機能レジスタとそのグループを定義するセク ションがあります。 [ レジスタ ] ウィンドウで表示するレジスタグループを、ドロップダウンリス トで選択することができます。[ レジスタ ] ウィンドウは複数のインスタンスを 同時に開くことができるので、異なるレジスタグループを同時にトレースでき ます。 IAR Embedded Workbench® IDE 134 ユーザガイド メモリとレジスタのモニタ 定義済レジスタグループの有効化 定義済レジスタグループを使用するには、デバイスに適合するデバイス記述 ファイルを選択します。108 ページの「デバイス記述ファイルの選択」を参照 してください。 C-SPY の実行中に [ ツール ]>[ オプション ] を選択すると、[ レジスタフィルタ ] ページに使用できるレジスタグループが表示されます。 アプリケーション固有のグループの定義 定義済レジスタグループの他に、アプリケーションでのレジスタの使用方法に 合せてユーザ独自のレジスタグループを作成できます。 新しいレジスタグループを定義するには、[ ツール ]>[ オプション ] を選択し て、[ レジスタフィルタ ] タブをクリックします。このページを表示できる のは、IAR C-SPY デバッガの実行中だけです。 図 44: [ レジスタフィルタ ] ページ このダイアログボックスのリファレンス情報については、250 ページの「[ レ ジスタフィルタ ] オプション」を参照してください。 パート 4: デバッグ 135 メモリとレジスタのモニタ用ウィンドウ IAR Embedded Workbench® IDE 136 ユーザガイド C-SPY® マクロシステムの 使用 IAR C-SPY デバッガには、包括的なマクロシステムが含まれており、デ バッグ処理の自動化や、周辺デバイスのシミュレーションができます。 マクロを複雑なブレークポイントと割込みシミュレーションと関連付 けて使用すると、さまざまなタスクを実行できます。 この章では、マクロシステム、その機能、適用可能な目的、使用方法 について説明します。 マクロシステム C-SPY マクロは、単独で使用することもできますが、複雑なブレークポイント と割込みシミュレーションと関連付けて使用すると、さまざまなタスクを実行 できます。マクロが役に立つ例をいくつか示します。 ● ● ● ● トレース出力、変数値の出力、ブレークポイントの設定などによるデバッ グセッションの自動化。 ハードウェアレジスタの初期化などのハードウェア設定。 スタックの深さを計算する関数など、簡単なデバッグユーティリティ関数 の開発。 周辺デバイスのシミュレーション。 「割込みシミュレーション」を参照して ください。シミュレータドライバを使用している必要があります。 マクロシステムの特長を以下に示します。 ● ● ● ● ● C 言語に似たマクロ言語。独自のマクロ関数を作成できます。 定義済みシステムマクロ。ファイルのオープンやクローズ、ブレークポイ ントの設定、割込みシミュレーションの定義など便利なタスクを実行でき ます。 予約セットアップマクロ。マクロ関数を実行するタイミングの定義に使用 可能。独自の関数はセットアップマクロファイルに定義します。 マクロ関数を 1 つ以上のマクロファイルにまとめるオプション。 マクロ関数とマクロファイルを表示、登録、編集するためのダイアログボッ クス。ダイアログボックスではなく、設定機能やシステムマクロを使用し てマクロファイルとマクロ関数を登録し、実行することもできます。 パート 4: デバッグ 137 マクロシステム 多くの C-SPY タスクは、ダイアログボックスかマクロ関数を使用して実行で きます。ダイアログボックスを使用すると、グラフィカルインタフェースで対 話的に、ブレークポイントの設定など、実行する必要があるタスクの特性を微 調整できます。この方法では、パラメータを追加して、すぐにブレークポイン トが意図したとおりに動作するかどうかをテストできます。 一方、マクロは、要件どおりのブレークポイント設定ができない場合に便利で す。マクロファイルを作成して、たとえば C-SPY の起動時にそのマクロファ イルを実行することによって、自動的にシミュレータ環境を設定できます。他 にも、デバッグセッションがドキュメント化される、開発プロジェクトに複数 のエンジニアが携わっている場合にマクロファイルを共有できるといった長 所があります。 マクロ言語 マクロ言語の構文は C 言語に非常によく似ています。C 言語の文に似たマクロ文 があります。マクロ関数を、パラメータとリターン値の有無を指定して定義でき ます。組込みシステムマクロは、C 言語のライブラリ関数に似ています。最後に、 グローバルとローカルのマクロ変数を定義できます。マクロ言語のコンポーネン トの詳細については、345 ページの「マクロ言語」を参照してください。 例 以下に示すマクロ関数の例では、マクロ言語のさまざまなコンポーネントが示 されています。 CheckLatest(value) { oldvalue; if (oldvalue != value) { __message "Message: Changed from ", oldvalue, " to ", value; oldvalue = value; } } 注 : マクロの予約語は、名前の衝突を避けるために、2 連のアンダースコアで 始まります。 マクロファイル マクロ変数とマクロ関数は 1 つ以上のマクロファイルにまとめます。マクロ変 数またはマクロ関数を定義するには、まずそれらの定義を含むテキストファイ ルを作成します。テキストエディタは、IAR Embedded Workbench が提供する エディタなど、使いやすいエディタを使用できます。ファイルには適切な名前 を付けて、ファイル名の拡張子を mac として保存します。 IAR Embedded Workbench® IDE 138 ユーザガイド C-SPY® マクロシステムの使用 セットアップマクロファイル C-SPY の起動時に、マクロファイルをロードできます。そのようなマクロファ イルをセットアップマクロファイルと呼びます。一部の CPU レジスタやメモリ にマッピングされた周辺ユニットを初期化するなどのアクションを、アプリ ケーションソフトウェアをロードする前に C-SPY に実行させる必要がある場合 に、非常に便利な機能です。また、C-SPY の初期化を自動化する必要がある場 合や、複数のセットアップマクロファイルを登録する必要がある場合にも使用 できます。C-SPY セットアップマクロファイルの例としては、cpuname\tutor ディレクトリに SetupSimple.mac があります。 セットアップマクロファイルのロード方法については、141 ページの「セット アップマクロとセットアップファイルによる登録と実行」を参照してくださ 「パート 2: チュートリ い。セットアップマクロファイルの使用例については、 アル」の「割込みシミュレーション」を参照してください。 セットアップマクロ関数 セットアップマクロ関数は予約済みのマクロ関数名であり、実行中に特定のタ イミングで呼び出されます。以下に、呼出し可能なタイミングを示します。 ● ● ● ● ターゲットシステムとの通信確立後、アプリケーションソフトウェアをダ ウンロードするまでの間 アプリケーションソフトウェアのダウンロードが完了した直後 リセットコマンドが発行されるたび デバッグセッションの終了直後 マクロ関数を呼び出すタイミングを定義するには、マクロ関数をセットアップ マクロ関数に定義し、登録する必要があります。たとえば、アプリケーション ソフトウェアをロードする前に特定のメモリエリアをクリアする必要がある 場合は、マクロ設定関数 execUserPreload が適しています。アプリケーショ ンソフトウェアをロードする前に一部の CPU レジスタやメモリにマッピング された周辺ユニットを初期化する必要がある場合にも、この関数は適していま す。各セットアップマクロ関数の詳細については、350 ページの「セットアッ プマクロ関数のまとめ」を参照してください。 他のマクロ関数と同じように、セットアップマクロ関数もマクロファイルにま とめます。セットアップマクロ関数の多くは main に到達する前に実行されるの で、これらの関数はセットアップマクロファイルで定義する必要があります。 C-SPY マクロの使用 C-SPY マクロを使用することを決定したら、まずマクロ関数を定義するための マクロファイルを作成する必要があります。次に、定義したマクロ関数を使用 することを C-SPY に通知する必要があるので、マクロファイルを登録 ( ロード ) する必要があります。デバッグセッション中、使用できるすべてのマクロ関数 のリストを表示、実行する必要がある場合があります。 パート 4: デバッグ 139 C-SPY マクロの使用 登録されているマクロ関数のリストを表示するには、[ マクロ設定 ] ダイアロ グボックスを使用します。マクロ関数の登録と実行は、それぞれさまざまな方 法で実行できます。 ● ● ● ● ● [マクロ設定]ダイアログボックスを使用すると、対話的にマクロを登録でき ます。 セットアップマクロファイルにセットアップマクロ関数を定義することに よって、C-SPY の起動シーケンスでマクロ関数を登録し、実行できます。 システムマクロ __ registerMacroFile を使用すると、マクロ関数定義を含 むファイルを登録できます。これは、実行時の条件に応じて、登録するマク ロファイルを動的に選択できることを意味します。さらに、システムマクロ を使用する場合は、同時に複数のファイルを登録できます。システムマクロ の詳細については、360 ページの「__registerMacroFile」を参照してください。 [クイックウォッチ]ウィンドウでは式を評価できるので、それによってマク ロ関数を実行できます。 マクロはブレークポイントに接続できます。ブレークポイントがトリガさ れると、接続されているマクロが実行されます。 [ マクロ設定 ] ダイアログボックスの使用 [ マクロ設定 ] ダイアログボックス ([ デバッグ ]>[ マクロ ] を選択して表示 ) で は、マクロファイル / 関数の表示、登録、編集を行うことができます。このダ イアログボックスは、マクロ関数を対話的に登録できるインタフェースを提供 します。マクロ関数を開発するときに、そのロードとテストを繰り返すような 場合に便利です。 IAR Embedded Workbench® IDE 140 ユーザガイド C-SPY® マクロシステムの使用 ダイアログボックスを使用して登録したマクロ関数は、デバッグセッションを 終了すると無効になり、次のデバッグセッションでは自動登録されません。 図 45: [ マクロ設定 ] ダイアログボックス このダイアログボックスのリファレンス情報については、293 ページの「[ マ クロ設定 ] ダイアログボックス」を参照してください。 セットアップマクロとセットアップファイルによる登録と実行 C-SPY の起動シーケンスでマクロファイルを登録できると、特に既製の複数の マクロ関数を使用する場合に、便利です。その場合、C-SPY は main に到達す る前にマクロを実行します。そのためには、デバッガを起動する前にロードす るマクロファイルを指定します。この場合、マクロ関数は、C-SPY デバッガを 起動するたびに自動的に登録されます。 セットアップマクロ関数名を使用してマクロ関数を定義する場合は、マクロ関 数を実行するタイミングを正確に定義できます。 パート 4: デバッグ 141 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 としてこのマクロ関数を保存します。ファイルは開 いたままにします。 2 マクロファイルを登録するには、[デバッグ]>[マクロ]を選択します。[マクロ 設定]ダイアログボックスが表示されます。マクロファイルを特定して、[追加] をクリックして、[レジスタ]をクリックします。登録されているマクロのリス トに、マクロ関数が表示されます。 IAR Embedded Workbench® IDE 142 ユーザガイド C-SPY® マクロシステムの使用 3 マクロファイルエディタウィンドウで、マクロ関数名 WDTstatus を選択しま す。右クリックして、表示されるコンテキストメニューで[クイックウォッチ] を選択します。 図 46: [ クイックウォッチ ] ウィンドウ マクロは、[ クイックウォッチ ] ウィンドウに自動的に表示されます。 [ 閉じる ] をクリックして、ウィンドウを閉じます。 ブレークポイントにマクロを接続して実行 マクロは、ブレークポイントに接続できます。これにより、ブレークポイント がトリガされると、マクロが実行されます。この方法では、特定の場所で実行 を停止して、そこで特定のアクションを実行できるという長所があります。 たとえば、変数、シンボル、レジスタの値が変更された経緯などの情報を含む ログレポートを簡単に作成できます。これを実現するには、疑わしい位置にブ レークポイントを設定し、そのブレークポイントにログマクロを接続します。 これにより、処理を実行した後で、レジスタの値が変更された経緯を調べるこ とができます。 ログマクロを作成してブレークポイントに接続する例を、以下に示します。 1 アプリケーションソースコードに以下の C 関数のスケルトンが定義されてい ると仮定します。 int fact(int x) { ... } 2 以下の例のような簡単なログマクロ関数を作成します。 logfact() { __message "fact(" ,x, ")"; } __message 文で、メッセージが [ ログ ] ウィンドウにロギングされます。 マクロファイルのファイル名の拡張子を mac として、ログマクロ関数を保存し ます。 パート 4: デバッグ 143 C-SPY マクロの使用 3 このマクロを実行するには、先にマクロを登録する必要があります。[ マクロ 設定 ] ダイアログボックス ([ デバッグ ]>[ マクロ ] を選択して表示 ) では、マ クロファイルを [ 選択したマクロファイル ] のリストに追加できます。[ レジ スタ ] をクリックすると、マクロ関数が [ 登録マクロ ] のリストに表示されま す。ダイアログボックスを閉じます。 4 次に、[ブレークポイントの切り替え]ボタンを使用して、アプリケーションソー スコードの fact 関数の最初の文にあるコードブレークポイントをトグルする 必要があります。[ ブレークポイント ] ダイアログボックス ([ 編集 ]>[ ブレー クポイント ] を選択して表示 ) では、トグルしたブレークポイントがダイアロ グボックスの最下部のブレークポイントリストに表示されます。そのブレーク ポイントを選択します。 5 [アクション]フィールドにマクロ関数 logfact() の名前を入力してログマクロ 関数をブレークポイントに接続します。[Apply] をクリックします。ダイアロ グボックスを閉じます。 6 これで、アプリケーションソースコードを実行できます。ブレークポイントが トリガされると、マクロ関数が実行されます。結果は [ ログ ] ウィンドウに表 示されます。 ログマクロ関数は簡単に拡張できます。たとえば、__fmessage 文を使用する と、ファイルにログ情報を出力できます。__fmessage 文については、348 ペー ジの「フォーマットした出力」を参照してください。 マクロをブレークポイントに接続することによってシリアルポート入力バッ 「パート 2: チュートリアル」 ファをシミュレーションする例の詳細については、 の「割込みシミュレーション」を参照してください。 IAR Embedded Workbench® IDE 144 ユーザガイド アプリケーションの分析 アプリケーションのボトルネックを特定したり、アプリケーションの あらゆる部分のテストが完了しているかどうかを確認することは重要 です。この章では、アプリケーションを分析するための IAR C-SPY® デ バッガの機能について説明します。アプリケーションを分析すること によって、最適化に要する時間と労力を節約できます。 関数レベルのプロファイリング プロファイラを使用すると、特定の事象が発生したときに実行時間が最も長 かった関数を見つけることができます。このような関数には、コードを最適化 する際に、集中的に時間と労力をかける必要があります。簡単に関数を最適化 するには、実行速度最適化を指定してコンパイルします。別の方法として、関 数をメモリ内に移動すると、最も効率的なアドレッシングモードで動作させる ことができます。効率的なメモリの使用方法の詳細については、 『IAR C/C++ コンパイラリファレンスガイド』を参照してください。 [ プロファイリング ] ウィンドウには、アプリケーションの関数のタイミング 情報であるプロファイリング情報が表示されます。プロファイリングは、ウィ ンドウのツールバーにあるボタンを使用して明示的に有効にする必要があり ます。有効にした後は、無効にするまではその状態に保持されます。 プロファイラは関数の開始から終了までの時間を測定します。したがって、関 数内で費やす時間は、その関数が復帰するか、別の関数が呼び出されるまで追 加されません。これがわかるのは、関数内にステップ実行される場合だけです。 [ プロファイリング ] ウィンドウのリファレンス情報については、286 ページの 「[ プロファイリング ] ウィンドウ」を参照してください。 プロファイラの使用 [ プロファイリング ] ウィンドウを使用するには、アプリケーションをビルド する際に、以下のオプションを使用する必要があります。 カテゴリ 設定 C/C++ コンパイラ [ 出力 ]>[ デバッグ情報の生成 ] リンカ [ フォーマット ]>[C-SPY のデバッグ情報 ] デバッガ [ プラグイン ]>[ プロファイリング ] 表 11: プロファイリングを有効にするためのプロジェクトオプション 1 アプリケーションをビルドして C-SPY を起動した後、[ 表示 ]>[ プロファイリン グ ] を選択してウィンドウを開き、[ 有効 ] ボタンをクリックして、プロファ イラを有効にします。 2 [ クリア ] ボタンをクリックするか、ウィンドウで右クリックして表示されるコ ンテキストメニューを使用すると、新しいサンプリングが開始されます。 パート 4: デバッグ 145 関数レベルのプロファイリング 3 実行を開始します。プログラムの終了に到達した、ブレークポイントがトリガ されたなどの理由で実行が停止したときは、[ 更新 ] ボタンをクリックします。 図 47: [ プロファイリング ] ウィンドウ プロファイリング情報がウィンドウに表示されます。 数値の表示 列の見出しをクリックすると、リスト全体がその列に従ってソートされます。 リストの灰色表示された項目は、その関数がソースコードを持たない関数 ( デ バッグ情報なしでコンパイルされた関数 ) から呼び出されたことを表します。 関数が、ライブラリ関数のようにソースコードを持たない関数から呼び出され た場合、時間に関する測定は行われません。 リストには常に [Outside main] という項目が表示されます。これは、リスト内の どの関数にも該当しない時間を示します。つまり、デバッグ情報 ( 開始 / 終了コー ド、C/C++ ライブラリコードなど ) なしでコンパイルされたコードを示します。 [ グラフ ] ボタンをクリックすると、パーセント値を表す列の表示方法を数値や 棒グラフに切り替えることができます。 図 48: [ プロファイリング ] ウィンドウのグラフ IAR Embedded Workbench® IDE 146 ユーザガイド アプリケーションの分析 リストで選択された関数の詳細情報を表示するには、[ 詳細を表示 ] ボタンをク リックします。選択した関数の呼出し元と呼出し先の情報を示すウィンドウが 表示されます。 図 49: [ プロファイリングの詳細 ] ウィンドウ レポートの生成 レポートを生成するには、ウィンドウを右クリックして、表示されるコンテキ ストメニューで [ 名前を付けて保存 ] コマンドを選択します。[ プロファイリ ング ] ウィンドウに表示されている内容がファイルに保存されます。 コードカバレッジ コードカバレッジ機能を使用すると、コードのあらゆる部分が実行されたかど うかを確認できます。この機能は、コードのあらゆる部分が実行されたことを 確認するテスト手順を設計する場合に便利です。また、コードに到達不可能な 部分が存在するかどうかを調べる場合にも使用できます。 コードカバレッジの使用 [ コードカバレッジ ] ウィンドウは、[ 表示 ] メニューからアクセスでき、現在 のコードカバレッジ分析のステータス、すなわち分析を開始してから少なくと も 1 回実行されたコード部分をレポートします。コンパイラは、文や関数呼出 しごとに、ステップポイントという形式で詳細なステップ実行情報を生成しま す。レポートには、すべてのモジュールと関数についての情報が表示されま す。アプリケーション停止時点で実行済みのすべてのステップポイントの割合 がレポートされ、実行されていないすべてのステップポイントが表示されま す。カバレッジは、無効にするまで続行されます。 パート 4: デバッグ 147 コードカバレッジ [ コードカバレッジ ] ウィンドウのリファレンス情報については、284 ページの 「[ コードカバレッジ ] ウィンドウ」を参照してください。 [ コードカバレッジ ] ウィンドウを使用するには、アプリケーションをビルド する際に、以下のオプションを使用する必要があります。 カテゴリ 設定 C/C++ コンパイラ [ 出力 ]>[ デバッグ情報の生成 ] リンカ [ フォーマット ]>[C-SPY のデバッグ情報 ] デバッガ [ プラグイン ]>[ コードカバレッジ ] 表 12: コードカバレッジを有効にするためのプロジェクトオプション アプリケーションをビルドしてC-SPYを起動した後、 [表示]>[コードカバレッジ]を 選択して [ コードカバレッジ ] ウィンドウを開き、[ 有効 ] をクリックして、コー ドカバレッジアナライザを有効にします。以下に示すウィンドウが表示されます。 図 50: [ コードカバレッジ ] ウィンドウ 数値の表示 コードカバレッジ情報は、プログラム、モジュール、関数、ステップポイント レベルがツリー構造で表示されます。プラス記号とマイナス記号をクリックす ると、構造を展開したり折りたたんだりできます。 すべてのレベルの現在の状態は、以下のアイコンで示されます。 ● ● ● ● 赤色のひし形は、実行済みコードが 0% であることを示します。 緑色のひし形は、実行済みコードが 100% であることを示します。 赤と緑の 2 色のひし形は、一部のコードが実行済みであることを示します。 黄色のひし形は、実行されていないステップポイントを示します。 プログラム、モジュール、関数の各行の末尾に表示されるパーセント値は、そ れまでにカバーされたコードの量、すなわち実行済みのステップポイント数を ステップポイント総数で割った値を表します。 IAR Embedded Workbench® IDE 148 ユーザガイド アプリケーションの分析 ステップポイントの行については、ソースウィンドウでのステップポイントの 列番号範囲、行番号、ステップポイントのアドレスが表示されます。 <column start>-<column end>:row. ステップポイントは、その命令が 1 つでも実行されると、ステップポイントが 実行されたとみなされます。実行されたステップポイントは、ウィンドウから 削除されます。 [ コードカバレッジ ] ウィンドウでステップポイントか関数をダブルクリック すると、ソースウィンドウがアクティブウィンドウになり、ダブルクリックし たステップポイントか関数がソースウィンドウでの現在の位置になります。プ ログラムレベルでモジュールをダブルクリックすると、ツリー構造を展開した り、折りたたんだりできます。 タイトルバーにアスタリスク (*) が表示されている場合は、C-SPY が実行を継 続していること、および [ コードカバレッジ ] ウィンドウに表示されている情 報が最新ではないので、それを最新の情報に更新する必要があることを示しま す。最新の情報に更新するには、[ 更新 ] コマンドを使用します。 表示されるコード部分 ウィンドウに表示されるのは、デバッグ情報付きでコンパイルされた文だけで す。したがって、起動コード、終了コード、ライブラリコードはウィンドウに は表示されません。また、インライン化された関数内の文のカバレッジ情報は 表示されません。インライン化された関数呼出しを含む文だけが実行済みとし てマークされます。 レポートの生成 レポートを生成するには、ウィンドウを右クリックして、表示されるコンテキス トメニューで [ 名前を付けて保存 ] コマンドを選択します。[ コードカバレッジ ] ウィンドウに表示されている内容がファイルに保存されます。 パート 4: デバッグ 149 コードカバレッジ IAR Embedded Workbench® IDE 150 ユーザガイド パート 5: IAR C-SPY シミュレータ 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● シミュレータ固有のデバッグ ● 割込みシミュレーション 151 152 シミュレータ固有のデバッグ C-SPY シミュレータは、一般の C-SPY® の機能に加えて、シミュレータ 固有の機能を提供します。この章ではシミュレータ固有の機能につい て説明します。 リファレンス情報の他に、メモリアクセスチェックやブレークポイン トなど、ドライバ固有の特性についても説明します。 IAR C-SPY シミュレータの概要 IAR C-SPY シミュレータは、ターゲットプロセッサの機能をソフトウェアで完 全にシミュレーションするので、ハードウェアがすべて揃っていなくてもプロ グラムロジックをデバッグできます。ハードウェアが不要であるため、多くの アプリケーションにとって最も費用効果の高いソリューションでもあります。 特長 IAR C-SPY シミュレータには、 「製品概要」で説明している一般機能の他に、 以下の機能があります。 ● ● ● ● ● 命令単位で実行するシミュレーション メモリの構成、検証 割込みシミュレーション レジューム機能を持つイミディエイトブレークポイント 周辺デバイスのシミュレーション (C-SPY マクロシステムを使用 ) シミュレータドライバの選択 IAR C-SPY デバッガを起動する前に、シミュレータドライバを選択する必要が あります。IAR Embedded Workbench IDE で、[ プロジェクト ]>[ オプション ] を選択して、[ デバッガ ] カテゴリの [ 設定 ] タブをクリックします。[ ドライ バ ] ドロップダウンリストで [ シミュレータ ] を選択します。 製品バージョンによ っては、このリストにハードウェアドライバが含まれて いる場合とそうでない場合があります。選択できるのは、コンピュータにイン ストール済みのドライバだけです。 パート 5: IAR C-SPY シミュレータ 153 シミュレータ固有のメニュー シミュレータ固有のメニュー シミュレータドライバを使用する場合、[ シミュレータ ] メニューがメニュー バーに追加されます。 [ シミュレータ ] メニュー 図 51: [ シミュレータ ] メニュー [ シミュレータ ] メニューには、以下のコマンドがあります。 メニューコマンド 説明 割込み設定 C-SPY の割込みシミュレーションを設定するためのダイアログボッ クスを開きます。174 ページの「[ 割込み設定 ] ダイアログボック ス」を参照してください。 強制割込み 割込みをトリガできるウィンドウを開きます。177 ページの「[ 強 制割込み ] ウィンドウ」を参照してください。 割込みログ 定義されているすべての割込みのステータスを表示するウィンド ウを開きます。179 ページの「[ 割込みログ ] ウィンドウ」を参照 してください。 メモリアクセス設定 さまざまなアクセスタイプでメモリエリアを指定して、メモリア クセスチェックをシミュレーションするダイアログボックスを開 きます。162 ページの「[ メモリアクセス設定 ] ダイアログボック ス」を参照してください。 トレース 記録されているトレースデータを表示する [ トレース ] ウィンドウ を開きます。155 ページの「[ トレース ] ウィンドウ」を参照して ください。 関数トレース 呼び出された関数やどの関数から復帰したかを示すトレースデー タを表示する [ 関数トレース ] ウィンドウを開きます。157 ページ の「[ 関数トレース ] ウィンドウ」を参照してください。 プレークポイントの アクティブなすべてのブレークポイントのリストを表示する [ プ 使用 レークポイントの使用 ] ダイアログボックスを開きます。170 ページの「[ プレークポイントの使用 ] ダイアログボックス」を 参照してください。 表 13: [ シミュレータ ] メニューコマンドの説明 IAR Embedded Workbench® IDE 154 ユーザガイド シミュレータ固有のデバッグ シミュレータのトレースシステムの使用 C-SPY シミュレータでは、トレースは、実行されたマシン命令シーケンスの記 録です。その他に、[ トレース式 ] ウィンドウで式を選択すると、C-SPY 式の 値を記録できます。[ トレース ] ウィンドウにはすべての命令が表示されます が、[ 関数トレース ] ウィンドウには、関数呼出しと関数からの呼び出しに対 応するトレースデータだけが表示されます。 トレースシステムの共通機能の使用方法の詳細については、121 ページの「ト レースシステムの使用」を参照してください。 [ トレース ] ウィンドウ [ トレース ] ウィンドウは、[ シミュレータ ] メニューからアクセスでき、実行 されたマシン命令シーケンスの記録を表示します。また、式のトレースデータ も表示できます。 図 52: [ トレース ] ウィンドウ C-SPY では、プログラムカウンタの位置に基づいて、トレース情報が生成され ます。 [ トレース ] ウィンドウに表示される列は、以下のとおりです。 [ トレース ] ウィンドウの列 説明 # トレースバッファの各行のシリアル番号。バッファ内の移動 を簡単化します。 トレース 実行されたマシン命令シーケンスの記録オプションで、対応 するソースコードも表示できます。 表 14: [ トレース ] ウィンドウの列 パート 5: IAR C-SPY シミュレータ 155 シミュレータのトレースシステムの使用 [ トレース ] ウィンドウの列 説明 式 表示するように定義した式はそれぞれ別の列に表示されます。 式列の各エントリには、同じ行の命令が実行された後に値が表 示されます。トレース情報を記録する式は、[ トレース式 ] ウィ ンドウで指定します。158 ページの「[ トレース式 ] ウィンド ウ」を参照してください。 表 14: [ トレース ] ウィンドウの列 ( 続き ) トレースシステムの使用方法の詳細については、121 ページの「トレースシス テムの使用」を参照してください。 [ トレース ] ツールバー [ トレース ] ツールバーは、[ トレース ] ウィンドウと [ 関数トレース ] ウィン ドウで使用できます。 有効 / 無効 検索 設定の編集 ソースの切替 トレースデータのクリア ブラウズ 保存 式の編集 図 53: [ トレース ] ツールバー ツールバーに含まれる機能ボタンを以下に示します。 ツールバーのボタン 説明 有効 / 無効 トレースを有効か無効にします。[ 関数トレース ] ウィンド ウではこのボタンは使用できません。 トレースデータのクリア トレースバッファをクリアします。 [ トレース ] ウィンドウと [ 関 数トレース ] ウィンドウが両方ともクリアされます。 ソースの切替 [ トレース ] 列の表示を、逆アセンブリだけの表示と逆アセン ブリと対応するソースコードの両方の表示を切り替えます。 ブラウズ [ トレース ] 列で選択された項目のブラウズモードのオンとオ フを切り替えます。ブラウズモードの詳細については、121 ページの「トレース ] ウィンドウとブラウズモード」を参照 してください。 検索 [ トレースを検索 ] ダイアログボックスを開きます。記録さ れたトレース情報を検索できます。160 ページの「[ トレー スを検索 ] ダイアログボックス」を参照してください。 保存 標準の [ 保存 ] ダイアログボックスを開きます。記録されたト レース情報をタブ区切りでテキストファイルに保存できます。 表 15: [ トレース ] ツールバーのコマンド IAR Embedded Workbench® IDE 156 ユーザガイド シミュレータ固有のデバッグ ツールバーのボタン 説明 設定の編集 C-SPY シミュレータではこのボタンは無効です。 式の編集 [ トレース式 ] ウィンドウを開きます。158 ページの「[ ト レース式 ] ウィンドウ」を参照してください。 表 15: [ トレース ] ツールバーのコマンド ( 続き ) [ 関数トレース ] ウィンドウ [ 関数トレース ] ウィンドウ ([ シミュレータ ] メニューから表示 ) には、[ ト レース ] ウィンドウに表示されたトレースデータの一部が表示されます。[ 関 数トレース ] ウィンドウにはすべての行は表示されません。関数呼出しと関数 からの復帰に対応するトレースデータだけが表示されます。 図 54: [ 関数トレース ] ウィンドウ ツールバーについては、156 ページの「[ トレース ] ツールバー」を参照して ください。 トレースシステムの使用方法の詳細については、121 ページの「トレースシス テムの使用」を参照してください。 パート 5: IAR C-SPY シミュレータ 157 シミュレータのトレースシステムの使用 [ トレース式 ] ウィンドウ [ トレース式 ] ウィンドウは、[ トレース ] ウィンドウのツールバーからアクセ スでき、トレース情報を記録する必要がある特定の式を指定できます。 図 55: [ トレース式 ] ウィンドウ [ 式 ] 列では、記録する式を指定できます。変数やレジスタなど、評価可能な 式を指定できます。 [ フォーマット ] 列には、各式で使用される表示フォーマットが表示されます。 このウィンドウの各行は、[トレース]ウィンドウに追加列として表示されます。 トレースシステムの使用方法の詳細については、121 ページの「トレースシス テムの使用」を参照してください。 式の表示順序を変更するには、以下に示すツールバーのボタンを使用します。 ツールバーのボタン 説明 上矢印 選択された行を上に移動します。 下矢印 選択された行を下に移動します。 表 16: [ トレース式 ] ウィンドウのツールバーのボタン IAR Embedded Workbench® IDE 158 ユーザガイド シミュレータ固有のデバッグ [ トレースを検索 ] ウィンドウ [ トレースを検索 ] ウィンドウは、[ 表示 ]>[ メッセージ ] メニューからアクセ スでき、トレースデータを検索した結果を表示します。 図 56: [ トレースを検索 ] ウィンドウ [ トレースを検索 ] ウィンドウは [ トレース ] ウィンドウと非常によく似てお り、表示される列とデータは同じですが、表示される行は、指定された検索基 準に一致した行だけです。[ トレースを検索 ] ウィンドウで項目をダブルクリッ クすると、[ トレース ] ウィンドウに同じ項目が表示されます。 [ トレースを検索 ] ダイアログボックスで検索基準を指定します。このダイア ログボックスを開く方法については、160 ページの「[ トレースを検索 ] ダイ アログボックス」を参照してください。 トレースシステムの使用方法の詳細については、121 ページの「トレースシス テムの使用」を参照してください。 パート 5: IAR C-SPY シミュレータ 159 シミュレータのトレースシステムの使用 [ トレースを検索 ] ダイアログボックス [ トレースを検索 ] ダイアログボックス ([ 編集 ]>[ 検索と置換 ]>[ 検索 ] を選択 するか、[ トレース ] ウィンドウのツールバーから表示 ) を使用して、トレース データの高度な検索用検索基準を指定します。[ 編集 ]>[ 検索と置換 ]>[ 検索 ] コマンドはコンテキスト依存型であることに、注意してください。このコマン ドの操作時の現在のウィンドウが、[ トレース ] ウィンドウであれば [ トレース を検索 ] ダイアログボックスが表示され、エディタウィンドウであれば [ 検索 ] ダイアログボックスがそれぞれ表示されます。 図 57: [ トレースを検索 ] ダイアログボックス 検索結果は [ トレースを検索 ] ウィンドウ ([ 表示 ]>[ メッセージ ] コマンドを 選択 ) に表示されます。159 ページの「[ トレースを検索 ] ウィンドウ」を参照 してください。 [ トレースを検索 ] ダイアログボックスでは、以下の設定で検索基準を指定し ます。 テキスト検索 検索文字列を入力するテキストフィールド。次のオプションを使用して、検索 を絞り込みます。 大文字と小文字を区 指定されたテキストの大文字と小文字が完全に一致するものだけ 別 を検索します。このオプションを指定しない場合は、int を検索 すると、INT、Int も検索されます。 完全に一致する単語 単語として一致する箇所だけを検索します。このオプションを指 のみ 定しない場合は、int を検索すると、print、sprintf なども 検索されます。 一列のみ検索 IAR Embedded Workbench® IDE 160 ユーザガイド ドロップダウンメニューから選択した列だけを検索します。 シミュレータ固有のデバッグ アドレス範囲 テキストフィールドを使用して、アドレス範囲を指定します。アドレス範囲内 のトレースデータが表示されます。[ テキスト検索 ] フィールドにテキスト文 字列も指定すると、アドレス範囲内でテキスト文字列を検索します。 トレースシステムの使用方法の詳細については、121 ページの「トレースシス テムの使用」を参照してください。 メモリアクセスチェック C-SPY はターゲットハードウェアの様々なメモリアクセスタイプをシミュ レーションして、ライト専用メモリにリードアクセスするなどの不正なアクセ スを検出します。特定のメモリエリアに対して指定されたアクセスタイプに従 わないメモリアクセスが発生した場合、C-SPY はそれを不正なアクセスと認識 します。メモリアクセスチェック機能によって、ユーザはメモリアクセス違反 を特定しやすくなります。 メモリエリアは、デバイス記述ファイルで定義済のゾーンか、デバッグファイ ルのセグメント情報に基づいています。これら以外に、ユーザが独自のメモリ エリアを定義できます。アクセスタイプには、リード、ライト、リードオン リー、ライトオンリーがあります。2 つの異なるアクセスタイプを同一のメモ リエリアに割り当てることはできません。アクセスタイプ違反をチェックする か、未指定エリアへのアクセスをチェックするかを選択できます。違反が検出 された場合は、[ デバッグログ ] ウィンドウにロギングされます。実行を停止 するかどうかを選択することもできます。 その他に、実行中のメモリエンティティへのアクセスに、サイクル単位のコス トを指定することができます。メモリエンティティのサイズは、バス幅によっ て異なります。リードアクセスとライトアクセスのコストは異なる場合がある ので、別々に指定します。また、シーケンシャルメモリアクセスとランダムメ モリアクセスのコストも別々に指定できます。これらのコストは、バイトアク セスが行われるたびにサイクルカウンタに加算されます。コストの指定に関連 するこれらの機能は、使用している製品バージョンによって、提供されている 場合と提供されていない場合があります。 [ シミュレータ ]>[ メモリアクセス設定 ] を選択して、[ メモリアクセス設定 ] ダイアログボックスを開きます。 パート 5: IAR C-SPY シミュレータ 161 メモリアクセスチェック [ メモリアクセス設定 ] ダイアログボックス [ メモリアクセス設定 ] ダイアログボックス ([ シミュレータ ] メニューから表 示 ) には、定義されているすべてのメモリエリアのリストが表示されます。リ ストの各列はそれらのエリアのプロパティを指定します。言い換えると、この ダイアログボックスには、シミュレーション中に使用されるメモリアクセス設 定が表示されます。 図 58: [ メモリアクセス設定 ] ダイアログボックス 注 : [ 使用範囲の設定基準ファイル ] オプションと [ 手動設定範囲を使用 ] オプ ションを両方とも有効にすると、定義されているすべての範囲へのメモリアク セスがチェックされます。 表示されている列とプロパティについては、164 ページの「[ メモリアクセス の編集 ] ダイアログボックス」を参照してください。 使用範囲の設定基準ファイル [ 使用範囲の設定基準ファイル ] オプションを使用して、定義済メモリアクセ ス設定を選択します。以下の選択肢があります。 ● ● IAR Embedded Workbench® IDE 162 ユーザガイド [デバイス記述ファイル]を選択すると、プロパティはデバイス記述ファイル からロードされます。 [デバッグファイルセグメント情報]を選択すると、 プロパティはデバッグファ イルのセグメント情報に基づいて決まります。この情報は、デバッグ中のみ使 用できます。このオプションの利点は、シミュレータが、リンクされているア プリケーション以外からのメモリアクセスをキャプチャできることです。 シミュレータ固有のデバッグ 手動設定範囲を使用 [ 手動設定範囲を使用 ] オプションを使用して、[ メモリアクセスの編集 ] ダイ アログボックスで独自の範囲を手動で指定します。このダイアログボックスを 開くには、[ 新規作成 ] を選択して新しいメモリ範囲を指定するか、メモリゾー ンを選択してから [ 編集 ] を選択してそのメモリゾーンを変更します。詳細に ついては、164 ページの「[ メモリアクセスの編集 ] ダイアログボックス」を 参照してください。 手動で定義した範囲は、デバッグセッション終了後も保持されます。 メモリアクセスチェック [ チェック対象 ] オプションを使用して、チェックする対象を指定します。以 下から選択します。 ● ● アクセスタイプ違反 指定範囲外へのアクセス [ アクション ] オプションを使用して、アクセス違反が発生したときに実行す るアクションを指定します。以下から選択します。 ● ● 違反のログ ログと実行停止 違反が検出された場合は、[ デバッグログ ] ウィンドウにロギングされます。 ボタン [ メモリアクセス設定 ] ダイアログボックスには、以下に示すボタンがあります。 ボタン 説明 OK 標準の「OK」 キャンセル 標準の「キャンセル」 新規作成 [ メモリアクセスの編集 ] ダイアログボックスを開きます。新しい メモリ範囲を指定したり、アクセスタイプを割り当てたりするこ とができます。164 ページの「[ メモリアクセスの編集 ] ダイアロ グボックス」を参照してください。 編集 [ メモリアクセスの編集 ] ダイアログボックスを開きます。選択さ れたメモリエリアを編集できます。164 ページの「[ メモリアクセ スの編集 ] ダイアログボックス」を参照してください。 削除 選択されたメモリエリア定義を削除します。 すべて削除 定義されているすべてのメモリエリア定義を削除します。 表 17: [ メモリアクセス設定 ] ダイアログボックスの機能ボタン 注 : [OK] ボタンと [ キャンセル ] ボタン以外のボタンは、[ 手動設定範囲を使 用 ] オプションが選択されているときだけ使用できます。 パート 5: IAR C-SPY シミュレータ 163 メモリアクセスチェック [ メモリアクセスの編集 ] ダイアログボックス [ メモリアクセスの編集 ] ダイアログボックス ([ メモリアクセス設定 ] ダイア ログボックスから表示 ) では、メモリ範囲を指定したり、メモリ範囲ごとにア クセスタイプを割り当てて、シミュレーション中に不正なアクセスを検出した りできます。 図 59: [ メモリアクセスの編集 ] ダイアログボックス メモリ範囲ごとに、以下のプロパティを定義できます。 メモリ範囲 以下に示す設定を使用して、メモリアクセスをチェックするメモリエリアを定 義します。 ゾーン メモリゾーン。131 ページの「メモリアドレッシング」を参照 してください。 開始アドレス アドレス範囲の開始アドレスを 16 進表記で指定します。 終了アドレス アドレス範囲の終了アドレスを 16 進表記で指定します。 アクセスタイプ メモリ範囲に割り当てるアクセスタイプを、[ リード / ライト ]、[ リード専用 ]、 [ ライト専用 ] の中から 1 つ選択します。2 つの異なるアクセスタイプを同一の メモリエリアに割り当てることはできません。 サイクルコスト [ リード ] と [ ライト ] のテキストフィールドを使用して、メモリ範囲へのア クセスのサイクル数を指定します。サイクルコストは、リードアクセスとライ トアクセスで異なるため、それぞれに個別に指定できます。 IAR Embedded Workbench® IDE 164 ユーザガイド シミュレータ固有のデバッグ サイクルコスト 以下に示す設定を使用して、実行中のメモリエンティティへのアクセスに、サ イクル単位のコストを指示することができます。 Bus width メモリエンティティのサイズは、バス幅によって異なります。 指定できる値は 8、16、32 ビットのいずれかです。この設定が コストに与える影響を示す例については、表 18「メモリエン ティティへのアクセスコストの例」を参照してください。 Sequential メモリエリアへのシーケンシャルアクセスのコスト。リードア クセスとライトアクセスではサイクルコストが違う場合がある ので、別々に指定できます。 Non-sequential メモリエリアへのランダムアクセスのコスト。リードアクセス とライトアクセスではサイクルコストが違う場合があるので、 別々に指定できます。 注 : これらのオプションは、使用している製品バージョンによっては選択でき る場合と選択できない場合があります。 例 指定されたコストが 1 サイクルの場合、ワードアクセス (16 ビット ) のコスト は、8 ビットバス幅では 2 サイクル、16 ビットバス幅と 32 ビットバス幅では 1 サイクルになります。 メモリエンティティ 8 ビットバス 16 ビットバス 32 ビットバス ワードエンティティ (16 ビット ) 2 1 1 ロングワードエンティティ (32 ビット ) 4 2 1 表 18: メモリエンティティへのアクセスコストの例 シミュレータでのブレークポイントの使用 C-SPY シミュレータを使用する場合は、設定できるブレークポイントの数に制 限はありません。コードブレークポイントとデータブレークポイントにはサイ ズ属性を定義できるので、範囲に対してブレークポイントを設定できます。ま た、イミディエイトブレークポイントも設定できます。 ブレークポイントシステムについては、本書の章「ブレークポイントの使用」 を参照してください。コードブレークポイントの詳細については、205 ページ の「[ コード ] ブレークポイントダイアログボックス」を参照してください。 パート 5: IAR C-SPY シミュレータ 165 シミュレータでのブレークポイントの使用 データブレークポイント データブレークポイントは、指定された位置のデータがアクセスされたときに トリガされます。主にメモリ上の固定アドレスに割り当てられた変数に使用し ます。アクセス可能なローカル変数にブレークポイントを設定した場合、実際 には対応するメモリアドレス ( ロケーション ) に設定されます。この位置の妥 当性が保証されるのは、コードの一部だけです。通常は、データにアクセスす る命令が実行された直後に、実行が停止します。 データブレークポイントを設定するには、以下のいずれかを使用します。 ● ● ● ダイアログボックス。166 ページの「[ データ ] ブレークポイントダイアログ ボックス」を参照してください。 システムマクロ。362 ページの「__setDataBreak」を参照してください。 [メモリ]ウィンドウ。127ページの「[ メモリ ] ウィンドウによるブレークポイ ントの設定」を参照してください。 [ データ ] ブレークポイントダイアログボックス データブレークポイントを設定する場合、そのオプションを設定するには、ま ず [ ブレークポイント ] ウィンドウを右クリックしてコンテキストメニューを 表示します。コンテキストメニューで [ 新規ブレークポイント ]>[ データ ] を 選択して、新しいブレークポイントを設定します。既存のブレークポイントを 変更するには、[ ブレークポイント ] ウィンドウでブレークポイントを選択し、 コンテキストメニューから [ 編集 ] を選択します。 [ データ ] ブレークポイントダイアログボックスが表示されます。 図 60: [ データ ] ブレークポイントダイアログボックス ブレーク位置 [ ブレーク位置 ] テキストボックスでブレークポイントの位置を指定します。 ま たは、[ 編集 ] 参照ボタンをクリックして [ ブレーク位置入力 ] ダイアログボッ クスを表示します。208 ページの「[ ブレーク位置入力 ] ダイアログボックス」 を参照してください。 IAR Embedded Workbench® IDE 166 ユーザガイド シミュレータ固有のデバッグ アクセスタイプ [ アクセスタイプ ] エリアのオプションを使用して、データブレークポイントかイ ミディエイトブレークポイントをトリガするメモリアクセスタイプを指定します。 メモリアクセスタイプ 説明 リード / ライト 指定された位置からリードするか、指定された位置にライトしま す ( イミディエイトブレークポイントでは選択不可 )。 リード 指定された位置からリードします。 ライト 指定された位置にライトします。 表 19: メモリアクセスタイプ 注 : データブレークポイントによって単一命令内で実行が停止することはありま せん。命令の実行後でそれらが記録、レポートされます。( イミディエイトブレー クポイントは一時的に命令の実行を停止するだけで、すぐに実行を再開します。 168 ページの「イミディエイトブレークポイント」を参照してください。) サイズ また、サイズ ( 実際にはロケーションの範囲 ) を指定することもできます。指 定されたメモリ範囲にリードアクセスやライトアクセスが行われると、ブレー クポイントがトリガされます。配列、構造体、共用体などのデータ構造へのア クセスによってデータブレークポイントをトリガする必要がある場合に、この 機能は便利です。 サイズの指定方法は 2 種類あります。 ● ● [ 自動 ] を選択すると、ブレークポイントが設定されている式のタイプに基づい て、サイズが自動的に決まります。たとえば、ブレークポイントを 12 バイトの 構造体に設定すると、そのブレークポイントのサイズは 12 バイトになります。 [ 手動 ] を選択した場合は、[ サイズ ] テキストボックスにブレークポイントの サイズを手動で指定します。 アクション ブレークポイントにアクションを関連付けることもできます。C-SPY マクロ関 数などの式を指定すると、ブレークポイントのトリガ時に条件が真であるとき に評価されます。 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式 条件式の値が真 式の値が真の場合に、ブレークポイントがトリガされます。 表 20: ブレークポイントの条件 パート 5: IAR C-SPY シミュレータ 167 シミュレータでのブレークポイントの使用 条件 説明 条件式の値が変化 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 スキップ数 実行を停止するまでのブレークポイントトリガ回数 ( 整数 ) を指定 します。 表 20: ブレークポイントの条件 ( 続き ) イミディエイトブレークポイント C-SPY シミュレータでは、汎用ブレークポイントの他に、一時的にのみ命令の 実行を停止するイミディエイトブレークポイントを使用できます。このブレー クポイントを使用すると、プロセッサがある位置からデータを読み込む直前か ある位置にデータを書き込んだ直後に、C-SPY マクロ関数を呼び出すことがで きます。アクションが終了すると、命令の実行が再開されます。 イミディエイトブレークポイントは、メモリにマッピングされたさまざまな種 類のデバイス ( シリアルポートやタイマなど ) をシミュレーションする場合に 便利です。デバイスがメモリマッピングされた位置をプロセッサが読み込む と、C-SPY マクロ関数が実行されて適切なデータを供給します。逆に、デバイ スがメモリマッピングされた位置にプロセッサが書き込むと、C-SPY マクロ関 数が実行されて、書き込まれた値に応じた適切な動作を実行します。 イミディエイトブレークポイントを設定するには、以下の 2 つの方法があり ます。 ● ● ダイアログボックス。168 ページの「[ イミディエイト ] ブレークポイントダ イアログボックス」を参照してください システムマクロ。363 ページの「__setSimBreak」を参照してください [ イミディエイト ] ブレークポイントダイアログボックス イミディエイトブレークポイントを設定する場合、そのオプションを設定するに は、 まず [ ブレークポイント ] ウィンドウを右クリックしてコンテキストメニュー を表示します。コンテキストメニューで [ 新規ブレークポイント ]>[ イミディエ イト ] を選択して、新しいブレークポイントを設定します。既存のブレークポイ ントを変更するには、[ ブレークポイント ] ウィンドウでブレークポイントを選 択し、コンテキストメニューから [ 編集 ] を選択します。 IAR Embedded Workbench® IDE 168 ユーザガイド シミュレータ固有のデバッグ [ イミディエイト ] ブレークポイントダイアログボックスが表示されます。 図 61: [ イミディエイト ] ブレークポイントページ ブレーク位置 [ ブレーク位置 ] テキストボックスでブレークポイントの位置を指定します。 ま たは、[ 編集 ] 参照ボタンをクリックして [ ブレーク位置入力 ] ダイアログボッ クスを表示します。208 ページの「[ ブレーク位置入力 ] ダイアログボックス」 を参照してください。 アクセスタイプ [ アクセスタイプ ] エリアのオプションを使用して、データブレークポイントか イミディエイトブレークポイントをトリガするメモリアクセスタイプを指定し ます。 メモリアクセスタイプ 説明 リード 指定された位置からリードします。 ライト 指定された位置にライトします。 表 21: メモリアクセスタイプ 注 : イミディエイトブレークポイントは一時的に命令の実行を停止するだけ で、すぐに実行を再開します。165 ページの「シミュレータでのブレークポイ ントの使用」を参照してください。 アクション ブレークポイントにはアクションを接続する必要があります。C-SPY マクロ関 数などの式を指定すると、ブレークポイントのトリガ時に条件が真であるとき に評価されます。 パート 5: IAR C-SPY シミュレータ 169 シミュレータでのブレークポイントの使用 [ プレークポイントの使用 ] ダイアログボックス [ プレークポイントの使用 ] ダイアログボックス ([ シミュレータ ] メニューか ら表示 ) は、すべてのアクティブなブレークポイントのリストを表示します。 図 62: [ プレークポイントの使用 ] ダイアログボックス このダイアログボックスのリストには、ユーザが定義したすべてのブレークポ イントの他に、デバッガが使用している内部ブレークポイントも表示されます。 リスト内の各ブレークポイントについて、アドレスとアクセスタイプが表示さ れます。また、リストの各ブレークポイントを拡張すると、その発生元が表示 されます。 詳細については、129 ページの「すべてのブレークポイントの表示」を参照し てください。 IAR Embedded Workbench® IDE 170 ユーザガイド 割込みシミュレーション 割込みシミュレーションができると、ハードウェアすべて揃っていな くてもプログラムロジックをデバッグできます。この章では、C-SPY® の割込みシミュレーションシステムの詳細について説明します。また、 ターゲットハードウェアの割込みに擬似割込みを反映させる設定方法 の詳細について説明します。最後に、各割込みシステムマクロのリファ レンス情報について説明します。 割込みサービスルーチンを作成するときに使用できる割込み固有の機 能については、『IAR C/C++ コンパイラリファレンスガイド』を参照し てください。 C-SPY 割込みシミュレーションシステム IAR C-SPY シミュレータには、デバッグ中に割込みの実行をシミュレーション できる割込みシミュレーションシステムが用意されています。割込みシミュ レーションシステムをハードウェア割込みシステムと同じように構成するこ とができます。擬似割込みと C-SPY のマクロとブレークポイントを連携させ ることによって、割込み駆動型の周辺デバイスのような複雑なシミュレーショ ンを構築できます。また、擬似割込みを使用して、割込みサービスルーチンの ロジックをテストすることもできます。 割込みシステムの特長を以下に示します。 ● ● ● ● ● ● ● ● マイクロコントローラの割込みシミュレーションの提供 単発もしくはサイクルカウンタに基づく周期割込み さまざまなデバイス用の定義済割込み 保持時間、確率、タイミングのばらつきの設定 タイミングの問題を特定するためのステータス情報 擬似割込みを設定するためのインタフェースとして、対話的なダイアログ ボックスと自動化するための C-SPY システムマクロを提供 割込みを即時、もしくは定義したパラメータに基づいて有効化 定義されている割込みのステータスを継続的に表示するログウィンドウ 割込みシステムは、デフォルトでは有効になっていますが、必要がない場合は 無効にすることでシミュレーションの実行速度を向上させることができます。 割込みシステムは、[ 割込み設定 ] ダイアログボックスかシステムマクロを使 用して、必要に応じて有効か無効にできます。定義された割込みは、削除され るまで保持されます。[ 割込み設定 ] ダイアログボックスで定義した割込みは すべて、デバッグセッション終了後も保持されます。 パート 5: IAR C-SPY シミュレータ 171 C-SPY 割込みシミュレーションシステム 割込み特性 擬似割込みは、ターゲットハードウェアの実際の割込みに似せるために、各割 込みを微調整する属性のセットから構成されています。指定できる特性には、 初回割込み待機時間、繰返し間隔、保持時間、ばらつきがあります。 H H H Act - 初回割込み待機時間 R - 繰返し間隔 H - 保持時間 V - ばらつき 0 Act±V R± V 図 63: 擬似割込みの構成 割込みシミュレーションシステムは、サイクルカウンタを時計として使用し、 シミュレータで割込みを発生させるタイミングを決定します。初回割込み待機 時間は、サイクルカウンタ単位で指定します。C-SPY は、サイクルカウンタが 指定された初回割込み待機時間を超えると、割込みを生成します。ただし、割 込みが生成されるのは命令と命令の間だけです。すなわち、1 つのアセンブラ 命令の実行が完了するまでは、その命令に必要なサイクル数に関係なく、割込 みの生成は待機させられます。 周期的に生成される割込みを定義するには、繰返し間隔を指定します。この値 は、次の割込みを生成するまでの間隔を表すサイクル数を定義します。繰返し 間隔の他に、その間隔が経過した後に実際に割込みを発生させる確率 ( パーセ ント値 ) と、繰返し間隔に対するばらつき ( パーセント値 ) の 2 つのオプショ ンによって、実際の発生間隔を制御できます。この 2 つのオプションを使用し て、割込みシミュレーションをランダム化できます。その他に、割込みの保持 時間を指定できます。この時間が経過しても処理されない割込みは削除されま す。保持時間を無限に設定すると、割込みが確認され削除されるまで対応する 保持ビットが設定されます。 IAR Embedded Workbench® IDE 172 ユーザガイド 割込みシミュレーション 割込みシミュレーションの状態 割込みシミュレーションシステムには、アプリケーションにおけるタイミングの 問題を特定するために役立つステータス情報があります。[ 割込み設定 ] ダイア ログボックスには、利用できるステータス情報が表示されます。割込み有効信号 は、[ 待機 ] か [ 保留 ] のいずれかの状態になります。割込みに関して、下記 の状態が表示されます。[ 実行 ]、[ 削除済み ]、または [ 期限切れ ]。 指定された繰返し間隔が実行時間よりも長い繰返し可能割込みのステータス 情報の経時変化例を以下に示します。 時間 保持時間 割込み 有効 信号 A B C D E 割込みハンドラの 実行時間 ステータス A 待機 B 保留 C 待機 (1 実行 ) D 待機 (1 実行 ) E 待機 図 64: シミュレーション状態 - 例 1 割込みの繰返し間隔が実行時間よりも短く、割込みがリエントラント ( または ノンマスカブル ) の場合、ステータス情報の経時変化は以下のようになります。 時間 保持時間 割込み 有効 信号 A B C 割込みハンドラの 実行時間 (1) D 割込みハンドラの 実行時間 (2) ステータス A 待機 B 実行 C 待機 (1 実行 ) D 実行 (1 実行 ) 図 65: シミュレーション状態 - 例 2 この例では、割込みハンドラの実行時間が繰返し間隔に比べて長すぎます。場 合によっては、割込みハンドラを書き換えるか、割込みシミュレーションシス テムの繰返し間隔に指定する値を大きくする必要があります。 割込みシミュレーションシステムの使用 割込みシミュレーションシステムは使いやすく設計されています。ただし、割 込みシミュレーションシステムの力を最大限に利用するには、使用しているプ ロセッサに適合させる方法に習熟し、以下に示すインタフェースの使用方法を 学ぶ必要があります。 ● ● [ 強制割込み ] ウィンドウ [ 割込み ] ダイアログボックスと [ 割込み設定 ] ダイアログボックス パート 5: IAR C-SPY シミュレータ 173 割込みシミュレーションシステムの使用 ● ● 割込み用の C-SPY システムマクロ [ 割込みログ ] ウィンドウ ターゲットに合せた割込みシミュレーションシステムの調整 割込みシミュレーションは、ハードウェアと同じように動作します。これは、 割込みの実行はグローバルな割込みイネーブルビットのステータスに依存す ることを意味します。マスカブル割込みの実行も、個々の割込みイネーブル ビットのステータスに依存します。 さまざまな種類のハードウェアに対してこれらのアクションを実行できるよ うにするには、使用できる割込みの詳細情報を割込みシステムに通知する必要 があります。この情報は、デフォルト設定を除いては、デバイス記述ファイル で提供されています。cpuname\config ディレクトリに、定義済の ddf ファイ ルがあります。デバイス記述ファイルが指定されなかった場合は、デフォルト 設定が使用されます。 1 C-SPY を起動する前にデバイス記述ファイルをロードするには、[ プロジェク ト ]> [ オプション ] を選択して、[ デバッガ ] カテゴリの [ 設定 ] タブをクリッ クします。 2 ターゲットに適合するデバイス記述ファイルを選択します。 注 : 使用するデバイスに適合する定義済デバイス記述ファイルが見つからない 場合は、必要に応じて新しいデバイス記述ファイルを定義できます。デバイス 記述ファイルの詳細については、108 ページの「デバイス記述ファイルの選択」 を参照してください。 [ 割込み設定 ] ダイアログボックス [ 割込み設定 ] ダイアログボックス ([ シミュレータ ]>[ 割込み設定 ] を選択して 表示 ) では、定義されているすべての割込みのリストを表示します。 図 66: [ 割込み設定 ] ダイアログボックス IAR Embedded Workbench® IDE 174 ユーザガイド 割込みシミュレーション [ 割込みシミュレーションを有効にする ] オプションは、割込みシミュレーショ ンを有効か無効にします。割込みシミュレーションが無効の場合、定義はその まま残りますが、割込みは発生しません。インストール済みの割込みも、リス トの割込み名の左にあるチェックボックスを使用して、個別に有効か無効にで きます。 各列には、以下の情報が表示されます。 割込み すべての割込みが表示されます。 タイプ 割込みタイプが表示されます。表示されるのは、[ 強制 ]、 [ 単一 ]、[ 繰返し ] のいずれかです。 ステータス 割込みステータスが表示されます。表示されるのは、[ 待機 ]、 [ 削除済み ]、[ 保留 ]、[ 実行 ]、[ 期限切れ ] のいずれかです。 次の実行 次に有効になるまでの待機時間がサイクル単位で表示され ます。 注 : 周期割込みの場合は、[ タイプ ] 列に同じタイプの割込みの同時実行可能 数が表示される場合があります ([n executing])。n が 1 よりも大きい場合は、 割込みシミュレーションシステムには実行が決して終了しないリエントラン ト割込みが存在します。この場合、アプリケーションに問題がある可能性があ ります。 編集や削除ができるのは、[ 強制 ] 以外の割込みだけです。 [ 新規作成 ] か [ 編集 ] をクリックして、[ 割込みの編集 ] ダイアログボックス を開きます。 パート 5: IAR C-SPY シミュレータ 175 割込みシミュレーションシステムの使用 [ 割込みの編集 ] ダイアログボックス [ 割込みの編集 ] ダイアログボックスは、[ 割込み設定 ] ダイアログボックスか らアクセスでき、割込みを追加し変更します。このダイアログボックスを使用 すると、グラフィカルインタフェースで対話的に割込みシミュレーションのパ ラメータを微調整できます。パラメータを追加して、すぐに要求どおり割込み が発生するかどうかをテストできます。 図 67: [ 割込みの編集 ] ダイアログボックス 割込みごとに、以下のオプションを設定できます。 IAR Embedded Workbench® IDE 176 ユーザガイド 割込み 使用できるすべての割込みが表示されるドロップダウンリス ト。ここで割込みを選択すると、自動的に [ 説明 ] ボックスが 更新されます。リストには、選択したデバイス記述ファイルに 記述されているエントリが表示されます。 説明 選択された割込みの内容が設定されている場合は、それが表示 されます。表示する内容は、選択されたデバイス記述ファイル から取得します。システムマクロ __orderInterrupt を使 用して指定された割込みの場合は、[ 説明 ] ボックスには何も 表示されません。 初回割込み 指定されたタイプの割込みを生成するまでの待機時間を表す サイクルカウンタ値が表示されます。 繰返し間隔 割込みの繰返し間隔がサイクル単位で表示されます。 確率 タイミングのばらつきが繰返し間隔に対するパーセント値とし て表示されます。このばらつきの範囲内に割込みが発生する可能 性があります。たとえば、繰返し間隔が 100、ばらつきが 5% の 場合、割込みは T=95 ~ 105 の間に発生する可能性があり、これ によってタイミングのばらつきがシミュレーションされます。 割込みシミュレーション 保持時間 割込みの保持時間がサイクル単位で表示されます。この時間が経過し ても処理されない割込みは削除されます。[Infinite] を選択すると、 対応する保持ビットは割込みが確認、削除されるまで設定されます。 確率 % 割込みが指定された期間内に実際に発生する確率をパーセン ト単位で表した値が表示されます。 [ 強制割込み ] ウィンドウ [ 強制割込み ] ウィンドウは、[ シミュレータ ] メニューからアクセスでき、割 込みを強制的に即時発生させることができます。割込みロジックや割込みルー チンをチェックする場合に便利です。 図 68: [ 強制割込み ] ウィンドウ 割込みを強制的に発生させるには、割込みシミュレーションシステムが有効で ある必要があります。割込みシミュレーションシステムを有効にするには、174 ページの「[ 割込み設定 ] ダイアログボックス」を参照してください。 [ 強制割込み ] ウィンドウには、使用できるすべての割込みのリストがその定 義とともに表示されます。内容フィールドには、選択されたデバイス記述ファ イルから取得した情報が表示されます。 割込みを選択して [ トリガ ] ボタンをクリックすると、選択されたタイプの割 込みが生成されます。 トリガされた割込みは、以下の属性があります。 属性 設定 初回割込み 可能なかぎり早く (0) 繰返し間隔 0 表 22: 強制的に生成された割込みの属性 パート 5: IAR C-SPY シミュレータ 177 割込みシミュレーションシステムの使用 属性 設定 保持時間 Infinite 確率 0% 確率 % 100% 表 22: 強制的に生成された割込みの属性 割込み用の C-SPY システムマクロ マクロによる定義は、要求どおりのブレークポイント設定ができない場合に便 利です。擬似割込みの定義を含むマクロ関数を記述することによって、C-SPY の起動時にそのマクロ関数を実行できます。他にも、マクロファイルを使用し た場合に擬似割込みの定義がドキュメント化されたり、開発プロジェクトに複 数のエンジニアが携わっている場合にグループ内でマクロファイルを共有で きたりといった長所があります。 C-SPY シミュレータには、割込みシミュレーションシステム用に定義済システ ムマクロセットが用意されています。システムマクロを使用して擬似割込みを 指定すると、手順を自動化できるといった長所があります。 割込み関連のシステムマクロを以下に示します。 __enableInterrupts __disableInterrupts __orderInterrupt __cancelInterrupt __cancelAllInterrupts __popSimulatorInterruptExecutingStack 最初の 5 つのマクロのパラメータは、[ 割込み ] ダイアログボックスの該当す るエントリに対応します。__popSimulatorInterruptExecutingStack マクロ の使用方法の詳細については、179 ページの「マルチタスクシステムでの割込 みシミュレーション」を参照してください。 各マクロに関するリファレンス情報の詳細については、352 ページの「C-SPY システムマクロの説明」を参照してください。 セットアップファイルを使用して C-SPY 起動時に擬似割込みを定義 セットアップファイルを使用して C-SPY の起動時に擬似割込みを定義するに は、141 ページの「セットアップマクロとセットアップファイルによる登録と 実行」で説明されている手順を実行します。 IAR Embedded Workbench® IDE 178 ユーザガイド 割込みシミュレーション マルチタスクシステムでの割込みシミュレーション 割込みハンドラから復帰する際に通常の命令以外の方法で割込みを使用する 場合、たとえばタスク切替えが行われるオペレーティングシステムの場合、シ ミュレータは割込みの実行が完了したことを自動的には検出できません。割込 みシミュレーションシステムは正常に動作しますが、[ 割込み設定 ] ダイアロ グボックスのステータス情報は予想したようには表示されない可能性があり ます。同時実行される割込みの数が多すぎると、ワーニングが発生する場合が あります。 これらの問題の発生を避けるには、popSimulatorInterruptExecutingStack マクロを使用して、割込みハンドラからの復帰に使用する通常の命令が実行さ れた場合と同じように、割込みシミュレーションシステムに割込みハンドラの 実行が完了したことを通知します。以下にその手順を示します。 1 割込み関数から復帰する命令にコードブレークポイントを設定します。 2 popSimulatorInterruptExecutingStackマクロを条件としてブレークポイン トに指定します。 ブレークポイントがトリガされると、マクロが実行され、それが完了するとア プリケーションが自動的に実行を継続します。 [ 割込みログ ] ウィンドウ [ 割込みログ ] ウィンドウは [ シミュレータ ] メニューからアクセスでき、[ 割 込み ] ダイアログボックスで有効にした割込みや [ 強制割込み ] ウィンドウで 強制的に発生させた割込みに関するランタイム情報を表示します。この情報は、 ターゲットシステムの割込み処理をデバッグする場合に役に立ちます。 図 69: [ 割込みログ ] ウィンドウ 各列には、以下の情報が表示されます。 列 説明 サイクル イベントが発生したタイミング ( サイクル単位 ) PC イベントが発生したときのプログラムカウンタの値 表 23: [ 割込みログ ] ウィンドウの説明 パート 5: IAR C-SPY シミュレータ 179 シンプルな割込みシミュレーション 列 説明 割込み デバイス記述ファイルで定義された割込み。 数 割込みに割り当てられた一意の番号。同じタイプの異なる割込み を区別するために使用します。 ステータス [ トリガ ]、[Forced]、[Executing]、[Finished]、[Expired] のいずれか の割込みステータスが表示されます。 • [ トリガ ]: 待機時間がすでに経過している割込み。 • [Forced]:[トリガ]と同じだが[Forced Interrupt]ウィンドウで強制的 に発生させた割込み。 • [Executing]: 現在実行中の割込み。 • [Finished]: 実行完了した割込み。 • [Expired]: 処理される前に保持時間が経過した割込み。 表 23: [ 割込みログ ] ウィンドウの説明 ( 続き ) [ 割込みログ ] ウィンドウが開いている間は、実行中に継続的に最新情報に更新 されます。 注 : ウィンドウがエントリで満杯になったら、古いエントリから消去されます。 シンプルな割込みシミュレーション ここに示す例は、タイマ割込みのシミュレーション方法です。ただし、他のタ イプの割込みも同じ手順でシミュレーションできます。 このシンプルなアプリケーションには、tick 変数をインクリメントするタイマ 用の割込みサービスルーチンが含まれます。main 関数は必要に応じてステー タスレジスタを設定します。アプリケーションは、100 回割込みが生成される と終了します。 #include "iocpuname.h" #include <intrinsics.h> int ticks = 0; void main (void) { /* ここにユーザのタイマ設定コードを入力します */ } IAR Embedded Workbench® IDE 180 ユーザガイド __enable_interrupt(); /* 割込みを有効にします */ while (ticks < 100); printf("Done\n"); /* 無限ループ */ 割込みシミュレーション /* タイマ割込みサービスルーチン */ #pragma vector = TIMER_VECTOR __interrupt void timer(void) { ticks += 1; } 割込みシミュレーションとデバッグを行うには、以下の手順に従います。 1 割込みサービルルーチンをアプリケーションソースコードに追加して、その ファイルをプロジェクトに追加します。 2 割込みシミュレーションをできるようにするには、割込みに関する情報を C-SPY に通知する必要があります。この情報は、デバイス記述ファイルで提供 されます。デバイス記述ファイルを選択するには、[ プロジェクト ]>[ オプショ ン ] を選択して、[ デバッガ ] カテゴリの [ 設定 ] タブをクリックします。[ バ イス記述ファイル ] 参照ボタンを使用して、ddf ファイルを指定します。 3 プロジェクトをビルドして、シミュレータを起動します。 4 [シミュレータ]>[割込み設定]を選択して、[割込み設定]ダイアログボックスを 開きます。[ 割込みシミュレーションを有効にする ] オプションを選択して、割 込みシミュレーションを有効にします。[ 新規作成 ] をクリックして [ 割込み の編集 ] ダイアログボックスを開きます。以下の表に、オプションと設定例を 示します。使用する割込みの要件に合せてオプションを確認してください。 オプション 設定 割込み TIMER_VECTOR 初回割込み 4000 繰返し間隔 2000 保持時間 0 確率 % 100 確率 0 表 24: タイマ割込み設定 [OK] をクリックします。 5 アプリケーションを実行します。アプリケーションソースコードで正常に割込 みが有効になっている場合、C-SPY は以下を実行します。 ● ● サイクルカウンタが 4000 を超えると割込みを生成 その後は約 2000 サイクルごとに周期割込みを生成 パート 5: IAR C-SPY シミュレータ 181 シンプルな割込みシミュレーション IAR Embedded Workbench® IDE 182 ユーザガイド パート 6: リファレンス 情報 『IAR Embedded Workbench® IDE ユーザガイド』のこのパートは、以 下の章で構成されています。 ● IAR Embedded Workbench® IDE リファレンス ● C-SPY® デバッガリファレンス ● 一般オプション ● コンパイラオプション ● アセンブラオプション ● カスタムビルドオプション ● ビルドアクションオプション ● リンカオプション ● ライブラリビルダオプション ● デバッガオプション ● C-SPY® マクロリファレンス 183 184 IAR Embedded Workbench® IDE リファレンス この章では、IAR Embedded Workbench IDE のウィンドウ、メニュー、 メニューコマンド、対応するコンポーネントのリファレンス情報を収 録しています。目的に合わせた最適な Embedded Workbench の使用方 法については、このガイドのパート 3 ~ 5 を参照してください。 IAR Embedded Workbench IDE は、モジュール化構造のアプリケーショ ンです。使用可能なメニューは、インストールされているコンポーネ ントによって異なります。 ウィンドウ 使用可能なウィンドウは、以下のとおりです。 ● ● ● ● ● ● [IAR Embedded Workbench IDE] ウィンドウ [ ワークスペース ] ウィンドウ エディタウィンドウ [ ソースブラウザ ] ウィンドウ [ ブレークポイント ] ウィンドウ メッセージウィンドウ また、IAR C-SPY® デバッガを起動すると、C-SPY 専用のウィンドウも使用可 能になります。それらのウィンドウのリファレンス情報については、本ガイド の「C-SPY® デバッガリファレンス」の章を参照してください。 パート 6: リファレンス情報 185 ウィンドウ [IAR EMBEDDED WORKBENCH IDE] ウィンドウ 下図に、IAR Embedded Workbench IDE のメインウィンドウおよび各種コンポー ネントを示します。使用するプラグインモジュールによって、ウィンドウの表 示が異なる場合があります。 メニューバー ツールバー エディタ ウィンドウ [ ワークス ペース ] ウィンドウ ステータス バー 図 70: [IAR Embedded Workbench IDE] ウィンドウ 以下では、ウィンドウ内の各項目の詳細を説明します。 メニューバー IAR Embedded Workbench IDE のメニューが表示されます。 メニュー 説明 ファイル [ ファイル ] メニューには、ソースおよびプロジェクトファイルのオープ ン、保存、印刷、IAR Embedded Workbench IDE の終了を実行するコマンド が表示されます。 編集 [ 編集 ] メニューには、エディタウィンドウでの編集 / 検索用コマンドと、 C-SPY でのブレークポイントの設定 / 解除用コマンドが表示されます。 表示 [ 表示 ] メニューのコマンドは、開いているウィンドウの選択やツールバー の表示の切替えに使用します。 表 25: IAR Embedded Workbench IDE メニューバー IAR Embedded Workbench® IDE 186 ユーザガイド IAR Embedded Workbench® IDE リファレンス メニュー 説明 プロジェクト[ プロジェクト ] メニューには、プロジェクトへのファイルの追加、グルー プの作成、現在のプロジェクトでの IAR システムズツールの実行のための コマンドが表示されます。 ツール [ツール]メニューはユーザ設定可能なメニューで、 IAR Embedded Workbench IDE で使用するツールを追加することができます。 ウィンドウ [ ウィンドウ ] メニューのコマンドを使用して [IAR Embedded Workbench IDE] ウィンドウを操作し、画面上での配置を変更できます。 ヘルプ [ ヘルプ ] メニューのコマンドを使用して、 IAR Embedded Workbench IDE の ヘルプを表示できます。 表 25: IAR Embedded Workbench IDE メニューバー ( 続き ) 各メニューのリファレンス情報については、212 ページの「メニュー」を参照 してください。 ツールバー IAR Embedded Workbench IDE ツールバー ([ 表示 ] メニューから表示 ) には、 IAR Embedded Workbench IDE のメニューで最も便利なコマンドを実行するた めのボタンと、文字列を入力してすばやく検索するためのテキストボックスが あります。 ボタンの上にポインタを移動すると、そのボタンの説明が表示されます。コマ ンドが使用できない場合は、対応するツールバーボタンは灰色表示され、ク リックできません。 下図に、各ツールバーボタンに対応するメニューコマンドを示します。 開く すべて 保存 保存 新規ドキュメント 印刷 置換 貼り付け コピー 元に戻す ブックマー クに移動 次を検索 やり直し 切り取り [ クイック検索 ] テキス トボックス 検索 前を検索 次に移動 メイク ブレークポ イントの切 り替え 移動 前に移動 ビルドの 停止 ブックマークの追 デバッグ コンパイル 加 / 削除 図 71: IAR Embedded Workbench IDE ツールバー 注 : C-SPY を起動すると、[ デバッグ ] ボタンが [ メイクおよびデバッグ ] ボタ ンに変化します。 パート 6: リファレンス情報 187 ウィンドウ ステータスバー ウィンドウ下部に表示されるステータスバー([ 表示 ] メニューから表示 ) には、 IAR Embedded Workbench IDE の状態と、修飾キーの状態が表示されます。 編集中は、ステータスバーには挿入ポイントがある現在の行 / 列番号と、Caps Lock、Num Lock、上書きの各状態が表示されます。 図 72: [IAR Embedded Workbench IDE] ウィンドウのステータスバー [ ワークスペース ] ウィンドウ [ ワークスペース ] ウィンドウ ([ 表示 ] メニューから表示 ) には、現在のワー クスペースと、ワークスペースに含まれるプロジェクト、グループ、ファイル がツリー形式で表示されます。 構成ドロップダウン メニュー ワークス ペースの 表示内容 を選択す るタブ 次にプロジェクトをビル ドするときに、ファイル がリビルドされることを 示します オプションのオーバライド 状態を示します ソースコードの制御 状態を示します 図 73: [ ワークスペース ] ウィンドウ ウィンドウ上部にあるドロップダウンリストでは、そのプロジェクト用ウィン ドウで表示するビルド構成を選択できます。 IAR Embedded Workbench® IDE 188 ユーザガイド IAR Embedded Workbench® IDE リファレンス 設定やオーバライドの状態を示す列には、プロジェクトのレベルごとに、3 つ のアイコンのいずれかが表示されます。 Blank このファイル / グループの設定 / オーバライドはありません。 Black check mark このファイル / グループのローカル設定 / オーバライドがあります。 Red check mark このファイル / グループにはローカル設定 / オーバライドがあります が、継承した設定と同一のため オーバライドは必要ありません。 ソースコード管理アイコンの詳細については、192 ページの「ソースコード管 理状態」を参照してください。 ウィンドウ下部では、表示するプロジェクトを選択できます。また、ワークス ペース全体の概要を表示することもできます。 プロジェクト管理と [ ワークスペース ] ウィンドウの使用の詳細については、 本ガイドの「パート 3: プロジェクト管理とビルド」、「プロジェクト管理」の 章を参照してください。 [ ワークスペース ] ウィンドウのコンテキストメニュー [ ワークスペース ] ウィンドウで右マウスボタンをクリックすると、コンテキスト メニューが表示されます。これを使用して、コマンドを簡単に実行することができ ます。 図 74: [ ワークスペース ] ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 オプション [ ワークスペース ] ウィンドウで選択した項目に対して、各ビルド ツールのオプションを設定できるダイアログボックスを表示しま す。プロジェクト全体、ファイルのグループ、個々のファイルの オプションを設定できます。 メイク 最後のビルド以降に変更されたファイルだけをコンパイル、アセ ンブル、リンクして、現在のターゲットを最新状態に更新します。 表 26: [ ワークスペース ] ウィンドウのコンテキストメニューコマンド パート 6: リファレンス情報 189 ウィンドウ メニューコマンド 説明 コンパイル 選択されているファイルを必要に応じてコンパイル/アセンブルし ます。[ ワークスペース ] ウィンドウで選択するか、コンパイル対 象ファイルが開かれたエディタウィンドウを選択することで、 ファイルを選択できます。 選択したビルド構成のすべてのファイルを再コンパイルし、再リ ンクします。 すべてを再ビルド クリーン 中間ファイルを削除します。 ビルドを停止 現在のビルド処理を停止します。 追加 > ファイルの追 プロジェクトにファイルを追加するためのダイアログボックスを 加 表示します。 追加 >"filename" の追 指定したファイルをプロジェクトに追加します。このコマンドは、 加 エディタで開かれているファイルがある場合にだけ使用できます。 追加 > グループの追 プロジェクトに新しいグループを追加するためのダイアログボッ 加 クスを表示します。 削除 選択した項目を [ ワークスペース ] ウィンドウから削除します。 ソースコード管理 ソースコード管理用コマンドのサブメニューを表示します。190 ページの「[ ソースコード管理 ] メニュー」を参照してください。 フィルのプロパティ 選択したファイルについて、標準の [ フィルのプロパティ] ダイア ログボックスを表示します。 アクティブに設定 概要ウィンドウで選択したプロジェクトをアクティブプロジェク トに設定します。[ メイク ] コマンド実行時にビルドされるのがア クティブプロジェクトです。 表 26: [ ワークスペース ] ウィンドウのコンテキストメニューコマンド ( 続き ) [ ソースコード管理 ] メニュー [ ソースコード管理 ] メニューは、[ プロジェクト ] メニューか、[ ワークスペー ス ] ウィンドウのコンテキストメニューから選択できます。このメニューには、 サードパーティ製の外部ソースコード管理システムの最もよく使用するコマ ンドのいくつかが表示されます。 図 75: [ ソースコード管理 ] メニュー IAR Embedded Workbench® IDE 190 ユーザガイド IAR Embedded Workbench® IDE リファレンス 外部ソースコード管理システムの操作の詳細については、82 ページの「ソー スコード管理」を参照してください。 サブメニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 チェックイン [ ファイルのチェックイン ] ダイアログボックスを表示します。こ のダイアログボックスで、選択したファイルをチェックインでき ます。193 ページの「[ ファイルのチェックイン ] ダイアログボッ クス」を参照してください。ファイルで行ったすべての変更は、 アーカイブに保存されます。このコマンドは、チェックアウトして いるファイルを [ ワークスペース ] ウィンドウで選択すると使用可 能になります。 チェックアウト 選択したファイルをチェックアウトします。使用する SCC システ ムによっては、ダイアログボックスが表示されます。195 ページの 「[ ファイルのチェックアウト ] ダイアログボックス」を参照して ください。チェックアウトとは、ファイルをローカルにコピーし て編集できるようにすることです。このコマンドは、チェックイ ンしているファイルを [ ワークスペース ] ウィンドウで選択すると 使用可能になります。 チェックアウトを元 選択したファイルを最新のアーカイブバージョンに戻します。 に戻す ファイルはチェックアウト状態ではなくなります。ファイルで 行ったすべての変更は破棄されます。このコマンドは、チェック アウトしているファイルを [ ワークスペース ] ウィンドウで選択す ると使用可能になります。 最新バージョンを 取得 選択したファイルを最新のアーカイブバージョンに置き換えます。 比較 SCC専用ウィンドウで、ローカルバージョンと最新アーカイブバー ジョンの違いを表示します。 履歴 選択したファイルのレビジョン履歴に関する SCC 固有情報を表示 します。 プロパティ 選択したファイルについて SCC システムで取得可能な情報を表示 します。 更新 プロジェクトに含まれるすべてのファイルの SCC 表示を更新しま す。このコマンドは、SCC で管理するすべてのプロジェクトで常 に使用できます。 プロジェクトを SCC SCC クライアントアプリケーションでダイアログを表示し、選択 プロジェクトに接続 した IAR Embedded Workbench プロジェクトと SCC プロジェクト を関連付けます。IAR Embedded Workbench プロジェクトが SCC 管 理化のプロジェクトになります。関連付けを行うと、ステータス情 報を示す特別な列が [ ワークスペース ] ウィンドウに表示されます。 表 27: ソースコード管理コマンドの説明 パート 6: リファレンス情報 191 ウィンドウ メニューコマンド 説明 プロジェクトを SCC 選択した IAR Embedded Workbench プロジェクトと SCC プロジェ クトの関連付けを削除します。プロジェクトが SCC 管理の対象外 プロジェクトから になります。[ ワークスペース ] ウィンドウで SCC ステータス情報 切断 を示す列が、そのプロジェクトについては表示されなくなります。 表 27: ソースコード管理コマンドの説明 ( 続き ) ソースコード管理状態 ソースコード管理対象ファイルは、複数の状態のいずれかになります。 SCC 状態 説明 チェックアウトされています。ファイルの編集が可能です。 チェックアウトされています。ファイルの編集が可能で、ファイ ルが修正されています。 ( 灰色の錠 ) チェックインされています。これは、多くの SCC システムで、ファ イルが書き込み保護されていることを示します。 ( 灰色の錠 ) チェックインされています。アーカイブに新しいバージョンがあ ることを示します。 ( 赤の錠 ) 他のユーザ専用にチェックアウトされています。多くの SCC シス テムでは、ファイルをチェックアウトできないことを示します。 ( 赤の錠 ) 他のユーザ専用にチェックアウトされています。アーカイブに新 しいバージョンがあることを示します。多くの SCC システムでは、 ファイルをチェックアウトできないことを示します。 表 28: ソースコード管理状態の説明 注 : IAR Embedded Workbench でのソースコード管理では、SCC システムが提 供する情報を使用します。SCC システムがステータスについて誤った、あるい は不完全な情報を提供すると、IAR Embedded Workbench で誤ったアイコンが 表示されることがあります。 IAR Embedded Workbench® IDE 192 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ソースコード管理プロバイダの選択 ] ダイアログボックス 複数のベンダの SCC システムを利用可能な場合は、[ ソースコード管理プロバ イダの選択 ] ダイアログボックスが表示されます。このダイアログボックスを 使用して、使用する SCC システムを選択します。 図 76: [ ソースコード管理プロバイダの選択 ] ダイアログボックス [ ファイルのチェックイン ] ダイアログボックス [ ファイルのチェックイン ] ダイアログボックスは、[ プロジェクト ]>[ ソー スコード管理 ]>[ チェックイン ] コマンドを選択する ([ ワークスペース ] ウィ ンドウのコンテキストメニューからも選択可能 ) と表示されます。 図 77: [ ファイルのチェックイン ] ダイアログボックス パート 6: リファレンス情報 193 ウィンドウ コメント コメントを入力できるテキストボックスです。通常は、変更点などの説明を入 力します。入力内容は、ファイルレビジョンと併せてアーカイブに保存されま す。このテキストボックスは、SCC システムがチェックイン時のコメント追加 をサポートしている場合にだけ使用可能になります。 チェックアウトを維持 チェックイン後も、ファイルがチェックアウト状態のままになります。通常 は、ファイルに対する作業を停止せずに、プロジェクトチームの他のメンバが 修正を確認できるようにする場合に使用します。 詳細設定 SCC クライアントアプリケーションの詳細オプション設定用ダイアログボッ クスを表示します。このボタンは、SCC システムがチェックイン時の詳細オプ ション設定をサポートしている場合にだけ使用可能になります。 ファイル チェックインされるファイルのリストを表示します。リストには、このダイア ログボックス表示時に [ ワークスペース ] ウィンドウで選択されていたすべて のファイルが表示されます。 IAR Embedded Workbench® IDE 194 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ファイルのチェックアウト ] ダイアログボックス [ ファイルのチェックアウト ] ダイアログボックスは、[ プロジェクト ]>[ ソー スコード管理 ]>[ チェックアウト ] コマンドを選択すると表示されます ([ ワーク スペース ] ウィンドウのコンテキストメニューからも選択可能 )。ただし、こ のボタンは、SCC システムがチェックアウト時のコメント追加や詳細オプショ ン設定をサポートしている場合にだけ使用可能になります。 図 78: [ ファイルのチェックアウト ] ダイアログボックス コメント コメントを入力できるテキストフィールドです。通常は、ファイルのチェック アウトの理由を入力します。入力内容は、ファイルレビジョンと併せてアーカ イブに保存されます。このテキストボックスは、SCC システムがチェックアウ ト時のコメント追加をサポートしている場合にだけ使用可能になります。 詳細設定 SCC クライアントアプリケーションの詳細オプション設定用ダイアログボッ クスを表示します。このボタンは、SCC システムがチェックアウト時の詳細オ プション設定をサポートしている場合にだけ使用可能になります。 ファイル チェックアウトされるファイルのリストを表示します。リストには、このダイ アログボックス表示時に [ ワークスペース ] ウィンドウで選択されていたすべ てのファイルが表示されます。 パート 6: リファレンス情報 195 ウィンドウ エディタウィンドウ エディタウィンドウには、ソースファイルが表示されます。同時に複数のエ ディタウィンドウを表示できます。エディタウィンドウは常にドッキングされ ていて、サイズと位置は他の開いているウィンドウに応じて変化します。 開いているすべてのファイルを 示すドロップダウンメニュー タブ 分割 バー ブック マーク 分割バー 関数に移動 図 79: エディタウィンドウ 開いているソースファイルの名前がタブに表示されます。ファイルがリードオ ンリーの場合は、エディタウィンドウの左下隅に錠アイコンが表示されます。 最後に保存した後にファイルが修正されている場合は、Utilities.c * のよう に、タブ上のファイル名の後にアスタリスクが表示されます。エディタウィン ドウの右上にある ドロップダウンメニューから、開いているすべてのファイ ルを選択できます。 エディタの使用の詳細については、91 ページの「編集」を参照してください。 [ 分割 ] コマンド エディタウィンドウを縦 / 横に分割するには、[ ウィンドウ ]>[ 分割 ] コマンド を選択するか、分割バーを使用します。 [ ウィンドウ ] メニューには、複数のエディタウィンドウを開くコマンドや、エ ディタウィンドウ間でファイルを移動するためのコマンドもあります。 IAR Embedded Workbench® IDE 196 ユーザガイド IAR Embedded Workbench® IDE リファレンス 関数に移動 エディタウィンドウの左下隅にある [ 関数に移動 ] ボタンを使用して、C/C++ エディタウィンドウで使用されているすべての関数を表示することができま す。いずれかの関数を選択すると、その場所に直接移動できます。 エディタウィンドウのタブのコンテキストメニュー エディタウィンドウのタブを右クリックすると表示されるコンテキストメニュー を使用して、ファイルを保存するコマンドや閉じるコマンドを実行できます。 図 80: エディタウィンドウのタブのコンテキストメニュー エディタウィンドウのコンテキストメニュー エディタウィンドウのコンテキストメニューを使用して、いくつかのコマンド を簡単に実行できます。 図 81: エディタウィンドウのコンテキストメニュー 注 : このメニューの内容は状況によって異なるため、この図とは異なるコマン ドが表示される場合があります。表示される可能性のあるすべてのコマンド を、表 29「エディタウィンドウのコンテキストメニューのコマンドの詳細」で 説明しています。 エディタウィンドウのコンテキストメニューから実行できるコマンドは、以下 のとおりです。 メニューコマンド 説明 切り取り、コピー、 Windows 標準のコマンド。 貼り付け 表 29: エディタウィンドウのコンテキストメニューのコマンドの詳細 パート 6: リファレンス情報 197 ウィンドウ メニューコマンド 説明 入力補完 入力内容に応じて、エディタドキュメントの他の部分の内容から 入力語を推測して補完します。 括弧のマッチング 挿入ポイントの直近の括弧内のテキストをすべて選択します。す でに選択されている場合は、その外側の次の括弧まで選択範囲を 拡大します。外側に括弧がない場合は、ビープ音を再生します。 テンプレートの挿入 挿入ポイントの位置に挿入するコードテンプレートを選択できる リストを、エディタウィンドウで表示します。選択したコードテン プレートでフィールドへの入力が必要な場合は、[テンプレート]ダ イアログボックスが表示されます。このダイアログボックスについ ては、222ページの「[テンプレート]ダイアログボックス」を参照し てください。コードテンプレートの使用方法については、95ページ の「コードテンプレートの使用と追加」を参照してください。 "header.h" を開く "header.h" という名前のヘッダファイルをエディタウィンドウで 開きます。このメニューコマンドは、コンテキストメニューを表 示したときに挿入ポイントが #include 行にある場合にだけ使用 できます。 ヘッダ / ソースファ 現在のファイルから、対応するヘッダファイルかソースファイルに イルを開く 移動します。コマンド実行時に対象ファイルが開かれていない場合 は、そのファイルを開きます。このメニューコマンドは、コンテキ ストメニューを表示したときに挿入ポイントが #include 行を除 く任意の行にある場合に使用できます。このコマンドは、[ ファイ ル ]>[ 開く ] メニューから選択することもできます。 定義に移動 挿入ポイントのある箇所のシンボルの定義を表示します。 チェックイン チェックアウト チェックアウトを元 に戻す ソースコード管理用コマンド。詳細については、190ページの「[ソー スコード管理 ] メニュー」を参照してください。これらのコマンド は、エディタウィンドウで表示中のソースファイルがSCC管理対象 である場合にだけ使用できます。また、ファイルが現在のプロジェ クトに含まれている必要があります。 ブレークポイン トの切り替え ( コード ) ソースウィンドウで、カーソルを含む、または直近の文か命令で、 コードブレークポイントを設定 / 解除します。コードブレークポイ ントについては、205 ページの「[ コード ] ブレークポイントダイ アログボックス」を参照してください。 ブレークポイン トの切り替え ( ログ ) ソースウィンドウで、カーソルを含むかまたはカーソルに近い文 か命令で、ログブレークポイントを設定 / 解除します。ログブレー クポイントについては、206 ページの「[ ログ ] ブレークポイント ダイアログボックス」を参照してください。 ブレークポイントの ブレークポイントの無効 ( 実際には削除せず、後で再度使用できる 有効化 / 無効化 状態にする ) と有効を切り替えます。 表 29: エディタウィンドウのコンテキストメニューのコマンドの詳細 ( 続き ) IAR Embedded Workbench® IDE 198 ユーザガイド IAR Embedded Workbench® IDE リファレンス メニューコマンド 説明 次の文の設定 コードを実行せずに、選択した文か命令の位置に PC を設定しま す。このコマンドは慎重に使用してください。このコマンドは、デ バッガ使用時にだけ使用できます。 クイックウォッチ [ クイックウォッチ ] ウィンドウを表示します。278 ページの「[ ク イックウォッチ ] ウィンドウ」を参照してください。このコマンド は、デバッガ使用時にだけ使用できます。 Add to Watch 選択したシンボルを [ ウォッチ ] ウィンドウに追加します。このコ マンドは、デバッガ使用時にだけ使用できます。 PC へ移動 挿入ポイントを、エディタウィンドウで現在の PC 位置に移動しま す。このコマンドは、デバッガ使用時にだけ使用できます。 カーソル位置まで 実行 現在の文 / 命令から、選択した文 / 命令までコードを実行します。 このコマンドは、デバッガ使用時にだけ使用できます。 オプション [IDE オプション ] ダイアログボックスを表示します。233 ページ の「[ ツール ] メニュー」を参照してください。 表 29: エディタウィンドウのコンテキストメニューのコマンドの詳細 ( 続き ) ソースファイルパス IAR Embedded Workbench IDE は、ある程度までのソースファイルの相対パス をサポートします。 ソースファイルがプロジェクトファイルディレクトリかプロジェクトファイ ルディレクトリ内のサブディレクトリにある場合は、IAR Embedded Workbench IDE はプロジェクトファイルとの相対パスを使用してソースファイルにアク セスします。 エディタのキー操作のまとめ 下表に、エディタのキーボードコマンドをまとめています。 挿入ポイントの移動には、以下のキーやキーコンビネーションを使用します。 挿入ポイントの移動操作 キー 左に 1 文字分移動 左矢印 右に 1 文字分移動 右矢印 左に 1 語分移動 Ctrl+ 左矢印 右に 1 語分移動 Ctrl+ 右矢印 上に 1 行分移動 上矢印 下に 1 行分移動 下矢印 行の先頭まで Home 表 30: エディタで挿入ポイントを移動するキーボードコマンド パート 6: リファレンス情報 199 ウィンドウ 挿入ポイントの移動操作 キー 行の最後まで End ファイルの先頭行に移動 Ctrl+Home ファイルの最終行に移動 Ctrl+End 表 30: エディタで挿入ポイントを移動するキーボードコマンド ( 続き ) テキストのスクロールには、以下のキーやキーコンビネーションを使用します。 スクロール操作 キー 上に 1 行 Ctrl+ 上矢印 下に 1 行 Ctrl+ 下矢印 上に 1 ページ Page Up 下に 1 ページ Page Down 表 31: エディタでのスクロール用キーボードコマンド テキストの選択には、以下のキーやキーコンビネーションを使用します。 選択操作 キー 左側の文字 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 表 32: エディタでのテキスト選択用キーボードコマンド IAR Embedded Workbench® IDE 200 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ソースブラウザ ] ウィンドウ [ ソースブラウザ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、アクティブ なビルド構成で定義されているすべてのシンボルが、アルファベット順で階層 表示されます。 図 82: [ ソースブラウザ ] ウィンドウ このウィンドウは、2 つのペインで構成されています。上側のペインには、プロ ジェクトで定義されているグローバルシンボルや関数の名前が表示されます。 各行の先頭にはアイコンが表示されています。このアイコンは、シンボルの種 類を示します。表 33「[ ソースブラウザ ] ウィンドウの情報」を参照してくだ さい。ウィンドウのヘッダをクリックすると、名前 / シンボルの種類を基準に シンボルをソートできます。 上側のペインでは、コンテキストメニューも使用できます。202 ページの「[ ソー スブラウザ ] ウィンドウのコンテキストメニュー」を参照してください。 上側のペインで選択したシンボルに応じて、下側のペインに以下の情報が表示 されます。 情報の種類 説明 フルネーム 各エレメントの一意の名前 (classname::membername など ) が表 示されます。 シンボルタイプ 各エレメントのシンボルの種類(列挙型、列挙定数、クラス、 typedef、 共用体、マクロ、フィールド / 変数、関数、テンプレート関数、テ ンプレートクラス、設定 ) が表示されます。 ファイル名 エレメントが定義されているファイルのパスを示します。 表 33: [ ソースブラウザ ] ウィンドウの情報 パート 6: リファレンス情報 201 ウィンドウ [ ソースブラウザ ] ウィンドウの使用方法の詳細については、81 ページの「ブ ラウズ情報の表示」を参照してください。 [ ソースブラウザ ] ウィンドウのコンテキストメニュー [ ソースブラウザ ] ウィンドウで右クリックすると、コンテキストメニューが 表示されます。これを使用して、コマンドを簡単に実行することができます。 図 83: [ ソースブラウザ ] ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 ソースへ移動 エディタウィンドウで、選択した項目の定義を表示します。 親に移動 選択したエレメントがクラス、構造体、共用体、列挙型、名前空 間のメンバーである場合に、このメニューコマンドを使用して、 そのエレメントの親エレメントに移動することができます。 すべてのシンボル タイプフィルタ。プロジェクト内で定義されたすべてのグローバ ルシンボルや関数が表示されます。 すべての関数と変数 タイプフィルタ。プロジェクト内で定義されたすべての関数や変 数が表示されます。 タイプ タイプフィルタ。プロジェクト内で定義されたすべての型 ( 構造 体、クラスなど ) が表示されます。 定数とマクロ タイプフィルタ。プロジェクト内で定義されたすべての定数やマ クロが表示されます。 すべてのファイル ファイルフィルタ。プロジェクトに明示的に追加したすべての ファイルと、それらのファイルでインクルードされるすべての ファイル内のシンボルが表示されます。 システムインクルード ファイルフィルタ。プロジェクトに明示的に追加したすべての を除く ファイルと、それらのファイルでインクルードされるすべての ファイル内 (IAR Embedded Workbench のインストールディレクト リ内のインクルードファイルを除く ) のシンボルが表示されます。 プロジェクタメンバのみファイルフィルタ。プロジェクトに明示的に追加したすべての ファイル ( それらのファイルでインクルードされるファイルを除 く ) 内のシンボルが表示されます。 表 34: [ ソースブラウザ ] ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench® IDE 202 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ブレークポイント ] ウィンドウ [ ブレークポイント ] ウィンドウ ([ 表示 ] メニューから表示 ) には、すべての ブレークポイントが表示されます。このウィンドウでは、ブレークポイントの モニタや有効 / 無効の切替えを簡単に行うことができます。また、新しいブレー クポイントの定義や、既存のブレークポイントの修正も行うことができます。 図 84: [ ブレークポイント ] ウィンドウ 定義したすべてのブレークポイントが [ ブレークポイント ] ウィンドウに表示 されます。 ブレークポイントシステムとブレークポイントの設定方法の詳細については、 「パート 4: デバッグ」の「ブレークポイントの使用」を参照してください。 [ ブレークポイント ] ウィンドウのコンテキストメニュー [ ブレークポイント ] ウィンドウで右クリックすると、コンテキストメニュー が表示されます。これを使用してコマンドを実行することができます。 図 85: [ ブレークポイント ] ウィンドウのコンテキストメニュー パート 6: リファレンス情報 203 ウィンドウ コンテキストメニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 ソースへ移動 ブレークポイントに対応する位置がソースにある場合に、挿入ポイ ントをブレークポイント位置に移動します。[ ブレークポイント ] ウィンドウでブレークポイントをダブルクリックした場合も、同 一の操作が実行されます。 編集 選択したファイルについて、標準の [Edit Breakpoint] ダイアログ ボックスを表示します。 削除 選択したブレークポイントを削除します。削除キーを押した場合 も、同一の操作が実行されます。 有効 選 択し た ブ レー ク ポイ ン ト を有 効 に しま す。行の 最 初 にあ る チェックボックスが選択されます。チェックボックスを手動で選 択しても、同一の結果になります。このコマンドは、選択したブ レークポイントが無効になっている場合にだけ使用できます。 無効 選択したブレークポイントを無効にします。行の最初にあるチェッ クボックスが選択解除されます。チェックボックスを手動で選択解 除しても、同一の結果になります。このコマンドは、選択したブ レークポイントが有効になっている場合にだけ使用できます。 すべて有効 定義されたすべてのブレークポイントを有効にします。 すべて無効 定義されたすべてのブレークポイントを無効にします。 新規ブレークポイント[ 新規ブレークポイント ] ダイアログボックスを開くためのサブメ ニューを表示します。ここで、使用可能な種類のブレークポイン トを定義できます。[ 新規ブレークポイント ] ダイアログボックス で定義したすべてのブレークポイントは、デバッグセッションの終 了後も保持されます。使用する C-SPY ドライバによっては、コード / ログブレークポイント (205 ページの「[ コード ] ブレークポイント ダイアログボックス」を参照 ) 以外の種類のブレークポイントも使 用可能な場合があります。ドライバ固有のブレークポイントの種類に ついては、そのドライバのデバッガ関連ドキュメントを参照してく ださい。 表 35: [ ブレークポイント ] ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench® IDE 204 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ コード ] ブレークポイントダイアログボックス コードブレークポイントは、指定位置から命令をフェッチした時にトリガされ ます。特定のマシン命令にブレークポイントを設定した場合は、命令の実行前 にブレークポイントがトリガされ、実行が停止します。 コードブレークポイントを設定するには、[ ブレークポイント ] ウィンドウを 右クリックし、コンテキストメニューから [ 新規ブレークポイント ]>[ ログ ] を選択します。既存のブレークポイントを修正するには、[ ブレークポイント ] ウィンドウでそのブレークポイントを選択し、コンテキストメニューから [ 編 集 ] を選択します。 [ コード ] ブレークポイントダイアログボックスが表示されます。 図 86: [ コード ] ブレークポイントページ ブレーク位置 [ ブレーク位置 ] テキストボックスでブレークポイントの位置を指定します。 ま たは、[ 編集 ] ボタンをクリックして [ ブレーク位置入力 ] ダイアログボックス を表示します。208 ページの「[ ブレーク位置入力 ] ダイアログボックス」を 参照してください。 サイズ また、ローケーションのサイズ ( 範囲 ) を指定することもできます。指定した メモリ範囲に対してフェッチアクセスが発生するごとに、ブレークポイントが トリガされます。サイズの指定方法は 2 種類あります。 ● ● [ 自動 ] を指定すると、サイズが自動設定される ( 通常は 1) [ 手動 ] を指定した場合は、[ サイズ ] テキストボックスでブレークポイント範 囲のサイズを手動で指定する パート 6: リファレンス情報 205 ウィンドウ アクション ブレークポイントにアクションを関連付けることもできます。C-SPY マクロ関 数などの式を指定すると、ブレークポイントのトリガ時に条件が真であるとき に評価されます。 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式。 条件式の値が真 式の値が真の場合に、ブレークポイントがトリガされます。 条件式の値が変化 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 スキップ数 実行を停止するまでのブレークポイントトリガ回数 ( 整数 ) を指定 します。 表 36: ブレークポイントの条件 [ ログ ] ブレークポイントダイアログボックス ログブレークポイントは、指定位置から命令をフェッチ時にトリガされます。 特定のマシン命令にブレークポイントを設定した場合は、命令の実行前にブ レークポイントがトリガされ、実行が一時停止し、指定したメッセージが [C-SPY デバッグログ ] ウィンドウに出力されます。これを使用して、アプリ ケーションの実行時に、アプリケーションソースコードを変更せずにトレース 出力を追加することができます。 ログブレークポイントを設定するには、[ ブレークポイント ] ウィンドウを右 クリックし、コンテキストメニューから [ 新規ブレークポイント ]>[ ログ ] を 選択します。既存のブレークポイントを修正するには、[ ブレークポイント ] ウィンドウでそのブレークポイントを選択し、コンテキストメニューから [ 編 集 ] を選択します。 IAR Embedded Workbench® IDE 206 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ログ ] ブレークポイントダイアログボックスが表示されます。 図 87: [ ログ ] ブレークポイントページ ログブレークポイントを設定するには、エディタか [ 逆アセンブリ ] ウィンド ウで右クリックすると表示されるコンテキストメニューから [ ブレークポイン トの切り替え ( ログ )] を選択するのが、最も簡単で一般的な方法です。ブレー クポイントの設定方法の詳細については、125 ページの「ブレークポイントの 定義」を参照してください。 ブレーク位置 [ ブレーク位置 ] テキストボックスでブレークポイントの位置を指定します。 ま たは、[ 編集 ] ボタンをクリックして [ ブレーク位置入力 ] ダイアログボックス を表示します。208 ページの「[ ブレーク位置入力 ] ダイアログボックス」を 参照してください。 メッセージ [C-SPY デバッグログ ] ウィンドウで表示するメッセージを指定します。通常 のテキストか、コンマ区切りの引数リスト ([C-SPY マクロ "__message" スタ イル ] オプションも選択している場合 ) を入力します。 C-SPY マクロ "__message" スタイル [メッセージ]テキストボックスで指定したコンマ区切りの引数リストをC-SPY マクロ言語文 __message の引数として使用する場合は、このオプションを選 択します。348 ページの「フォーマットした出力」を参照してください。 パート 6: リファレンス情報 207 ウィンドウ 条件 単純条件や複合条件を指定できます。 条件 説明 式 C-SPY 式の構文に準拠する有効な式。 条件式の値が真 式の値が真の場合に、ブレークポイントがトリガされます。 条件式の値が変化 最後の評価時以降に式の値が変化した場合に、ブレークポイント がトリガされます。 表 37: ログブレークポイントの条件 [ ブレーク位置入力 ] ダイアログボックス ブレークポイントの位置を指定するには、[ ブレーク位置入力 ] ダイアログボッ クス ([ ブレークポイント ] ダイアログボックスから表示 ) を使用します。 図 88: [ ブレーク位置入力 ] ダイアログボックス 以下からブレークポイントの位置および設定を選択することができます。 位置の種類 説明 / 例 式 関数や変数名などの、評価結果が有効なアドレスになる式。コー ドブレークポイントは関数に、データブレークポイントは変数名 にそれぞれ設定します。たとえば、my_var は変数 my_var の位 置、arr[3] は配列 arr の 3 番目のエレメントを参照します。 絶対アドレス zone:hexaddress という形式または単に hexaddress という形 式で示した絶対アドレス。ゾーンは、アドレスが属するメモリを 指定します。Memory:0x42 のように指定します。 有効でないゾーンとアドレスの組合せを入力すると、C-SPY は組合 せが無効であることを示します。 表 38: 位置の種類 IAR Embedded Workbench® IDE 208 ユーザガイド IAR Embedded Workbench® IDE リファレンス 位置の種類 説明 / 例 ソース位置 次の構文を使用して示した C ソースコード内の位置。 {file path}.row.column.file path には、ファイル名およびフル パスを指定します。row には、ブレークポイントを設定する行を指 定します。column には、ブレークポイントを設定する列を指定し ます。[ ソース位置 ] は、通常はコードのブレークポイントだけに 使用します。 たとえば、{C:\my_projects\Utilities.c}.22.3 は、ソー スファイル Utilities.c の 22 行目の 3 文字目の位置にブレーク ポイントを設定します。 表 38: 位置の種類 ( 続き ) [ ビルド ] ウィンドウ [ ビルド ] ウィンドウ ([ 表示 ]>[ メッセージ ] を選択して表示 ) には、ビルド構 成のビルド中のメッセージが表示されます。デフォルトでは、このウィンドウ は他のメッセージウィンドウとグループ化されて表示されます。185 ページの 「ウィンドウ」を参照してください。 図 89: [ ビルド ] ウィンドウ ( メッセージウィンドウ ) [ ビルド ] ウィンドウでメッセージをダブルクリックすると、該当ファイルが 編集用に開かれ、挿入ポイントが正しい箇所に表示されます。 [ ビルド ] ウィンドウを右クリックすると、コンテキストメニューが表示され ます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行できます。 図 90: [ ビルド ] ウィンドウのコンテキストメニュー [ オプション ] コマンドを選択すると、[IDE オプション ] ダイアログボックスで [ メッセージ ] ページが表示されます。このページで、メッセージ関連オプショ ンを設定することができます。243 ページの「[ メッセージ ] オプション」を参照 してください。 パート 6: リファレンス情報 209 ウィンドウ [ ファイルから検索 ] ウィンドウ [ ファイルから検索 ] ウィンドウ ([ 表示 ]>[ メッセージ ] を選択して表示 ) で は、[ 編集 ]>[ 検索と置換 ]>[ ファイルから検索 ] コマンドの出力を表示します。 デフォルトでは、このウィンドウは他のメッセージウィンドウとグループ化さ れて表示されます。185 ページの「ウィンドウ」を参照してください。 図 91: [ ファイルから検索 ] ウィンドウ ( メッセージウィンドウ ) このウィンドウでメッセージをダブルクリックすると、該当ファイルが編集用 に開かれ、挿入ポイントが正しい箇所に表示されます。 [ ファイルから検索 ] ウィンドウを右クリックすると、コンテキストメニューが 表示されます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行 できます。 図 92: [ ファイルから検索 ] ウィンドウのコンテキストメニュー IAR Embedded Workbench® IDE 210 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ツール出力 ] ウィンドウ [ ツール出力 ] ウィンドウ ([ 表示 ]>[ メッセージ ] を選択して表示 ) では、[ 出力 ウィンドウにリダイレクト ] オプションを [ 構成ツール ] ダイアログボックスで 選択している場合に、[ ツール ] メニューに含まれるユーザ定義ツールが出力し たメッセージを表示します。252 ページの「[ 構成ツール ] ダイアログボックス」 を参照してください。デフォルトでは、このウィンドウは他のメッセージウィ ンドウとグループ化されて表示されます。185 ページの「ウィンドウ」を参照し てください。 図 93: [ ツール出力 ] ウィンドウ ( メッセージウィンドウ ) [ ツール出力 ] ウィンドウを右クリックすると、コンテキストメニューが表示さ れます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行できます。 図 94: [ ツール出力 ] ウィンドウのコンテキストメニュー パート 6: リファレンス情報 211 メニュー [ デバッグログ ] ウィンドウ [ デバッグログ ] ウィンドウ ([ 表示 ]>[ メッセージ ] を選択して表示 ) では、診 断メッセージやトレース情報などのデバッガ出力を表示します。この出力は、 C-SPY デバッガの実行中にだけ使用できます。デフォルトでは、このウィンド ウは他のメッセージウィンドウとグループ化されて表示されます。185 ページ の「ウィンドウ」を参照してください。 図 95: [ デバッグログ ] ウィンドウ ( メッセージウィンドウ ) [ ツール出力 ] ウィンドウを右クリックすると、コンテキストメニューが表示さ れます。これを使用して、ウィンドウの内容のコピー、選択、消去を実行できます。 図 96: [ デバッグログ ] ウィンドウのコンテキストメニュー メニュー IAR Embedded Workbench IDE で使用可能なメニューは、以下のとおりです。 ● ● ● ● ● ● ● [ ファイル ] メニュー [ 編集 ] メニュー [ 表示 ] メニュー [ プロジェクト ] メニュー [ ツール ] メニュー [ ウィンドウ ] メニュー [ ヘルプ ] メニュー また、IAR C-SPY デバッガを起動すると、C-SPY 専用のメニューも使用可能に なります。これらのメニューのリファレンス情報については、261 ページの 「C-SPY® デバッガリファレンス」の章を参照してください。 IAR Embedded Workbench® IDE 212 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ファイル ] メニュー [ ファイル ] メニューには、ワークスペースとソースファイルのオープン、保 存、印刷、IAR Embedded Workbench IDE の終了を実行するコマンドが表示さ れます。 また、最近開いたファイルやワークスペースの番号付きリストも表示されます。 これにより、メニューから名前を選択してそのファイルを開くことができます。 図 97: [ ファイル ] メニュー [ ファイル ] メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド ショート カット 新規作成 CTRL+N 新しいワークスペースやテキストファイルを作成するコ マンドを含むサブメニューを表示します。 開く > ファイル CTRL+O 開くテキストファイルを選択するためのサブメニューを 表示します。 開く > ワークスペース 開く > ヘッダ / ソース ファイル 閉じる 説明 開くワークスペースファイルを選択するためのサブメ ニューを表示します。新しいワークスペースを開く前に、 現在開かれているワークスペースを保存して閉じるかど うかを確認するメッセージが表示されます。 CTRL+ SHIFT+H 現在のファイルに対応するヘッダファイルやソースファ イルを開き、現在のファイルから新しく開かれたファイル に移動します。このコマンドは、エディタウィンドウのコ ンテキストメニューからも実行できます。 アクティブなウィンドウを閉じます。修正されているファ イルを、閉じる前に保存するかどうかを確認するメッセー ジが表示されます。 表 39: [ ファイル ] メニューのコマンド パート 6: リファレンス情報 213 メニュー メニューコマンド ショート カット 説明 Open Workspace ワークスペースファイルを開くためのダイアログボック スを表示します。 新しいワークスペースを開く前に、現在開かれていて修正 されているワークスペースファイルを保存して閉じるか どうかを確認するメッセージが表示されます。 ワークスペースの 保存 現在のワークスペースファイルを保存します。 ワークスペースを 閉じる 現在のワークスペースファイルを閉じます。 保存 CTRL+S 現在のテキストファイルやワークスペースファイルを保 存します。 名前を付けて保存 現在のファイルを別名で保存するためのダイアログボッ クスを表示します。 すべて保存 開かれているすべてのテキストドキュメントとワークス ペースファイルを保存します。 ページ設定 印刷オプションを設定するためのダイアログボックスを 表示します。 印刷 CTRL+P テキストドキュメントを印刷するためのダイアログボッ クスを表示します。 最近使用したファ イル 最近開いたテキストドキュメントをすばやく開くための サブメニューを表示します。 最近使用したワー クスペース 最近開いたワークスペースファイルをすばやく開くため のサブメニューを表示します。 終了 IAR Embedded Workbench IDE を終了します。テキストウィ ンドウを閉じる前に、変更内容を保存するかどうかを確認 するメッセージが表示されます。プロジェクトの変更は自 動的に保存されます。 表 39: [ ファイル ] メニューのコマンド ( 続き ) IAR Embedded Workbench® IDE 214 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ 編集 ] メニュー [ 編集 ] メニューから、編集 / 検索用のコマンドを実行できます。 図 98: [ 編集 ] メニュー メニューコマンド ショート カット 元に戻す CTRL+Z 現在のエディタウィンドウで最後に行った変更を取り 消します。 やり直し CTRL+Y 現在のエディタウィンドウで [ 元に戻す ] により取り消 した変更を再実行します。 エディタウィンドウごとに、編集のアンドゥ / リドゥを 無制限に実行することができます。 切り取り CTRL+X エディタウィンドウとテキストボックスでテキストを 切り取るための Windows 標準のコマンド。 コピー CTRL+C エディタウィンドウとテキストボックスでテキストを コピーするための Windows 標準のコマンド。 貼り付け CTRL+V エディタウィンドウとテキストボックスでテキストを 貼り付けるための Windows 標準のコマンド。 形式を選択して貼り 付け すべて選択 説明 クリップボードに最近コピーした内容から、エディタド キュメントに貼り付けるものを選択できます。 CTRL+A アクティブなエディタウィンドウで、すべてのテキスト を選択します。 表 40: [ 編集 ] メニューのコマンド パート 6: リファレンス情報 215 メニュー メニューコマンド ショート カット 検索と置換 > 検索 CTRL+F 現在のエディタウィンドウでテキストを検索するため の [ 検索 ] ダイアログボックスを表示します。[ 検索 ] コ マンド選択時に [ メモリ ] ウィンドウに挿入ポイントが ある場合は、ダイアログボックスに表示されるオプション が異なります。[ 検索 ] コマンドの選択時に [ トレース ] ウィンドウに挿入ポイントがある場合は、[ トレースを 検索 ] ダイアログボックスが表示されます。このダイア ログボックスの内容は、使用している C-SPY ドライバに よって異なります。詳細については、ドライバのドキュ メントを参照してください。 検索と置換 > 次を検索 F3 指定した文字列に一致する次の箇所を検索します。 検索と置換 > 前を検索 SHIFT+F3 指定した文字列に一致する、前の箇所を検索します。 検索と置換 > 置換 CTRL+H 指定した文字列を検索し、一致箇所を別の文字列に置換 するためのダイアログボックスを表示します。[ 置換 ] コマンドの選択時に [ メモリ ] ウィンドウに挿入ポイン トがある場合は、ダイアログボックスに表示されるオプ ションが変化します。 検索と置換 > ファイルから検索 説明 指定した文字列を複数のテキストファイルから検索す るためのダイアログボックスを表示します。219 ページ の「[ ファイルから検索 ] ダイアログボックス」を参照し てください。 検索と置換 > インクリメンタル 検索 CTRL+I 検索文字列を少しずつ変更し、検索の絞込みや拡大を行 うことができるダイアログボックスを表示します。 移動 > 移動 CTRL+G 現在のエディタウィンドウで指定した行や列に挿入ポイ ントを移動するためのダイアログボックスを表示します。 CTRL+F2 移動 > ブックマークの追加 / 削除 アクティブなエディタウィンドウの挿入ポイントのあ る行で、ブックマークを設定 / 解除します。 F2 移動 > ブックマークへ移動 挿入ポイントを、[ ブックマークの追加 / 削除 ] コマンド で定義した次のブックマークに移動します。 移動 > 前へ移動 挿入ポイント履歴で前の項目に移動します。挿入ポイン トの現在の位置は、[ 定義に移動 ] コマンドの実行時や、 [ ファイルから検索 ] コマンドの結果をクリックしたと きに、履歴に追加されます。 ALT+ ← 表 40: [ 編集 ] メニューのコマンド ( 続き ) IAR Embedded Workbench® IDE 216 ユーザガイド IAR Embedded Workbench® IDE リファレンス メニューコマンド ショート カット 説明 移動 > 次へ移動 ALT+ → 挿入ポイント履歴で次の項目に移動します。挿入ポイン トの現在の位置は、[ 定義に移動 ] コマンドの実行時や、 [ ファイルから検索 ] コマンドの結果をクリックしたと きに、履歴に追加されます。 移動 > 定義に移動 F12 選択したシンボル、または挿入ポイントのある箇所のシ ンボルの宣言を表示します。ブラウズ情報が有効な場合 に、このメニューコマンドを使用できます。244 ページ の「[ プロジェクト ] オプション」を参照してください。 コードテンプレート> CTRL+ テンプレートの挿入 SHIFT+ SPACE 挿入ポイントの位置に挿入するコードテンプレートを 選択できるリストを、エディタウィンドウで表示しま す。選択したコードテンプレートでフィールドへの入力 が必要な場合は、[ テンプレート ] ダイアログボックス が表示されます。このダイアログボックスについては、 222 ページの「[ テンプレート ] ダイアログボックス」を 参照してください。コードテンプレートの使用方法につ いては、95 ページの「コードテンプレートの使用と追 加」 を参照してください。 コードテンプレート > テンプレートの編集 現在のコードテンプレートファイルを開き、既存のコー ドテンプレートの修正やユーザ定義コードテンプレー トの追加を行います。コードテンプレートの使用方法に ついては、95 ページの「コードテンプレートの使用と追 加」を参照してください。 次のエラー / タグ F4 [ ファイルから検索 ] コマンドによる検索のエラーメッ セージや結果が [ メッセージ ] ウィンドウで表示されて いる場合は、このコマンドを使用すると、リスト中で次 の項目がエディタウィンドウに表示されます。 前のエラー / タグ SHIFT+F4 [ ファイルから検索 ] コマンドによる検索のエラーメッ セージや結果が [ メッセージ ] ウィンドウで表示されて いる場合は、このコマンドを使用すると、リスト中で前 の項目がエディタウィンドウに表示されます。 入力補完 CTRL+ SPACE 入力内容に応じて、エディタドキュメントの他の部分の 内容から入力語を推測して補完します。 自動インデント CTRL+T C/C++ ソースファイルで選択した行にインデントを設定 します。インデントの設定については、238 ページの「[ 自動インデントの設定 ] ダイアログボックス」を参照し てください。 括弧のマッチング 挿入ポイントの直近の括弧内のテキストをすべて選択 します。すでに選択されている場合は、その外側の次の 括弧まで選択範囲を拡大します。外側に括弧がない場合 は、ビープ音を再生します。 表 40: [ 編集 ] メニューのコマンド ( 続き ) パート 6: リファレンス情報 217 メニュー メニューコマンド ブロックコメント ショート カット 説明 CTRL+SHIF C++ コメント文字列 // を、 選択した行の最初に置きます。 T+K ブロックコメントの CTRL+SHIF C++ コメント文字列 // を、選択した行の先頭から削除 します。 T+K 解除 ブレークポイントの F9 切り替え ソースウィンドウで、カーソルを含むかまたはカーソルの 近くの文か命令で、 ブレークポイントを設定 / 解除します。 このコマンドは、デバッグバーのアイコンボタンからも 実行できます。 ブレークポイントの CTRL+F9 有効化 / 無効化 ブレークポイントの無効 ( 実際には削除せず、後で再度 使用できる状態にする ) と有効を切り替えます。 表 40: [ 編集 ] メニューのコマンド ( 続き ) [ 検索 ] ダイアログボックス [ 編集 ] メニューから [ 検索 ] ダイアログボックスを表示できます。[ メモリ ] ウィンドウでの検索と比較すると、エディタウィンドウでの検索の場合は、こ のダイアログボックスの内容の外観が異なることに、注意してください。 オプション 説明 検索対象 検索するテキストを選択します。 完全に一致する単語のみ 単語として一致する箇所だけを検索します。このオプションを 指定しない場合は、int を検索すると、print、sprintf な ども検索されます。このオプションは、エディタウィンドウで の検索時にだけ使用できます。 大文字と小文字を区別 指定されたテキストの大文字と小文字が完全に一致するもの だけを検索します。このオプションを指定しない場合は、int を検索すると、INT、Int も検索されます。このオプションは、 エディタウィンドウでの検索時にだけ使用できます。 16 進数値を検索 指定した 16 進数値を検索します。このオプションは、[ メモ リ ] ウィンドウでの検索時にだけ使用できます。 次を検索 選択したテキストに一致する次の箇所を検索します。 前を検索 選択したテキストに一致する前の箇所を検索します。 停止 実行中の検索を停止します。このボタンは、[ メモリ ] ウィンド ウでの検索時にだけ使用できます。 表 41: [ 検索 ] ダイアログボックスのオプション IAR Embedded Workbench® IDE 218 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ 置換 ] ダイアログボックス [ 置換 ] ダイアログは [ 編集 ] メニューから実行できます。 オプション 説明 検索対象 検索するテキストを選択します。 置換後の文字列 [ 置換後の文字列 ] ボックスで、一致箇所のテキストに置換する テキストを入力します。 完全に一致する単語のみ単語として一致する箇所だけを検索します。このオプションを 指定しない場合は、int を検索すると、print、sprintf など も検索されます。このチェックボックスは、[ メモリ ] ウィンド ウでの検索時には使用できません。 大文字と小文字を区別 指定されたテキストの大文字と小文字が完全に一致するものだ けを検索します。このオプションを指定しない場合は、int を 検索すると、INT、Int も検索されます。このチェックボック スは、[ メモリ ] ウィンドウでの検索時には使用できません。 16 進数値を検索 指定した 16 進数値を検索します。このチェックボックスは、[ メ モリ ] ウィンドウでの検索時にだけ使用できます。 次を検索 指定したテキストに一致する次の箇所を検索します。 置換 一致箇所のテキストを指定テキストに置換します。 すべて置換 現在のエディタウィンドウで検索テキストに一致する箇所をす べて置換します。 表 42: [ 置換 ] ダイアログボックスのオプション [ ファイルから検索 ] ダイアログボックス 複数のファイル内の文字列を検索するには、[ ファイルから検索 ] ダイアログ ボックス ([ 編集 ] メニューから表示 ) を使用します。 図 99: [ ファイルから検索 ] ダイアログボックス パート 6: リファレンス情報 219 メニュー 検索結果は、[ ファイルから検索 ] メッセージウィンドウ ([ 表示 ] メニューか ら表示 ) で表示されます。[ 編集 ]>[ 次のエラー / タグ ] コマンドを選択する か、[ ファイルから検索 ] メッセージウィンドウでメッセージをダブルクリッ クして、一致箇所に移動することができます。対応するファイルがエディタ ウィンドウで表示され、一致箇所の最初の位置に挿入ポイントが設定されま す。左端の余白にある青色のフラグにより、該当行が示されます。 [ ファイルから検索 ] ダイアログボックスで、以下の設定を使用して検索条件 を指定します。 検索対象 検索文字列を入力するテキストフィールド。検索結果を絞り込むためのオプ ションが 2 つあります。 大文字と小文字を区 指定されたテキストの大文字と小文字が完全に一致するものだけ 別 を検索します。このオプションを指定しない場合は、int を検索 すると、INT、Int も検索されます。 完全に一致する単語 単語として一致する箇所だけを検索します。このオプションを指 のみ 定しない場合は、int を検索すると、print、sprintf なども検 索されます。 検索場所 [ 検索場所 ] にあるオプションを使用して、指定した文字列を検索するファイ ルを指定できます。以下から選択します。 プロジェクトファイルプロジェクトに明示的に追加したすべてのファイルから検索が実 行されます。 プロジェクトファイ プロジェクトに明示的に追加したすべてのファイルと、それらの ルとユーザインク ファイルでインクルードされるすべてのファイル (IAR Embedded ルードファイル Workbench のインストールディレクトリ内のインクルードファイ ルを除く ) で、検索が実行されます。 プロジェクトファイ プロジェクトに明示的に追加したすべてのファイル、およびそれ ルとすべてのインク らによってインクルードされるすべてのファイルから検索が実行 ルードファイル されます。 ディレクトリ 指定したディレクトリ内のファイルに対して検索が実行されま す。最近検索した場所が、ドロップダウンリストに保存されます。 参照ボタンを使用して、ディレクトリを指定します。 サブディレクトリを 指定したディレクトリおよびそのサブディレクトリ内のファイル 検索 に対して検索が実行されます。 IAR Embedded Workbench® IDE 220 ユーザガイド IAR Embedded Workbench® IDE リファレンス ファイルタイプ 検索対象のファイルタイプを選択するフィルタ。 [検索場所]のすべてのオプショ ンに適用されます。ドロップダウンリストからフィルタを選択します。[ ファイ ルタイプ ] テキストフィールドは編集可能で、つまり任意のフィルタを追加で きることに、注意してください。フィルタのゼロ文字以上の任意の文字を示す には * を、任意の 1 文字を示すには ? を使用します。 停止 実行中の検索を停止します。このボタンは、検索中にだけ使用できます。 [ インクリメンタル検索 ] ダイアログボックス [ インクリメンタル検索 ] ダイアログボックス ([ 編集 ] メニューから表示 ) を 使用して、検索文字列を徐々に絞り込むか、広げることができます。 図 100: [ インクリメンタル検索 ] ダイアログボックス 検索対象 検索する文字列を入力します。検索は、挿入ポイントの位置 ( 開始位置 ) から 実行されます。検索文字列を段階的に長くすると、検索条件が段階的に拡大さ れます。Backspace を押すと、検索文字列が 1 文字短くなります。検索は、残 りの文字列を使用して、開始位置から開始されます。 [ インクリメンタル検索 ] ダイアログボックスを表示したときにエディタウィ ンドウで文字列を選択している場合は、その文字列が [ 検索対象 ] テキストボッ クスに表示されます。 大文字と小文字を区別 このオプションを使って、指定されたテキストの大文字と小文字が完全に一致 するものだけを検索します。このオプションを指定しない場合は、int を検索 すると、INT、Int も検索されます。 パート 6: リファレンス情報 221 メニュー 機能ボタン 機能ボタン 説明 次を検索 現在の検索文字列に一致する次の箇所を検索します。[ 次を検索 ] ボタンをクリックしたときに [ 検索対象 ] テキストボックスが空白 の場合は、検索文字列がドロップダウンリストから自動的に選択 されます。この文字列を検索するには、[ 次を検索 ] をクリックし ます。 閉じる このダイアログボックスを閉じます。 表 43: [ インクリメンタル検索 ] 機能ボタン [ テンプレート ] ダイアログボックス 挿入したソースコードテンプレートで必要なフィールド入力を指定するには、[ テ ンプレート ] ダイアログボックスを使用します。このダイアログボックスは、 フィールドへの入力が必要なコードテンプレートを挿入すると表示されます。 図 101: [ テンプレート ] ダイアログボックス 注 : この図は、for ループ用コードを自動挿入するためのデフォルトコードテ ンプレートの表示です。 このダイアログボックスの内容は、コードテンプレートに一致します。つま り、コードテンプレートの定義に応じたフィールドが表示されます。 ダイアログボックスの下部には、そのコードテンプレートで生成されるコード が表示されます。 コードテンプレートの使用方法については、95 ページの「コードテンプレー トの使用と追加」を参照してください。 IAR Embedded Workbench® IDE 222 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ 表示 ] メニュー [ 表示 ] メニューのコマンドを使用して、IAR Embedded Workbench IDE で表示 する項目を選択できます。デバッグセッション中に、[ 表示 ] メニューからデ バッガ専用ウィンドウを表示することもできます。 図 102: [ 表示 ] メニュー メニューコマンド 説明 メッセージ IAR Embedded Workbench コマンドからのメッセージやテキスト出力 を表示するメッセージウィンドウ ([ ビルド ]、[ ファイルから検索 ]、 [ ツール出力 ]、[ デバッグログ ]) を選択するためのサブメニューを 表示します。メニューから選択したウィンドウがすでに開いている 場合は、そのウィンドウがアクティブになります。 ワークスペース 現在の [ ワークスペース ] ウィンドウを開きます。 ソースブラウザ [ ソースブラウザ ] ウィンドウを表示します。 ブレークポイント [ ブレークポイント ] ウィンドウを表示します。 ツールバー [ メイン ]/[ デバッグ ] オプションが 2 つのツールバーの表示 / 非 表示を切り替えます。 ステータスバー ステータスバーの表示 / 非表示を切り替えます。 デバッガウィンドウ デバッグセッション中に、[ 表示 ] メニューからさまざまなデ バッグウィンドウを表示することもできます。 [ 逆アセンブリ ] ウィンドウ [ メモリ ] ウィンドウ [ シンボルメモリ ] ウィンドウ [ レジスタ ] ウィンドウ [ ウォッチ ] ウィンドウ [ ローカル ] ウィンドウ [ 静的 ] ウィンドウ [ 自動 ] ウィンドウ [ ライブウォッチ ] ウィンドウ [ クイックウォッチ ] ウィンドウ [ 呼出しスタック ] ウィンドウ [ ターミナル I/O ] ウィンドウ [ コードカバレッジ ] ウィンドウ [ プロファイリング ] ウィンドウ [ スタック ] ウィンドウ これらのウィンドウの詳細については、261 ページの「C-SPY の ウィンドウ」を参照してください。 表 44: [ 表示 ] メニューのコマンド パート 6: リファレンス情報 223 メニュー [ プロジェクト ] メニュー [ プロジェクト ] メニューには、ワークスペース、プロジェクト、グループ、 ファイルの操作用コマンド、ビルドツールのオプションの指定用コマンド、現 在のプロジェクトでツールを実行するためのコマンドが表示されます。 図 103: [ プロジェクト ] メニュー メニューコマンド 説明 ファイルの追加 現在のプロジェクトに追加するファイルを選択するためのダイア ログボックスを表示します。 グループの追加 新しいグループを作成するためのダイアログボックスを表示しま す。[Group Name] テキストボックスには、新しいグループ名を入 力します。[Add to Target] リストで、新しいグループの追加先ター ゲットを選択します。デフォルトでは、グループはすべてのター ゲットに追加されます。 ファイルリストのイ 別の IAR ツールチェーンを使用して作成したプロジェクトから ンポート ファイルやグループの情報をインポートするための、[ 開く ] ダイ アログボックスを表示します。 ファイル拡張子が古い形式の pew、prj のいずれかであるプロジェ クトファイルから情報をインポートするには、使用している IAR Embedded Workbench のコンテキストメニューにある [Export File List] を使用して、先に情報をエクスポートする必要があります。 構成の編集 新しいビルド構成の定義や既存のビルド構成の削除を行うための [project の構成 ] ダイアログボックスを表示します。 表 45: [ プロジェクト ] メニューのコマンド IAR Embedded Workbench® IDE 224 ユーザガイド IAR Embedded Workbench® IDE リファレンス メニューコマンド 説明 削除 [ ワークスペース ] ウィンドウで、選択した項目をワークスペース から削除します。 新規プロジェクトの 新しいプロジェクトを作成してワークスペースに追加するための 作成 ダイアログボックスを表示します。 既存のプロジェクト 既存のプロジェクトをワークスペースに追加するためのダイアロ の追加 グボックスを表示します。 オプション [ ワークスペース ] ウィンドウで選択した項目に対して、各ビルド ツールのオプションを設定できる [ ノードのオプション ] ダイアロ グボックスを表示します。プロジェクト全体、ファイルのグルー プ、個々のファイルのオプションを設定できます。 ソースコード管理 ソースコード管理用コマンドのサブメニューを表示します。190ペー ジの「[ ソースコード管理 ] メニュー」を参照してください。 メイク 最後のビルド以降に変更されたファイルだけをコンパイル、アセ ンブル、リンクして、現在のビルド構成を最新状態に更新 コンパイル 選択されているファイルやグループをコンパイル/アセンブルします。 [ ワークスペース ] ウィンドウで、1 つまたは複数のファイルを選 択することができます。グループが異なる場合も含め、同一プロ ジェクト内のすべてのファイルを選択できます。コンパイルする ファイルが表示されたエディタウィンドウを選択することもでき ます。[ コンパイル ] コマンドは、選択したすべてのファイルに対 してコマンドを個別に実行できる場合のみ使用可能になります。 グループを選択することもできます。この場合は、ヘッダファイ ルなどのコンパイルできないファイルがグループに含まれている 場合でも、そのグループ内 ( ネストされたグループを含む ) でコン パイル可能なその他の各ファイルに対して、コマンドが実行され ます。 すべてを再ビルド 現在のターゲットのすべてのファイルをリビルドし再リンクします。 クリーン すべての中間ファイルを削除します。 バッチビルド バッチビルド構成を作成し、指定したバッチをビルドするための ダイアログボックスを表示します。 ビルドを停止 現在のビルド処理を停止します。 デバッグ IAR C-SPY デバッガを起動し、プロジェクトのオブジェクトファイ ルをデバッグします。必要であれば、C-SPY の実行前にメイクが実 行され、プロジェクトが更新されます。IAR 製品のインストール内 容に応じて、[C-SPY Setup] ページで [ プロジェクト ]>[ オプション ] コマンドを使用して該当する C-SPY ドライバを選択し、使用する デバッガドライバを選択できます。 メイク後デバッガを 1 つのコマンドで、デバッガ停止、アクティブなビルド構成の作 再起動 成、デバッガ再開の、一連の操作を実行します。このボタンは、デ バッグ中にだけ使用できます。 表 45: [ プロジェクト ] メニューのコマンド ( 続き ) パート 6: リファレンス情報 225 メニュー 引数変数のまとめ パスや引数に変数を使用できます。使用可能な引数変数は、以下のとおりです。 変数 説明 $CUR_DIR$ 現在のディレクトリ $CUR_LINE$ 現在の行 $EW_DIR$ IAR Embedded Workbench のトップディレクトリ ( 例 : c:\program files\iar systems\embedded workbench 4.n) $EXE_DIR$ 実行可能ファイル出力用ディレクトリ $FILE_BNAME$ ファイル名 ( 拡張子を除く ) $FILE_BPATH$ フルパス ( 拡張子を除く ) $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 4.n\cpuname) 表 46: 引数変数 IAR Embedded Workbench® IDE 226 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ノードのオプション ] ダイアログボックス [ プロジェクトの構成 ] ダイアログボックス ([ プロジェクト ]>[ ビルド構成の 編集 ] を選択して表示 ) で、選択したプロジェクト用のビルド構成を新規に、ま たは既存のプロジェクトを基に定義することができます。 図 104: [ プロジェクトの構成 ] ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 構成 既存の構成を表示します。ここに表示された構成を、新しい構成 のテンプレートとして使用できます。 新規作成 新しいビルド構成を定義するためのダイアログボックスを表示し ます。 削除 [ 構成 ] リストで選択した構成を削除します。 表 47: [project の構成 ] ダイアログボックスのオプション パート 6: リファレンス情報 227 メニュー [ 新規構成 ] ダイアログボックス [ 新規構成 ] ダイアログボックス ([project の構成 ] ダイアログボックスで [ 新 規作成 ] をクリックして表示 ) で、ビルド構成を新規に、または 既存の構成を 基に定義することができます。 図 105: [ 新規構成 ] ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 名前 ビルド構成名。 ツールチェーン ビルド対象ターゲット。異なるターゲット用に複数のバージョン の IAR Embedded Workbench がホストコンピュータにインストール されている場合は、ドロップダウンリストからターゲットを選択 できます。 基になる構成 新しい構成の基になる既存のビルド構成。新しい構成は、プロ ジェクトの設定と出荷時設定情報を既存の構成から継承します。 [ なし ] を選択した場合は、デフォルトの出荷時設定が適用され、 既存の構成の情報は継承しません。 工場出荷時設定 新しいビルド構成に適用するデフォルトの出荷時設定 ([ デバッグ ] か [ リリース ]) を指定します。ここで指定した出荷時設定が、[ オ プション ] ダイアログボックスの [ 工場出荷時設定 ] ボタンを押し たときにプロジェクトで使用されます。 表 48: [ 新規構成 ] ダイアログボックスのオプション IAR Embedded Workbench® IDE 228 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ 新規プロジェクトの作成 ] ダイアログボックス [ 新規プロジェクトの作成 ] ダイアログボックス ([ プロジェクト ] メニューか ら表示 ) を使用して、テンプレートプロジェクトを基に新しいプロジェクトを 作成することができます。C/C++ アプリケーション、アセンブラアプリケー ション、ライブラリプロジェクト用のテンプレートが用意されています。ま た、自分でテンプレートプロジェクトを作成することもできます。 図 106: [ 新規プロジェクトの作成 ] ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 ツールチェーン ビルド対象ターゲット。異なるターゲット用に複数のバージョン の IAR Embedded Workbench がホストコンピュータにインストール されている場合は、ドロップダウンリストからターゲットを選択 できます。 プロジェクトテンプ 新しいプロジェクトの作成に使用できるテンプレートプロジェク レート トをすべて表示します。 表 49: [ 新規プロジェクトの作成 ] ダイアログボックスの説明 パート 6: リファレンス情報 229 メニュー [ オプション ] ダイアログボックス [オプション]ダイアログボックスは、[プロジェクト]メニューから表示します。 [ カテゴリ ] リストでは、オプションを設定するビルドツールを選択できます。 [ カテゴリ ] リストに表示されるオプションは、IAR Embedded Workbench IDE でインストールしたツールによって異なります。通常は以下のオプションが表 示されます。 カテゴリ 説明 一般オプショ 一般オプション C/C++ コンパイラ IAR C/C++ コンパイラオプション アセンブラ IAR アセンブラオプション カスタムビルド ツールチェーン拡張用オプション ビルドアクション ビルド前 / ビルド後のアクション用オプション リンカ IAR XLINK リンカオプション。このカテゴリは、 アプリケーションプロジェクトの場合に表示 されます。 ライブラリビルダ IAR XAR ライブラリビルダオプション。このカ テゴリは、ライブラリプロジェクトの場合に表 示されます。 デバッガ IAR C-SPY デバッガオプション シミュレータ シミュレータ専用オプション 表 50: プロジェクトオプションのカテゴリ 注 : インストールされているデバッガドライバによっては、他のデバッガカテ ゴリも表示される場合があります。 カテゴリを選択すると、IAR Embedded Workbench IDE のコンポーネント用オ プションのページが表示されます。 各オプションの詳細については、以下に示すオプションのリファレンスの章を 参照してください。 「一般オプション」 「コンパイラオプション」 ● 「アセンブラオプション」 ● 「カスタムビルドオプション」 ● 「ビルドアクションオプション」 ● 「リンカオプション」 ● 「ライブラリビルダオプション」 ● 「デバッガオプション」 ● ● ハードウェアデバッガシステム関連オプションについては、オンラインヘルプ システムを参照してください。 IAR Embedded Workbench® IDE 230 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ バッチビルド ] ダイアログボックス [ バッチビルド ] ダイアログボックス ([ プロジェクト ]>[ バッチビルド ] を選択 して表示 ) には、定義されているビルド構成のバッチがすべて表示されます。 図 107: [ バッチビルド ] ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 バッチ 定義されているビルド構成のバッチをすべて表示します。 新規作成 ビルド構成のバッチを定義するための [ バッチビルドの編集 ] ダイ アログボックスを表示します。 削除 選択したバッチを削除します。 編集 定義済みのバッチを修正するための [ バッチビルドの編集 ] ダイア ログボックスを表示します。 ビルド [ メイク ]、[ クリーン ]、[ すべてを再ビルド ] の 3 つのビルドコ マンドで構成されます。 表 51: [ バッチビルド ] ダイアログボックスの詳細 パート 6: リファレンス情報 231 メニュー [ バッチビルドの編集 ] ダイアログボックス [ バッチビルドの編集 ] ダイアログボックス ([ バッチビルド ] ダイアログボッ クスから表示 ) で、ビルド構成のバッチの新規作成や既存のバッチの編集を行 うことができます。 図 108: [ バッチビルドの編集 ] ダイアログボックス このダイアログボックスの内容は、以下のとおりです。 項目 説明 名前 バッチ名。 使用可能な構成 ワークスペースに含まれるすべてのビルド構成を表示します。 ビルドする構成 指定したバッチに追加されるビルド構成を表示します。 表 52: [ バッチビルドの編集 ] ダイアログボックスの詳細 ビルド構成を [ 使用可能な構成 ] から [ ビルドする構成 ] に移動するには、矢 印ボタンを使用します。また、[ ビルドする構成 ] でビルド構成をドラッグし、 ビルド構成の順序を変更することもできます。 IAR Embedded Workbench® IDE 232 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ツール ] メニュー [ ツール ] メニューには、共通フォントの変更、ショートカットキーの変更な どの、環境のカスタマイズ用コマンドが表示されます。 ユーザが定義可能なメニューで、IAR Embedded Workbench で使用するツール を追加することができます。したがって、メニュー項目として表示されるよ うに設定したツールに応じて、表示が異なる場合があります。252 ページの 「[ 構成ツール ] ダイアログボックス」を参照してください。 図 109: [ ツール ] メニュー [ ツール ] メニューのコマンド メニューコマンド 説明 オプション IAR Embedded Workbench IDE をカスタマイズするための [IDE オプ ション ] ダイアログボックスを表示します。ダイアログボックス 左側でカテゴリを選択すると、ダイアログボックス右側に対応す るオプションが表示されます。このダイアログボックスで表示さ れるカテゴリーは、IAR Embedded Workbench IDE の構成と、IDE が デバッグセッション中かどうかによって異なります。 構成ツール 外部ツールを利用するためのインタフェースを設定できるダイア ログボックスを表示します。 ファイル名拡張子 ビルドツールで指定可能なファイル名の拡張子を定義するための ダイアログボックスを表示します。 ビューアの設定 ドキュメント表示用のビューアアプリケーションを設定するため のダイアログボックスを表示します。 Notepad ユーザ設定項目。ユーザが [ ツール ] メニューに追加した項目が表 示されます。 表 53: [ ツール ] メニューのコマンド パート 6: リファレンス情報 233 メニュー [ 共通フォント ] オプション [ 共通フォント ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用 して、エディタウィンドウを除くすべてのプロジェクトウィンドウで使用され ているフォントを設定します。 図 110: [ 共通フォント ] オプション [ フォント ] ボタンを使用して、等幅フォントとプロポーショナルフォントを 変更することができます。 [ 固定幅フォント ] オプションの変更は、[ 逆アセンブリ ]、[ レジスタ ]、[ メ モリ ] の各ウィンドウに適用されます。[ プロポーショナルフォント ] オプショ ンの変更は、それ以外のすべてのウィンドウに適用されます。 このページで行った設定は、エディタウィンドウには適用されません。エディ タウィンドウのフォントの変更方法については、242 ページの「[ 色とフォン ト ] オプション」を参照してください。 IAR Embedded Workbench® IDE 234 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ キーカスタマイズ ] オプション [ キーカスタマイズ ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を 使用して、IAR Embedded Workbench IDE メニューコマンドに使用するショー トカットキーをカスタマイズします。 図 111: [ キーカスタマイズ ] オプション メニュー ドロップダウンリストを使用して、編集するメニューを選択します。現在定義 されているショートカットキーが、このメニューの下にあるスクロールリスト に表示されます。 コマンド 選択したメニューで表示可能なすべてのコマンドのリストが [ コマンド ] 列に 表示されます。ユーザ定義ショートカットキーに設定するメニューコマンドを 選択します。 ショートカットキーを押してください テキストフィールドに、ショートカットキーとして使用するキーコンビネー ションを入力します。他のコマンドで使用されているショートカットキーを設 定し、追加することはできません。 プライマリ メニューコマンド名の横にショートカットキーが表示されます。[ 設定 ] ボタ ンをクリックして選択したコマンド用にキーコンビネーションを設定するか、 [ クリア ] ボタンをクリックしてショートカットを削除します。 パート 6: リファレンス情報 235 メニュー エイリアス ここで設定したショートカットキーは、機能しますがメニューでは表示されま せん。[ 追加 ] ボタンをクリックして、キーに選択したコマンドの機能を設定 するか、[ クリア ] ボタンをクリックして、ショートカットを削除します。 すべてリセット すべてのコマンドショートカットキーを出荷時設定に戻します。 [ エディタ ] オプション [ エディタ ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用して エディタを設定します。 図 112: [ エディタ ] オプション IAR Embedded Workbench IDE エディタの詳細および使用方法については、91 ページの「編集」を参照してください。 タブサイズ このオプションを使用して、個々のタブに相当する文字数を指定します。 インデントサイズ このオプションを使用して、インデントに使用する文字数を指定します。 タブキーの機能 このオプションを使用して、タブキーの使用方法を指定します。以下から選択 します。 ● IAR Embedded Workbench® IDE 236 ユーザガイド タブを挿入 IAR Embedded Workbench® IDE リファレンス ● スペースによるインデント EOL 文字 このオプションを使用して、エディタドキュメントの保存時に使用する改行文 字を選択します。以下から選択します。 PC ( デフォルト ) Windows と DOS 形式の改行文字。デフォルトでは PC フォー マットを使用します。 Unix UNIX 形式の改行文字。 Preserve 開かれたときファイルに設定されているのと同じ、 PC または UNIX のどちらかの形式の改行文字。開いたファイルに対して両方のタ イプを選択できる、またはどちらも選択できない場合に、PC 形式 の改行文字を使用します。 右余白の表示 右余白の外側にウィンドウエリアが淡い灰色のフィールドとして表示されま す。ここを選択して、左余白と右余白の間のテキストフィールドサイズを設定 できます。以下を基準にサイズを選択して、設定します。 印刷の境界 一般的プリンタ設定に準じた印刷可能エリアに基ずくサイズ。 列 列数に基ずくサイズ。 構文の強調表示 このオプションを使用して、エディタで C/C++ アプリケーションの構文を様々 なテキストスタイルで表示します。 、 構文強調表示の詳細については、242 ページの「[ 色とフォント ] オプション」 93 ページの「構文カラー表示」を参照してください。 自動インデント このオプションを使用すると、Return を押したときに、新しい行を自動的にイ ンデントします。C/C++ ソースファイルの場合は、[ 自動インデントの設定 ] ダイアログボックスでの設定に従ってインデントが実行されます。[ 設定 ] ボ タンをクリックすると、自動インデントを設定するためのダイアログボックス が表示されます。238 ページの「[ 自動インデントの設定 ] ダイアログボック ス」を参照してください。他のテキストファイルの場合は、新しい行のインデ ントは前の行と同一に設定されます。 行番号の表示 このオプションを使用して、エディタウィンドウの行番号を表示します。 パート 6: リファレンス情報 237 メニュー 更新ファイルをスキャン このオプションを使用して、ファイルが他のツールで修正されたかどうかを確 認します。その場合、ファイルは自動的に再ロードされます。IAR Embedded Workbench IDEでファイルが修正されている場合は、 最初に確認を指示されます。 ブックマークの表示 このオプションを使用して、エディタウィンドウの左側に列を表示します。こ の列には、コンパイラのエラーとワーニング、[ ファイルから検索 ] の結果、 ユーザ定義のブックマーク、ブレークポイントのアイコンが表示されます。 仮想スペースを有効にする このオプションを使用すると、挿入ポイントをテキストエリア外に移動できます。 末尾の空白を削除 このオプションを使用して、ファイルをディスクに保存するときに、最後の空 白を削除します。最後の空白とは、空白以外の最後の文字と行末文字の間の空 白文字です。 [ 自動インデントの設定 ] ダイアログボックス [ 自動インデントの設定 ] ダイアログボックスは、エディタが C/C++ ソースコー ドに対して実行する自動インデントの設定に使用します。ダイアログボックス を表示するには、以下の手順に従います。 1 [ ツール ]>[ オプション ] を選択します。 2 [ エディタ ] タブをクリックします。 3 [ 自動インデント ] オプションを選択します。 IAR Embedded Workbench® IDE 238 ユーザガイド IAR Embedded Workbench® IDE リファレンス 4 [ 設定 ] ボタンをクリックします。 図 113: [ 自動インデントの設定 ] ダイアログボックス インデントの詳細については、94 ページの「自動テキストインデント」を参 照してください。 左括弧 (a) このテキストボックスを使用して、左括弧のインデントに使用する空白文字数 を入力します。 本文 (b) このテキストボックスを使用して、左括弧の後または次の行にまたがる文の後 のインデントコードに使用する追加空白文字数を入力します。 ラベル (c) このテキストボックスを使用して、ラベル (case のラベルを含む ) のインデン トに使用する空白文字数を入力します。 サンプルコード このエリアに、テキストボックスで設定したインデント用設定が反映されま す。すべてのインデントは、前の行、文、その他の文法構造と相対的に設定さ れます。 パート 6: リファレンス情報 239 メニュー [ 外部エディタ ] オプション [ 外部エディタ ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用 して、使用する外部エディタを指定します。 図 114: [ 外部エディタ ] のオプション 外部エディタの使用 このオプションを使用して、外部エディタの使用を有効にします。 タイプ ドロップダウンリストを使用して、インタフェースのタイプを選択します。以 下から選択します。 ● ● コマンドライン DDE (Windows Dynamic Data Exchange) エディタ このテキストフィールドを使用して、外部エディタのファイル名とパスを指定 します。参照ボタンを使用して選択することもできます。 引数 このテキストフィールドを使用して、エディタへ渡す引数を指定します。イン タフェースのタイプとして [ コマンドライン ] を選択した場合に限り、適用で きます。240 ページの「タイプ」を参照してください。 IAR Embedded Workbench® IDE 240 ユーザガイド IAR Embedded Workbench® IDE リファレンス サービス このテキストフィールドを使用して、エディタで使用する DDE サービス名を 指定します。インタフェースのタイプとして [DDE] を選択した場合に限り、適 用できます。240 ページの「タイプ」を参照してください。 サービス名は、使用する外部エディタに応じて指定します。外部エディタのド キュメントを参照して、適切に設定してください。 コマンド テキストフィールドを使用して、エディタに送信するコマンド文字列シーケン スを指定します。コマンド文字列は、以下の形式で入力する必要があります。 DDE-Topic CommandString DDE-Topic CommandString インタフェースのタイプとして [DDE] を選択した場合に限り、適用できます。 240 ページの「タイプ」を参照してください。 コマンド文字列は、使用する外部エディタに応じて指定します。外部エディタ のドキュメントを参照して、適切に設定してください。 注 : 引数に変数を使用できます。使用可能な引数変数については、226 ページ の「引数変数のまとめ」を参照してください。 [ セットアップファイル ] のオプション [ セットアップファイル ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用して、エディタのセットアップファイルを指定します。 図 115: [ セットアップファイル ] オプション パート 6: リファレンス情報 241 メニュー カスタムキーワードファイルの使用 このオプションは、エディタで強調表示するキーワードを記述したテキスト ファイルの指定に使用します。構文カラー表示については、93 ページの「構 文カラー表示」を参照してください。 コードテンプレートの使用 このオプションを使用して、よく使用するコードをソースファイルに挿入する ためのコードテンプレートを記述したテキストファイルを指定します。コード テンプレートの使用方法については、95 ページの「コードテンプレートの使 用と追加」を参照してください。 [ 色とフォント ] オプション [ 色とフォント ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用し て、エディタウィンドウのテキストに使用する色やフォントを指定します。 図 116: [ 色とフォント ] オプション エディタフォント [ フォント ] ボタンを押して、標準 [ フォント ] ダイアログを開き、エディタ ウィンドウで使用するフォントとそのサイズを選択できます。 IAR Embedded Workbench® IDE 242 ユーザガイド IAR Embedded Workbench® IDE リファレンス 構文の色 [ 構文の色 ] オプションを使用して、選択したエレメントの色とタイプスタイ ルを選択します。以下のエレメントをカスタマイズできます。C/C++、コンパ イラキーワード、アセンブラキーワード、ユーザ定義キーワード。次のオプ ションを使用します。 スクロールバーリスト 構文のフォントとスタイルを指定する項目 を表示します。 色 色選択リストを表示します。 スタイル タイプスタイル選択リストを表示します。 サンプル 現在の設定を表示します。 アセンブラおよび C/C++ ソースコードの構文強調表示を制御するキーワード は、それぞれ syntax_icc.cfg と syntax_asm.cfg のファイルに記述されてい ます。これらのファイルは、config ディレクトリにあります。 [ メッセージ ] オプション [ メッセージ ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用し て、[Build messages] ウィンドウで表示される出力内容を選択します。 図 117: [ メッセージ ] オプション ビルドメッセージの表示 このドロップダウンメニューを使用して、[Build messages] ウィンドウでの出力 内容を指定します。以下から選択します。 全て コンパイラとリンカの情報を含むすべてのメッセージを表示します。 パート 6: リファレンス情報 243 メニュー メッセージ メッセージ、ワーニング、エラーを表示します。 ワーニング ワーニングやエラーを表示します。 エラー エラーのみを表示します。 ログファイル このオプションを使用してビルドメッセージをログファイルに書き込みます。 オプションを有効にするには、[ ファイルのビルドメッセージログ ] オプショ ンを選択します。以下から選択します。 ファイル末尾に追加 指定したファイルの最後にメッセージを追加します。 古いファイルに上書き 指定したファイルの内容を置換します。 使用するファイル名をテキストボックスに入力します。参照ボタンを使用して 選択することもできます。 [ プロジェクト ] オプション [ プロジェクト ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用 して、[ メイク ] コマンドと [ ビルド ] コマンドのオプションを設定します。 図 118: [ プロジェクト ] オプション IAR Embedded Workbench® IDE 244 ユーザガイド IAR Embedded Workbench® IDE リファレンス 以下のいずれかを選択できます。 オプション 説明 ビルド処理の停止条件 ビルド処理の停止条件を指定します。 [ 停止しない ]: 停止しません。 [ ワーニング ]: ワーニングやエラーで停止します。 [ エラー ]: エラーで停止します。 ビルド前にエディタウィンドウ [ 常に保存する ]:[ メイク ]/[ ビルド ] の実行前に常に保存 を保存 します。 [ 保存前に確認する ]: 保存前に確認します。 [ 保存しない ]: 保存しません。 ビルド前にワークスペースとプ [ 常に保存する ]:[ メイク ]/[ ビルド ] の実行前に常に保 ロジェクトを保存 存します。 [ 保存前に確認する ]: 保存前に確認します。 [ 保存しない ]: 保存しません。 デバッグ前にメイクを実行 [ 常に実行する ]: 常に、デバッグ前に [ メイク ] コマン ドを実行します。 [ 実行前に確認する ]: 常に、[ メイク ] コマンドの実行 前に確認します。 [ 実行しない ]: デバッグ前に [ メイク ] コマンドを実行 しないでください。 再起動時に最後に開いたワーク 次に IAR Embedded Workbench を起動するときに、最後 スペースをりロード にアクティブになっていたワークスペースを自動的に ロードするかどうかを指定します。 ビルド処理終了後にサウンドを ビルド処理の完了時に音を再生します。 再生 ブラウズ情報を生成 [ ソースブラウザ ] ウィンドウの使用を有効にします。 201 ページの「[ ソースブラウザ ] ウィンドウ」を参照 してください。 表 54: [Project IDE] オプション パート 6: リファレンス情報 245 メニュー [ ソースコード管理 ] オプション [ ソースコード管理 ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を 使用して、IAR Embedded Workbench プロジェクトと SCC プロジェクトの相互 処理を設定します。 図 119: [ ソースコード管理 ] オプション チェックイン時にアイテムをチェックアウト状態に保つ [ ファイルのチェックイン ] ダイアログボックスの [ チェックアウトを維持 ] オ プションのデフォルト設定を指定します。193 ページの「[ ファイルのチェッ クイン ] ダイアログボックス」を参照してください。 ソースコード管理コマンドを実行する前にエディタウィンドウを保存 ソースコード管理コマンドの実行前にエディタウィンドウを保存するかどう かを指定します。以下から選択します。 保存前に確認する ソースコード管理コマンドを実行すると、先にエディタウィンドウ を保存するかどうかを確認するメッセージが表示されます。 IAR Embedded Workbench® IDE 246 ユーザガイド 保存しない ソースコード管理コマンドの実行前にエディタウィンドウが保存さ れません。 常に保存する ソースコード管理コマンドの実行前にエディタウィンドウが常に保 存されます。 IAR Embedded Workbench® IDE リファレンス [ デバッガ ] オプション [ デバッガ ] オプション ([ ツール ]>[ オプション ] を選択して表示 ) を使用し て、デバッガ環境を設定します。 図 120: [ デバッガ ] オプション 複数の関数インスタンスにソースを分解する場合 一部のソースコード ( テンプレートコードなど ) は、複数のコードインスタン スに対応しています。このようなコードでソース位置を指定する場合 ( ソース のブレークポイント設定時など ) は、C-SPY ですべてのインスタンスを選択す るか、その一部だけを選択するかを指定できます。[ すべてのインスタンスを 自動的に選択 ] オプションを使用して、C-SPY で最初に確認しないですべての インスタンスを処理します。 「逆アセンブリ」ウィンドウのソースコード色 [ 色 ] ボタンを使用して、[ 逆アセンブリ ] ウィンドウのソースコードの色を選 択します。 関数のステップイン このオプションを使用して、[ ステップイン ] コマンドの動作を制御します。以 下から選択します。 すべての関数 デバッガですべての関数にステップインします。 ソースのみの関数 デバッガは、ソースコードを認識する関数だけにステッ プインします。これにより、ライブラリ関数内のコード のステップ実行や、逆アセンブリモードのデバッグを回 避することができます。 パート 6: リファレンス情報 247 メニュー STL コンテナ拡張 コンテナの値を [ ウォッチ ] ウィンドウなどで展開したときに、[ 深さ ] の値 で、最初に表示されるエレメント数を指定します。展開用矢印をクリックする と、エレメントが追加表示されます。 ライブウォッチ [ 更新間隔 ] の値で、実行中の C-SPY の [ ライブウォッチ ] ウィンドウの更新 頻度を指定します。 デフォルト整数フォーマット このドロップダウンリストを使用して、[ ウォッチ ]、[ ローカル ]、およびこ れらの関連ウィンドウでのデフォルトの整数フォーマットを設定します。 [ スタック ] オプション [ スタック ] オプション ([ ツール ]>[ オプション ] を選択するか、[ メモリ ] ウィ ンドウのコンテキストメニューから表示 ) を使用して、[ スタック ] ウィンド ウ固有のオプションを設定します。 図 121: [ スタック ] オプション グラフィカルスタック表示とスタック使用トラッキングを有効にする このオプションは、[ スタック ] ウィンドウ上部のスタックバー表示を有効に する場合に使用します。このオプションを有効にすると、スタックのオーバフ ローを検出する機能も有効になります。スタックバーの詳細やスタックバーが 示す内容については、288 ページの「スタックバー」を参照してください。 IAR Embedded Workbench® IDE 248 ユーザガイド IAR Embedded Workbench® IDE リファレンス % スタック使用しきい値 このテキストフィールドを使用して、C-SPY がスタックオーバフローワーニン グを表示するスタック使用率を指定します。 スタックしきい値の超過時にワーニング このオプションを使用して、スタック使用量が [% スタック使用しきい値 ] オプ ションに指定したしきい値を超えた場合に、 C-SPYからワーニングを発生します。 スタックポインタが境界外の時にワーニング このオプションを使用して、スタップポインタがスタックメモリ範囲外を指し たときに、C-SPY からワーニングを発生します。 プログラムが以下に達するまでスタックポインタが無効 このオプションは、アプリケーションコード中でスタックの表示と検証を行う 位置を指定する場合に使用します。[ スタック ] ウィンドウでは、実行がこの 位置に到達するまでは、スタック使用率情報が表示されません。デフォルトで は、main 関数に到達するまではスタック使用率が表示されません。アセンブ ラ専用プロジェクトのように、main 関数がないアプリケーションの場合、ユー ザ専用の開始ラベルを指定する必要があります。 通常は、スタックポインタはシステム初期化コード cstartup に設定しますが、 最初の命令からスタック使用率をトレースする必要はありません。このオプ ションを使用することで、アプリケーションのこの部分について誤ったワーニ ングや誤解を招くスタック表示を回避することができます。 ワーニング 以下のいずれかのオプションを使用して、ワーニングを表示することができます。 [ ログ ] [ デバッグログ ] ウィンドウに [ ワーニング ] を表示します [ ログとアラート ] [ デバッグログ ] ウィンドウ、ワーニングダイアログボックスに ワーニングを表示します。 スタック表示の制限 このオプションは、[ スタック ] ウィンドウで表示されるメモリ容量を、スタッ クポインタからのバイト数で指定します。このオプションは、スタックが大き い場合や、スタックの最初の部分の表示だけが必要な場合に便利です。このオ プションを使用すると、特にターゲットシステムからのメモリリード速度が遅 い場合に、[ スタック ] ウィンドウの表示速度を向上することができます。デ パート 6: リファレンス情報 249 メニュー フォルトでは、[ スタック ] ウィンドウにはスタック全体、つまりスタックポ インタからスタックの最後までが表示されます。デバッガがスタックのメモリ 範囲を特定できない場合は、このオプションを選択していない場合でも、表示 されるバイト範囲が制限されます。 注 : [ スタック ] ウィンドウは、アプリケーションの実行速度には影響しません が、実行停止時に表示される情報を更新するために、大量のデータをリードす る場合があります。 [ レジスタフィルタ ] オプション [ レジスタフィルタ ] オプション (IAR C-SPY デバッガの実行中に [ ツール ]> [ オプション ] を選択して表示 ) を使用して、[ レジスタ ] ウィンドウに、ユー ザ定義グループ別にレジスタを表示します。レジスタグループの詳細につ いては、134 ページの 「レジスタグループ」 を参照してください。 図 122: [ レジスタフィルタ ] のオプション 以下のいずれかを選択できます。 オプション 説明 レジスタフィルタの レジスタフィルタの使用を有効にします。 使用 フィルタファイル フィルタファイルの選択や新規作成を行うダイアログボックスを 表示します。 グループ レジスタフィルタファイルで定義されているグループを表示しま す。また、新しいレジスタグループを表示します。 新規グループ 新しいレジスタグループの名前を設定します。 グループメンバ レジスタのスクロールバーウィンドウで選択したレジスタを表示 します。 表 55: [ レジスタフィルタ ] オプション IAR Embedded Workbench® IDE 250 ユーザガイド IAR Embedded Workbench® IDE リファレンス オプション 説明 基数 デフォルトの整数表記を変更します。 表 55: [ レジスタフィルタ ] オプション ( 続き ) [ ターミナル I/O] オプション [ ターミナル I/O] オプション (IAR C-SPY デバッガの実行中に [ ツール ]>[ オプ ション ] を選択して表示 ) を使用して、C-SPY ターミナル I/O 機能を設定します。 図 123: [ ターミナル I/O] オプション キーボード [ キーボード ] オプションを使用して、キーボードから入力文字を読み取りま す。以下から選択します。 バッファに格納 入力文字はバッファに格納されます。 ダイレクト 入力文字はバッファに格納されません。 ファイル [ ファイル ] オプションを使用して、ファイルから入力文字を読み取ります。参 照ボタンを使用してファイルを選択することもできます。以下から選択します。 テキスト 入力文字をテキストファイルから読み取ります。 2 進数 入力文字をバイナリファイルから読み取ります。 パート 6: リファレンス情報 251 メニュー 入力エコー ログファイルか C-SPY の [ ターミナル I/O] ウィンドウで、入力文字をエコー することができます。ファイルの入力をエコーするには、実行前に [ デバッ グ ] >[ ログ ]> [ ログファイルを有効にする ] オプションを有効にしておく必 要があります。 「ターミナル I/O」ウィンドウでターゲットリセットを表示 ターゲットのリセット時に、C-SPY の [ ターミナル I/O] ウィンドウでメッセー ジを表示します。 [ 構成ツール ] ダイアログボックス [ 構成ツール ] ダイアログボックス ([ ツール ] から表示 ) では、[ ツール ] メ ニューに追加するユーザ定義ツールを指定することができます。 図 124: [ 構成ツール ] ダイアログボックス 注 : 標準ビルドツールチェーンに外部ツールを追加する場合は、89 ページの 「ツールチェーンの拡張」を参照してください。 IAR Embedded Workbench® IDE 252 ユーザガイド IAR Embedded Workbench® IDE リファレンス 以下のいずれかを選択できます。 オプション 説明 メニュー内容 使用可能なすべてのユーザ定義メニューコマンドを表示し ます。 メニューテキスト メニューコマンドのテキストを指定します。& という記号を追 加すると、 その次の文字 ( この例では N) がこのコマンドのニー モニックキーとして表示されます。このフィールドに入力し たテキストは、[ メニュー内容 ] フィールドに反映されます。 コマンド メニューから選択したときに実行されるコマンドおよびそ のパスを指定します。参照ボタンを使用して選択することも できます。 引数 コマンドの引数を入力します ( 省略可能 )。 初期ディレクトリ ツールの初期作業ディレクトリを指定します。 出力ウィンドウにリダイレ ツールから [ メッセージ ] ウィンドウの [ ツール出力 ] ペー クト ジへのコンソール出力を指定します。このオプションを指定 して起動したツールは、キーボードなどによるユーザ入力を 受け付けることはできません。 入力が必要なツールや、実行するコンソールに特別な条件が あるツールは、このオプションを指定すると動作しません。 コマンドラインのプロン コマンドを [ ツール ] メニューから選択したときに、コマン プト ドライン引数の指定を指示するプロンプトを表示します。 使用可能なツール ツールが使用可能なコンテキスト ( デバッグ時 / 非デバッグ 時のみ ) を指定します。 表 56: [ 構成ツール ] ダイアログボックスのオプション 注 : 引数で変数を使用し、コマンドラインのレビジョン管理システムとのイン タフェースや、選択したファイルに対して外部ツールを実行するなどの処理を 設定できます。 リストでコマンドを選択して [ 削除 ] をクリックすると、[ ツール ] メニューか らコマンドを削除することができます。 [OK] をクリックすると、[ ツール ] メニューの変更が適用されます。 パート 6: リファレンス情報 253 メニュー 指定したメニュー項目が、[ ツール ] メニューに表示されます。 図 125: カスタマイズした [ ツール ] メニュー コマンドラインのコマンドまたはバッチファイルの指定 コマンドラインのコマンド、バッチファイルは、コマンドシェルから実行する 必要があります。そのため、これらを [ ツール ] メニューに追加するには、[ コ マンド ] テキストボックスで適切なコマンドシェルを指定する必要がありま す。コマンドとして入力できるコマンドシェルを以下に示します。 システム コマンドシェル Windows 98/Me command.com Windows NT/2000/XP cmd.exe ( 推奨 )、command.com 表 57: コマンドシェル [ ファイル名拡張子 ] ダイアログボックス [ ファイル名拡張子 ] ダイアログボックス ([ ツール ] メニューから表示 ) では、 ビ ルドツールで処理するファイル名の拡張子をカスタマイズすることができます。 これは、ファイル名の拡張子が異なるソースファイルが多数ある場合に便利です。 別のマイクロプロセッサ用の IAR Embedded Workbench をホストコンピュータ にインストールしている場合は、そのツールチェーンが [ ツールチェーン ] ボッ クスに表示される場合があります。その場合は、カスタマイズするツール チェーンを選択する必要があります。 図 126: [ ファイル名拡張子 ] ダイアログボックス * 記号は、ユーザ定義のオーバライドがあることを示します。* 記号がない場 合は、出荷時設定が使用されます。 [ 編集 ] をクリックすると、[ ファイル名拡張子のオーバライド ] ダイアログ ボックスが表示されます。 IAR Embedded Workbench® IDE 254 ユーザガイド IAR Embedded Workbench® IDE リファレンス [ ファイル名拡張子のオーバライド ] ダイアログボックス [ ファイル名拡張子のオーバライド ] ダイアログボックス ([ ファイル名拡張子 ] ダイアログボックスで [ 編集 ] をクリックして表示 ) には、ビルドチェーンで 使用可能なツール、ファイル名の拡張子の出荷時設定、定義されているオーバ ライドが表示されます。 図 127: [ ファイル名拡張子のオーバライド ] ダイアログボックス ファイル名の拡張子を追加定義するツールを選択し、[ 編集 ] をクリックして [ ファイル名拡張子の編集 ] ダイアログボックスを表示します。 [ ファイル名拡張子の編集 ] ダイアログボックス [ ファイル名拡張子の編集 ] ダイアログボックス ([ ファイル名拡張子のオーバ ライド ] ダイアログボックスで [ 編集 ] をクリックして表示 ) には、デフォル トで認識されるファイル名の拡張子リストが表示され、新しい拡張子を定義で きます。 図 128: [ ファイル名拡張子の編集 ] ダイアログボックス [ オーバライド ] をクリックし、追加する拡張子を入力します。拡張子が複数 の場合はコンマかセミコロンで区切ります。また、最初のピリオドも含めて入 力する必要があります。 パート 6: リファレンス情報 255 メニュー [ ビューアを構成 ] ダイアログボックス [ ビューアを構成 ] ダイアログボックス ([ ツール ] メニューから表示 ) には、 IAR Embedded Workbench が処理できるドキュメントフォーマットのファイル 名拡張子リストとともに、そのドキュメントタイプを開くのに使用される ビューアアプリケーションが表示されます。[ アクション ] 列に [Explorer Default] と表示されている場合は、そのドキュメントタイプを開く際に、 Windows エクスプローラで指定したファイルタイプに関連付けられているデ フォルトのアプリケーションが使用されます。 図 129: [ ビューアを構成 ] ダイアログボックス 新しいドキュメントタイプを開く方法を指定する、または既存のドキュメント タイプの設定を変更するには、[ 新規作成 ] か [ 編集 ] をクリックし、[ ビュー ア拡張子の編集 ] ダイアログボックスを表示します。 [ ビューア拡張子の編集 ] ダイアログボックス ドキュメントタイプのファイル名拡張子にピリオド (.) を含めて、[ ファイル 名拡張子 ] ボックスに入力します。 図 130: [ ビューア拡張子の編集 ] ダイアログボックス 次に、[ アクション ] で以下のいずれかを選択します。 ● ● IAR Embedded Workbench® IDE 256 ユーザガイド [内蔵テキストエディタ]オプションを選択して、IAR Embedded Workbenchテ キストエディタで指定したタイプのドキュメントをすべて開きます。 [ファイルエクスプローラの関連付けを使用]オプションを選択して、 Windows エクスプローラで指定したタイプに関連付けられたデフォルトアプリケー ションを使用して、すべてのドキュメントを開きます。 IAR Embedded Workbench® IDE リファレンス ● [コマンドライン]オプションを選択して、ビューアアプリケーションへのパ スを入力するかまたは参照して、必要なコマンドラインオプションをツー ルに指定します。 [ ウィンドウ ] メニュー [ ウィンドウ ] メニューのコマンドを使用して、IAR Embedded Workbench IDE のウィンドウを操作し、画面上での配置を変更することができます。 [ ウィンドウ ] メニューの最後のセクションには、画面で開かれているウィン ドウのリストが表示されます。リストからウィンドウを選択すると、そのウィ ンドウに切り替ります。 図 131: [ ウィンドウ ] メニュー [ ウィンドウ ] メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 タブを閉じる アクティブなタブを閉じます。 ウィンドウを閉じる CTRL+F4 アクティブなエディタウィンドウを閉じます。 分割 ウィンドウを縦または横方向に 2 つか 4 つに分割し、 同一ファイルの異なる部分を同時に表示します。 新規エディタウィン ドウを縦に並べる 新しい空白ウィンドウを、現在のエディタウィンドウ の横に表示します。 新規エディタウィン ドウを横に並べる 新しい空白ウィンドウを、現在のエディタウィンドウ の下に表示します。 次のウィンドウへ タブを移動 現在のウィンドウのすべてのタブを次のウィンドウに 移動します。 前のウィンドウへ タブを移動 現在のウィンドウのすべてのタブを前のウィンドウに 移動します。 すべてのアクティ ブでないタブを閉 じる アクティブなタブ以外のすべてのタブを閉じます。 すべてのエディタ タブを閉じる エディタウィンドウで表示されているすべてのタブを 閉じます。 表 58: [ ウィンドウ ] メニューのコマンド パート 6: リファレンス情報 257 メニュー [ ヘルプ ] メニュー [ ヘルプ ] メニューには、IAR Embedded Workbench IDE のヘルプと、ユーザイ ンタフェースおよび IAR Embedded Workbench IDE のバージョン番号が表示され ます。 メニューコマンド 説明 コンテンツ IAR Embedded Workbench IDE のオンラインヘル プの目次ページを表示します。 インデックス IAR Embedded Workbench IDE のオンラインヘル プの索引ページを表示します。 検索 IAR Embedded Workbench IDE のオンラインヘル プの検索ページを表示します。 リリースノート IAR Embedded Workbench の最新情報を表示し ます。 Embedded Workbench ユーザガイド このユーザガイドのハイパーテキスト PDF バー ジョンへのアクセスを提供します。 アセンブラリファレンスガイド 『IAR アセンブラリファレンスガイド』のハイパー テキスト PDF バージョンへのアクセスを提供し ます。 C/C++ コンバイラリファレンスガイド 『IAR C/C++ コンパイラリファレンスガイド』のハ Compiler Reference Guide (\[ ヘルプ \] メ イパーテキスト PDF バージョンへのアクセスを ニュー );\[ ヘルプ \] メニュー :Compiler 提供します。 Reference Guide[ ヘルプメニュー ] リンカ / ライブラリツールファレンス 『IAR リンカおよびライブラリツールリファレン スガイド』のハイパーテキスト PDF バージョン ガイド へのアクセスを提供します。 I インターネット上の IAR IAR システムズの Web サイトのホームページ、 ニュースページ、テクニカルノート検索ページの 閲覧と、IAR の技術サポートへの連絡を行うこと ができます。 Product updates 製品の使用できる最新の更新へのアクセスを、 IAR Systems Web サイトでご提供いたします。 起動画面 [Embedded Workbench の起動 ] ダイアログ ボックスを表示します。259 ページの「[Embedded Workbench の起動 ] ダイアログボックス」を参照 してください。 バージョン情報 > 製品情報 インストールされている IAR 製品の詳細を表示 します。IAR の技術サポートに電子メールでお問 い合せの際は、この情報をコピーし (Ctrl+C キー ボードショートカットを使用 )、メールに貼り付 けて送信してください。 バージョン情報 > インストールログ ライセンスマネージャのログファイル lms.log をエディタで開きます。ライセンス管理システム 関連の問題について IAR の技術サポートにお問 い合せの際は、このファイルを電子メールに添付 して送信してください。 表 59: [ ヘルプ ] メニューのコマンド IAR Embedded Workbench® IDE 258 ユーザガイド IAR Embedded Workbench® IDE リファレンス 注 : 製品のインストール内容によっては、[ ヘルプ ] メニューから他のドキュ メントも表示できる場合があります。 [EMBEDDED WORKBENCH の起動 ] ダイアログボックス [Embedded Workbench の起動 ] ダイアログボックス ([ ヘルプ ] メニューから表 示 ) では、すぐにビルドして実行できるワークスペース例を利用し、開発の初 期段階を簡単に進めることができます。 図 132: [Embedded Workbench の起動 ] ダイアログボックス パート 6: リファレンス情報 259 メニュー IAR Embedded Workbench® IDE 260 ユーザガイド C-SPY® デバッガ リファレンス この章では、IAR C-SPY デバッガのウィンドウ、メニュー、メニュー コマンド、対応するコンポーネントのリファレンス情報を収録してい ます。 C-SPY のウィンドウ IAR C-SPY デバッガ専用のウィンドウは、以下のとおりです。 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● IAR C-SPY デバッガメインウィンドウ [ 逆アセンブリ ] ウィンドウ [ メモリ ] ウィンドウ [ シンボルメモリ ] ウィンドウ [ レジスタ ] ウィンドウ [ ウォッチ ] ウィンドウ [ ローカル ] ウィンドウ [ 自動 ] ウィンドウ [ ライブウォッチ ] ウィンドウ [ クイックウォッチ ] ウィンドウ [ 静的 ] ウィンドウ [ 呼出しスタック ] ウィンドウ [ ターミナル I/O ] ウィンドウ [ コードカバレッジ ] ウィンドウ [ プロファイリング ] ウィンドウ [ スタック ] ウィンドウ 使用する C-SPY ドライバによっては、他のウィンドウも使用可能な場合があ ります。各ドライバの情報については、そのドライバのドキュメントを参照し てください。 C-SPY のウィンドウでの編集 [ メモリ ]、[ シンボルメモリ ]、[ レジスタ ]、[ 自動 ]、[ ウォッチ ]、[ ローカ ル ]、[ 静的 ]、[ ライブウォッチ ]、[ クイックウォッチ ] の各ウィンドウの内 容を編集することができます。 これらのウィンドウの内容の編集では、以下のキー操作を使用します。 キー 説明 Enter 項目を編集可能にします。また、新しい値を保存します。 表 60: C-SPY ウィンドウでの編集 パート 6: リファレンス情報 261 C-SPY のウィンドウ キー 説明 Esc 新しい値を取り消します。 表 60: C-SPY ウィンドウでの編集 ( 続き ) IAR C-SPY デバッガメインウィンドウ IAR C-SPY デバッガを起動すると、IAR Embedded Workbench IDE のメインウィ ンドウに、以下のデバッガ専用項目が表示されます。 ● ● ● ● アプリケーションの実行、デバッグ用コマンドが含まれるデバッグ専用メ ニュー 使用する C-SPY ドライバに応じたドライバ専用メニュー。通常は、このメ ニューには、ドライバ専用のウィンドウやダイアログボックスを表示する ためのメニューコマンドが表示されます。詳細については、ドライバのド キュメントを参照してください デバッグ用ツールバー C-SPY 専用のウィンドウ、ダイアログボックス 使用するコンポーネントによって、ウィンドウの表示が異なる場合があります。 以下では、ウィンドウ内の各項目の詳細を説明します。 メニューバー 開発環境で使用可能なメニューに加えて、C-SPY の実行中は [ デバッグ ] メ ニューが使用可能になります。[ デバッグ ] メニューには、ソースアプリケー ションの実行 / デバッグ用コマンドが表示されます。ほとんどのコマンドはデ バッグツールバーのアイコンボタンとしても使用できます。 インストールしたデバッガドライバに依存して、追加メニューを使用できま す。詳細については、ドライバ関連ドキュメントを参照してください。 デバッグツールバー デバッグツールバーには、[ デバッグ ] メニューで最もよく使用するコマンド 用のボタンが表示されます。 ボタンの上にポインタを移動すると、そのボタンの説明が表示されます。コマ ンドが使用できない場合は、対応するツールバーボタンは灰色表示され、選択 できません。 IAR Embedded Workbench® IDE 262 ユーザガイド C-SPY® デバッガリファレンス 下図に、各ボタンに対応するコマンドを示します。 ブレーク リセット ステップイン 次のステー トメント 実行 ステップアウト カーソル位置 まで実行 ステップ オーバ デバッグの 中止 図 133: C-SPY のデバッグツールバー [ 逆アセンブリ ] ウィンドウ C-SPY の [ 逆アセンブリ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、デバッ グ中のアプリケーションを逆アセンブルしたアプリケーションコードが表示 されます。 ゾーン表示 指定したメモ リアドレスに 移動 逆アセンブリ モードの切替え コードカバレッジ 情報 現在の位置 ブレーク ポイント 図 134: C-SPY の [ 逆アセンブリ ] ウィンドウ パート 6: リファレンス情報 263 C-SPY のウィンドウ ツールバー ウィンドウ上部にツールバーがあります。 項目 説明 移動 表示するロケーションを指定できます。それには、メモリアドレ ス、または変数、機能、ラベルの名前を指定できます。 ゾーン表示 表示可能なメモリゾーンのリストを示します。ゾーンの詳細につ いては、セクション 131 ページの「メモリアドレッシング」を参 照してください。 混合モードの切替え 逆アセンブリしたコードだけを表示するか、対応するソースコー ドも併せて表示するかを選択します。ソースコードを表示するに は、デバッグ情報付きでソースファイルをコンパイルしておく必 要があります。 表 61: [ 逆アセンブリ ] ウィンドウツールバー 表示エリア 現在の位置 ( 緑色で強調表示 ) は、次に実行されるアセンブラ命令を示します。 [ 逆アセンブリ ] ウィンドウの任意の行をクリックすると、その行にカーソル を移動できます。また、移動キーを使用してカーソルを移動することもできま す。ウィンドウ左側の灰色で表示された余白部分をダブルクリックして、赤色 で示されたブレークポイントを設定します。実行済みのコード ( コードカバレッ ジ ) は、緑色のひし形で示されます。 [ 逆アセンブリ ] ウィンドウでのデフォルトのソースコード色を変更するには、 [ ツール ]> [ オプション ]>[ デバッガ ] を選択します。デフォルトの色を設定す るには、[[ 逆アセンブリ ] ウィンドウのソースコード色 ] オプションを使用し ます。 関数に対応するアセンブラコードを表示するには、エディタウィンドウでその 関数を選択し、[ 逆アセンブリ ] ウィンドウにドラッグします。 IAR Embedded Workbench® IDE 264 ユーザガイド C-SPY® デバッガリファレンス [ 逆アセンブリ ] ウィンドウのコンテキストメニュー [ 逆アセンブリ ] ウィンドウで右マウスボタンをクリックすると、コンテキス トメニューが表示されます。これを使用して、一部の追加コマンドを簡単に実 行することができます。 図 135: [ 逆アセンブリ ] ウィンドウのコンテキストメニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 PC へ移動 現在のプログラムカウンタ位置のコードを表示します。 カーソル位置まで実行 現在の位置からカーソルを含む行まで、アプリケーションを実 行します。 コードカバレッジ 有効 表示 コードカバレッジ制御用コマンドのサブメニューを表示します。 [ 有効 ] は、コードカバレッジの有効 / 無効を切り替えます。 [ 表示 ] は、コードカバレッジの表示 / 非表示を切り替えます。 実行されるコードは、緑色のひし形で示されます。 [ クリア ] は、すべてのコードカバレッジ情報を消去します。 クリア ブレークポイン トの切り替え ( コード ) コードブレークポイントを設定 / 解除します。コードブレーク ポイントが設定されたアセンブラ命令は赤色で強調表示され ます。コードブレークポイントについては、205 ページの「[ コード ] ブレークポイントダイアログボックス」を参照してく ださい。 ブレークポイン トの切り替え ( ログ ) ログでトレースを出力するためのブレークポイントを設定 / 解 除します。ログブレークポイントが設定されたアセンブラ命令 は赤色で強調表示されます。ログブレークポイントについて は、206 ページの「[ ログ ] ブレークポイントダイアログボック ス」を参照してください。 ブレークポイントの有効 ブレークポイントを有効 / 無効にします。 化 / 無効化 次の文の設定 プログラムカウンタを挿入ポイントの位置に設定します。 表 62: [ 逆アセンブリ ] ウィンドウのコンテキストメニューのコマンド パート 6: リファレンス情報 265 C-SPY のウィンドウ メニューコマンド 説明 ウィンドウ内容のコピー[ 逆アセンブリ ] ウィンドウで選択した内容をクリップボード にコピーします。 混在モード 逆アセンブリしたコードだけを表示するか、対応するソース コードも併せて表示するかを選択します。ソースコードを表示 するには、デバッグ情報付きでソースファイルをコンパイルし ておく必要があります。 表 62: [ 逆アセンブリ ] ウィンドウのコンテキストメニューのコマンド ( 続き ) [ メモリ ] ウィンドウ [ メモリ ] ウィンドウ ([ 表示 ] メニューから表示 ) では、指定されたメモリエ リアの最新状態の表示や編集を行うことができます。このウィンドウは複数表 示することができ、メモリ / レジスタの複数のゾーンをトレースする、あるい はメモリの異なる部分をモニタするのに非常に便利です。 メモリの内容 指定可能なゾーン コンテキストメニューボタン 指定したメモリアド レスに移動 メモリアドレス データカバレッジ 情報 ASCII フォーマットのメモリ内容 図 136: [ メモリ ] ウィンドウ IAR Embedded Workbench® IDE 266 ユーザガイド C-SPY® デバッガリファレンス ツールバー ウィンドウ上部に、ツールバーが表示されます。 項目 説明 移動 表示するロケーションを指定できます。それには、メモリアドレ ス、または変数、機能、ラベルの名前を指定できます。 ゾーン表示 表示可能なメモリゾーンを示します。ゾーンの詳細については、 131 ページの「メモリアドレッシング」を参照してください。 コンテキストメ ニューボタン コンテキストメニューを表示するには、268 ページの「[ メモリ ] ウィンドウのコンテキストメニュー」を参照してください。 表 63: [ メモリ ] ウィンドウでの操作 表示エリア 表示エリアに、現在表示しているアドレス、選択したフォーマットのメモリ内 容、ASCII フォーマットのメモリ内容が表示されます。[ メモリ ] ウィンドウ の内容は、16 進表示と ASCII 表示のどちらの部分でも編集できます。 データカバレッジは、以下の色で表示されます。 ● ● ● 黄色は、データのリードが実行されたことを示します。 青色は、データのライトが実行されたことを示します。 緑色は、データのリードとライトの両方が実行されたことを示します。 注 : 一部の C-SPY ドライバは、データカバレッジをサポートしていません。 IAR C-SPY シミュレータは、データカバレッジをサポートしています。 変数に対応するメモリを表示するには、エディタウィンドウでその変数を選択 し、[ メモリ ] ウィンドウにドラッグします。 パート 6: リファレンス情報 267 C-SPY のウィンドウ [ メモリ ] ウィンドウのコンテキストメニュー 下記のコンテキストメニューが、[ メモリ ] ウィンドウで使用可能です。 図 137: [ メモリ ] ウィンドウのコンテキストメニュー メニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 コピー、貼り付け 標準の編集コマンド。 ゾーン 表示可能なメモリゾーンを示します。ゾーンの詳細については、 131 ページの「メモリアドレッシング」を参照してください。 1x ユニット、2x ユ メモリ内容の表示単位を 8 ビット、16 ビット、32 ビットに切り替 ニット、4x ユニット えます。 リトルエンディアン メモリ内容の表示をビッグエンディアンかリトルエンディアンに ビッグエンディアン 切り替えます。アスタリスク (*) は、デフォルトのバイトオーダを 示します。 データカバレッジ 有効 表示 クリア [ 有効 ] は、データカバレッジの有効 / 無効を切り替えます。 [ 表示 ] は、データカバレッジの表示 / 非表示を切り替えます。 [ クリア ] は、すべてのデータカバレッジ情報を消去します。 メモリフィル [ フィル ] ダイアログボックスを表示します。このダイアログボッ クスを使用して、指定エリアに値を設定することができます。269 ページの「[ フィル ] ダイアログボックス」を参照してください。 メモリ保存 [ メモリ保存 ] ダイアログボックスが表示され、指定したメモリエ リアの内容をファイルに保存できます。270 ページの「[ メモリ保 存 ] ダイアログボックス」を参照してください。 表 64: [ メモリ ] ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench® IDE 268 ユーザガイド C-SPY® デバッガリファレンス メニューコマンド 説明 メモリ復元 [ メモリ復元 ] ダイアログボックスを表示して、Intel-hex や Motorola S-record のフォーマットのファイルの内容を指定したメ モリゾーンにロードできます。271 ページの「[ メモリ復元 ] ダイ アログボックス」を参照してください。 Data ブレークポイン [ メモリ ] ウィンドウでブレークポイントを直接設定します。ブレー トの設定 クポイントが強調表示されていない場合は、[ ブレークポイント ] ダイアログボックスでブレークポイントを表示、編集、削除する ことができます。このウィンドウで設定したブレークポイントは、 リードとライトの両方のアクセスでトリガされます。 表 64: [ メモリ ] ウィンドウのコンテキストメニューのコマンド ( 続き ) [ フィル ] ダイアログボックス [ フィル ] ダイアログボックス ([ メモリ ] ウィンドウのコンテキストメニュー から表示 ) を使用して、指定したメモリ領域に値を入力できます。 図 138: [ フィル ] ダイアログボックス オプション オプション 説明 開始アドレス 2 進数、8 進数、10 進数、16 進数のいずれかの表記法で開始アド レスを入力します。 長さ 2 進数、8 進数、10 進数、16 進数のいずれかの表記法でデータ長 を入力します。 ゾーン メモリゾーンを選択します。 値 各メモリアドレス ( ロケーション ) に設定する 8 ビット値を入力し ます。 表 65: [ フィル ] ダイアログボックスのオプション 以下のメモリ操作を使用できます。 パート 6: リファレンス情報 269 C-SPY のウィンドウ 項目 説明 コピー [ 値 ] に入力した値が、指定したメモリエリアにコピーされます。 AND [AND] を指定すると、 [ 値 ] の値とメモリの既存値の論理積がメモ リに書き込まれます。 XOR [XOR] を指定すると、 [ 値 ] の値とメモリの既存値の排他的論理和 がメモリに書き込まれます。 OR [OR]を指定すると、[値]の値とメモリの既存値の論理和がメモリ に書き込まれます。 表 66: メモリ操作 [ メモリ保存 ] ダイアログボックス [ メモリ保存 ] ダイアログボックス ([ デバッグ ]>[ メモリ ]>[ 保存 ] を選択する か、[ メモリ ] ウィンドウのコンテキストメニューから表示 ) を使用して、指 定したメモリエリアの内容をファイルに保存します。 図 139: [ メモリ保存 ] ダイアログボックス ゾーン 使用可能なメモリゾーン。 開始アドレス 保存するメモリ範囲の開始アドレス。 停止アドレス 保存するメモリ範囲の停止アドレス。 ファイルフォーマット 使用するファイルフォーマット。デフォルトでは Intel-extended です。 IAR Embedded Workbench® IDE 270 ユーザガイド C-SPY® デバッガリファレンス ファイル名 使用する対象ファイル。参照ボタンを使用して選択すると便利です。 保存 選択したメモリゾーン範囲を指定ファイルに保存します。 [ メモリ復元 ] ダイアログボックス [ メモリ復元 ] ダイアログボックス ([ デバッグ ]>[ メモリ ]>[ 保存 ] を選択する か、[ メモリ ] ウィンドウのコンテキストメニューから表示 ) を使用して、 Intel-extended や Motorola S-record のフォーマットのファイルの内容を指定した メモリゾーンにロードできます。 図 140: [ メモリ復元 ] ダイアログボックス ゾーン 使用可能なメモリゾーン。 ファイル名 リード対象ファイル。参照ボタンを使用して選択するすると便利です。 復元 指定ファイルの内容を選択したメモリゾーンにロードします。 パート 6: リファレンス情報 271 C-SPY のウィンドウ [ シンボルメモリ ] ウィンドウ [ シンボルメモリ ] ウィンドウ (IAR C-SPY デバッガの実行時に [ 表示 ] メニュー から表示 ) で静的記憶寿命変数、通常はファイルスコープ付き変数および関数 とクラスの静的変数が、メモリ内でどのように配置されるかを表示します。こ の機能は、アラインメントの穴の検出や上書きしたバッファに起因する問題の 理解に役立ちます。 図 141: [ シンボルメモリ ] ウィンドウ ツールバー ウィンドウ上部に、ツールバーが表示されます。 項目 説明 移動 表示するメモリアドレス ( ロケーション ) またはシンボルを指定で きます。 ゾーン表示 表示可能なメモリゾーンのリストを示します。ゾーンの詳細につい ては、131 ページの「メモリアドレッシング」を参照してください。 前へ 前のシンボルへジャンプします。 次へ 次のシンボルへジャンプします。 表 67: [ シンボルメモリ ] ウィンドウツールバー 表示エリア 表示エリアにメモリ空間が表示され、以下の列に情報が示されます。 列 説明 位置 メモリアドレス。 表 68: [ シンボルメモリ ] ウィンドウの列 IAR Embedded Workbench® IDE 272 ユーザガイド C-SPY® デバッガリファレンス 列 説明 データ 16 進フォーマットのメモリ内容。データはシンボルサイズに従っ てグループ化されます。この列は編集可能です。 変数 変数名。変数には固定されたメモリ位置が必要です。ローカル変 数は表示されません。 値 変数の値。この列は編集できます。 タイプ 変数のタイプ。 表 68: [ シンボルメモリ ] ウィンドウの列 ( 続き ) いくつかの方法でメモリ空間内を移動できます。 ● ● ● ● ウィンドウでドロップするテキストをシンボルと解釈します。 ウィンドウ右側のスクロールバー ツールバーボタン [ 次へ ] と [ 前へ ] ツールバーリストボックス[移動]は、 特定の場所やシンボルの検出に使用で きます。 注 : 対応する値を変更すると行に赤色のマークが付けられます。 [ シンボルメモリ ] ウィンドウのコンテキストメニュー 以下のコンテキストメニューが、[ シンボルメモリ ] ウィンドウで使用できます。 図 142: [ シンボルメモリ ] ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは、以下のとおりです。 メニューコマンド 説明 次のシンボル 次のシンボルへジャンプします。 前のシンボル 前のシンボルへジャンプします。 1x ユニット , 2x ユニッ メモリ内容の表示単位を 8 ビット、16 ビット、32 ビットに切り ト , 4x ユニット 替えます。これは変数を含まない行にのみ適用します。 ウォッチウィンドウに 追加 選択したシンボルを [ ウォッチ ] ウィンドウに追加します。 表 69: [ シンボルメモリ ] ウィンドウのコンテキストメニューのコマンド パート 6: リファレンス情報 273 C-SPY のウィンドウ [ レジスタ ] ウィンドウ [ レジスタ ] ウィンドウ ([ 表示 ] メニューから表示 ) では、プロセッサレジス タの最新状態の表示と編集を行うことができます。値が変化すると、その値が 強調表示されます。一部のレジスタは展開可能です。つまり、関連するビット やビットのサブグループが含まれています。 このウィンドウは複数表示することができ、複数のレジスタグループをトレー スするのに非常に便利です。 図 143: [ レジスタ ] ウィンドウ [ レジスタ ] ウィンドウで表示するレジスタグループを、ドロップダウンリスト で選択することができます。アプリケーション固有のレジスタグループを定義 するには、135 ページの「アプリケーション固有のグループの定義」を参照し てください。 IAR Embedded Workbench® IDE 274 ユーザガイド C-SPY® デバッガリファレンス [ ウォッチ ] ウィンドウ [ ウォッチ ] ウィンドウ ([ 表示 ] メニューから表示 ) では、C-SPY の式や変数 の値をモニタすることができます。[ ウォッチ ] ウィンドウでは、式の表示、追 加、修正、削除が可能です。配列、構造体、共用体は展開可能です。つまり、 各エレメントの値をモニタすることができます。 図 144: [ ウォッチ ] ウィンドウ C-SPY での実行が停止するごとに、その前に停止して以降に変化した値が強調 表示されます。事実、メモリを変更するたびに、[ ウォッチ ] ウィンドウの値 が再計算され、赤色の強調表示が更新されます。 [ ウォッチ ] ウィンドウのコンテキストメニュー 次のコンテキストメニューが [ ウォッチ ] ウィンドウで使用可能です。 図 145: [ ウォッチ ] ウィンドウのコンテキストメニュー パート 6: リファレンス情報 275 C-SPY のウィンドウ このメニューに表示されるコマンドは、以下のとおりです。 メニューコマンド 説明 追加削除 選択した式を追加 / 削除します。 デフォルトフォー マット、 2進フォーマット、 8 進フォーマット、 10 進フォーマット、 16 進フォーマット、 文字フォーマット 式の表示フォーマットを変更します。表示フォーマット設定は、式 の種類によって適用対象が異なります。表 71「式の種類による表 示フォーマット設定の影響」を参照してください。表示フォーマッ トの選択は、デバッグセッションの終了後も保持されます。 表示フォーマット 変数のデフォルトの型解釈を変更するコマンドをサブメニューで 表示します。このサブメニューのコマンドは、デフォルトでは整 数として表示されるアセンブラの変数(アセンブララベルでのデー タ ) に主に使用します。詳細については、122 ページの「アセンブ ラ変数の表示」を参照してください。 表 70: [ ウォッチ ] ウィンドウのコンテキストメニューのコマンド 表示フォーマット設定は、式の種類によって適用対象が異なります。 式の種類 表示フォーマット設定の影響 変数 表示設定は、選択した変数だけに適用されます。他の変数には適 用されません。 配列エレメント 表示設定は配列全体に適用されます。つまり、配列の各エレメン トに同一の表示フォーマットが使用されます。 構造体のフィールド 定義が同一のエレメント ( フィールド名、C の宣言型 ) に表示設定 が適用されます。 表 71: 式の種類による表示フォーマット設定の影響 [ ローカル ] ウィンドウ [ ローカル ] ウィンドウ ([ 表示 ] メニューから表示 ) には、ローカル変数や関 数パラメータが自動的に表示されます。 IAR Embedded Workbench® IDE 276 ユーザガイド C-SPY® デバッガリファレンス 図 146: [ ローカル ] ウィンドウ [ ローカル ] ウィンドウのコンテキストメニュー [ ローカル ] ウィンドウのコンテキストメニューには、式の表示フォーマットの 変更コマンドが表示されます。コマンドの詳細については、275 ページの「[ ウォッチ ] ウィンドウのコンテキストメニュー」を参照してください。 [ 自動 ] ウィンドウ [ 自動 ] ウィンドウ ([ 表示 ] メニューから表示 ) には、現在の文やその近くに ある文の変数や式が自動的に表示されます。 図 147: [ 自動 ] ウィンドウ [ 自動 ] ウィンドウのコンテキストメニュー [ 自動 ] ウィンドウのコンテキストメニューには、式の表示フォーマットの変更 コマンドが表示されます。コマンドの詳細については、275 ページの「[ ウォッ チ ] ウィンドウのコンテキストメニュー」を参照してください。 パート 6: リファレンス情報 277 C-SPY のウィンドウ [ ライブウォッチ ] ウィンドウ [ ライブウォッチ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、アプリケー ション実行中に継続的に式の値がサンプリングされて表示されます。式の変数 は、グローバル変数のように、静的に特定できる必要があります。 図 148: [ ライブウォッチ ] ウィンドウ 通常はこのウィンドウは、この機能をサポートするハードウェアターゲットシ ステムで使用します。 [ ライブウォッチ ] ウィンドウのコンテキストメニュー [ ライブウォッチ ] ウィンドウのコンテキストメニューには、式の追加 / 削除コ マンド、式の表示フォーマットの変更コマンド、変数のデフォルトの型解釈の変 更コマンドが表示されます。これらのコマンドについては、275 ページの「[ ウォッチ ] ウィンドウのコンテキストメニュー」を参照してください。 また、このメニューには [ オプション ] コマンドが含まれています。このコマ ンドを選択すると、[ デバッガ ] ダイアログボックスが表示され、[ 更新間隔 ] オプションを設定することができます。このオプションのデフォルト値は 1000 ミリ秒です。つまり、プログラム実行中に、[ ライブウォッチ ] ウィンドウが 1 秒に 1 回更新されます。 [ クイックウォッチ ] ウィンドウ [ クイックウォッチ ] ウィンドウ ([ 表示 ] メニューから表示 ) では、変数や式 の値のモニタや式の評価を行うことができます。 図 149: [ クイックウォッチ ] ウィンドウ IAR Embedded Workbench® IDE 278 ユーザガイド C-SPY® デバッガリファレンス 確認したいファイル名を [ 式 ] テキストボックスに入力します。[ 再計算 ] ボタ ンをクリックすると、式の値が計算されます。[ クイックウォッチ ] ウィンド ウの使用例については、120 ページの「[ クイックウォッチ ] ウィンドウの使 用」、142 ページの「[ クイックウォッチ ] によるマクロの実行」を参照してく ださい。 [ クイックウォッチ ] ウィンドウのコンテキストメニュー [ クイックウォッチ ] ウィンドウのコンテキストメニューには、式の表示フォー マットの変更コマンドおよび変数のデフォルトの型解釈の変更コマンドが表 示されます。これらのコマンドについては、275 ページの「[ ウォッチ ] ウィ ンドウのコンテキストメニュー」を参照してください。 また、このメニューには [ ウォッチウィンドウに追加 ] コマンドも表示されま す。このコマンドは、選択した式を [ ウォッチ ] ウィンドウに追加します。 [ 静的 ] ウィンドウ [ 静的 ] ウィンドウ ([ 表示 ] メニューから表示 ) では、静的記憶寿命変数、通 常はファイルスコープ付き変数および関数とクラスの静的変数、の値を表示し ます。volatile として宣言された静的記憶寿命変数は表示されないことに、 注意してください。 図 150: [ 静的 ] ウィンドウ パート 6: リファレンス情報 279 C-SPY のウィンドウ 表示エリア 表示エリアに静的記憶寿命変数の値が表示され、以下の列に情報が示されます。 列 説明 式 変数名。変数のベース名に続いて、モジュール、クラス、または 関数スコープを含むフルネームが表示されます。この列は編集で きません。 値 変数の値。変更された値は赤色で強調表示されます。この列は編 集できます。 位置 この変数が格納されているメモリの場所。 タイプ 変数のデータ型。 表 72: [ シンボルメモリ ] ウィンドウの列 [ 静的 ] ウィンドウのコンテキストメニュー 次のコンテキストメニューが [ 静的 ] ウィンドウで使用可能です。 図 151: [ 静的 ] ウィンドウのコンテキストメニュー このメニューに表示されるコマンドは、以下のとおりです。 メニューコマンド 説明 デフォルトフォーマット、 2進フォーマット、 8 進フォーマット、 10 進フォーマット、 16 進フォーマット、 文字フォーマット 式の表示フォーマットを変更します。表示フォーマット設定 は、式の種類によって適用対象が異なります。表 71「式の 種類による表示フォーマット設定の影響」を参照してくださ い。表示フォーマットの選択は、デバッグセッションの終了 後も保持されます。 静的の変数の選択 [ 静的 ] ウィンドウに表示する変数のサブセットを選択する ダイアログボックスを、表示します。281 ページの「[ 静的 変数の選択 ] ダイアログボックス」を参照してください。 表 73: [ 静的 ] ウィンドウのコンテキストメニューのコマンド IAR Embedded Workbench® IDE 280 ユーザガイド C-SPY® デバッガリファレンス [ 静的変数の選択 ] ダイアログボックス [ 静的の変数の選択 ] ダイアログボックス ([ 静的 ] ウィンドウのコンテキスト メニューから表示 ) を使用して、[ 静的 ] ウィンドウで表示する変数を選択し ます。 図 152: [ 静的の変数の選択 ] ダイアログボックス 静的記憶寿命変数に対してすべての変数を表示 このオプションを使用して、デバッグセッションの終了後にアプリケーション に追加された新規変数を含めたすべての変数を、[ 静的 ] ウィンドウに表示し ます。 選択した変数のみ表示 このオプションを使用して、[ 静的 ] ウィンドウに表示する変数を選択します。 この場合、2 回のデバッグセッションの間にアプリケーションに追加された新 規変数は、[ 静的 ] ウィンドウに自動的に表示されないことに、注意してくださ い。変数の横にあるチェックボックスを選択すると、その編集が表示されます。 パート 6: リファレンス情報 281 C-SPY のウィンドウ [ 呼出しスタック ] ウィンドウ [ 呼出しスタック ] ウィンドウ ([ 表示 ] メニューから表示 ) には、C 関数呼出し スタックが表示されます。ウィンドウ上部には、現在の関数が表示されます。 関数呼出しを調べるには、ダブルクリックします。C-SPY でその呼出しフレー ムが代わりに表示されます。 ステップ実行先 図 153: [ 呼出しスタック ] ウィンドウ 各エントリは、次のフォーマットで表示されます。 function(values) ここで、(values) はパラメータの現在値のリストを示します。関数がパラメー タを取らない場合は、空白になります。 [ ステップイン ] コマンドが関数呼出し内部に移動してステップ実行する場合 は、ウィンドウ上部の灰色部分に関数名が表示されます。これは、C++ のコンス トラクタ、デストラクタ、演算子のような暗黙的な関数呼出しの場合に特に便利 です。 [ 呼出しスタック ] ウィンドウのコンテキストメニュー [ 呼出しスタック ] ウィンドウで右クリックして表示可能なコンテキストメ ニューから、以下のコマンドを使用できます。 図 154: [ 呼出しスタック ] ウィンドウのコンテキストメニュー コマンド ソースへ移動 IAR Embedded Workbench® IDE 282 ユーザガイド 選択した関数を [ 逆アセンブリ ] ウィンドウかエディタウィ ンドウで表示します。 C-SPY® デバッガリファレンス 引数の表示 関数の引数を表示します。 カーソル位置まで実行 呼出しスタックで選択した関数まで実行します。 ブレークポイントの切り コードブレークポイントを設定 / 解除します。 替え ( コード ) ブレークポイントの切り ログブレークポイントを設定 / 解除します。 替え ( ログ ) ブレークポイントの有効 選択したブレークポイントを有効 / 無効にします。 化 / 無効化 [ ターミナル I/O ] ウィンドウ [ ターミナル I/O] ウィンドウ ([ 表示 ] メニューから表示 ) では、アプリケーショ ンへの入力の設定やアプリケーションからの出力の表示を行うことができま す。このウィンドウを使用するには、[ ターミナル I/O 付デバッグ情報 ] オプ ションを使用してアプリケーションをリンクする必要があります。これによ り、C-SPY は stdin、stdout、stderr をこのウィンドウに転送します。[ ター ミナル I/O] ウィンドウが表示されていない場合は、入力が必要な場合に自動的 に表示されます。出力の場合は自動表示されません。 図 155: [ ターミナル I/O] ウィンドウ [ 制御コード ] ボタンをクリックすると、EOF ( ファイル終端 ) や NUL などの特 殊文字の入力用サブメニューが表示されます。 図 156: [ 制御コード ] メニュー パート 6: リファレンス情報 283 C-SPY のウィンドウ [ 入力モード ] ボタンをクリックすると、[ 入力モード ] ダイアログボックスが 表示されます。ここで、キーボードとテキストファイルのどちらからデータを 入力するかを選択できます。 図 157: [ 入力モード ] ダイアログボックス このダイアログボックスのオプションのリファレンス情報については、246 ページの「[ ソースコード管理 ] オプション」を参照してください。 [ コードカバレッジ ] ウィンドウ [ コードカバレッジ ] ウィンドウ ([ 表示 ] メニューから表示 ) には、現在のコー ドカバレッジ解析状態、つまり解析開始以降に少なくとも 1 回実行されている コード部分が表示されます。コンパイラは、文や関数呼出しごとに、ステップ ポイントという形式で詳細なステップ実行情報を生成します。レポートには、 すべてのモジュールと関数についての情報が表示されます。アプリケーション 停止時点で実行済みのすべてのステップポイントの割合がレポートされ、実行 されていないすべてのステップポイントが表示されます。カバレッジは、無効 にするまで続行されます。 図 158: [ コードカバレッジ ] ウィンドウ 注 : コードカバレッジプラグインモジュールは、[ オプション ] ダイアログボッ クスの [ デバッガ ]>[ プラグイン ] ページで有効にすることができます。 IAR Embedded Workbench® IDE 284 ユーザガイド C-SPY® デバッガリファレンス 一部の C-SPY ドライバは、コードカバレッジをサポートしていません。使用 する C-SPY ドライバがコードカバレッジをサポートしているかどうかについ ては、[ ヘルプ ] メニューから表示できるオンラインヘルプシステムのドライ バ関連ドキュメントを参照してください。C-SPY シミュレータは、コードカバ レッジをサポートしています。 コードカバレッジのコマンド ツールバーのアイコンで実行可能なコマンド以外に、[ コードカバレッジ ] ウィ ンドウで右マウスボタンをクリックすると表示されるコンテキストメニューか ら、これらのコマンドやいくつかの追加コマンドを実行することができます。 図 159: [ コードカバレッジ ] のコンテキストメニュー コンテキストメニューに表示されるコマンドは、以下のとおりです。 有効 実行時のコードカバレッジの有効 / 無効を切り替えます。 クリア すべてのコードカバレッジ情報を消去します。すべてのステップポ イントが未実行として表示されます。 更新 コードカバレッジ情報を更新し、ウィンドウを再描画します。最後 の更新以降に実行されたすべてのステップポイントは、ツリーから 削除されます。 自動更新 コードカバレッジ情報の自動再ロードの有効 / 無効を切り替えます。 有効にした場合は、ブレークポイント、ステップポイント、プログ ラム終了で C-SPY が停止したときに、コードカバレッジ情報が自動 的に再ロードされます。 名前を付けて保存 現在のコードカバレッジ情報をテキストファイルに保存します。 すべてのレベルの現在の状態は、以下のアイコンで示されます。 ● ● ● ● 赤色のひし形は、実行済みコードが 0% であることを示します。 緑色のひし形は、実行済みコードが 100% であることを示します。 赤と緑の 2 色のひし形は、一部のコードが実行済みであることを示します。 黄色のひし形は、実行されていないステップポイントを示します。 ステップポイントの行については、ソースウィンドウでのステップポイントの 列番号範囲、行番号、ステップポイントのアドレスが表示されます。 <column start>-<column end>:<row>. パート 6: リファレンス情報 285 C-SPY のウィンドウ [ プロファイリング ] ウィンドウ [ プロファイリング ] ウィンドウ ([ 表示 ] メニューから表示 ) には、プロファ イリング情報 ( アプリケーション内の関数のタイミング情報 ) が表示されます。 プロファイリングは、ウィンドウのツールバーにあるボタンを使用して明示的に 有効にする必要があります。有効にした後は、無効にするまではその状態に保持 されます。 プロファイラは、関数に入る時間と関数から戻る時間を測定します。したがっ て、関数内で費やす時間は、その関数が復帰するか、別の関数が呼び出される まで追加されません。これがわかるのは、関数内にステップ実行される場合だ けです。 図 160: [ プロファイリング ] ウィンドウ 注 : Profiling プラグインモジュールは、[ オプション ] ダイアログボックスの 「デ [ バッガ」]>[ プロファイリング ] ページで有効にすることができます。 一部の C-SPY ドライバは、プロファイリングをサポートしていません。使用 する C-SPY ドライバがプロファイリングをサポートしているかどうかについ ては、[ ヘルプ ] メニュー. から表示できるオンラインヘルプシステムのドライ バ関連ドキュメントを参照してください。C-SPY シミュレータは、プロファイ リングをサポートしています。 プロファイリングのコマンド ツールバーのボタンで実行可能なコマンド以外に、[ プロファイリング ] ウィ ンドウのコンテキストメニューから、これらのコマンドやいくつかの追加コマ ンドを実行することができます。 図 161: [ プロファイリング ] ウィンドウのコンテキストメニュー IAR Embedded Workbench® IDE 286 ユーザガイド C-SPY® デバッガリファレンス コンテキストメニューに表示されるコマンドは、以下のとおりです。 有効 実行時のプロファイリングの有効 / 無効を切り替えます。 新しい測定 新しい測定を開始します。ボタンをクリックすると、表示値がゼ ロにリセットされます。 グラフ [ フラット時間 ]、[ 累積時間 ] の割合を棒グラフなどのグラフや 数値で表示します。 詳細を表示 リストで選択した関数の詳細を表示します。選択した関数の呼出 し元と呼出し先の情報を示すウィンドウが表示されます。 更新 プロファイリング情報を更新し、ウィンドウを再描画します。 自動更新 プロファイリング情報の自動更新の有効 / 無効を切り替えます。有 効にした場合は、ブレークポイント、ステップポイント、プログ ラム終了で C-SPY が停止したときに、プロファイリング情報が自 動的に更新されます。 S 名前を付けて保存 現在のプロファイリング情報をテキストファイルに保存します。 [ プロファイリング ] ウィンドウの列 [ プロファイリング ] ウィンドウに表示される列は、以下のとおりです。 列 説明 関数 関数名 呼出し 関数の呼出し回数 フラット時間 サイクル数や合計時間に占める割合で示す、各関数に使用された 時間 ( その関数から実行されたすべての関数呼出しを除く ) 累積時間 サイクル数や合計時間に占める割合で示す、各関数に使用された 時間 ( その関数から実行されたすべての関数呼出しを含む ) 表 74: [ プロファイリング ] ウィンドウの列 リストには、[Outside main] という項目が常に表示されています。これは、リ スト内のどの関数にも該当しない時間を示します。つまり、デバッグ情報 ( 開 始 / 終了コード、C/C++ ライブラリコードなど ) なしでコンパイルされたコー ドを示します。 [ スタック ] ウィンドウ [ スタック ] ウィンドウは、スタックの内容を表示するメモリウィンドウです。 また、スタックの整合性チェックを実行し、スタックオーバフローを検出して ワーニングすることもできます。たとえば、[ スタック ] ウィンドウを使用し て、スタックの最適サイズを特定できます。 パート 6: リファレンス情報 287 C-SPY のウィンドウ [ スタック ] ウィンドウを開く前に、有効にする必要があります。[ プロジェク ト ]>[ オプション ]> [ デバッガ ]>[ プラグイン ] を選択した後、プラグインのリ ストから [ スタック ] を選択します。C-SPY では、[ 表示 ]>[ スタック ] を選択 して、[ スタック ] ウィンドウを表示することができます。複数の [ スタック ] ウィンドウを表示し、それぞれ異なるスタックを表示する ( スタックが複数ある 場合 ) か、同一のスタックを異なる表示設定で、表示することができます。 図 162: [ スタック ] ウィンドウ スタックドロップダウンメニュー 使用するマイクロコントローラに複数のスタックがある場合は、ウィンドウ上 部にあるスタックドロップダウンメニューを使用して、表示するスタックを選 択することができます。 スタックバー ウィンドウの最上部に表示されているスタックバーは、スタックの状態をグラ フィカルに表します。スタックバーを表示するには、有効になっていることを 確認する必要があります。[ツール]>[オプション]>[スタック]を選択した後、オ プション [ グラフィカルスタック表示とスタック使用トラッキングを有効にす る]を選択します。 スタックバーの左端はスタックの底、つまりスタックが空白のときのスタック ポインタの位置を示します。右端は、スタック用に予約されているメモリエリ アの最後を示します。緑色の線は、スタックポインタの現在の値を示します。 実行中に使用されていたスタックメモリの部分は濃い灰色で、未使用部分は淡 い灰色でそれぞれ表示されます。スタック使用率が指定のしきい値を超える と、スタックバーは赤色に変化します。 IAR Embedded Workbench® IDE 288 ユーザガイド C-SPY® デバッガリファレンス アプリケーションを最初にロードするときや、リセットごとに、スタックエリア のメモリに 0xCD というバイト値が設定され、その後でアプリケーションの実行 が開始されます。実行が停止すると、スタックの最後から、値が 0xCD でないバ イトの位置 ( スタック中で使用された最も上の位置 ) までの範囲のスタックメモ リが検索されます。これはスタック使用率のトレース方法としては信頼性の高い 方法ですが、スタックオーバフローが検出されるという保証はありません。たと えば、スタックが範囲を超えて誤って拡張され、スタック上限近辺のバイトは変 更されることなく、スタック範囲外のメモリが変更される可能性があります。同 様に、アプリケーションがスタック範囲内のメモリを誤って修正する可能性もあ ります。さらに、[ スタック ] ウィンドウで検出できるのはスタックオーバフロー の痕跡だけで、スタックオーバフローを発生時点で検出することはできません。 注 : スタックのサイズと場所は、リンカのコマンドファイル中のスタックを保 持するセグメントの定義 ( 通常は CSTACK) から取得します。何らかの理由で、 システム起動コード (cstartup) によるスタック初期化を変更する必要がある 場合は、その変更に応じて、リンカのコマンドファイルでのセグメント定義も 変更する必要があります。これを行わないと、[ スタック ] ウィンドウでスタッ ク使用率を追跡できません。この詳細については、『IAR C/C++ コンパイラリ ファレンスガイド』を参照してください。 スタックバーを有効にすると、スタックオーバフローの検出とワーニングに必 要な機能も有効になります。248 ページの「[ スタック ] オプション」を参照し てください。 [ スタック ] ウィンドウの列 ウィンドウの主要部分には、スタックメモリの内容を示す以下の列が表示され ます。 列 説明 位置 メモリでの位置を示します。アドレスは小さい方から順に表示さ れます。したがって、スタックが高位アドレス方向に拡張される ターゲットシステムの場合は、スタックの最上部がウィンドウの 最下部に表示されます。スタックポインタが参照するアドレス、つ まりスタック最上部は、緑色で強調表示されます。 データ その位置のメモリユニットの内容を表示します。[ スタック ] ウィ ンドウのコンテキストメニューで、データの表示方法 (1 バイト、2 バイト、4 バイトのいずれかの単位 ) を選択できます。 変数 その位置にローカル変数がある場合に、その変数名を表示します。 変数は、関数内でローカルに宣言されていて、レジスタではなく スタックにある場合にだけ表示されます。 値 [ 変数 ] 列に表示されている変数の値を示します。 フレーム 呼出しフレームが対応する関数の名前を示します。 表 75: [ スタック ] ウィンドウの列 パート 6: リファレンス情報 289 C-SPY のメニュー [ スタック ] ウィンドウのコンテキストメニュー [ スタック ] ウィンドウで右クリックすると、次のコンテキストメニューが表 示されます。 図 163: [ スタック ] ウィンドウのコンテキストメニュー コンテキストメニューから実行できるコマンドは、以下のとおりです。 変数を表示 [ スタック ] ウィンドウには、[ 変数 ]、[ 値 ]、[ フレーム ] の各列が表示されます。[ スタック ] ウィンドウで表示される メモリ位置にある変数が、これらの列に表示されます。 オフセットを表示 このオプションを選択すると、[ 位置 ] 列に位置がスタックポ インタからのオフセットとして表示されます。選択を解除す ると、位置は絶対アドレスとして表示されます。 1x Bytes [ データ ] 列のデータを 1 バイト単位で表示します。 2x Bytes [ データ ] 列のデータを 2 バイト単位で表示します。 4x Bytes [ データ ] 列のデータを 4 バイト単位で表示します。 オプション [IDE オプション ] ダイアログボックスを表示します。このダ イアログボックスで、[ スタック ] ウィンドウ専用オプション を設定できます。248 ページの「[ スタック ] オプション」を 参照してください。 C-SPY のメニュー 開発環境で使用可能なメニューに加えて、C-SPY の実行中は [ デバッグ ] メ ニューが使用可能になります。 使用する C-SPY ドライバによって、他のメニューも使用可能な場合がありま す。ドライバ専用メニューについては、[ ヘルプ ] メニューから表示できるオ ンラインヘルプシステムのドライバ関連ドキュメントを参照してください。 IAR Embedded Workbench® IDE 290 ユーザガイド C-SPY® デバッガリファレンス [ デバッグ ] メニュー [ デバッグ ] メニューには、アプリケーションの実行 / デバッグ用コマンドが表 示されます。ほとんどのコマンドは、ツールバーのボタンからも実行できます。 図 164: [ デバッグ ] メニュー メニューコマンド 実行 説明 F5 現在の文 / 命令から、ブレークポイントかプログラム終了までコー ドを実行します。 ブレーク アプリケーション実行を停止します。 リセット ターゲットプロセッサをリセットします。 デバッグの停止 デバッグセッションを停止し、プロジェクトマネージャに戻ります。 ステップオーバF10 C/C++ 関数やアセンブラサブルーチンに入らずに次の文 / 命令を実 行します。 ステップイン C/C++ 関数やアセンブラサブルーチンに入って次の文 / 命令を実行 します。 ステップアウト SHIFT+F11 F11 現在の文から、現在の関数の呼出し後の文までを実行します。 次のステートメント 関数内に入って出るまでをステップ実行すると不必要に遅い場合 は、このコマンドを使用して次の文に直接移動します。 カーソル位置まで実 現在の文 / 命令から、選択した文 / 命令までコードを実行します。 行 表 76: [ デバッグ ] メニューのコマンド パート 6: リファレンス情報 291 C-SPY のメニュー メニューコマンド 説明 自動ステップ [ 自動ステップの設定 ] ダイアログボックスを表示します。ここ で、自動ステップ実行の設定と開始を行うことができます。 更新 [ メモリ ]、[ レジスタ ]、[ ウォッチ ]、[ ローカル ] の各ウィンド ウの内容を更新します。 カーソルの位置に PC プログラムカウンタをカーソル位置に直接移動します。ソース を設定 コードは実行しません。ただし、プログラムフローに異常が生じ、 予期しない効果が発生することがあります。 メモリ > 保存 [ メモリ保存 ] ダイアログボックスを表示して、指定メモリエリア の内容をファイルに保存できます。269 ページの「[ フィル ] ダイア ログボックス」を参照してください。 メモリ > 復元 [ メモリ復元 ] ダイアログボックスを表示して、Intel-extended や Motorola S-record のフォーマットのファイルの内容を指定したメ モリゾーンにロードできます。269 ページの「[ フィル ] ダイアロ グボックス」を参照してください。 マクロ [ マクロ設定 ] ダイアログボックスを表示します。ここで、マクロ ファイルや関数の表示、登録、編集を行うことができます。 ログ > ログファイル C-SPY の入出力ログをファイルに保存するためのダイアログボッ の設定 クスを表示します。ログファイルの種類と場所を選択できます。エ ラー、ワーニング、システム情報、ユーザメッセージのいずれか またはすべてを、選択してログに保存できます。 ログ > ターミナル I/OC-SPY のターミナル I/O ログをファイルに保存するためのダイアロ ログファイルの設定 グボックスを表示します。ログファイルの場所を選択できます。 表 76: [ デバッグ ] メニューのコマンド ( 続き ) [ 自動ステップの設定 ] ダイアログボックス [ 自動ステップの設定 ] ダイアログボックス ([ デバッグ ] メニューから表示 ) で、自動ステップ実行をカスタマイズすることができます。 図 165: [ 自動ステップの設定 ] ダイアログボックス ドロップダウンメニューに、使用可能なステップコマンドが表示されます。 [ 遅延 ] テキストボックスを使用して、ステップ間の遅延を指定できます。 IAR Embedded Workbench® IDE 292 ユーザガイド C-SPY® デバッガリファレンス [ マクロ設定 ] ダイアログボックス [ マクロ設定 ] ダイアログボックス ([ デバッグ ]>[ マクロ ] を選択して表示 ) で、 マクロファイルや関数の表示、登録、編集を行うことができます。 ダイアログボックスを使用して登録したマクロ関数は、デバッグセッションを 終了すると無効になり、次のデバッグセッションでは自動登録されません。 図 166: [ マクロ設定 ] ダイアログボックス マクロファイルの登録 登録するマクロファイルをファイル選択リストで選択し、[ 追加 ] か [ すべて 追加 ] をクリックして [ 選択したマクロファイル ] のリストに追加します。逆 に、[ 選択したマクロファイル ] リストからファイルを削除するには、[ 削除 ] か [ すべて削除 ] を使用します。 使用するマクロファイルを選択したら、[ レジスタ ] をクリックして登録し、以 前に定義したマクロ関数や変数と置き換えます。登録したマクロ関数は、[ 登 録マクロ ] のスクロールリストに表示されます。システムマクロは常に登録さ れていて、リストから削除することはできません。 パート 6: リファレンス情報 293 C-SPY のメニュー マクロ関数の表示 [ すべて ] を選択すると、すべてのマクロ関数が表示されます。[ ユーザ ] を選 択すると、すべてのユーザ定義マクロが表示されます。[ システム ] を選択す ると、すべてのシステムマクロが表示されます。 [ 登録マクロ ] にある [ 名前 ] か [ ファイル ] をクリックすると、列の内容がマ クロ名かファイル名を基準にしてソートされます。もう一度クリックすると、 逆順でソートされます。 マクロファイルの修正 ユーザ定義マクロ関数を [ 名前 ] 列でダブルクリックすると、その関数が定義 されているファイルが自動的に表示され、必要に応じて修正を行うことができ ます。 [ ログファイル ] ダイアログボックス [ ログファイル ] ダイアログボックス ([ デバッグ ]>[ ログ ]>[ ログファイルの設 定]を選択して表示)で、 C-SPYの出力ログをファイルに保存することができます。 図 167: [ ログファイル ] ダイアログボックス ファイルへのログ保存を有効 / 無効にするには、[ ログファイルを有効にする ] チェックボックスを使用します。 ファイルに出力される情報は、デフォルトでは [ ログ ] ウィンドウに表示され る内容と同一です。出力内容を変更するには、[ インクルード ] オプションを 使用します。 オプション 説明 エラー C-SPY が処理の実行に失敗したことを示します。 ワーニング エラーの可能性があることを示します。 情報 C-SPY が実行したアクションの進行状況を示します。 表 77: ログファイルのオプション IAR Embedded Workbench® IDE 294 ユーザガイド C-SPY® デバッガリファレンス オプション 説明 ユーザ C-SPY マクロからの出力、つまり__message 文を使用した出力を 示します。 表 77: ログファイルのオプション ( 続き ) デフォルト設定以外のファイルタイプや場所を指定するには、参照ボタンをク リックします。指定したファイルを選択するには、[ 保存 ] をクリックします。 デフォルトのファイル拡張子は log です。 [ ターミナル I/O ログファイル ] ダイアログボックス [ ターミナル I/O ログファイル ] ダイアログボックス ([ デバッグ ]>[ ログ ] を選 択して表示 ) では、出力先ログファイルを選択し、C-SPY のターミナル I/O ロ グをそのファイルに保存することができます。 図 168: [ ターミナル I/O ログファイル ] ダイアログボックス 参照ボタンをクリックすると、標準の [ 名前を付けて保存 ] ダイアログボック スが表示されます。指定したファイルを選択するには、[ 保存 ] をクリックし ます。デフォルトのファイル拡張子は log です。 パート 6: リファレンス情報 295 C-SPY のメニュー IAR Embedded Workbench® IDE 296 ユーザガイド 一般オプション この章では、IAR Embedded Workbench® IDE の一般オプションについ て説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 ターゲット [ ターゲット ] オプションについては、[ ヘルプ ] メニューから表示できるオン ラインヘルプシステムを参照してください。 [ 出力 ] [出力]オプションを使用して、出力ファイルのタイプ([実行可能ファイル]、[ラ イブラリ])を指定できます。また、実行可能ファイル、オブジェクトファイル、 リストファイルの保存先も指定できます。 図 169: [ 出力 ] オプション パート 6: リファレンス情報 297 [ 出力 ] 出力ファイル名 出力ファイルのタイプを指定します。以下から選択します。 実行可能ファイル ビルドプロセスの結果、XLINK リンカがアプリケーション ( 実行可能 ( デフォルト ) 出力ファイル ) を作成します。このオプションを選択した場合は、リ ンカのオプションを [ オプション ] ダイアログボックスで設定できま す。出力を作成する前に、該当するリンカオプションを設定する必要 があります。 ライブラリ ビルドプロセスの結果、XAR ライブラリビルダがライブラリ出力ファ イルを作成します。このオプションを選択した場合は、XAR ライブラ リビルダオプションを [ オプション ] ダイアログボックスで設定でき、 [ リンカ ] は、カテゴリリストから削除されます。ライブラリを作成 する前に、XAR のオプションを設定する必要があります。 出力ディレクトリ 出力先ディレクトリのパスを指定します。プロジェクトディレクトリとの相対 パスを指定します。以下の出力先ディレクトリのパスを指定できます。 実行可能ファイル / ラ デフォルト以外の実行可能ファイルかライブラリファイル用 イブラリ ディレクトリを指定する場合に使用します。プロジェクトの実行 可能ファイルを保存するディレクトリの名前を入力します。 オブジェクトファイル デフォルト以外のオブジェクトファイル用ディレクトリを指定 する場合に使用します。プロジェクトのオブジェクトファイルを 保存するディレクトリの名前を入力します。 リストファイル IAR Embedded Workbench® IDE 298 ユーザガイド デフォルト以外のリストファイル用ディレクトリを指定する場 合に使用します。プロジェクトのリストファイルを保存するディ レクトリの名前を入力します。 一般オプション ライブラリ設定 [ライブラリ設定]オプションを使用して、使用するライブラリを指定できます。 図 170: [ ライブラリ設定 ] オプション ランタイムライブラリ、ライブラリ構成、これらが提供するランタイム環境、 『IAR C/C++ コンパイラリファレンスガイド』 可能なカスタマイズについては、 を参照してください。 ライブラリ [ ライブラリ ] ドロップダウンリストで、使用するランタイムライブラリを選 択します。使用可能なライブラリについては、『IAR C/C++ コンパイラリファ レンスガイド』を参照してください。 実際に使用されるライブラリオブジェクトファイルとライブラリ設定ファイルは、 それぞれ [ ライブラリファイル ]/[ 設定ファイル ] のテキストボックスに表示さ れます。 ライブラリファイル [ ライブラリファイル ] テキストボックスに、使用するライブラリオブジェクト ファイルが表示されます。ライブラリオブジェクトファイルは、設定に応じて自 『IAR C/C++ コンパイラリファレンスガイド』を参照して 動的に選択されます。 ください。 [Custom] ライブラリ を [ ライブラリ ] ドロップダウンリストで選択した場合 は、ライブラリオブジェクトファイルをユーザが指定する必要があります。 設定ファイル [ 設定ファイル ] テキストボックスには、使用されるライブラリ設定ファイル が表示されます。ライブラリ設定ファイルは、プロジェクトの設定に応じて自 動的に選択されます。[Custom DLIB] を [ ライブラリ ] ドロップダウンリストで 選択した場合は、ライブラリ設定ファイルをユーザが指定する必要がありま す。 パート 6: リファレンス情報 299 ライブラリオプション 注 : ライブラリ設定ファイルは DLIB ライブラリだけに必要ですが、 一部のバー ジョンの製品は DLIB ライブラリをサポートしていません。 ライブラリオプション [ ライブラリオプション ] ページのオプションを使用して、 printf および scanf のフォーマッタを選択できます。 図 171: [ ライブラリオプション ] ページ フォーマット機能の詳細については、『IAR C/C++ コンパイラリファレンスガ イド』を参照してください。 PRINTF フォーマッタ フルフォーマッタバージョンはメモリ消費量が多く、多くの組込みアプリケー ションで不要な機能を提供しています。メモリ消費量を削減するため、別バー ジョンも提供されています。 使用可能な printf フォーマッタの詳細については、『IAR C/C++ コンパイラ リファレンスガイド』を参照してください。 SCANF フォーマッタ フルフォーマッタバージョンはメモリ消費量が多く、多くの組込みアプリケー ションで不要な機能を提供しています。メモリ消費量を削減するため、別バー ジョンも提供されています。 使用可能な scanf フォーマッタについては、『IAR C/C++ コンパイラリファレ ンスガイド』を参照してください。 IAR Embedded Workbench® IDE 300 ユーザガイド 一般オプション ヒープ / スタック [ ヒープ / スタック ] ページのオプションを使用して、ヒープサイズとスタック サイズをカスタマイズできます。詳細については、[ ヘルプ ] メニューから表 示できるオンラインヘルプシステムを参照してください。 パート 6: リファレンス情報 301 ヒープ / スタック IAR Embedded Workbench® IDE 302 ユーザガイド コンパイラオプション この章では、IAR Embedded Workbench® IDE のコンパイラオプション について説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 言語 [ 言語 ] オプションを使用して、C 言語または C/C++ 言語へのターゲット依存 の拡張を使用できます。 図 172: コンパイラの言語オプション 言語 [言語]オプションを使用して、必要な言語サポートを指定することができます。 Embedded C++ と拡張 Embedded C++ の詳細については、 『IAR C/C++ コンパイ ラリファレンスガイド』を参照してください。( 一部のバージョンの製品は C++ をサポートしていませんので、注意してください。) C デフォルトでは、CPUNAME IAR C/C++ コンパイラは ISO/ANSI C モードで動 作します。このモードでは、Embedded C++ および拡張 Embedded C++ 固有の 機能は使用できません。 パート 6: リファレンス情報 303 言語 Embedded C++ Embedded C++ モードでは、コンパイラはソースコードを Embedded C++ とし て処理します。つまり、クラスやオーバロードといった Embedded C++ 固有の 機能を使用できます。 Embedded C++ では、DLIB ライブラリ (C/C++ ライブラリ ) を使用する必要が あります。 拡張 Embedded C++ 拡張 Embedded C++ モードでは、名前空間や標準テンプレートライブラリと いった機能をソースコードで利用できます。 拡張 Embedded C++ では、DLIB ライブラリ (C/C++ ライブラリ ) を使用する必 要があります。 自動 [ 自動 ] を選択した場合は、コンパイルするファイルのファイル名拡張子に応 じて、言語サポートが自動的に決定されます。 ● ● 拡張子が c のファイルは、C ソースファイルとしてコンパイルされます。 拡張子がcppのファイルは、拡張Embedded C++ソースファイルとしてコンパ イルされます。 このオプションを指定するには、DLIB ライブラリ (C/C++ ライブラリ ) を使用 する必要があります。 注 : 一部のバージョンの製品は C++ をサポートしていません。C++ をサポート していない製品の場合は、[ 言語 ] オプションは使用できません。 プロトタイプの強制 すべての関数が正しいプロトタイプを持つかどうかをコンパイラで強制的に 検証します。このオプションを使用すると、以下のいずれかが含まれるコード ではエラーが発生します。 ● ● ● 宣言のない関数、Kernighan & Ritchie C 形式で宣言された関数呼出し 先にプロトタイプが宣言されていない public 関数の関数定義 プロトタイプを含まない型の関数ポインタによる間接的な関数呼出し 言語の適合 CPUNAME IARC/C++ コンパイラで、ターゲット固有のキーワードを標準 C/C++ 言語の拡張として使用可能にするには、言語拡張を有効にする必要があ ります。IAR Embedded Workbench IDE では、デフォルトで [IAR 拡張の許可 ] が有効になっています。 IAR Embedded Workbench® IDE 304 ユーザガイド コンパイラオプション [ISO/ANSI に緩く準拠 ] オプションは、 IAR の拡張を無効にしますが、ISO/ANSI に厳密には準拠していません。 [ISO/ANSI に厳密に準拠 ] オプションを選択すると、ISO/ANSI C に厳密に準拠 します。 言語拡張の詳細については、 『IAR C/C++ コンパイラリファレンスガイド』を参 照してください。 'CHAR' の型 通常は、コンパイラは char 型を unsigned char として解釈します。このオプ ションを使用すると、char 型が signed char として解釈されます。これは、他 のコンパイラとの互換性確保などの目的で使用します。 注 : ランタイムライブラリは、符号なしの単純な文字型を使用してコンパイルさ れています。[ 符号付き ] ラジオボタンを選択すると、ライブラリでは unsigned char が使用されているため、 型の不一致のワーニングが発生することがあります。 マルチバイト文字サポートを有効にする デフォルトでは、マルチバイト文字を C や Embedded C++ のソースコードで使 用することはできません。このオプションを有効にすると、ソースコード内の マルチバイト文字は、ホストコンピュータのデフォルトのマルチバイト文字サ ポート設定に従って解釈されます。 マルチバイト文字は、C/C++ 形式のコメント、文字列定数、文字定数で使用で きます。これらはそのまま生成コードに移動します。 IAR 移行プリプロセッサ拡張を有効にする IAR migration preprocessor extensions は、以前の IAR コンパイラからの移行を容 易にするためのプリプロセッサ拡張です。以前の IAR C/C++ コンパイラから コードを移行する必要がある場合は、このオプションを使用します。製品のイ ンストール内容によっては、このオプションは使用できない場合があります。 注 : このオプションを使用すると、規格に準拠していないコードがコンパイラ で許可されるだけでなく、規格に準拠している一部のコードが拒否されること があります。 重要 ! 新しく記述するコードでは、これらの拡張を使用しないでください。こ れらの拡張は、将来サポートされなくなる可能性があります。 パート 6: リファレンス情報 305 コード コード [ コード ] ページのオプションを使用して、コード生成をカスタマイズできま す。詳細については、[ ヘルプ ] メニューから表示できるオンラインヘルプシ ステムを参照してください。製品のインストール内容によっては、このページ は使用できない場合があります。 最適化 [ 最適化 ] オプションは、オブジェクトコード生成の最適化の種類とレベルを 設定します。 図 173: コンパイラ最適化オプション 最適化 サイズ / 速度、レベル CPUNAME IAR C/C++ コンパイラは、サイズと速度の 2 つの最適化モデルを、 複数の最適化レベルでサポートしています。 [ サイズ ] や [ 速度 ] のラジオボタンを使用して、最適化モデルを選択します。 ラジオボタンの横にあるドロップダウンリストで、最適化レベル ([None]、 [Low]、[Medium]、[High]) を選択します。 デフォルトでは、デバッグプロジェクトのサイズ最適化は完全なデバッグが可 能なレベルに設定されます。一方で、リリースプロジェクトでは、最小限の コードが生成されるレベルに設定されます。 各最適化レベルで実行される最適化リストについては、『IAR C/C++ コンパイ ラリファレンスガイド』を参照してください。 IAR Embedded Workbench® IDE 306 ユーザガイド コンパイラオプション 使用可能な変化 最適化で使用可能な変換は、以下のとおりです。 ● ● ● ● ● Common subexpression elimination Loop unrolling Function inlining Code motion Type-based alias analysis 製品のインストール内容によっては、他の変換も使用可能な場合があります。 変換が使用可能な場合、チェックボックスを使用して、各変換を有効か無効に することができます。 デバッグプロジェクトでは、デフォルトでは変換が無効になっています。リ リースプロジェクトでは、デフォルトでは変換が有効になっています。 個別に無効にできる変換の説明は、『IAR C/C++ コンパイラリファレンスガイ ド』を参照してください。 [ 出力 ] [ 出力 ] オプションでは、コンパイルしたファイルの出力フォーマットおよび オブジェクトコードのデバッグ情報のレベルを設定します。 図 174: コンパイラの出力オプション パート 6: リファレンス情報 307 [ 出力 ] モジュールタイプ デフォルトでは、コンパイラはプログラムモジュールを生成します。このオプ ションは、アプリケーションで参照される場合にだけインクルードされるライ ブラリモジュールを作成する場合に使用します。[ デフォルトのオーバライド ] チェックボックスを選択し、以下のいずれかを指定します。 プログラムモジュール オブジェクトファイルを、ライブラリモジュールではなく プログラムモジュールとして処理します。 ライブラリモジュール オブジェクトファイルを、プログラムモジュールではなく ライブラリモジュールとして処理します。 プログラム / ライブラリモジュールおよびライブラリの使用方法については、 [ ヘルプ ] メニューから表示できる『IAR リンカおよびライブラリツールリファ レンスガイド』の XLIB、XAR の章を参照してください。 オブジェクトモジュール名 通常は、オブジェクトモジュールの内部名は、ディレクトリ名や拡張子を除い たソースファイル名です。このオプションは、オブジェクトモジュール名を明 示的に設定する場合に使用します。 [ オブジェクトモジュール名 ] チェックボックスを選択し、入力フィールドに 名前を入力します。 ソースファイルがプリプロセッサの生成した一時ファイルである場合など、複 数のモジュールのファイル名が同一の場合、モジュール名の重複によりリンカ エラーが発生します。このオプションは、このような場合に特に便利です。 デバッグ情報の生成 このオプションは、C-SPY® や他のシンボリックデバッガで必要なオブジェク トモジュールに追加情報を含めるようにコンパイラを設定します。 [ デバッグ情報の生成 ] オプションは、デフォルトでは選択されています。コ ンパイラでデバッグ情報を生成しないように設定する場合は、このオプション の選択を解除します。 注 : デバッグ情報を含めると、オブジェクトファイルのサイズが増加します。 IAR Embedded Workbench® IDE 308 ユーザガイド コンパイラオプション リスト [ リスト ] オプションは、リストファイルを生成するかどうかと、リストファ イルに含める情報を設定します。 図 175: コンパイラのリストファイルオプション 通常は、コンパイラはリストファイルを生成しません。リストファイルかアセ ンブラファイルを生成する場合は、以下のオプションを選択します。リスト ファイルは、List ディレクトリに保存されます。ファイル名は、ソースファ イル名に拡張子 lst を付けて設定されます。[ ワークスペース ] ウィンドウの [ 出力 ] フォルダから出力ファイルを直接開くことができます。 リストファイルの出力 [ リストファイルの出力 ] オプションを選択し、リストファイルに含める情報 の種類を選択します。 アセンブラニーモニック アセンブラニーモニックをリストファイルに含めます。 診断 診断情報をリストファイルに含めます。 アセンブラファイルの出力 [ アセンブラファイルの出力 ] オプションを選択し、リストファイルに含める 情報の種類を選択します。 ソースのインクルード ソースコードをアセンブラファイルに含めます。 呼出しフレーム情報の インクルード コンパイラが生成したランタイムモデル属性情報、呼 出しフレーム情報、フレームサイズ情報を含めます。 パート 6: リファレンス情報 309 プリプロセッサ プリプロセッサ [ プリプロセッサ ] オプションを使用して、コンパイラで使用するシンボルお よびインクルードパスを定義できます。 図 176: コンパイラのプリプロセッサオプション 標準のインクルードディレクトリを無視 このオプションを選択すると、プロジェクトのビルド時に標準のインクルード ファイルが使用されません。 追加インクルードディレクトリ [ 追加インクルードディレクトリ ] オプションは、#include ファイルパスのリ ストにパスを追加する場合に使用します。製品で必要なパスは、選択したラン タイムライブラリに応じて、デフォルトで指定されています。 #include ファイルのフルパスを入力します。 注 : このオプションを使用して指定した追加ディレクトリは、標準のインク ルードディレクトリの前に検索されます。 プロジェクトの移植性を向上するには、アクティブな製品のサブディレクトリ 現在のプロジェクトのディレクトリに $PROJ_DIR$ に引数変数 $TOOLKIT_DIR$、 を使用します。引数変数の概要については、226 ページの「引数変数のまとめ」 を参照してください。 プリインクルードファイル 指定したインクルードファイルをインクルードしてからソースファイルのリー ドを開始します。アプリケーション全体のソースコードで、新しいシンボルを 定義するなどの変更を行う場合に使用します。 IAR Embedded Workbench® IDE 310 ユーザガイド コンパイラオプション 定義済みシンボル [ 定義済みシンボル ] オプションでは、通常はソースファイルで指定する値や 選択を指定できます。 プロジェクトで定義するシンボルを入力します。次に例を示します。 TESTVER=1 等号の前後に空白文字を挿入しないでください。 [ 定義済みシンボル ] オプションは、ソースファイルの最初に #define 文を記 述した場合と同様に機能します。 たとえば、シンボル TESTVER が定義されているかどうかに応じてアプリケー ションのテストバージョンと製品バージョンのいずれかを生成するように、 ソースコードを記述するとします。この場合、以下のようなセクションを記述 します。 #ifdef TESTVER ... ; additional code lines for test version only #endif このとき、シンボル TESTVER は、デバッグターゲットでは定義し、リリースター ゲットでは定義しません。 ファイルへのプリプロセッサ出力 デフォルトでは、コンパイラはプリプロセッサ出力を生成しません。 プリプロセッサ出力を生成する場合は、 [ ファイルへのプリプロセッサ出力 ] を 選択します。また、コメントの保持、#line ディレクティブの生成も選択でき ます。 診断 [ 診断 ] オプションは、診断の分類 / 表示方法を設定します。デフォルト以外の 分類を指定する場合に使用します。 パート 6: リファレンス情報 311 診断 注 : 致命的なエラーの表示を無効にする、あるいは致命的なエラーの分類を変 更することはできません。 図 177: コンパイラの診断オプション リマークを有効化 最も軽度の診断メッセージを、リマークと呼びます。リマークは、ソースコード 中で、生成したコードで異常な動作の原因となる可能性がある部分を示します。 デフォルトでは、リマークは出力されません。コンパイラでリマークを生成す る場合は、[ リマークを有効化 ] オプションを選択します。 診断を無効化 指定したタグの診断の出力を無効にします。 たとえば、Pe117 および Pe177 のワーニングを無効にするには、次のように入 力します。 Pe117,Pe177 リマークとして処理 リマークは、最も軽度の診断メッセージです。リマークは、ソースコード中 で、生成したコードで異常な動作の原因となる可能性がある部分を示します。 このオプションは、診断をリマークとして分類する場合に使用します。 たとえば、Pe117 のワーニングをリマークとして分類するには、次のように入 力します。 Pe177 IAR Embedded Workbench® IDE 312 ユーザガイド コンパイラオプション ワーニングとして処理 ワーニング は、問題はあるが、コンパイルの途中終了の原因にはならないエ ラーや脱落を示します。このオプションは、診断メッセージをワーニングとし て分類する場合に使用します。 たとえば、Pe826 のリマークをワーニングとして分類するには、次のように入 力します。 Pe826 エラーとして処理 エラーは、C/C++ 言語の規則違反のうち、オブジェクトコードが生成されず、 終了コードがゼロ以外になるものを示します。このオプションは、診断メッ セージをエラーとして分類する場合に使用します。 たとえば、Pe117 のワーニングをエラーとして分類するには、次のように入力 します。 Pe117 すべてのワーニングをエラーとして処理 このオプションは、コンパイラでワーニングをエラーとして処理する場合に使 用します。コンパイラがエラーを検出した場合は、オブジェクトコードは生成 されません。 パート 6: リファレンス情報 313 追加オプション 追加オプション [ 追加オプション ] ページは、コンパイラへのコマンドラインインタフェース を提供します。 図 178: コンパイラ用の [ 追加オプション ] ページ コマンドラインオプションの使用 コンパイラに (GUI では指定できない ) コマンドライン引数を追加指定すること ができます。 IAR Embedded Workbench® IDE 314 ユーザガイド アセンブラオプション この章では、IAR Embedded Workbench® IDE で使用できるアセンブラ オプションについて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 言語 [ 言語 ] オプションは、アセンブラのコード生成を制御します。 注 : 使用する製品バージョンによっては、ここで説明するオプションのいくつ かは使用できない場合があります。 ユーザシンボルで大文字と小文字を区別する デフォルトでは、大文字と小文字が区別されます。つまり、LABEL と label は 異なるシンボルを示します。[ ユーザシンボルで大文字と小文字を区別する ] の選択を解除し、大文字と小文字の区別を無効にすることができます。この場 合は、LABEL と label は同一のシンボルを示します。 マルチバイト文字サポートを有効にする デフォルトでは、マルチバイト文字をアセンブラのソースコードで使用するこ とはできません。このオプションを有効にすると、ソースコード内のマルチバ イト文字は、ホストコンピュータのデフォルトのマルチバイト文字サポート設 定に従って解釈されます。 マルチバイト文字は、コメント、文字列定数、文字定数で使用できます。これ らはそのまま生成コードに移動します。 第 1 カラムでニーモニックの許可 デフォルトでは、アセンブラは最初の列で開始するすべての識別子をラベルと して処理します。 このオプションは、最初の列で開始するニーモニック名 ( 最後のコロンを除く ) をニーモニックとして認識させる場合に使用します。 第 1 カラムでディレクティブの許可 デフォルトでは、アセンブラは最初の列で開始するすべての識別子をラベルと して処理します。 このオプションは、最初の列で開始するディレクティブ名 ( 最後のコロンを除 く ) をディレクティブとして認識させる場合に使用します。 パート 6: リファレンス情報 315 マクロの引用符 [ マクロの引用符 ] オプションは、各マクロ引数の左右の引用符に使用する文 字を設定します。 デフォルトでは、< と > が使用されます。このオプションを使用して、他の表 記法に合せて引用符を変更する、あるいはマクロ引数に < や > を使用できるよ うにすることができます。 ドロップダウンリストで、4 種類の括弧から、マクロの引用符として使用する ものを選択します。 図 179: マクロの引用符の選択 [ 出力 ] [ 出力 ] オプションを使用して、IAR C-SPY® デバッガなどのデバッガで使用 する情報を生成することができます。 図 180: アセンブラの出力オプション デバッグ情報の生成 アプリケーションでデバッガを使用する場合は、[ デバッグ情報の生成 ] オプ ションを選択する必要があります。デフォルトでは、このオプションは、デ バッグプロジェクトでは選択されていて、リリースプロジェクトでは選択が解 除されています。 IAR Embedded Workbench® IDE 316 ユーザガイド アセンブラオプション リスト [ リスト ] オプションは、アセンブラによってリストファイルを生成して、リス トファイルの内容を選択するために使用します。各オプションの詳細について は、[ ヘルプ ] メニューから表示できるオンラインヘルプシステムを参照してく ださい。 プリプロセッサ [ プリプロセッサ ] オプションを使用して、アセンブラで使用するインクルー ドパスおよびシンボルを定義できます。 図 181: アセンブラのプリプロセッサオプション 標準のインクルードディレクトリを無視 このオプションを選択すると、プロジェクトのビルド時に標準のインクルード ファイルが使用されません。 追加インクルードディレクトリ [ 追加インクルードディレクトリ ] オプションは、#include ファイルパスのリ ストにパスを追加する場合に使用します。製品で必要なパスは、デフォルトで 指定されています。 アセンブラで #include ファイルを検索するディレクトリのフルパスを入力し ます。 プロジェクトの移植性を向上するには、アクティブな製品のサブディレクトリ 現在のプロジェクトのディレクトリに $PROJ_DIR$ に引数変数 $TOOLKIT_DIR$、 を使用します。引数変数の概要については、226 ページの表 46「引数変数」を 参照してください。 パート 6: リファレンス情報 317 #include ディレクティブについては、 『IAR アセンブラリファレンスガイド」を 参照してください。 注 : デフォルトでは、アセンブラは ACPUNAME_INC 環境変数で指定されたパス でも #include ファイルを検索します。ただし、IAR Embedded Workbench IDE で環境変数を使用することはお勧めしていません。 定義済みシンボル このオプションでは、通常はソースファイルで指定する必要がある値や選択を 指定できます。 定義するシンボルを、1 行に1つずつ入力します。 ● たとえば、シンボル TESTVER が定義されているかどうかに応じてアプリケー ションのテストバージョンと製品バージョンのいずれかを生成するよう に、ソースコードを記述するとします。この場合、以下のようなセクショ ンを記述します。 #ifdef TESTVER ... ; additional code lines for test version only #endif このとき、シンボル TESTVER は、デバッグターゲットでは定義し、リリー スターゲットでは定義しません。 ● また、頻繁に変更する必要のある変数 FRAMERATE をソースで使用するとしま す。この場合、ソースではこの変数を定義せず、このオプションを使用し てプロジェクトでの値を FRAMERATE=3 のように指定することができます。 ユーザ定義シンボルを削除するには、[定義済みシンボル]リストで選択し、Delete キーを押します。 ファイルへのプリプロセッサ出力 デフォルトでは、アセンブラはプリプロセッサ出力を生成しません。 プリプロセッサ出力を生成する場合は、 [ ファイルへのプリプロセッサ出力 ] を 選択します。また、コメントの保持、#line ディレクティブの生成も選択でき ます。 注 : 使用する製品バージョンによっては、このオプションは使用できない場合 があります。 診断 [ 診断 ] オプションを使用して、診断の分類方法と表示方法を決定します。デ フォルト以外の分類を指定する場合に使用します。 IAR Embedded Workbench® IDE 318 ユーザガイド アセンブラオプション 各オプションの詳細については、[ ヘルプ ] メニューから表示できるオンライ ンヘルプシステムを参照してください。 追加オプション [ 追加オプション ] ページは、アセンブラへのコマンドラインインタフェース を提供します。 図 182: アセンブラ用の [ 追加オプション ] ページ コマンドラインオプションの使用 アセンブラに (GUI では指定できない ) コマンドライン引数を追加指定するこ とができます。 パート 6: リファレンス情報 319 IAR Embedded Workbench® IDE 320 ユーザガイド カスタムビルドオプション この章では、IAR Embedded Workbench® IDE のカスタムビルドオプショ ンについて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 カスタムツール設定 IAR Embedded Workbench IDE でカスタムビルドオプションを設定するには、[ プ ロジェクト ]>[ オプション ] を選択し、[ オプション ] ダイアログボックスを表 示します。次に、[ カテゴリ ] リストで [ カスタムビルド ] を選択し、[ カスタム ツール設定 ] ページを表示します。 図 183: カスタムツールオプション [ ファイル名拡張子 ] テキストボックスには、このカスタムツールで処理する ファイルタイプのファイル名拡張子を指定します。複数の拡張子を入力できま す。区切り文字には、コンマ、セミコロン、空白文字を使用します。 [ コマンドライン ] テキストボックスには、外部ツールの実行用コマンドライ ンを入力します。 [ 出力ファイル ] テキストボックスには、外部ツールからの出力ファイルを指定し ます。 ビルド処理中に外部ツールで使用するファイルが他にある場合は、[ 追加入力 ファイル ] テキストボックスに追加します。これらの追加入力ファイル ( 依存 ファイル ) を修正した場合は、リビルドの必要性が検出されます。 たとえば、89 ページの「ツールチェーンの拡張」を参照してください。 パート 6: リファレンス情報 321 IAR Embedded Workbench® IDE 322 ユーザガイド ビルドアクションオプション この章では、IAR Embedded Workbench® IDE のビルド前とビルド後のア クション用オプションについて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 [ ビルドアクション設定 ] IAR Embedded Workbench IDE でビルド前とビルド後のアクション用オプションを 設定するには、[ プロジェクト ]>[ オプション ] を選択し、[ オプション ] ダイア ログボックスを表示します。次に、[ カテゴリ ] リストで [ ビルドアクション ] を選択し、[ ビルドアクション設定 ] ページを表示します。 これらのオプションは、ビルド構成全体に適用されます。グループやファイル 単位で設定することはできません。 図 184: ビルドアクションオプション プリビルドコマンドライン この参照ボタンを使用すると、簡単に拡張コマンドラインファイルを検出でき ます。構成が更新済みの場合は、コマンドは実行されません。 パート 6: リファレンス情報 323 ポストビルドコマンドライン この参照ボタンを使用すると操作しやすくなります。構成がすでに更新されて いた場合は、コマンドは実行されません。このオプションは、出力ファイルの コピーや後処理に便利です。 IAR Embedded Workbench® IDE 324 ユーザガイド リンカオプション この章では、IAR Embedded Workbench® IDE で使用できる XLINK オプ ションについて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 リンカのコマンドファイルでのセグメント定義に使用する XLINK コマ ンドラインオプションについては、『IAR リンカおよびライブラリツー ルリファレンスガイド』を参照してください。 [ 出力 ] [ 出力 ] オプションでは、出力ファイルのフォーマットおよび出力ファイルに 含めるデバッグ情報のレベルを設定します。 図 185: XLINK の出力ファイルのオプション 出力ファイル名 [ 出力ファイル ] を使用して、XLINK の出力ファイルの名前を指定します。名 前を指定していない場合は、プロジェクト名にファイル名拡張子を付けたもの が使用されます。ファイル名拡張子は、選択した出力フォーマットによって異 なります。[C-SPY のデバッグ情報 ] を選択した場合は、出力ファイルのファ イル名拡張子は dxx になります。 注 : 出力ファイルが 2 つ生成されるフォーマットを選択した場合は、指定した ファイルタイプは主要出力ファイル(最初のフォーマット)だけに適用されます。 パート 6: リファレンス情報 325 [ 出力 ] デフォルトのオーバライド デフォルト以外のファイル名拡張子を指定する場合は、このオプションを使用 します。 フォーマット 出力オプションは、IAR XLINK リンカが生成する出力ファイルのフォーマッ トを決定します。出力ファイルは、デバッガへの入力、ターゲットシステムの プログラミングでの入力として使用します。IAR システムズの専用出力フォー マットは、UBROF (Universal Binary Relocatable Object Format) と呼びます。 デフォルトの出力設定は、以下のとおりです。 ● ● デバッグプロジェクトでは、[C-SPY のデバッグ情報 ]、[ ランタイム管理モ ジュール付き ]、[I/O エミュレーションモジュール付き ] がデフォルトで選 択されています。 リリースプロジェクトでは、ターゲットへのダウンロードに適した出力フォー マットがデフォルトで選択されています。 注 : C-SPY® 以外のデバッガの場合は、使用するフォーマット / バリアントにつ いては、デバッガに付属のユーザドキュメントを参照してください。 C-SPY のデバッグ情報 このオプションは、IAR C-SPY デバッガで使用する UBROF 出力ファイルを、 dxx というファイル名拡張子で作成します。 ランタイム管理モジュール付き このオプションは、[C-SPY のデバッグ情報 ] オプションで生成される出力に 加えて、プログラムのアボート、終了、起動用のデバッガサポートも生成しま す。通常のライブラリ関数に対応する C-SPY 専用のバリアントが、アプリケー ションにリンクされます。デバッガのランタイムインタフェースの詳細につい 『IAR C/C++ コンパイラリファレンスガイド』を参照してください。 ては、 I/O エミュレーションモジュール付き このオプションは、[C-SPYのデバッグ情報]、[ランタイム管理モジュール付き] の各オプションで生成される出力に加えて、ターミナルI/Oデバッガサポートも 生成します。つまり、stdinおよびstdoutが[ターミナルI/O]ウィンドウにリダ イレクトされ、デバッグ時にホストコンピュータでファイルにアクセスするこ とができます。 デバッガのランタイムインタフェースの詳細については、『IAR C/C++ コンパ イラリファレンスガイド』を参照してください。 IAR Embedded Workbench® IDE 326 ユーザガイド リンカオプション バッファしたターミナル出力 C-SPY でのプログラム実行中に、文字が生成されるごとに C-SPY の [ ターミナ ル I/O] ウィンドウに即座に出力する代わりに、出力をバッファに格納します。 このオプションは、通信速度が遅いデバッガシステムを使用する場合に便利で す。 C-SPY 固有の追加力ファイルを許可 [ 追加出力 ] ページのオプションを有効にします。 [ ランタイム管理モジュール付き ]、[I/O エミュレーションモジュール付き ] の い ず れ か の オ プ シ ョ ン を 選 択 し た 場 合 は、生 成 さ れ る 出 力 フ ァ イ ル で、 putchar などの一部のライブラリ関数がダミー関数として実装され、それらの 関数を C-SPY で処理するために必要な追加デバッグ情報が生成されます。こ の場合は、[ 追加出力 ] ページのオプションが無効になり、追加出力ファイルを 生成できません。これは、追加出力ファイルにはダミー関数が含まれますが、 必要な追加デバッグ情報がなく、通常の用途ではこれらのファイルに意味がな くなるためです。 ただし、一部のデバッガシステムでは、同一のビルドプロセスで生成された 2 つの出力ファイル ( 必要なデバッグ情報を含むファイルと、デバッグ前にハー ドウェアに書き込むことができるファイル ) が必要です。これは、不揮発性メ モリに格納したコードをデバッグする場合に使用します。この場合は、[C-SPY 固有の追加力ファイルを許可 ] オプションを選択し、追加出力ファイルが生成 されるように設定する必要があります。 その他 このオプションは、[C-SPY のデバッグ情報 ]、[ ランタイム管理モジュール 付き ]、[I/O エミュレーションモジュール付き ] で生成される出力以外の出力 を生成する場合に使用します。 [ 出力フォーマット ] ドロップダウンリストを使用して、適切な出力を選択し ます。必要に応じて、[ フォーマットバリアント ] を使用して、一部の出力 フォーマットのバリアントを選択します。選択可能な項目は、選択した出力 フォーマットによって異なります。 [ その他 ]>[ 出力フォーマット ] オプションを [debug (ubrof)]、[ubrof] のいず れかに指定した場合は、ファイル名拡張子が dbg の UBROF 出力ファイルが生 成されます。生成した出力ファイルには、プログラム終了時の停止、ロング ジャンプ命令、ターミナル I/O などをシミュレーションするためのデバッグ情 報は含まれません。デバッグ時にこれらの機能をサポートする必要がある場合 は、それぞれオプション [C-SPY のデバッグ情報 ]、[ ランタイム管理モジュー ル付き ]、[I/O エミュレーションモジュール付き ] を使用する必要があります。 パート 6: リファレンス情報 327 追加出力 『IAR リンカおよびライブラリツールリファレンスガイド』を 詳細については、 参照してください。 モジュールローカルシンボル 入力モジュール内のローカル ( 非 public) シンボルを IAR XLINK リンカで含め るかどうかを指定します。無効にした場合は、ローカルシンボルはクロスリ ファレンスリストに含まれず、出力ファイルには引き渡されません。 コンパイラが生成したローカルシンボル ( ジャンプ、定数ラベルなど ) を無視 するように設定することもできます。通常は、このようなシンボルはアセンブ ラレベルでのデバッグでのみ必要です。 注 : ローカルシンボルがファイルに出力されるのは、それを指定するオプション を使用してコンパイル / アセンブルされた場合だけです。 追加出力 [ 追加出力 ] オプションは、追加出力ファイルの生成およびそのフォーマット の指定に使用します。 注: [ランタイム管理モジュール付き]、[I/Oエミュレーションモジュール付き] のいずれかのオプションを[出力]ページで選択した場合は、[C-SPY固有の追加力 ファイルを許可]オプションも選択し、[追加出力]オプションを有効にする必要 があります。 図 186: XLINK の追加出力ファイルのオプション [ 追加出力ファイルの生成 ] オプションは、ビルドプロセスから追加出力ファ イルを生成する場合に使用します。 [ デフォルトのオーバライド ] オプションは、デフォルト以外のファイル名を 指定する場合に使用します。名前を指定していない場合は、プロジェクト名 に、選択した出力フォーマットに応じたファイル名拡張子を付けたものが使用 されます。 IAR Embedded Workbench® IDE 328 ユーザガイド リンカオプション 注 : 出力ファイルが 2 つ生成されるフォーマットを選択した場合は、指定した ファイルタイプは主要出力ファイル(最初のフォーマット)だけに適用されます。 [ 出力フォーマット ] ドロップダウンリストを使用して、適切な出力を選択し ます。必要に応じて、[ フォーマットバリアント ] を使用して、一部の出力 フォーマットのバリアントを選択します。選択可能な項目は、選択した出力 フォーマットによって異なります。 [ 出力フォーマット ] オプションを [debug (ubrof)]、[ubrof] のいずれかに指定 した場合は、ファイル名拡張子が dbg の UBROF 出力ファイルが生成されます。 #define #define オプションを使用して、シンボルを定義することができます。 図 187: XLINK のシンボル定義オプション 定義済みシンボル [ 定義済みシンボル ] は、リンク時に絶対シンボルを定義する場合に使用しま す。これは、設定目的の場合に特に便利です。 プロジェクトで定義するシンボルを入力します。次に例を示します。 TESTVER=1 等号の前後に空白文字を挿入しないでください。 リンカコマンドファイルでは、任意の個数のシンボルを定義できます。この方 法で定義したシンボルは、リンカが生成する ?ABS_ENTRY_MOD という特別なモ ジュールに含まれます。 既存のシンボルを再定義しようとすると、エラーメッセージが表示されます。 パート 6: リファレンス情報 329 診断 診断 [ 診断 ] オプションは、IAR XLINK リンカが生成するエラーおよびワーニング メッセージを決定します。 図 188: XLINK の診断オプション 常に出力を生成 [ 常に出力を生成 ] は、グローバルエントリの欠落や宣言の重複のような、致命 的でないエラーがリンク手順時に検出された場合でも、出力ファイルを生成す る場合に指定します。通常、エラーが検出された場合、XLINK は出力ファイ ルを生成しません。 注 : XLINK は、このオプションが指定されていた場合でも、致命的なエラー時 には常に処理を中止します。 [ 常に出力を生成 ] オプションを選択した場合は、欠落したエントリを後から 絶対出力イメージで補完することができます。 セグメントオーバラップワーニング [ セグメントオーバラップワーニング ] は、セグメントオーバラップエラーを ワーニングに引き下げて、クロスリファレンスマップなどを生成できるように する場合に使用します。 グローバル型チェックなし [ グローバル型チェックなし ] は、リンク時のタイプチェックを無効にする場 合に使用します。問題なく記述されたアプリケーションであればこのオプショ ンは不要ですが、このオプションが役立つ場合があります。 デフォルトでは、XLINK はリンク時のモジュール間の型チェックを、エント リへの外部参照と PUBLIC エントリを比較することで行います(対象のオブジェクト モジュールに情報が存在する場合 )。不一致がある場合は、ワーニングが発生します。 IAR Embedded Workbench® IDE 330 ユーザガイド リンカオプション 範囲チェック [ 範囲チェック ] は、アドレス範囲の指定に使用します。下表に、IAR Embedded Workbench IDE の範囲チェックオプションを示します。 オプション 説明 エラー生成 エラーメッセージを発生させる ワーニング生成 範囲エラーをワーニングとして処理 無効 アドレス範囲チェックを無効にする 表 78: XLINK の範囲チェックオプション アドレスがターゲット CPU のアドレス範囲外 ( コード、外部データ、内部デー タのアドレス ) に再配置された場合は、エラーメッセージを発します。通常、 このエラーメッセージは、アセンブラ言語モジュールかセグメント配置にエ ラーがあることを示します。 ワーニング / エラー デフォルトでは、IAR XLINK リンカは、生成されたコードが正常であっても、何 らかの問題が考えられる場合にワーニングを発します。[ ワーニング / エラー] オ プションを使用して、すべてのワーニングを無効 / 有効にしたり、エラーとワー ニングの重大度の区分を変更したりできます。 ワーニングやエラーメッセージの詳細については、 『IAR リンカおよびライブラ リツールリファレンスガイド』を参照してください。 ワーニングやエラーメッセージの発生を制御するには、以下のオプションを使 用します。 すべてのワーニングを無効化 すべてのワーニングを無効にします。 診断を無効化 指定したタグの診断の出力を無効にします。 たとえば、w117 および w177 のワーニングを無効にするには、w117,w177 と入 力します。 ワーニングとして処理 このオプションは、エラーをワーニングとして処理する場合に使用します。た とえば、エラー 106 をワーニングとして処理するには、e106 と入力します。 エラーとして処理 このオプションは、ワーニングをエラーとして処理する場合に使用します。た とえば、ワーニング 26 をエラーとして処理するには、w26 と入力します。 パート 6: リファレンス情報 331 リスト リスト [ リスト ] オプションは、XLINK のクロスリファレンスリストの生成を設定し ます。 図 189: XLINK のリストファイルオプション リンカリストの生成 リンカでリストを生成し、projectname.map というファイルに出力します。 セグメントマップ [ セグメントマップ ] は、セグメントマップを XLINK のリストファイルに含め る場合に使用します。セグメントマップには、すべてのセグメントのリストが ダンプ順で含まれています。 シンボル 以下のいずれかを選択できます。 オプション 説明 なし リンカのリストからシンボルを除外します。 シンボルリスト すべてのモジュールのすべてのエントリ ( グローバルシンボル )の 略式リストを生成。このエントリマップは、ルーチンやデータエ レメントのアドレスをすばやく特定するのに便利です。 モジュールマップ アプリケーション内のすべてのモジュールのすべてのセグメント、 ローカルシンボル、エントリ (public シンボル ) のリストを生成し ます。 表 79: XLINK のリストファイルオプション IAR Embedded Workbench® IDE 332 ユーザガイド リンカオプション モジュールサマリ [ モジュールサマリ ] オプションは、合計使用メモリに占める各モジュールの メモリ使用率の概要を生成します。 メモリ使用に影響するモジュールだけがリストに含まれます。 無効にしたエントリのインクルード このオプションは、リンクされたモジュール内で、出力に含まれたセグメント パートだけでなく、すべてのセグメントパートをリストファイルに含めるよう に指定します。これにより、不要であったエントリを正確に特定することがで きます。 静的オーバレイマップ コンパイラが静的オーバレイを使用する場合、このオプションを指定すると、 静的オーバレイシステムのリストをリストファイルに含めます。静的オーバレ イマップの詳細については、『IAR リンカおよびライブラリツールリファレン スガイド』を参照してください。 ファイルフォーマット 以下のいずれかを選択できます。 オプション 説明 テキスト 通常のテキストファイル HTML ハイパーリンク付きの HTML フォーマット 表 80: XLINK のリストファイルフォーマットオプション ページあたりの行数 XLINK のリストでのページあたりの行数を lines の値に設定します。10 ~ 150 の値に設定する必要があります。 パート 6: リファレンス情報 333 設定 設定 [ 設定 ] オプションを使用して、リンカコマンドファイルのパスと名前の指定、 デフォルト以外のプログラムの使用、ライブラリの検索パスの指定を行うこと ができます。 図 190: XLINK の設定オプション リンカコマンドファイル デフォルトのリンカコマンドファイルは、[ 一般オプション ] カテゴリで選択 した [ ターゲット ] 設定に応じて自動的に選択されます。[ デフォルトのオー バライド ] オプションを選択し、他のファイルを指定することで、デフォルト 以外のリンカコマンドファイルを指定することができます。 引数変数 $TOOLKIT_DIR$ か $PROJ_DIR$ をここに入力し、プロジェクト固有 のリンカコマンドファイルか定義済みのリンカコマンドファイルを指定する こともできます。 COMMAND FILE CONFIGURATION TOOL デフォルト以外のリンカコマンドファイルを指定し、[Command file configuration tool] をクリックして、リンカコマンドファイルを自分で設定す ることができます。設定ツール関連オプションの詳細については、[ ヘルプ ] メニューから表示できるオンラインヘルプシステムを参照してください。製 品のバージョンによっては、このオプションは使用できない場合があります。 デフォルトプログラムエントリのオーバライド デフォルトでは、プログラムエントリには __program_start というラベルが設 定されています。リンカは、プログラムエントリラベルを含むモジュールが含まれ ていて、そのラベルを含むセグメントパートが破棄されていないことを確認します。 [ デフォルトプログラムエントリのオーバライ ] を選択することで、デフォル ト以外のプログラム処理を設定できます。 IAR Embedded Workbench® IDE 334 ユーザガイド リンカオプション [ エントリラベル ] オプションを選択すると、__program_start 以外のラベル をプログラムエントリに指定することができます。 [ アプリケーションで定義 ] オプションを選択すると、開始ラベルの使用が無 効になります。リンカは、通常と同様に、すべてのプログラムモジュールと、 root 属性が設定 すべてのシンボル参照に必要なライブラリモジュールを含め、 されたすべてのセグメントパート、またはそのようなセグメントパートから直 接的 / 間接的に参照されるすべてのセグメントパートを保持します。 パス検索 [ パス検索 ] オプションは、現在の作業ディレクトリでリンク対象オブジェク トファイルが見つからない場合に XLINK が検索するディレクトリの名前を指 定します。XLINK で検索するディレクトリのフルパスを追加します。 製品で必要なパスは、選択したランタイムライブラリに応じて、デフォルトで 指定されています。空白にした場合は、XLINK は現在の作業ディレクトリだ けでオブジェクトファイルを検索します。 #include ファイルのフルパスを入力します。プロジェクトの移植性を向上す るには、アクティブな製品のサブディレクトリに引数変数 $TOOLKIT_DIR$、現 在のプロジェクトのディレクトリに $PROJ_DIR$ を使用します。引数変数の概 要については、226 ページの「引数変数のまとめ」を参照してください。 未処理バイナリイメージ [ 未処理バイナリイメージ ] オプションは、通常の入力ファイル以外に、ピュ アバイナリファイルをリンクする場合に使用します。テキストボックスを使用 して、以下のパラメータを指定します。 ファイル リンクするバイナリファイルを入力します。 シンボル バイナリデータが配置されるセグメントパートにより定義されるシンボ ルを入力します。 セグメント バイナリデータを配置するセグメント アラインメントバイナリデータが配置されるセグメントパートのアラインメントを入力 します。 ファイルの内容全体が、指定したセグメントに配置されます。つまり、このセ グメントはロウバイナリ出力フォーマットなどのピュアバイナリデータだけ を含むことができます。指定したファイルの内容が配置されるセグメントパー トは、指定したシンボルがアプリケーションで要求される場合にだけ含まれま す。シンボルを強制的に参照するには、-g リンカオプションを使用します。単 『IAR リンカおよびライブラ 一出力ファイルおよび -g オプションについては、 リツールリファレンスガイド』を参照してください。 パート 6: リファレンス情報 335 処理 処理 [ 処理 ] オプションを使用して、コードの生成方法の詳細を指定することがで きます。 図 191: XLINK 処理オプション 未使用コードメモリをフィルする [ 未使用コードメモリをフィルする ] は、リンカにより生じたセグメントパー ト間のギャップに、ユーザが指定した値を設定する場合に使用します。アライ ンメントの制限がある場合や、セグメント配置オプションで設定された範囲の 最後などに、リンカがギャップを生成することがあります。 デフォルト ( このオプションは未使用 ) では、出力ファイルではギャップに値 が設定されません。 フィルバターン このオプションは、セグメントパート間のギャップに設定する値のサイズを 16 進数表記で指定します。 チェックサム生成 [ チェックサム生成 ] は、生成されるすべての raw データバイトのチェックサ ムを生成する場合に使用します。このオプションは、[ 未使用コードメモリを フィルする ] オプションを指定している場合にだけ使用できます。 サイズ [ サイズ ] は、チェックサムのバイト数 (1、2、4) を指定します。 IAR Embedded Workbench® IDE 336 ユーザガイド リンカオプション Algorithms 使用可能なアルゴリズムは、以下のとおりです。 アルゴリズム 説明 算術合計 単純な合計 CRC16 CRC16、生成多項式 0x11021 ( デフォルト ) CRC32 CRC32、生成多項式 0x104C11DB7 CRC 多項式 入力した値の生成多項式による CRC 表 81: XLINK のチェックサムアルゴリズム 補数 [ 補数 ] ドロップダウンリストを使用して、1 の補数か 2 の補数を指定します。 ビット順 デフォルトでは、結果の最上位の 1 バイト、2 バイト、4 バイトのいずれか ([MSB]) が、プロセッサの通常のバイトオーダで出力されます。最下位バイト を出力する場合は、[ ビット順]ドロップダウンリストから [LSB]を選択します。 アラインメント チェックサムのアラインメントを指定する場合に使用します。アラインメント を明示的に指定しない場合は、2 のアラインメントが使用されます。 初期値 チェックサムの初期値を指定する場合に使用します。これは、使用するマイク ロコントローラに専用のチェックサム計算があり、その計算を XLINK が実行 する計算に一致させる場合に使用します。 チェックサムの計算 CRC チェックサムの計算は、以下のコードを、CRC 0 から順に、入力のビッ トごとに呼び出す処理に相当します。 unsigned long crc(int bit, unsigned long oldcrc) { unsigned long newcrc = (oldcrc << 1) ^ bit; if (oldcrc & 0x80000000) newcrc ^= POLY; return newcrc; } パート 6: リファレンス情報 337 追加オプション POLY は、生成多項式を示します。チェックサムは、このルーチンの最後の呼出 しの結果です。補数を指定した場合は、チェックサムは結果の 1 か 2 の補数に なります。 リンカは、CHECKSUM セグメントの __checksum ラベルにチェックサムバイト を配置します。このセグメントは、他のセグメントと同様に、セグメント配置 オプションを使用して配置する必要があります。 『IAR リンカおよびライブラリツールリファ セグメント制御の詳細については、 レンスガイド』を参照してください。 追加オプション [ 追加オプション ] ページは、リンカへのコマンドラインインタフェースを提 供します。 図 192: リンカ用の [ 追加オプション ] ページ コマンドラインオプションの使用 リンカに (GUI では指定できない ) コマンドライン引数を追加指定することが できます。 IAR Embedded Workbench® IDE 338 ユーザガイド ライブラリビルダオプション この章では、IAR Embedded Workbench® IDE の XAR ライブラリビルダ オプションについて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 [ 出力 ] XAR オプションは、デフォルトでは使用できません。XAR オプションを IAR Embedded Workbench IDE で設定するには、先に XAR ライブラリビルダツール をカテゴリリストに追加する必要があります。[ プロジェクト ]>[ オプション ] を選択して [ オプション ] ダイアログボックスを表示し、[ 一般オプション ] カ テゴリを選択します。[ 出力 ] ページで、[ ライブラリ ] オプションを選択します。 [ ライブラリ ] オプションを選択した場合は、 [ ライブラリビルダ ] が [ オプショ ン ] ダイアログボックスでカテゴリとして表示されます。ビルドプロセスの結 果、XAR ライブラリビルダがライブラリ出力ファイルを作成します。ライブ ラリを作成する前に、XAR のオプションを設定する必要があります。 XAR オプションを設定するには、カテゴリリストから [ ライブラリビルダ ] を 選択し、XAR オプションを表示します。 図 193: XAR の出力オプション パート 6: リファレンス情報 339 すべての設定をデフォルトの出荷時設定に戻すには、[ 工場出荷時設定 ] ボタ ンをクリックします。 [ 出力ファイル ] オプションは、デフォルト以外の出力ファイル名の指定に使 用します。新しい名前を [ デフォルトのオーバライド ] テキストボックスに入 力します。 IAR Embedded Workbench® IDE 340 ユーザガイド デバッガオプション この章では、IAR Embedded Workbench® IDE の C-SPY® オプションにつ いて説明します。 オプションの設定方法の詳細については、85 ページの「オプションの 設定」を参照してください。 また、追加 C-SPY ドライバ専用のオプションの詳細については、[ ヘル プ ] メニューのから表示できるオンラインヘルプシステムを参照して ください。 設定 IAR Embedded Workbench IDE で C-SPY オプションを設定するには、[ プロ ジェクト ]>[ オプション ] を選択し、[ オプション ] ダイアログボックスを表 示します。次に、[ カテゴリ ] リストで [ デバッガ ] を選択します。[ 設定 ] ページでは、一般的な C-SPY オプションを設定します。 図 194: 一般的な C-SPY オプション すべての設定をデフォルトの出荷時設定に戻すには、[ 工場出荷時設定 ] ボタ ンをクリックします。 [ 設定 ] オプションは、使用する C-SPY ドライバ、セットアップマクロファイ ル、デバイス記述ファイルと、デフォルトでソースコードのどの位置まで実行 するかを指定します。 パート 6: リファレンス情報 341 設定 ドライバ C-SPY で使用するドライバ ( シミュレータやエミュレータなど ) を選択します。 使用可能な C-SPY ドライバの最新情報については、販売代理店か IAR システ ムズの担当者までお問い合せいただくか、IAR システムズの Web サイト (www.iarsys.co.jp) を参照してください。 [RUN TO] このオプションは、C-SPY の起動時や、リセット後に、ソースコードでどの位 置まで実行するかを指定する場合に使用します。 デフォルトでは、main 関数まで実行します。他の位置まで実行する場合は、そ の位置の名前を入力します。アセンブララベルかそれに相当するもの ( 関数名 など ) を指定できます。 オプションを選択していない場合は、リセットごとにプログラムカウンタに通 常のハードウェアリセットアドレスが格納されます。 マクロ設定 C-SPY の起動シーケンスでセットアップマクロの内容を登録するには、[ マ ク ロ フ ァ イ ル の 使 用 ] を 選 択 し、セ ッ ト ア ッ プ フ ァ イ ル の パ ス と 名 前 (SetupSimple.mac など ) を入力します。拡張子を指定していない場合は、mac が使用されます。参照ボタンを使用して選択することもできます。 デバイス記述ファイル このオプションは、デバイス固有情報を含むデバイス記述ファイルをロードす る場合に使用します。 デバイス記述ファイルの詳細については、108 ページの「デバイス記述ファイ ルの選択」を参照してください。 デバイス記述ファイルは、cpuname\config ディレクトリにあり、ddf という 拡張子が付いています。 IAR Embedded Workbench® IDE 342 ユーザガイド デバッガオプション 追加オプション [ 追加オプション ] ページは、C-SPY デバッガへのコマンドラインインタフェー スを提供します。 図 195: C-SPY デバッガ用の [ 追加オプション ] ページ コマンドラインオプションの使用 C-SPY デバッガに (GUI では指定できない ) コマンドライン引数を追加指定す ることができます。 パート 6: リファレンス情報 343 プラグイン プラグイン [ プラグイン ] ページでは、デバッグセッションでロードして使用する C-SPY プラグインモジュールを指定します。IAR システムズかサードパーティ製のプ ラグインモジュールを使用できます。使用可能なモジュールについては、ソ フトウェア販売代理店か IAR システムズの担当者までお問い合せください。 ま た、IAR システムズの Web サイトでも情報を提供しています。 図 196: C-SPY プラグインオプション デフォルトでは、[ ロードするプラグインの選択 ] に、製品に付属のプラグイ ンモジュールが表示されます。 サードパーティ製の C-SPY プラグインモジュールがある場合は、それらもリ ストに表示されます。 common\plugins ディレクトリは、汎用プラグインモジュールに使用します。 cpuname\plugins ディレクトリは、ターゲット専用プラグインモジュールに 使用します。 IAR Embedded Workbench® IDE 344 ユーザガイド C-SPY®マクロリファレンス この章では、C-SPY マクロのリファレンス情報を収録しています。最 初に、マクロ言語の構文について説明します。次に、使用可能なセッ トアップマクロ関数と定義済みシステムマクロについて要約していま す。最後に、各システムマクロの詳細を説明します。 マクロ言語 マクロ言語の構文は C 言語に非常によく似ています。C 言語の文に似たマクロ 文があります。マクロ関数を、パラメータやリターン値の有無を指定して定義 できます。C ライブラリ関数のような内蔵システムマクロを使用できます。最 後に、グローバル / ローカルのマクロ変数を定義できます。マクロ関数は、マ クロファイル ( ファイル名拡張子は mac) にまとめることができます。 マクロ関数 C-SPY のマクロ関数は、C-SPY 変数定義と、マクロが呼び出されたときに実行 されるマクロ文で構成されます。マクロ関数には任意の個数のパラメータを引 き渡すことができます。また、マクロ関数は終了時に値を返すことができます。 C-SPY マクロの形式は、以下のとおりです。 macroName (parameterList) { macroBody } ここで、parameterList にはコンマ区切りのマクロパラメータリスト、 macroBody には C-SPY 変数定義および C-SPY 文を記述します。 タイプチェックは、マクロ関数に引き渡される値とリターン値のいずれでも実 行されません。 定義済みシステムマクロ関数 マクロ言語には、C ライブラリ関数のような、さまざまな定義済みシステムマ クロ関数 ( 組込み関数 ) も含まれています。各システムマクロの詳細について は、352 ページの「C-SPY システムマクロの説明」を参照してください。 パート 6: リファレンス情報 345 マクロ言語 マクロ変数 マクロ変数は、アプリケーション空間外で定義して配置される変数です。配置 された変数は、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 と同一です。 表 82: C-SPY マクロ変数の例 C のシンボルと C-SPY マクロ変数の間で名前が重複する場合は、C-SPY マク ロ変数の方が C の 変数よりも優先されます。マクロ変数はデバッガホストに 割り当てられますので、アプリケーションは影響されないことに注意してくだ さい。 マクロ文字列 C のデータ型に加えて、マクロ変数にマクロ文字列の値を保持できます。マク ロ文字列は C 言語文字列と異ななることに、注意してください。 C-SPY 式に "Hello!" などの文字列リテラルを書き込む場合、この値はマクロ 文字列になります。char* はターゲットメモリの文字列を参照する必要があり ますが、C-SPY ではターゲットメモリに実際に存在するいかなる文字列も使用 できないので、これは C- 形式文字ポインタ char* ではありません。 __strFind または __subString などの組込みマクロ関数を使用して、 マクロ文 字列を操作できます。結果として新しいマクロ文字列が作成されます。str + マクロ文字列を連結できます。 str[3] "tail" などのような + 演算子を使用して、 などのサブスクリプションを使用して、個々の文字も取得できます。sizeof(str) を使用して、文字列の長さを取得できます。マクロ文字列は NULL 終了ではな いことに注意してください。 IAR Embedded Workbench® IDE 346 ユーザガイド 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!" になります */ 348 ページの「フォーマットした出力」も参照してください。 マクロ文 マクロ文は、相当する C 文と同様に機能します。以下の C-SPY マクロ文を使 用できます。 Expressions Expressions; C-SPY の式の詳細については、117 ページの「C-SPY 式」を参照してください。 条件文 if (Expressions) statement if (Expressions) statement else statement ループ文 for (init_expression; cond_expression; update_expression) statement while (Expressions) statement do statement while (Expressions); パート 6: リファレンス情報 347 マクロ言語 return 文 return; return Expressions; リターン値が明示的に設定されていない場合は、デフォルトでは signed int 0 が返されます。 ブロック マクロ文をブロックとしてグループ化できます。 { statement1 statement2 . . . statementN } フォーマットした出力 C-SPY では様々なフォーマットした出力方法があります。 __message argList; [ デバッグログ ] ウィンドウに出力します。 __fmessage file, argList; 指定ファイルに出力します。 __smessage argList; フォーマットした出力を文字列に格納して戻 します。 ここで、argList は C-SPY の式か文字列をコンマで区切ったリストで、file は __openFile システムマクロの実行結果です。356 ページの「__openFile」を 参照してください。 例 次の例のように __message 文を使用します。 var1 = 42; var2 = 37; __message "This line prints the values ", var1, " and ", var2, " in the Log window."; このマクロを実行すると、次のメッセージが[ログ]ウィンドウに出力されます。 This line prints the values 42 and 37 in the Log window. IAR Embedded Workbench® IDE 348 ユーザガイド C-SPY® マクロリファレンス __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 を使用して全文字列 値を取得します。 パート 6: リファレンス情報 349 セットアップマクロ関数のまとめ セットアップマクロ関数のまとめ 下表に、使用可能なセットアップマクロ関数をまとめています。 マクロ 説明 execUserPreload ターゲットシステムとの通信確立後、ターゲットアプリケー ションのダウンロード前に呼び出します。 このマクロは、データを適切にロードするために必要なメモ リアドレス ( ロケーション )/ レジスタを初期化する場合に実 装します。 execUserFlashInit フラッシュローダが RAM にダウンロードされる前に一度呼び 出します。通常、このマクロは、フラッシュローダで必要な メモリマップを設定する場合に実装します。このマクロは、 フラッシュのプログラミング時に一度だけ呼び出します。ま た、フラッシュローダ機能用にのみ使用します。 execUserSetup ターゲットアプリケーションのダウンロード後に一度呼び出 します。 このマクロは、メモリマップ、ブレークポイント、割込み、レ ジスタマクロファイルなどの設定を行う場合に実装します。 execUserFlashReset フラッシュローダが RAM にダウンロードされた後、フラッ シュローダの実行前に一度呼び出します。このマクロは、フ ラッシュのプログラミング時に一度だけ呼び出します。また、 フラッシュローダ機能用にのみ使用します。 execUserReset リセットコマンドの実行ごとに呼び出します。 このマクロは、データの設定 / 復元を行う場合に実装します。 execUserExit デバッグセッションの終了時に一度呼び出します。 このマクロは、状態データなどの保存を行う場合に実装し ます。 execUserFlashExit デバッグセッションの終了時に一度呼び出します。 このマクロは、状態データなどの保存を行う場合に実装しま す。このマクロは、フラッシュローダ機能用に使用します。 表 83: C-SPY セットアップマクロ 注 : システム起動時に実行されるマクロファイル (execUserSetup を使用 ) で 割込みやブレークポイントを定義する場合は、システム終了時にそれらが削除 (execUserExit を使用 ) されていることを確認してください。SetupSimple.mac で使用可能な例については、53 ページの「割込みシミュレーション」を参照 してください。 シミュレータでは割込み設定がセッション終了後も保持されるため、削除して いない場合、execUserSetup の実行ごとに重複して作成されます。これが原因 で、実行速度が大幅に低下します。 IAR Embedded Workbench® IDE 350 ユーザガイド C-SPY® マクロリファレンス C-SPY システムマクロのまとめ 下表に、定義済みシステムマクロをまとめています。 マクロ 説明 __cancelAllInterrupts 設定されたすべての割込みを取り消します。 __cancelInterrupt 割込みを取り消します。 __clearBreak ブレークポイントを削除します。 __closeFile __openFile で開かれたファイルを閉じます __disableInterrupts 割込み生成を無効にします。 __driverType ドライバタイプを確認します。 __enableInterrupts 割込み生成を有効にします。 __evaluate 入力文字列を式として解釈して、評価します。 __openFile ファイルを入出力処理用に開きます。 __orderInterrupt 割込みを生成します。 __popSimulatorInterruptExecu 割込みシミュレーションシステムに、割込みハン tingStack ドラの実行が終了したことを通知します。 __readFile 指定したファイルからリードします。 __readFileByte 指定したファイルから 1 バイトリードします。 __readMemory8, __readMemoryByte 指定したメモリアドレス ( ロケーション ) から 1 バイトリードします。 __readMemory16 指定したメモリアドレス ( ロケーション ) から 2 バイトリードします。 __readMemory32 指定したメモリアドレス ( ロケーション ) から 4 バイトリードします。 __registerMacroFile 指定したファイルからマクロを登録します。 __resetFile __openFile で開かれたファイル内の位置を先 頭に戻します。 __setCodeBreak コードブレークポイントを設定します。 __setDataBreak データブレークポイントを設定します。 __setSimBreak シミュレーションブレークポイントを設定し ます。 __sourcePosition 現在の実行位置がソース位置に対応する場合、 ファイル名とソース位置を返します。 __strFind 指定した文字列で別の文字列を検索します。 __subString 文字列から部分文字列を抽出します。 表 84: システムマクロのまとめ パート 6: リファレンス情報 351 C-SPY システムマクロの説明 マクロ 説明 __toLower パラメータ文字列のコピーを、すべての文字を小 文字に変換して返します。 __toString 文字列を出力します。 __toUpper パラメータ文字列のコピーを、すべての文字を大 文字に変換して返します。 __writeFile 指定したファイルにライトします。 __writeFileByte 指定したファイルに 1 バイトライトします。 __writeMemoryByte 指定したメモリアドレス ( ロケーション ) に 1 バ イトライトします。 __writeMemory8 指定したメモリアドレス ( ロケーション ) に 1 バ イトライトします。 __writeMemory16 指定したメモリアドレス ( ロケーション ) に 2 バ イトワードをライトします。 __writeMemory32 指定したメモリアドレス ( ロケーション ) に 4 バ イトワードをライトします。 表 84: システムマクロのまとめ ( 続き ) C-SPY システムマクロの説明 このセクションでは C-SPY システムマクロごとのリファランス情報を説明し ます。 __cancelAllInterrupts 構文 __cancelAllInterrupts() リターン値 int 0 説明 設定されたすべての割込みを取り消します。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 IAR Embedded Workbench® IDE 352 ユーザガイド C-SPY® マクロリファレンス __cancelInterrupt 構文 __cancelInterrupt(interrupt_id) パラメータ interrupt_id 対応する で返される値 __orderInterrupt macro call (unsigned long) リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 85: __cancelInterrupt のリターン値 説明 指定した割込みを取り消します。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 __clearBreak 構文 __clearBreak(break_id) パラメータ break_id 設定したブレークポイントマクロのいずれかが返した値 リターン値 int 0 説明 ユーザ定義ブレークポイントを削除します。 参考ページ 125 ページの「ブレークポイントの定義」。 __closeFile 構文 __closeFile(filehandle) パラメータ filehandle __openFile マクロでファイルハンドルとして使用するマク ロ変数 リターン値 int 0 説明 先に __openFile で開いたファイルを閉じます。 パート 6: リファレンス情報 353 C-SPY システムマクロの説明 __disableInterrupts 構文 __disableInterrupts() リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 86: __disableInterrupts のリターン値 説明 割込み生成を無効にします。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 __driverType 構文 __driverType(driver_id) パラメータ driver_id チェックするドライバに対応する文字列。指定可能な文字列 リストについては、以下のいずれかの [ ヘルプ ] メニューか ら表示できるオンラインヘルプシステムを参照してください。 リターン値 結果 値 成功 1 失敗 0 表 87: __driverType のリターン値 説明 現在の IAR C-SPY デバッガドライバが、driver_id パラメータで指定したドラ イバタイプと同一かどうかを確認します。 例 __driverType("sim") シミュレータが現在のドライバである場合は、1 が返されます。それ以外の場 合は 0 が返されます。 IAR Embedded Workbench® IDE 354 ユーザガイド C-SPY® マクロリファレンス __enableInterrupts 構文 __enableInterrupts() リターン値 結果 値 成功 int 0 失敗 ゼロ以外のエラー番号 表 88: __enableInterrupts のリターン値 説明 割込み生成を有効にします。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 __evaluate 構文 __evaluate(string, valuePtr) パラメータ string 式文字列 valuePtr 結果を保持するマクロ変数ポインタ リターン値 結果 値 成功 int 0 失敗 int 1 表 89: __evaluate リターン値 説明 このマクロは入力文字列を式として解釈して、評価します。結果は valuePtr として参照される変数に格納されます。 例 次の例では、値 i が定義され、値 5 に設定されていると仮定しています。 __evaluate("i + 3", &myVar) マクロ変数 myVar に値 8 が割り当てられます。 パート 6: リファレンス情報 355 C-SPY システムマクロの説明 __openFile 構文 __openFile(file, access) パラメータ file ファイル名を示す文字列 access アクセスタイプ ( 文字列 )。以下のいずれかを指定し ます。 "r" ASCII リード "w" ASCII ライト リターン値 結果 値 Successful ファイルハンドル Unsuccessful 無効なファイルハンドル ( 評価結果は False) 表 90: __openFile のリターン値 説明 ファイルを入出力処理用に開きます。このマクロのデフォルトの基準ディレク トリは、開かれているプロジェクトファイル (*.pew、*.prj) のある場所にな ります。__openFile の引数では、このディレクトリとの相対位置を指定する ことができます。また、$PROJ_DIR$ や $TOOLKIT_DIR$ などの引数変数をパス として指定することもできます。 例 /* ファイルハンドルを保持する */ /* マクロ変数 */ filehandle = __openFile("Debug\\Exe\\test.tst", "r"); if (filehandle) { /* 正常に開きます */ } 参考ページ 226 ページの「引数変数のまとめ」。 __var filehandle; __orderInterrupt 構文 IAR Embedded Workbench® IDE 356 ユーザガイド __orderInterrupt(specification, first_activation, repeat_interval, variance, infinite_hold_time, hold_time, probability) C-SPY® マクロリファレンス パラメータ 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 C-SPY シミュレータでのみ使用できます。 例 次の例は、4000 サイクルの後に初めて実行された保持時間無制限の周期割込 みを生成します。 __orderInterrupt( "USARTR_VECTOR", 4000, 2000, 0, 1, 0, 100 ); __popSimulatorInterruptExecutingStack 構文 __popSimulatorInterruptExecutingStack(void) リターン値 このマクロにはリターン値はありません。 説明 割込みシミュレーションシステムに、割込みハンドラ実行から戻る際に使用さ れる通常の命令と同様に、割込みハンドラの実行が終了したことを通知します。 割込みハンドラから復帰する際に通常の命令を使用しない場合 ( タスク切替え 機能のあるオペレーティングシステムの場合など ) に使用します。この場合、 割込みシミュレーションシステムは割込みハンドラの実行が終了したことを 自動的には検出できません。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 パート 6: リファレンス情報 357 C-SPY システムマクロの説明 __readFile 構文 __readFile(file, valuePtr) パラメータ file ファイルハンドル valuePtr 変数へのポインタ リターン値 結果 値 Successful 0 Unsuccessful ゼロ以外のエラー番号 表 91: __readFile リターン値 説明 unsigned long に変換して、 value 指定したファイルから 16 進数を順にリードし、 パラメータに代入します。この値は、マクロ変数へのポインタになります。 例 __var number; if (__readFile(myFile, &number) == 0) { // 数字を処理します } __readFileByte 構文 __readFileByte(file) パラメータ file リターン値 エラー、ファイル終端時に -1 それ以外は、0 ~ 255。 説明 file で指定したファイルから 1 バイトリードします。 例 __var byte; while ( (byte = __readFileByte(myFile)) != -1 ) { // バイトを処理します } IAR Embedded Workbench® IDE 358 ファイルハンドル ユーザガイド C-SPY® マクロリファレンス __readMemory8, __readMemoryByte 構文 __readMemory8(address, zone) __readMemoryByte(address, zone) パラメータ address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」 を参照してください。 リターン値 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス ( ロケーション ) から 1 バイトリードします。 例 __readMemory8(0x0108, "Memory"); __readMemory16 構文 __readMemory16(address, zone) パラメータ address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」 を参照してください。 リターン値 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス ( ロケーション ) から 2 バイトワードをリードします。 例 __readMemory16(0x0108, "Memory"); __readMemory32 構文 __readMemory32(address, zone) パラメータ address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」 を参照してください。 パート 6: リファレンス情報 359 C-SPY システムマクロの説明 リターン値 このマクロは、メモリから取得した値を返します。 説明 指定したメモリアドレス ( ロケーション ) から 4 バイトワードをリードします。 例 __readMemory32(0x0108, "Memory"); __registerMacroFile 構文 __registerMacroFile(filename) パラメータ filename 登録するマクロが記述されたファイル ( 文字列 ) リターン値 int 0 説明 セットアップマクロファイルからマクロを登録します。この関数を使用して、 複数のマクロファイルを C-SPY 起動時に登録することができます。 例 __registerMacroFile("c:\\testdir\\macro.mac"); 参照 141 ページの「セットアップマクロとセットアップファイルによる登録と実行」 。 __resetFile 構文 __resetFile(filehandle) パラメータ filehandle リターン値 int 0 説明 先に __openFile で開いたファイルを先頭に戻します。 IAR Embedded Workbench® IDE 360 __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 表 92: __setCodeBreak のリターン値 説明 コードブレークポイント ( プロセッサが指定位置で命令をフェッチする直前に トリガされるブレークポイント ) を設定します。 例 __setCodeBreak("{D:\\src\\prog.c}.12.9", 3, "d>16", "TRUE", "ActionCode()"); 次の例は、アセンブラソース中の main というラベルにコードブレークポイン トを設定します。 __setCodeBreak("#main", 0, "1", "TRUE", ""); 参考ページ 125 ページの「ブレークポイントの定義」。 パート 6: リファレンス情報 361 C-SPY システムマクロの説明 __setDataBreak 構文 __setDataBreak(location, count, condition, cond_type, access, action) パラメータ 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など )。ただし、これはデータ ブレークポイントとしてはそれほど便利ではありません。 location zone:hexaddress または単に hexaddress という形式で 示した絶対アドレス (Memory:0x42 など ) 評価結果が位置を示す値になる式 (my_global_variable など ) count 実行を停止するまでのブレークポイント条件発生回数 ( 整数 ) condition ブレークポイント条件 ( 文字列 ) cond_type 条件の種類。CHANGED または TRUE ( 文字列 ) access メモリアクセスタイプ : リードの場合は "R"、ライトの場合 は "W"、リード / ライトの場合は "RW" action ブレークポイント検出時に評価される式 ( 通常はマクロ呼 出し ) リターン値 結果 値 Successful ブレークポイントを一意に特定する符号なし整数。ブレークポ イントを削除する際には、この値を使用する必要があります。 Unsuccessful 0 表 93: __setDataBreak のリターン値 説明 データブレークポイント ( プロセッサが指定位置でデータのリード / ライトを 実行した直後にトリガされるブレークポイント ) を設定します。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 例 __var brk; brk = __setDataBreak("Memory:0x4710", 3, "d>6", "TRUE", "W", "ActionData()"); ... __clearBreak(brk); IAR Embedded Workbench® IDE 362 ユーザガイド C-SPY® マクロリファレンス 参考ページ 125 ページの「ブレークポイントの定義」。 __setSimBreak 構文 __setSimBreak(location, access, action) パラメータ location 位置を記述する文字列。以下のいずれかを指定できます。 {filename}.line.col という形式で指定したソース位置 ({D:\\src\\prog.c}.12.9 など )。ただし、これはシミュ レーションブレークポイントとしてはそれほど便利ではあ りません。 zone:hexaddress または単に hexaddress という形式で 示した絶対アドレス (Memory:0xE01E など ) 評価結果が位置を示す値になる式 (my_global_variable など )。 access メモリアクセスタイプ : リードの場合は "R"、ライトの場合 は "W" action ブレークポイント検出時に評価される式 ( 通常はマクロ関数 呼出し ) リターン値 結果 値 Successful ブレークポイントを一意に特定する符号なし整数。ブレークポ イントを消去する際には、この値を使用する必要があります。 Unsuccessful 0 表 94: __setSimBreak のリターン値 説明 このシステムマクロを使用して、一時的にのみ命令の実行を停止するイミディ エイト ブレークポイントを設定します。このブレークポイントを使用すると、 プロセッサがある位置からデータを読み込む直前かある位置にデータを書き 込んだ直後に、C-SPY マクロ関数を呼び出すことができます。アクションが終 了すると、命令の実行が再開されます。 イミディエイトブレークポイントは、メモリにマッピングされたさまざまな種 類のデバイス ( シリアルポートやタイマなど ) をシミュレーションする場合に 便利です。デバイスがメモリマッピングされた位置をプロセッサが読み込む と、C-SPY マクロ関数が実行されて適切なデータを供給します。逆に、デバイ スがメモリマッピングされた位置にプロセッサが書き込むと、C-SPY マクロ関 数が実行されて、書き込まれた値に応じた適切な動作を実行します。 適用範囲 このシステムマクロは、IAR C-SPY シミュレータでのみ使用できます。 パート 6: リファレンス情報 363 C-SPY システムマクロの説明 __sourcePosition 構文 __sourcePosition(linePtr, colPtr) パラメータ linePtr 行番号を格納する変数へのポインタ colPtr 列番号を格納する変数へのポインタ リターン値 結果 値 Successful ファイル名文字列 Unsuccessful 空き ("") 文字列 表 95: __sourcePosition リターン値 説明 現在の実行位置がソース位置に対応する場合、このマクロはファイル名を文字 列として返します。パラメータで参照する変数の値を、ソース位置の行番号と 列番号に設定します。 __strFind 構文 __strFind(macroString, pattern, position) パラメータ 検索先のマクロ文字列 pattern 検索対象の文字列パターン position 検索の開始位置。最初の位置は 0 です。 リターン値 パターンが見つかった位置。文字列が見つからなかった場合は -1。 説明 このマクロは、指定した文字列で別の文字列を検索します。 例 __strFind("Compiler", "pile", 0) __strFind("Compiler", "foo", 0) 参考ページ 346 ページの「マクロ文字列」。 IAR Embedded Workbench® IDE 364 macroString ユーザガイド = 3 = -1 C-SPY® マクロリファレンス __subString 構文 __subString(macroString, position, length) パラメータ macroString 部分文字列の抽出元のマクロ文字列 position 部分文字列の開始位置。最初の位置は 0 です。 length 部分文字列の長さ リターン値 指定したマクロ文字列から抽出した部分文字列 説明 このマクロは、文字列から部分文字列を抽出します。 例 __subString("Compiler", 0, 2) 生成されたマクロ文字列に Co が含まれます。 __subString("Compiler", 3, 4) 生成されたマクロ文字列に pile が含まれます。 参考ページ 346 ページの「マクロ文字列」。 __toLower 構文 __toLower(macroString) パラメータ macroString is any macro string. リターン値 変換後のマクロ文字列 説明 このマクロは、パラメータ文字列のコピーを、すべての文字を小文字に変換し て返します。 例 __toLower("IAR") 生成されたマクロ文字列に iar が含まれます。 __toLower("Mix42") 生成されたマクロ文字列 mix42 が含まれます。 参照 346 ページの「マクロ文字列」。 パート 6: リファレンス情報 365 C-SPY システムマクロの説明 __toString 構文 __toString(C_string, maxlength) パラメータ string NULL 終端 C 文字列 maxlength 返されるマクロ文字列の最大長 リターン値 マクロ文字列 説明 このマクロを使用して、C 文字列 (char* または char[]) をマクロ文字列に変 換します。 例 アプリケーションに次の定義が含まれていると仮定します。 char const * hptr = "Hello World!"; 次のマクロ呼出しを使用します。 __toString(hptr, 5) Hello を含むマクロ文字列を返します。 参照 346 ページの「マクロ文字列」。 __toUpper 構文 __toUpper(macroString) パラメータ macroString は任意のマクロ文字列です。 リターン値 変換後の文字列 説明 このマクロは、すべての文字を大文字に変換して、パラメータ macroString の コピーを返します。 例 __toUpper("string") 生成されたマクロ文字列に STRING が含まれます。 参考ページ IAR Embedded Workbench® IDE 366 ユーザガイド 346 ページの「マクロ文字列」。 C-SPY® マクロリファレンス __writeFile 構文 __writeFile(file, value) パラメータ file ファイルハンドル value 整数 リターン値 int 0 説明 整数値を 16 進数フォーマット ( 後の空白文字を含む ) でファイル file に出力 します。 注 : __fmessage 文でも同様の操作を実行できます。__writeFile マクロは、 __readFile との対称性の観点から提供されています。 __writeFileByte 構文 __writeFileByte(file, value) パラメータ file ファイルハンドル value 0 ~ 255 の範囲の整数 リターン値 int 0 説明 file ファイルに 1 バイトライトします。 __writeMemoryByte 構文 __writeMemoryByte(value, address, zone) パラメータ value 書き込む値 ( 整数 ) address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」 を参照してください。 リターン値 int 0 説明 指定したメモリアドレス ( ロケーション ) に 1 バイトライトします。 パート 6: リファレンス情報 367 C-SPY システムマクロの説明 例 __writeMemoryByte(0x2F, 0x1F, "Memory"); __writeMemory8 構文 __writeMemory8(value, address, zone) パラメータ value 書き込む値 ( 整数 ) address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」を 参照してください。 リターン値 int 0 説明 指定したメモリアドレス ( ロケーション ) に 1 バイトライトします。 例 __writeMemory8(0x2F, 0x8020, "Memory"); __writeMemory16 構文 __writeMemory16(value, address, zone) パラメータ 書き込む値 ( 整数 ) address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」を 参照してください。 リターン値 int 0 説明 指定したメモリアドレス ( ロケーション ) に 2 バイトライトします。 例 __writeMemory16(0x2FFF, 0x8020, "Memory"); IAR Embedded Workbench® IDE 368 value ユーザガイド C-SPY® マクロリファレンス __writeMemory32 構文 __writeMemory32(value, address, zone) パラメータ value 書き込む値 ( 整数 ) address メモリアドレス ( 整数 ) ゾーン メモリゾーン名 ( 文字列 )。指定可能なゾーンのリスト については、131 ページの「メモリアドレッシング」を 参照してください。 リターン値 int 0 説明 指定したメモリアドレス ( ロケーション ) に 4 バイトライトします。 例 __writeMemory32(0x5555FFFF, 0x8020, "Memory"); パート 6: リファレンス情報 369 C-SPY システムマクロの説明 IAR Embedded Workbench® IDE 370 ユーザガイド 用語集 C Embedded C++ 組込みシステムのプログラミング用に設計された、C++ プログラミング言語のサブセット。言語の設計時に、組 込みシステム開発で性能と移植性が特に重要であるこ とが考慮されています。 CRC ( 巡回冗長検査 ) データ損傷を検出するため、データブロックから計算し てデータブロックと共に保存する値。CRC は、多項式 を使用して計算される値で、単純な演算によるチェック 「チェックサム」 サムよりも高度なエラー検出方法です。 と比較してください。 I C-SPY オプション IAR C-SPY デバッガのデフォルトの動作を変更するた めのパラメータ。 Cstartup アプリケーションの実行開始前にシステムを設定する コード。 C 形式プリプロセッサ プリプロセッサは、実際のコンパイル前に入力ストリー ムを前処理するスタンドアロンアプリケーションかコ ンパイラ内蔵機能です。C 形式プリプロセッサは、ANSI の C 言語仕様に従って設定されたルールに従い、#define, #if や #include などの、テキストマクロ置換、条件付き コンパイル、他のファイルのインクルードなどを処理す るためのコマンドを実装します。 E EEPROM Electrically Erasable, Programmable Read-Only Memory ( 電 気的消去可能プログラマブルリードオンリーメモリ ) の 略。電子的に消去して書き換えることが可能な ROM。 EPROM Erasable, Programmable Read-Only Memory ( 消去可能プロ グラマブルリードオンリーメモリ ) の略。紫外線の照射 により消去した後に、書き換えることが可能な ROM。 IDE ( 統合開発環境 ) 必要なすべてのツールを 1 つのアプリケーションに統合 したプログラミング環境。 L L値 代入文の左辺の変更可能な値。単純な変数、逆参照され たポインタがこれに該当します。(x + 10) のような式に は新しい値を代入できないため、L 値にはなりません。 M MAC ( 積和演算 ) 乗算を加算と共に実行する特殊な命令、オンチップデバ イス。次の形式のフィルタや変換を多数使って信号処理 を実行する場合に多用されます。 MAC のアキュムレータは、通常のレジスタより高精度 「デジタル信号プロセッサ (DSP)」 ( ビット数が多い ) です。 も参照してください。 N NOP No operation ( 無動作命令 ) の略。何の処理も実行せず、 遅延を発生させるために使用する命令。パイプライン アーキテクチャでは、NOP 命令を使用して、パイプラ 「パイプライン」も インを同期させることができます。 参照してください。 371 P U #pragma C/C++ プログラムのコンパイル中に、#pragma プリプロ セッサディレクティブが検出されると、コンパイラを処 理系定義に従って動作させます。これには、コンソール での出力生成、それ以降のオブジェクトの宣言の変更、 最適化レベルの変更、言語拡張の有効 / 無効の切替えな どがあります。 UBROF (Universal Binary Relocatable Object Format) IAR システムズのプログラミングツールで生成される ファイルフォーマット。 PROM Programmable Read-Only Memory ( プログラマブルリード オンリーメモリ ) の略。1 回だけライト可能な ROM。 R ROM モニタ デバッグツールでの使用に特化した組込みソフトウェ ア。評価ボードチップの ROM に格納されていて、シリ アルポートかネットワーク接続経由でデバッガと通信 します。ROM モニタは、メモリアドレス ( ロケーショ ン ) やレジスタの表示と修正、ブレークポイントの作成 と削除、アプリケーションの実行などの基本コマンド セットを提供します。デバッガは、これらの基本コマン ドを組み合せて、プログラムのダウンロードやステップ 実行など、より高度な機能を実現できます。 RTOS 「リアルタイムオペレーティングシステム (RTOS)」を参 照してください。 R値 代入文の右辺に指定可能な値。単純に値だけがこれに該 「L 値」も参照してください。 当します。 S Segment メモリ内の物理アドレスにマッピングされるデータや コードのかたまり。セグメントは、RAM ( リード / ライ ト可能メモリ ) にも ROM ( リードオンリーメモリ ) にも 配置できます。 IAR Embedded Workbench® IDE 372 ユーザガイド X XAR オプション IAR XAR ライブラリビルダの処理を制御するコマンド セット。 XLIB オプション IAR XLIB ライブラリアンの処理を制御するコマンド セット。 XLINK オプション IAR XLINK リンカのデフォルトの動作を変更するため のパラメータ。 あ アーキテクチャ コンピュータ設計者の間で使用される、複雑な情報処理 システムの構造を示す用語。使用される命令やデータの 種類、メモリ構成やアドレッシング方法、システムの実 装方法などを示します。プロセッサ設計で使用される主 「ハーバードアーキテクチャ」 流アーキテクチャとして、 と「ノイマンアーキテクチャ」の 2 つがあります。 アセンブラオプション アセンブラのデフォルトの動作を変更するためのパラ メータ。 アセンブラ言語 ターゲットプロセッサと、入出力レジスタやデータエリ アに対する処理を指定するために使用する、個々のマシ ン固有のニーモニックセット。メモリ使用量の節約や、 アプリケーションの実行速度の向上には、C/Embedded C++ よりもアセンブラ言語の方が適している場合があ ります。 アセンブラディレクティブ アセンブラの処理を制御するコマンドセット。 え アドレス式 値がアドレスになっている式。 エミュレータ プロセッサファミリの派生品のエミュレーションを実 行するハードウェアデバイス。エミュレータは、しばし ば実際のマイクロコントローラの代りに使用し、プリン ト基板 ( 実際の用途ではマイクロコントローラを接続 ) に接続デバイス経由で接続します。エミュレータは、常 にターゲットプロセッサと完全に同様に動作し、デバッ グですべてのシステムアクチュエータが必要な場合や、 デバイスドライバをデバッグする場合に使用します。 アプリケーション IAR システムズのツールキットのユーザが開発し、ター ゲットプロセッサで組込みアプリケーションとして実 行されるプログラム。 安価 安価なメモリアクセスのように使用します。安価なメモ リアクセスでは、実行にかかるサイクル数や、実装に必 要なコードバイト数が少なくなります。メモリアクセス 「メモリアクセ が安価なことを、低コストと言います。 スコスト」を参照してください。 い 一般オプション IAR Embedded Workbench IDE に含まれる全ツールのデ フォルトの動作を変更するためのパラメータ。 インクルードファイル ソースファイルにインクルードされるテキストファイル。 この処理は、多くの場合はプリプロセッサが実行します。 インラインアセンブラ C 言語の文の間に直接挿入するアセンブラ言語。 インライン化 呼出し先関数の本体を関数呼出しに置き換える最適化 処理。この最適化により実行速度が向上し、場合によっ ては生成コードのサイズも削減できます。 う ウォッチポイント C 言語の変数や式の値を、アプリケーション実行中に C-SPY の [Watch] ウィンドウでトレースします。 演算子 関数として使用されるシンボルで、引数が 2 つある場合 は中置記法 (+ など )、引数が 1 つだけの場合は前置記法 ( ビット単位の否定を示す~など ) で使用します。多く の言語では、算術演算や論理演算などの組込み関数に演 算子を使用します。 演算子の優先順位 各演算子には優先順位が割り当てられています。この順 位に従い、演算子およびそのオペランドの評価順序が決 定されます。優先順位が一番高い演算子が最初に評価さ れます。演算子およびオペランドをグループ化し、式の 評価順序を変更するには、括弧を使用します。 か 拡張キーワード C/C++ での非標準キーワード。通常は、オブジェクト、 「キーワー 定義、宣言 ( データ、関数 ) を制御します。 ド」も参照してください。 仮想アドレス ( 論理アドレス ) コンパイラ、リンカ、ランタイムシステムによって、使 用前に物理メモリアドレスに変換する必要のあるアド レス。仮想アドレスはアプリケーションで認識されるア ドレスであり、システムの他の部分で認識されるアドレ スとは異なる場合があります。 仮想空間 IAR Embedded Workbench のエディタの機能で、実際の 文字のある領域外に挿入ポイントを移動できます。 373 型修飾子 標準 C/C++ では const、volatile。IAR のコンパイラは、 通常はメモリや他の型属性用にターゲット固有の型修 飾子を追加します。 組込み関数 1. 特定のマシンコードシーケンスに直接展開される関 数呼出し。2. コンパイラが内部的用途 ( 浮動小数点演算 など ) で呼び出す関数。 仮定義 定義が同一で、絶対アドレスである場合に、複数のファ イルで定義可能な変数。 組込みシステム 特定用途向けに設計されたハードウェアとソフトウェ アの組合せ。組込みシステムがより大規模なシステムや 製品の一部となっている場合も多数あります。 き キーバインディング IAR Embedded Workbench IDE で使用するメニューコマ ンド用キーショートカット。 キーワード プログラミング言語の構文で定義されているシンボル セット。言語で使用されるすべてのキーワードは予約済 みで、識別子 ( 変数やプロシージャなどのユーザ定義オ ブジェクト ) として使用することはできません。「拡張 キーワード」も参照してください。 揮発性ストレージ 揮発性記憶デバイスに保存したデータは、そのデバイス の電源を切った場合は保持されません。電源を切った後 もデータを保持するには、不揮発性ストレージに保存す る必要があります。C 言語のキーワードである volatile と混同しないでください。「不揮発性ストレージ」と比 較してください。 逆アセンブリウィンドウ メモリの内容を逆アセンブルしてマシン命令に変換し、 可能であれば、対応する C ソースコードを挿入して表示 する C-SPY ウィンドウ。 く 組込み ネイティブのコンパイラオブジェクト、プロパティ、イ ベント、メソッドを意味する形容詞。 IAR Embedded Workbench® IDE 374 ユーザガイド け 言語拡張 ターゲット固有の C 言語拡張。 こ 高価 高価なメモリアクセスのように使用します。高価なメモ リアクセスでは、実行にかかるサイクル数か、実装に必 要なコードバイト数が多くなります。メモリアクセスが 高価なことを、高コストであると言います。「メモリア クセスコスト」を参照してください。 構造体値 構造体および共用体の集合名。構造体は、メモリに連続 的に配置されたデータオブジェクトの集合です ( データ オブジェクト間にパッドバイトが挿入されていること もある )。共用体は、同一メモリアドレス ( ロケーショ ン ) を共有するデータの集合です。 コードバンキング 「バンクコード」を参照してください。 コードポインタ コードポインタとは、関数ポインタを意味します。多く のマイクロコントローラでは複数の異なる方法で関数 を呼び出せるため、組込みシステム用のコンパイラでは 通常はこれらの方法をすべて使用できます。 コードモデル コードモデルは、アプリケーション用コードの生成方法 を制御します。通常は、コードモデルは、関数の呼出し 方法や関数が配置されるコードセグメントなどの挙動 を制御します。アプリケーションのすべてのオブジェク トファイルは、同一のコードモデルを使用してコンパイ ルする必要があります。 コードポインタとデータポインタを混同しないでくだ さい。 コスト 「メモリアクセスコスト」を参照してください。 コンパイラオプション コンパイラのデフォルトの動作を変更するためのパラ メータ。 コンパイラ関数ディレクティブ コンパイラ関数ディレクティブは、コンパイラが関数と 関数呼出しに関する情報を IAR XLINK リンカに引き渡 すために生成します。これらのディレクティブを表示す るには、アセンブラリストファイルを作成する必要があ ります。このディレクティブは、より小型のマイクロコ ントローラで便利な機能である静的オーバレイをサ ポートするコンパイラで主に使用します。 コンパイル単位 「翻訳単位」を参照してください。 さ 再配置可能セグメント リンク前にメモリ位置を固定していないセグメント。 し シグナル シグナルは、イベントベースのタスク間通信を提供しま す。1 つのタスクは、他の 1 つ以上のタスクからのシグ ナルを待つことがあります。待っているシグナルをタス クが受信すると、実行が続行されます。RTOS では、シ グナルを待つタスクは処理時間を費やさないため、他の タスクを実行できます。 自動変数 変数が宣言されている関数が呼び出されるごとに、変数 の新しいインスタンスが自動的に作成されることを指 します。静的オーバレイを使用するシステム ( 関数が再 帰的に呼び出された場合でも、ローカル変数が 1 つのイ ンスタンスにだけ存在 ) でのローカル変数の処理と比較 「レ できます。ローカル変数と呼ばれることもあります。 ジスタ変数」と比較してください。 シミュレータ ホスト上で実行し、ターゲットプロセッサと可能な限り 同一に動作するデバッグツール。シミュレータは、ハー ドウェアが使用できないときか、ハードウェアをデバッ グに使わないときに、アプリケーションのデバッグのた めに使用します。物理的な周辺デバイスには通常接続し ません。シミュレーションされたプロセッサは、多くの 場合は実際のハードウェアよりも ( 場合によっては大幅 に ) 低速になります。 修飾子 「型修飾子」を参照してください。 周辺デバイス メモリや入出力デバイスなど、プロセッサ以外のハード ウェアコンポーネント。 重要度 何らかの問題を検出したときにアセンブラ、コンパイ ラ、デバッガから返される診断応答の重要度。通常、重 要度は、リマーク、ワーニング、エラー、致命的なエ ラーの 4 段階です。リマークは問題の可能性を示すだけ ですが、致命的なエラーの場合はプログラミングツール が処理の完了前に終了したことを示します。 375 ショートアドレッシング 多くのマイクロコントローラでは、内部 RAM、メモリ マップド I/O へのアクセスを効率的に行うため、特別な アドレッシングモードがあります。そのため、組込みシ ステム用の多くのコンパイラで、拡張機能としてショー トアドレッシングが提供されています。「データポイン タ」も参照してください。 シンボル レジスタ、絶対値、メモリアドレス ( 相対、絶対 ) のい ずれかを示す名前。 シンボル位置 正確なアドレスがわからないためにシンボル名を使用 している位置。 す スケジューラ RTOS でタスク切替えを担当する部分。また、実行を許 可するタスクの選択も担当します。スケジューリングア ルゴリズムには多種ありますが、ほとんどは静的スケ ジューリング ( コンパイル時に実行 ) または動的スケ ジューリング ( 次に実行するタスクを、タスク切替え時 のシステムの状態に応じて実行時に選択 ) のいずれかで す。ほとんどのリアルタイムシステムでは、システムの リアルタイム要件違反を排除できるため、静的スケ ジューリングが使用されています。 スケルトンコード ユーザがコードを特定用途化できる、未完成のコードフ レームワーク。 スコープ アプリケーションコード内で、関数や変数を名前で参照 できる部分。ある項目のスコープは、ファイル、関数、 ブロックのいずれかに制限されることがあります。 スタックセグメント スタック用エリアを確保するセグメント。ほとんどのプ ロセッサは呼出しとパラメータで同一のスタックを使 用しますが、一部のプロセッサでは個別のスタックを使 用します。 IAR Embedded Workbench® IDE 376 ユーザガイド スタックフレーム データオブジェクト ( 保持レジスタ、ローカル変数、特 定のスコープ用に一時的に保持する必要のある他の データオブジェクト ) を含むデータ構造 ( 通常は関数 )。 以前のコンパイラでは、関数全体でスタックフレームの サイズとレイアウトが固定されていましたが、最近のコ ンパイラでは、関数内の任意の箇所 / 時間で、非常に動 的にレイアウトとサイズを変更できる場合があります。 ステップ実行 デバッガで一度に 1 つずつ命令や C 言語の文を実行する ことを指します。 せ 静的オーバレイ パラメータや自動変数に動的配置方式を使用する代り に、リンク時にパラメータや自動変数にエリアを割り当 てます。この方法ではスタックの使用効率は最悪になり ますが、スタックアクセスが高価な、またはスタックア クセスがまったくない小型チップには、適している場合 があります。 静的オブジェクト リンク時にメモリが割り当てられ、システム起動時 ( ま 「動的 たは最初の使用時 ) に作成されるオブジェクト。 オブジェクト」と比較してください。 静的割当てメモリ この種のメモリは、リンク時に 1 度だけ割り当てられ、 アプリケーションの実行終了まで有効です。global また は static として宣言された変数が、この方法で割り当て られます。 セグメントマップ セグメントおよびそれらのアドレスのセット。 絶対アドレス IAR XLINK リンカが割り当てるアドレスではなく、ソース コードで指定したオブジェクトの特定メモリアドレス。 絶対セグメント リンク前にメモリ中に固定アドレスが割り当てられて いるセグメント。 セマフォ リソースへの排他的アクセスを保証するために使用す るフラグの一種。リソースとしては、ハードウェアポー ト、構成メモリ、変数などがあります。複数の異なるタ スクが同一リソースにアクセスする必要がある場合は、 リソースにアクセスする部分のコード ( クリティカルセ クション ) をすべてのタスクに対して排他的にする必要 があります。これには、そのリソースを保護するセマ フォを取得し、他のタスクからそのリソースを遮断しま す。他のタスクがそのリソースを使用する場合は、その タスクもセマフォを取得する必要があります。セマフォ が使用中の場合は、セマフォが解放されるまで待機する 必要があります。セマフォが解放された後は、2 番目の タスクが実行を許可され、セマフォを取得してリソース への排他的アクセスを実行できます。 ゼロオーバヘッドループ ループ条件 ( ループ開始地点へ戻る分岐を含む ) の処理 に時間がまったくかからないループ。通常はプロセッサ の特別なハードウェア機能として実装されるため、利用 できないアーキテクチャがあります。 宣言 オブジェクト ( 変数、関数 ) が存在することをコンパイ ラに対して明示することを指します。オブジェクトその ものは、1 つの翻訳単位 ( ソースファイル ) だけで定義 する必要があります。オブジェクトは、使用前に宣言 し、定義しておく必要があります。通常は、多くのファ イルで使用するオブジェクトを 1 つのソースファイルで 定義します。オブジェクトの宣言はヘッダファイルに記 述し、そのオブジェクトを使用するファイルでそのヘッ ダファイルをインクルードします。 以下に例を示します。 /* 変数 "a" がどこかに存在します。Function "b" で 2 つの int パラメータを指定して、 1 個の int を戻します。*/ extern int a; int b(int, int); そ ゾーン プロセッサによって、メモリアーキテクチャは大幅に異 なります。ゾーンとは、C-SPY で名前付きメモリエリア を示す用語です。たとえば、個別にアドレッシング可能 なコードおよびデータメモリを持つプロセッサでは、少 なくとも 2 つゾーンがあります。複雑なバンクメモリ方 式を採用したプロセッサの場合は、ゾーンが複数存在す る場合があります。 た ターゲット 1. アーキテクチャ。2. ハードウェア。アプリケーション 開発対象の組込みシステムを指します。この用語は、通 常はシステムとホストシステムの区別に使用します。 ターミナル I/O IAR C-SPY デバッガの端末シミュレーションウィンドウ。 タイマ プログラム実行とは無関係にカウントを実行する周辺 デバイス。 タイムスライス RTOS で、タスクスケジューリングアルゴリズムを実行せ ずに 1 つのタスクを実行可能な ( 最長 ) 時間。タスク切替 えまでに、複数タイムスライスにわたって 1 つのタスク が実行されることがあります。また、プリエンプティブ システムで、より優先順位の高いタスクが割込みにより 実行された場合のように、タスクが自身に割り当てられ たタイムスライス全体を使用できないこともあります。 タスク ( スレッド ) タスクは、システムでの実行スレッドです。多くの並列 で実行されるタスクを含むシステムを、マルチタスクシ ステムと呼びます。プロセッサは一度に 1 つの命令スト リームだけを実行するため、ほとんどのシステムは何ら かのタスク切替えメカニズム ( 多くの場合コンテキスト 切替えと呼ぶ ) を実装し、処理時間をすべてのタスクに 377 配分します。次に実行を許可するタスクの決定プロセス を、スケジューリングと呼びます。一般的なスケジュー リング方法として、 「プリエンプティブマルチタスク」 と「ラウンドロビン」があります。 ち チェックサム データブロックの内容によって変化する計算値。データ の破損の検出用にそのデータと併せて保存しておきま す。「CRC ( 巡回冗長検査 )」と比較してください。 て 定義 変数か関数そのものを指します。アプリケーションの各 変数 / 関数につき 1 つだけ、定義を記述できます。「仮 定義」も参照してください。 以下に例を示します。 int a; int b(int x, int y) { return x + y; } データモデル データモデルは、デフォルトのメモリタイプを指定しま す。言い換えれば、このデータモデルで通常、下記の1 つまたは複数を制御します。静的 / グローバル変数、動 的に割り当てられたデータ、ランタイムスタックに、ア クセスするために使用される方法および生成される コードを、制御します。また、デフォルトのポインタタ イプと、静的 / グローバル変数が配置されるデータセグ メントも制御します。1 つのプロジェクトで同時に使用 できるデータモデルは 1 つだけです。また、プロジェク ト内のすべてのユーザモジュールとライブラリモ ジュールで同一のモデルを使用する必要があります。 デジタル信号プロセッサ (DSP) マイクロプロセッサに類似するデバイスで、内部 CPU が離散時間信号処理用に最適化されています。デジタル 信号プロセッサは、マイクロプロセッサの標準命令に加 えて、一般的な信号処理計算を高速に実行するための複 雑な命令セットもサポートしています。 デバイス記述ファイル 入出力レジスタ (SFR) 定義、割込みベクタ、制御レジス タ定義などのデバイス固有の情報を含む、IAR C-SPY デ バッガで使用されるファイル。 デバイスドライバ 高水準のプログラミングインタフェースを周辺デバイ スに提供するソフトウェア。 データバンキング 「バンクデータ」を参照してください。 データ表現 データタイプのメモリでの配置方法、データタイプが表 現する値の範囲。 データポインタ 多くのマイクロコントローラでは、異なるメモリタイプ やアドレス空間にアクセスするため、複数のアドレッシ ングモードがあります。通常は、組込みシステム用コン パイラでは、 空きメモリに効率的にアクセスできるように、 複数のデータポインタタイプセットに対応しています。 IAR Embedded Workbench® IDE 378 ユーザガイド と 動的オブジェクト 実行時に割当て、作成、破棄、解放が行われるオブジェ クト。動的オブジェクトは、ほとんどの場合、動的に割 り当てられたメモリに格納されます。「静的オブジェク ト」と比較してください。 動的初期化 C で記述されたプログラム内の変数は、実行の初期段階 で (main 関数が呼び出される前に ) 初期化されます。こ れらの変数は、コンパイル時やリンク時に決定される静 的な値で初期化されます。これを静的初期化と呼びま す。Embedded C++ では、グローバルオブジェクトのコ ンストラクタや、動的メモリ割当てなどのコードを実行 することで、変数の初期化が必要な場合あります。 動的メモリ割当て 変数の保存には、リンク時に静的に行う方法と、実行時 に動的に行う方法の 2 つがあります。動的メモリ割当て は、多くの場合はヒープから実行されます。ヒープのサ イズにより、動的オブジェクトや変数に使用可能なメモ リ量が決定されます。動的メモリ割当てには、同時に使 用されない複数の変数やオブジェクトを同一メモリに 格納することで、アプリケーションで必要なメモリ量を 「ヒープメモリ」も 削減できるという利点があります。 参照してください。 特殊機能レジスタ (SFR) マイクロコントローラのハードウェアコンポーネント に対するリード / ライトに使用するレジスタ。 トラップ 命令ストリームに特殊な命令を挿入することで実行さ れる割込み。多くのシステムでは、トラップを使用し て、オペレーティングシステム関数を呼び出します。ソ フトウェア割込みとも呼びます。 ね ネスト割込み 割込みに対して別の割込みを実行できるシステムを、ネ スト割込み機能を持つと言います。 の ノイマンアーキテクチャ 命令とデータの両方が共通のデータチャネルで転送さ れるコンピュータアーキテクチャ。「ハーバードアーキ テクチャ」と比較してください。 は ハーバードアーキテクチャ ハーバードアーキテクチャベースのマイクロコントロー ラは、独立したデータバスと命令バスを備えています。 これにより、並列実行が可能となっています。命令の フェッチ中に、現在の命令がデータバスで実行されます。 現在の命令が完了すると、次の命令をすぐに実行できま す。これにより、理論上はノイマンアーキテクチャより も大幅に高速な実行が可能です。ただし、回路は複雑に 「ノイマンアーキテクチャ」と比較してくださ なります。 い。 パイプライン 計算が流れる一連のステージで構成される構造。他の処 理がパイプライン経由で実行中でも、パイプラインの開 始地点で新しい処理を開始できます。 派生品 マイクロプロセッサとマイクロコントローラのシリー ズまたはファミリに属する派生プロセッサ。 派生プロセッサ コンパイラがサポートする別のチップ構成。 「派生品」 を参照してください。 バックトレース C 関数をコンパイルしたコードで、完全な関数の呼出し スタックを、プログラムカウンタの位置に関わらず、ま た実行に影響を及ぼすことなく、IAR C-SPY® デバッガ で表示できるようにするための情報。 バッチファイル コマンドラインインタプリタで実行されるオペレー ティングシステムコマンドを記述したテキストファイ ル。UNIX では、コマンドラインインタプリタが UNIX シェルに含まれているため、 「シェルスクリプト」と呼び ます。バッチファイルを使用して、既存のコマンドを組み 合せ、新しいコマンドとして実行することができます。 パラメータの受渡し 「呼出し規約」を参照してください。 379 バンク 「メモリバンク」を参照してください。 バンク切替え 異なるメモリバンクの切替え。このソフトウェア技術を 使用することで、メモリの異なる部分が同一のアドレス 空間を占有できるため、コンピュータの使用可能メモリ が増加します。 非初期化メモリ リセット時に任意の値を持つことができる、またはソフ トリセット時にリセット前の値を保持できるメモリ。 バンク切替えルーチン メモリバンクを選択するコード。 ビットフィールド 1 単位として見なされるビットのグループ。 バンクコード 複数のメモリバンクに分散したコード。各関数はそれぞ れ 1 つのバンクだけにしか常駐できません。 非バンクメモリ マイクロコントローラの物理アドレス空間で、各メモリ アドレスにつき 1 つ格納場所があること。 バンクデータ 複数のメモリバンクに分散したデータ。各データオブ ジェクトがそれぞれ 1 つのメモリバンク内に収まる必要 があります。 ふ バンクメモリ 同一アドレス用に複数の格納場所があるメモリ。「メモ リバンク」も参照してください。 汎用ポインタ ハーバードアーキテクチャベースのマイクロコント ローラなどで、すべてのメモリタイプを示すことができ るポインタ。 ひ ヒープサイズ 動的に割当て可能なメモリの合計サイズ。 ヒープメモリ ヒープとは、システムで動的メモリ割当て用に確保され たメモリプールです。ヒープの一部をアプリケーション 専用に使用することができます。ヒープから割り当てた メモリは、アプリケーションが明示的に解放してヒープ に戻すまで有効です。このタイプのメモリは、アプリ IAR Embedded Workbench® IDE 380 ケーションを実行するまでオブジェクト数がわからな い場合に便利です。このタイプのメモリは、メモリ容量 が限られているシステムや、長期間実行するシステムで 使用すると問題が生じることがあります。 ユーザガイド フォーマット指定子 printf などのライブラリ関数で文字列のフォーマットを 指定するために使用します。次の例では、関数呼出しで フォーマット指定子 %c を 1 つ含むフォーマット文字列 を 1 つ指定しており、a の値を 1 つの ASCII 文字として 出力します。 printf("a = %c", a); 不揮発性ストレージ バッテリバックアップ RAM、ROM、磁気テープ、磁気 ディスクなどの、電源を切断してもデータを保持できるメ 「揮発性ストレージ」と比較してください。 モリデバイス。 副作用 C/C++ の式がシステムの状態を変更することを、副作用 があると言います。例として、変数への代入や、変数に 後置インクリメント演算子を使用する場合などがあり ます。C/C++ の規格では、副作用のある変数を式で複数 回使用しないように規定されています。たとえば、次の 文はこのルールに違反します。 *d++ = *d; プリエンプティブマルチタスク RTOS のタスクは、より優先順位の高いプロセスが有効 になるまでの間、実行を許可されます。割込みの結果、 優先順位の高いタスクが有効になる場合があります。プ リエンプティブとは、タスクが一定の実行時間 ( タイム スライス ) を割り当てられている場合でも、プロセッサ の使用権を失うことがあることを意味します。割込みが 発生するごとに、タスクスケジューラはそのときに有効 なタスクの中で優先順位が最高のものを特定し、そのタ スクに処理を切り替えます。特定されたタスクが割込み 前に実行されていたタスクと異なる場合は、前のタスク は割込み時点の状態で一時停止します。 「ラウンドロビン」と比較してください。 プリプロセッサ 「C 形式プリプロセッサ」を参照してください。 プリプロセッサディレクティブ 実際のコードの解析を開始する前に実行されるディレ クティブ。 ブレークポイント 1. コードブレークポイント : プログラム中、そこに到達 するとデバッグ用の特殊な処理が実行される地点。通常 は、プログラムの実行の停止や、プログラムの変数の一 部または全部のダンプを行う箇所に、ブレークポイント を使用します。ブレークポイントは、プログラムの実行 を詳細に検証する場合にプログラムそのものの一部と して、またはプログラマがデバッグツールでの対話セッ ションの一部として設定します。 2. データブレークポイント : メモリ中で、そこにアクセ スするとデバッグ用の特殊な処理が実行される地点。通 常は、リード / ライト処理のいずれかでアドレス位置が アクセスされてプログラムの実行を停止する場合に、 データブレークポイントを使用します。 3. イミディエイトブレークポイント : メモリ中で、そこ にアクセスするとデバッグ用の特殊な処理が実行され る地点。通常は、メモリアクセス命令の実行中 ( アクセ スの種類に応じて、実際のメモリアクセスの前後 ) に、 プログラム実行を一時停止してユーザが指定したアク ションを実行する場合に、イミディエイトブレークポイン トを使用します。実行はその後再開されます。この機能は、 C-SPY のシミュレータバージョンでのみ使用できます。 プログラムカウンタ (PC) 命令のアドレッシングに使用する特殊なプロセッサレ 「プログラムロケーションカウンタ (PLC)」と比 ジスタ。 較してください。 プログラムロケーションカウンタ (PLC) IAR アセンブラで、現在の命令のコードアドレスを指定 する際に使用します。PLC は、算術式で使用できる特別 なシンボル ( 通常は $) で表現されます。単にロケーショ ンカウンタ (LC) とも呼びます。 プロジェクト ユーザアプリケーション開発プロジェクト。 プロジェクトオプション アプリケーションを実行するターゲットプロセッサな どの、プロジェクト全体に適用される一般オプション。 ほ ポインタ 指定した型の他のオブジェクトのアドレスを格納する オブジェクト。 飽和演算 ほとんどの C/C++ の実装では、mod–2N 2 の補数ベース の演算を使用します。その場合、オーバフロー時には、 定義域で値がラップされます。つまり、(127 + 1) = -128 となります。一方、飽和演算では、定義域でのラップが 許可されていません。たとえば、定義域の上限値が 127 の場合、(127 + 1) = 127 となります。飽和演算は、ラッ プが許可されているとオーバフロー状態が致命的な問 題になる信号処理で、よく使用されます。 ホスト ターゲットプロセッサと通信するコンピュータ。この用 語は、デバッガを実行するコンピュータと、開発した組 込みアプリケーションを実行するマイクロコントロー ラとを区別するために使用します。 381 翻訳単位 ソースファイルと、プリプロセッサディレクティブ #include でインクルードされるすべてのヘッダファイル やソースファイル (#if や #ifdef などの条件プリプロセッ サディレクティブで省略された行を除く ) を合せたもの。 ま マイクロコントローラ 組込みシステムとして動作する 1 つの集積回路上のマイ クロプロセッサ。マイクロコントローラは、CPU と同様 に、小容量の RAM、PROM、タイマ、入出力ポートを 内蔵しています。 マイクロプロセッサ 1 つ ( または少数の ) 集積回路に内蔵された CPU。シング ルチップマイクロプロセッサには、メモリ、メモリ管理、 キャッシュ、浮動小数点演算ユニット、入出力ポート、タ イマなどのコンポーネントを内蔵できます。このような デバイスを、マイクロコントローラとも呼びます。 マクロ 1. アセンブラマクロは、ユーザ定義のアセンブラ行セッ トであり、後で指定のマクロ名を参照することにより、 ソースファイルに展開されます。参照時には、パラメー タの置換が行われます。 2. C マクロは、ソースファイルの前処理中に使用される テキスト置換の仕組みです。マクロは、#define プリプ ロセッサディレクティブを使用して定義します。それ以 降の翻訳単位でマクロ名が記述された箇所が、各マクロ に対応する置換用テキストに置換されます。 3. C-SPY マクロは、IAR C-SPY デバッガの機能を拡張する ためにユーザが記述できるプログラムです。C-SPY マクロ は、典型的な例として、ブレークポイントに対応付けて 使用します。ブレークポイントに到達したときにそのマク ロを実行し、周辺デバイスのシミュレーション、複雑な条 件の評価、トレースの出力などを行うことができます。 C-SPY マクロ言語は、C の簡易版ですが、C ほど厳密な データ型がありません。 IAR Embedded Workbench® IDE 382 ユーザガイド め 命令ニーモニック アセンブラ言語で、マシン命令を表現するために使用さ れる語や頭辞語。プロセッサによって命令セットが異な るため、ADD、BR ( 分岐 )、BLT ( 値が小さい場合に分 岐 )、MOVE、LDR ( レジスタのロード ) などの命令を表 現するニーモニックセットも異なります。 メールボックス RTOS でのメールボックスとは、複数のタスク間の通信 拠点です。タスクは、別のタスクのメールボックスに メッセージを保存することで、そのタスクにメッセージ を送信できます。メールボックスは、メッセージキュー、 メッセージポートとも呼びます。 メモリアクセスコスト メモリアクセスコストは、アクセス実行に必要なクロッ クサイクル数かコードのバイト数で示されます。サイズ の大きな命令や多数の命令が必要なメモリは、よりサイズ が小さい命令や少ない命令でアクセスできるメモリよ りもアクセスコストが高い、というように使用します。 メモリエリア メモリの領域を意味します。 メモリバンク バンクメモリ内のシーケンシャルメモリの最小単位。マ イクロコントローラの物理アドレス空間で一度に認識 できるメモリバンクは 1 つです。 メモリマップ マイクロコントローラで使用可能なさまざまなメモリ エリアのマップ。 メモリモデル メモリ階層やシステムが処理できるメモリ容量を示し ます。アプリケーションで同時に使用できるメモリモデ ルは 1 つだけです。また、すべてのユーザモジュールや ライブラリモジュールで同一のモデルを使用する必要 があります。 も モジュール リンクの基本単位。モジュールには、シンボル定義 ( エ クスポート ) や外部シンボルへの参照 ( インポート ) が 含まれます。C/C++ のコンパイル時には、翻訳単位ごと に 1 つモジュールが生成されます。アセンブラでは、各 ソースファイルから複数のモジュールが生成されるこ とがあります。 よ 呼出し規約 プログラム内の関数が別の関数を呼び出す方法を規定 したもの。レジスタパラメータの処理方法、値を返す方 法、呼出し先関数が保持するレジスタなどが規定されて います。C/C++ 関数では、すべてコンパイラが自動的に 処理します。アセンブラ言語で記述したコードの場合 は、C/C++ 関数からの呼出しや、C/C++ 関数の呼出しを 実行できるように、呼出し規約のルールに従う必要があ ります。C の呼出し規約および C++ の呼出し規約は、同 一でない場合があります。 ら ライブラリ 「ランタイムライブラリ」を参照してください。 ラウンドロビン オペレーティングシステムでのタスクスケジューリン グ方法。すべてのタスクの優先順位が同一で、タスクを 順番に 1 つずつ実行します。「プリエンプティブマルチ タスク」と比較してください。 ランタイムモデル属性 相互に互換性のない複数のモジュールがアプリケー ションにリンクされないようにする仕組み。ランタイム 属性は、名前付きのキーと対応する値のペアで構成され ます。 ランタイムライブラリ 便利なルーチンをまとめて1つのオブジェクトファイ ルに保存し、任意のアプリケーションにリンクできるよ うにしたもの。 り リアルタイムオペレーティングシステム (RTOS) 割込みが発生してから割込みハンドラが開始されるま での遅延と、タスクのスケジューリング方法を保証する オペレーティングシステム。一般的に RTOS は、通常の デスクトップ用オペレーティングシステムよりも大幅 に小さなサイズとなっています。「リアルタイムシステ ム」と比較してください。 リアルタイムシステム プロセスが時間に依存するコンピュータシステム。 「リ アルタイムオペレーティングシステム (RTOS)」と比較し てください。 リセット システムの初期状態から再起動することを指します。リ セットは、ハードウェア ( ハードリセット ) またはソフ トウェア ( ソフトリセット ) から実行できます。ハード リセットは通常は電源投入と区別できませんが、ソフト リセットは区別できます。 リンカコマンドファイル IAR XLINK リンカが使用するファイル。アプリケーショ ンがターゲットチップに適応するように、メモリセグメ ントを配置できる場所を指定するコマンドラインオプ ションが含まれています。 チップ固有の情報の多くは、ソースコードではなくリン カのコマンドファイルで指定するため、リンカコマンド ファイルはコードの移植性を実現するためにも利用し ます。 特に、リンカはセグメントの配置、スタックサイズ、 ヒープサイズを指定します。 2つのモジュールの両方で定義されている各キーの値が同 一の場合にだけ、これらのモジュールをリンクできます。 383 れ 例外 プロセッサハードウェア、メモリ管理ユニット (MMU) などの、プロセッサと緻密に結合されたハードウェアが 開始する割込み。アーキテクチャルールの違反 ( 保護メ モリへのアクセス ) や、極端なエラー状態 ( ゼロによる 除算 ) を示します。 レジスタ 特にアクセス速度が高速で、プログラム実行時の一時記 憶エリアとして確保されている小型オンチップメモリ ユニット。通常の容量は数バイトです。 レジスタ定数 システム初期化の際に、プロセッサの専用レジスタに ロードされる値。コンパイラは、定数が専用レジスタに 格納されていることを前提に、コードを生成することが できます。 レジスタ変数 通常、レジスタ変数は、関数の ( スタック ) フレームの 代りにレジスタに格納されるローカル変数を指します。 レジスタ変数は、メモリアクセスが不要で、コンパイラ でレジスタ変数を使用することで命令の実行時間を短 縮できるため、他の変数よりも大幅に高速です。「自動 変数」も参照してください。 レジスタロック 通常のコード生成時に、コンパイラで一部のプロセッサレ ジスタの使用を禁止することを指します。多くの状況で使 用します。たとえば、高速化のため、システムの一部をア センブラ言語で記述する場合があります。この部分に、専 用のプロセッサレジスタを割り当てる場合もあります。ま た、オペレーティングシステムやサードパーティ製ソフト ウェアでレジスタが使用される場合もあります。 列挙型 その型の変数で可能なすべての値のリストを定義に含 む型。一般的な例として、[true, false] のリスト中のいず れかの値を取るブール値や、[Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] のいずれかの値を 取る曜日などがあります。列挙型は、C や Ada などの型 付き言語の機能です。 IAR Embedded Workbench® IDE 384 ユーザガイド 文字、整数 ( サイズ固定 )、浮動小数点数などの型も、大 きな意味では列挙型と見なされる場合があります ( 通常 は列挙型には属さない )。 この用語と、C++ 言語 (Embedded C++ を除く ) で使用さ れる例外という用語とを混同しないでください。 ろ ローカル変数 「自動変数」を参照してください。 ロケーションカウンタ 「プログラムロケーションカウンタ (PLC)」を参照してく ださい。 論理アドレス 「仮想アドレス ( 論理アドレス )」を参照してください。 わ 割込みベクタテーブル 割込みベクタをタイプ別にインデックス化して格納し たテーブル。このテーブルには、プロセッサでの割込み と割込みサービスルーチンのマッピングが格納され、プ ログラマが初期化する必要があります。 割込みベクタ 割込み発生時に実行されるコードの一部か、そのコード を示すポインタ。 割込み 組込みシステムでは、割込みを使用して、タイマオーバ フローやボタンが押されたときなどの外部イベントを 即座に検出します。 割込みは、通常処理を一時停止し、制御フローを「割込 みハンドラ」ルーチンに一時的に渡す非同期イベントで す。割込みは、ハードウェア ( 入出力、タイマ、マシン チェック ) とソフトウェア ( モニタプログラム、システ 「ト ム呼出し、トラップ命令 ) の両方により発生します。 ラップ」と比較してください。 索引 A Allow C-SPY-specific output file (XLINK オプション ). . . . 327 asm ( ファイル名の拡張子 ). . . . . . . . . . . . . . . . . . . . . . . 15 axx ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 15 B [Batch Build Configuration] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 232 bin ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . 14 bin, common ( サブディレクトリ ) . . . . . . . . . . . . . . . . . 13 build configuration 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 C c ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . . 15 cfg ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . 16, 243 ’CHAR’ の型 ( コンパイラオプション ) . . . . . . . . . . . . 305 Command file configuration tool (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 common ( ディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . 13 Compiler Reference Guide ([ ヘルプ ] メニュー ) . . . . . 258 Conditions ([ アクション ] ダイアログ ) . . . . . . . . . . . . 206 config, common ( サブディレクトリ ) . . . . . . . . . . . . . . . 14 cpp ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 CPU 派生品、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 CPU レジスタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 CRC、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Cstartup、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 C++ チュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 C++ のキーワード、エディタのテキストスタイル . . . 93 C++ のコメント、エディタのテキストスタイル . . . . . 93 C-SPY IDE リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . 261 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 環境の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 デバッガシステム 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 デバッガの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 プラグインモジュール、ロード . . . . . . . . . . . . . . . 108 C-SPY オプション . . . . . . . . . . . . . . . . . . . . . . . . . 230, 341 [Run to] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 342 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 デバイス記述ファイル . . . . . . . . . . . . . . . . . . . . . . . 342 ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 マクロ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 C-SPY 式 [ ウォッチ ] ウィンドウ、使用 . . . . . . . . . . . . . . . . 120 クイックウォッチ、使用 . . . . . . . . . . . . . . . . . . . . . 120 ツールチップウォッチ、使用 . . . . . . . . . . . . . . . . . 120 評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 C-SPY ドライバ シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 C-SPY のウィンドウ main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 ウォッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 関数トレース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 逆アセンブリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 コードカバレッジ . . . . . . . . . . . . . . . . . . . . . . . 147, 284 自動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 シンボルメモリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 スタック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 静的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ターミナル I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 トレース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 トレースシキ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 トレースを検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 プロファイリング . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 メモリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 呼出しスタック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 ライブウォッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 レジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 385 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ローカル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 C-SPY のデバッグ情報 (XLINK オプション ) . . . . . . . 326 C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 345 execUserExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserFlashExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserSetup、例 . . . . . . . . . . . . . . . . . . . . . . . . . 55, 61 __closeFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 __driverType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 __evaluate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 __openFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 __orderInterrupt . . . . . . . . . . . . . . . . . . . . . . . . . . 356–357 __readFileByte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 __readFileByte ( システムマクロ ) . . . . . . . . . . . . . . 358 __registerMacroFile . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 __resetFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 __setCodeBreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 __setDataBreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 __setSimBreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 __sourcePosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 __strFind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 __subString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 __toLower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 __toString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 __toUpper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 __writeFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 __writeFileByte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 __writeMemoryByte . . . . . . . . . . . . . . . . . . . . . . . . . . 367 __writeMemory16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 __writeMemory32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 __writeMemory8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118, 345 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 [ クイックウォッチ ] を使用 . . . . . . . . . . . . . . . . 142 セットアップマクロとセットアップファイル の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ブレークポイントに接続 . . . . . . . . . . . . . . . . . . . 143 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 条件文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 セットアップマクロファイル 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 IAR Embedded Workbench® IDE 386 ユーザガイド 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 セットアップマクロ関数 execUserFlashInit . . . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserFlashReset . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserPreload . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 execUserSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ダイアログボックス . . . . . . . . . . . . . . . . . . . . . . . . . 293 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ブロック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118, 346 マクロ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 ループ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 WDT のステータスのチェック . . . . . . . . . . . . . . 142 レジスタのステータスのチェック . . . . . . . . . . . 142 ログマクロの作成 . . . . . . . . . . . . . . . . . . . . . . . . 143 C-SPY 式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 C/C++ 構文スタイル、オプション . . . . . . . . . . . . . . . . 242 C 関数情報、C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 C 形式プリプロセッサ、定義 . . . . . . . . . . . . . . . . . . . . 371 C 言語のシンボル、C-SPY 式で使用 . . . . . . . . . . . . . . 117 C 言語の変数、C-SPY 式で使用 . . . . . . . . . . . . . . . . . . 117 C コンパイラコンパイラを参照 C のキーワード、エディタのテキストスタイル . . . . . 93 C のコメント、エディタのテキストスタイル . . . . . . . 93 D dbg ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 dbgt ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . 16 ddf ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . 16, 108 dep ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 Disable language extensions ( コンパイラオプション ) . . 304 DLIB ライブラリ関数、リファレンス情報 . . . . . . . . . . 92 dni ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . 16–17 do ( マクロ文 ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 doc ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . 15 doc、common ( サブディレクトリ ) . . . . . . . . . . . . . . . . 14 DSP デジタル信号プロセッサを参照。 dxx ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 Dynamic Data Exchange (DDE) . . . . . . . . . . . . . . . . . . . . . 98 外部エディタの呼び出し . . . . . . . . . . . . . . . . . . . . . 240 F E H [Edit Filename Extensions] ダイアログボックス ([ ツール ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 EEC++ syntax ( コンパイラオプション ) . . . . . . . . . . . 304 EEPROM、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Embedded C++ 構文、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . 304 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Embedded C++ Technical Committee . . . . . . . . . . . . . xxxiii Embedded C++ ( コンパイラオプション ) . . . . . . . . . . 304 Embedded Workbench エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 バージョン番号、表示 . . . . . . . . . . . . . . . . . . . . . . . 258 メインウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . 70, 186 リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 [Embedded Workbench の起動 ] ダイアログボックス ([ ヘルプ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Embedded Workbench ユーザガイド ([ ヘルプ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 EOL 文字 ( エディタのオプション ). . . . . . . . . . . . . . . 237 EPROM、定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 ewd ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . 16 ewp ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . 16 eww ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . 16, 71 execUserExit (C-SPY セットアップマクロ ) . . . . . . . . . 350 execUserFlashExit (C-SPY セットアップマクロ ) . . . . 350 execUserFlashInit (C-SPY セットアップマクロ ) . . . . . 350 execUserFlashReset (C-SPY セットアップマクロ ) . . . 350 execUserPreload (C-SPY セットアップマクロ ) . . . . . . 350 execUserReset (C-SPY セットアップマクロ ) . . . . . . . . 350 execUserSetup (C-SPY セットアップマクロ ) . . . . . . . 350 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 61 h ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . . 16 fmt ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 for ( マクロ文 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 I i ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . . 16 IAR Compiler Reference Guide . . . . . . . . . . . . . . . . . . . . . 18 iarbuild、コマンドラインからのビルド . . . . . . . . . . . . . 88 IarIdePm.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 IAR アセンブラリファレンスガイド . . . . . . . . . . . . . . . 18 IAR システムズの Web サイト . . . . . . . . . . . . . . . . . . . . 19 IAR リンカおよびライブラリツールリファレンス ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–4 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 if else ( マクロ文 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 if ( マクロ文 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 inc ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . 15 inc ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 Include compiler call frame information ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . . . . . 309 ini ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . 17 Intel-extended、C-SPY 入力フォーマット . . . . . . . . 8, 105 ISO/ANSI C 準拠するコンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . 305 ISO/ANSI に厳密に準拠 ( コンパイラオプション ) . . 305 ISO/ANSI に緩く準拠 ( コンパイラオプション ) . . . . 305 I/O エミュレーションモジュール付き (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . 326 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 L lib ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . . 15 lightbulb アイコン、本ガイドの . . . . . . . . . . . . . . . . xxxiv 387 Linker command file configuration tool . . . . . . . . . . . . . . 334 lms.log、ライセンス管理システムのログファイル . . 258 lst ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . 16 L 値、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 R mac ( ファイル名の拡張子 ) . . . . . . . . . . . . . . 16, 107, 138 MAC、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 main.sxx ( アセンブラチュートリアルファイル ) . . . . . 63 main 関数、C-SPY 起動時に実行 . . . . . . . . . . . . . 107, 342 map ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . 16–17 maxmin.sxx ( アセンブラチュートリアルファイル ) . . 63 MODULE ( アセンブラディレクティブ ) . . . . . . . . . . . 64 Motorola、C-SPY 入力フォーマット . . . . . . . . . . . . 8, 105 readme ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–15 readme.htm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 remarks コンパイラの診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 return ( マクロ文 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 ROM モニタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . 105, 372 RTOS、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 RTOS 認識 (C-SPY プラグインモジュール ) . . . . . . . . 108 Run to (C-SPY オプション ) . . . . . . . . . . . . . . . . . . 107, 342 rxx ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 17 R 値、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 N S Navigate Backward ( ボタン ) . . . . . . . . . . . . . . . . . . . . . 187 NDEBUG、プリプロセッサシンボル . . . . . . . . . . . . . . 77 New Document ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . 187 NOP、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Scanf フォーマッタ ( 一般オプション ) . . . . . . . . . . . . 300 SCC。ソースコード管理システムを参照してください。 settings ( ディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . . 17 SFR 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 ヘッダファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 sfr ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . . 17 sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 source code コンパイラリストファイルに含める . . . . . . . . . . . 309 テンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 src ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . . 15 src、common ( サブディレクトリ ). . . . . . . . . . . . . . . . . 14 stdin と stdout C-SPY ウィンドウへのリダイレクト . . . . . . . . . . . 116 ファイルへのリダイレクト . . . . . . . . . . . . . . . . . . . 116 STL コンテナ拡張 (IDE オプション ). . . . . . . . . . . . . . 248 sxx ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 17 M O Open Workspace ([ ファイル ] メニュー ) . . . . . . . . . . . 214 P parameters, typographic convention . . . . . . . . . . . . . . . xxxiii pbd ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 pbi ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 16 pew ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . 16 plugins、common ( サブディレクトリ ) . . . . . . . . . . . . . 14 plugins ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . 15 Printf フォーマッタ ( 一般オプション ) . . . . . . . . . . . . 300 prj ( ファイル名の拡張子 ). . . . . . . . . . . . . . . . . . . . . . . . 17 Project Make、オプション . . . . . . . . . . . . . . . . . . . . . . . 244 [project の構成 ] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 PROM、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 IAR Embedded Workbench® IDE 388 PUBLIC ( アセンブラディレクティブ ) . . . . . . . . . . . . . 64 ユーザガイド T tutor ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . 15 U UBROF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 11 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 UBROF (Universal Binary Relocatable Object Format)。 UBROF を参照してください。 W Web サイト、IAR システムズ . . . . . . . . . . . . . . . . . . . . . 19 Web サイト、推奨 . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii while ( マクロ文 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 wsdt ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . 17 www.iar.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 X XAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 XAR オプション [ 出力 ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 xcl ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 17 xlb ( ファイル名の拡張子 ) . . . . . . . . . . . . . . . . . . . . . . . 17 XLIB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 オプション、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 XLINK 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 コマンドラインバージョン . . . . . . . . . . . . . . . . . . . . 69 診断、無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 XLINK オプション . . . . . . . . . . . . . . . . . . . . . . . . . 325, 336 Allow C-SPY-specific output file . . . . . . . . . . . . . . . . . 327 Command file configuration tool . . . . . . . . . . . . . . . . . 334 C-SPY のデバッグ情報 . . . . . . . . . . . . . . . . . . . . . . . 326 I/O エミュレーションモジュール付き . . . . . . . . . . 326 エラーとして処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 グローバル型チェックなし . . . . . . . . . . . . . . . . . . . 330 出荷時設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 [ 出力 ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 出力フォーマット . . . . . . . . . . . . . . . . . . . . . . . 327, 329 出力ファイル名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 診断を無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 すべてのワーニングを無効化 . . . . . . . . . . . . . . . . . 331 静的オーバレイマップ . . . . . . . . . . . . . . . . . . . . . . . 333 [ セグメントオーバラップワーニング ] . . . . . . . . . 330 セグメントマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 チェックサム生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 追加出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 追加出力ファイルの生成 . . . . . . . . . . . . . . . . . . . . . 328 常に出力を生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 定義済みシンボル . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 パス検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 バッファしたターミナル出力 . . . . . . . . . . . . . . . . . 327 範囲チェック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 フィルバターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 フォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 ページあたりの行数 . . . . . . . . . . . . . . . . . . . . . . . . . 333 未使用コードメモリをフィルする . . . . . . . . . . . . . 336 未処理バイナリイメージ . . . . . . . . . . . . . . . . . . . . . 335 無効にしたエントリのインクルー . . . . . . . . . . . . . 333 モジュールサマリ . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 モジュールローカルシンボル . . . . . . . . . . . . . . . . . 328 ランタイム管理モジュール付き . . . . . . . . . . . . . . . 326 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 リンカコマンドファイル . . . . . . . . . . . . . . . . . . . . . 334 リンカリストの生成 . . . . . . . . . . . . . . . . . . . . . . . . . 332 ワーニングとして処理 . . . . . . . . . . . . . . . . . . . . . . . 331 XLINK オプションワーニング / エラー. . . . . . . . . . . . 331 XLINK 出力 デフォルトフォーマットの指定変更 . . . . . . . . . . . 327 デフォルトフォーマットの変更 . . . . . . . . . . . . . . . 329 XLINK のシンボル、定義 . . . . . . . . . . . . . . . . . . . . . . . 329 XLINK リストファイル 389 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 セグメントマップを含める . . . . . . . . . . . . . . . . . . . 332 ページあたり . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 シンボル %スタック使用しきい値 ([ スタック ] オプション ). . .249 [#define] オプション (XLINK) . . . . . . . . . . . . . . . . . . . . 329 #define 文、コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . 311 #line ディレクティブ、生成 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 #line ディレクティブ、アセンブラで生成 . . . . . . . . . 318 #line ディレクティブ、コンパイラで生成 . . . . . . . . . 311 #pragma ディレクティブ、定義 . . . . . . . . . . . . . . . . . . 372 $CUR_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . 226 $CUR_LINE$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . 226 $EW_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . . 226 $EXE_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . 226 $FILE_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . 226 $FILE_FNAME$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . 226 $FILE_PATH$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . 226 $LIST_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . 226 $OBJ_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . . 226 $PROJ_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . . . 226 $PROJ_FNAME$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . 226 $PROJ_PATH$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . . 226 $TARGET_BNAME$ ( 引数変数 ) . . . . . . . . . . . . . . . . . 226 $TARGET_BPATH$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . 226 $TARGET_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . . 226 $TARGET_FNAME$ ( 引数変数 ) . . . . . . . . . . . . . . . . . 226 $TARGET_PATH$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . 226 $TOOLKIT_DIR$ ( 引数変数 ) . . . . . . . . . . . . . . . . . . . . 226 -build (iarbuild コマンドラインオプション ) . . . . . . . . . 88 -clean (iarbuild コマンドラインオプション ) . . . . . . . . . 88 -log (iarbuild コマンドラインオプション ) . . . . . . . . . . . 88 -make (iarbuild コマンドラインオプション ) . . . . . . . . . 88 __cancelAllInterrupts (C-SPY システムマクロ ) . . . . . . 352 __cancelInterrupt (C-SPY システムマクロ ) . . . . . . . . . 353 __clearBreak (C-SPY システムマクロ ) . . . . . . . . . . . . . 353 __closeFile (C-SPY システムマクロ ) . . . . . . . . . . . . . . 353 IAR Embedded Workbench® IDE 390 ユーザガイド __disableInterrupts (C-SPY システムマクロ ) . . . . . . . . 354 __driverType (C-SPY システムマクロ ) . . . . . . . . . . . . . 354 __enableInterrupts (C-SPY システムマクロ ) . . . . . . . . 355 __evaluate (C-SPY システムマクロ ) . . . . . . . . . . . . . . . 355 __fmessage (C-SPY マクロ文 ) . . . . . . . . . . . . . . . . . . . . 348 __message (C-SPY マクロ文 ) . . . . . . . . . . . . . . . . . . . . 348 __openFile (C-SPY システムマクロ ) . . . . . . . . . . . . . . 356 __orderInterrupt (C-SPY システムマクロ ) . . . . . . 356–357 __readFile (C-SPY システムマクロ ) . . . . . . . . . . . . . . . 358 __readFileByte (C-SPY システムマクロ ) . . . . . . . . . . . 358 __readMemoryByte (C-SPY システムマクロ ) . . . . . . . 359 __readMemory16 (C-SPY システムマクロ ) . . . . . . . . . 359 __readMemory32 (C-SPY システムマクロ ) . . . . . . . . . 359 __readMemory8 (C-SPY システムマクロ ) . . . . . . . . . . 359 __registerMacroFile (C-SPY システムマクロ ) . . . . . . . 360 __resetFile (C-SPY システムマクロ ) . . . . . . . . . . . . . . 360 __setCodeBreak (C-SPY システムマクロ ) . . . . . . . . . . 361 __setDataBreak (C-SPY システムマクロ ) . . . . . . . . . . . 362 __setSimBreak (C-SPY システムマクロ ) . . . . . . . . . . . 363 __smessage (C-SPY マクロ文 ) . . . . . . . . . . . . . . . . . . . . 348 __sourcePosition (C-SPY システムマクロ ) . . . . . . . . . . 364 __strFind (C-SPY システムマクロ ). . . . . . . . . . . . . . . . 364 __subString (C-SPY システムマクロ ) . . . . . . . . . . . . . . 365 __toLower (C-SPY システムマクロ ). . . . . . . . . . . . . . . 365 __toString (C-SPY システムマクロ ) . . . . . . . . . . . . . . . 366 __toUpper (C-SPY システムマクロ ) . . . . . . . . . . . . . . . 366 __writeFile (C-SPY システムマクロ ) . . . . . . . . . . . . . . 367 __writeFileByte (C-SPY システムマクロ ) . . . . . . . . . . 367 __writeMemoryByte (C-SPY システムマクロ ) . . . . . . . 367 __writeMemory16 (C-SPY システムマクロ ) . . . . . . . . 368 __writeMemory32 (C-SPY システムマクロ ) . . . . . . . . 369 __writeMemory8 (C-SPY システムマクロ ) . . . . . . . . . 368 あ アーキテクチャ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 372 相対パス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79, 199 アクション ([ ブレークポイント ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 アクセスタイプ ([ ブレークポイント ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167, 169 アサーション、ビルドアプリケーション . . . . . . . . . . . 77 アセンブラ コマンドラインバージョン . . . . . . . . . . . . . . . . . . . . 69 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 [ ヘルプ ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . 258 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 アセンブラオプション . . . . . . . . . . . . . . . . . . . . . . . . . 315 List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 言語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 [ 出力 ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 第 1 カラムでディレクティブの許可 . . . . . . . . . . . 315 追加インクルードディレクトリ . . . . . . . . . . . . . . . 317 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 定義済みシンボル . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 デバッグ情報の生成 . . . . . . . . . . . . . . . . . . . . . . . . . 316 ファイルへのプリプロセッサ出力 . . . . . . . . . . . . . 318 プリプロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 マクロの引用符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 マルチバイト文字サポートを有効にする . . . . . . . 315 ユーザシンボルで大文字と小文字を区別する . . . 315 だいいちカラムでニーモニックの許可 . . . . . . . . . 315 アセンブラ出力、デバッグ情報を含める . . . . . . . . . . 316 アセンブラシンボル C-SPY 式で使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 アセンブラディレクティブ . . . . . . . . . . . . . . . . . . . . . . . 64 エディタのテキストスタイル . . . . . . . . . . . . . . . . . . 93 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 アセンブラニーモニック ( コンパイラオプション ). . 309 アセンブラのコメント、エディタのテキスト スタイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 アセンブラファイルの出力 ( コンパイラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 アセンブラプリプロセッサ . . . . . . . . . . . . . . . . . . . . . . 317 アセンブララベル、表示. . . . . . . . . . . . . . . . . . . . . . . . 122 アセンブラリストファイル コンパイラの呼出しフレーム情報、含める . . . . . 309 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 フォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 アセンブラリファレンスガイド ([ ヘルプ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 アセンブラ言語、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 372 アセンブラ変数、表示 . . . . . . . . . . . . . . . . . . . . . . . . . 122 アドレス範囲チェック、XLINK で指定 . . . . . . . . . . . 331 アドレス式、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 アプリケーション IDE の外部でビルド . . . . . . . . . . . . . . . . . . . . . . . . . 109 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88, 145 安価なメモリアクセス、定義 . . . . . . . . . . . . . . . . . . . . 373 い 移行、以前の IAR コンパイラ . . . . . . . . . . . . . . . . . . . 305 一般オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 指定、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 [ シュツリョク ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 ターゲット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 [ ヒープ / スタック ] オプション . . . . . . . . . . . . . . . 301 ライブラリオプション . . . . . . . . . . . . . . . . . . . . . . . 300 ライブラリ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 移動 ( ボタン ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 自動インデントの設定 ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . 238 [ イミディエイト ] ブレークポイント . . . . . . . . . . . . . 168 [ インクリメンタル検索 ] ダイアログボックス ([ 編集 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 インクルードファイル . . . . . . . . . . . . . . . . . . . . . . . . . . 15 XLINK、パスを指定 . . . . . . . . . . . . . . . . . . . . . . . . . 335 アセンブラ、パスを指定 . . . . . . . . . . . . . . . . . . . . . 317 コンパイラ、パスを指定 . . . . . . . . . . . . . . . . . 310, 317 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 インストールされるファイル . . . . . . . . . . . . . . . . . . . . . 13 インクルード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 実行可能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–15 ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 インストールパス、デフォルト . . . . . . . . . . . . . . . . . . . 13 インターネット、IAR システムズの Web サイト . . . . 19 391 インデントサイズ ( エディタのオプション ) . . . . . . . 236 インデント、エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . 94 インラインアセンブラ、定義 . . . . . . . . . . . . . . . . . . . . 373 インライン化、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 う ウィンドウ C-SPY ウィンドウも参照してください エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 画面上の編成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 強制割込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 クイックウォッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 ソースブラウザ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 ツール出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 デバッグログ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 ビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 ファイルから検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 ブレークポイント . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ワークスペース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 割込みログ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 [ ウィンドウ ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . 257 [ ウォッチ ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . 275 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 275 ウォッチポイント 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 え エイリアス ([ キーカスタマイズ ] オプション ) . . . . . 236 エディタ インデント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 外部 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 括弧と中括弧の対応 . . . . . . . . . . . . . . . . . . . . . . . . . . 95 環境のカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . 97 関数のショートカット . . . . . . . . . . . . . . . . . . . . 97, 197 キーボードコマンド . . . . . . . . . . . . . . . . . . . . . . . . . 199 コードテンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . 95 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 IAR Embedded Workbench® IDE 392 ユーザガイド 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ステータスバー、使用 . . . . . . . . . . . . . . . . . . . . . . . . 95 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 分割バー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 エディタ色とフォント ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 エディタウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 197 エディタウィンドウでの検索 . . . . . . . . . . . . . . . . . . . . . 97 エディタセットアップファイル、オプション . . . . . . 241 エディタフォント ([ エディタ色とフォント ] オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 エミュレータ (C-SPY バージョン ) サードパーティ製 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 エラーとして処理 (XLINK オプション ) . . . . . . . . . . . 331 エラーとして処理 ( コンパイラオプション ) . . . . . . . 313 エラーメッセージ XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 演算子の優先順位、定義. . . . . . . . . . . . . . . . . . . . . . . . 373 演算子、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 お オブジェクトファイル、出力ディレクトリの指定 . . 298 オブジェクトモジュール名 ( コンパイラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 オプション C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230, 341 XAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 一般 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 297 エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 エディタセットアップファイル . . . . . . . . . . . . . . . 241 カスタムツール設定 . . . . . . . . . . . . . . . . . . . . . . . . . 321 カスタムビルド . . . . . . . . . . . . . . . . . . . . . . . . . 321, 323 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii [ オプション ] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 オンラインドキュメント ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–15, 258 ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 オンラインヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 か カーソル位置まで実行 ( ボタン ) . . . . . . . . . . . . . . . . . 263 カーソル位置まで実行、説明 . . . . . . . . . . . . . . . . . . . . 114 カーソル、C-SPY の [ 逆アセンブリ ] ウィンドウ . . 264 ガイドラインの確認 . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 開発環境、概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 改版、ユーザガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii 外部エディタ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 外部エディタの使用 ([ 外部エディタ ] のオプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 外部エディタ、使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 拡張 Embedded C++ 構文、コンパイラで有効化 . . . . 304 拡張キーワード、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 373 拡張子。ファイル名の拡張子、言語拡張を参照 拡張リンカコマンドラインファイル。リンカコマンド ラインファイルを参照 確率 ( 割込みプロパティ ) . . . . . . . . . . . . . . . . . . . . . . . 177 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 カスタムキーワードファイルの使用 ( エディタの オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 カスタムツール設定 ( カスタムビルドオプション ). . 321 カスタムビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 カスタムビルド構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 仮想アドレス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 仮想スペースを有効にする ( エディタ のオプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 仮想スペース、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 型修飾子、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 括弧と中括弧、対応 ( エディタ内 ) . . . . . . . . . . . . . . . . 95 仮定義、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 カテゴリ、[ オプション ] ダイアログボックス . . 87, 230 関数 C-SPY 起動時に実行 . . . . . . . . . . . . . . . . . . . . . 107, 342 エディタウィンドウのショートカット . . . . . . 97, 197 組込み、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 関数トレース (C-SPY ウィンドウ ) . . . . . . . . . . . . . . . 157 関数トレース、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 関数に移動 ( エディタボタン ) . . . . . . . . . . . . . . . . . . . 197 関数のステップイン (IDE オプション ) . . . . . . . . . . . . 247 関数呼出し、C-SPY での表示 . . . . . . . . . . . . . . . . . . . . 58 関数レベルのプロファイリング . . . . . . . . . . . . . . . . . . 145 き キーカスタマイズ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 キーバインディング、定義 . . . . . . . . . . . . . . . . . . . . . . 374 キーワード、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 キー操作のまとめ、エディタ . . . . . . . . . . . . . . . . . . . . 199 技術サポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 基数 ([ レジスタフィルタ ] オプション ) . . . . . . . . . . . 251 規則、表記 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii 揮発性ストレージ、定義. . . . . . . . . . . . . . . . . . . . . . . . 374 逆アセンブリウィンドウ. . . . . . . . . . . . . . . . . . . . . . . . 263 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 265 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 「逆アセンブリ」ウィンドウのソースコード色 (IDE オ プション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 逆アセンブリモードのデバッグ、例 . . . . . . . . . . . . . . . 36 [ 強制割込み ] ウィンドウ ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 強調表示、C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 共通フォント ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 行番号の表示 ( エディタのオプション ) . . . . . . . . . . . 237 く クイックウォッチ C-SPY マクロの実行 . . . . . . . . . . . . . . . . . . . . . . . . . 142 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 [ クイックウォッチ ] ウィンドウ ([ 表示 ] メニュー ) . .278 [ クイック検索 ] テキストボックス . . . . . . . . . . . . . . . 187 393 組込み関数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 組込みシステム、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 374 組込み、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 グラフィカルスタック表示とスタック使用トラッキン グを有効にする ([ スタック ] オプション ) . . . . . . . . . 248 繰返し間隔 ( 割込みプロパティ ) . . . . . . . . . . . . . . . . . 176 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 グループ ([ レジスタフィルタ ] オプション ) . . . . . . . 250 グループメンバ ([ レジスタフィルタ ] オプション ). . .250 グループ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 グローバル型チェックなし (XLINK オプション ) . . . 330 クロスリファレンス、マップファイル . . . . . . . . . . . . . 32 け 継承した設定、オーバライド . . . . . . . . . . . . . . . . . . . . . 86 言語 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . 303 言語 ( アセンブラオプション ) . . . . . . . . . . . . . . . . . . . 315 言語拡張 コンパイラで無効化 . . . . . . . . . . . . . . . . . . . . . . . . . 304 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 言語機能、コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 言語の適合 ( コンパイラオプション ) . . . . . . . . . . . . . 304 現在位置、C-SPY の [ 逆アセンブリ ] ウィンドウ . . 264 [ 検索 ] ダイアログボックス ([ 編集 ] メニュー ) . . . . 218 検索 ( ボタン ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 こ 高価なメモリアクセス、定義 . . . . . . . . . . . . . . . . . . . . 374 更新ファイルをスキャン ( エディタオプション ) . . . 238 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 構成ツール ([ ツール ] メニュー ). . . . . . . . . . . . . . . . . 252 構造体値、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 構文カラー表示 エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 設定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 構文の色 ([ エディタ色とフォント ] オプション ) . . . 243 構文の強調表示 ( エディタのオプション ) . . . . . . . . . 237 構文の強調表示、エディタウィンドウ . . . . . . . . . . . . . 93 コード IAR Embedded Workbench® IDE 394 ユーザガイド スケルトン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 バンク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 コードカバレッジ コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 285 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 [ コードカバレッジ ] ウィンドウ . . . . . . . . . . . . . . . . . 284 コード生成 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 コンパイラ、特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 コードテンプレートの使用 ( エディタのオプション ) . . . . . . . . . . . . . . . . . . . . . . . 242 コードテンプレート、エディタで使用 . . . . . . . . . . . . . 95 コードの整合性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 [ コード ] ページ ( コンパイラオプション ) . . . . . . . . 306 コードポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 374 コードメモリ、使用部分のフィル . . . . . . . . . . . . . . . . 336 コードモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 固定幅フォント (IDE オプション ). . . . . . . . . . . . . . . . 234 コスト。メモリアクセスコストを参照。 コピー ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 コマンド ([ 外部エディタ ] オプション ) . . . . . . . . . . . 241 コマンドプロンプトアイコン、本ガイド . . . . . . . . xxxiv コマンドラインオプション、 Embedded Workbench IDE での指定 . . . . . . . . . . . . 74, 254 エディタウィンドウ タブ、コンテキストメニュー . . . . . . . . . . . . . . . . . 197 コンテキストメニュー [ ウォッチ ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . 275 エディタウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . 197 エディタウィンドウのタブ . . . . . . . . . . . . . . . . . . . 197 逆アセンブリウィンドウ . . . . . . . . . . . . . . . . . . . . . 265 [ シンボルメモリ ] ウィンドウ . . . . . . . . . . . . . . . . 273 ソースコード管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 [ ソースブラウザ ] ウィンドウ . . . . . . . . . . . . . . . . 202 [ メッセージ ] ウィンドウ . . . . . . . . . . . . . . . . 209–212 [ メモリ ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . 268 [ 呼出しスタック ] ウィンドウ . . . . . . . . . . . . . . . . 282 [ ワークスペース ] ウィンドウ . . . . . . . . . . . . 189, 203 コンパイラ コマンドラインバージョン . . . . . . . . . . . . . . . . . . 4, 69 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 18 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 コンパイラオプション . . . . . . . . . . . . . . . . . . . . . . . . . 303 ’CHAR’ の型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Disable language extensions . . . . . . . . . . . . . . . . . . . . 304 Embedded C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Embedded Workbench での設定、例. . . . . . . . . . . . . . 27 Include compiler call frame information . . . . . . . . . . . 309 ISO/ANSI に厳密に準拠 . . . . . . . . . . . . . . . . . . . . . . 305 ISO/ANSI に緩く準拠 . . . . . . . . . . . . . . . . . . . . . . . . 305 アセンブラニーモニック . . . . . . . . . . . . . . . . . . . . . 309 アセンブラファイルの出力 . . . . . . . . . . . . . . . . . . . 309 エラーとして処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 オブジェクトモジュール名 . . . . . . . . . . . . . . . . . . . 308 拡張 Embedded C++ 構文 . . . . . . . . . . . . . . . . . . . . . 304 言語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 言語の適合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 自動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 [ 出力 ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 診断 ( リストファイル ) . . . . . . . . . . . . . . . . . . . . . . 309 診断を無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 すべてのワーニングをエラーとして処理 . . . . . . . 313 ソースのインクルード . . . . . . . . . . . . . . . . . . . . . . . 309 追加インクルードディレクトリ . . . . . . . . . . . . . . . 310 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 定義済みシンボル . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 デバッグ情報の生成 . . . . . . . . . . . . . . . . . . . . . . . . . 308 標準のインクルードディレクトリを無視 . . . . . . . 317 ファイルへのプリプロセッサ出力 . . . . . . . . . . . . . 311 プリインクルードフ . . . . . . . . . . . . . . . . . . . . . . . . . 310 プリプロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 プロトタイプの強制 . . . . . . . . . . . . . . . . . . . . . . . . . 304 マルチバイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 モジュールタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 リストファイルの出力 . . . . . . . . . . . . . . . . . . . . . . . 309 リマークとして処理 . . . . . . . . . . . . . . . . . . . . . . . . . 312 リマークを有効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 ワーニングとして処理 . . . . . . . . . . . . . . . . . . . . . . . 313 コンパイラの診断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 コンパイラのシンボル、定義 . . . . . . . . . . . . . . . . . . . . 311 コンパイラのプリプロセッサ . . . . . . . . . . . . . . . . . . . . 310 コンパイラのリストファイル アセンブラニーモニック、含める . . . . . . . . . . . . . 309 ソースコード、含める . . . . . . . . . . . . . . . . . . . . . . . 309 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 コンパイラの呼出しフレーム情報 アセンブラリストファイルに含める . . . . . . . . . . . 309 コンパイラのリストファイル 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 コンパイラ関数ディレクティブ、定義 . . . . . . . . . . . . 375 コンパイラ出力 デバッグ情報、含める . . . . . . . . . . . . . . . . . . . . . . . 308 モジュール名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 コンピュータスタイル、表記規則 . . . . . . . . . . . . . . xxxiii さ サービス ([ 外部エディタ ] のオプション ) . . . . . . . . . 241 再起動時に最後に開いたワークスペースをりロード ([IDE Project] オプション ) . . . . . . . . . . . . . . . . . . . . . . 245 サイズの最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 サイズ ([ ブレークポイント ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167, 205 最適化 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . 306 [ 最適化 ] ページ ( コンパイラオプション ) . . . . . . . . 306 最適化モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 最適化レベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 最適化、変数への影響 . . . . . . . . . . . . . . . . . . . . . . . . . 119 再配置可能セグメント、定義 . . . . . . . . . . . . . . . . . . . . 375 サポート、技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 し 式。C-SPY 式を参照 シグナル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 395 システムマクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 実行 ([ デバッグ ] メニュー ) . . . . . . . . . . . . . . . . . . . . 114 実行 ( ボタン ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 実行可能ファイル ( 出力ディレクトリ ) . . . . . . . . . . . 298 実行時間、削減 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 実行履歴、トレース . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 自動インデント ( エディタのオプション ) . . . . . . . . . 237 [ 自動 ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 277 自動 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . 304 [ 自動ステップの設定 ] ダイアログボックス ([ デバッグ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . 292 自動変数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 シミュレータ 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 [ シミュレータ ] メニュー . . . . . . . . . . . . . . . . . . . . . . . 154 斜体、本ガイド . . . . . . . . . . . . . . . . . . . . . . . . xxxiii–xxxiv 修飾子、定義。型修飾子を参照 周辺デバイス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 周辺ユニット 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 終了 ([ ファイル ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 71 終了、ユーザアプリケーション . . . . . . . . . . . . . . . . . . 115 出荷時設定 XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 デフォルト設定の復元 . . . . . . . . . . . . . . . . . . . . . . . . 87 出力 C-SPY の出力、ファイルにリダイレクト . . . . . . . 109 XLINK 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 追加出力ファイル名の指定 . . . . . . . . . . . . . . . . . 328 ファイル名の指定 . . . . . . . . . . . . . . . . . . . . . . . . 325 アセンブラ デバッグ情報を含める. . . . . . . . . . . . . . . . . . . . . 316 プリプロセッサ、生成. . . . . . . . . . . . . . . . . . . . . 318 コンパイラ デバッグ情報を含める. . . . . . . . . . . . . . . . . . . . . 308 プリプロセッサ、生成. . . . . . . . . . . . . . . . . . . . . 311 追加ファイルの生成 . . . . . . . . . . . . . . . . . . . . . . . . . 327 フォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 IAR Embedded Workbench® IDE 396 ユーザガイド デバッグ (ubrof) . . . . . . . . . . . . . . . . . . . . . . . . . . 326 出力 (XLINK オプション ). . . . . . . . . . . . . . . . . . . . . . . 325 出力 (XAR オプション ) . . . . . . . . . . . . . . . . . . . . . . . . 339 出力 ( アセンブラオプション ) . . . . . . . . . . . . . . . . . . . 316 出力 ( 一般オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . 297 出力 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . 307 出力ファイル (XLINK オプション ) . . . . . . . . . . . . . . . 325 出力フォーマット (XLINK オプション ) . . . . . . . 327, 329 重要度、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 条件付きブレークポイント、例 . . . . . . . . . . . . . . . . . . . 59 条件 ([ ブレークポイント ] ダイアログ ) . . . . . . . . . . . 167 条件文、C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . . . 347 条件、プログラミング経験 . . . . . . . . . . . . . . . . . . . . . xxix 商標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii 情報、製品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ショートアドレッシング、定義 . . . . . . . . . . . . . . . . . . 376 ショートカットキー . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ショートカットキーを押してください ([ キーカスタマイズ ] オプション ) . . . . . . . . . . . . . . . 235 初回割込み待機時間 ( 割込みプロパティ ) . . . . . . . . . 176 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 [ 処理 ] オプション (XLINK) . . . . . . . . . . . . . . . . . . . . . 336 新規グループ ([ レジスタフィルタ ] オプション ) . . . 250 [ 新規構成 ] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 [ 新規プロジェクトの作成 ] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 229 診断 XLINK、無効 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 コンパイラ 無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 リストファイルに含める . . . . . . . . . . . . . . . . . . . 309 診断 (XLINK オプション ). . . . . . . . . . . . . . . . . . . . . . . 330 診断 ( アセンブラオプション ) . . . . . . . . . . . . . . . . . . . 318 診断 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . 311 診断を無効化 (XLINK オプション ) . . . . . . . . . . . . . . . 331 診断を無効化 ( コンパイラオプション ) . . . . . . . . . . . 312 シンボル C-SPY 式で使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 XLINK での定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 アセンブラでの定義 . . . . . . . . . . . . . . . . . . . . . . . . . 318 コンパイラでの定義 . . . . . . . . . . . . . . . . . . . . . . . . . 311 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 入力モジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 ユーザシンボルも参照 シンボル位置、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 [ シンボルメモリ ] ウィンドウ . . . . . . . . . . . . . . . . . . . 272 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 273 ツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 す スクロール、~のためのショートカットキー . . . . . . . 93 スケジューラ (RTOS)、定義 . . . . . . . . . . . . . . . . . . . . . 376 スケルトンコード、定義. . . . . . . . . . . . . . . . . . . . . . . . 376 スコープ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 スタック ([IDE オプション ] ダイアログボックス ) . . .248 [ スタック ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . 287 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 スタックしきい値の超過時にワーニング ([ スタック ] オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 スタックセグメント、定義 . . . . . . . . . . . . . . . . . . . . . . 376 スタックフレーム、定義. . . . . . . . . . . . . . . . . . . . . . . . 376 スタックポインタが境界外の時にワーニング ([ スタック ] オプション ) . . . . . . . . . . . . . . . . . . . . . . . 249 ステータスバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 ステップアウト、説明 . . . . . . . . . . . . . . . . . . . . . . . . . 113 ステップアウト ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . 263 ステップイン ( ボタン ) 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ステップイン、説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 ステップオーバ、説明 . . . . . . . . . . . . . . . . . . . . . . . . . 113 ステップオーバ ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . 263 ステップ実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ステップポイント、定義. . . . . . . . . . . . . . . . . . . . . . . . 112 ステップ実行 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 すべてのワーニングをエラーとして処理 ( コンパイラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 すべてのワーニングを無効化 (XLINK オプション ) . 331 すべて保存 ([ ファイル ] メニュー ) . . . . . . . . . . . . . . . 214 すべて保存 ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 すべてリセット ([ キーカスタマイズ ] オプション ) . . 236 スレッド、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 せ [ 静的 ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 静的オーバレイマップ (XLINK オプション ) . . . . . . . 333 静的オーバレイ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 376 静的オブジェクト、定義. . . . . . . . . . . . . . . . . . . . . . . . 376 静的の変数の選択 ( ダイアログボックス ) . . . . . . . . . 281 静的割当てメモリ、定義. . . . . . . . . . . . . . . . . . . . . . . . 376 製品概要 C-SPY デバッガ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 IAR Embedded Workbench IDE . . . . . . . . . . . . . . . . . . . 3 XAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 XLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ディレクトリ構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ファイルタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 製品情報、詳細表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 積和演算、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 セグメント オーバラップエラー、引下げ . . . . . . . . . . . . . . . . . 330 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 範囲チェック、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 マップファイルのセクション . . . . . . . . . . . . . . . . . . 32 [ セグメントオーバラップワーニング ] (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 セグメントパート、リストファイルにすべて含める . .333 セグメントマップ (XLINK オプション ) . . . . . . . . . . . 332 セグメントマップ、定義. . . . . . . . . . . . . . . . . . . . . . . . 376 絶対アドレス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 絶対セグメント、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 377 設定 (C-SPY オプション ) . . . . . . . . . . . . . . . . . . . . . . . 341 [ 設定 ] オプション (XLINK) . . . . . . . . . . . . . . . . . . . . . 334 設定 ( サブディレクトリ ) . . . . . . . . . . . . . . . . . . . . . . . . 14 設定ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 397 設定ファイル ( 一般オプション ) . . . . . . . . . . . . . . . . . 299 セットアップファイル ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 セットアップマクロ、C-SPY。 C-SPY マクロを参照 セットアップマクロ、C-SPY。C-SPY マクロを参照 セマフォ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 ゼロオーバヘッドループ、定義 . . . . . . . . . . . . . . . . . . 377 宣言、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 前提、プログラミング経験 . . . . . . . . . . . . . . . . . . . . . xxix そ 挿入ポイント、移動のためのショートカットキー . . . 93 ソースコード管理 ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 [ ソースコード管理 ] コンテキストメニュー . . . . . . . 190 ソースコード管理、特長. . . . . . . . . . . . . . . . . . . . . . . . . . 4 ソースコード管理システム . . . . . . . . . . . . . . . . . . . . . . . 82 ソースコード管理プロバイダの選択 ( ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 ソースのインクルード ( コンパイラオプション ) . . . 309 ソースファイル managing in projects . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 プロジェクトへの追加 . . . . . . . . . . . . . . . . . . . . . . . . 26 編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ソースファイルの編集 . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ソースファイルパス . . . . . . . . . . . . . . . . . . . . . . . . 79, 199 [ ソースブラウザ ] ウィンドウ ([ 表示 ] メニュー ) . . 201 [ ソースブラウザ ] ウィンドウのコンテキスト メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 [ ソースブラウザ ]、使用 . . . . . . . . . . . . . . . . . . . . . . . . 81 ゾーン C-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 速度の最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 た ターゲット ( 一般オプション ) . . . . . . . . . . . . . . . . . . . 297 [ ターゲット ] オプション、指定 . . . . . . . . . . . . . . . . . 297 IAR Embedded Workbench® IDE 398 ユーザガイド ターゲットシステム、定義 . . . . . . . . . . . . . . . . . . . . . . 104 ターゲット、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 ターミナル I/O シミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 ターミナル I/O ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 [ ターミナル I/O] ウィンドウ . . . . . . . . . . . . . . . . 116, 283 使用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ターミナル I/O ログファイル . . . . . . . . . . . . . . . . . . . . 116 [ ターミナル I/O ログファイル ] ダイアログ ボックス ([ デバッグ ] メニュー ). . . . . . . . . . . . . . . . . 295 ターミナル I/O 付デバッグ情報 (XLINK のオプション ) . . . . . . . . . . . . . . . . . . . . . . . . . 283 ダイアログボックス Batch Build Configuration ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Code breakpoints([ ブレークポイント ] ウィンドウ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Edit Filename Extensions ([ ツール ] メニュー ) . . . . 255 Embedded Workbench の起動 ([ ヘルプ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Linker command file configuration tool . . . . . . . . . . . . 334 project の構成 ([Project] メニュー ) . . . . . . . . . . . . . 227 [ イミディエイト ] ブレークポイント ([ ブレーク ポイント ] ウィンドウ ) . . . . . . . . . . . . . . . . . . . . . . 168 インクリメンタル検索 ([ 編集 ] メニュー ) . . . . . . 221 エディタ色とフォント ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 242 オプション ([ プロジェクト ] メニュー ) . . . . . . . . 230 外部エディタ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 キーカスタマイズ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 共通フォント ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 検索 ([ 編集 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . 218 自動インデントの設定 ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 238 自動ステップの設定 ([ デバッグ ] メニュー ) . . . . 292 新規構成 ([Project] メニュー ) . . . . . . . . . . . . . . . . . 228 新規プロジェクトの作成 ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 スタック ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 静的の変数の選択 ( ダイアログボックス ). . . . . . . 281 セットアップファイル ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 241 ソースコード管理 ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ソースコード管理プロバイダの選択 ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . 193 ターミナル I/O ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 251 ターミナル I/O ログファイル ([ デバッグ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 置換 ([ 編集 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . 219 [ データ ] ブレークポイント ([ ブレークポイント ] ウィンドウ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 デバッガ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 テンプレート ([ 編集 ] メニュー ) . . . . . . . . . . . . . . 222 バッチビルド ([ プロジェクト ] メニュー ) . . . . . . 231 ビューアの設定 ([ ツール ] メニュー ) . . . . . . . . . . 256 ファイル ([ メモリ ] ウィンドウ ) . . . . . . . . . . . . . . 269 ファイルから検索 ([ 編集 ] メニュー ) . . . . . . . . . . 219 ファイルのチェックアウト ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 ファイルのチェックイン ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 ファイル名拡張子 ([ ツール ] メニュー ) . . . . . . . . 254 ファイル名拡張子のオーバライド ([ ツール ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 ブレーク位置入力 ([ ブレークポイント ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 208 ブレークポイントの使用 ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 編集 ([IDE オプション ] ダイアログボックス ) . . . 236 マクロ設定 ([ デバッグ ] メニュー ) . . . . . . . . . . . . 293 メッセージ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 メモリアクセス設定 ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 メモリアクセスの編集 ([ メモリアクセス設定 ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . 164 メモリ復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 メモリ保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 レジスタフィルタ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 ログファイルの設定 ([ デバッグ ] メニュー ) . . . . 292 [ ログ ] ブレークポイント ([ ブレーク ポイント ] ウィンドウ ) . . . . . . . . . . . . . . . . . . . . . . 206 割込み設定 ([ シミュレータ ] メニュー ) . . . . . . . . 174 割込みの編集 ([ ワリコミセッテイ ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 第 1 カラムでディレクティブの許可 ( アセンブラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 第 1 カラムでニーモニックの許可 ( アセンブラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 タイプ ([ 外部エディタ ] のオプション ) . . . . . . . . . . . 240 タイプチェック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10–11 リンク時に無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 タイマ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 タイムスライス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 377 タスク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 タブキーの機能 ( エディタのオプション ) . . . . . . . . . 236 タブサイズ ( エディタのオプション ) . . . . . . . . . . . . . 236 ち チェックサム XLINK で生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 チェックサム生成 (XLINK オプション ) . . . . . . . . . . . 336 [ 置換 ] ダイアログボックス ([ 編集 ] メニュー ) . . . . 219 置換 ( ボタン ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 つ 追加インクルードディレクトリ ( コンパイラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 追加インクルードディレクトリ ( アセンブラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 追加オプション アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . 319, 338, 343 399 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 追加出力 (XLINK オプション ) . . . . . . . . . . . . . . . . . . . 328 追加出力ファイルの生成. . . . . . . . . . . . . . . . . . . . . . . . 327 追加出力ファイルの生成 (XLINK オプション ) . . . . . 328 ツールアイコン、本ガイド . . . . . . . . . . . . . . . . . . . . xxxiv [ ツール出力 ] ウィンドウ ([ 表示 ] メニュー ) . . . . . . 211 ツールチェーン 拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 デバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 トレース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 [ ツール ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 ツール、ユーザ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 次のステートメント ( ボタン ) . . . . . . . . . . . . . . . . . . . 263 次を検索 ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 常に出力を生成 (XLINK オプション ) . . . . . . . . . . . . . 330 て 定義済みシンボル (XLINK オプション ) . . . . . . . . . . . 329 定義済みシンボル ( アセンブラオプション ) . . . . . . . 318 定義済みシンボル ( コンパイラオプション ) . . . . . . . 311 定義、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 ディレクトリ bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 common\bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 common\config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 common\doc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 common\plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 common\src . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 doc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 lib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 src . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 tutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 コンパイラのインクルードファイル . . . . . . . . . . . 317 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 ディレクトリ構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 IAR Embedded Workbench® IDE 400 ユーザガイド データブレークポイント. . . . . . . . . . . . . . . . . . . . . . . . 166 データポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 378 データモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 データ表現、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 テキストの選択、~のためのショートカットキー . . . 93 デジタル信号プロセッサ、定義 . . . . . . . . . . . . . . . . . . 378 テスト、コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 デバイス記述ファイル 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 割込みの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 デバイス記述ファイル (C-SPY オプション ) . . . . . . . 342 デバイスドライバ、定義. . . . . . . . . . . . . . . . . . . . . . . . 378 デバイス記述ファイル . . . . . . . . . . . . . . . . . . . . . . 14, 108 デバッガ ([IDE オプション ] ダイアログボックス ). . 247 デバッガシステムの概要. . . . . . . . . . . . . . . . . . . . . . . . 104 デバッガドライバ シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 デバッガの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 デバッグ情報 コンパイラ、生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 デバッグ情報の生成 ( アセンブラオプション ) . . . . . 316 デバッグ情報の生成 ( コンパイラオプション ) . . . . . 308 デバッグの停止 ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . 263 デバッグ前にメイクを実行 ([IDE Project] オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 [ デバッグ ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 [ デバッグログ ] ウィンドウ ([ 表示 ] メニュー ) . . . . 212 デバッグ情報 アセンブラで生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 デフォルト整数フォーマット (IDE オプション ) . . . . 248 デフォルトのインストールパス . . . . . . . . . . . . . . . . . . . 13 デフォルトの出荷時設定の復元 . . . . . . . . . . . . . . . . . . . 87 [ テンプレート ] ダイアログボックス ([ 編集 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 と 統合開発環境 (IDE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–4 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 動的オブジェクト、定義. . . . . . . . . . . . . . . . . . . . . . . . 378 動的初期化、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 動的メモリ割当て、定義. . . . . . . . . . . . . . . . . . . . . . . . 379 登録商標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 XLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 オンライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–15 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 製品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 他のガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii 本ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix 特殊機能レジスタ (SFR) アセンブラシンボルとして使用 . . . . . . . . . . . . . . . 118 記述ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 ヘッダファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 特長 XLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ソースコード管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ドッキング可能なウィンドウ . . . . . . . . . . . . . . . . . . . . . 71 ドライバ (C-SPY オプション ) . . . . . . . . . . . . . . . . . . . 342 ドラッグアンドドロップ エディタウィンドウのテキスト . . . . . . . . . . . . . . . . 93 [ ワークスペース ] ウィンドウのファイル. . . . . . . . 79 トラップ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 トレース ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 ツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 [ トレース式 ] ( ウィンドウ ) . . . . . . . . . . . . . . . . . . . . 158 トレース、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 トレースを検索 ( ウィンドウ ) . . . . . . . . . . . . . . . . . . . 159 トレースを検索 ( ダイアログボックス ) . . . . . . . . . . . 160 な 内容 ( 割込みプロパティ ) . . . . . . . . . . . . . . . . . . . . . . . 176 名前を付けて保存 ([ ファイル ] メニュー ) . . . . . . . . . 214 に 入力 [ ターミナル I/O] ウィンドウでの特殊文字 . . . . . . 283 [ ターミナル I/O] ウィンドウへの転送 . . . . . . . . . . 283 入力フォーマット、C-SPY . . . . . . . . . . . . . . . . . . . . . . . . 8 ね ネスト割込み、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 の ノイマンアーキテクチャ、定義 . . . . . . . . . . . . . . . . . . 379 は バージョン管理システム. . . . . . . . . . . . . . . . . . . . . . . . . 82 バージョン番号、Embedded Workbench . . . . . . . . . . . . 258 ハーバードアーキテクチャ、定義 . . . . . . . . . . . . . . . . 379 パイプライン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 パス XLINK のインクルードファイル . . . . . . . . . . . . . . 335 相対、Embedded Workbench . . . . . . . . . . . . . . . . 79, 199 アセンブラのインクルードファイル . . . . . . . . . . . 317 コンパイラのインクルードファイル . . . . . . . . . . . 310 ソースファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 パス検索 (XLINK オプション ) . . . . . . . . . . . . . . . . . . . 335 派生品、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 派生プロセッサ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 379 バックトレース情報 コンパイラが生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 バッチビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 [ バッチビルド ] ダイアログボックス ([ プロジェクト ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 231 バッチファイル Embedded Workbench IDE での指定 . . . . . . . . . . 74, 254 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 バッファしたターミナル出力 (XLINK オプション ) . . .327 401 ばらつき ( 割込みプロパティ ) . . . . . . . . . . . . . . . . . . . 176 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 貼り付け ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 範囲チェック (XLINK オプション ) . . . . . . . . . . . . . . . 331 バンク切替え、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 バンク切替えルーチン、定義 . . . . . . . . . . . . . . . . . . . . 380 バンクコード、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 バンクデータ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 バンクメモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 版権 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii 汎用ポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 ひ ヒープ / スタック ( 一般オプション ) . . . . . . . . . . . . . 301 ヒープサイズ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 ヒープメモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 [ ビューアの設定 ] ダイアログボックス ([ ツール ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 引数 ([ 外部エディタ ] のオプション ) . . . . . . . . . . . . . 240 引数変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 #include ファイルのパス . . . . . . . . . . . . . . 310, 317, 335 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 非初期化メモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 380 ビットフィールド、定義. . . . . . . . . . . . . . . . . . . . . . . . 380 非バンクメモリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 380 表記、規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii [ 表示 ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 標準のインクルードディレクトリを無視 ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . . . . . 317 ビルド オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 コマンドラインから . . . . . . . . . . . . . . . . . . . . . . . . . . 88 処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ビルドアクション設定 ( ビルドアクション オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 ビルドウィンドウ ([ 表示 ] メニュー ) . . . . . . . . . . . . . 209 ビルド処理終了後にサウンドを再生 ([IDE Project] オプ ション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 IAR Embedded Workbench® IDE 402 ユーザガイド ビルド処理の停止条件 ([IDE Project] オプション ) . . 245 ビルド前にエディタウィンドウを保存 ([IDE Project] オプション ) . . . . . . . . . . . . . . . . . . . . . . 245 ビルド前にワークスペースとプロジェクトを保存 ([IDE Project] オプション ) . . . . . . . . . . . . . . . . . . . . . . 245 ふ ファイル readme.htm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 間のナビゲート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 コンパイル、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 チェックインとチェックアウト . . . . . . . . . . . . . . . . 83 プロジェクトへの追加 . . . . . . . . . . . . . . . . . . . . . . . . 26 編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ファイル拡張子。ファイル名の拡張子を参照 [ ファイルから検索 ] ウィンドウ ([ 表示 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 [ ファイルから検索 ] ダイアログボックス ([ 編集 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 [ ファイル ] ダイアログボックス . . . . . . . . . . . . . . . . . 269 ファイルタイプ map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 readme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–15 インクルード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 構文カラー表示設定 . . . . . . . . . . . . . . . . . . . . . . . . . . 14 デバイス記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Embedded Workbench で指定 . . . . . . . . . . . . . . . . 108 ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 特殊機能レジスタ記述ファイル . . . . . . . . . . . . . . . . 14 プロジェクトテンプレート . . . . . . . . . . . . . . . . . . . . 14 ヘッダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 342 ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 リンカコマンドファイルテンプレート . . . . . . . . . . 14 ファイルのチェックアウト、ダイアログボックス . . 195 ファイルのチェックイン、ダイアログボックス . . . . 193 ファイルへのプリプロセッサ出力 ( アセンブラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 ファイルへのプリプロセッサ出力 ( コンパイラ オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 [ ファイル名拡張子 ] ダイアログボックス ([ ツール ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 [ ファイル ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 ファイル名の拡張子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 axx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 243 cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 dbg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 dbgt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ddf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 108 dep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 dni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16–17 dxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ewd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ewp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 eww . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 71 fmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 107, 138 map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16–17 pbd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 pbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 prj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16–17 rxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 sfr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 sxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 wsdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 xcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 xlb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 [ ファイル名拡張子のオーバライド ] ダイアログ ボックス ([ ツール ] メニュー ) . . . . . . . . . . . . . . . . . . 255 フィルタファイル ([ レジスタフィルタ ] オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 フィルバターン (XLINK オプション ) . . . . . . . . . . . . . 336 フォーマット C-SPY 入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 XLINK 出力 指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 デフォルト、変更 . . . . . . . . . . . . . . . . . . . . 327, 329 アセンブラリストファイル . . . . . . . . . . . . . . . . . . . . 45 コンパイラリストファイル . . . . . . . . . . . . . . . . . . . . 29 フォーマット (XLINK オプション ) . . . . . . . . . . . . . . . 326 フォーマット指定子、定義 . . . . . . . . . . . . . . . . . . . . . . 380 フォント エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 等幅 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 プロポーショナル . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 不揮発性ストレージ、定義 . . . . . . . . . . . . . . . . . . . . . . 380 副作用、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 複数の関数インスタンスにソースを分解する場合 . . 247 不正なメモリアクセス、チェック . . . . . . . . . . . . . . . . 161 ブックマーク エディタで表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ブックマークの追加 / 削除 ( ボタン ) . . . . . . . . . . . . . 187 ブックマークの表示 ( エディタのオプション ) . . . . . 238 ブックマークへ移動 ( ボタン ) . . . . . . . . . . . . . . . . . . . 187 太字、本ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii 部品番号、ユーザガイド. . . . . . . . . . . . . . . . . . . . . . . . . . ii プライマリ ([ キーカスタマイズ ] オプション ) . . . . . 235 ブラウズ情報を生成 ([IDE Project] オプション ) . . . . 245 プラグイン (C-SPY オプション ) . . . . . . . . . . . . . . . . . 344 プラグインモジュール (C-SPY)、ロード . . . . . . . . . . 108 フラッシュメモリ 外部でビルドされたアプリケーション のロード先 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 プリインクルードフ ( コンパイラオプション ) . . . . . 310 プリエンプティブマルチタスク、定義 . . . . . . . . . . . . 381 プリプロセッサ 定義。C 形式プリプロセッサを参照 プリプロセッサ ( アセンブラオプション ) . . . . . . . . . 317 プリプロセッサ ( コンパイラオプション ) . . . . . . . . . 310 プリプロセッサディレクティブ 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 プリプロセッサのディレクティブ エディタのテキストスタイル . . . . . . . . . . . . . . . . . . 93 403 ブレークポイント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 C-SPY マクロに接続 . . . . . . . . . . . . . . . . . . . . . . . . . 143 settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 イミディエイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 コード、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 コンシューマ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 システム、説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 条件付き、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 すべてのリスト表示 . . . . . . . . . . . . . . . . . . . . . . . . . 130 設定 システムマクロの使用. . . . . . . . . . . . . . . . . . . . . 128 ダイアログボックスを使用 . . . . . . . . . . . . . . . . . 127 [ メモリ ] ウィンドウで . . . . . . . . . . . . . . . . . . . . 127 設定されていない場合のステップ実行 . . . . . . . . . 107 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 トグル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 [ メモリ ] ウィンドウで . . . . . . . . . . . . . . . . . . . . . . 127 ブレークポイントアイコン . . . . . . . . . . . . . . . . . . . . . . 126 [ ブレークポイント ] ウィンドウ ([ 表示 ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ブレークポイント条件、例 . . . . . . . . . . . . . . . . . . . . . . 128 [ ブレークポイント ] ダイアログボックス イミディエイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 ログ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 [ ブレークポイントの使用 ] ダイアログボックス ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 170 [ プレークポイントの使用 ] ダイアログボックス ([ シミュレータ ] メニュー ) 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ブレークポイントの切替え、例 . . . . . . . . . . . . . . . . 38, 60 ブレークポイントまでプログラムを実行 . . . . . . . . . . . 39 ブレーク ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . 115, 263 ブレーク位置入力 ([ ブレークポイント ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 IAR Embedded Workbench® IDE 404 ユーザガイド フローティングウィンドウ . . . . . . . . . . . . . . . . . . . . . . . 71 プログラミング経験 . . . . . . . . . . . . . . . . . . . . . . . . . . xxix プログラムカウンタ、定義 . . . . . . . . . . . . . . . . . . . . . . 381 プログラムの実行、C-SPY . . . . . . . . . . . . . . . . . . . . . . 111 プログラムロケーションカウンタ、定義 . . . . . . . . . . 381 プロジェクト オプションの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 外部でビルドされたアプリケーション のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 75 グループとファイルの排除 . . . . . . . . . . . . . . . . . . . . 78 グループ、作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 項目の削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 コンパイル、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 78 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 ソースコード管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 381 テスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 バージョン管理システム . . . . . . . . . . . . . . . . . . . . . . 82 ビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 バッチで . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ビルド構成、作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ファイル moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 チェックインとチェックアウト . . . . . . . . . . . . . . 83 ファイルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . 78, 224 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 編成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ワークスペース、作成 . . . . . . . . . . . . . . . . . . . . . . . . 78 プロジェクトオプション、定義 . . . . . . . . . . . . . . . . . . 381 プロジェクト管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 プロジェクトのデバッグ 外部でビルドされたアプリケーション . . . . . . . . . 109 逆アセンブリモード、例 . . . . . . . . . . . . . . . . . . . . . . 36 [ プロジェクト ] ページ ([IDE オプション ] ダイアログボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . 244 [ プロジェクト ] メニュー . . . . . . . . . . . . . . . . . . . . . . . 224 プロジェクトモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ブレークポイントの切り替え ( ボタン ) . . . . . . . . . . . 187 ブロック、C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . 348 プロトタイプの強制 ( コンパイラオプション ) . . . . . 304 [ プロファイリング ]( ウィンドウ ) . . . . . . . . . . . . . . . 286 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 プロファイリング情報 . . . . . . . . . . . . . . . . . . . . . . . . . 145 プロポーショナルフォント (IDE オプション ) . . . . . . 234 へ ページあたりの行数 (XLINK オプション ) . . . . . . . . . 333 ヘッダファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 迅速なアクセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 [ ヘルプ ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Compiler Reference Guide. . . . . . . . . . . . . . . . . . . . . . 258 Embedded Workbench ユーザガイド. . . . . . . . . . . . . 258 アセンブラリファレンスガイド . . . . . . . . . . . . . . . 258 リンカ / ライブラリツールファレンスガイド . . . . 258 変換、コンパイラで有効化 . . . . . . . . . . . . . . . . . . . . . . 307 編集 ([IDE オプション ] ダイアログボックス ) . . . . . 236 編集 ([ 外部エディタ ] オプション ) . . . . . . . . . . . . . . . 240 [ 編集 ] メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 変数 C-SPY 式で使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 C-SPY でのモニタ . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 最適化の影響 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 自動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 情報、制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 引数での使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 ほ ポインタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 飽和演算、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 保持時間 ( 割込みプロパティ ) 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 保持時間 ( 割込みプロパティ ) . . . . . . . . . . . . . . . . . . . 177 ホスト、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 保存 ([ ファイル ] メニュー ) . . . . . . . . . . . . . . . . . . . . 214 保存 ( ボタン ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 本ガイドのアイコン lightbulb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv コマンドプロンプト . . . . . . . . . . . . . . . . . . . . . . . xxxiv ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv 文本 (b) ([ 自動インデントの設定 ] オプション ) . . . . 239 翻訳単位、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 ま マイクロコントローラ、定義 . . . . . . . . . . . . . . . . . . . . 382 マイクロプロセッサ、定義 . . . . . . . . . . . . . . . . . . . . . . 382 前を検索 ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 マクロ システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 マクロ設定 (C-SPY オプション ) . . . . . . . . . . . . . . . . . 342 [ マクロ設定 ] ダイアログボックス ([ デバッグ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 マクロの引用符 ( アセンブラオプション ) . . . . . . . . . 316 マクロファイル、指定 . . . . . . . . . . . . . . . . . . . . . 107, 342 マクロ文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 末尾の空白を削除 ( エディタのオプション ) . . . . . . . 238 マップファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 マルチタスク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 マルチバイト文字サポートを有効にする ( アセンブラオプション ) . . . . . . . . . . . . . . . . . . . . . . . 315 マルチバイト文字サポートを有効にする ( コンパイラオプション ) . . . . . . . . . . . . . . . . . . . . . . . 305 み 右余白の表示 ( エディタのオプション ) . . . . . . . . . . . 237 未使用コードメモリをフィルする (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 未処理バイナリイメージ (XLINK オプション ) . . . . . 335 405 む 無効にしたエントリのインクルード (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 め 命令ニーモニック、定義. . . . . . . . . . . . . . . . . . . . . . . . 382 メールボックス (RTOS)、定義 . . . . . . . . . . . . . . . . . . . 382 メッセージ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 [ メッセージ ] ウィンドウ、出力内容 . . . . . . . . . . . . . 243 メニュー ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 シミュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 デバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 プロジェクト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 メニュー ([ キーカスタマイズ ] オプション ) . . . . . . . 235 メニューバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 C-SPY 専用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 メモリ 未使用部分のフィル . . . . . . . . . . . . . . . . . . . . . . . . . 336 モニタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 メモリアクセスコスト、定義 . . . . . . . . . . . . . . . . . . . . 382 メモリアクセスチェック. . . . . . . . . . . . . . . . . . . . 161, 163 [ メモリアクセスの設定 ] ダイアログボックス ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . 162 [ メモリアクセスの編集 ] ダイアログボックス . . . . . 164 メモリアクセス、不正な. . . . . . . . . . . . . . . . . . . . . . . . 161 [ メモリ ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 268 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 メモリエリア、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 メモリ使用、概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 メモリゾーン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 IAR Embedded Workbench® IDE 406 ユーザガイド メモリバンク、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 [ メモリ復元 ] ダイアログボックス . . . . . . . . . . . . . . . 271 [ メモリ保存 ] ダイアログボックス . . . . . . . . . . . . . . . 270 メモリマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 メモリモデル、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 免責事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii も モジュール 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 保持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 ローカルシンボルを入力に含める . . . . . . . . . . . . . 328 モジュールサマリ (XLINK オプション ) . . . . . . . . . . . 333 モジュールタイプ ( コンパイラオプション ) . . . . . . . 308 モジュールマップ、マップファイル . . . . . . . . . . . . . . . 32 モジュールローカルシンボル (XLINK オプション ) . . 328 モジュール名、コンパイラで指定 . . . . . . . . . . . . . . . . 308 文字列、エディタのテキストスタイル . . . . . . . . . . . . . 93 文字、アセンブラマクロの引用符 . . . . . . . . . . . . . . . . 316 元に戻す ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 や やり直し ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 ゆ 有効化した変換、コンパイラ . . . . . . . . . . . . . . . . . . . . 307 ユーザアプリケーション、定義 . . . . . . . . . . . . . . . . . . 104 ユーザシンボルで大文字と小文字を区別する ( アセンブラオプション ) . . . . . . . . . . . . . . . . . . . . . . . 315 優先順位、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 よ 用語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 用語集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 呼出し規約、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 [ 呼出しスタック ] ウィンドウ . . . . . . . . . . . . . . . 116, 282 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 282 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 呼出しスタック情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 呼出しチェーン、C-SPY での表示. . . . . . . . . . . . . . . . 115 ら ライブウォッチ (IDE オプション ). . . . . . . . . . . . . . . . 248 [ ライブウォッチ ] ウィンドウ . . . . . . . . . . . . . . . . . . . 278 コンテキストメニュー . . . . . . . . . . . . . . . . . . . 278–279 ライブラリ ( 一般オプション ) . . . . . . . . . . . . . . . . . . . 299 ライブラリアンビルダ。XAR を参照 ライブラリアン。XLIB を参照 ライブラリオプション ( 一般オプション ) . . . . . . . . . 300 ライブラリ関数 configurable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 リファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ライブラリ設定 ( 一般オプション ) . . . . . . . . . . . . . . . 299 ライブラリ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 ライブラリファイル . . . . . . . . . . . . . . . . . . . . . . . . . 12, 15 ライブラリファイル ( 一般オプション ) . . . . . . . . . . . 299 ライブラリ、プロジェクトの作成 . . . . . . . . . . . . . . . . . 64 ライブラリモジュール コンパイラで指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 ライブラリ、ランタイム. . . . . . . . . . . . . . . . . . . . . . . . . 10 ラウンドロビン、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 383 ラベル (c) ([ 自動インデントの設定 ] オプション ). . . 239 ラベル ( アセンブラ )、表示 . . . . . . . . . . . . . . . . . . . . . 122 ランタイムモデル属性 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 マップファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ランタイムライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . 10 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 ランタイム管理モジュール付き (XLINK オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 り リアルタイムシステム、定義 . . . . . . . . . . . . . . . . . . . . 383 リスト (XLINK オプション ). . . . . . . . . . . . . . . . . . . . . 332 リスト ( アセンブラオプション ) . . . . . . . . . . . . . . . . . 317 リスト ( コンパイラオプション ) . . . . . . . . . . . . . . . . . 309 リストファイル XLINK 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 セグメントマップを含める . . . . . . . . . . . . . . . . . 332 ページあたりの行数を指定 . . . . . . . . . . . . . . . . . 333 アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 コンパイラのランタイム情報、含める . . . . . . . 309 コンパイラ アセンブラニーモニック、含める . . . . . . . . . . . 309 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 ソースコード、含める. . . . . . . . . . . . . . . . . . . . . 309 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 出力先指定用オプション . . . . . . . . . . . . . . . . . . . . . 298 リストファイルの出力 ( コンパイラオプション ) . . . 309 リセット、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 リセット ([ デバッグ ] メニュー )、例 . . . . . . . . . . . . . . 42 リセット ( ボタン ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 リファレンス情報 C-SPY IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 IAR Embedded Workbench . . . . . . . . . . . . . . . . . . . . . 185 ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv リマークとして処理 ( コンパイラオプション ) . . . . . 312 リマークを有効化 ( コンパイラオプション ) . . . . . . . 312 リリースノート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 リンカ / ライブラリツールファレンスガイド ([ ヘルプ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . 258 リンカコマンドファイル XLINK で指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 テンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 パス、指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 リンカコマンドファイル (XLINK オプション ) . . . . . 334 リンカリストの生成 (XLINK オプション ) . . . . . . . . . 332 リンカ。XLINK を参照 リアルタイムオペレーティングシステム、定義 . . . . 383 407 る ルートディレクトリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ループ文、C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . 347 れ 例 C-SPY マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 C/C++ 言語とアセンブラ、結合 . . . . . . . . . . . . . . . . 44 ddf ファイル、使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 アセンブラ C 言語とアセンブラの結合 . . . . . . . . . . . . . . . . . . 43 リストファイルの表示. . . . . . . . . . . . . . . . . . . . . . 45 関数呼出し、C-SPY での表示 . . . . . . . . . . . . . . . . . . 58 逆アセンブリモードのデバッグ . . . . . . . . . . . . . . . . 36 更新ファイルをスキャン ( エディタオプション )、 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 コンパイラリストファイルの表示 . . . . . . . . . . . . . . 29 コンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 実行を停止しないでタスクを実行 . . . . . . . . . . . . . 128 ステップ実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 [ ターミナル I/O]、表示 . . . . . . . . . . . . . . . . . . . . . . . 41 不正な関数引数のトレース . . . . . . . . . . . . . . . . . . . 128 ブレークポイント . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 設定 ダイアログボックスを使用 . . . . . . . . . . . . . . . 59 マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ブレークポイントまでの実行 . . . . . . . . . . . . . . . . 39 プログラムの最後まで実行 . . . . . . . . . . . . . . . . . . . . 41 プログラムのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . 33 プロジェクト 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23–24 ファイルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 プロジェクトオプションの設定 . . . . . . . . . . . . . . . . 27 変数 C-SPY でのモニタ . . . . . . . . . . . . . . . . . . . . . . . . . 36 ウォッチポイントの設定 . . . . . . . . . . . . . . . . . . . . 37 マクロ WDT のステータスのチェック . . . . . . . . . . . . . . 142 [ クイックウォッチ ] を使用 . . . . . . . . . . . . . . . . 142 IAR Embedded Workbench® IDE 408 ユーザガイド レジスタのステータスのチェック . . . . . . . . . . . 142 ログマクロの作成 . . . . . . . . . . . . . . . . . . . . . . . . 143 割込みとブレークポイントの設定 . . . . . . . . . . . . 61 [ メモリ ] ウィンドウ、使用 . . . . . . . . . . . . . . . . . . . 40 メモリ、モニタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 呼出し規約、チェック . . . . . . . . . . . . . . . . . . . . . . . . 43 ライブラリの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 リンク コンパイラプログラム. . . . . . . . . . . . . . . . . . . . . . 31 マップファイルの表示. . . . . . . . . . . . . . . . . . . . . . 32 レジスタ、モニタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ワークスペース、新規作成 . . . . . . . . . . . . . . . . . . . . 23 割込み マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 レイアウト、Embedded Workbench. . . . . . . . . . . . . . . . . 71 例外、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 レジスタ 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 [ レジスタ ] ウィンドウ 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 レジスタグループ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 アプリケーション固有、定義 . . . . . . . . . . . . . . . . . 135 定義済み、有効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 レジスタフィルタ ([IDE オプション ] ダイアログ ボックス ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 レジスタフィルタの使用 ([ レジスタフィルタ ] オプション ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 レジスタロック、定義 . . . . . . . . . . . . . . . . . . . . . . . . . 384 レジスタ定数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 レジスタ変数、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 列挙型、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 ろ [ ローカル ] ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . 276 コンテキストメニュー . . . . . . . . . . . . . . . . . . . . . . . 277 ローカル変数。自動変数を参照 [ ログファイルの設定 ] ダイアログボックス ([ デバッグ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . 292 ロケーションカウンタ、定義 . . . . . . . . . . . . . . . . . . . . 381 論理アドレス、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 わ ワークスペース 作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 78 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 [ ワークスペース ] ウィンドウ . . . . . . . . . . . . . . . . . . . 188 コンテキストメニュー . . . . . . . . . . . . . . . . . . . 189, 203 ファイルのドラッグアンドドロップ . . . . . . . . . . . . 79 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ワークスペースの保存 ([ ファイル ] メニュー ) . . . . . 214 ワークスペースを閉じる ([ ファイル ] メニュー ) . . . 214 ワーニング XLINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 ワーニング / エラー (XLINK オプション ) . . . . . . . . . 331 ワーニングとして処理 (XLINK オプション ) . . . . . . . 331 ワーニングとして処理 ( コンパイラオプション ) . . . 313 割込み オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 擬似、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 システムマクロの使用 . . . . . . . . . . . . . . . . . . . . . . . 178 ターゲットハードウェアに合せた C-SPY システム の調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 タイマ、例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 ネスト、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 割込みシステム、デバイス記述ファイルの使用 . . . . 174 割込みシミュレーション、有効 / 無効 . . . . . . . . . . . . 175 [ 割込み設定 ] ダイアログボックス ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 [ 割込みの編集 ] ダイアログボックス ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 割込みベクタテーブル、定義 . . . . . . . . . . . . . . . . . . . . 384 割込みベクタ、定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 [ 割込みログ ] ウィンドウ ([ シミュレータ ] メニュー ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 409