µVision4 User's Guide (Japanese): µVision4 ユーザガイド

Keil, An ARM® Company µVision4 ユーザガイド

このユーザガイドでは、µVision®4 IDE およびデバッガについて説明します。本書は以下の章から構成されています。

  • 「µVision4 の概要」では、µVision4 IDE の主な機能、統合されたデバッガ、ソフトウェア開発サイクル、開発ツールの設定について説明します。
  • 「ユーザインタフェース」では、メニュー、ツールバー、ウィンドウの概念、ドッキングウィンドウ、デフォルトのキーボードショートカットについて説明します。
  • 「アプリケーションの作成」では、プロジェクトの作成、ソースファイルの編集とコンパイル、エラーと警告の修正、実行可能コードの生成を行う方法について説明します。また、マルチプロジェクト機能についても説明します。上級レベルのテクニックについて説明するセクションも含まれています。
  • 「ユーティリティ」では、ファイル内検索（Find in Files）などの組み込みユーティリティ、ソフトウェアバージョンコントロールシステム（SVCS）などの外部サードパーティユーティリティ、およびフラッシュプログラミングツールについて説明します。
  • 「デバッグ」では、µVision4 デバッガを使用してアプリケーション全体のシミュレーションとテストを行う方法について説明します。
  • 「デバッグコマンド」では、µVision4 コマンドラインに入力される µVision4 デバッグコマンドについての詳細情報を示します。
  • 「デバッグ関数」では、µVision4 のデバッグ機能を拡張した組み込み関数、ユーザ関数、およびシグナル関数について説明します。
  • 「シミュレーション」では、デジタル、アナログ、通信シグナルの入出力のシミュレートに使用できる関数の情報および例を示します。
  • 「フラッシュプログラミング」では、アプリケーションプログラムをフラッシュ ROM にプログラムする方法を示します。
  • 「ダイアログ」では、画面上のオプション、ボタン、パラメータまたはフィールド記述について説明します。
  • 「サンプルプログラム」では、ツールキットに含まれるサンプルプログラムについて説明します。
  • 「コマンドライン」では、コマンドプロンプトまたはバッチファイルから µVision4 を起動する方法について説明します。
  • 「付録」では、製品のライセンス、ファイルタイプ、およびデバイスデータベースのパラメータについての情報を示します。

改訂履歴

  • 2009 年 9 月：µVision4 の初期リビジョン

Copyright © Keil, An ARM Company. All rights reserved.


µVision4 User's Guide (Japanese): __acos

__acos

概要
double __acos (
  double x);   /* number to calculate arc cosine of */
説明

__acos デバッガ関数は、浮動小数点数 x の弓形余弦を計算します。x の値は -1 ～ 1 の範囲である必要があります。__acos によって返される浮動小数点値は、0 ～ π の範囲の数です。
戻り値

__acos 関数は x の弓形余弦を返します。
関連項目

__asin
例
> __acos(0.532);


µVision4 User's Guide (Japanese): __asin

__asin

概要
double __asin (
  double x);   /* number to calculate arc sine of */
説明

__asin デバッガ関数は、浮動小数点数 x の弓形正弦を計算します。x の値は -1 ～ 1 の範囲である必要があります。__asin によって返される浮動小数点値は、-π/2 ～ π/2 の範囲の値です。
戻り値

__asin 関数は、x の弓形正弦を返します。
例
> __asin(0.3);


µVision4 User's Guide (Japanese): __atan

__atan

概要
double __atan (
  double x);   /* number to calculate arc tangent of */
説明

__atan デバッガ関数は、浮動小数点数 x の弓形正接を計算します。__atan によって返される浮動小数点値は、-π/2 ～ π/2 の範囲の数です。
戻り値

__atan 関数は、x の弓形正接を返します。
関連項目

__acos、__asin
例
> __atan(3);


µVision4 User's Guide (Japanese): __cos

__cos

概要
double __cos (
  double x);   /* value to calculate cosine for */
説明

__cos デバッガ関数は、浮動小数点値 x の三角余弦を計算します。
戻り値

__cos 関数は、x の余弦を返します。
関連項目

__sin、__tan
例
FUNC float cosine_wave (float f) {
  float pi = 3.14159265;

  return __cos (f * (((float) STATES) / CLOCK) * 2 * pi);
}


µVision4 User's Guide (Japanese): __exp

__exp

概要
double __exp (
  double x);   /* power to use for exfunction */
説明

__exp デバッガ関数は、浮動小数点値 x の指数関数を計算します。
戻り値

__exp 関数は、浮動小数点値 ex を返します。
関連項目

__log、__log10、__sqrt
例
> __exp(3);


µVision4 User's Guide (Japanese): __log

__log

概要
double __log (
  double val);   /* value to take natural logarithm of */
説明

__log デバッガ関数は、浮動小数点数 val の自然対数を計算します。対数とは、val と等しくなるまで底（自然対数の場合 e または 2.718282...）を乗算しなければならない指数のことです。つまり、以下のようになります。

loge ex = val
戻り値

__log 関数は、val の浮動小数点自然対数を返します。
関連項目

__exp、__log10
例
> __log(3.3);


µVision4 User's Guide (Japanese): __log10

__log10

概要
double __log10 (
  double val);   /* value to take common logarithm of */
説明

__log10 デバッガ関数は、浮動小数点数 val の常用対数を計算します。対数とは、val と等しくなるまで底（常用対数の場合 10）を乗算しなければならない指数のことです。つまり、以下のようになります。

log10 10x = val

以下に例を示します。

log10(120)
= log10(102 × 1.2)
= 2 + log10(1.2)
≈ 2 + 0.079181 または 2.079181
戻り値

__log10 関数は、val の浮動小数点常用対数を返します。
関連項目

__exp、__log
例
> __log10(1000);


µVision4 User's Guide (Japanese): __sin

__sin

概要
double __sin (
  double x);   /* value to calculate sine for */
説明

__sin デバッガ関数は、浮動小数点値 x の三角正弦を計算します。
戻り値

__sin 関数は、x の正弦を返します。
関連項目

__cos、__tan
例
FUNC float sine_wave (float f) {
  float pi = 3.14159265;

  return __sin (f * (((float) STATES) / CLOCK) * 2 * pi);
}


µVision4 User's Guide (Japanese): __sqrt

__sqrt

概要
double __sqrt (
  double x);   /* value to calculate square root of */
説明

__sqrt デバッガ関数は、x の平方根を計算します。
戻り値

__sqrt 関数は、x の正の平方根を返します。
例
> __sqrt(3);


µVision4 User's Guide (Japanese): __tan

__tan

概要
double __tan (
  double x);   /* value to calculate tangent of */
説明

__tan デバッガ関数は、浮動小数点値 x の三角正接を計算します。
戻り値

__tan 関数は、x の正接を返します。
関連項目

__cos、__sin
例
> __tan (1.2)


µVision4 User's Guide (Japanese): _RBYTE

_RBYTE

概要
unsigned char _RBYTE (
  unsigned long address);   /* address to read */
説明

_RBYTE デバッガ関数は、address の符号なし文字値を読み出します。
戻り値

_RBYTE 関数は、address の符号なし char 値を返します。
関連項目

_RDOUBLE、_RDWORD、_RFLOAT、_RWORD、_WBYTE
例
> _RBYTE (0x20000);


µVision4 User's Guide (Japanese): _RDOUBLE

_RDOUBLE

概要
double _RDOUBLE (
  unsigned long address);   /* address to read */
説明

_RDOUBLE デバッガ関数は、address の倍精度浮動小数点値を読み出します。
戻り値

_RDOUBLE 関数は、address の double 値を返します。
関連項目

_RBYTE、_RDWORD、_RFLOAT、_RWORD、_WDOUBLE
例
> _RDOUBLE (0x20000);


µVision4 User's Guide (Japanese): _RDWORD

_RDWORD

概要
unsigned long _RDWORD (
  unsigned long address);   /* address to read */
説明

_RDWORD デバッガ関数は、address の符号なし長整数値を読み出します。
戻り値

_RDWORD 関数は、address の符号なし long 値を返します。
関連項目

_RBYTE、_RDOUBLE、_RFLOAT、_RWORD、_WDWORD
例
> _RDWORD (0x1000);


µVision4 User's Guide (Japanese): _RFLOAT

_RFLOAT

概要
float _RFLOAT (
  unsigned long address);   /* address to read */
説明

_RFLOAT デバッガ関数は、address の単精度浮動小数点値を読み出します。
戻り値

_RFLOAT 関数は、address の float 値を返します。
関連項目

_RBYTE、_RDOUBLE、_RDWORD、_RWORD、_WFLOAT
例
> _RFLOAT (0xE000);


µVision4 User's Guide (Japanese): _RWORD

_RWORD

概要
unsigned int _RWORD (
  unsigned long address);   /* address to read */
説明

_RWORD デバッガ関数は、address の符号なし整数値を読み出します。
戻り値

_RWORD 関数は、address の符号なし int 値を返します。
関連項目

_RBYTE、_RDOUBLE、_RDWORD、_RFLOAT、_WWORD
例
> _RWORD (0x1000);


µVision4 User's Guide (Japanese): _sleep_

_sleep_

概要
void _Sleep_ (ulong milliseconds) /* Delay script nmilliseconds */
説明

_sleep_ 関数は、デバッグ関数またはシグナル関数でスクリプトの実行を遅らせるために使用できます。_sleep_ 関数は、スクリプト言語の実行に短い遅延を含める場合に便利です。シミュレーションモードとターゲットデバッグモードで使用できます。
戻り値

なし
例

以下のスクリプトは、ARM デバイスのオシレータを切り替えて高速ダウンロードを可能にします。

// Switching from Slow Clock to Main Oscillator for faster Downloading
_WDWORD(0xFFFF4020, 0x002F0002);     // APMC_CGMR: Enable Main Oscillator
_sleep_(10);                         // Wait for stable Main Oscillator
_WDWORD(0xFFFF4020, 0x002F4002);     // APMC_CGMR: Switch to Main Oscillator


µVision4 User's Guide (Japanese): _TaskRunning_

_TaskRunning_

概要
int _TaskRunning_ (ulong func_address)
説明

この関数は、指定したタスク関数が現在実行されているタスクかどうかをチェックします。_TaskRunning_ は、［ターゲットのオプション］（Options for Target）→［ターゲット］（Target）でオペレーティングシステムを選択した場合にのみ使用できます。µVision3 は、各種オペレーティングシステムのカーネルに対応した追加 DLL をロードします。詳細については、RTX カーネル対応デバッグに関するセクションを参照して下さい。
戻り値

_TaskRunning_ 関数は呼び出し元に int 値を返します。
例

デバッグ関数 _TaskRunning_ の結果を _break_ system 変数に割り当てると、特定のタスクがアクティブな場合のプログラムの実行を停止できます。

>_TaskRunning_ (command)       /* check if task 'command' is running     */
0001                           /* returns 1 if task is currently running */
>_break_= _TaskRunning_ (init) /* stop program when 'init' is running    */


µVision4 User's Guide (Japanese): _WBYTE

_WBYTE

概要
void _WBYTE (
  unsigned long address,   /* address to write to */
  unsigned char value);    /* value to write */
説明

_WBYTE デバッガ関数は、符号なし文字 value を、指定した address に書き込みます。
戻り値

なし。
関連項目

_RBYTE、_WDOUBLE、_WDWORD、_WFLOAT、_WWORD
例
> _WBYTE (0x20000, 0x55);


µVision4 User's Guide (Japanese): _WDOUBLE

_WDOUBLE

概要
void _WDOUBLE (
  unsigned long address,   /* address to write to */
  double value);           /* value to write */
説明

_WFLOAT デバッガ関数は、倍精度浮動小数点 value を、指定した address に書き込みます。
戻り値

なし。
関連項目

_RDOUBLE、_WBYTE、_WDWORD、_WFLOAT、_WWORD
例
> _WDOUBLE (0x20000, 1.23456789);


µVision4 User's Guide (Japanese): _WDWORD

_WDWORD

概要
void _WDWORD (
  unsigned long address,   /* address to write to */
  unsigned long value);    /* value to write */
説明

_WDWORD デバッガ関数は、符号なし長整数 value を、指定した address に書き込みます。
戻り値

なし。
関連項目

_RDWORD、_WBYTE、_WDOUBLE、_WFLOAT、_WWORD
例
> _WDWORD (0x1000, 12345678);


µVision4 User's Guide (Japanese): _WFLOAT

_WFLOAT

概要
void _WFLOAT (
  unsigned long address,   /* address to write to */
  float value);            /* value to write */
説明

_WFLOAT デバッガ関数は、単精度浮動小数点 value を、指定した address に書き込みます。
戻り値

なし。
関連項目

_RFLOAT、_WBYTE、_WDOUBLE、_WDWORD、_WWORD
例
> _WFLOAT (0xE000, 1.5);


µVision4 User's Guide (Japanese): _WWORD

_WWORD

概要
void _WWORD (
  unsigned long address,   /* address to write to */
  unsigned int value);     /* value to write */
説明

_WWORD デバッガ関数は、符号なし整数 value を、指定した address に書き込みます。
戻り値

なし。
関連項目

_RWORD、_WBYTE、_WDOUBLE、_WDWORD、_WFLOAT
例
> _WWORD (0x20000, 123);


µVision4 User's Guide (Japanese): A. 製品のライセンス

A. 製品のライセンス

各 Keil ソフトウェア製品は、ライセンス ID コード（LIC）を使用してアクティブにする必要があります。LIC は、製品の登録中に電子メールで受信する個別の製品シリアル番号（PSN）です。

製品ライセンスには次の 2 種類があります。

シングルユーザライセンスはすべての Keil ソフトウェア製品に用意されており、1 つの製品を 1 人のユーザが使用できます。

  • ソフトウェア製品をインストールし、LIC を取得してシングルユーザライセンスをアクティブにします。
  • ソフトウェア製品を別のコンピュータに移す場合は、シングルユーザライセンスをアンインストールします。

フローティングユーザライセンスは多数の Keil ソフトウェア製品に用意されており、1 つの製品を複数の開発者が複数のコンピュータで同時に使用できます。

フローティングユーザライセンスをアクティブにするには：

  • 各ワークステーションからアクセスできるファイルサーバ上にフローティングライセンスファイルを作成します。
  • それぞれのワークステーションでソフトウェア製品をインストールし、ローカルワークステーションをアクティブにするための LIC を取得します。

フローティングユーザライセンスの追加オプションにより、以下のことが可能になります。

  • 現在アクティブなユーザのリストの確認。
  • （ポータブルコンピュータを使用する出張時など）ネットワーク接続なしの状態でのライセンスの長時間使用。


µVision4 User's Guide (Japanese): 付録

付録

この付録では、µVision4 について以下のような詳細を説明します。

  • 「製品のライセンス」では、ソフトウェア製品をライセンス、インストール、および削除する手順を示します。
  • 「ファイルタイプ」には、サポートされているファイル拡張子の一覧があります。
  • 「デバイスデータベースのパラメータ」では、デバイスデータベースで使用されるさまざまなパラメータを一覧にして説明します。


µVision4 User's Guide (Japanese): B. ファイルタイプ

B. ファイルタイプ

µVision4 では以下のファイルタイプがサポートされています。

プロジェクトファイル

  • *.UVPROJ：µVision4 プロジェクトファイル（完全なワークグループで共有できるグローバルなプロジェクト設定）。
  • *.UVMPW：マルチプロジェクト用 µVision4 プロジェクトファイル（完全なワークグループで共有できるグローバルなプロジェクト設定）。
  • *.UV2：µVision の旧バージョンの µVision プロジェクトファイル。µVision4 からファイルを開いて新しいファイルタイプに変換します。
  • *.OPT：µVision4 ローカルプロジェクトのオプション設定（デバッガの設定、現在開いているファイル、画面の位置など）

ソースファイル

  • *.A51：アセンブラソースファイル
  • *.A66：アセンブラソースファイル
  • *.S：アセンブラソースファイル（通常は ARM ソースファイルに使用）
  • *.SRC：C コンパイラで生成される他のソースファイル
  • *.C：C ソースファイル
  • *.CPP：C++ ソースファイル
  • *.H：C ヘッダファイル（#include を使用）
  • *.INC：アセンブラインクルードファイル（$include を使用）

リストファイル

  • *.I：C プリプロセッサ出力ファイル
  • *.LST：C コンパイラまたはアセンブラによって生成されるリストファイル
  • *.MAP：リンカによって生成されるリストファイル（またはマップファイル）
  • *.M51：リンカによって生成されるリストファイル（またはマップファイル）
  • *.M66：リンカによって生成されるリストファイル（またはマップファイル）
  • *.HTM：RealView Linker のリストファイル
  • *.PLG：各メイクのビルドウィンドウの内容
  • *.COD：C とアセンブリのコードが混在する完全なプログラムリストファイル。すべての参照が解決され、アドレスが設定されています。

オブジェクトファイルと HEX ファイル

  • *.OBJ：移動可能なオブジェクトファイル
  • *.O：移動可能なオブジェクトファイル
  • *.（拡張子なし）：アブソリュートオブジェクトファイル（リンカによって生成される実行可能プログラム）
  • *.Bxx：個々のコードバンク用に OC51 によって生成されるアブソリュートオブジェクトファイル（xx は 00 ～ 31 の範囲）
  • *.ELF：リンカ/ロケータによって生成される ELF/DWARF ファイル
  • *.HEX：Object-Hex 変換ユーティリティによって生成される Intel Hex ファイル
  • *.H86：Object-Hex 変換ユーティリティによって生成される Intel Hex ファイル
  • *.SBR：リンカ/ロケータによって生成されるソースブラウザ情報ファイル

ビルドファイル

  • *.BAT：コマンドプロンプトからプロジェクトを再作成するバッチファイル。［プロジェクト］（Project）→［出力］（Output）→［バッチファイルの作成］（Create Batch File） が有効になっているときに、バッチファイルを作成できます。
  • *._IA, *.__I, *._II：ツール呼び出しファイル。

デバッガファイル

  • *.INI：通常はデバッガの初期化ファイルに使用されます。

その他のファイル

  • *.ORC：最適化用のグローバルレジスタカラーファイル
  • *.IC：EC++ コンパイラによって作成される中間 C ソースファイル
  • *.LNP：コマンドラインを渡すために µVision4 によって生成されるリンカ入力ファイル
  • *.PLG：前回のビルドプロセスを要約するプロトコルファイル


µVision4 User's Guide (Japanese): C. デバイスデータベースのパラメータ

C. デバイスデータベースのパラメータ

［ファイル］（File）→［デバイスデータベース］（Device Database）ダイアログを使用すると、デバイスデータベースに新しいデバイスを追加できます。このダイアログの［オプション］（Options）フィールドには、デバイスのツール設定を指定するさまざまなパラメータ文字列が含まれています。CPU= 文字列にエンコードされる基本的なデバイスパラメータを以下の表に示します。

パラメータ | 説明
IRAM (range) | オンチップ IRAM の場所をアドレス指定します。
XRAM (range) | オンチップ XRAM の場所をアドレス指定します。
XRAM2 (range) | 第 2 のオンチップ XRAM 領域の場所をアドレス指定します。
IROM (range) | オンチップ（フラッシュ）ROM の場所をアドレス指定します。開始アドレスは 0 でなければなりません。サイズが 32KB を超える場合は、自動的に 2 つのセクションに分割されます。範囲は物理 ROM のサイズを指定します。
IROM2 (range) | （8051 とバリアントのみ）第 2 のオンチップ ROM の場所をアドレス指定します。
ICAN (range) | オンチップ CAN モジュールの場所をアドレス指定します。C167 とバリアントのみに使用されます。
CPUTYPE (variant) ARM ベースのコントローラの以下のコアバリアントのいずれかを指定します。
  • Cortex-M0
  • Cortex-M1
  • Cortex-M3
  • ARM7TDMI
  • ARM926EJ-S
  • ARM966E-S
  • ARM9E
EBIG | ARM ベースのコントローラのデフォルトを BIG エンディアンにします。
ELITTLE | ARM ベースのコントローラのデフォルトを LITTLE エンディアンにします。
ESEL | ARM ベースのコントローラのエンディアンの選択を許可します。
CLOCK (val) | デバイスの選択時に使用されるデフォルトの CPU クロック。
FPU | ARM デバイスのデフォルトの VFPU 使用量を指定します。可能なオプションは、none、lib、ANSI、fast です。
MDU_F120 | SiliconLabs C8051F12x デバイスバリアントの乗累算ユニットを使用します。
MDU_R515 | Cast/Evatronix R80515 の乗除算ユニットを使用します。
MOD167 | C16x デバイスバリアントの命令セット拡張機能を使用します。
MOD517DP | Infineon 8051 に固有の複数の DPTR レジスタを有効にします。
MOD517AU | Infineon 8051 に固有の算術演算装置を有効にします。
MODA2 | （AT89S8252 などにある）Atmel に固有の複数の DPTR レジスタを有効にします。
MODAB2 | アナログデバイスに固有の複数の DPTR レジスタを有効にします。
MODC2 | Cast/Evatronix に固有の複数の DPTR レジスタ（R80515）を有効にします。
MOD_CONT | Dallas 連続モードのサポートを有効にします。
MODDA | Dallas に固有の算術加速装置を有効にします。
MODDP2 | Dallas に固有の複数の DPTR レジスタを有効にします。
MODH2 | Hynix/ST uPSD33xx uPSD34xx の複数の DPTR レジスタを有効にします。
MODP2 | NXP に固有の複数の DPTR レジスタを有効にします。（Atmel のデバイスもこのバリアントを使用する場合があります。）
MODV2 | C16x V2 アーキテクチャの命令セット拡張機能を使用します。
MX | NXP 80C51MX アーキテクチャのサポートを有効にします。
MXP | NXP SmartMX SmartCard アーキテクチャのサポートを有効にします。
DPX | アナログデバイス ADuC812 の 24 ビット DPTR レジスタを有効にします。
PMW | MOVX 命令を使用して Evatronix R8051XC のコードスペースに書き込めるようになる PCON.PMW 機能を有効にします。
DPC | Evatronix R8051XC で DPTR レジスタの自動インクリメント機能を提供するデータポインタコントロールレジスタを有効にします。
BSE | Evatronix R8051XC でレジスタ DPSEL.3 のバンクスイッチ有効化機能を有効にします。
PSOC | Cypress PSoC の割り込みベクタの生成を有効にします。

さらに、以下のオプションをユーザが変更できます。

パラメータ | 説明
BOOKn=document_file(title) | ［プロジェクト］（Project）ウィンドウ→［ブック］（Books）リストに挿入されるデバイスデータブックファイル。
FLASH=command_file(options) | デバイスと一緒に使用するフラッシュユーティリティを指定します。
REGFILE=sfr_file(folder) | CPU のペリフェラルレジスタ定義ファイルを指定します。
SFILE=startup_file(folder) | プロジェクトにコピーするデフォルトのスタートアップファイルを指定します。

その他のオプションは、データブックと µVision デバッグ DLL を指定します。新しいデバイスをデータベースに追加するときに、これらの変数を変更しないで下さい。


µVision4 User's Guide (Japanese): マルチプロジェクトのバッチビルド

マルチプロジェクトのバッチビルド

マルチプロジェクト環境では、すべてのプロジェクトを 1 つの作業手順でコンパイルできます。

マルチプロジェクトのバッチビルド ツールバーの［バッチビルド］（Batch Build）または［プロジェクト］（Project）→［バッチビルド］（Batch Build）メニューを使用します。

［プロジェクトターゲットの選択］（Select Project Targets）
プロジェクトをアルファベット順に表示します。プロジェクトターゲットは、プロジェクトで定義されているとおりに並びます。
チェックボックス
オブジェクトファイルをビルドするターゲットを選択します。
［ビルド］（Build）ボタン
変更してターゲットを選択したファイルをコンパイルし、アセンブルします。
［再ビルド］（Rebuild）ボタン
選択したターゲットのすべてのファイルをコンパイルまたはアセンブルします。
［クリーン］（Clean）ボタン
選択したターゲットのオブジェクトファイルを削除します。
［すべてを選択］（Select All）ボタン
［プロジェクトターゲットの選択］（Select Project Targets）フィールドに表示されたすべてのターゲットを選択します。
［すべての選択を解除］（Deselect All）ボタン
［プロジェクトターゲットの選択］（Select Project Targets）フィールドに表示されたすべてのターゲットの選択を解除します。

注

  • すべてのアクションは、選択したターゲットのみに適用されます。
  • 個々のプロジェクトの設定に従って、オブジェクトファイルが作成されます。
  • 共通のオブジェクトファイルが追加作成されることはありません。
  • ターゲットは［プロジェクト］（Project）ウィンドウで設定した順にビルドされます。


µVision4 User's Guide (Japanese): プロジェクトのビルド

プロジェクトのビルド

ターゲットのビルドのボタン 通常、新しいアプリケーションの開始に必要な手順は、［プロジェクト］（Project ）→［ターゲットのオプション］（Options for Target）のツール設定だけです。ツールバーの［ビルド］（Build）ボタンをクリックすると、すべてのソースファイルを変換してアプリケーションをリンクできます。

アプリケーションをビルドすると、エラー、警告、その他のメッセージが［ビルド出力］（Build Output）ウィンドウに表示されます。メッセージをダブルクリックすると、そのソースファイルが開きます。

プロジェクトのビルド後、以下の操作が可能です。

  • 既存のソースコードの変更、またはプロジェクトへの新しいソースファイルの追加。
    ［ビルド］（Build）ボタンは、変更されたファイルまたは新しいソースファイルのみを変換して実行可能ファイルを生成します。

    µVision4 ではファイル依存関係リストが管理され、ソースファイル内で使用されるインクルードファイルがすべて認識されます。必要な場合にだけファイルが再ビルドされるように、ツールオプションもファイル依存関係リストに保存されます。

    ［再ビルド］（Rebuild）コマンドを使用すると、変更の有無にかかわらず、すべてのソースファイルが変換されます。
  • µVision4 デバッガでのプログラムのテスト。µVision4 デバッガには 2 種類の動作モードがあります。シミュレータモードでは PC 上でアプリケーションを検証でき、ターゲットデバッグモードでは評価ボードまたはハードウェアプラットフォームを使用します。
  • フラッシュ ROM へのアプリケーションのプログラミング。µVision4 では、コマンドライン駆動型のフラッシュユーティリティを統合するか、ULINK USB-JTAG ファミリのフラッシュプログラミング用アダプタを使用できます。

    フラッシュプログラミングユーティリティを使用するには、HEX ファイルの作成が必要になる場合があります。


µVision4 User's Guide (Japanese): コンパイラとアセンブラの異なる設定

コンパイラとアセンブラの異なる設定

ファイル、グループ、ターゲットレベルで、異なるオプションを設定できます。目的のオブジェクトをクリックし、［プロジェクト］（Project）ウィンドウからコンテキストメニューを開きます。

ファイル設定はグループ設定を上書きし、グループ設定はターゲット設定を上書きします。

アセンブラとコンパイラに固有のダイアログには 3 つの状態を表すコントロールがあります。
各状態を以下に示します。

  • グレーの場合は、親グループまたはターゲットの設定が使用されます。
  • 白でチェックマークが付いていない場合は、無効になっています。
  • 白でチェックマークが付いている場合は、有効になっています。

この方法により、ファイルグループ全体に異なるツール設定を指定し、さらにこのファイルグループ内の 1 つのソースファイルの設定を変更することができます。


µVision4 User's Guide (Japanese): スタートアップコードの設定

スタートアップコードの設定

スタートアップコード（ほとんどの ARM ターゲットではファイル名は Startup.S）は、［プロジェクト］（Project）ウィンドウから開くことができます。ほとんどのスタートアップファイルには、µVision4 コンフィギュレーションウィザード用のコメントが埋め込まれています。このウィザードでは、メニューから項目を選択していきます。

ほとんどのアプリケーションについては、スタートアップコードのデフォルト設定から始めることをお勧めします。ただし、構成をターゲットハードウェアに適合させる必要があります。CPU/PLL クロックと BUS システムはターゲットに固有で、自動設定できません。一部のデバイスには、オンチップコンポーネントを有効または無効にするオプションがあります（例えば、8051 バリアントのオンチップ xdata RAM）。

［テキストエディタ］（Text Editor）ボタンをクリックすると、スタートアップコードを標準のエディタウィンドウで開いて、このファイルのソースコードを確認できます。


µVision4 User's Guide (Japanese): カスタムデバイスと新規デバイス

カスタムデバイスと新規デバイス

µVision4 のデバイスデータベースには多数の標準製品が含まれています。ただし、リストに現在含まれていないカスタムデバイスがある場合は、次の 2 通りの方法があります。

汎用デバイスの選択

デバイスデータベースの［汎用］（Generic）セクションに、次の汎用デバイスが表示されます。

  • 8031（すべてのバリアント）（8031 (all Variants)）
  • 8032（すべてのバリアント）（8032 (all Variants)）
  • 8051（すべてのバリアント）（8051 (all Variants)）
  • 8052（すべてのバリアント）（8052 (all Variants)）
  • ARM コア - ARM を参照（ARM cores - see ARM）- ARM7、ARM9、および Cortex-Mx ベースのマイクロコントローラをサポートします
  • C166（すべてのバリアント）（C166 (all Variants)）- 拡張命令セットなしのマイクロコントローラをサポートします
  • C167（すべてのバリアント）（C167 (all Variants)）- 拡張命令セット付きのマイクロコントローラをサポートします

これらのデバイスのいずれかを選択してから、［ターゲットのオプション］（Options for Target）→［ターゲット］（Target）ダイアログで必要なチップオプションを指定できます。例えば、オンチップメモリは外部メモリとして指定できます。

デバイスの追加

［ファイル］（File）→［デバイスデータベース］（Device Database）メニュー項目を選択します。ダイアログが開き、デバイスデータベースが表示されます。ここで既存のデバイスの追加や変更を行います。

新しいデバイスを追加するには...

  1. 使用するデバイスと似たマイクロコントローラを選択します。デバイスをダブルクリックして設定を有効にすると、設定がダイアログのフィールドに表示されます。
  2. チップのベンダ名を変更します。
  3. 該当するマイクロコントローラファミリを選択します。
  4. ［デバイス］（Device）テキストボックスに部品番号を入力します。
  5. 使用するデバイスに合わせて説明を変更します。
  6. ツール設定文字列のオプションを変更します。ツール設定文字列については、「デバイスデータベースのパラメータ」を参照して下さい。
  7. ［データベース］（Data base）ウィンドウをシングルクリックします（フォーカスを切り替えます）。これで［追加］（Add）ボタンが有効になります。
  8. ［追加］（Add）をクリックして新しいデバイスを追加します。

デバイスを削除するには...

  1. ［データベース］（Data base）ツリーリストボックスで、削除するデバイスの名前を左クリックしてハイライトします。
  2. Delete キーを押して、デバイスデータベースからデバイスを削除します。

  3. 注

    • Delete キーを押したときに、警告は表示されません。デバイスは直ちに削除されます。


µVision4 User's Guide (Japanese): ファイルグループの作成

ファイルグループの作成

［コンポーネント、環境、ブック］（Components, Environment, Books）のボタン ［プロジェクト］（Project）→［管理］（Manage）→［コンポーネント、環境、ブック］（Components, Environment, Books）を選択すると、グループを処理するためのダイアログが開きます。

ファイルを分類するための論理ファイルグループを作成することをお勧めします。例えば、コンフィギュレーションファイルにグループのスタートアップコードを作成します。

新しいファイルグループを作成するには、［新規（挿入）］（New (Insert)）ボタンを使用します。［ファイルの追加］（Add Files）ボタンを使用して、プロジェクトに既存のソースファイルを追加することもできます。

［コンポーネント、環境、ブック］（Components, Environment, Books）ダイアログ

［ファイル］（Files）フィールドに、選択したグループに属するすべての項目が表示されます。オブジェクトを並べ替えるには、［プロジェクトターゲット］（Project Targets）、［グループ］（Groups）、または［ファイル］（Files ）内でオブジェクトをドラッグアンドドロップします。または、コントロールを使用してオブジェクトを作成、削除、または並べ替えることもできます。

ファイルを編集するには、［プロジェクト］（Project）ウィンドウでファイル名をダブルクリックします。

注

  • ［プロジェクト］（Project）ウィンドウのコンテキストメニューから、オブジェクトのドラッグアンドドロップ、作成、削除などを実行できます。
  • ［プロジェクト］（Project）ウィンドウからオブジェクトを削除するには、オブジェクトを選択して Delete キーを押します。


µVision4 User's Guide (Japanese): ソースファイルの新規作成

ソースファイルの新規作成

［新規ファイル］（New File）ボタン メニューオプション［ファイル］（File）→［新規］（New）で、新しいソースファイルを作成できます。この操作によって空のエディタウィンドウが開き、ソースコードを入力できるようになります。µVision4 のダイアログ［ファイル］（File）→［名前を付けて保存］（Save As...）で、拡張子 *.C を付けたファイル名でファイルを保存すると、C 構文の色分け表示が有効になります。サンプルファイルを「MAIN.C」という名前で保存して下さい。

/*----------------------------------------------------------------------------
 *  Name:    Blinky.c
 *  Purpose: LED Flasher for STM32
 *---------------------------------------------------------------------------*/
#include <stm32f10x_lib.h>                 // STM32F10x Library Definitions

/*----------------------------------------------------------------------------
   Wait function - delay flashing
*---------------------------------------------------------------------------*/
void wait (void) {
  unsigned int countDown = 300000;         // arbitrary int to count down

  while(countDown--);                      // count down
}

/*----------------------------------------------------------------------------
   MAIN function
 *---------------------------------------------------------------------------*/
int main (void) {
  unsigned int leds = 0x01;                // declare and init LEDs

  while (1) {                              // Loop forever
    if (leds > 0x8000) (leds = 0x01);      // check for max value
    GPIOB->ODR = leds;                     // defined in library
    leds <<= 0x1;                          // shift
    wait();                                // delay flashing
  }
}


µVision4 User's Guide (Japanese): HEX ファイルの作成

HEX ファイルの作成

HEX ファイルの作成

アプリケーションの生成が完了したら、デバッグを開始できます。アプリケーションをテストした後、Intel HEX ファイルを作成してソフトウェアを EPROM プログラマまたはシミュレータにダウンロードする必要があります。µVision4 で［ターゲットのオプション］（Options for Target）→［出力］（Output）の［HEX ファイルの作成］（Create HEX file）を有効にすると、ビルドプロセスごとに HEX ファイルが自動作成されます。

「ビルドプロセス後の外部ツールの起動」で説明したように、オプション［ユーザ］（User ）→［ユーザプログラム 1 の実行］（Run User Program #1）でプログラムを指定すると、作成プロセスの後で PROM プログラミングユーティリティを起動できます。


µVision4 User's Guide (Japanese): ライブラリファイルの作成

ライブラリファイルの作成

ダイアログ［ターゲットのオプション］（Options for Target）→［出力］（Output）で［ライブラリの作成］（Create Library）を選択します。リンカ/ロケータではなく、ライブラリマネージャが呼び出されるようになります。ライブラリ内のコードはリンクと検索の対象にならないので、［リンカ］（Linker）オプションダイアログ内の項目は無視されます。［ターゲット］（Target）ページの CPU とメモリの設定も無関係です。

ライブラリファイルの作成が完了したら、ソースファイルをプロジェクトに追加するときと同様に、このライブラリファイルを別のプロジェクトに追加できます。ファイルタイプはライブラリファイルとして自動検出されます。通常、ライブラリの操作に必要な手順はこれだけです。まれに、常に含めるライブラリファイルを選択しなければならない場合もあります。

注

  • 別のディレクティブのライブラリを使用する場合は、µVision4 Device Database™ の［汎用］（Generic）に表示される CPU を選択する必要があります（例えば、［汎用］（Generic）→［ARM7］）。
  • C166 の場合：オプションダイアログで［ターゲット］（Target）→［データしきい値］（Data Threshold）の値を入力する必要があるかどうかを確認します。
  • C166 の場合：ライブラリを次のいずれかの構成のアプリケーション用に設計する場合は、ディレクティブ NOFIXDPP を［オプション］（Options）→［C166］→［その他］（Misc）で入力する必要があります。
    • ［ターゲット］（Target）→［Near メモリ］（Near Memory）に 16KB ROM または 16KB ROM を超える容量が設定されている場合は、L166 DPPUSE ディレクティブが適用されます。このディレクティブでは、C166 コンパイラが DPP レジスタのデフォルト推測を行わないことが必要です。
    • ユーザスタックがメモリクラス SDATA または IDATA に設定されている場合は、NOFIXDPP の代わりに C166 ディレクティブ USERSTACKDPP3 を使用することもできますが、DPP レジスタが推測されないため、NOFIXDPP の方が汎用的です。


µVision4 User's Guide (Japanese): マルチプロジェクトファイルの作成

マルチプロジェクトファイルの作成

マルチプロジェクト機能を使用すると、プロジェクトのグループをマルチプロジェクトファイルとして定義し、それらのプロジェクトを 1 つの［プロジェクト］（Project）ウィンドウで操作できます。

  • ［プロジェクト］（Project）→［新しいマルチプロジェクトワークスペース…］（New Multi-Project Workspace…）を選択して、新しいマルチプロジェクトファイルを「ファイル名.uvmpw」という拡張子で作成します。

  • 標準的な Windows ダイアログで、新しいプロジェクトファイル名を入力します。

  • 既存のマルチプロジェクトファイルを開くには、［プロジェクト］（Project）→［プロジェクトを開く...］（Open Project...）を選択します。


µVision4 User's Guide (Japanese): プロジェクトファイルの作成とデバイスの選択

プロジェクトファイルの作成とデバイスの選択

プロジェクトファイルフォルダの作成とプロジェクト名の指定

新しいプロジェクトファイルを作成するには、［プロジェクト］（Project）→［新規 Vision プロジェクト…］（New µVision Project…）メニューを選択します。

［プロジェクトの新規作成］（Create New Project）

［プロジェクトの新規作成］（Create New Project）ダイアログで、新しいプロジェクトのファイル名を入力するよう求められます。新しいプロジェクトを保存するフォルダに移動します。プロジェクトごとに別のフォルダを使用することをお勧めします。このダイアログの［フォルダの新規作成］（Create New Folder）アイコンを使用して、新しい空のフォルダを作成します。

作成したフォルダを選択し、新しいプロジェクトのファイル名を「Project1」のように入力します。デフォルトのターゲットとファイルグループ名が含まれた新しいプロジェクトファイルが「PROJECT1.UVPROJ」という名前で作成されます。この名前は［プロジェクト］（Project）ウィンドウに表示されます。

デバイスデータベースからのターゲットマイクロコントローラの選択

新しいプロジェクトを作成すると、プロジェクトのデバイスを選択する画面が表示されます。［デバイスの選択］（Select Device）ダイアログボックスに µVision4 デバイスデータベースが表示されます。使用するマイクロコントローラを選択します。例えば、ここの例では STM32F103RB CPU が使用されています。この選択によって、STM32F103RB デバイスに必要なツールオプションが設定され、ツール設定が簡略化されます。

注

  • デバイスによっては、追加のパラメータを手動で入力する必要があります。［説明］（Description）の情報をよく読んで下さい。デバイスの設定に必要な追加手順が示されている場合があります。

スタートアップコードのコピーと追加

組み込みプログラムでは、ハードウェア設計の構成と一致する一種のマイクロコントローラ初期化コードが必要になります。このスタートアップコードは、使用しているツールチェーンによっても異なります。ターゲットハードウェアと一致するようにそのファイルを変更する必要があるので、ファイルをプロジェクトフォルダにコピーして下さい。

ほとんどのデバイスの場合、チップに固有のスタートアップコードをプロジェクトにコピーするように指示が表示されます。これはすべてのプロジェクトで必要です（ライブラリプロジェクトとアドオンプロジェクトは例外です）。スタートアップコードによって、マイクロコントローラデバイスの設定とコンパイラ実行時システムの初期化が実行されます。

したがって、この指示には［はい］（YES）と応答して下さい。

注

  • 通常はスタートアップコードを設定する必要がありますが、最初はデフォルト設定を使用することをお勧めします。


µVision4 User's Guide (Japanese): プロジェクトの作成

プロジェクトの作成

このチュートリアルでは、単純な µVision4 プロジェクトを作成する方法を順を追って説明します。

µVision4 には、組み込みアプリケーションの設計を支援するプロジェクトマネージャが統合されており、新しいプロジェクトを少ない手順で簡単に作成できます。

  • 「プロジェクトファイルの作成とデバイスの選択」では、プロジェクトファイルを作成する手順と、デバイスデータベースからマイクロコントローラを選択する方法を説明します。
  • 「ソースファイルの新規作成」では、新しいソースファイルを作成する方法を説明します。
  • 「プロジェクトへのソースファイルの追加」では、既存のファイルをプロジェクトに追加する最適な方法を説明します。
  • 「ファイルグループの作成」では、ファイルをグループに分類する理由と、その方法を説明します。
  • 「ツールオプションの設定」では、ターゲットオプションページと、そのパラメータについて説明します。
  • 「スタートアップコードの設定」では、アセンブリまたは C のスタートアップファイルで使用できるコンフィギュレーションウィザードオプションについて説明します。
  • 「プロジェクトのビルド」では、ビルドコマンドと、エラーや警告の追跡方法について説明します。
  • 「HEX ファイルの作成」では、HEX ファイルの作成に必要な設定オプションについて説明します。


µVision4 User's Guide (Japanese): ファイル拡張子

ファイル拡張子

［プロジェクト］（Project）→［管理］（Manage）→［コンポーネント、環境、ブック］（Components, Environment, Books）ダイアログでは、プロジェクトに必要な各種ファイルタイプのファイル拡張子を設定できます。

セミコロンで区切ると、複数の拡張子を入力できます。

ファイル拡張子はプロジェクトに固有です。

［コンポーネント、環境、ブック］（Components, Environment, Books）ダイアログ→［フォルダ/拡張子］（Folders/Extensions）タブ


µVision4 User's Guide (Japanese): ファイルとグループに固有のオプション

ファイルとグループに固有のオプション

µVision4 では、ファイルとグループに固有のオプションを設定できます。［プロジェクト］（Project）ウィンドウを開き、オブジェクトのコンテキストメニューから［...のオプション］（Options for ...）を選択します。

情報を確認するか、選択した項目の特別なオプションを設定します。

ダイアログページには 3 つの状態を表すコントロールがあります。選択がグレーの場合や <default> と表示されている場合は、親グループまたはターゲットレベルの設定がアクティブです。

このページで使用できるオプションは、選択したデバイスによって変わります。

フィールドの詳細については、「プロパティ」を参照して下さい。

以下の設定例では、トランスレータの警告があるとビルドプロセスが停止し、このファイルが変更の有無を問わずビルドプロセスのたびに変換されるように main.c を指定しました。

トランスレータの警告を示す［…ファイルのオプション］（Options for File…）ダイアログ


µVision4 User's Guide (Japanese): ファイルやグループの属性の表示

ファイルやグループの属性の表示

［プロジェクト］（Project）ウィンドウでは、さまざまなアイコンでファイルやファイルグループの属性を示します。

変換されたファイルのアイコン | 変換されてプロジェクトにリンクされているファイル。
除外されたファイルのアイコン | リンケージから除外されているファイル。これは通常、ドキュメントとテキストファイルを対象としています。ただし、［プロパティ］（Properties）ダイアログで［ターゲットのビルドに含める］（Include in Target Build）チェックボックスをオフにすると、プロジェクトの他のファイルも除外できます。
読み出し専用ファイルのアイコン | 読み出し専用ファイル。ソフトウェアのバージョン管理システムにチェックインされるファイルに、このアイコンがよく表示されます。
ファイルオプションのアイコン | 特定のオプションが設定されているファイルには、赤い点が縦に 3 個付きます。
グループオプションのアイコン | 特定のオプションが設定されているグループには、赤い点が縦に 3 個付きます。

注

  • プロジェクトのさまざまなターゲットのツール設定を異なるアイコンで示します。アイコンは常に、現在選択されているターゲットの属性を反映しています。例えば、1 つのターゲットのファイルまたはファイルグループに特定のオプションを設定した場合、このターゲットが現在選択されている場合にのみアイコンの点が表示されます。


µVision4 User's Guide (Japanese): ライブラリモジュールの指定

ライブラリモジュールの指定

ライブラリモジュールの指定

［プロパティ］（Properties）ダイアログでは、プロジェクトに常に含めるライブラリモジュールを指定できます。

この機能は、例えば、汎用ルーチン（後で再ロードされるプログラムパーツから使用されるもの）が含まれているアプリケーションのブート部分を生成するときなどに便利です。

目的のオブジェクトモジュールが含まれているライブラリをプロジェクトに追加します。

その後、［プロジェクト］（Project）ウィンドウからコンテキストメニューを呼び出し、［ファイル 'ライブラリ名.LIB' のオプション］（Options for File library name.LIB）を選択します。

［モジュールの選択］（Select Modules）チェックボックスをオンにし、ターゲットアプリケーションに含めるモジュールを有効にします。


µVision4 User's Guide (Japanese): マルチプロジェクトファイルの管理

マルチプロジェクトファイルの管理

既存の独立したプロジェクトをマルチプロジェクトに追加するには

マルチプロジェクトの管理 ツールバーの［マルチプロジェクトワークスペースの管理…］（Manage Multi-Project Workspace…）か、［プロジェクト］（Project）→［Manage］（管理）→［マルチプロジェクトワークスペース...］（Multi-Project Workspace...）メニューを使用します。

または、［プロジェクト］（Project）ウィンドウのコンテキストメニューを使用して

マルチプロジェクトのコンポーネントを管理します。

ダイアログ［マルチプロジェクトワークスペースのコンポーネントの管理］（Manage Multi-Project Workspace Components）

  • コントロールを使用して、プロジェクトのコンポーネントを追加、削除、または並べ替えることができます。
  • 変更を適用するには、［OK］をクリックします。
  • 変更を破棄するには、［キャンセル］（Cancel）をクリックします。
  • プロジェクトをハイライトし、［アクティブなプロジェクトとして設定］（Set as Active Project）をクリックすると、そのプロジェクトの作業を開始できます。
  • または、［プロジェクト］（Project）ウィンドウのコンテキストメニューを使用すると、そのプロジェクトの作業を開始できます。

注

  • 常にアクティブなプロジェクトで作業をします。アクティブなプロジェクトは、［プロジェクト］（Project）ウィンドウで黒でマークされています。
  • プロジェクトを削除しても、そのプロジェクトの物理的なファイルやフォルダは削除されません。
  • フォルダが異なれば、プロジェクトに同じ名前を付けることができます。


µVision4 User's Guide (Japanese): マルチプロジェクトの操作

マルチプロジェクトの操作

システムアプリケーションは複数のプロジェクトで構成されている場合が多くあります。複数のプロジェクトを操作するには、µVision4 のマルチプロジェクト機能を使用します。この機能によって、組み込みシステムアプリケーション設計の概要、一貫性、透過性が向上します。

  • 「マルチプロジェクトファイルの作成」では、マルチプロジェクトワークスペースの作成手順を説明します。
  • 「マルチプロジェクトファイルの管理」では、マルチプロジェクトワークスペースのプロジェクトをアクティブ化、変更、削除するオプションについて説明します。
  • 「マルチプロジェクトのバッチビルド」では、プロジェクトをビルド、再ビルド、クリーンするための機能強化と、エラーや警告の追跡可能性について説明します。

  • シングルプロジェクトで説明した機能はすべて、マルチプロジェクトにも当てはまります。


µVision4 User's Guide (Japanese): 設定ダイアログの概要

設定ダイアログの概要

ターゲットのオプションボタン ［プロジェクト］（Project）→［オプション］（Options）ダイアログのページでは、ツールオプションのすべてを設定できます。オプションはすべて µVision4 プロジェクトファイルに保存されます。

「ファイルとグループに固有のオプション」で説明したように、［プロジェクト］（Project）ウィンドウのコンテキストメニューを使用すると、ファイルグループにも 1 つのファイルにもオプションを設定できます。選択した項目に関連するページのほか、［プロパティ］（Properties）ページも使用できます。

次の表に、さまざまなダイアログを示します。

ダイアログページ | 説明
［デバイス］（Device） | µVision4 Device Database™ からデバイスを選択します。
［ターゲット］（Target） | アプリケーションのハードウェアを指定します。
［出力］（Output） | ツールチェーンの出力ファイルを定義し、ビルドプロセス後にユーザプログラムを開始できます。
［リスト］（Listing） | ツールチェーンで生成されたリストファイルを指定します。
［ユーザ］（User） | コンパイル/ビルド前かビルド後に実行するユーザプログラムを指定します。
［C/C++］ | コード最適化や変数割り当てのような C/C++ コンパイラ特有のツールオプションを設定します。
［Asm］ | マクロ処理のようなアセンブラ特有のツールオプションを設定します。
［リンカ］（Linker） | リンカ関連のオプションを設定します。通常、リンカ設定では、ターゲットシステムの物理メモリのレイアウトを設定します。リンカがメモリのクラスとセクションの位置を定義するように設定します。
［デバッグ］（Debug） | µVision4 デバッガの設定。
［ユーティリティ］（Utilities） | フラッシュプログラミングのユーティリティを設定します。

ダイアログの項目についてコンテキストヘルプが用意されています。［ヘルプ］（Help）ボタンをクリックすると、詳しい情報が表示されます。

注

  • C/C++ コンパイラ、Asm、およびリンカのダイアログページのラベルは、実際に選択されているツールチェーンによって異なります。したがって、これらの名前が異なる可能性もあります。


µVision4 User's Guide (Japanese): プロジェクトターゲットとファイルグループ

プロジェクトターゲットとファイルグループ

µVision4 では、異なるプロジェクトターゲットを定義することにより、1 つのプロジェクトから複数のプログラムを作成できます。例えば、テスト用に 1 つのターゲット、アプリケーションのリリースバージョン用に別のターゲットが必要になることがあります。同じプロジェクトファイル内で、それぞれのターゲットについて個別のツール設定が可能です。

ファイルグループを使用すると、プロジェクトで関連するファイルをグループにまとめることができます。これは、ファイルを機能ブロックにグループ化したり、ソフトウェアチームでエンジニアを識別したりする際に便利です。ファイルグループは既に、CPU 関連のファイルを他のソースファイルから分離する例で使用しました。この方法により、数百のファイルがある複雑なプロジェクトを µVision4 で容易に管理できます。

ダイアログ［プロジェクト］（Project）→［管理］（Manage）→［コンポーネント、環境、ブック］（Components, Environment, Books）→［プロジェクトコンポーネント］（Project Components）を選択すると、プロジェクトターゲットとファイルグループを作成できます。既にこのダイアログを使用して、システムコンフィギュレーションファイルをファイルグループに追加しました。以下にプロジェクト構造の例を示します。

［プロジェクト］（Project）ウィンドウに、グループファイルと関連ファイルがすべて表示されます。ファイルは、このウィンドウに表示される順にビルドされてリンクされます。ファイルの位置はドラッグアンドドロップで移動できます。ターゲットまたはグループの名前を選択してクリックすると、名前を変更できます。マウスを右クリックすると、ローカルメニューが開き、各項目について以下の操作が可能です。

  • ツールオプションの設定
  • 項目の削除
  • グループへのファイルの追加
  • ファイルを開く

［ビルド］（Build）ツールバーで、ビルドする現在のプロジェクトターゲットを即座に切り替えることができます。


µVision4 User's Guide (Japanese): プロジェクトへのソースファイルの追加

プロジェクトへのソースファイルの追加

ソースファイルを作成したら、そのファイルをプロジェクトに追加できます。µVision4 には、ソースファイルをプロジェクトに追加する方法が複数あります。例えば、［プロジェクト］（Project）ウィンドウでファイルグループを選択して、コンテキストメニューを開きます。

オプション［ファイルをグループに追加］（Add Files to Group）によって、標準のファイルダイアログが開きます。先ほど作成したファイル MAIN.C を選択して［追加］（Add）をクリックします。


µVision4 User's Guide (Japanese): リストファイルとオブジェクトファイルのフォルダ

リストファイルとオブジェクトファイルのフォルダ

ツールの出力ファイルを異なるフォルダに転送できます。

  • ［ターゲットのオプション］（Options for Target）→［出力］（Output）ダイアログでは、オブジェクトのフォルダを選択できます。各プロジェクトターゲットのオブジェクトファイルに別々のフォルダを使用しても、µVision では前のビルドプロセスの有効なオブジェクトファイルが維持されます。プロジェクトターゲットを変更した場合でも、［ターゲットのビルド］（Build Target）コマンドは変更されたファイルを再変換するだけです。

  • ［ターゲットのオプション］（Options for Target）→［リスト］（Listing）ダイアログには［リストのためのフォルダを選択］（Select Folder for Listings）ボタンがあり、すべてのリストファイルに同じ機能を提供しています。


µVision4 User's Guide (Japanese): ビルドプロセス後の外部ツールの起動

ビルドプロセス後の外部ツールの起動

［ターゲットのオプション］（Options for Target）→［ユーザ］（User）ダイアログを使用すると、ビルドプロセス中にユーザプログラムを開始できます。キーシーケンスを使用すると、µVision4 プロジェクトマネージャから、これらのユーザプログラムに引数を渡すことができます。以下の操作が可能です。

  • C または C++ ファイルのコンパイル前のプログラムの実行（MISRA チェッカー）
  • ビルド/再ビルドプロセス前のプログラムの実行（一部のデータ管理ユーティリティ）
  • ビルド/再ビルドプロセス後のプログラムの実行（データコンバータやデバッガ）

［ターゲットのオプション］（Options for Target）→［ユーザ］（User）ダイアログ

上の例では、以下のようになります。

  • バッチファイル Preprocess.bat はビルドプロセスの前に開始します。
  • Programmer.exe はビルドプロセス後に Hex 出力ファイルとフルパス指定（C:\MYPROJECT\PROJECT1.HEX）を使用して呼び出されます。
  • Emulator.exe が受け取るのは、リンカ出力ファイル PROJECT1 の名前と、パラメータとしてプロジェクト C:\MYPROJECT へのパス指定 -p だけです。

注

  • スペース、~、# などの特殊文字を含むフォルダ名を使用する場合は、キーシーケンスを引用符（" "）で囲んで下さい。


µVision4 User's Guide (Japanese): ヒントとテクニック

ヒントとテクニック

以下のセクションでは、µVision4 プロジェクトマネージャで使用できる高度なテクニックについて説明します。以下の機能が必要になることはまれですが、このセクションの説明を読めば、µVision4 の機能をよりよく理解できます。

  • 「ビルドプロセス後の外部ツールの起動」では、ビルドコマンドの成功後にプログラムを実行する方法を説明します。これは、一部のエミュレータやプログラマに必要なシンボル情報のポストプロセスで便利です。
  • 「リストファイルとオブジェクトファイルのフォルダ」では、オブジェクトファイルやリストファイルを特定のフォルダに転送する方法を説明します。
  • 「カスタムデバイスと新規デバイス」では、現在デバイスデータベースのリストに含まれていない新しいデバイスを定義する方法を説明します。
  • 「ライブラリファイルの作成」では、ライブラリファイルの作成に必要なツール設定について説明します。
  • 「ファイルとグループに固有のオプション」では、オブジェクトを個別に設定する方法を説明します。
  • 「コンパイラとアセンブラの異なる設定」では、ファイルグループまたは 1 つのファイルのツールオプションを変更する方法を説明します。
  • 「ファイル拡張子」では、プロジェクトのさまざまなファイルタイプのファイル拡張子を設定する方法を説明します。
  • 「バージョンとシリアル番号の情報」では、プロジェクトに固有のツールバージョン情報を表示する方法を説明します。
  • 「ライブラリモジュールの指定」では、常にプロジェクトに含めるライブラリモジュールを指定する方法を説明します。
  • 「カスタムトランスレータの使用」では、カスタムトランスレータを使用してファイルを前処理する方法を説明します。


µVision4 User's Guide (Japanese): ツールオプションの設定

ツールオプションの設定

ターゲットのオプションボタン µVision4 では、ターゲットハードウェアのオプションを設定できます。ダイアログ［ターゲットのオプション］（Options for Target）は、ツールバーのアイコンまたは［プロジェクト］（Project）→［ターゲットのオプション］（Options for Target）メニュー項目から開きます。［ターゲット］（Target）タブで、ターゲットハードウェアの関連するパラメータすべてと、選択したデバイスのオンチップコンポーネントを指定できます。

次のダイアログに設定例を示します。

このダイアログで使用できるオプションは、選択したデバイスによって異なります。次の表で、［ターゲット］（Target）ダイアログの一部のオプションについて説明します。

ダイアログ項目 | 説明
［Xtal］ | デバイスの外部クロック周波数を指定します。複数のマイクロコントローラがオンチップ PLL を使用して CPU クロックを生成します。この場合、値は XTAL 周波数と同じではありません。ハードウェア設計をよく確認し、正しい値を決定して下さい。
［オペレーティングシステム］（Operating System） | プロジェクトのリアルタイムオペレーティングシステムを選択できます。
［クロスモジュールの最適化を使用］（Use Cross-Module Optimization） | このチェックボックスをオンにすると、参照されていない関数が削除されます。
［MicroLIB を使用］（Use MicroLIB） | MicroLIB を使用できます。

注

  • 詳細については、「ターゲット」を参照して下さい。


µVision4 User's Guide (Japanese): カスタムトランスレータの使用

カスタムトランスレータの使用

カスタムトランスレータの使用

プロジェクトに不明なファイル拡張子を追加すると、ファイルタイプの指定を求められます。

このファイルを処理するには、［カスタムファイル］（Custom File）を選択してカスタムトランスレータを使用します。

カスタムトランスレータは、［ファイル...のオプション］（Options for File...）→［プロパティ］（Properties）ダイアログの［カスタム引数］（Custom Arguments）フィールドで、そのコマンドラインと一緒に指定します。

通常、カスタムトランスレータはカスタムファイルからソースファイルを生成します。このソースファイルをプロジェクトに追加し、アセンブラまたはコンパイラを使用して、アプリケーションにリンクできるオブジェクトファイルを生成する必要があります。

この例では、パラメータ –X を付けて、custom.pre ファイルをプログラム C:\UTILS\PreTrans.exe で変換します。

ファイルがビルドごとに変換されるように、［常にビルド］（Always Build）オプションも選択されています。


µVision4 User's Guide (Japanese): バージョンとシリアル番号の情報

バージョンとシリアル番号の情報

［ヘルプ］（Help）→［バージョン情報］（About）を開くと、ツールチェーンの詳細情報が表示されます。弊社に問題を報告するときには、常にこの情報を用意して下さい。

注

  • ボタン［情報のコピー］（Copy Info）は、バージョンとライセンスの情報をクリップボードにコピーします。


µVision4 User's Guide (Japanese): ターゲットビルドのサンプル

ターゲットビルドのサンプル

以下のコマンドラインを使用すると、ターゲットを再ビルドできます。

C:\Keil\UV4\UV4 -r Blinky.uvproj -o Build_Output.txt

各パラメータの説明

-r Blinky.uvproj µVision プロジェクトファイルの名前を指定します。
-o Build_Output.txt

ビルドログを含むファイルを指定します。以下に例を示します。

Build target 'Simulator'
assembling Startup.s...
compiling Blinky.c...
compiling Serial.c...
linking...
Program Size:data=1199 const=65 code=5836
creating hex file from".\Flash\Blinky"...
".\Flash\Blinky" - 0 Error(s), 0 Warning(s).


µVision4 User's Guide (Japanese): フラッシュプログラミングのサンプル

フラッシュプログラミングのサンプル

以下のコマンドラインを使用すると、フラッシュメモリをプログラミングできます。

C:\Keil\UV4\UV4 -f Programming.UVPROJ -o Prg_Output.txt

各パラメータの説明

-f Programming.UVPROJ フラッシュにプログラミングするプロジェクトを指定します。
-o Prg_Output.txt

フラッシュプログラミングのログを含むファイルを指定します。以下に例を示します。

Load"Flash\\Blinky.hex"
Erase Done.
Programming Done.
Verify OK.
Application running ...

プロジェクトの開発中に使用したプロジェクトファイルを使用できます。または、HEX ファイルのフラッシュダウンロード専用の新規プロジェクトを作成することもできます。


µVision4 User's Guide (Japanese): ASM

ASM

構文 | 説明
ASM | インラインアセンブリ命令が保存されているアドレスを表示します。
ASM start address | インラインアセンブリアドレスを address に設定します。
ASM instruction | 指定した instruction をアセンブルし、生成された OP コードを現在のインラインアセンブリアドレスのメモリに保存します。このアドレスは、命令内のバイト数だけ増加します。

ASM コマンドを使用すると、現在のアセンブリアドレスが表示または設定され、アセンブリ命令を入力することができます。命令を入力すると、生成された OP コードがコードメモリに保存されます。インラインアセンブラを使用して、ミスを修正したり、デバッグ中のターゲットプログラムに一時的な変更を加えたりできます。

インラインアセンブラは、デバイスデータベースから選択されたデバイスに基づいてアセンブリ命令のニーモニックを受け入れます。

例
>ASM C:0x0000          /* set assemble address to C:0x0000 (8051 & 251) */
>ASM mov a,#12
>ASM mov r0,#0x20
>ASM movx @r0,A
>ASM inc r0
>ASM movx @r0,A
>ASM jmp C:0x8000

>ASM C:0020H          /* set assemble address to C:0x0020 (8051 & 251) */
>ASM CLR A

アセンブリ命令は、［逆アセンブリ］（Disassembly）ウィンドウのコンテキストメニューにある［インラインアセンブリ...］（Inline Assembly...）ダイアログボックスに入力できます。このコンテキストメニューは、［逆アセンブリ］（Disassembly）ウィンドウでマウスを右クリックすると開きます。


µVision4 User's Guide (Japanese): ASSIGN

ASSIGN

構文 | 説明
ASSIGN | シリアルチャネルの I/O 割り当てを表示します。
ASSIGN channel < inreg > outreg | シリアルチャネルの I/O 割り当てを変更します。

ASSIGN コマンドを使用すると、指定したシリアルチャネルの入出力ソースを表示および変更できます。

以下の表に、サポートされているチャネル、そのデフォルト入力レジスタ（inreg）、および出力レジスタ（outreg）の設定を示します。

チャネル | デフォルト Inreg | デフォルト Outreg | 説明
COM1 | なし | なし | PC の COM ポート 1。
COM2 | なし | なし | PC の COM ポート 2。
COM3 | なし | なし | PC の COM ポート 3。
COM4 | なし | なし | PC の COM ポート 4。
WIN | SIN または S1IN | SOUT または S1OUT | シリアルウィンドウ。

現在 Windows 用の µVision4 では、WIN、COM1、COM2、COM3、および COM4 の各チャネルがサポートされています。WIN チャネルはシリアルウィンドウです。COMx チャネルは、シミュレートされた CPU およびターゲットプログラムとの通信に使用できる PC のシリアル通信ポートを表します。MODE コマンドを使用して PC のシリアルポートのパラメータを設定する必要があります。

入力レジスタと出力レジスタの名前は、デバイスデータベースから選択した CPU により定義されます。使用可能な VTREGは DIR VTREG コマンドでリストすることができます。

例
>ASSIGN                     /* Display serial assignment                */
  WIN: <S0IN >S0OUT         /* S0IN provides serial input &             */
                            /* S0OUT provides serial output             */
>
>ASSIGN WIN <S1IN >S1OUT    /* Assign S1IN & S1OUT to the Serial window */
>ASSIGN                     /* And display the assignment               */
  WIN: <S1IN >S1OUT

>ASSIGN COM1 < SIN > SOUT   /* Assign SIN & SOUT to COM1                */

注

  • µVision4 デバッガのハードウェアドライバとの通信時は、ASSIGN コマンドをターゲットモードで使用することができません。

  • 通信速度とその他のシリアルポートパラメータは MODE コマンドで設定します。

  • PC のシリアルポート（COM ポート）では、最大 8 データビットのみがサポートされています。したがって、一部のマイクロコントローラの UART インタフェースとは異なり、9 データビット以上を生成することはできません。


µVision4 User's Guide (Japanese): BreakAccess

BreakAccess

構文 | 説明
BreakAccess READ exp, len, cnt , "cmd" | 読み出しアクセスブレークポイントを設定します。
BreakAccess WRITE exp, len, cnt, "cmd" | 書き込みアクセスブレークポイントを設定します。
BreakAccess READWRITE exp, len, cnt, "cmd" | 読み出し/書き込みアクセスブレークポイントを設定します。

BreakAccess コマンドは BreakSet コマンドのバリアントで、アクセスブレークポイントのアドレス範囲（len）をバイト数で指定することができます。len パラメータは、アドレスブレークポイントをトリガするメモリ範囲を指定する式です。その他すべての機能は、BreakSet コマンドと同一です。


µVision4 User's Guide (Japanese): BreakDisable

BreakDisable

構文 | 説明
BreakDisable number , number... | 指定したブレークポイントを無効にします（削除はしません）。番号は、ブレークポイントが定義されるときに割り当てられます。
BreakDisable * | すべてのブレークポイントを無効にします。

BreakDisable コマンドは以前に定義されたブレークポイントを無効にします。ブレークポイントに到達すると、通常は実行が停止されるか、指定したコマンドが実行されます。ブレークポイントを無効にすると、ブレークポイントリストに定義が残されますが、ターゲットプログラムの実行中、ブレークポイントが無視されるようになります。

例
>BL                                 /* List breakpoints        */

 0: (E C: 0xFF01EF) 'main', CNT=1, enabled
 1: (E C: 0xFF006A) 'timer0', CNT=10, enabled
     exec ("MyRegs()")

>BD 0                               /* Disable breakpoint 0    */
>BD *                               /* Disable all breakpoints */
>BL                                 /* List breakpoints        */

 0: (E C: 0xFF01EF) 'main', CNT=1, disabled
 1: (E C: 0xFF006A) 'timer0', CNT=10, disabled
     exec ("MyRegs()")

ブレークポイントは、［ブレークポイント］（Breakpoints）ダイアログで無効にすることができます。このダイアログは、メインメニューの［デバッグ］（Debug）→［ブレークポイント...］（Breakpoints...）から開きます。


µVision4 User's Guide (Japanese): BreakEnable

BreakEnable

構文 | 説明
BreakEnable number , number... | 指定したブレークポイントを有効にします。番号は、ブレークポイントが定義されるときに割り当てられます。
BreakEnable * | すべてのブレークポイントを有効にします。

BreakEnable コマンドは、以前に定義され、BreakDisable コマンドにより無効にされているブレークポイントを有効にします。ブレークポイントに到達すると、通常は実行が停止されるか、指定したコマンドが実行されます。

例
>BE 0,1                        /* Enable breakpoints 0 and 1   */
>BE *                          /* Enable all breakpoints       */
>BL                            /* List current breakpoints     */

 0: (E C: 0xFF01EF) 'main', CNT=1, enabled
 1: (E C: 0xFF006A) 'timer0', CNT=10, enabled
     exec ("MyRegs()")

ブレークポイントは、［ブレークポイント］（Breakpoints）ダイアログで有効にすることができます。このダイアログは、メインメニューの［デバッグ］（Debug）→［ブレークポイント...］（Breakpoints...）から開きます。


µVision4 User's Guide (Japanese): BreakKill

BreakKill

構文 | 説明
BreakKill number , number... | 指定したブレークポイントを削除します。番号は、ブレークポイントが定義されるときに割り当てられます。
BreakKill * | すべてのブレークポイントを削除します。

BreakKill コマンドは、BreakSet コマンドで以前に定義されたブレークポイントを削除します。

例
>BK 0,1                        /* Remove breakpoints 0 and 1   */
>BK *                          /* Remove all breakpoints       */

ブレークポイントは、［ブレークポイント］（Breakpoints）ダイアログで削除することができます。このダイアログは、メインメニューの［デバッグ］（Debug）→［ブレークポイント...］（Breakpoints...）から開きます。


µVision4 User's Guide (Japanese): BreakList

BreakList

構文 | 説明
BreakList | すべてのブレークポイントをリストします。

BreakList コマンドはすべてのブレークポイントをリストします。ブレークポイントは次の形式で 1 行に 1 つずつリストされます。

number: (type) 'expression', CNT=count, enable_flag
        exec ("command")

各パラメータの説明 |
number | ブレークポイントのインデックスです。µVision4 は、ブレークポイントの作成時にこの番号を割り当てます。BreakEnable、BreakDisable、または BreakKill の各コマンドを使用してブレークポイントの有効化、無効化、または削除を行うときにこの番号を使用します。
type | ブレークポイントタイプです。これには実行ブレークポイント（e: の後にアドレスが続く）、条件ブレークポイント（c）、またはアクセスブレークポイント a（a: の後に読み出しの場合 rd 、書き込みの場合 wr 、読み出し/書き込みの場合 rw が続き、その後さらにアドレスが続く）があります。
expression | ブレークポイント定義のオリジナルテキストです。
count | ブレークポイントのパスカウンタです。count の値が 2 の場合、2 度目にブレークポイントに到達したときにプログラムの実行が停止（または指定したコマンドが実行）されます。
enable_flag | 有効なブレークポイントには enabled を示し、無効なブレークポイントには disabled を示します。
command | ブレークポイントに到達したときに実行されるコマンドです。
例
>BL                                          /* List current breakpoints */
 0: (E C: 0xFF01EF) 'main', CNT=1, enabled
 1: (E C: 0xFF006A) 'timer0', CNT=10, enabled
     exec ("MyRegs()")
 2: (C) 'sindex == 8', CNT=1, enabled
 3: (C) 'save_record[5].time.sec > 5', CNT=3, enabled
 4: (A RD 0x000037) 'READ interval.min == 3', CNT=1, enabled
 5: (A WR 0x000034) 'WRITE savefirst==5 && acc==0x12', CNT=1, enabled

現在のブレークポイント設定は、［ブレークポイント］（Breakpoints）ダイアログで確認することができます。このダイアログは、メインメニューの［デバッグ］（Debug）→［ブレークポイント...］（Breakpoints...）から開きます。


µVision4 User's Guide (Japanese): BreakSet

BreakSet

構文 | 説明
BreakSet exp , cnt , "cmd" | 実行ブレークポイントまたは条件ブレークポイントを設定します。
BreakSet READ exp , cnt , "cmd" | 読み出しアクセスブレークポイントを設定します。
BreakSet WRITE exp , cnt , "cmd" | 書き込みアクセスブレークポイントを設定します。
BreakSet READWRITE exp , cnt , "cmd" | 読み出し/書き込みアクセスブレークポイントを設定します。

BreakSet コマンドは、指定した式（exp）にブレークポイントを設定します。ブレークポイントは、true の場合にターゲットプログラムの実行を停止するか、指定されたコマンドを実行するプログラムアドレスまたは式です。

ブレークポイントの定義には、以下のパラメータを指定できます。

各パラメータの説明 |
exp | µVision4 が実行中に評価するアドレス指定または式です。
cnt | ブレークポイント条件を満たした回数を決める式で、回数がこの値に達するとターゲットプログラムを停止するか、指定したコマンドを実行します。デフォルトカウント値は 1 です。
cmd | ブレークポイントに達したときに実行する µVision4 コマンドを指定するコマンド文字列です。コマンドが指定されていない場合は、ブレークポイントに達したときに µVision4 がプログラムの実行を停止します。コマンドが指定されている場合、µVision4 はそのコマンドを実行するのみで、ターゲットプログラムを停止しません。このコマンドでは µVision4 ユーザ関数またはシグナル関数を指定することができます。_break_ 変数を 1 に設定するとプログラムの実行を停止することができます。

µVision4 は、実行ブレークポイント、条件ブレークポイント、アクセスブレークポイントの 3 タイプのブレークポイントを認識します。µVision4 では、以下の規則に従って各ブレークポイントを分類しています。

  1. メモリアクセスモード（READ、WRITE、または READWRITE）が指定されている場合、ブレークポイントはアクセスブレークポイントになります。
  2. 指定された式が単純なアドレスの場合、ブレークポイントは実行ブレークポイントになります。

  3. 指定された式をアドレスに変換できない場合、ブレークポイントは条件ブレークポイントになります。

以降では、ブレークポイントのタイプについて説明します。

実行ブレークポイント

実行ブレークポイントは、指定したコードアドレスに到達したときに、プログラムの実行を停止するか、コマンドを実行します。実行速度は実行ブレークポイントの影響を受けません。

コードアドレスは、命令の最初のバイトに指定する必要があります。命令の 2 バイト目または 3 バイト目に実行ブレークポイントを設定すると、ブレークポイントに到達しなくなります。

コードアドレスの実行ブレークポイントは、一度だけ指定できます。何度も定義することはできません。

条件ブレークポイント

条件ブレークポイントは、指定した条件式が true の場合にプログラムの実行を停止するか、コマンドを実行します。条件式は、各アセンブリ命令の後で再計算されます。条件式の複雑さに応じて、プログラムの実行速度が大幅に低下することがあります。実行速度は、条件ブレークポイントの数によっても影響を受けます。

条件ブレークポイントは、式により任意の条件を計算できるため、最も柔軟なタイプのブレークポイントです。

アクセスブレークポイント

メモリアクセスブレークポイントは、指定したアドレスが読み出されるか、書き込まれるか、アクセスされた場合、または指定したアドレスが特定の値で読み出されるか、書き込まれた場合に、プログラムの実行を停止するか、コマンドを実行します。アクセスの式は指定したアクセスイベントの発生時にそのアクセスイベントでのみ評価されるため、プログラムの実行速度がメモリアクセスブレークポイントによって大幅に影響を受けることはありません。

メモリアクセスブレークポイントに指定する式は、メモリアドレスとメモリタイプに変換する必要があります。メモリアクセスブレークポイントには、次の規則が適用されます。

  1. メモリアクセスブレークポイントに使用される式は、一意のメモリタイプとする必要があります。複数のオブジェクトを含む式は許可されていません。
  2. メモリアクセスブレークポイントの式では、少数の演算子（&、&&、<、<=、>、>=、==、および !=）のみを使用できます。

例えば、

BS WRITE time.sec                      /* Valid expression   */

上のブレークポイントは有効ですが、

BS WRITE time.sec + i0                 /* Invalid expression */

このブレークポイントは、2 つの値（timer.sec および i0）の合計がメモリタイプに変換されないため、無効です。

注

  • BreakList コマンドを使用してリストすると、メモリアクセスブレークポイントの先頭に READ、WRITE、または READWRITE が付きます。
例

次の例は、main 関数のアドレスに実行ブレークポイントを設定します。

>BS main

次の例は、timer0 関数のアドレスに実行ブレークポイントを設定します。timer0 が 10 回目に呼び出されると、ブレークポイントに達し、コマンド "MyRegs()" が実行されます。コマンドの実行後にプログラムの実行が継続されます。

>BS timer0,10,"MyRegs()"

次の例は、sindex シンボルに条件ブレークポイントを設定します。sindex が 8 と等しくなると、プログラムの実行が停止します。

>BS sindex == 8

次の例は、save_record 配列に条件ブレークポイントを設定します。save_record[5].time.sec が 3 回目に 4 以上になると、プログラムの実行が停止します。

>BS save_record[5].time.sec > 5, 3

次の例は、interval.min シンボルの READ アクセスにメモリアクセスブレークポイントを設定します。interval 構造体の min 要素または共用体が 3 の場合は、プログラムの実行が停止します。

>BS READ interval.min == 3

次の例は、savefirst シンボルの WRITE アクセスにメモリアクセスブレークポイントを設定します。savefirst の書き込み後に savefirst が 5 でアキュムレータ（acc）が 0x12 になった場合に、プログラムの実行が停止します。

>BS WRITE savefirst == 5 && acc == 0x12

ブレークポイントは、［ブレークポイント］（Breakpoints）ダイアログでも定義することができます。このダイアログは、メインメニューの［デバッグ］（Debug）→［ブレークポイント...］（Breakpoints...）から開きます。


µVision4 User's Guide (Japanese): COVERAGE

COVERAGE

構文 | 説明
COVERAGE | アプリケーション全体のカバレッジ情報を表示します。
COVERAGE \module [DETAILS] | 選択されたモジュールのカバレッジ情報を表示します。DETAILS オプションを指定すると、条件付き命令の実行に関する追加情報が表示されます。
COVERAGE \module\func [DETAILS] | module に含まれる関数 func のシンボルのカバレッジ情報を表示します。DETAILS オプションを指定すると、条件付き命令の実行に関する追加情報が表示されます。
COVERAGE ASM | アプリケーション全体のアセンブリ命令を含むカバレッジ情報を表示します。
COVERAGE CLEAR | すべてのコードカバレッジ情報をクリアします。
COVERAGE LOAD path\filename | ファイルからコードカバレッジ情報をロードします。これにより前のセッションのコードカバレッジ情報を現在のセッションのものとマージすることができるため、アプリケーションの複数のセッションをテストすることができます。
COVERAGE SAVE path\filename | ファイルにコードカバレッジ情報を保存します。

注

  • ASM、CLEAR、DETAILS、LOAD、および SAVE の各オプションは一部のドライバでのみ使用できます。

COVERAGE コマンドを使用すると、µVision4 デバッガのコードカバレッジ情報を制御または表示することができます。このコマンドを LOG コマンドと共に使用することで、コードカバレッジ情報をログファイルにコピーできます。

さらに、［コードカバレッジ］（Code Coverage）ウィンドウを使用してカバレッジ情報を確認することができます。このウィンドウは、メインメニューの［ビュー］（View）→［コードカバレッジウィンドウ］（Code Coverage Window）から開きます。

例

以下の例は、C51 コンパイラパッケージの MEASURE サンプルプログラムにより作成されたものです。

\\Measure\MEASURE\{CvtB} - 32% of 52 instructions executed
\\Measure\MEASURE\{CvtB} - 0% of 127 instructions executed
\\Measure\MEASURE\{CvtB} - 100% of 1 instructions executed
\\Measure\MEASURE\{CvtB} - 100% of 6 instructions executed
\\Measure\MEASURE\{CvtB} - 0% of 595 instructions executed
\\Measure\MEASURE\{CvtB} - 0% of 5 instructions executed
\\Measure\MEASURE\{CvtB} - 100% of 1 instructions executed
\\Measure\MEASURE\SAVE_CURRENT_MEASUREMENTS - 0% of 46 instructions executed
\\Measure\MEASURE\TIMER0 - 72% of 94 instructions executed
\\Measure\MEASURE\READ_INDEX - 0% of 64 instructions executed
\\Measure\MEASURE\CLEAR_RECORDS - 100% of 24 instructions executed
\\Measure\MEASURE\MAIN - 31% of 215 instructions executed
\\Measure\MCOMMAND\{CvtB} - 0% of 74 instructions executed
\\Measure\MCOMMAND\MEASURE_DISPLAY - 100% of 44 instructions executed
\\Measure\MCOMMAND\SET_TIME - 0% of 58 instructions executed
\\Measure\MCOMMAND\SET_INTERVAL - 0% of 101 instructions executed
\\Measure\GETLINE\GETLINE - 78% of 51 instructions executed
\\Measure\TOUPPER\{CvtB} - 100% of 18 instructions executed
\\Measure\TOUPPER\{CvtB} - 51% of 91 instructions executed
\\Measure\TOUPPER\{CvtB} - 0% of 0 instructions executed


µVision4 User's Guide (Japanese): DEFINE

DEFINE

構文 | 説明
DEFINE typeidentifier | 指定された type で identifier という名前のシンボルを定義します。
DEFINE BUTTON "label", "cmd" | ［ツールボックス］（Toolbox）のコマンドボタンを定義します。ツールボックスは、メインメニューの［ビュー］（View）→［ツールボックス］（Toolbox）から開きます。

DEFINE コマンドを使用すると、タイプを指定して値を保持するために使用できるシンボルを作成できます。この方法で作成したシンボルは、µVision4 関数の戻り値を保持したり、µVision4 関数に入力を指定するために使用できます。

DEFINE コマンドで作成したシンボルは、シミュレートされた CPU またはターゲット CPU のメモリ空間に配置されません。これらのシンボルは、指定されたタイプの値のシンボリック名に過ぎません。DEFINE により作成されたシンボルは、他のパブリックシンボルと同様に使用することができます。

以下の表に、使用可能なシンボルの type を示します。

タイプ | 説明
CHAR | 符号付き文字（signed char）。
DOUBLE | 倍精度浮動小数点数（double）。
FLOAT | 単精度浮動小数点数（float）。
INT | 符号付き整数（signed int）。
LONG | 符号付き長整数（signed long）。

identifier はシンボル名で、変数またはシンボルの規則に従う必要があります。

例
>DEFINE CHAR TmpByte    /* define TmpByte to be a char value   */
>DEFINE FLOAT TmpFloat  /* define TmpFloat to be a float value */

>TmpFloat = 3.14159     /* give TmpFloat a value               */
>TmpFloat               /* display the value of TmpFloat       */
3.14159

DEFINE BUTTON

［ツールボックス］（Toolbox）ウィンドウにボタンを追加するには、このコマンドを使用します。

label はボタンに割り当てる名前です。

cmd は、ボタンに割り当てるコマンドまたは µVision4 コマンドです。ボタンのクリック時にこのコマンドが実行されます。

例
>DEFINE BUTTON "clr dptr", "dptr=0"
>DEFINE BUTTON "show main()", "u main"
>DEFINE BUTTON "show r7", "printf (\"R7=%02XH\n\",R7)"

注

  • 上の最後のボタン定義で定義された printf コマンドでは、ネストされた文字列が使用されています。printf の形式文字列の二重引用符文字（"）は、構文エラーを避けるために \" でエスケープする必要があります。

ボタンを定義すると、直ちに［ツールボックス］（Toolbox）ウィンドウに追加されます。各ボタンにはボタン番号が割り当てられ、この番号が［ツールボックス］（Toolbox）ウィンドウに表示されます。この番号を使用して、［ツールボックス］（Toolbox）ウィンドウから特定のボタンを削除することができます。


µVision4 User's Guide (Japanese): DIR

DIR

構文 | 説明
DIR | 現在のモジュールのシンボル名を表示します。
DIR \module | module のシンボルを表示します。
DIR \module LINE DIR \module\func LINE | 現在または指定したモジュールあるいは関数の行番号情報を表示します。
DIR \module\func | module に含まれた関数 func のシンボルを表示します。
DIR BFUNC | 定義済みのすべての µVision4 関数の名前を表示します。
DIR DEFSYM | DEFINE コマンドで作成されたシンボルの名前を表示します。
DIR FUNC | すべての µVision4 関数の名前を表示します。
DIR LINE | 現在のモジュールの行番号情報を表示します。
DIR MODULE | ターゲットプログラムのモジュール名を表示します。
DIR PUBLIC | すべてのグローバルシンボルの名前を表示します。
DIR SIGNAL | すべてのユーザ定義シグナル関数の名前を表示します。
DIR UFUNC | すべてのユーザ定義関数の名前を表示します。
DIR VTREG | CPU ドライバによりサポートされているすべての CPU ピンレジスタの名前を表示します。

DIR コマンドを使用すると、さまざまなタイプのシンボルを表示できます。引数を指定せずに DIR を実行すると、現在のモジュールのシンボル名が表示されます。現在のモジュールは、プログラムカウンタ（$）によりアドレス空間が示されているモジュールです。µVision4 では、ターゲットプログラムのロード時にモジュールに割り当てられているアドレス領域を判断します。

µVision4 には、さまざまな内部シンボルテーブルがあります。その内容は、DIR コマンドでさまざまなオプションを指定して表示することができます。

DIR コマンドオプション | 説明
\module \module\func | 指定されたモジュールまたは関数のシンボルを表示します。
BFUNC | 定義済みの µVision4 関数の名前を表示します。これらの関数は常に使用可能で、削除や再定義を行うことはできません。
DEFSYM | DEFINE コマンドで作成したシンボルを表示します。詳細については、「DEFINE」を参照して下さい。 このオプションを使用すると、'DEFINE 〚type〛〚name〛' コマンドにより作成されたシンボルを出力できます。
FUNC | 現在定義されているすべての µVision4 関数の名前およびプロトタイプを表示します。これには、定義済み関数、ユーザ定義関数、およびシグナル関数が含まれます。 µVision4 関数は、ターゲットプログラムの関数と同じではないことに注意して下さい。
LINE \module LINE \module\func LINE | 現在のモジュール、指定したモジュール、または指定した関数の行番号を表示します。
MODULE | ターゲットプログラムのすべてのモジュール名を表示します。ターゲットプログラムをロードしておく必要があります。
PUBLIC | すべてのグローバルシンボル名を表示します。これらのオブジェクトは、アセンブリ言語の属性 PUBLIC を持ちます。このグループには、非スタティック C 変数も含まれます。
SIGNAL | シグナル関数の名前を表示します。シグナル関数は、バックグラウンドで処理されるユーザ関数です。シグナル関数は、ポート入力のシグナル形式を生成するために使用します。
UFUNC | µVision4 ユーザ関数の名前を表示します。ユーザ関数は、ユーザにより定義される関数です。
VTREG | デバイスデータベースから現在選択されている CPU でサポートされている CPU ピンレジスタの名前を表示します。
例

以下の例は、C51 コンパイラパッケージの MEASURE サンプルプログラムにより作成されたものです。

DIR MODULE

>DIR MODULE      /* all module names */
  MEASURE
  MCOMMAND
  GETLINE
  ?C_FPADD
  ?C_FPMUL
  ...

DIR \module

>DIR \MEASURE    /* module 'MEASURE' */
 MODULE: MEASURE
    C:0x000000 . . . . _ICE_DUMMY_ . . uint
     FUNCTION: {CvtB} RANGE: 0xFF03B7-0xFF07E5
      C:0x000000 . . . . _ICE_DUMMY_ . . uint
     FUNCTION: {CvtB} RANGE: 0xFF000B-0xFF000D
      C:0x000000 . . . . _ICE_DUMMY_ . . uint
     FUNCTION: SAVE_CURRENT_MEASUREMENTS RANGE: 0xFF000E-0xFF0069
     FUNCTION: TIMER0 RANGE: 0xFF006A-0xFF0135
      D:0x00000F . . . . i . . uchar
     FUNCTION: _READ_INDEX RANGE: 0xFF0136-0xFF01BF
      D:0x00003F . . . . buffer . . ptr to char
      D:0x000042 . . . . index . . int
      D:0x000007 . . . . args . . uchar
     FUNCTION: CLEAR_RECORDS RANGE: 0xFF01C0-0xFF01EE
      D:0x000006 . . . . idx . . uint
     FUNCTION: MAIN RANGE: 0xFF01EF-0xFF03B6
      I:0x000067 . . . . cmdbuf . . array[15] of char
      D:0x00003C . . . . i . . uchar
      D:0x00003D . . . . idx . . uint

DIR /module LINE

>DIR \MEASURE LINE     /* Lines of module 'MEASURE' */
 MODULE: MEASURE
C:0x000E . . . . #87
C:0x000E . . . . #88
C:0x003A . . . . #89
C:0x0049 . . . . #90
...
C:0x03B6 . . . . #291
C:0x03B6 . . . . #292

DIR PUBLIC

>DIR PUBLIC            /* all PUBLIC symbols */
  B:0x000640 . . . . T2I0 . . bit
  B:0x000641 . . . . T2I1 . . bit
  ...
  D:0x000023 . . . . current . . struct mrec
  C:0x0007CD . . . . ERROR . . array[16] of char
  X:0x004000 . . . . save_record . . array[744] of struct mrec
  C:0x00000E . . . . save_current_measurements . . void-function
  C:0x0001EF . . . . main . . void-function
  C:0x00047E . . . . menu . . array[847] of char
  D:0x000030 . . . . setinterval . . struct interval
  ...
  B:0x000601 . . . . IEX2 . . bit
  B:0x000600 . . . . IADC . . bit

DIR VTREG

>DIR VTREG           /* Show Pin-Registers and Values */
    PORT0:  uchar, value = 0xFF
    PORT1:  uchar, value = 0xFF
    PORT2:  uchar, value = 0xFF
    PORT3:  uchar, value = 0xFF
    PORT4:  uchar, value = 0xFF
    PORT5:  uchar, value = 0xFF
    PORT6:  uchar, value = 0xFF
    PORT7:  uchar, value = 0x00
    PORT8:  uchar, value = 0x00
     AIN0:  float, value = 0
     AIN1:  float, value = 0
     AIN2:  float, value = 0
     AIN3:  float, value = 0
     AIN4:  float, value = 0
     AIN5:  float, value = 0
     AIN6:  float, value = 0
     AIN7:  float, value = 0
     AIN8:  float, value = 0
     AIN9:  float, value = 0
    AIN10:  float, value = 0
    AIN11:  float, value = 0
     S0IN:   uint, value = 0x0000
    S0OUT:   uint, value = 0x0000
     S1IN:   uint, value = 0x0000
    S1OUT:   uint, value = 0x0000
    VAGND:  float, value = 0
    VAREF:  float, value = 5
     XTAL:  ulong, value = 0xB71B00
   PE_SWD:  uchar, value = 0x00
    STIME:  uchar, value = 0x00

DIR

>$ = MAIN     /* set current execution point to main() */
>DIR          /* now, the main() symbols are preselected */
 FUNCTION: MAIN RANGE: 0xFF01EF-0xFF03B6
  I:0x000067 . . . . cmdbuf . . array[15] of char
  D:0x00003C . . . . i . . uchar
  D:0x00003D . . . . idx . . uint

DIR DEFSYM

>DIR DEFSYM   /* those created by 'DEFINE 〚type〛 〚name〛' */
            word00:    int, value = 0x0000
            byte00:   char, value = 0x00
           dword00:   long, value = 0x0
           float00:  float, value = 0

DIR FUNC

>DIR FUNC     /* predefined µVision4 functions */
predef'd:   void  MEMSET (ulong, ulong, uchar)
predef'd:   void  TWATCH (ulong)
predef'd:    int  RAND (uint)
predef'd:  float  GETFLOAT (char *)
predef'd:   long  GETLONG (char *)
predef'd:    int  GETINT (char *)
predef'd:   void  EXEC (char *)
predef'd:   void  PRINTF (char *, ...)


µVision4 User's Guide (Japanese): Display

Display

構文 | 説明
Display startaddr, endaddr | ［メモリ］（Memory）ウィンドウ（開いている場合）または［コマンド］（Command）ウィンドウに startaddr から endaddr までのメモリを表示します。

Display コマンドは、［メモリ］（Memory）ウィンドウ（開いている場合）または［コマンド］（Command）ウィンドウに一定範囲のメモリを表示します。メモリ領域は、16 進数および ASCII 形式で表示されます。メモリの内容は、メインメニューの［ビュー］（View）→［メモリウィンドウ］（Memory Window）コマンドから開く［メモリ］（Memory）ウィンドウにも表示されます。

表示されるメモリ行は、最初のバイトのアドレス、最大 16 桁の 16 進数バイト、および表示される各 16 進数バイトの ASCII 文字から構成されます。ドット（.）は出力できない ASCII 値です。

アドレス指定（startaddr および endaddr）を省略すると、前回の Display コマンドの末尾からメモリが表示されます。以前に Display コマンドが指定されていない場合は、コードアドレス 0x0000 からメモリが表示されます。

アドレスを指定すると、開始アドレス（startaddr）から終了アドレス（endaddr）または次の 256 バイトのページ境界までのメモリが表示されます。

80x51 ターゲットでは、以下の表に示すようなメモリ空間指定子の接頭辞がアドレスに付く場合があります。例えば、X:0x0000 は XDATA アドレスの 0x0000 を示します。

指定子 | 説明
B | ビットアドレス指定が可能な RAM メモリ（BIT）。
C | コードメモリ（CODE）。
CO | 定数のメモリ範囲（251 CONST）。
D | 8051 の直接アドレス指定が可能な内部 RAM メモリ（DATA）。
EB | ビットアドレス指定が可能な拡張 RAM メモリ（251 EBIT）。
ED | 拡張データ RAM メモリ（251 EDATA）。
HC | 定数の大きなメモリ（Huge Memory）範囲（251 HCONST）。
I | 8051 の間接アドレス指定が可能な内部 RAM メモリ（IDATA）。
X | 外部 RAM メモリ（XDATA）。
例
>D main                     /* Output beginning at main                */

>D 0x100,0x1FF              /* Output memory between 0x100 and 0x1FF   */

>D X:0,0x100                /* Output 256 bytes of the 8051 XDATA      */
>                           /* external memory beginning at address 0  */

>D menu                     /* Output beginning at address menu        */

>D save_record, save_record + 0x2F
X:4000  62 62 62 62 62 62 62 62–62 62 62 62 62 62 62 62  bbbbbbbbbbbbbbbb
X:4010  62 62 62 62 62 62 62 62–62 62 62 62 62 62 62 62  bbbbbbbbbbbbbbbb
X:4020  62 62 62 62 62 62 00 00–00 00 00 00 00 00 00 00  bbbbbb..........


µVision4 User's Guide (Japanese): Enter

Enter

構文 | 説明
Enter typeaddress = expr , expr ... | 指定されたデータ type の式（expr）を使用して、address から始まるメモリの内容を変更します。

Enter コマンドを使用すると、指定した address から始まるメモリの内容を変更することができます。次のデータ型を指定できます。

型 | 説明
CHAR | 符号付き文字または符号なし文字。
DOUBLE | 倍精度浮動小数点数。
FLOAT | 浮動小数点数。
INT | 符号付き整数または符号なし整数。
LONG | 符号付き長整数または符号なし長整数。

複数の式をコンマ（,）で区切って指定できます。これらの式は指定されたデータ型に変換され、最終的にメモリの連続したアドレスに保存されます。

例
>E CHAR x:0 = 1,2,"-µVision4-"                   /* Enter Characters */
>D x:0
 X:0000  01 02 2D 64 53 63 6F 70 65 2D 00 00 00 00 00 00   ..-µVision4-......

>E FLOAT x:0x2000 = 3,4,15.2,0.33                /* Enter Float      */


µVision4 User's Guide (Japanese): EVALuate

EVALuate

構文 | 説明
EVALuate expression | 式の結果を 10 進数、8 進数、16 進数、および ASCII 形式で表示します。

EVALuate コマンドは、指定した式を計算し、10 進数、8 進数、16 進数、および ASCII 形式で結果を出力します。EVALuate コマンドを使用せずに入力された式は、RADIX システム変数により選択された現在の基数のみで表示されます。式には、複数の部分式をコンマで区切って含めることができます。

例
>eval -1
16777215T 77777777Q 0xFFFFFF '....'

>eval intcycle
0T 0Q 0x0 '....'

>intcycle = 0x12
>eval intcycle
18T 22Q 0x12 '....'

>eval 'a'+'b'+'c'
294T 446Q 0x126 '...&'

>eval main
16712175T 77600757Q 0xFF01EF '....'

>eval save_record[1].time
81931T 240013Q 0x1400B '..@.'

>eval save_record[1].time.sec
0T 0Q 0x0 '....'

>save_record[1].time.sec = 1
>eval save_record[1].time.sec
1T 1Q 0x1 '....'

>eval save_record[1].time.sec = 0
0T 0Q 0x0 '....'


µVision4 User's Guide (Japanese): EXIT

EXIT

構文 | 説明
EXIT | µVision4 デバッガを終了します。

EXIT コマンドは µVision4 デバッガを終了します。

このコマンドを exec 関数の引数として使用することはできません。


µVision4 User's Guide (Japanese): Go

Go

構文 | 説明
Go startaddr, stopaddr | プログラムの実行を startaddr から開始し（指定されている場合）、stopaddr で終了します（指定されている場合）。

Go コマンドは、µVision4 にターゲットプログラムの開始を指示します。

実行は、startaddr により指定されたアドレスから開始されます。startaddr が指定されていない場合は、現在のプログラムカウンタから実行が始まります。通常、現在のプログラムカウンタが開始アドレスとして使用された後は、開始アドレスを指定する必要はありません。

ターゲットプログラムの実行は、stopaddr で指定されたアドレスで停止します。stopaddr が指定されている場合、µVision4 は実行の停止時に削除される一時的なブレークポイントを設定します。stopaddr が指定されていない場合、ブレークポイントに到達するか、デバッグウィンドウの［停止］（Stop）ボタンをクリックして実行を停止するまで、ターゲットプログラムが実行されます。

ターゲットプログラムの実行が停止すると、レジスタ、ウォッチ、デバッグなどのウィンドウが更新され、最新の CPU ステータスが表示されます。

注

  • 条件ブレークポイントを使用している場合、µVision4 は各命令の後にブレーク条件をチェックする必要があります。このため、Go コマンドを使用して実行を開始した場合でも、µVision4 はターゲットプログラムをシングルステップモードで実行します。
例
>G,main         /* Run starting at $ up to address main       */
>G              /* Start at $.  Break with Ctrl+C or breakpoint */


µVision4 User's Guide (Japanese): INCLUDE

INCLUDE

構文 | 説明
INCLUDE pathfilename | filename を開き、ファイルから µVision4 コマンドを読み出して実行します。

INCLUDE コマンドを使用すると、コマンドを読み出して、実行のために µVision4 に行単位で渡すコマンドファイルを指定できます。INCLUDE ファイルを使用すると、µVision4 で反復操作を実行することができます。例えば、ターゲットプログラムのロード、main C 関数のプログラム実行、［ツールボックス］（Toolbox）のボタンの初期化、複数のユーザ関数の作成を行う INCLUDE ファイルを作成できます。

INCLUDE ファイルは、4 レベルまでネストさせることができます。INCLUDE コマンドを使用するには、ターゲットプログラムの実行を停止する必要があります。

例
INCLUDE measure.ini


µVision4 User's Guide (Japanese): KILL

KILL

構文 | 説明
KILL BUTTON number | ［ツールボックス］（Toolbox）のボタンを削除します。
KILL FUNC * | すべての µVision4 関数を削除します。
KILL FUNC function_name | function_name の µVision4 関数を削除します。

KILL コマンドにより、以前に定義された［ツールボックス］（Toolbox）のボタンと µVision4 関数を削除できます。

KILL BUTTON コマンドにより、以前に定義された［ツールボックス］（Toolbox）のボタンを削除できます。このコマンドを使用する場合、削除する［ツールボックス］（Toolbox）のボタンの number を指定する必要があります。この番号は、［ツールボックス］（Toolbox）ウィンドウで各ボタンの前に表示されています。

KILL FUNC * コマンドにより、以前に定義されたすべてのユーザ関数およびシグナル関数を削除できます。定義済みの µVision4 関数は削除されません。

KILL FUNC function_name コマンドにより、指定したユーザ関数またはシグナル関数を削除できます。

例

>KILL FUNC ANALOG      /* Delete user function analog */
>KILL FUNC myregs      /* Delete user function myregs */
>KILL FUNC *           /* Delete all user functions     */

>KILL BUTTON 3         /* Kill Toolbox Button number 3  */

>KILL BUTTON 1         /* Kill Toolbox Button number 1  */


µVision4 User's Guide (Japanese): LogicAnalyze

LogicAnalyze

構文 | 説明
LogicAnalyze | 現在のシグナル記録に関する統計情報を表示します。
LogicAnalyze variable_name | 指定した変数または VTREG 名のシグナル記録を開始します。
LogicAnalyze KILL * | シグナル記録から変数を削除します。

µVision4 のロジックアナライザを使用すると、変数変更の時刻と値を記録できます。プログラムの実行中、シグナル記録の結果が［ロジックアナライザ］（Logic Analyzer）ウィンドウに表示されます。

ロジックアナライザでの作業中は、以下のコマンドを使用できます。

LA

引数を指定せずに LA コマンドを実行すると、記録された各変数の統計情報が表示されます。記録された変更数がリストされます。

LA variable_name

LA コマンドにターゲットプログラムの変数または VTREG 名を指定して実行すると、記録するシグナルが作成されます。最大 256 の変数または VTREG を記録できます。シグナル記録は、char、unsigned char、int、unsigned int、long、または unsigned long の型のスカラ変数または VTREG についてのみ可能です。

注

  • µVision4 シミュレーションでは、一部の通信ペリフェラルのピンで正確なタイミングが提供されません。UART、I²C、CAN の読み出し/書き込みシグナルは切り替わらず、代わりに VTREG が通信ストリームを表します。このため、このような通信シグナルの変更を確認することはできません。
LA KILL *

LA KILL * コマンドは、ロジックアナライザからすべての変数の記録を削除します。

例
>LA Tone.y1            /* Start recording for y1 member of struct Tone */
>LA CC1_OUT            /* Start recording for CC1_OUT which is a PWM output signal */
>LA AN0                /* Start recording for VTREG AN0 which represents a A/D input */
>LA ADC_DAT            /* Start recording for ADC_DAT that represents the A/D output register */
>LA Signal             /* Start recording for the variable Signal */

/* After execution of the user program ... */

>LA                    /* display statistics for the signal recording */
  1: ''Tone.y1' nRec=211
  2: ''CC1_OUT' nRec=810
  3: ''AN0' nRec=5644
  4: ''ADC_DAT' nRec=400
  5: ''Signal' nRec=0

>LA KILL *             /* Remove all variables from signal recording */


µVision4 User's Guide (Japanese): LOAD

LOAD

構文 | 説明
LOAD path\filename [options] | オブジェクトファイルまたは Intel HEX ファイルをロードします。

LOAD コマンドにより、ロードする µVision4 デバッガのファイルを指定できます。µVision4 デバッガの起動時に、現在のプロジェクトのオブジェクトファイルをロードすることができます。このために、［ターゲットのオプション］（Options for Target）→［デバッグ］（Debug）ダイアログページで［スタートアップでアプリケーションをロード］（Load Application at Startup）を有効にします。

µVision4 は指定されたファイルの内容を解析してファイルタイプを判断します（ファイルタイプを判断できない場合は、エラーメッセージが表示されます）。以下のファイルタイプがサポートされています。

  • アブソリュートオブジェクトファイルまたは ELF/DWARF ファイル：リンカ/ロケータにより作成されます。デバッグ情報で変換されている場合、これらのファイルには、完全なシンボルのデバッグ情報、タイプ情報、および行番号が含まれます。
  • Intel HEX ファイル：オブジェクトから Hex へのコンバータプログラムにより作成されます。これらのファイルには、シンボルのデバッグ情報、タイプ情報、および行番号情報が含まれていません。プログラムテストは、CPU 命令レベルでのみサポートされます。ソースレベルとシンボルのデバッグはサポートされません。

LOAD コマンドには、使用しているターゲットに応じて変わるいくつかのオプションがあります。

  • INCREMENTAL は、既存のシンボルテーブルにデバッグ情報を追加します。これにより複数アプリケーションのデバッグが可能になります。
  • NOCODE では、シンボル情報のみをロードし、コードレコードを無視します。NOCODE を指定すると既存のプログラムコードの上書きを防止できます。このオプションを指定する場合は、モニタ（MON51、MON251、または MON166）の CPU ドライバをあらかじめロードしておく必要があります。
  • NORESET（一部のターゲットのみに対して使用可能）を指定すると、プログラムのロード後に RESET シグナルの生成を防止できます。このオプションのないターゲットには、代わりに実質的に同じ処理を実行する INCREMENTAL オプションを使用します。
例
LOAD C:\KEIL\C51\EXAMPLES\MEASURE\MEASURE

このコマンドラインは c:\keil\c51\examples\measure ディレクトリから measure をロードします。µVision4 は、このディレクトリのソースファイルも検索します。

LOAD MYPROG.HEX

このコマンドラインは myprog.hex をロードします。

キーシーケンスのサポート

LOAD コマンドには、キーシーケンスを使用することができます。この拡張機能を使用すると、マルチプロジェクトワークスペースなどのマルチプロジェクトで汎用デバッガ初期化ファイルを使用できます。リンカ出力ファイルの名前は %L で指定することができます。

例
LOAD %L INCREMENTAL

このコマンドラインは、現在のプロジェクトのリンカ出力ファイルをデバッグ用にロードします。

注

  • ファイル名にスペースが含まれる場合は、ファイル名を引用符（"）で囲む必要があります。この場合は、パーサーが C 文字列リテラルの規則を適用します。また、単一バックスラッシュ（\）文字の代わりに二重バックスラッシュ（\\）を使用する必要があります。

    次に例を示します。

    LOAD "C:\\my path\\filename.hex"


µVision4 User's Guide (Japanese): LOG

LOG

構文 | 説明
LOG > pathfilename | ファイル filename をログファイルとして作成します。［コマンド］（Command）ウィンドウからの出力がこのファイルに書き込まれます。
LOG >> path filename | ログ情報を追加するために filename というファイル名の既存のログファイルを開きます。filename が存在しない場合は、作成されます。［コマンド］（Command）ウィンドウからの出力がこのファイルに追加されます。
LOG | ログファイルのステータスを表示します。
LOG OFF | ログファイルを閉じます。

LOG コマンドを指定して、ログファイルの作成、ログファイルへの追加、ログファイルのステータスチェックを行ったり、ログファイルを閉じることができます。［コマンド］（Command）ウィンドウに表示される出力がログファイルにコピーされます。指定するファイル名には、ドライブの文字やパス指定を含めることができます。c:\usr\tmp\logfile のようにファイル名を文字列として指定することができます。

例
LOG >C:\TMP\dslog                     /* Create a new log file       */
LOG                                   /* Interrogate log file status */
 command log file: C:\TMP\dslog
LOG OFF                               /* Close the log file          */


µVision4 User's Guide (Japanese): MAP

MAP

構文 | 説明
MAP | 現在のメモリマップを表示します。
MAP start, end READ WRITE EXEC VNM | 指定したメモリ範囲 (start-end) のアクセスを指定したとおりにマップします。
MAP start, end CLEAR | マップされたメモリ範囲をクリアします。

µVision4 でデバッグするターゲットプログラムは、メモリにアクセスし、メモリを使用します。µVision4 では、ターゲットプログラムのシンボル情報を使用して、ほとんどのアプリケーションのメモリマップを自動設定します。MAP コマンドにより、µVision4 で自動的に検出されないプログラムで使用するメモリ領域を指定できます。

ターゲットプログラムを実行すると、µVision4 は各メモリアクセスがメモリマップ外ではないかどうかをチェックします。無効なアクセスが行われた場合、µVision4 はアクセス違反エラーをレポートします。これにより、プログラムのメモリ問題を特定して修正することができます。

注

  • プログラムでメモリにマップされた I/O デバイスを使用するか、ポインタによりメモリに動的にアクセスする場合、メモリマップの変更が必要になる可能性があります。

MAP コマンドで、アドレス範囲とその範囲に対して許可されるアクセスを指定します。読み出し（READ）、書き込み（WRITE）、および実行（EXEC）アクセス（または任意の組み合わせ）を指定できます。メモリマップでは、1 バイトの粒度がサポートされています。

VNM オプションは、指定したメモリ範囲をノイマン型メモリとして指定します。VMN をアドレス範囲と共に指定すると、µVision4 は外部データメモリ（XDATA）とコードメモリをオーバーラップさせます。外部データメモリへの書き込みアクセスによってもコードメモリが変更されます。VNM と共に指定されたメモリ範囲は、コード領域の範囲ではないか、64K 境界を越えない可能性があります。アドレス範囲には、外部データ領域を指定する必要があります。

MAP コマンドに他のパラメータを指定しないと、ターゲットプログラムの現在のメモリマップが表示されます。これによりメモリマップの設定をチェックできます。

CLEAR オプションにより、MAP コマンドで以前に指定されているアドレス範囲を削除できます。

µVision4 のロード時に、次のメモリマップが定義されます。

CPU | アドレス範囲 | アクセス
8051 ファミリ | 0x000000-0x00FFFF (DATA) | READ WRITE
 | 0x010000-0x01FFFF (XDATA) | READ WRITE
 | 0xFF0000-0xFFFFFF (CODE) | EXEC READ
251 ファミリ | 0x000000-0x00FFFF (DATA) | READ WRITE
 | 0x010000-0x01FFFF (XDATA) | READ WRITE
 | 0xFF0000-0xFFFFFF (CODE) | EXEC READ
166 ファミリ | 0x000000-0x00FFFF | EXEC READ WRITE

µVision4 は最大 16MB のメモリをサポートしています。このメモリは、それぞれ 64K の 256 セグメントに分けられています。以下の表にリストされた数値のセグメントには、µVision4 によってデフォルトの 8051 および 251 のメモリ空間が割り当てられています。

セグメント値 | メモリ空間
0x00 | MCS® 51 DATA セグメント、0x00:0x0000—0x00:0x00FF。 MCS® 251 EDATA セグメント、0x00:0x0000-0x00:0xFFFF。
0x01 | MCS® 51 および MCS® 251 XDATA セグメント 0x01:0x0000-0x01:0xFFFF。
0x80-0x9F | MCS® 51 および MCS® 251 コードバンク 0 ～コードバンク 31。 0x80 コードバンク 0、0x81 コードバンク 1 など。
0xFE | MCS® 51 および MCS® 251 PDATA セグメント 0xFE:0x0000-0xFE:0x00FF。
0xFF | MCS® 51 および MCS® 251 CODE セグメント 0xFF:0x0000-0xFF:0xFFFF。

µVision4 は最大 16MB のターゲットプログラムメモリをサポートしていますが、必要なメモリ領域のみをマップする必要があります。µVision4 では、メモリマップに各ブロックの 2 つのコピーを割り当てる必要があります。1 つ目のコピーは、読み出し、書き込み、および実行に使用するデータを保持します。2 つ目のコピーは、アクセスパーミッションや、コードカバレッジとパフォーマンス解析のための情報といった特定の属性を保持します。このため、大容量のメモリをマップした場合には、ディスクスワッピングが必要になり、µVision4 の実行速度が遅くなることがあります。

RESET MAP コマンドを指定すると、マップされているすべてのセグメントがクリアされ、上のデフォルトマッピングが復元されます。詳細については、「RESET」を参照して下さい。

さらに、［メモリマップ］（Memory Map）ダイアログを使用してメモリマッピングを確認および変更することができます。このダイアログはメインメニューの［デバッグ］（Debug）→［メモリマップ...]（Memory Map...）から開きます。

注

  • 8051 互換デバイスに 256 バイト未満の XDATA をマップすると、問題が発生する場合があります。8051 では、MOVX @Ri 命令を使用して 256 バイトの XDATA への高速アクセス手段をサポートしています。256 バイト以上の XDATA をマップすると、µVision4 は P2 および P0 の内容を使用して全 16 ビットアドレスを解決します。256 バイト未満の XDATA をマップすると、µVision4 は P0 の内容のみを使用し、P2 が無視されます。したがって、XDATA メモリはセグメントの先頭から開始する必要があります（デフォルトでは 0x01:0x0000 から 0x01:0x00FF まで）。


µVision4 User's Guide (Japanese): MODE

MODE

構文 | 説明
MODE COMxbaudrate, parity, databits, stopbits | COM ポートの設定を変更します。

µVision4 では、PC の COM ポートの設定を変更できます。baudrate パラメータには、1200、2400、9600、19200 のように有効な通信速度を指定する必要があります。parity パラメータには、指定しない場合 0、奇数の場合 1、偶数の場合 2 をそれぞれ指定できます。databits パラメータには、8 データビットの場合 8、7 データビットの場合 7 を指定できます。stopbits パラメータには、1 ストップビットの場合 1、1½ ストップビットの場合 15、2 ストップビットの場合 2 をそれぞれ指定できます。

MODE コマンドと ASSIGN コマンドを併用すると、シミュレートされた CPU のシリアル入出力チャネルのパラメータを設定できます。

例
>MODE COM2 19200, 0, 8, 1    /* Setup COM2 for 19,200 bps, */
                             /*                no parity,  */
                             /*                1 stop bit  */


µVision4 User's Guide (Japanese): Ostep

Ostep

構文 | 説明
Ostep | 現在の関数呼び出しからステップアウトします。関数が呼び出されていない場合、µVision4 はエラーを生成します。

Ostep コマンドは、現在のプログラムカウンタから実行を開始し、関数の呼び出し後に現在の関数がこのステートメントに戻ったときに停止します。µVision4 は、関数が呼び出されたコードアドレスを含む、現在ネストされている関数呼び出しのリストを内部的に維持します。Ostep コマンドが使用されたときにリストに関数呼び出しが存在しない場合、µVision4 はエラーを生成します。

その他のトレースコマンドの詳細については、「Pstep」および「Tstep」を参照して下さい。

例
>O    /* Steps out of the current function */


µVision4 User's Guide (Japanese): PerformanceAnalyze

PerformanceAnalyze

構文 | 説明
PerformanceAnalyze | 現在定義されているすべてのパフォーマンスアナライザ範囲と、これらの範囲のタイミング結果を表示します。
PerformanceAnalyze start , end | パフォーマンスアナライザに追加する新しい範囲を定義します。
PerformanceAnalyze KILL * | 現在定義されているすべてのパフォーマンスアナライザ範囲を削除します。
PerformanceAnalyze KILL item , item… | 現在定義されているパフォーマンスアナライザ範囲を指定して削除します。
PerformanceAnalyze RESET | パフォーマンスアナライザをリセットします。

µVision4 のパフォーマンスアナライザを使用すると、ターゲットプログラムを調整してパフォーマンスを最大限に向上させることができます。解析するプログラムの部分を指定すると、プログラムの実行中にパフォーマンスアナライザにより実行に関する統計情報が収集されます。解析対象のプログラムの各部分について、最短、最長、および平均の実行時間が記録されます。

最大 256 のコード範囲を解析することができます。パフォーマンスアナライザは、コード範囲の実行回数に加えて、各範囲の実行時間を記録します。

範囲とはアドレス範囲です。これは通常、関数の最初の命令から始まり、その関数の最後の命令で終わります。ただし、ターゲットプログラムのどの部分からも、少数の命令のみを含む範囲を指定することができます。

プログラムの実行中、パフォーマンスアナライザの結果が［パフォーマンスアナライザ］（Performance Analyzer）ウィンドウに表示されます。

パフォーマンスアナライザでの作業中は、以下のコマンドを使用できます。

PA

引数を指定せずに PA コマンドを実行すると、定義されている各パフォーマンスアナライザのアドレス範囲、そのインデックス番号（特定範囲の削除に使用）、実行数、および最短、最長、平均の実行時間（クロックサイクル単位）が表示されます。

PA start , end

PA コマンドにターゲットプログラムの関数名またはアドレス範囲を指定して実行すると、解析する新しいアドレス範囲が作成されます。start が関数名の場合、µVision4 は自動的に関数の開始アドレスと終了アドレスを取得します。start がアドレスの場合、end に解析する範囲の終了アドレスを指定する必要があります。ターゲットアプリケーションは、パフォーマンス解析を最適化できるよう完全なデバッグ情報を使用してコンパイルする必要があります。

注

  • ARM シミュレータのパフォーマンスアナライザは、アプリケーション全体で常にアクティブであるため、設定の必要はありません。したがって、PA コマンドは不要です。
  • パフォーマンスアナライザのアドレス範囲には、固有の開始ポイントと終了ポイントを指定する必要があり、中間でのリターン（RET）命令を含めることができません。新しいアドレス範囲を既存の範囲とオーバーラップさせることはできません。
PA KILL *

PA KILL * コマンドは、パフォーマンスアナライザからすべてのアドレス範囲を削除します。

PA KILL item

PA KILL コマンドにインデックス番号を指定して実行すると、パフォーマンスアナライザから該当するアドレス範囲が削除されます。µVision4 は、パフォーマンスアナライザに追加する各アドレス範囲と関数にインデックスを割り当てます。これらの番号は PA コマンドで表示することができます。

PA RESET

PA RESET コマンドは、定義されているすべてのアドレス範囲について記録されているすべての情報をクリアします。ターゲットプログラムをしばらく実行してから、このコマンドを使用して記録を開始できます。

パフォーマンスアナライザのプログラム範囲は、［パフォーマンスアナライザの設定］（Setup Performance Analyzer）ダイアログでも定義できます。このダイアログはメインメニューの［デバッグ］（Debug）→［パフォーマンスアナライザ…］（Performance Analyzer…）から開きます。

例
>PA main                         /* Define a range for main()   */
>PA timer0                       /* Define a range for timer0() */
>PA clear_records                /* Define more ranges          */
>PA measure_display
>PA save_current_measurements
>PA read_index
>PA set_time
>PA set_interval
>
>PA                              /* display all PA ranges       */
  0: main: (FF01EF-FF03B6)       /* FF01EF = C:0x01EF           */
  1: timer0: (FF006A-FF0135)
  2: clear_records: (FF01C0-FF01EE)
  3: measure_display: (FF07E7-FF084A)
  4: save_current_measurements: (FF000E-FF0069)
  5: read_index: (FF0136-FF01BF)
  6: set_time: (FF084B-FF08CA)
  7: set_interval: (FF08CB-FF09A5)

/* After execution of the user program ... */

>PA                              /* Display ranges and stats   */
  0: main: (FF01EF-FF03B6)
     count=1, min=-1, max=0, total=167589
  1: timer0: (FF006A-FF0135)
     count=2828, min=33, max=254, total=226651
  2: clear_records: (FF01C0-FF01EE)
     count=1, min=27086, max=27086, total=27086
  3: measure_display: (FF07E7-FF084A)
     count=10, min=19495, max=19503, total=185027
  4: save_current_measurements: (FF000E-FF0069)
     count=491, min=205, max=209, total=100665
  5: read_index: (FF0136-FF01BF)
  6: set_time: (FF084B-FF08CA)
  7: set_interval: (FF08CB-FF09A5)
>
>PA KILL 7                       /* Remove set_interval        */
>PA KILL 6                       /* Remove set_time            */
>PA KILL 5                       /* Remove read_index          */
>PA
  0: main: (FF01EF-FF03B6)
     count=1, min=-1, max=0, total=167589
  1: timer0: (FF006A-FF0135)
     count=2828, min=33, max=254, total=226651
  2: clear_records: (FF01C0-FF01EE)
     count=1, min=27086, max=27086, total=27086
  3: measure_display: (FF07E7-FF084A)
     count=10, min=19495, max=19503, total=185027
  4: save_current_measurements: (FF000E-FF0069)
     count=491, min=205, max=209, total=100665
>
>PA RESET                        /* Clear all recorded information */
>PA
  0: main: (FF01EF-FF03B6)
  1: timer0: (FF006A-FF0135)
  2: clear_records: (FF01C0-FF01EE)
  3: measure_display: (FF07E7-FF084A)


µVision4 User's Guide (Japanese): Pstep

Pstep

構文 | 説明
Pstep expression | expression のプログラム行またはアセンブリ命令を実行またはステップオーバーします。Pstep コマンドは関数およびサブルーチンをステップオーバーします。

Pstep コマンドは、デバッグウィンドウで選択された表示モードに応じてソースレベル命令またはアセンブリ命令を実行します。Pstep コマンドは関数呼び出しにステップインしません。関数呼び出しへのステップイン方法の詳細については、「Tstep」を参照して下さい。

Pstep コマンドは、次の表にまとめたデバッグウィンドウの表示モードに応じてソースレベル命令またはアセンブリ命令をステップオーバーします。

表示モード | 説明
アセンブリ（Assembly） | Pstep はアセンブリ命令をステップオーバーしますが、サブルーチンまたは関数にステップインしません。
混合（Mixed） | Pstep はアセンブリ命令をステップオーバーしますが、サブルーチンまたは関数にステップインしません。
高レベル言語（High-Level Language） | Pstep は C プログラムまたは PL/M-51 プログラムのプログラムステートメントをステップオーバーしますが、サブルーチンまたは関数にステップインしません。
例
>P 100      /* Execute 100 steps, ignoring calls */
>P          /* Execute a step, ignoring calls    */


µVision4 User's Guide (Japanese): RESET

RESET

構文 | 説明
RESET | シミュレートされた CPU またはターゲット CPU をリセットします。
RESET MAP | MAP 割り当てをリセットします。
RESET variable | SET 変数をリセットします。

RESET コマンドには、入力方法により 3 種類の使用方法があります。

  • 引数を指定せずに RESET を実行すると、µVision4 デバッガはシミュレートされた CPU またはターゲット CPU をリセットします。これは、プログラムカウンタを 0x0000 に設定するプロセッサリセットと同様で、すべての特殊機能レジスタがデフォルト値にリセットされます。ターゲットプログラムとすべてのデバッグ情報は、ロードされたままになります。アクティブなシグナル関数は無効化されます。
  • RESET MAP コマンドはマップ割り当てをリセットし、ロードされているターゲットプログラムとデバッグ情報のメモリをクリアします。詳細については、「MAP」を参照して下さい。
例
>RESET                           /* RESET the CPU                    */
>RESET MAP                       /* RESET the memory MAP assignments */
>RESET SRC                       /* CLEAR the content of SRC         */


µVision4 User's Guide (Japanese): SAVE

SAVE

構文 | 説明
SAVE pathfilenameaddr1, addr2 | addr1 から addr2 までのアドレス範囲を HEX386 形式で filename に保存します。

SAVE コマンドはメモリイメージを filename に保存します。保存されるファイルは HEX386 形式です。メモリの addr1 から addr2 までの内容が保存されます。このファイルの内容は、後で LOAD コマンドを使用して µVision4 デバッガにロードできます。

注

  • 8051 と 251 の内部 RAM の I:0x80 から I:0xFF までは保存できません。


µVision4 User's Guide (Japanese): SCOPE

SCOPE

構文 | 説明
SCOPE \module\function | 指定されたプログラムモジュールまたは関数のアドレス範囲を表示します。

SCOPE コマンドは以下を表示します。

  • ターゲットプログラムのすべての関数のアドレス範囲（モジュール名および関数名が入力されていない場合）
  • プログラムモジュールのすべての関数のアドレス範囲（モジュール名のみが指定されている場合）
  • 1 つの関数のアドレス範囲（モジュール名および関数名が指定されている場合）

プログラムとデバッグ情報がロードされると、µVision4 デバッガはアドレス割り当てと関連付けられたシンボル情報の内部テーブルを作成します。このテーブルから、非修飾シンボルを自動的に選択することができます。

例

以下の例で、インデント行は各モジュールのソースプログラムのレイアウトを反映しています。

>scope \measure\main                  /* show scope range of main()      */
MAIN RANGE: 0xFF01EF-0xFF03B6
>
>scope \measure                       /* show scope for module 'measure' */
MEASURE
  {CvtB} RANGE: 0xFF03B7-0xFF07E5     /* µVision4 dummy scope block      */
  {CvtB} RANGE: 0xFF000B-0xFF000D
  SAVE_CURRENT_MEASUREMENTS RANGE: 0xFF000E-0xFF0069
  TIMER0 RANGE: 0xFF006A-0xFF0135
  _READ_INDEX RANGE: 0xFF0136-0xFF01BF
  CLEAR_RECORDS RANGE: 0xFF01C0-0xFF01EE
  MAIN RANGE: 0xFF01EF-0xFF03B6
>
>scope                                /* show all scope ranges           */
MEASURE
  {CvtB} RANGE: 0xFF03B7-0xFF07E5
  {CvtB} RANGE: 0xFF000B-0xFF000D
  SAVE_CURRENT_MEASUREMENTS RANGE: 0xFF000E-0xFF0069
  TIMER0 RANGE: 0xFF006A-0xFF0135
  _READ_INDEX RANGE: 0xFF0136-0xFF01BF
  CLEAR_RECORDS RANGE: 0xFF01C0-0xFF01EE
  MAIN RANGE: 0xFF01EF-0xFF03B6
MCOMMAND
  {CvtB} RANGE: 0xFF09A6-0xFF0A23
  MEASURE_DISPLAY RANGE: 0xFF07E7-0xFF084A
  _SET_TIME RANGE: 0xFF084B-0xFF08CA
  _SET_INTERVAL RANGE: 0xFF08CB-0xFF09A5
GETLINE
  _GETLINE RANGE: 0xFF0A24-0xFF0A87
?C_FPADD
?C_FPMUL
?C_FPDIV
?C_FPCMP
...

注

  • {CvtB} という名前のブロックは、デバッグ情報が不十分な場合に µVision4 により作成されます。デバッグ情報のないライブラリモジュールとアセンブリ言語モジュール、および名前が有効でもスコープ範囲のないブロックには、通常これが作成されます。


µVision4 User's Guide (Japanese): SET

SET

構文 | 説明
SET variable | SET variable の割り当てを表示します。
SET variable = "string" | string を指定された SET variable に割り当てます。

SET コマンドは、定義済み変数に関連付ける文字列を設定します。SET コマンドを使用すると、現在定義済み変数に割り当てられている文字列を表示することもできます。RESET コマンドにより、定義済み変数に関連付けられている文字列をクリアできます。詳細については、「RESET」を参照して下さい。

以下の定義済み変数は、SET コマンドおよび RESET コマンドに使用できます。

変数名 | 説明
SRC | ソースレベルデバッグに必要なソースファイルまたはリストファイルの検索パス。SRC 変数には、一度に最大 10 パスを指定できます。
例

オブジェクトモジュールをロードすると、指定されたパスが SRC の検索パスに追加されます。

>LOAD \OBJS\MEASURE         /* Load mod.  MEASURE          */
>SET SRC                    /* Display paths assigned to SRC */
\objs

ソースファイルおよびリストファイルを検索するパスを追加指定できます。

>SET SRC =\SRC              // Additional path specification
>SET SRC ="\my docs\"       // Use double-quotes with blanks
>SET SRC                    // Display paths assigned to SRC
\objs
.\lib\location\
\my docs\


µVision4 User's Guide (Japanese): SIGNAL

SIGNAL

構文 | 説明
SIGNAL KILL function_name | 指定されたアクティブなシグナル関数を無効化します。
SIGNAL STATE | アクティブなシグナル関数を表示します。

SIGNAL コマンドにより、アクティブなシグナル関数を表示するか、削除することができます。

例
>SIGNAL KILL ANALOG0          /* Deactivate the analog0 signal function */

上の例はアクティブなシグナル関数の無効化方法を示しています。

>SIGNAL STATE
 0  idle     Signal = ANALOG0 (line 10)

上の例はアクティブなシグナル関数を表示します。関数番号、関数のステータス（アイドル状態または実行中）、関数名（ここでは ANALOG0）、および最後に実行されたステートメントの行番号が表示されます。


µVision4 User's Guide (Japanese): SLOG

SLOG

構文 | 説明
SLOG > pathfilename | ファイル filename をログファイルとして作成します。シリアルウィンドウからの入力と出力がこのファイルに書き込まれます。
SLOG >> path filename | ログ情報を追加するために filename というファイル名の既存のログファイルを開きます。filename が存在しない場合は、作成されます。シリアルウィンドウからの入力と出力がこのファイルに追加されます。
SLOG | ログファイルのステータスを表示します。
SLOG OFF | ログファイルを閉じます。

SLOG コマンドを指定して、ログファイルの作成、ログファイルへの追加、ログファイルのステータスチェックを行ったり、ログファイルを閉じることができます。シリアルウィンドウに表示される入力と出力がログファイルにコピーされます。指定するファイル名には、ドライブの文字やパス指定を含めることができます。c:\usr\tmp\logfile のようにファイル名を文字列として指定することができます。

例
SLOG >C:\TMP\dslog                     /* Create a new log file       */
SLOG                                   /* Interrogate log file status */
 serial log file: C:\TMP\dslog
SLOG OFF                               /* Close the log file          */


µVision4 User's Guide (Japanese): Tstep

Tstep

構文： | 説明
Tstep expression | expression のプログラム行またはアセンブリ命令を実行またはステップします。Tstep コマンドは関数およびサブルーチンにステップインします。

Tstep コマンドは、デバッグウィンドウで選択された表示モードに応じてソースレベル命令またはアセンブリ命令を実行します。Tstep コマンドは関数呼び出しにステップインします。関数呼び出しのステップオーバー方法の詳細については、「Pstep」コマンドを参照して下さい。

Tstep コマンドは、次の表にまとめたデバッグウィンドウの表示モードに応じてソースレベル命令またはアセンブリ命令をステップオーバーしします。

表示モード | 説明
アセンブリ（Assembly） | Tstep はアセンブリ命令をステップオーバーし、サブルーチンまたは関数にステップインします。
混合（Mixed） | Tstep はアセンブリ命令をステップオーバーし、サブルーチンまたは関数にステップインします。
高レベル言語（High-Level Language） | Tstep は C プログラムまたは PL/M-51 プログラムのプログラムステートメントをステップオーバーし、サブルーチンまたは関数にステップインします。
例
T 100          /* Executes 100 steps */
T              /* Executes 1 step    */


µVision4 User's Guide (Japanese): Unassemble

Unassemble

構文： | 説明
Unassemble address | 逆アセンブルされたコードメモリをデバッグウィンドウに表示します。逆アセンブリは、address から始まるか（指定されている場合）、前回の Unassemble コマンドから継続されます。

Unassemble コマンドは、コードメモリを逆アセンブルし、［逆アセンブリ］（Disassembly）ウィンドウに表示します。このコードは、アセンブリが混在する高レベルの言語またはアセンブリという 2 つのモードのいずれかで［逆アセンブリ］（Disassembly）ウィンドウに表示されます。このモードは、［逆アセンブリ］（Disassembly）ウィンドウをマウスで右クリックして表示されるコンテキストメニューから選択することができます。

注

  • ソースレベルデバッグを実行するには、µVision4 デバッガに行番号情報を含むオブジェクトモジュールが必要になります。
例
U main         // Disassemble starting at address main
U              // Continue where the previous U stopped
U C:0x0        // Disassemble from address C:0x0000


µVision4 User's Guide (Japanese): WatchKill

WatchKill

構文 | 説明
WatchKill windownr | 1 つの［ウォッチ］（Watch）ウィンドウページのすべてのウォッチポイントを削除します。

WatchKill コマンドは、［ウォッチ］（Watch）ウィンドウで定義されたウォッチポイント式をすべて削除します。

windownr パラメータは［ウォッチ］（Watch）ウィンドウのページを指定します。

例
>WK 1     /* delete all defined watchpoint expressions in watch window 1 */
>WK 2


µVision4 User's Guide (Japanese): WatchSet

WatchSet

構文 | 説明
WatchSet windownr, expression, base | 1 つの［ウォッチ］（Watch）ウィンドウページに追加するウォッチポイント式を定義します。base パラメータには使用する基数（10 または 16）を指定します。

WatchSet コマンドにより、［ウォッチ］（Watch）ウィンドウに表示するウォッチポイント式を定義できます。［ウォッチ］（Watch）ウィンドウは、Go、Ostep、Pstep、Tstep などの各プログラム実行コマンドの後に更新されます。

windownr パラメータは［ウォッチ］（Watch）ウィンドウのページを指定します。オプションで式の値を表示する基数（10 または 16）を指定できます。

例
>WS interval,0x0a LINE
>WS save_record[0].analog
>WS save_record[0]
>WS sindex


µVision4 User's Guide (Japanese): コマンドライン

コマンドライン

µVision4 IDE は、コマンドラインから呼び出すことができます。プロジェクトファイルのビルド、デバッガの起動、フラッシュメモリへのプログラムのダウンロードを行う際には、さまざまなコマンドライン引数を使用できます。

コマンドラインの構文は以下のとおりです。

UV4 〚command〛 〚projectfile〛 〚options〛

各パラメータの説明

command | 以下に示されているコマンドの 1 つです。コマンドを指定しない場合は、プロジェクトファイルが µVision4 のインタラクティブビルドモードで開きます。
projectfile | プロジェクトファイルの名前です。µVision4 のプロジェクトファイルの拡張子は「.uvproj」です。プロジェクトファイルを指定しない場合は、µVision4 で最後に使用したプロジェクトファイルが開きます。
options | ビルドプロセスの出力ファイルまたはプロジェクトターゲット名を指定するその他のオプションです。
コマンド | 説明
-b | プロジェクトをビルドし、ビルドプロセスの完了後に終了します。以下に例を示します。 例:UV4 -b PROJECT1.uvproj
-d | µVision4 のデバッグモードを起動します。このコマンドをデバッグ初期化ファイルと共に使用すると、自動テスト処理を実行できます。µVision は、EXIT コマンドでデバッグを完了するか、デバッグセッションが停止すると終了します。以下に例を示します。 UV4 -d PROJECT1.uvproj
-r | プロジェクトを再変換し、ビルドプロセスが完了したら終了します。以下に例を示します。 UV4 -r PROJECT1.uvproj -t"Simulator"
-f | プロジェクトのプログラミングのためのフラッシュダウンロードコマンドを使用して、ダウンロードプロセスが完了したら終了します。以下に例を示します。 UV4 -f PROJECT1.uvproj -t"MCB2100 Board"

上のコマンドは、以下のオプションと組み合わせることができます。

オプション 説明
-t targetname プロジェクトを開き、指定したターゲットを現在のターゲットに設定します。このオプションは、他の µVision コマンドと組み合わせて使用できます。以下のサンプルは、 PROJECT1.uvproj ファイルで定義されたターゲット MCB2100 Board をビルドします。以下に例を示します。

UV4 -b PROJECT1.uvproj -t"MCB2100 Board"

注

  • -t コマンドオプションを指定しない場合、µVision は、最後のプロジェクトセッションで現在のターゲットに設定されたターゲットを使用します。
-o outputfile 出力ウィンドウの［ビルド］（Build）ページの出力を指定したファイルにコピーします。以下に例を示します。

UV4 -r PROJECT1.uvproj -o"listmake.prn"
-x DDE モードを有効にして、完全なコマンドの出力を返します。

注

  • このオプションは、-d コマンドと組み合わせた場合のみ使用できます。
-y DDE モードを有効にして、コマンドの確認のみを返します。

注

  • このオプションは、-d コマンドと組み合わせた場合のみ使用できます。

ビルドプロセス後、ステータスを示す ERRORLEVEL が µVision により設定されます。値を以下の表に示します。

ERRORLEVEL | 説明
0 | エラーまたは警告なし
1 | 警告のみ
2 | 致命的なエラーまたはエラー（警告の可能性）

バッチファイルの ERRORLEVEL にアクセスできます。ERRORLEVEL またはバッチファイルの詳細については、Windows オンラインヘルプのコマンドラインリファレンスまたはバッチファイルに関するセクションを参照して下さい。

以下のサンプルが用意されています。

  • ターゲットビルドのサンプル
  • フラッシュプログラミングのサンプル


µVision4 User's Guide (Japanese): アプリケーションの作成

アプリケーションの作成

本章では、µVision4 のビルドモードについて説明します。以下のセクションから構成されています。

  • プロジェクトの作成 – 単純なアプリケーションを設定したり HEX 出力を生成したりするために必要な手順を説明します。
  • プロジェクトターゲットとファイルグループ – アプリケーションバリアントの作成方法とプロジェクトに属するファイルの整理方法を説明します。
  • 設定ダイアログの概要 – ツールの構成に使用可能なダイアログページについて説明します。
  • マルチプロジェクトの操作 – 1 つの µVision ファイルのみで複数のプロジェクトを管理する方法を説明します。
  • ヒントとテクニック – µVision4 プロジェクトマネージャの上級レベル機能に関する情報を提供します。

注

  • 本章では、ARM をターゲットアーキテクチャとして使用し、µVision4 IDE の一般的な機能のみを説明します。アーキテクチャの特別な情報（8051 に対応したバンク切り替えなど）は、関連ツールチェーンの『Getting Started User's Guide』にあります。
  • µVision4 を容易に評価できるように、またこの製品に慣れ親しんでいただくために、サンプルプログラムが付属した評価版やツールの制限付きバージョンをご用意しました（ http://www.keil.com/demo からご利用いただけます）。サンプルプログラムは、標準製品キットにも付属しています。
  • Keil 評価ツールには、機能や作成可能なアプリケーションのコードサイズに制限があります。評価ツールの制限の詳細については、リリースノートを参照して下さい。商業用または大型アプリケーションには、弊社の開発キットのフルバージョンの購入が必要です。


µVision4 User's Guide (Japanese): ファイルからのコマンド入力

ファイルからのコマンド入力

µVision4 デバッガのコマンドは、ファイルから INCLUDE コマンドを使用して読み出すことができます。［ターゲットのオプション］（Options for Target）-［デバッグ］（Debug）で、デバッグコマンドが指定された初期化ファイルを指定することもできます。詳細については、「デバッグ」を参照して下さい。


µVision4 User's Guide (Japanese): シミュレーション

シミュレーション

µVision4 デバッガは、メモリを 4GB（ギガバイト）までシミュレートします。メモリ領域は、読み出し、書き込み、またはコード実行アクセス用にマップできます。µVision4 シミュレータは、不正なメモリアクセスがあれば、トラップして報告します。

メモリマッピングのほか、さまざまなマイクロコントローラデバイスの統合ペリフェラルのためのサポートが提供されています。デバイスデータベースからマイクロコントローラを選択すると、それに従ってペリフェラル、命令セット、タイミングが設定されます。デバイスの選択の詳細については、「プロジェクトファイルの作成」を参照して下さい。

［デバッグ］（Debug）メニューを使用すると、オンチップペリフェラルコンポーネントを選択および表示できます。ダイアログボックスのコントロールを使用して、各ペリフェラルの設定を変更することもできます。

  • シミュレータは、サイクル精度で、可能な限り命令をオンチップペリフェラルタイミングを正確にシミュレートします。
  • デバッガ C スクリプト言語を使用して、外部スティミュラスを提供できます。


µVision4 User's Guide (Japanese): ［ブレークポイント］（Breakpoints）

［ブレークポイント］（Breakpoints）

ブレークポイント挿入ボタン µVision4 では、いくつかの方法でブレークポイントを定義できます。プログラムコードを変換する前でも、ソーステキストの編集中に実行ブレークポイントを設定できます。

ブレークポイントの定義と変更は、以下のように行います。

  • ［ファイル］（File）ツールバーのボタンを使用します。エディタウィンドウまたは［逆アセンブリ］（Disassembly）ウィンドウのコードラインを選択し、ブレークポイントボタンをクリックします。
  • エディタウィンドウまたは［逆アセンブリ］（Disassembly）ウィンドウのコンテキストメニューにあるブレークポイントコマンドを使用します。
  • エディタウィンドウまたは［逆アセンブリ］（Disassembly）ウィンドウの左にあるグレーのウィンドウバーをダブルクリックします。
  • ［デバッグ］（Debug）→［ブレークポイント］（Breakpoints…）ダイアログでは、ブレークポイント設定の確認、定義、変更が可能です。このダイアログでは、さまざまな属性を持つアクセスブレークポイントも定義できます。以下のサンプルを参照して下さい。
  • 出力ウィンドウの［コマンド］（Command）ページでは、BreakSet、BreakKill、BreakList、BreakEnable、BreakDisable の各コマンドを使用できます。

［ブレークポイント］（Breakpoints）ダイアログでは、ブレークポイントの表示または変更が可能です。［現在のブレークポイント］（Current Breakpoints）リストのチェックボックスをクリックすると、ブレークポイントを有効または無効にすることができます。［現在のブレークポイント］（Current Breakpoints）リストでブレークポイントをダブルクリックすると、その定義を変更できます。

ブレークポイントを定義するには、［ブレークポイント］（Breakpoint）ダイアログの［式］（Expression）に入力します。式に応じて、以下のブレークポイントタイプのいずれかが定義されます。

  • 式がコードアドレスの場合、実行ブレーク（E）が定義されます。指定したコードアドレスに到達したときにアクティブ化されます。コードアドレスは、CPU の命令の最初のバイトを基準にする必要があります。
  • 式がメモリアクセス（読み出し、書き込み、またはその両方）の場合、アクセスブレーク（A）が定義されます。指定したメモリアクセスが発生したときにアクティブ化されます。メモリアクセスウィンドウのサイズは、式のバイトサイズまたはオブジェクトサイズで指定できます。アクセスブレークの式は、メモリアドレスとメモリタイプに変換する必要があります。演算子（&、&&、<、< =. >、>、=、= =、!=）は、アクセスブレークがプログラムの実行の中断またはコマンドの実行を行う前に、変数値を比較するために使用できます。
  • 式をアドレスに変換できない場合、条件付きブレークポイント（C）が定義されます。指定した条件式が true となるときにアクティブ化されます。条件式は CPU 命令の後で再度計算されます。したがって、プログラムの実行速度が大幅に低下することがあります。

ブレークポイントに［コマンド］（Command）を指定すると、µVision によってそのコマンドが実行され、ターゲットプログラムの実行が再開します。ここで指定するコマンドは、µVision4 デバッグ関数やシグナル関数でもかまいません。µVision4 関数でプログラムの実行を中断するには、_break_ システム変数を設定します。詳細については、「システム変数」を参照して下さい。

［カウント］（Count）の値は、ブレークポイントがトリガされる前に、ブレークポイント式が true となる回数を指定します。

ブレークポイントのサンプル:

以降で、上の［ブレークポイント］（Breakpoint）ダイアログにおける定義について説明します。［現在のブレークポイント］（Current Breakpoints）リストには、式、コマンド、およびカウントと共に、ブレークポイントのタイプと物理アドレスの概要が示されています。

［式］（Expression）： | \Measure\125 | ターゲットプログラムがモジュールの MEASURE 内のコードライン 125 に到達した場合に停止する実行ブレーク（E）です。
［式］（Expression）： | main | ターゲットプログラムがメイン関数に到達した場合に停止する実行ブレーク（E）です。
［式］（Expression）： ［カウント］（Count）： | save_current_measurements 10 | ターゲットプログラムが save_current_measurements 関数に 10 回目に到達した場合に停止する実行ブレーク（E）です。
［式］（Expression）： ［コマンド］（Command）： | tc0 printf ("T0 Interrupt 0ccurred") | ターゲットプログラムが tc0 関数に到達した場合に出力ウィンドウの［コマンド］（Command）ページに発生した T0 割り込みを表示する実行ブレーク（E）です。
［式］（Expression）： | sendchar == 96 | 式 sendchar == 96 が true となる場合にプログラムの実行を停止する条件付きブレーク（C）です。このブレークポイントは上の［ブレークポイント］（Breakpoints）ダイアログでは無効になっています。
［式］（Expression）： ［アクセス］（Access）： ［サイズ］（Size）： | save_record[10] 読み出し/書き込み 3 つのオブジェクト | save_record[10] と続く 2 つのオブジェクトに読み出しまたは書き込みのアクセスが発生した場合にプログラムの実行を停止するアクセスブレーク（A）です。save_record はサイズが 16 バイトの構造体であるため、このブレークは 48 バイトのアクセス領域を定義します。
［式］（Expression）： ［アクセス］（Access）： | sindex == 10 書き込み | 値 10 が変数 sindex に書き込まれた場合にプログラムの実行を停止するアクセスブレーク（A）です。
［式］（Expression）： ［コマンド］（Command）： | measure_display MyStatus () | ターゲットプログラムが関数 measure_display に到達した場合に µVision デバッグ関数 MyStatus を実行する実行ブレーク（E）です。ターゲットプログラムの実行は、デバッグ関数 MyStatus が実行された後で再開されます。


µVision4 User's Guide (Japanese): ［コールスタック］（Call Stack）

［コールスタック］（Call Stack）

コールスタックボタン このウィンドウは、［デバッグ］（Debug）ツールバーまたは［表示］（View）→［コールスタック］（Call Stack）ウィンドウメニューから開きます。［コールスタック］（Call Stack）ウィンドウには、現在スタックにある関数および変数の名前、値、またはアドレスが表示されます。

  • アクティブオブジェクトを動的に表示します。
  • 関数のネストをトラックします。
  • 関数をダブルクリックすると、ソースコードにジャンプします。

  • コードをステップスルーすると、このウィンドウが更新されます。


µVision4 User's Guide (Japanese): ［コードカバレッジ］（Code Coverage）

［コードカバレッジ］（Code Coverage）

［コードカバレッジ］（Code Coverage）ウィンドウのボタン µVision4 のデバッガには、実行されたコードにマークを付けるコードカバレッジ機能があります。デバッグウィンドウ（エディタおよび［逆アセンブリ］（Disassembly））では、左の列にある実行済みのコードの行には緑色のマークが付きます。組み込みアプリケーションのテストでまだ実行されていないコードのセクションを判定する際には、この機能を使用できます。

［コードカバレッジ］（Code Coverage）ダイアログには、情報と統計が表示されます。COVERAGE デバッグコマンドを使用して、［コマンド］（Command）ウィンドウにこの情報を出力できます。


µVision4 User's Guide (Japanese): ［レジスタ］（Registers）

［レジスタ］（Registers）

プロジェクトワークスペースのボタン プロジェクトウィンドウには、デフォルトで［レジスタ］（Registers）ウィンドウが表示されます。

レジスタの値を変更するには、マウスで値をクリックして選択してから F2 を押すか、値をダブルクリックします。

［レジスタ］（Registers）ウィンドウには、マイクロコントローラの動作モードがすべて表示されます。現在アクティブなモードは、黒でハイライトされます。

現在使用しているレジスタは、青でハイライトされます。


µVision4 User's Guide (Japanese): ［逆アセンブリ］（Disassembly）ウィンドウ

［逆アセンブリ］（Disassembly）ウィンドウ

［逆アセンブリ］（Disassembly）ウィンドウのボタン ［逆アセンブリ］（Disassembly）ウィンドウには、アセンブリと組み合わせたソース、または単にアセンブリコードとしてのターゲットプログラムが表示されます。以前に実行された命令のトレース履歴は、［表示］（View）→［トレース］（Trace）から表示できます。トレース履歴を有効にするには、［表示］（View）→［トレース］（Trace）→［トレース記録を有効化］（Enable Trace Recording）を設定します。コンテキストメニューを使用すると、コマンドへのアクセスやオプションの設定をすばやく行うことができます。

［逆アセンブリ］（Disassembly）ウィンドウをアクティブウィンドウとして選択すると、プログラムのステップコマンドはすべて、プログラムソースラインではなく命令レベルで機能します。ツールバーのボタンまたはコンテキストメニューのコマンドを使用すると、テキストラインの選択やコードのブレークポイントの設定または変更ができます。

［デバッグ］（Debug）→［インラインアセンブリ...］（Inline Assembly...）ダイアログを使用してマイクロコントローラの命令を変更することができます。これにより、ミスを修正したり、デバッグ中のターゲットプログラムに一時的な変更を加えたりすることができます。


µVision4 User's Guide (Japanese): 実行プロファイラ

実行プロファイラ

µVision ARM シミュレータには、完全なプログラムコードのタイミング統計を記録する実行プロファイラが装備されています。これは、メニューコマンド［デバッグ］（Debug）→［実行プロファイリング］（Execution Profiling）を選択すると表示されます。コール（実行回数を表示）表示と時間（実行のタイミングを表示）表示のいずれかを選択できます。マウスで特定のエントリをポイントすると、詳細情報がツールヒントウィンドウに表示されます。

C ソースファイルのビュー。エディタのソースアウトライン機能を使用すれば、いくつかのソースコードラインを折りたたみ、このソースブロックの実行時間の概要を取得できます。

［逆アセンブリ］（Disassembly）ウィンドウのビュー。単一のアセンブラ命令の実行統計が表示されています。

注

  • 実行時間は、現在のクロック設定に基づいて計算されます。 さまざまな実行クロック値を使用してコードが複数回実行された場合は、誤った実行時間結果が生成されます。
  • 現在、実行プロファイラは、ARM シミュレータでのみ使用できます。


µVision4 User's Guide (Japanese): ［命令トレース］（Instruction Trace）ウィンドウ

［命令トレース］（Instruction Trace）ウィンドウ

命令トレースのボタン ［命令トレース］（Instruction Trace）ウィンドウは、［デバッグ］（Debug）ツールバーまたは［表示］（View）→［トレース］（Trace）メニューから表示します。

トレース記録を有効化する必要があります。

  • ［逆アセンブリ］（Disassembly）ウィンドウやコードの行にジャンプするには、任意の行をダブルクリックします。
  • ［フィルタ］（Filter）を使用すれば、混合モード、アセンブラモード、ソースモードを切り替えられます。
  • この機能は、［逆アセンブリ］（Disassembly）ウィンドウに関連付けて使用します。

  • この機能はシミュレータのためのもので、ターゲットのデバッグ中に動作します。
  • 現在、［命令トレース］（Instruction Trace）ウィンドウは、ARM デバイスのみに対して有効となっています。
  • 非 ARM デバイスの類似機能には、［逆アセンブリ］（Disassembly）ウィンドウを使用します。
  • 外観は、デバッグ環境のドライバ設定によって異なります。


µVision4 User's Guide (Japanese): ［ロジックアナライザ］（Logic Analyzer）

［ロジックアナライザ］（Logic Analyzer）

ロジックアナライザボタン µVision4 ロジックアナライザでは、指定する VTREG または変数の変更値がグラフィカルに表示されます。

表示モードを切り替えるには、コンテキストメニューを使用します。
ウィンドウからオブジェクトを削除するには、オブジェクトをハイライトして、Delete キーを押します。

［ロジックアナライザ］（Logic Analyzer）ウィンドウは、上枠に複数のボタンがあり、フィールドが表示されています。

［設定］（Setup）ダイアログでは、シグナル記録の変数を定義し、表示出力を設定します。 一部の構成設定は、コンテキストメニューからも変更できます。このメニューはシグナル名を右クリックすると開きます。

［エクスポート...］（Export...）では、外部ツールを使った解析のため、現在記録されているシグナルをタブ区切りのファイルに書き込みます。

時間のフィールドには以下の情報が表示されます。

  • ［最小時間］（Min Time）：シグナル記録バッファの開始時間です。
  • ［最大時間］（Max Time）：シグナル記録バッファの内容の終了時間です（通常、現在の CPU 時間と同じ）。
  • ［範囲］（Range）：現在の表示の時間範囲です。
  • ［グリッド］（Grid）：グリッドラインの時間範囲です。

［ズーム］（Zoom）のボタンにより表示の時間範囲が定義されます。［すべてズーム］（Zoom All）では、シグナル記録バッファの内容がすべて表示されます。［選択範囲にズーム］（Zoom Sel）では、Shift キーを押しながらマウスをドラッグすることで、表示を以前マークを付けた選択項目に変更します。

［コード表示］（Code Show）は、シグナル遷移の原因となったコードの位置でソースウィンドウまたは［逆アセンブリ］（Disassembly）ウィンドウを開きます。

［最小/最大を設定］（Setup Min/Max）では、シグナルの表示範囲を設定します。［自動］（Auto） では、現在の記録の値に基づいた最小値と最大値を設定します。［戻す］（Undo）では、［自動］（Auto）ボタンをクリックする前の設定に戻ります。

ロジックアナライザでは、以下のマウスコマンドとカーソルコマンドを使用して変更情報を確認できます。

  • マウスをクリックすることで、カーソルラインを設定します。カーソルラインは、選択したタイムスタンプですべての変数値を表示します。
  • 左または右のカーソルキーで、以前のまたは次のシグナル変更にカーソルラインを移動します。左枠でマウスをクリックすると、シグナルを選択できます。
  • マウスのカーソルをシグナル変更の付近に置くと（ロジックアナライザは最も近いシグナル変更へスナップします）、詳細情報が表示されます。情報ボックスには、現在のカーソルライン位置に基づいてシグナルデルタ値が表示されます。


µVision4 User's Guide (Japanese): 制約

制約

µVision4 ロジックアナライザでは、以下に関する変更を記録できます。

  • struct メンバを含むグローバルプログラム変数。
  • マイクロコントローラの I/O ピンを表す VTREG。
  • 外部イベントと内部イベントによってトリガされるペリフェラルレジスタ（以下の制約を参照して下さい）。

ロジックアナライザでは、合計 65536 フレーム（すべての項目に対し）を保持する FIFO バッファに最大 255 のさまざまな項目を定義したり、変更を記録したりすることができます。

以下の項目は、ロジックアナライザで記録できません。

  • 関数内で定義された自動変数
    自動変数はスタックまたは上書き可能なメモリ領域にあります。動的メモリ位置の変更を記録することはできません。
  • CPU レジスタの変更
    CPU レジスタは、読み出しブレークポイントまたは書き込みブレークポイントでトリガできません。したがって、そのような変更は記録できません。
  • タイマレジスタを表すペリフェラルレジスタ
    タイマ（または同様のペリフェラル）のインクリメントはシミュレートされません。代わりに、タイマによってトリガされるイベントのタイミングが計算されます。したがって、タイマのインクリメントは表示できません。
  • 通信ペリフェラルの I/O ピン
    UART、CAN、SPI、I²C 通信ペリフェラルの I/O ピンのトグルはシミュレートされません。通信ストリームのタイミングは仕様によるものとみなされます。代わりに、I/O ストリームは VTREG によって表されます。
  • メモリバスのシグナル
    µVision では、メモリ領域を含む CPU はシミュレートされますが、メモリバスシグナル（データバス、アドレスバス、RD、WR、ALE などの制御ライン）はシミュレートされません。したがって、メモリバスシグナルをロジックアナライザで表示することはできません。


µVision4 User's Guide (Japanese): 設定

設定

ロジックアナライザを設定するには、メニューコマンド［デバッグ］（Debug）→［ロジックアナライザ］（Logic Analyzer）を使用します。［コマンド］（Command）ウィンドウに LA コマンドを入力すると、シグナルを設定したり、すべてのシグナルを記録から削除することができます（「設定の詳細」も参照して下さい）。

［設定...］（Setup...）ダイアログでは、シグナル記録の変数を定義し、表示出力を設定します。

［現在のロジックアナライザシグナル］（Current Logic Analyzer Signals）には、現在の設定が表示されます。

  • ［新規］（New）（Insert キー）を使用すれば、シグナル記録の VTREG または変数を追加できます。［削除］（Delete）（Delete キー）を使用すれば、選択したシグナルが削除されます。
  • 次の設定を変更するには、このリストでシグナルの名前を選択します。

［シグナルの表示］（Signal Display）では、選択したシグナルの表示を設定します。

  • ［表示タイプ］（Display Type）では、グラフィカルな表示出力を［アナログ］（Analog）、［ビット（0 または 1）］（Bit (0 or 1)）、または［状態（シグナル遷移）］（State (signal transitions)）に設定します。
  • ［色］（Color）では、シグナルを表示する色を設定します。
  • ［16 進数表示］（Hexadecimal Display）をオンにすると、シグナル値は 16 進数値で表示されます。オフにすると、10 進数値で表示されます。

［範囲の表示］（Display Range）では、選択したシグナル値の範囲を設定します。

  • ［最小値］（Min）および［最大値］（Max）では、［アナログ］（Analog）表示タイプの表示範囲を選択します。範囲の選択には、10 進数または HEX 値を使用できます。

［式の表示（シグナルとマスク）>>シフト］（Display Formula（Signal & Mask）>> Shift）では、シグナル値から特定の表示用ビットを抽出します。

  • ［AND マスク］（And Mask）では、シグナル値を表示する AND マスクを指定します。
  • ［右シフト］（Shift Right）では、シグナル値表示の右シフト因数を指定します。

［エクスポート/インポート］（Export/Import）では、現在のロジックアナライザの設定の保存と復元を行うことができます。

  • ［シグナル定義のエクスポート］（Export Signal Definitions）では、シグナル定義の現在の設定を記述したファイルを作成します。
  • ［シグナル定義のインポート］（Import Signal Definitions）では、ファイルからシグナル定義の設定を復元します。


µVision4 User's Guide (Japanese): 設定の詳細

設定の詳細

ロジックアナライザを使用するには、シグナルが記録されるよう設定することが必要です。以下のセクションでは、詳細な情報と、［デバッグ］（Debug）→［ロジックアナライザの設定］（Setup Logic Analyzer）ダイアログの入力サンプルを示します。

アナログシグナル

表示タイプ［アナログ］（Analog）は通常、A/D または D/A 変換器 VTREG に使用されますが、変数の表示にも便利です（ロジックアナライザの tone.y1、AIN0、および Signal の表示タイプは［アナログ］（Analog）に設定されています）。

  • ［最小値］（Min Value）と［最大値］（Max Value）では、図に表示される 10 進数または 16 進数の最大値と最小値を選択します。
  • ［マスク］（Mask）では、表示されるべきではないビットを外すために使用する AND マスクを指定します。
  • ［右シフト］（Shift Right）では、入力値で除算を行うシフト要素を指定できます。

表示タイプが［Analog］（Analog）の入力サンプル：

Variable "tone.y1", Min Value: -32000, Max Value: 32000
Variable "Signal", Min Value: 0, Max Value: 0x2E0, Mask: 0xFFF00, Shift Right: 8

ビットシグナル

表示タイプ［ビット］（Bit）は、値を false（= 0）または true（= 1）に変換し、通常は単一のデジタル I/O ピンに使用されますが、変数にも適用されます（ロジックアナライザの CC1... の表示タイプは［ビット］（Bit）に設定されています）。効率よく入力するため、［設定］（Setup）ダイアログで、Identifier.Bitpos 形式の入力を、対応するマスクと右シフト値を持つ表示タイプであるビットに変換します。

  • ［マスク］（Mask）では、表示されるべきではないビットを外すために使用する AND マスクを指定します。
  • ［右シフト］（Shift Right）では、入力値で除算を行うシフト要素を指定できます。

表示タイプが［ビット］（Bit）の入力サンプル：

Variable "PORT0.2"
Variable "PORT2", Mask: 0x10, Shift Right: 4  (Note input is identical to PORT2.4)
Variable "flag", Mask: 0xFF, Shift Right: 0

状態図

表示タイプ［状態］（State）では、シグナル遷移が値の変化を表し、通常はバスシグナルを表示するために使用されます（ロジックアナライザの ADC... の表示タイプは［状態］（State）に設定されています）。

  • ［マスク］（Mask）では、表示されるべきではないビットを外すために使用する AND マスクを指定します。
  • ［右シフト］（Shift Right）では、入力値で除算を行うシフト要素を指定できます。

表示タイプが［ビット］（Bit）の入力サンプル：

Variable "DTMF_Input", Mask: 0xF0, Shift Right: 4
Variable "Keys", Mask: 0xFF, Shift Right: 0

注

  • ロジックアナライザの使用方法については、プログラムのサンプル（）やアプリケーションノート（を参照して下さい）。


µVision4 User's Guide (Japanese): ［メモリマップ］（Memory Map）

［メモリマップ］（Memory Map）

［メモリマップ］（Memory Map）ダイアログでは、ターゲットプログラムがデータ保存やプログラムの実行に使用するメモリ領域を指定できます。また、MAP コマンドを使用すれば、ターゲットプログラムのメモリマップを設定することもできます。

ターゲットアプリケーションをロードする際に、µVision4 によってアプリケーションのすべてのアドレス範囲が自動的にマップされます。通常、他のアドレス範囲をマップする必要はありません。メモリにマップされた I/O スペースなどの明白な変数宣言をすることなく、アクセスされたメモリ領域のみをマップする必要があります。

このダイアログはメニュー［デバッグ］（Debug）→［メモリマップ….］（Memory Map…）から開きます。

ターゲットプログラムを実行する際に、メモリマップを使用して、プログラムが無効なメモリ領域にアクセスしていないことを確認します。アクセス方法は、［読み出し］（Read）、［書き込み］（Write）、［実行］（Execute）、またはそれらの組み合わせを、メモリ領域ごとに指定できます。


µVision4 User's Guide (Japanese): ［メモリ］（Memory）ウィンドウ

［メモリ］（Memory）ウィンドウ

［メモリ］（Memory）ウィンドウボタン ［メモリ］（Memory）ウィンドウには、さまざまなメモリ領域の内容が表示されます。ウィンドウは、別々のページで 4 種類まで開くことができます。

コンテキストメニューでは、出力形式の選択やブレークポイントの設定、メモリの変更を行います。

［メモリ］（Memory）ウィンドウの［アドレス］（Address）フィールドでは、表示する領域の開始アドレスに任意の評価式を入力できます。メモリの内容を変更するには、値をダブルクリックします。これによって変数ボックスが開き、新しいメモリ値を入力できます。ターゲットプログラムの実行中にメモリウィンドウを更新するには、［表示］（View）→［ウィンドウを定期的に更新］（Periodic Window Update）を有効にします。

ウィンドウのロック/ロック解除 ウィンドウのロック/ロック解除 ロックボタンを使用すると、ウィンドウの内容を一時的にフリーズ/フリーズ解除することができます。

フォントの色は、アプリケーションでメモリがどのように使用されるかによって変化します。以下に例を示します。

  • 黒は、コードまたは初期化されていない RAM であるメモリ領域を示します。
  • 赤は、少なくとも 1 回はアクセスされたフラッシュまたは ROM の CONST データを示します。
  • 金色は、初期化された後にアプリケーションによってまだアクセスされていないメモリの位置を示します。
  • 緑色は、アプリケーションによってメモリ位置が少なくとも 1 回はアクセスされたことを示します。


µVision4 User's Guide (Japanese): ［コマンド］（Command）ウィンドウ

［コマンド］（Command）ウィンドウ

［コマンド］（Command）ウィンドウにコマンドを入力することによって、µVision4 デバッガと「対話」できます。このウィンドウには一般のデバッグ出力情報があり、変数やレジスタの表示および変更に使用する式を入力できます。また、デバッグ関数の呼び出しにも使用できます。


µVision4 User's Guide (Japanese): デバッグコマンド

デバッグコマンド

以下の表では、使用可能な µVision4 デバッグコマンドをすべてカテゴリ別に示しています。コマンドは、アルファベットの大文字で入力します。例えば、WatchSet コマンドは「WS」と入力します。

メモリコマンド：メモリの内容の表示と変更
ASM | インラインコードをアセンブルします。
DEFINE | µVision4 デバッグ関数と共に使用する入力済みシンボルを定義します。
Display | メモリの内容を表示します。
Enter | 指定されたメモリ領域に値を入力します。
EVALuate | 式を評価し、結果を出力します。
MAP | メモリ領域のアクセスパラメータを指定します。
Unassemble | プログラムのメモリを逆アセンブルします。
WatchKill | 指定した［ウォッチ］（Watch）ウィンドウですべてのウォッチ変数を削除します。
WatchSet | ［ウォッチ］（Watch）ウィンドウにウォッチ変数を追加します。
実行コマンド：プログラムコードの実行とステップスルー
Go | プログラムの実行を開始します。
Pstep | 命令をステップオーバーしますが、プロシージャまたは関数はステップインしません。
Ostep | 現在の関数からステップアウトします。
Tstep | 命令をステップオーバーし、関数をステップインします。
ブレークポイントコマンド：読み出し中、書き込み中、実行中のプログラムを停止します。
BreakDisable | 1 つまたは複数のブレークポイントを無効にします。
BreakEnable | 1 つまたは複数のブレークポイントを有効にします。
BreakKill | ブレークポイントのリストから 1 つまたは複数のブレークポイントを削除します。
BreakList | 現在のブレークポイントをリストします。
BreakSet | ブレークポイント式をブレークポイントのリストに追加します。
一般コマンド：より簡単で便利なデバッグのためのコマンドです。
ASSIGN | シリアルウィンドウの入力および出力ソースを割り当てます。
COVERAGE | コードカバレッジ統計を一覧表示します。
DEFINE BUTTON | ［ツールボックス］（Toolbox）のボタンを作成します。
DIR | シンボル名のディレクトリを生成します。
EXIT | µVision4 のデバッグモードを終了します。
INCLUDE | コマンドファイル内のコマンドを読み出して実行します。
KILL | µVision4 のデバッグ関数および［ツールボックス］（Toolbox）のボタンを削除します。
LOAD | CPU ドライバ、オブジェクトモジュール、HEX ファイルをロードします。
LOG | デバッグウィンドウでログファイルの作成とログステータスの照会を行い、ログファイルを閉じます。
MODE | PC COM ポートの通信速度、パリティ、およびストップビット数を設定します。
PerformanceAnalyze | パフォーマンスアナライザの設定や PA 情報を一覧表示します。
RESET | CPU、メモリマップの割り当て、パフォーマンスアナライザ、定義済み変数をリセットします。
SAVE | Intel HEX386 ファイルにメモリ範囲を保存します。
SCOPE | モジュールのアドレス割り当てとターゲットプログラムの関数を表示します。
SET | 定義済み変数の文字列値を設定します。
SIGNAL | シグナル関数のステータスを表示し、アクティブなシグナル関数を削除します。
SLOG | シリアルウィンドウでログファイルの作成とログステータスの照会を行い、ログファイルを閉じます。


µVision4 User's Guide (Japanese): デバッグ関数

デバッグ関数

デバッグ関数は、コマンドのプロンプトで関数名を引数と共に入力すると呼び出すことができます。以下に例を示します。

ListInfo (2)


µVision4 User's Guide (Japanese): 変数とレジスタ

変数とレジスタ

変数やレジスタ、メモリ位置は、［コマンド］（Command）ウィンドウで対話的に表示および変更できます。例えば、コマンドのプロンプトで以下のテキストコマンドを入力できます。

テキスト | 説明
R7 = 12 | 値 12 を レジスタ R7 に割り当てます。
CPSR | CPSR レジスタを表示します。
time.hour | Time 構造体のメンバ、hour を表示します。
time.hour++ | Time 構造体のメンバ、hour をインクリメントします。
index = 0 | 値 0 をインデックスに割り当てます。


µVision4 User's Guide (Japanese): ［パフォーマンスアナライザ］（Performance Analyzer）

［パフォーマンスアナライザ］（Performance Analyzer）

パフォーマンスアナライザのボタン µVision4 パフォーマンスアナライザでは、記録した実行時間が表示されます。µVision ARM シミュレータは、プログラムコード全体のタイミング統計を記録します。他の µVision シミュレータ（8051、251、166）は、指定する必要のあるアドレス範囲と関数の実行時間を記録します。

ARM アーキテクチャ用パフォーマンスアナライザ

µVision ARM シミュレータは、実行プロファイラによって収集した既知のアドレス範囲の情報を表示します。デバッグ情報（ARM RealView ツールセットの浮動小数点ライブラリなど）がない場合、アドレス範囲の情報は表示のリストに含まれません。

結果は、コール情報および時間情報と共に棒グラフで表示されます。

ラベル | 説明
［リセット］（Reset） | 記録された統計をクリアするボタンです。
［表示：］（Show:）ドロップダウンリスト | モジュールや関数によってグループ化された統計を表示するセレクタです。
［モジュール/関数］（Module/Function） | モジュールまたは関数の名前です。
［コール］（Calls） | 関数に対するコールの回数です。
［時間（秒）］（Time（Sec）） | 関数またはモジュールのアドレス範囲で経過した合計時間です。
［時間（%）］（Time（%）） | 指定したアドレス範囲または関数で経過した合計時間の割合です。

他のアーキテクチャ用のパフォーマンスアナライザ

他のアーキテクチャ (8051、251、166)では、［コマンド］（Command）ウィンドウの［設定...］（Setup...）ボタンまたは PA コマンドを使用してパフォーマンスアナライザを設定する必要があります。記録するには関数またはアドレス範囲を指定して下さい。

<unspecified> のアドレスの範囲は自動的に生成されます。指定の関数またはアドレス範囲に含まれないコードの実行にかかった時間を示します。

結果は棒グラフで表示されます。選択した関数やアドレス範囲について、コール回数、最小時間、最大時間、平均時間などの情報が表示されます。

ラベル | 説明
［最小時間］（min time） | 指定したアドレス範囲または関数で経過した最小時間です。
［最大時間］（man time） | 指定したアドレス範囲または関数で経過した最大時間です。
［平均時間］（avg time） | 指定したアドレス範囲または関数で経過した平均時間です。
［合計時間］（total time) | 指定したアドレス範囲または関数で経過した合計時間です。
% | 指定したアドレス範囲または関数で経過した合計時間の割合です。
［回数］（count) | 指定したアドレス範囲または関数が実行された合計回数です。


µVision4 User's Guide (Japanese): アプリケーションプログラムの実行

アプリケーションプログラムの実行

実行ボタン µVision4 では、以下のようなさまざまな方法でアプリケーションプログラムを実行できます。

  • ［デバッグ］（Debug）メニューとデバッグコマンド。
  • コンテキストメニューの［カーソルのラインまで実行］（Run till Cursor line）コマンド（エディタウィンドウまたは［逆アセンブリ］（Disassembly）ウィンドウ）。

  • ［コマンド］（Command）ウィンドウページでは、Go、Ostep、Pstep、Tstep の各コマンドを使用できます。


µVision4 User's Guide (Japanese): シリアルウィンドウ

シリアルウィンドウ

シリアルウィンドウボタン µVision4 には、シリアル入出力のためのデバッグ（printf）ビューアなどのシリアルウィンドウがあります。これにより、外部ハードウェアを用意しなくても CPU の UART のシミュレートを行うことができます。

シリアル出力は、［コマンド］（Command）ウィンドウで、ASSIGN を使用して PC COM ポートに割り当てることもできます。

シリアルウィンドウに入力した文字が、シミュレートされた CPU に入力される一方で、シミュレートされた CPU からのシリアルデータ出力がこのウィンドウに表示されます。

デバッグ（printf）ビューアは、ターゲットハードウェア上でも動作し、リアルタイムエージェント（RT エージェント）から受信したシリアルデータを表示します。また、Cortex-Mx マイクロコントローラでは、計装トレースマクロセル（ITM）のデータを printf で表示します。

このウィンドウに入力されたデータは、RT エージェントに送信されるか、またはいくつかの特別なターゲットコード（CMSIS を参照）で Cortex-Mx に送信されます。

高度なシリアルウィンドウの機能にアクセスするには、コンテキストメニューを呼び出します。

ユーザビリティ全般の向上
  • シリアルウィンドウのテキストは、ファイルまたはクリップボードに保存できます。
    ASCII モード、HEX モード、混合モードでは、表示可能な実際のウィンドウレイアウトが使用されます。
    端末モードでは、コントロールシーケンスのフォーマットされた表示が保存されます。
  • 最後の行が表示可能な限り、テキストは自動的にスクロールします。
  • テキストの読み出しが容易に行えるよう、スクロールが開始するとすぐに自動スクロールは停止します。
［端末モード］（Terminal Mode）
テキストのフォーマットとカーソルキーの端末制御シーケンスを使用できます。

これらにより、シリアルウィンドウに送信されるテキストの表示が向上します。また、メニューの実装やコマンドラインの編集、コマンド履歴が改善されます。

使用可能な制御シーケンスは、このページの終わりにある表に一覧表示されています。

［ASCII モード］（ASCII Mode）
印刷可能な文字はすべて表示されます。印刷できない文字は、空白(' ')で表示されます。
［HEX モード］（HEX Mode）
すべての文字は 16 進数で表示されます。
混合モード
すべての文字は、16 進数と ASCII 文字で表示されます。印刷できない文字は、ドット('.')で表示されます。
［設定］（Settings）→［CR を LF に追加］（Add CR to LF）
受信した各改行にキャリッジリターンを追加します。この設定はデフォルトで有効です。

ANSI VT100 端末シーケンス

シーケンス | 説明
 | ターゲット ==> µVision4
CR ('\r') | キャリッジリターン
LF ('\n') | 改行（ラインフィード）
TAB ('\t') | タビュレーター
BS (0x08) | バックスペース
BEL (0x07) | ベル
<ESC>[C | カーソル（位置）を 1 つ右へ移動
<ESC>[D | カーソル（位置）を 1 つ左へ移動
<ESC>[K | カーソルの右にある行を削除
<ESC>[J | 画面をクリア
<ESC>[yy;xxf | カーソルを 行 yy、列 xx に設定
 | µVision4 ==> ターゲット
<ESC>[A | 上矢印キー
<ESC>[B | 下矢印キー
<ESC>[C | 右矢印キー
<ESC>[D | 左矢印キー

例

// Clear screen and set cursor home
void ClearScreen(void)
{
        printf("%c[1;1f%c[J", 27, 27);
}

// set cursor to position (x, y)
void gotoxy(int x, int y)
{
        printf("%c[%i;%if", 27, (signed int)y, (signed int)x);
}


µVision4 User's Guide (Japanese): デバッグの開始

デバッグの開始

デバッグの開始/停止ボタン µVision4 のデバッグモードは、メニューコマンド［デバッグ］（Debug）→［デバッグセッションの開始/停止］（Start/Stop Debug Session）から起動します。［ターゲットのオプション］（Options for Target）-［デバッグ］（Debug）の設定に応じて、µVision4 デバッガはアプリケーションプログラムをロードし、スタートアップコードを実行します。

µVision4 では、エディタ画面のレイアウトが保存され、最後のデバッグセッションの画面レイアウトが復元されます。プログラムの実行が停止すると、ソーステキストを含むエディタウィンドウが開きます。または、［逆アセンブリ］（Disassembly）ウィンドウに CPU の命令が表示されます。

次に実行可能なステートメントは黄色い矢印で示されます。

デバッグ中も、ほとんどの編集機能を使用できます。例えば、検索コマンドを使用したり、プログラムエラーを修正したりすることができます。アプリケーションのプログラムソーステキストは、同じウィンドウに表示されます。

µVision4 デバッグモードは、以下の点で編集モードと異なります。

  • ［デバッグ］（Debug）メニューとデバッグコマンドは使用可能です。その他のデバッグのウィンドウおよびダイアログについては、以下で説明します。
  • プロジェクトのストラクチャおよびツールパラメータは変更できません。すべてのビルドコマンドは無効です。


µVision4 User's Guide (Japanese): ［シンボル］（Symbols）ウィンドウ

［シンボル］（Symbols）ウィンドウ

［シンボル］（Symbols）ウィンドウボタン ［表示］（View）→［シンボルウィンドウ］（Symbols Window）には、デバッガで使用可能なシンボルの情報が表示されます。ウィンドウには以下の情報が表示されます。

  • シミュレータ VTREG：I/O ピン、UART 通信、CAN トラフィックなどのシミュレートされたリソースにアクセスします。
  • ペリフェラル SFR：デバイスの特殊機能レジスタがペリフェラルにアクセスします。
  • アプリケーションのシンボル：変数、関数、パラメータなどのプログラムシンボルにアクセスします。

［シンボル］（Symbols）ウィンドウの項目は、［メモリ］（Memory）ウィンドウのアドレスフィールドや［ウォッチ］（Watch）ウィンドウなど、他のデバッグウィンドウにドラッグアンドドロップすることができます。 マウスのポインタを変数の上に置くと、現在の値が表示されます。

ウィンドウのコンテキストメニューにより、［シンボル］（Symbols）ウィンドウの［アドレス］（Address）と［タイプ］（Type） の情報を有効にすることができます。［大文字と小文字を区別］（Case Sensitive）は、検索のマスクが大文字と小文字を区別するかしないかを指定します。

［マスク］（Mask）により、シンボル名の一致に使用されるマスクが指定されます。マスクには、大文字と小文字を区別させることができ、また、英数字の他に以下のマスク文字を使用できます。

  • # は数字（0 ～ 9）と一致します。
  • $ は 1 文字と一致します。
  • * は 0 文字以上の文字と一致します。

シンボル名のマスクの例をいくつか次の表に示します。

マスク | 一致するシンボル名
* | どのシンボルにも一致します。シンボルブラウザのデフォルトのマスクです。
*#* | 任意の位置に 1 つの数を格納します。
_a$#* | …下線の次に文字 a、任意の 1 文字、1 つの数字が続き、ゼロ個以上の文字で終わります。例えば、_ab1、_a10value などです。
_*ABC | …下線の次にゼロ個以上の文字が続き、ABC で終わります。


µVision4 User's Guide (Japanese): システムビューア

システムビューア

µVision4 システムビューアのウィンドウには、ペリフェラル機能を制御するためにプロセッサが読み書き可能なペリフェラルレジスタが表示されます。

ペリフェラルレジスタの状態、内容、名前を表示する機能があります。

システムビューアはレジスタのアドレスに関連付けられていませんが、どのメモリアドレスにもアクセスできます。

また、µVision4 では、ユーザ独自のビューをシステムに定義する方法があります。

システムビューアのボタン システムビューアは、［デバッグ］（Debug）ツールバーから起動するか、［表示］（View）→［システムビューア］（System Viewer）メニューから起動します。

  • 必要に応じて、ヘッダファイルの変更や、最大 100 個のメモリアドレスの追加や削除が可能です。
  • プロパティを追加すれば、データの概要やペリフェラルの説明などの補足情報を表示できます。
  • 実行時にプロパティの値を変更できます。このためには、プロパティをクリックして新規の値を入力します。
  • プロパティの値は、シミュレータまたはターゲットハードウェアから更新されます。
  • プロパティへの追加情報を確認できます。
    （赤で囲んだ部分をご覧下さい。）


µVision4 User's Guide (Japanese): ［ツールボックス］（Toolbox）

［ツールボックス］（Toolbox）

［ツールボックス］（Toolbox）には、ユーザが構成可能なボタンが含まれています。［ツールボックス］（Toolbox）のボタンをクリックすると、関連付けられたデバッグコマンドまたはデバッグ関数が実行されます。 ［ツールボックス］（Toolbox）のボタンは、テストプログラムの実行中を含め、いつでも実行できます。

［ツールボックス］（Toolbox）のボタンは、［コマンド］（Command）ウィンドウの DEFINE BUTTON コマンドで定義できます。

構文は以下のとおりです。

>DEFINE BUTTON "button_label", "command"

button_label | ［ツールボックス］（Toolbox）のボタンに表示する名前です。
command | そのボタンを押すと実行される µVision4 のコマンドです。

ボタンは既存のボタンラベルを使用して再定義できます。

以下の例は、上の［ツールボックス］（Toolbox）のボタンを作成するために使用された定義コマンドです。

>DEFINE BUTTON "Decimal Output", "radix=0x0A"
>DEFINE BUTTON "Hex Output", "radix=0x10"
>DEFINE BUTTON "My Status Info", "MyStatus ()" /* call debug function */
>DEFINE BUTTON "Analog1 0..3V", "analog0 ()" /* call signal function */
>DEFINE BUTTON "Show R15", "printf (\"R15=%04XH\\n\")"

注

  • 上の最後のボタン定義で定義された printf コマンドでは、ネストされた文字列が使用されています。形式文字列の二重引用符（"）とバックスラッシュ（\）文字は、構文エラーを避けるために \ でエスケープする必要があります。

［ツールボックス］（Toolbox）のボタンは、KILL BUTTON コマンドとボタン番号で削除できます。以下に例を示します。

>Kill Button 5 /* Remove 'Stop Analog1' button */

注

  • ［ツールボックス］（Toolbox）の［ウィンドウを更新］（Update Windows）ボタンは自動的に作成され、削除できません。［ウィンドウを更新］（Update Windows）ボタンを使用すると、複数のデバッグウィンドウをプログラム実行中に更新できます。


µVision4 User's Guide (Japanese): ［ウォッチ］（Watch）ウィンドウ

［ウォッチ］（Watch）ウィンドウ

［ウォッチ］（Watch）ウィンドウボタン ［ウォッチ］（Watch）ウィンドウでは、プログラム変数の表示や変更を行ったり、現在の関数の呼び出しネストを一覧表示したりすることができます。［ウォッチ］（Watch）ウィンドウの内容は、プログラムの実行が停止すると自動的に更新されます。ターゲットプログラムの実行中に変数値を更新するには、［表示］（View）→［ウィンドウを定期的に更新］（Periodic Window Update）を有効にします。

変数値

［ローカル］（Locals）ページには、現在の関数のローカル関数の変数がすべて表示されます。［ウォッチ］（Watch）ページには、ユーザ指定のプログラム変数が表示されます。

変数は、以下の 3 つの方法で追加できます。

  • マウスでテキスト <type F2 to edit> をクリックし、少し待ちます。もう一度クリックするか、F2 キーを押すと、編集モードが起動し、変数の追加が可能となります。既存の変数も同じ方法で変更することができます。
  • エディタウィンドウで、マウスを右クリックしてコンテキストメニューを開き、［ウォッチウィンドウに追加］（Add to Watch Window）を選択します。カーソル位置の下にある変数名が自動的に選択されます。または、このコマンドを選択する前に、式にマークを付けておくこともできます。
  • 変数名を入力するには、［コマンド］（Command）ウィンドウで、WatchSet コマンドを使用します。

変数値を変更するには、マウスクリックで値を選択し、少し待ちます。もう一度マウスをクリックするか、F2 キーを押すと、編集モードが起動します。

変数を削除するには、その行をクリックし、Delete キーを押すか、WatchKill を使用します。

関数の呼び出しネスト

［コールスタック］（Call Stack）ページには、現在の関数の呼び出しネストが表示されます。［コールスタック］（Call Stack）ページで行をダブルクリックすることで、エディタウィンドウを呼び出すことができます。


µVision4 User's Guide (Japanese): デバッグのウィンドウおよびダイアログ

デバッグのウィンドウおよびダイアログ

µVision4 のデバッグモードには、さまざまなデバッグのウィンドウおよびダイアログが用意されています。

  • ［ブレークポイント］（Breakpoints）ダイアログでは、プログラム実行の停止条件を定義できます。
  • ［コードカバレッジ］（Code Coverage）ウィンドウでは、実行されたプログラム部分および実行されていないプログラム部分の実行統計情報が提供されます。
  • ［レジスタ］（Registers）ウィンドウでは、内容の表示と変更が可能です。
  • ［逆アセンブリ］（Disassembly）ウィンドウでは、アセンブリ命令のレベルでプログラムのテストを実行できます。
  • ［ロジックアナライザ］（Logic Analyzer）には、ペリフェラル、レジスタ、変数の値の変化がグラフィカルに表示されます。
  • ［メモリ］（Memory）ウィンドウでは、メモリの内容のレビューや変更が可能です。
  • ［メモリマップ］（Memory Map）ダイアログでは、データ変数およびプログラムコードのアプリケーションによって使用されるメモリ領域を指定できます。
  • ［コマンド］（Command）ウィンドウでは、コマンド入出力ウィンドウを使用できます。
  • 実行プロファイラには時間統計と呼び出し統計が表示され、エディタウィンドウと［逆アセンブリ］（Disassembly）ウィンドウに統合されます。
  • ［パフォーマンスアナライザ］（Performance Analyzer）ウィンドウでは、実行時間統計が表示されます。
  • シリアルウィンドウでは、アプリケーションプログラムとの UART 通信が表示されます。
  • ［シンボル］（Symbols）ウィンドウでは、アプリケーションプログラムのデバッグシンボルの情報が表示されます。
  • ［ツールボックス］（Toolbox）では、デバッグコマンドとデバッグ関数の実行に使用するボタンを設定できます。
  • ［ウォッチ］（Watch）ウィンドウでは、プログラム変数の表示や変更を行ったり、現在の関数の呼び出しネストを一覧表示したりすることができます。
  • ［コールスタック］（Call Stack）ウィンドウでは、プログラムのコールツリーを参照できます。
  • ［命令トレース］（Instruction Trace）ウィンドウには、命令の履歴が表示されます。
  • システムビューアには、ペリフェラルレジスタが表示されます。


µVision4 User's Guide (Japanese): ビットアドレス

ビットアドレス

ビットアドレスは、メモリ内のビットを表します。これには、特殊機能レジスタのビットが含まれます。ビットアドレスの構文は、expression . bit_position です。

例
R6.2                                      /* Bit 2 of register R6 */
0xFD00.15                                 /* Value of the 166 bit space */


µVision4 User's Guide (Japanese): 定数

定数

µVision4 では、10 進数定数、16 進数定数、8 進数定数、2 進数定数、浮動小数点定数、文字定数、文字列定数を使用できます。

2 進数定数、10 進数定数、16 進数定数、および 8 進数定数

デフォルトで、数値定数は 10 進数定数または底 10 の数です。10 を入力した場合、これは数 10 であり、16 進数値 10h ではありません。次の表は、底 2（2 進数）底 8（8 進数）底 10（10 進数）、底 16（16 進数）の定数を入力するのに必要な接頭文字と接尾文字を示しています。

底 | 接頭文字 | 接尾文字 | 例
2 進数： | なし | Y または y | 11111111Y
10 進数： | なし | T またはなし | 1234T または 1234
16 進数： | 0x または 0X | H または h | 1234H または 0x1234
8 進数： | なし | Q、q、O、または o | 777q、777Q、または 777o

次に、数値定数に関する注意事項をいくつか示します。

  • 数は、読み出しやすいようにドル記号（"$"）を使用してグループ化されている場合があります。例えば、1111$1111y は 11111111y と同じです。
  • 16 進数定数は、定数の最初の桁が A ～ F の場合、先頭文字ゼロ（0）で始まる必要があります。
  • デフォルトで、数値定数は 16 ビットの値です。末尾に L を付けることで 32 ビット値にすることができます。例えば、0x1234L、1234L、1255HL などです。
  • 16 ビットの整数の範囲より大きな数が入力された場合、数は自動的に 32 ビットの整数にプロモートされます。

浮動小数点定数

浮動小数点定数は、次のいずれかの形式で入力します。

数 . 数

数 e[+|-] 数

数 . 数 [e[+|-] 数]

例えば、4.12、0.1e3、12.12e–5 のようになります。C プログラミング言語とは異なり、浮遊点数は小数点の前に数値が必要です。例えば、.12 とすることはできず、0.12 のように入力する必要があります。

文字定数

文字定数に関する C プログラミング言語のルールは、µVision4 デバッガにも適用されます。例えば、次の文字定数はすべて有効です。

'a', '1', '\n', '\v', '\x0FE', '\015'

また、次の表に示すエスケープシーケンスがサポートされています。

シーケンス | 説明
\\ | バックスラッシュ文字（\）。
\" | 二重引用符。
\' | 一重引用符。
\a | アラート、ベル。
\b | バックスペース。
\f | 改ページ。
\n | 新しい行。
\r | キャリッジリターン。
\t | タブ。
\0nn | 8 進数定数。
\Xnnn | 16 進数定数。

文字列定数

文字列に関する C プログラミング言語のルールは、µVision4 にも適用されます。以下に例を示します。

"string\x007\n"                      "value of %s = %04XH\n"

場合によっては、ネストされた文字列が必要なことがあります。例えば、ネストされた文字列の二重引用符はエスケープする必要があります。以下に例を示します。

"printf (\"hello world!\n\")"

C プログラミング言語とは異なり、連続する文字列は 1 つの文字列に連結されません。例えば、"string1+" "string2" は 1 つの文字列に連結されません。


µVision4 User's Guide (Japanese): µVision4 と C の相違点

µVision4 と C の相違点

µVision4 の式と C プログラミング言語の式には以下のような違いがあります。

  • µVision4 では、シンボル名とコマンド名の大文字と小文字が区別されません。
  • µVision4 では、char * や int * のような型付きポインタへの式の変換はサポートされていません。ポインタ型は、ターゲットプログラムのシンボル情報から取得されるため、作成することはできません。
  • 関数呼び出しは、µVision4 の［コマンド］（Command）ウィンドウに入力します。ターゲットの関数をコマンドラインから呼び出すことはできません。
  • µVision4 では、構造体の代入はサポートされていません。


µVision4 User's Guide (Japanese): 式の例

式の例

出力ウィンドウの［コマンド］（Command）ページに次の式が入力されたとします。それぞれの例には、該当するすべての出力が含まれています。すべての例で MEASURE サンプルプログラムが使用されています。

定数
>0x1234                               /* Simple constant */
0x1234                                /* Output */
>EVAL 0x1234
4660T 11064Q 1234H '...4'             /* Output in several number bases */
レジスタ
>R1                                   /* Interrogate value of register R1 */
0x000A                                /* Address from ACC = 0xE0, mem type = D: */
>R1 = --R7                            /* Set R1 and R7 equal to value R7-1 */
関数シンボル
>main                                 /* Get address of main() from MEASURE.C */
0x00233DA                             /* Reply, main starts at 0x233DA */

>&main                                /* Same as before */
0x00233DA

>d main                               /* Display: address = main */
0x0233DA: 76 E2 00 04 76 E3 00 04 - 66 E3 FF F7 E6 B6 80 00 v...v...f......
0x0233EA: E6 B7 00 00 E6 5A 40 00 - E6 D8 11 80 E6 2A 3C F6 .....Z@......*<
0x0233FA: E6 28 3C F6 E6 CE 44 00 - BF 88 E6 A8 40 00 BB D8 .(<...D.....@..
0x02340A: E6 F8 7A 40 CA 00 CE 39 - E6 F8 18 44 CA 00 CE 39 ..z@...9...D...
アドレス使用例
>&\measure\main\cmdbuf[0] + 10                         /* Address calculation */
0x23026

>_RBYTE (0x233DA)                                      /* Read byte from code address 0x233DA */
0x76 /* Reply */
シンボル出力例
>dir \measure\main                                     /* Output symbols from main() in module MEASURE */
  R14 idx . . . uint                                   /* Output */
  R13 i . . . uint
  0x0002301C cmdbuf . . . array[15] of char
プログラムカウンタ例
>$ = main                                             /* Set program counter to main() */
>dir                                                  /* points to local mem sym. from main() */
    R14 idx . . . uint                                /* Output */
    R13 i . . . uint
    0x0002301C cmdbuf . . . array[15] of char
プログラム変数例
>cmdbuf                                               /* Interrogate address from cmdbuf */
0x0002301C                                            /* Output of address due to aggregate type (Array)*/
>cmdbuf[0]                                            /* Output contents of first array element */
0x00
>i                                                    /* Output contents from i */
0x00
>idx                                                  /* Output contents from idx */
0x0000
>idx = DPP2                                           /* Set contents from index equal to register DPP2 */
>idx                                                  /* Output contents from idx */
0x0008
行番号の例
>\163                                                 /* Address of the line number #104 */
0x000230DA                                            /* Reply */
>\MCOMMAND\91                                         /* A line number of module MCOMMAND */
0x000231F6
演算子の例
>--R5                                                 /* Auto-decrement also for CPU registers */
0xFE
>mdisplay                                             /* Output a PUBLIC bit variable */
0
>mdisplay = 1                                         /* Change */
>mdisplay                                             /* Check result */
1
構造体の例
>save_record[0]                                       /* Address of a record */
0x002100A
>save_record[0].time.hour = DPP3                      /* Change struct element of records */

>save_record[0].time.hour /* Interrogation */
0x03
µVision4 デバッグ関数呼び出しの例
>printf ("µVision4 is coming!\n")                     /* String constant within printf() */
µVision4 is coming!                                   /* Output */
>_WBYTE(0x20000, _RBYTE(0x20001))                     /* Read & Write Memory Byte */
>                                                     /* example useful in debug functions */
>interval.min = getint ("enter integer: ");
完全修飾シンボルの例
>--\measure\main\idx /* Auto INC/DEC valid for qualified symbol */
0xFFFF


µVision4 User's Guide (Japanese): 行番号

行番号

行番号は、コンパイラまたはアセンブラによって生成され、ソースレベルのデバッグを可能にします。行番号は、関連付けられているプログラムコードのソースモジュールの物理アドレスを指定します。行番号は、コードアドレスを表すため、µVision4 では式内で使用できます。行番号の構文を次の表に示します。

行番号シンボル | コードアドレス...
\LineNumber | ... 現在のモジュールの行番号 LineNumber。
\ModuleName\LineNumber | ... ModuleName の行番号 LineNumber。
例
\measure\108                               /* Line 108 in module MEASURE */
\143                                       /* Line 143 in the current module */


µVision4 User's Guide (Japanese): 演算子

演算子

µVision4 では、C プログラミング言語のすべての演算子がサポートされます。演算子は、等価の C 言語演算子と同じ意味を持ちます。


µVision4 User's Guide (Japanese): ペリフェラル変数

ペリフェラル変数

µVision4 は、プロジェクトで選択した CPU に応じてシンボル数を自動的に定義します。定義されるシンボルには、ペリフェラルレジスタ（または特殊機能レジスタ、SFR）と仮想シミュレーションレジスタ（VTREG）の 2 種類があります。ペリフェラルへの入力の自動化に使用できるデバッグ関数は、シミュレーションスクリプトのテンプレートを参照してください。

関連項目

  • I/O ポート
  • シリアルポート

ペリフェラルレジスタ

µVision4 は、ペリフェラルレジスタのシンボルを定義します。使用可能なペリフェラルレジスタシンボルは、選択したマイクロコントローラによって異なります。ペリフェラルレジスタシンボルにはアドレスが関連付けられており、このシンボルを式で使用することができます。

仮想シミュレーションレジスタ（VTREG）

仮想シミュレーションレジスタ（VTREG）により、入力と出力に対して CPU のシミュレートされたピンを使用できます。VTREG は、パブリックシンボルではなく、CPU のメモリ空間にも存在しません。VTREG は式で使用できますが、VTREG の値と利用状況は CPU に依存します。VTREG を使用すると、ハードウェアのシミュレートされたピンから CPU に送られるシグナルを指定できます。DIR VTREG コマンドを使用してこれらのシンボルを列挙できます。

次の表に、VTREG シンボルを示します。実際に使用可能な VTREG シンボルは、選択した CPU によって異なります。

VTREG | 説明
ADx | 通常、A/D コンバータ入力であるチップ上のアナログ入力ピン。ターゲットプログラムは、ユーザが ADx VTREG に書き込んだ値を読み出すことができます。
DAx | チップ上のアナログ出力ピン。この値は通常、D/A コンバータの出力を反映しています。
xxVREF | 電圧参照ピンの入力。
PORTx | チップ上のポートの I/O ピンのグループ。例えば、PORTA は PORTA のすべてのピンを参照します。これらのレジスタによってポート I/O をシミュレートできます。
SxIN | シリアルインタフェース x の入力バッファ。ユーザは 8 ビットまたは 9 ビットの値を SxIN に書き込むことができます。ターゲットプログラムによって読み出されます。SxIN を読み出して、入力バッファで別の文字を受け入れる準備が完了するタイミングを決定できます。値 0xFFFF は、前の値が完全に処理され、新しい値を書き込むことができるというシグナルを送信します。
SxOUT | シリアルインタフェース x の出力バッファ。µVision4 は 8 ビットまたは 9 ビットの値を（プログラムされたとおりに）SxOUT VTREG にコピーします。
SxTIME | シリアルインタフェース x の通信速度タイミングを定義します。SxTIME が 1 の場合、µVision4 はプログラムされた通信速度を使用してシリアルインタフェースのタイミングをシミュレートします。SxTIME が 0（デフォルト値）の場合、プログラムされた通信速度タイミングは無視され、シリアル送信時間は即時に設定されます。
CLOCK | シミュレートされた CPU の実際のクロック周波数。
XTAL | シミュレートされた CPU の水晶周波数。［オプション］（Options）→［ターゲット］（Target）ダイアログで定義されます。

注

  • VTREG を使用して、割り込み、タイマといった内部ペリフェラルへのインタフェースなどの、外部入出力をシミュレートできます。PORT3（8051 ドライバ上）のビット 2 を切り替えた場合、CPU ドライバは外部割り込み 0 をシミュレートします。


µVision4 User's Guide (Japanese): プログラム変数（シンボル）

プログラム変数（シンボル）

µVision4 では、名前を入力するだけで、ターゲットプログラムの変数やシンボルにアクセスできます。変数名やシンボル名は、数値やアドレスを表します。シンボルは、プログラムで使用する名前と同じ名前をデバッガで使用できるようにすることで、デバッグプロセスを簡略化します。

ターゲットプログラムモジュールをロードすると、シンボル情報がデバッガにロードされます。シンボルには、ローカル変数（関数内で宣言されたもの）、関数名、行番号情報が含まれます。［ターゲットのオプション］（Options for Target）→［出力］（Output）→［デバッグ情報］（Debug Information）を有効にする必要があります。デバッグ情報がないと、µVision4 はソースレベルのシンボリックデバッグを実行できません。

モジュール名

モジュール名とは、ターゲットプログラムのすべてまたは一部を構成するオブジェクトモジュールの名前です。各モジュールには、ソースレベルのデバッグ情報とシンボリック情報が保存されます。

モジュール名は、ソースファイル名から派生します。ターゲットプログラムが MCOMMAND.C という名前のソースファイルで構成され、C コンパイラが MCOMMAND.OBJ というオブジェクトファイルを生成する場合、モジュール名は MCOMMAND となります。

シンボル命名規則

シンボルには次の規則が適用されます。

  • シンボルの大文字と小文字は区別されません。つまり、SYMBOL は Symbol と等しく処理されます。
  • シンボル名の先頭の文字は 'A' ～ 'Z'、'a' ～ 'z'、'_'、または '?' でなければなりません。
  • 後続の文字には 'A' ～ 'Z'、'a' ～ 'z'、'0' ～ '9'、'_'、または '?' を使用できます。

注

  • µVision4 で疑問符（"?"）で始まるシンボルを持つ三項演算子（"?:"）を使用する場合、三項演算子とシンボル名の間にスペースを挿入する必要があります。例えば、R5 = R6 ? ?symbol : R7 のようになります。

完全修飾シンボル

シンボルが定義されているモジュールの名前や関数の名前を含む完全修飾名を使用して、シンボルを入力できます。完全修飾シンボル名は、次のコンポーネントで構成されます。

  • ModuleName：シンボルが定義されているモジュールを指定します。
  • LineNumber：モジュールの特定の行のために生成されたコードのアドレスを指定します。
  • FunctionName：ローカルシンボルが定義されているモジュールの関数を指定します。
  • SymbolName：シンボル名を指定します。

このコンポ－ネントは、次の表のように連結できます。

シンボルコンポーネント | 完全修飾シンボル名が指定するもの
\ModuleName\LineNumber | ... ModuleName の行番号 LineNumber。
\ModuleName\FunctionName | ... ModuleName の FunctionName 関数。
\ModuleName\SymbolName | ... ModuleName のグローバルシンボル SymbolName。
\ModuleName\FunctionName\SymbolName | ... ModuleName の FunctionName 関数のローカルシンボル SymbolName。

次に、完全修飾シンボル名の例を示します。

完全修飾シンボル名 | 指定するもの
\MEASURE\clear_records\idx | ... MEASURE モジュールの clear_records 関数のローカルシンボル idx。
\MEASURE\MAIN\cmdbuf | ... MEASURE モジュールの MAIN 関数のローカルシンボル cmdbuf。
\MEASURE\sindx | ... MEASURE モジュールの sindex シンボル。
\MEASURE\225 | ... MEASURE モジュールの行番号 225。
\MCOMMAND\82 | ... MCOMMAND モジュールの行番号 82。
\MEASURE\TIMER0 | ... MEASURE モジュールの TIMER0 シンボル。このシンボルには関数またはグローバル変数を使用できます。

非修飾シンボル

シンボルは、参照する変数または関数の名前のみを使用して入力できます。これらのシンボルは、完全に修飾されておらず、一致するシンボル名が見つかるまで多数のテーブルで検索されます。この検索は、次のように実行されます。

  1. CPU のレジスタシンボル（R0 – R15、RL0 – RH7、DPP0 – DPP3）。
  2. ターゲットプログラムの現在の関数のローカル変数。現在の関数は、プログラムカウンタの値によって決定されます。
  3. 現在のモジュールの静的変数。現在の関数と同様に、現在のモジュールはプログラムカウンタの値によって決定されます。現在のモジュールのシンボルは、モジュール内（ただし関数の外）で宣言された変数を表します。
  4. ターゲットプログラムのグローバルまたはパブリックシンボル。µVision4 によって定義されたペリフェラルレジスタシンボルは、パブリックシンボルと見なされ、検索対象になります。
  5. µVision4 DEFINE コマンドを使用して作成されたシンボル。これらのシンボルは、デバッグで使用され、ターゲットプログラムには含まれません。
  6. デバッガの特性を監視および変更するシステム変数。これらはターゲットプログラムの一部ではありません。詳細については、「システム変数」を参照して下さい。
  7. CPU ドライバによって定義された CPU ドライバシンボル（VTREG）。VTREG シンボルの説明については、「ペリフェラル変数」を参照して下さい。

注

  • ユーザ関数またはシグナル関数を作成すると、シンボルの検索順序は変更されます。µVision4 では、まずユーザ関数またはシグナル関数で定義されたシンボルのテーブルが検索されます。次に、上のリストが検索されます。ユーザ関数とシグナル関数の詳細については、「デバッグ関数」を参照して下さい。
  • 逆引用符（‘）が先頭に付いたリテラルシンボルによって、検索順序が変更されます。CPU レジスタシンボルの代わりに CPU ドライバシンボル（VTREG）が検索されます。

リテラルシンボル

逆引用符（‘）を使用してリテラルシンボル名を取得します。次の項目にアクセスする際はリテラルシンボルを使用する必要があります。

  • 定義済みの予約されているワードと同一のプログラム変数またはシンボル。予約されているワードとは、µVision4 デバッグコマンドとオプション、データ型名、CPU レジスタ名、アセンブラニーモニックです。
  • プログラム変数名と同一である CPU ドライバシンボル（VTREG）。

リテラルシンボル名が指定されると、前述の非修飾シンボルの検索順序は変更されます。リテラルシンボルの場合、CPU レジスタシンボルの代わりに CPU ドライバシンボル（VTREG）が検索されます。

リテラルシンボルの使用例

プログラムで R5 という変数を定義し、これにアクセスしようとする場合、実際は R5 CPU レジスタにアクセスすることになります。R5 変数にアクセスするには、変数名に逆引用符の接頭文字を使用する必要があります。

R5 レジスタへのアクセス R5 変数へのアクセス
>R5 = 121

>‘R5 = 212

プログラムに clock という関数が含まれ、VTREG をクロックしようとする場合、clock 関数のアドレスを取得することになります。clock VTREG にアクセスするには、変数名に逆引用符の接頭文字を使用する必要があります。

clock 関数へのアクセス clock VTREG へのアクセス
>clock
0x00000DB2

>‘clock
20000000


µVision4 User's Guide (Japanese): I/O ポート

I/O ポート

µVision4 は、各 I/O ポートの VTREG を定義します（PORTA など）。これらの VTREG を各ポートのペリフェラルレジスタと混同しないで下さい（PIOA_OSR など）。ペリフェラルレジスタには、CPU メモリ空間内でアクセスできます。VTREG はピン上に存在するシグナルです。

µVision4 を使用すると、外部ハードウェアからの入力を簡単にシミュレートできます。ポートピンに流れるパルストレインがある場合、シグナル関数を使用してシグナルをシミュレートできます。例えば、次のシグナル関数は、1000Hz の周波数で PORTA ピン 0 上に方形波を入力します。

signal void one_thou_hz (void) {
  while (1) {                      /* repeat forever       */
    PORTA |= 1;                    /* set PORTA bit 0      */
    swatch (0.0005);               /* delay for .0005 secs */
    PORTA &= ~1;                   /* clear PORTA bit 0    */
    swatch (0.0005);               /* delay for .0005 secs */
  }                                /* repeat               */
}

次のコマンドによって、このシグナル関数が開始されます。

one_thou_hz ()

ユーザ関数とシグナル関数の詳細については、「デバッグ関数」を参照して下さい。

ポートピンからの出力に応答する外部ハードウェアのシミュレートが、若干難しくなりました。次の 2 つの手順が必要です。まず、µVision4 のユーザ関数またはシグナル関数を書き込み、目的の操作を実行します。次に、ユーザ関数を呼び出すブレークポイントを作成します。

出力ピン（PORTA ビット 0）を使用して LED を有効または無効にするとします。次のシグナル関数では、PORT2 VTREG を使用して CPU からの出力を確認し、［コマンド］（Command）ウィンドウにメッセージを表示します。

signal void check_pA0 (void) {
  if (PORTA & 1)) {                            /* Test PORTA bit 0 */
    printf ("LED is ON\n"); }                  /* 1? LED is ON */
  else { /* 0? LED is OFF */
    printf ("LED is OFF\n"):
  }
}

ポート 1 に書き出すにはブレークポイントを追加する必要があります。次のコマンドラインは、PORT2 へのすべての書き出しのためのブレークポイントを追加します。

BS WRITE PORT2, 1, "check_p20 ()"

ターゲットプログラムが PORT2 に書き出すたびに、check_P20 関数が LED の現在のステータスを出力します。ブレークポイントの設定方法の詳細については、「ブレークポイント」を参照して下さい。


µVision4 User's Guide (Japanese): シリアルポート

シリアルポート

オンチップシリアルポートは、S0TIME、S0IN、および S0OUT で制御されます。S0IN および S0OUT は、CPU 上のシリアル入出力ストリームを表します。S0TIME は、シリアルポートのタイミングが即時（STIME = 0）であるか、指定した通信速度（SxTIME = 1）に相対的であるかを指定します。S0TIME が 1 である場合、シリアルウィンドウに表示されるシリアルデータは、指定した通信速度での出力となります。S0TIME が 0 である場合、シリアルデータはより速やかにシリアルウィンドウに表示されます。

シリアル入力のシミュレートは、デジタル入力のシミュレートと同様に簡単です。特定のデータを（1 秒ごとに）定期的に入力する外部シリアルデバイスがある場合、CPU のシリアルポートにデータをフィードするシグナル関数を作成できます。

signal void serial_input (void) {
  while (1) {                                /* repeat forever */
    twatch (CLOCK);                          /* Delay for 1 second */

   S0IN = 'A';                               /* Send first character */
   twatch (CLOCK / 900);                     /* Delay for 1 character time */
                                             /* 900 is good for 9600 baud */
   S0IN = 'B';                               /* Send next character */
   twatch (CLOCK / 900);
   S0IN = 'C';                               /* Send final character */
  }                                          /* repeat */
}

このシグナル関数を実行すると、1 秒間遅延し、'A'、'B'、および 'C' をシリアル入力行に入力して、このプロセスを繰り返します。

シリアル出力は、前述のユーザ関数またはシグナル関数と書き込みアクセスブレークポイントを使用して同様の方法でシミュレートされます。


µVision4 User's Guide (Japanese): システム変数

システム変数

システム変数は、特定の関数へのアクセスを可能にし、プログラム変数またはその他の式が使用される場所で使用できます。次の表に、使用可能なシステム変数、データ型、それらの使用法を示します。

変数 | データ型 | 説明
$ 符号なし long プログラムカウンタを表します。$ を使用してプログラムカウンタを表示および変更できます。例えば、$ = 0x4000 はプログラムカウンタをアドレス 0x4000 に設定します。
_break_ | 符号なし int | ターゲットプログラムの実行を停止できます。set _break_ をゼロ以外の値に設定すると、ターゲットプログラムの実行が停止されます。この変数は、ユーザ関数とシグナル関数で使用してプログラムの実行を停止できます。
_traps_ | 符号なし int | _traps_ をゼロ以外の値に設定すると、166 ハードウェアトラップのメッセージ（［未定義のオペコード］（Undefined Opcode）、［保護されてた命令エラー］（Protected Instruction Fault）、［不正なオペランドアクセス］（Illegal Word Operand Access）、［不正な命令アクセス］（Illegal Instruction Access）、［スタックアンダーフロー］（Stack Underflow）、および［スタックオーバーフロー］（Stack Overflow））が表示されます。
states 符号なし long CPU 命令状態カウンタの現在の値。ターゲットプログラムが実行を開始するとカウントを開始し、実行される命令ごとにカウントを増やします。

注：

  • states は読み出し専用変数です。
seconds double 秒単位の実行時間。

注：

  • seconds は読み出し専用変数で、一部のデバイスのみで使用できます。
itrace | 符号なし int | ターゲットプログラムの実行中にトレース記録を実行するかどうかを指定します。itrace が 0 である場合、トレース記録は実行されません。itrace にゼロ以外の値が含まれる場合、トレース情報は記録されます。詳細については、「トレース記録」を参照して下さい。
radix | 符号なし int | 表示される数値で使用される底を指定します。radix は 10 または 16 になります。デフォルト設定は 16 進数表示の 16 です。


µVision4 User's Guide (Japanese): 型指定子

型指定子

µVision4 は、式で暗黙的な型のキャストを自動的に実行します。特定のデータ型に明示的に式をキャストすることもできます。型のキャストは、C プログラミング言語で使用される表記に従います。次に例を示します。

(unsigned int) 31.2                       /* gives unsigned int 31 from the float value */


µVision4 User's Guide (Japanese): 式

式

多くのデバッグコマンドは、パラメータとして数値式を受け入れます。数値式とは、数、デバッグオブジェクト、またはオペランドを含む数または複雑な式です。式は、次のコンポーネントのいずれかで構成できます。

コンポーネント | 説明
定数 | 定数とは、固定数値または文字列のことです。
システム変数 | システム変数は、µVision4 の動作を変更したり、動作に影響を与えたりします。
ペリフェラル変数 | ペリフェラルレジスタ変数は、シミュレートされたオンチップペリフェラルへのアクセスを可能にします。
プログラム変数 | プログラム変数とは、ターゲットプログラムの変数のことです。これらは、一般的にシンボルまたはシンボリック名と呼ばれます。
行番号 | 行番号は、実行可能なプログラムのコードアドレスを指します。プログラムをコンパイルまたはアセンブルした場合、コンパイラまたはアセンブラには、生成されたオブジェクトモジュールの行番号情報が含まれます。
ビットアドレス | ビットアドレスは、ビットアドレス指定可能データメモリを指します。
型指定子 | 型指定子は、式または部分式のデータ型の指定を可能にします。
演算子 | 演算子には、+、-、*、および / が含まれます。演算子を使用すると、1 つの式に部分式を組み合わせることができます。C プログラミング言語で使用可能なすべての演算子を使用できます。
µVision4 と C の相違点 | 注意する必要がある相違点です。
式の例 | ［コマンド］（Command）ウィンドウに入力可能な式の使用法を説明するコード例です。


µVision4 User's Guide (Japanese): 不正なメモリアクセスの確認

不正なメモリアクセスの確認

不正なメモリアクセスをトラップする必要がある場合があります。µVision4 アクセスブレークポイントは、システム変数 _break_ と共に使用できます。

次の例では、配列 save_record が関数 clear_records の外で実行されると、プログラム実行が停止されます。


µVision4 User's Guide (Japanese): 事前設定 I/O ポートまたはメモリコンテンツ

事前設定 I/O ポートまたはメモリコンテンツ

アプリケーションによっては、I/O ポート値またはメモリコンテンツがプログラムシミュレーションの前に特定の値に設定される必要があります。デバッグの初期化ファイルに、シミュレータを事前定義するためのコマンドを含めることができます。次に例を示します。

PORT3 = 0                                      /* set Port3 to zero */
LOAD MEMORY.HEX                                /* load hex file contents to memory */
                                               /* use the SAVE command to save memory contents */


µVision4 User's Guide (Japanese): キーボードショートカット

キーボードショートカット

µVision4 のメニューコマンド［編集］（Edit）→［設定］（Configuration）→［ショートカットキー］（Shortcut Key）を使用すると、すべてのメニュー項目のショートカットキーを設定できます。このダイアログで、必要に応じて µVision4 をカスタマイズできます。例えば、エディタウィンドウでブレークポイントを挿入/削除するためのショートカットキーを追加できます。


µVision4 User's Guide (Japanese): ペリフェラルと CPU 設定の確認

ペリフェラルと CPU 設定の確認

µVision4 デバッガには、初期値の検証に使用できる多くのペリフェラルのダイアログが用意されています。例えば、［ペリフェラル］（Peripheral）→［詳細な電力管理コントローラ］（Advanced Power Management Controller）ダイアログを使用して Atmel AT91M55800A デバイスのマイクロコントローラ設定を確認できます。

正しくない設定ではターゲットデバッガが動作しないため、シミュレータを使用してマイクロコントローラとペリフェラルの初期値を確認します。

［詳細な電力管理コントローラ］（Advanced Power Management Controller）ダイアログ


µVision4 User's Guide (Japanese): 外部 I/O デバイスのシミュレート

外部 I/O デバイスのシミュレート

外部 I/O デバイスは通常、メモリマップされています。µVision4 デバッガの［メモリ］（Memory）ウィンドウを使用すると、このような I/O デバイスをシミュレートできます。C ユーザプログラムには、このようなメモリ領域の変数の宣言が含まれないため、MAP コマンドを使用してこのメモリをマップする必要があります。

MAP 0x100000, 0x100FFF READ WRITE                     /* MAP memory for I/O area */

デバッグ関数と組み合わせてブレークポイントを使用すると、I/O デバイスのロジックをシミュレートできます。

詳細については、「ユーザ関数」を参照して下さい。

ブレークポイントの定義を次に示します。

BS WRITE 0x100000, 1, "IO_access ()"


µVision4 User's Guide (Japanese): I/O ポートのシミュレート

I/O ポートのシミュレート

µVision4 には、すべての I/O ポートのステータスを示すダイアログがあります。I/O ピンは VTREG を使用して表されます。シグナル関数またはブレークポイントと共にこの VTREG を使用できます。次にサンプルプログラムを示します。

µVision4 には、すべての I/O ポートのステータスを示すダイアログがあります。I/O ピンは VTREG を使用して表されます。シグナル関数またはブレークポイントと共にこの VTREG を使用できます。次にサンプルを示します。

// in your C user program
PortAvalue = PIOA_PDSR; // read Port A input

µVision4 シミュレータで定義したブレークポイント：

bs write PORT3, 1, "printf (\"Port3 value=%X\\n\", PORT3)"
bs read PORT5, 1, "PORT5 = getint (\"Input Port5 value\")"

C プログラムを実行すると、Port5 入力値を求められます。新しい出力値が Port3 に書き込まれると、出力ウィンドウにメッセージが出力されます。「ペリフェラル変数」を参照して下さい。


µVision4 User's Guide (Japanese): 割り込みとクロック入力のシミュレート

割り込みとクロック入力のシミュレート

µVision4 では、I/O 入力の動作をシミュレートします。I/O ピンがカウンタ入力として設定された場合、ピンが切り替わると、カウンタ値は増加します。次の例に、カウンタ 3 の入力をシミュレートする方法を示します。

// in your C user program
T3CON = 0x004B;              // set T3 Counter Mode

VTREG PORT3（シグナル関数などを使用して）でカウンタ入力 P3.6 を切り替えることができます。

signal void ToggleT3Input (void) {
  while (1) {
    PORT3 = PORT3 ^ 0x0040;             // toggle P3.6
    twatch (CLOCK / 100000);            // with 100kHz
  }
}

ペリフェラルダイアログでカウンタ 3 ステータスを確認します。

ポートピンが割り込み入力として使用された場合、割り込み入力もシミュレートされます。関連付けられた I/O ピンを切り替えると、割り込み要求が設定されます。


µVision4 User's Guide (Japanese): PC COM ポートへのシリアル I/O の割り当て

PC COM ポートへのシリアル I/O の割り当て

ASSIGN コマンドにより、µVision4 シミュレータの UART の入力として PC COM ポートを使用できます。次のコマンドを入力すると、シリアル I/O は COM2（PC のインタフェース）経由で実行されます。STIME 変数を使用すると、シミュレートされたシリアルインタフェースのタイミングを無視できます。

>MODE COM2 9600, 0, 8, 1    /*9600 bps, no parity, 8 data & 1 stop bit */
>ASSIGN COM2 <S0IN >S0OUT   /*ASC0 output & input is done with COM2:   */
>S0TIME = 0                 /*ignore timing of simulated ASC0 interface*/


µVision4 User's Guide (Japanese): ヒントとテクニック

ヒントとテクニック

以下のセクションでは、µVision4 デバッガで使用できる高度なテクニックについて説明します。以下の機能が必要になることはまれですが、このセクションの説明を読めば、µVision4 デバッガの機能をよりよく理解できるようになります。

  • ペリフェラルと CPU 設定の確認
  • I/O ポートのシミュレート
  • 割り込みとクロック入力のシミュレート
  • 外部 I/O デバイスのシミュレート
  • PC COM ポートへのシリアル I/O の割り当て
  • 不正なメモリアクセスの確認
  • ファイルからのコマンド入力
  • 事前設定 I/O ポートまたはメモリコンテンツ
  • ファイルへのデバッグ出力の書き込み
  • キーボードショートカットの使用


µVision4 User's Guide (Japanese): デバッガの使用

デバッガの使用

µVision4 デバッガは、高機能でありながら、非常に使いやすいツールです。

ターゲットデバイスをシミュレートしているか、エミュレータを使用してターゲットデバイスを制御しているかに関係なく、µVision4 のインタフェースの操作方法は実質的に同じです。

デバッグ中、ソースコードにフルアクセスすることができます。高レベルなコード（C/C++）またはアセンブリレベルのコードビューを使用してプログラムの実行を制御できます。デバッグ中にプログラムを編集することもできます。

  • 「シミュレーション」では、機能と［デバッグ］（Debug）メニューについて説明します。
  • 「デバッグの開始」では、最初の操作手順と設定オプションについて説明します。
  • 「アプリケーションプログラムの実行」では、デバッグ中にコードを実行するさまざまな方法を説明します。


µVision4 User's Guide (Japanese): ファイルへのデバッグ出力の書き込み

ファイルへのデバッグ出力の書き込み

LOG と SLOG コマンドを使用すると、デバッグ出力ファイルを書き込むことができます。バッチファイルで µVision4 デバッガを実行し、これらのコマンドを含むデバッグの初期化ファイルを使用して、プログラムのテストを自動化できます。

>LOG >>C:\TMP\DEBUGOUT.TXT     /* Log Output Window - Command Page */
>SLOG >>C:\TMP\DEBUGOUT.TXT    /* Log Serial Window Output */
>                              /* Output of the Command Page and the */
>                              /* Serial Window are written to file */
>LOG OFF                       /* Stop Output Window Logging */
>SLOG OFF                      /* Stop Serial Window Logging */


µVision4 User's Guide (Japanese): デバッグコマンド

デバッグコマンド

コマンドの入力

コマンドを入力している間、構文ジェネレータには使用可能なコマンド、オプション、パラメータが表示されます。コマンドを入力するにつれて、入力した文字に一致する可能性のあるコマンドのリストが減っていきます。

「B」と入力すると、構文ジェネレータにリストされるコマンドが減ります。 | 構文ジェネレータ例 1
コマンドをクリアすると、使用可能なコマンドのオプションがリストされます。 | 構文ジェネレータ例 2
構文ジェネレータによってコマンドの入力が簡単になり、エラーを回避できます。 | 構文ジェネレータ例 3

注

  • コマンド名はすべて大文字で入力します。例えば BreakSet コマンドでは、「BS」と入力する必要があります。

µVision4 では、コマンドラインに入力できる多数のコマンドがサポートされています。

コマンドは、その機能によって次のカテゴリにグループ分けできます。

ブレークポイントコマンド

ブレークポイントコマンドを使用すると、ブレークポイントを作成および削除できます。ブレークポイントは、特定の命令に到達したときにプログラムの実行を停止したり、µVision4 コマンドやユーザ関数を実行したりするために使用します。

コマンド | 説明
BreakAccess | 長さのあるアクセスブレークポイントをブレークポイントのリストに追加します。
BreakDisable | 1 つまたは複数のブレークポイントを無効にします。
BreakEnable | 1 つまたは複数のブレークポイントを有効にします。
BreakKill | ブレークポイントのリストから 1 つまたは複数のブレークポイントを削除します。
BreakList | 現在のブレークポイントをリストします。
BreakSet | ブレークポイント式をブレークポイントのリストに追加します。

汎用コマンド

汎用コマンドを使用すると、さまざまなデバッグ操作を実行できます。

コマンド | 説明
ASSIGN | シリアルウィンドウの入力および出力ソースを割り当てます。
DEFINE | ［ツールボックス］（Toolbox）のボタンを作成します。
DIR | シンボル名のディレクトリを生成します。
EXIT | µVision4 のデバッグモードを終了します。
INCLUDE | コマンドファイル内のコマンドを読み出して実行します。
KILL | µVision4 のデバッグ関数と［ツールボックス］（Toolbox）のボタンを削除します。
LOAD | オブジェクトモジュールと HEX ファイルをロードします。
LOG | デバッグウィンドウでログファイルの作成、ログステータスの照会、ログファイルを閉じる操作を行います。
MODE | PC COM ポートのボーレート、パリティ、ストップビット数を設定します。
RESET | µVision4、メモリマップ割り当て、定義済み変数をリセットします。
SAVE | Intel HEX386 ファイルにメモリ範囲を保存します。
SCOPE | モジュールのアドレス割り当てとターゲットプログラムの関数を表示します。
SET | 定義済み変数の文字列値を設定します。
SIGNAL | シグナル関数のステータスを表示し、アクティブなシグナル関数を削除します。
SLOG | シリアルウィンドウでログファイルの作成、ログステータスの照会、ログファイルを閉じる操作を行います。

メモリコマンド

メモリコマンドを使用すると、メモリの内容を表示および変更できます。

コマンド | 説明
ASM | インラインコードをアセンブルします。
DEFINE | µVision4 の関数で使用する入力済みシンボルを定義します。
DISPLAY | メモリの内容を表示します。
ENTER | 指定されたメモリ領域に値を入力します。
EVALuate | 式を評価し、結果を出力します。
MAP | メモリ領域のアクセスパラメータを指定します。
Unassemble | プログラムのメモリを逆アセンブルします。
WatchSet | ［ウォッチ］（Watch）ウィンドウにウォッチ変数を追加します。
WatchKill | ［ウォッチ］（Watch）ウィンドウ内のすべてのウォッチ変数を削除します。

プログラムコマンド

プログラムコマンドを使用すると、ターゲットプログラムを実行して、そのパフォーマンスを分析できます。

コマンド | 説明
COVERAGE | コードカバレッジ情報を表示します。
Go | プログラムの実行を開始します。
LogicAnalyze | ロジックアナライザを初期化します。
PerformanceAnalyze | 組み込みのパフォーマンスアナライザを初期化します。
Pstep | 命令をステップオーバーしますが、プロシージャまたは関数はステップインしません。
Ostep | 現在の関数からステップアウトします。
Tstep | 命令をステップオーバーし、関数をステップインします。


µVision4 User's Guide (Japanese): デバッグ関数

デバッグ関数

この章では、µVision4 の高機能なデバッグ関数について説明します。デバッグ関数を使用すると、次の操作を行うことができます。

  • µVision4 デバッガの機能を拡張します。
  • 外部割り込みを生成します。
  • メモリの内容をファイルにログします。
  • アナログ入力値を定期的に更新します。
  • シリアルデータをオンチップシリアルポートに入力します。

µVision4 のデバッグ関数では、C プログラミング言語のサブセットを使用します。基本的な機能と制約は次のとおりです。

  • フロー制御ステートメント if、else、while、do、switch、case、break、continue、goto は、デバッグ関数で使用できます。これらすべてのステートメントは、ANSI C と同じように、µVision4 のデバッグ関数で動作します。
  • ローカルスカラ変数は、ANSI C の宣言と同じように、デバッグ関数で宣言されます。
  • 配列はデバッグ関数では使用できません。

詳細については、以下を参照して下さい。

  • 「関数の作成」では、内部デバッグ関数エディタと、それをデバッグ処理に含める方法について説明します。
  • 「関数の呼び出し」では、デバッグ関数の呼び出し方法について説明します。
  • 「定義済み関数」では、すぐに使用できるデバッグ関数について説明します。
  • 「シグナル関数」では、シリアル I/O、アナログ I/O、ポート通信、およびその他の外部反復イベントのシミュレートおよびテストを行う方法について説明します。シグナル関数を管理するための例、制限、および命令についても説明します。
  • 「µVision4 と C の相違点」では、µVision4 デバッグ関数と ANSI C の構文およびセマンティクスの違いについて説明します。

注

  • µVision4 のデバッグ関数とターゲットプログラムの関数を混同しないで下さい。µVision4 デバッグ関数は、ユーザのアプリケーションのデバッグに役立ちます。デバッグ関数は、関数エディタを使用して作成するか、µVision4 のコマンドラインに入力します。


µVision4 User's Guide (Japanese): デバッグ

デバッグ

この章では、µVision4 のデバッグモードと、サンプルプログラムをテストするためのユーザインタフェースについて説明します。また、プログラムのデバッグに使用可能なシミュレーションモードとさまざまなオプションについても説明します。

  • 「デバッガの使用」では、シミュレーションおよびプログラム実行の概要について説明します。
  • 「デバッグのウィンドウおよびダイアログ」では、デバッグ中に使用できる機能について説明します。
  • 「式」では、デバッグコマンドで使用できる式について説明します。
  • 「ヒントとテクニック」では、デバッガ機能の理解を深めるための上級レベルのテクニックについて説明します。

µVision4 デバッガを使用して、開発するアプリケーションをテストできます。デバッガには 2 つの操作モードがあり、［ターゲットのオプション］（Options for Target）→［デバッグ］（Debug）ダイアログで選択できます。

  • シミュレータを使用する場合、実際にターゲットハードウェアがなくてもマイクロコントローラのほとんどの機能をシミュレートできるソフトウェアのみの製品として µVision4 デバッガが設定されます。ハードウェアの準備が整う前に、組み込みアプリケーションをテストおよびデバッグできます。µVision4 は、シリアルポート、外部 I/O、タイマなど、さまざまなペリフェラルをシミュレートします。ペリフェラルシミュレーション機能は、選択したデバイスによって異なります。
  • ターゲットデバッガを使用する場合（ULINK ARM デバッガなど）、ターゲットシステムに接続するハードウェアデバッガと µVision を組み合わせたハイブリッド製品になります。次のデバッグデバイスがサポートされています。
    • JTAG/OCDS アダプタ：ARM Embedded ICE などのオンチップデバッグシステムに接続します。
    • モニタ：ユーザハードウェアと統合可能で、数多くの評価ボードで使用できます。
    • エミュレータ：ターゲットハードウェアの MCU ピンに接続します。
    • インシステムデバッガ：ユーザアプリケーションプログラムの一部で、基本的なテスト機能があります。

サードパーティのツール開発者は、Keil Advanced GDI を使用して、µVision を独自のハードウェアデバッガに接続できます。

注

  • ステータスバーには、現在アクティブなデバッグツールが表示されます。シミュレーションモードでは、タイミングに関する統計が表示されます。


µVision4 User's Guide (Japanese): 関数の作成

関数の作成

µVision4 には組み込みのデバッグ関数エディタがあり、［デバッグ］（Debug）→［関数エディタ］（Function Editor）で開くことができます。関数エディタを起動すると、エディタでファイル名の指定が求められるか、［ターゲットのオプション］（Options for Target）→［デバッグ］（Debug）→［初期化ファイル］（Initialization File）で指定したファイルが開かれます。デバッグ関数エディタは組み込みの µVision4 エディタと同様に動作し、デバッグ関数を入力してコンパイルできます。

ダイアログ項目の詳細については、［関数エディタ］（Function Editor）ダイアログのヘルプを参照して下さい。

µVision4 のデバッグ関数を使用してファイルを作成すると、INCLUDE コマンドでテキストファイルの内容を読み出して処理できます。例えば、［コマンド］（Command）ウィンドウで次のコマンドを入力すると、µVision4 は MYFUNCS.INI の内容を読み出して解釈します。

>INCLUDE MYFUNCS.INI

MYFUNCS.INI には、デバッグコマンドと関数定義を含めることができます。このファイルは、［ターゲットのオプション］（Options for Target）→［デバッグ］（Debug）→［初期化ファイル］（Initialization File）で入力することもできます。µVision4 デバッガを起動するたびに、MYFUNCS.INI の内容が処理されます。

不要になった関数は、KILL コマンドを使用して削除できます。


µVision4 User's Guide (Japanese): µVision4 と C の相違点

µVision4 と C の相違点

ANSI C と、µVision4 のデバッグユーザ関数およびシグナル関数でサポートされている機能のサブセットには、数多くの違いがあります。

  • µVision4 には大文字と小文字の区別がありません。オブジェクト名と制御ステートメントは大文字と小文字のどちらでも記述できます。
  • µVision4 にはプリプロセッサがありません。#define、#include、#ifdef などのプリプロセッサディレクティブはサポートされていません。
  • µVision4 ではグローバル宣言がサポートされていません。スカラ変数は関数定義内で宣言する必要があります。DEFINE コマンドを使用してシンボルを定義し、グローバル変数のように使用できます。
  • µVision4 では、変数は宣言時に初期化されません。明示的な代入文を使用して、変数を初期化する必要があります。
  • µVision4 の関数ではスカラ変数型のみがサポートされています。構造体、配列、ポインタは使用できません。これは関数戻り値型と関数パラメータに該当します。
  • µVision4 の関数ではスカラ変数型のみが返されます。ポインタと構造体は返されません。
  • µVision4 の関数を再帰的に呼び出すことはできません。関数の実行時に µVision4 は再帰的呼び出しを認識し、呼び出しが検出されると関数の実行を中止します。
  • µVision4 の関数は、関数名を使用して直接呼び出されます。ポインタ経由の間接的な関数の呼び出しはサポートされていません。
  • µVision4 では、パラメータリストを使用した関数宣言について ANSI スタイルのみがサポートされています。以前の K&R 形式はサポートされていません。例えば、次のような ANSI スタイルの関数を使用できます。
func test (int pa1, int pa2)  {    /* ANSI type, correct */
  /* ...  */
}

次のような K&R スタイルの関数は使用できません。

func test (pa1, pa2)                     /* Old K&R style is */
int pa1, pa2;                               /* not supported */
{
  /* ... */
}


µVision4 User's Guide (Japanese): 関数の呼び出し

関数の呼び出し

デバッグ関数の呼び出しまたは実行を行うには、関数名と必要なパラメータを［コマンド］（Command）ウィンドウに入力する必要があります。例えば、printf 組み込み関数を実行して「Hello World」と出力するには、［コマンド］（Command）ウィンドウに次のテキストを入力します。

>printf ("Hello World\n")

µVision4 デバッガは、出力ウィンドウの［コマンド］（Command）ページに「Hello World」というテキストを出力することによって応答します。


µVision4 User's Guide (Japanese): 定義済み関数

定義済み関数

µVision4 には、いつでも使用できる定義済みデバッグ関数が数多く用意されています。これらは再定義したり削除したりできません。定義済み関数は、作成したユーザ関数とシグナル関数を補助するためのものです。

次の表には、µVision4 の定義済みデバッグ関数がすべてリストされています。

戻り値 | 名前 | パラメータ | 説明
void | exec | ("command_string") | デバッグコマンドを実行します。
double | getdbl | ("prompt_string") | ユーザに double 値を要求します。
int | getint | ("prompt_string") | ユーザに int 値を要求します。
long | getlong | ("prompt_string") | ユーザに long 値を要求します。
void | memset | (start_addr, value, len) | 定数値でメモリを埋めます。
void | printf | ("string", ...) | ANSI C の printf 関数と同様に動作します。
int | rand | (int seed) | 0 ～ 32767 の乱数を返します。
void | rwatch | (ulong address) | アドレスへの読み出しアクセスまでシグナル関数の実行を遅延させます。
void | swatch | (float seconds) | 指定した時間だけシグナル関数の実行を遅延させます。
void | twatch | (ulong states) | 指定した数の CPU ステート数までシグナル関数の実行を遅延させます。
void | wwatch | (ulong address) | アドレスへの書き込みアクセスまでシグナル関数の実行を遅延させます。
uchar | _RBYTE | (address) | 指定したメモリアドレスの char を読み出します。
uint | _RWORD | (address) | 指定したメモリアドレスの short int を読み出します。
ulong | _RDWORD | (address) | 指定したメモリアドレスの long を読み出します。
float | _RFLOAT | (address) | 指定したメモリアドレスの float を読み出します。
double | _RDOUBLE | (address) | 指定したメモリアドレスの double を読み出します。
int | _TaskRunning_ | (ulong func_address) | 指定したタスク関数が現在実行中のタスクかどうかをチェックします。RTX カーネル対応の DLL が使用されている場合にのみ使用可能です。
double | _sleep_ | (ulong milli_seconds) | 指定した時間だけスクリプトの実行を遅延させます。
void | _WBYTE | (address, uchar val) | 指定したメモリアドレスに char を書き込みます。
void | _WWORD | (address, uint val) | 指定したメモリアドレスに short int を書き込みます。
void | _WDWORD | (address, ulong val) | 指定したメモリアドレスに long を書き込みます。
void | _WFLOAT | (address, float val) | 指定したメモリアドレスに float を書き込みます。
void | _WDOUBLE | (address, double val) | 指定したメモリアドレスに double を書き込みます。
double | __acos | (double x) | 弓形余弦を計算します。
double | __asin | (double x) | 弓形正弦を計算します。
double | __atan | (double x) | 弓形正接を計算します。
double | __cos | (double x) | 余弦を計算します。
double | __exp | (double x) | 指数関数を計算します。
double | __log | (double x) | 自然対数を計算します。
double | __log10 | (double x) | 常用対数を計算します。
double | __sin | (double x) | 正弦を計算します。
double | __sqrt | (double x) | 平方根を計算します。
double | __tan | (double x) | 正接を計算します。


µVision4 User's Guide (Japanese): シグナル関数

シグナル関数

シグナル関数を使用すると、µVision4 でターゲットプログラムを実行している間、バックグラウンドでシグナル入力やパルスなどの操作を繰り返すことができます。シグナル関数を使用すると、シリアル I/O、アナログ I/O、ポート通信、およびその他の外部反復イベントのシミュレートおよびテストを行うことができます。

µVision4 でターゲットプログラムをシミュレートしている間、バックグラウンドでシグナル関数が実行されます。したがって、シグナル関数はµVision4 でターゲットプログラムを実行するために、ある時点で twatch 関数を呼び出し、遅延する必要があります。µVision4 は、twatch を呼び出さないシグナル関数に対してエラーを報告します。

注

  • µVision4 には、シグナル関数で使用できるさまざまなシステム変数が用意されています。詳細については、「システム変数」を参照して下さい。

シグナル関数は SIGNAL キーワードで始まり、次のように定義されます。

SIGNAL void fname (parameter_list) {
  statements
}

fname | 関数の名前です。
parameter_list | 関数に渡される引数のリストです。各引数には型と名前が必要です。関数に引数が渡されない場合は、parameter_list に対して void を使用します。複数の引数はコンマで区切ります。
statements | 関数が実行する命令です。
{ | 開き括弧です。開き括弧の数が閉じ括弧 ("}") の数と一致したときに、関数の定義が完了します。

例

次の例は、1,000,000 CPU ステートごとに 1 回ずつシリアル入力バッファに文字「A」を入力するシグナル関数を示しています。詳細については、「関数の作成」を参照して下さい。

SIGNAL void StuffS0in (void) {
  while (1) {
    S0IN = 'A';
    twatch (1000000);
  }
}

この関数を呼び出すには、［コマンド］（Command）ウィンドウに次のように入力します。

StuffS0in()

StuffS0in シグナル関数を呼び出すと、ASCII 文字「A」がシリアル入力バッファに入力され、1,000,000 CPU ステートだけ遅延して、このプロセスが繰り返されます。

制約

シグナル関数には次のような制約があります。

  • シグナル関数の戻り値型は void である必要があります。
  • シグナル関数が持てる関数パラメータは最大 8 つです。
  • シグナル関数が、他の定義済み関数、ユーザ関数、またはシグナル関数を呼び出すことがあります。
  • シグナル関数がユーザ関数によって呼び出されることがあります。
  • シグナル関数は twatch 関数を少なくとも 1 回呼び出す必要があります。twatch を呼び出さないシグナル関数は、ターゲットプログラムに実行時間を与えることができません。Ctrl+C を使用してシグナル関数を中止できないため、µVision4 が無限ループに入る場合があります。

シグナル関数の管理

µVision4 は、アクティブなシグナル関数のキューを維持します。シグナル関数はアイドル状態または実行中のいずれかです。twatch の呼び出しで指定された CPU ステート数が期限切れになるのを待つ間、アイドル状態のシグナル関数は遅延します。実行中のシグナル関数は、関数内でステートメントを実行しています。

シグナル関数を呼び出すと、µVision4 によってその関数がキューに追加され、実行中とマークされます。シグナル関数は 1 回しか有効化できません。関数が既にキューにある場合は警告が表示されます。コマンド SIGNAL STATE を使用すると、アクティブなシグナル関数の状態を表示できます。コマンド SIGNAL KILL を使用して、キューからアクティブなシグナル関数を削除します。

シグナル関数が twatch 関数を呼び出すと、twatch に渡された CPU ステート数だけアイドル状態になります。ユーザプログラムが指定数の CPU ステートを実行した後、シグナル関数は実行中になります。twatch の後のステートメントで実行が続けられます。

戻りステートメントのためにシグナル関数が終了すると、アクティブなシグナル関数のキューから自動的に削除されます。

アナログの例

次の例は、C167 で入力をアナログ入力 0 に変えるシグナル関数を示しています。この関数は、0V とシグナル関数の唯一の引数として指定された上限の間で、0.5V ずつ入力電圧を増加または減少させます。このシグナル関数は無限に繰り返され、各電圧ステップで 200,000 ステート遅延します。

signal void analog0 (float limit) {
float volts;

printf ("Analog0 (%f) entered.\n", limit);
  while (1) {           /* forever */
    volts = 0;
    while (volts <= limit) {
      ain0 = volts;     /* analog input-0 */
      twatch (200000);  /* 200000 states Time-Break */
      volts += 0.1;     /* increase voltage */
    }
    volts = limit;
    while (volts >= 0.0) {
      ain0 = volts;
      twatch (200000);  /* 200000 states Time-Break */
      volts -= 0.1;     /* decrease voltage */
    }
  }
}

シグナル関数 analog0 は次のようにして呼び出すことができます。

>ANALOG0 (5.0)           /* Start of 'ANALOG()' */
ANALOG0 (5.000000) ENTERED

SIGNAL STATE コマンドは、analog0 の現在の状態を表示します。

>SIGNAL STATE
 1  idle     Signal = ANALOG0 (line 8)

µVision4 によって、内部関数番号、シグナル関数の状態（アイドル状態か実行中）、関数名、および実行している行番号がリストされます。

シグナル関数がアイドル状態なので、analog0 が twatch 関数を実行し（analog0 の 8 行目）、指定された CPU ステート数が経過するのを待機していると推察できます。200,000 ステートが経過すると、analog0 は 8 行目または 14 行目で twatch が次に呼び出されるまで実行を続けます。

次のコマンドは、analog0 シグナル関数をアクティブなシグナル関数のキューから削除します。

>SIGNAL KILL ANALOG0


µVision4 User's Guide (Japanese): ユーザ関数

ユーザ関数

ユーザ関数は、µVision4 デバッガで使用するためにユーザが作成する関数です。ユーザ関数を関数エディタに直接入力することも、INCLUDE コマンドを使用して 1 つまたは複数のユーザ関数が記述されたファイルをロードすることもできます。

注

  • µVision4 には、ユーザ関数で使用できるさまざまなシステム変数が用意されています。詳細については、「システム変数」を参照して下さい。

ユーザ関数は FUNC キーワードで始まり、次のように定義されます。

FUNC return_type fname (parameter_list) {
  statements
}

return_type | 関数によって返された値の型で、bit、char、float、int、long、uchar、uint、ulong、void のいずれかです。関数が値を返さない場合、void を使用できます。戻り値型が指定されていない場合、int 型とみなされます。
fname | 関数の名前です。
parameter_list | 関数に渡される引数のリストです。各引数には型と名前が必要です。関数に引数が渡されない場合は、parameter_list に対して void を使用します。複数の引数はコンマで区切ります。
statements | 関数が実行する命令です。
{ | 開き括弧です。開き括弧の数が閉じ括弧（}）の数と一致したときに、関数の定義が完了します。

例

次のユーザ関数は、複数の CPU レジスタの内容を表示します。詳細については、「関数の作成」を参照して下さい。

FUNC void MyRegs (void) {
  printf ("---------- MyRegs() ----------\n");
  printf (" R4 R8 R9 R10 R11 R12\n");
  printf (" %04X %04X %04X %04X %04X %04X\n",
            R4,  R8,  R9,  R10, R11, R12);
  printf ("------------------------------\n");
}

この関数を呼び出すには、［コマンド］（Command）ウィンドウに次のように入力します。

MyRegs()

MyRegs 関数を呼び出すと、レジスタの内容が次のように表示されます。

---------- MyRegs() ----------
 R4   R8   R9   R10  R11  R12
 B02C 8000 0001 0000 0000 0000
------------------------------

ユーザ関数を呼び出すための［ツールボックス］（Toolbox）のボタンを定義できます。

DEFINE BUTTON "My Registers", "MyRegs()"

制約

  • ユーザ関数の戻り値が、関数の戻り値型に一致するかどうかが自動的にチェックされます。void 戻り値型の関数は、値を返すことができません。void 以外の戻り値型の関数は、値を返す必要があります。有効な戻り値の各戻りパスは自動的にチェックされないので注意して下さい。
  • ユーザ関数は、シグナル関数または twatch 関数を呼び出すことができません。
  • ローカルオブジェクトの値は、値が割り当てられるまで定義されません。
  • ユーザ関数を削除するには、KILL FUNC コマンドを使用します。


µVision4 User's Guide (Japanese): ［Keil Ax51 アセンブラ］（Keil Ax51 Assembler）

［Keil Ax51 アセンブラ］（Keil Ax51 Assembler）

条件付きアセンブリコントロール
Set は、条件付きアセンブリセクションの制御のために$ IF および $ELSEIF ディレクティブで使用される変数に数値を割り当てます。変数名は標準シンボル規則に従っている必要があります。また、変数名は他のアセンブリシンボルと重ならないように個別に管理されます。

Resett は、上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Set の割り当てをクリアします。
マクロプリプロセッサ
さまざまなアセンブラマクロプロセッサを有効にします。
  • 標準アセンブラマクロは他の多くのマクロアセンブラと同じです。標準アセンブラマクロを使用すると、標準アセンブラ命令と似たマクロを定義できます。
  • MPL マクロは Intel ASM-51 アセンブラと互換性があります。MPL マクロを使用すると、元々このマクロアセンブラのために記述された既存のソースファイルを再変換できます。
特殊関数レジスタ
古典的な 8051 SFR 名を事前定義します。
［インクルードパス］（Include Paths）
これを使用すると、$INCLUDE ファイルディレクティブを処理する際に検索する 1 つ以上のパスを指定できます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないアセンブラディレクティブを指定します。
［アセンブラ制御文字列］（Assembler Control String）
アセンブラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil A166 アセンブラ］（Keil A166 Assembler）

［Keil A166 アセンブラ］（Keil A166 Assembler）

条件付きアセンブリコントロール
Set は、条件付きアセンブリセクションの制御のために $ IF および $ELSEIF ディレクティブで使用される変数に数値を割り当てます。変数名は標準シンボル規則に従っている必要があります。また、変数名は他のアセンブリシンボルと重ならないように個別に管理されます。

Reset は、上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Set の割り当てをクリアします。
［MPL マクロ処理］（MPL Macro Processing）
このチェックボックスをオンにすると、文字列置換機能であるマクロ処理言語（MPL）を使用できます。MPL には、文字列処理や番号処理のような便利な処理を実行する、事前定義されたマクロプロセッサ機能があります。
［シンボルの大文字と小文字の区別］（Case Sensitive Symbols）
有効にすると、アセンブラは大文字と小文字を使用してシンボル名を解釈し、大文字と小文字を維持した状態でオブジェクトファイルに出力します。シンボルには大文字と小文字の区別があります。無効にすると、アセンブラはすべてのシンボル名を大文字に変換します。
［インクルードパス］（Include Paths）
これを使用すると、$INCLUDE ファイルディレクティブを処理する場合に検索する 1 つ以上のパスを指定できます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないアセンブラディレクティブを指定します。
［アセンブラ制御文字列］（Assembler Control String）
アセンブラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil A251 アセンブラ］（Keil A251 Assembler）

［Keil A251 アセンブラ］（Keil A251 Assembler）

条件付きアセンブリコントロール
Set は、条件付きアセンブリセクションの制御のために $ IF および $ELSEIF ディレクティブで使用される変数に数値を割り当てます。変数名は標準シンボル規則に従っている必要があります。また、変数名は他のアセンブリシンボルと重ならないように個別に管理されます。

Reset は、上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Set の割り当てをクリアします。
マクロプリプロセッサ
標準マクロプロセッサは、使いやすいマクロプロセッサです。これを使用すると、251 アセンブリプログラムでマクロを定義して使用できます。標準マクロ構文は、他の多くのアセンブラで使用されている構文と互換性があります。マクロ処理言語（MPL）は、Intel マクロプロセッサと完全に互換性のある文字列置換機能です。MPL には、文字列処理や番号処理のような便利な処理を実行する、事前定義されたマクロプロセッサ機能があります。
このチェックボックスをオンにすると、文字列置換機能であるマクロ処理言語（MPL）を使用できます。MPL には、文字列処理や番号処理のような便利な処理を実行する、事前定義されたマクロプロセッサ機能があります。
［シンボルの大文字と小文字の区別］（Case Sensitive Symbols）
有効にすると、アセンブラは大文字と小文字を使用してシンボル名を解釈し、大文字と小文字を維持した状態でオブジェクトファイルに出力します。シンボルには大文字と小文字の区別があります。無効にすると、アセンブラはすべてのシンボル名を大文字に変換します。
［インクルードパス］（Include Paths）
これを使用すると、$INCLUDE ファイルディレクティブを処理する際に検索する 1 つ以上のパスを指定できます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないアセンブラディレクティブを指定します。
［アセンブラ制御文字列］（Assembler Control String）
アセンブラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［MDK-ARM アセンブラ］（MDK-ARM Assembler）

［MDK-ARM アセンブラ］（MDK-ARM Assembler）

条件付きアセンブリコントロールシンボル

Define
SETA ディレクティブを使用してシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前は、”Check, NoExtRam, X1=1+5“ のように値を任意に取得できます。

言語/コード生成

［Arm/Thumb インターワーキングの有効化］（Enable Arm/Thumb Interworking）
アセンブラのソースファイルのコードによって、ARM モードコードと Thumb モードコード間の呼び出しを可能にします。ARM および Thumb モード間で切り替え可能なデバイスについてのみ利用できます。
［読み出し専用の位置非依存］（Read-Only Position Independent）
アセンブラのソースファイルのコードは、位置非依存の ROM 定数用に構成されています。
［読み書き位置非依存］（Read-Write Position Independent）
アセンブラのソースファイルのコードは、位置非依存の RAM 変数用に構成されています。
［Thumb モード］（Thumb Mode）
Thumb コードを生成します。
［警告メッセージなし］（No Warnings）
警告メッセージを無効にします。
［分割ロードと多重ストア］（Split Load and Store Multiple）
LDM/STM 命令に 6 個以上（PC を変更した場合は 5 個以上）の CPU レジスタがある場合、エラーメッセージが表示されます。

その他のコントロール

［インクルードパス］（Include Paths）
ソースファイルパスの 1 つ以上のパスをセミコロンで区切って指定できます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないディレクティブを指定します。
［アセンブラ制御文字列］（Assembler control string）
アセンブラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［MDK-ARM C/C++ コンパイラ］（MDK-ARM C/C++ Compiler）

［MDK-ARM C/C++ コンパイラ］（MDK-ARM C/C++ Compiler）

プリプロセッサシンボル

Define
#if、#ifdef、および #ifndef を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define: Check, NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5
Undefine
上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

言語/コード生成

［Arm/Thumb インターワーキングの有効化］（Enable Arm/Thumb Interworking）
CPU モード（ARM または Thumb）で呼び出すことのできるコードを生成します。
［最適化］（Optimization）
生成されたコードのコンパイラコードの最適化を制御します。
  • ［デフォルト］（Default）：コンパイラのデフォルト、または上位のターゲットまたはグループのレベルの設定を使用します。
  • ［レベル 0（-O0）］（Level 0 (-O0)）：一部の単純なソース変換を除き、すべての最適化をオフにします。
  • ［レベル 1（-O1）］（Level 1 (-O1)）：デバッグビューに著しく悪影響を及ぼす最適化をオフにします。
  • ［レベル 2（-O2）］（Level 2 (-O2)）：高度な最適化（デフォルトレベル）です。オブジェクトコードとソースコードとの間のマップが明確でない場合があるため、デバッグビューの質は低下します。
  • ［レベル 3（-O3）］（Level 3 (-O3)）：最大の最適化が行われます。［時間を最適化］（Optimize for Time）と組み合わせてレベル 3 を使用すると、ループが展開される可能性があるため、生成されるコードがレベル 2 よりも多くなる場合があります。
［時間を最適化］（Optimize for Time）
実行時間を短縮します。ただし、コードサイズが大きくなる場合があります。
［分割ロードと多重ストア］（Split Load and Store Multiple）
LDM および STM 命令を 2 つ以上の LDM 命令または STM 命令に分割して割り込みレイテンシを低減するようにコンパイラに指示します。LDM/STM 命令に 6 個以上（PC が変更された場合は 5 個以上）の CPU レジスタがある場合、複数の LDM/STM 命令が生成されます。
［関数ごとに 1 つの ELF セクション］（One ELF Section per Function）
ソースファイルの関数ごとに、1 つの ELF セクションを生成します。出力セクションには、セクションを生成した関数と同じ名前が付けられます。コードを最適化したり、個々のメモリアドレスに各関数を配置したりできます。
［Strict ANSI C］
ソースファイルが Strict ANSI C に従っているかどうかをチェックします。
［列挙型コンテナは常に int］（Enum Container always int）
無効にすると、enum のデータ型コンテナが値の範囲に従って最適化されます。有効にすると、enum のデータ型コンテナは常に signed int になります。
［プレーン char は Signed］（Plain Char is Signed）
プレーン char として宣言されたすべての変数を signed char 変数として処理するようにコンパイラに指示します。
［読み出し専用の位置非依存］（Read-Only Position Independent）
定数（ROM）アクセスについて位置非依存コードを生成します。
［読み書き位置非依存］（Read-Write Position Independent）
変数（RAM）アクセスについて位置非依存コードを生成します。
［警告］（Warnings）
警告メッセージの生成を制御します。
［Thumb モード］（Thumb Mode）
1 つのファイルまたはファイルグループについて明示的な Thumb コードまたは ARM コードを選択します。［ターゲット］（Target）ダイアログの ［コード生成］（Code Generation） では、デフォルトが選択されています。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。#include "filename.h" の場合、コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または #include <filename.h> を使用した場合、インクルードパスボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）ダイアログで指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［MDK-ARM リンカ］（MDK-ARM Linker）

［MDK-ARM リンカ］（MDK-ARM Linker）

［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）
有効にすると、µVision は、［ターゲット］（Target）および ［プロパティ］（Properties）ダイアログで指定されたメモリ情報からリンカのスキャッタファイルを生成します。スキャッタファイルはメモリレイアウトを定義します。スキャッタファイルを使用して、モジュールを特定のメモリ領域に割り当てることができます。
［RW セクションを位置非依存にする］（Make RW Sections Position Independent）
有効にすると、RW 出力セクションと ZI 出力セクションを含んでいる変数領域が位置非依存になります。無効にすると、RW および ZI セクションは絶対メモリアドレスに配置されます。
［RO セクションを位置非依存にする］（Make RO Sections Position Independent）
有効にすると、RO 出力セクションを含んでいる定数およびコード領域は位置非依存になります。無効にすると、RO セクションは絶対メモリアドレスに配置されます。
［標準ライブラリを検索しない］（Don't Search Standard Libraries）
デフォルトのコンパイラ実行時ライブラリのスキャンを無効にします。
［"失敗する可能性がある" 条件をエラーとしてレポートする］（Report ‘might fail’ Conditions as Errors）
失敗の可能性のある条件を警告ではなくエラーとしてレポートします。
［R/O ベース］（R/O Base）
RO 出力セクションを含んでいる定数およびコード領域のアドレスを設定します。アドレスはワード境界で整列させる必要があります。これを指定しない場合は、デフォルトの RO ベースアドレスは 0x8000 です。［R/O ベース］（R/O Base）は、初期プログラムエントリアドレスも指定します。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）が無効になっている場合、このオプションが有効になります。
［R/W ベース］（R/W Base）
RW および ZI 出力セクションを含んでいる変数領域のアドレスを設定します。アドレスはワード境界で整列させる必要があります。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）が無効になっている場合、このオプションが有効になります。
［警告を無効化］（disable Warnings）
［スキャッタファイル］（Scatter File）
ファイルに含まれているスキャッタロード記述を使用します。このファイルには、イメージ内のさまざまな領域およびセクションのグループ化と配置に関する詳細が記述されています。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）が無効になっている場合、このオプションが有効になります。
...
スキャッタロードファイルを添付するためのブラウザボタンです。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）が無効になっている場合、このオプションが有効になります。
［編集...］（Edit…）
このボタンは、µVision エディタでスキャッタロードファイルを開きます。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）が無効になっている場合、このオプションが有効になります。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールがない場合に、必要な任意のリンカコマンドを指定します。
［リンカ制御文字列］（Linker control string）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［リスト（MDK-ARM）］（Listing (MDK-ARM)）

［リスト（MDK-ARM）］（Listing (MDK-ARM)）

［リストのためのフォルダを選択...］（Select Folder for Listings...）
リストファイルを保存するフォルダを選択します。
［ページ幅］（Page Width）
リストファイルの行ごとの文字数を指定します。
［ページ長］（Page Length）
リストファイルのページごとの行数を指定します。

［アセンブラのリスト］（Assembler Listing）

プロジェクトターゲットのアセンブリソースファイルのリストファイルを作成します。
［クロスリファレンス］（Cross Reference）
マクロの内部と外部の両方でシンボルが定義されている場所や使用されている場所などのクロスリファレンス情報をリストします。

［C コンパイラのリスト］（C Compiler Listing）

プロジェクトターゲットの C ソースファイルのリストファイルを作成します。

［C プリプロセッサのリスト］（C Preprocessor Listing）

プリプロセッサのリストを生成するようにコンパイラに指示します。マクロ呼び出しは拡張され、コメントは削除されます。

［リンカのリスト］（Linker Listing）

プロジェクトターゲットのリンカからマップファイルを作成します。
［メモリマップ］（Memory Map）
各ロード領域、実行領域、およびイメージの入力セクション（デバッグおよびリンカによって生成された入力セクションを含む）のアドレスとサイズを含むイメージマップを挿入します。
［コールグラフ］（Callgraph）
HTML 形式で関数の静的コールグラフファイルを生成します。コールグラフは、イメージ内のすべての関数の定義および参照情報を提供します。
［シンボル］（Symbols）
ローカルシンボル、グローバルシンボル、リンカ生成シンボルをシンボル値と共にリストします。
［クロスリファレンス］（Cross Reference）
入力セクション間のすべてのクロスリファレンスを一覧表示します。
［サイズ情報］（Size Info）
イメージ内の入力オブジェクトおよびライブラリのメンバごとに、コードとデータ（RO データ、RW データ、ZI データ、およびデバッグデータ）のサイズのリストを表示します。
［合計情報］（Totals Info)
入力オブジェクトとライブラリのコードとデータ（RO データ、RW データ、ZI データ、およびデバッグデータ）のサイズの合計を表示します。
［未使用のセクション情報］（Unused Section Info）
イメージから削除された未使用のすべてのセクションが一覧表示されます。
［ベニア情報］（Veneers Info）
リンカによって生成された Thumb/ARM ベニアの詳細情報を表示します。


µVision4 User's Guide (Japanese): ［出力（MDK-ARM）］（Output (MDK-ARM)）

［出力（MDK-ARM）］（Output (MDK-ARM)）

［オブジェクトのためのフォルダを選択…］（Select Folder for Objects...）
オブジェクトファイルを保存するフォルダを選択します。
［実行可能ファイルの名前］（Name of Executable）
生成された実行可能ファイルの名前を指定します。
［実行可能ファイルを作成］（Create Executable）
［実行可能ファイルの名前］（Name of Executable）で指定した名前が付いたターゲットハードウェアまたはシミュレータの実行可能アプリケーションプログラムを生成します。
［デバッグ情報］（Debug Information）
このオプションは、アプリケーションのシンボルテストに必要です。このオプションを無効にすると、µVision デバッガ内で関数名、変数名、またはソースコードにアクセスできなくなります。
［バッチファイルを作成］（Create Batch File）
µVision は、ビルドプロセスのすべてのコマンドを格納するバッチファイル（*.BAT）を生成します。このバッチファイルを使用すると、µVision4 IDE を使用せずにビルドプロセスを複製できます。
［HEX ファイルの作成］（Create HEX File）
Intel HEX ファイルを作成します。HEX ファイルは、ソフトウェアを PROM プログラミングユーティリティやその他のユーティリティにダウンロードするために使用されます。
［情報を参照］（Browse Information）
このオプションは統合されたソースブラウザに必要で、ソースファイル内の速やかな移動を可能にします。
［ライブラリの作成］（Create Library）
ライブラリファイルを生成します。ライブラリは、後でリンカが処理する可能性のあるオブジェクトモジュールのプログラムの集まりです。ライブラリは他のプロジェクトファイルの一部として使用できます。


µVision4 User's Guide (Japanese): ［ターゲット（MDK-ARM）］（Target (MDK-ARM)）

［ターゲット（MDK-ARM）］（Target (MDK-ARM)）

［Xtal (MHz)］
デバイスの XTAL 周波数を指定します。XTAL は、デバッガおよびフラッシュプログラマを設定するために使用されます。XTAL は、デバイスに外部的に接続されているメインオシレータを反映します。
［オペレーティングシステム］（Operating System）
適切な RTX ライブラリを追加し、カーネル認識デバッグを可能にする RTX カーネルを選択します。
［コード生成］（Code Generation）
アプリケーションの ARM モードまたは Thumb モードを選択します。
［クロスモジュールの最適化を使用］（Use Cross-Module Optimization）は、コードをさらに最適化するリンカフィードバックファイルを有効にします。
ベクタ浮動小数点（VFP）コプロセッサを持つデバイスで、［浮動小数点ハードウェア］（Floating Point Hardware）の使用法を選択します。
  • ［使用しない］（not used）：生成されたコードは、VFP 命令を使用しません（コンパイラスイッチ：none、アセンブラスイッチ：none)
  • ［ライブラリの呼び出し］（library calls）：コンパイラは、VFP 命令を使用するライブラリ呼び出しを生成します（通常、生成されるコードは非常に小さくなります。Thumb モードが選択されている場合に使用して下さい）。（コンパイラスイッチ：--fpu=softvfp+vfpv2、アセンブラスイッチ：--fpu=vfpv2)
  • ［インライン（strict ANSI）］（in-line (strict ANSI)）：コンパイラはほとんどの場合、インラインコードと共に VFP ユニットを使用します（ANSI 規格に準拠した高速コードを生成します）。（コンパイラスイッチ：--fpu=vfpu2、アセンブラスイッチ：--fpu=vfpv2)
  • ［インライン（高速）］（in-line (fast)）：コンパイラは、すべての VFP 命令にインラインコードを使用します（エラーチェックは必ずしも ANSI 規格に準拠していません）。（コンパイラスイッチ：--fpu=vfpv2 --fpmode=fast、アセンブラスイッチ：--fpu=vfpv2)

［MicroLIB を使用］（Use MicroLIB）により、小さなコードアプリケーション用に C 実行時ライブラリセットを変更できます。MicroLIB は、ANSI に完全に準拠していませんが、大部分の小さな組み込みアプリケーションには十分です。

［リンク時コード生成を使用］（Use Link-Time Code Generation）は、次のような追加のコード最適化を実行するマルチファイルコンパイルを有効にします。

  • モジュール間の関数のインライン化。
  • 参照されない変数および関数の削除。
  • 変数の再配置によるメモリアクセスの最適化。
  • メモリプールの再利用（可能な場合）。
［読み出し専用のメモリ領域］（Read/Only Memory Areas）
RO 領域（通常、ROM スペースに位置）を指定します。各エントリの前の［デフォルト］（default）チェックボックスをオンにすると、アプリケーション用の領域がグローバルになります。特定の領域に個々のモジュールを割り当てるには、［プロパティ］（Properties）ダイアログを使用します。［スタートアップ］（Startup）は、スタートアップコードに使用する領域を選択します。
［読み出し/書き込みメモリ領域］（Read/Write Memory Areas）
ZI および RW 領域（通常、RAM スペースに位置）を指定します。各エントリの前の［デフォルト］（default）チェックボックスをオンにすると、アプリケーション用の領域がグローバルになります。特定の領域に個々のモジュールを割り当てるには、［プロパティ］（Properties）ダイアログを使用します。［初期化しない］（Noinit）は、ゼロ初期化から除外される領域を選択します。

注

  • ［読み出し専用のメモリ領域］（Read/Only Memory Areas）および［読み出し/書き込みメモリ領域］（Read/Write Memory Areas）の設定は、リンカのスキャッタファイルの作成に使用されます。その場合、［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）を、リンカのダイアログで有効にする必要があります。
  • RealView ARM ツールの評価版はリンカのスキャッタファイルをサポートしていません。そのため、［読み出し専用のメモリ領域］（Read/Only Memory Areas）および［読み出し/書き込みメモリ領域］（Read/Write Memory Areas）は使用できません。


µVision4 User's Guide (Japanese): ［GNU ARM アセンブラ］（GNU ARM Assembler）

［GNU ARM アセンブラ］（GNU ARM Assembler）

事前定義されたシンボル

Define
SETA ディレクティブを使用してシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前は、”Check,NoExtRam, X1=1+5“ のように値を任意に取得できます。
Undefine
上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

言語/コード生成

［Arm/Thumb インターワーキングの有効化］（Enable Arm/Thumb Interworking）
アセンブラのソースファイルのコードによって、ARM モードコードと Thumb モードコード間の呼び出しを可能にします。

その他のコントロール

［インクルードパス］（Include Paths）
ソースファイルパスの 1 つ以上のパスをセミコロンで区切って指定できます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないディレクティブを指定します。
［アセンブラ制御文字列］（Assembler control string）
アセンブラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［GNU ARM C コンパイラ］（GNU ARM C Compiler）

［GNU ARM C コンパイラ］（GNU ARM C Compiler）

プリプロセッサシンボル

Define
#if、#ifdef、および #ifndef
  を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define:Check,
  NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5
Undefine
上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

コード生成

［APCS（ARM プロシージャコール規格）を有効化］（Enable APCS (ARM Procedure Call Standard)）
ARM プロシージャコール規格に準拠したコードを生成します。
［スタックチェックコードを生成］（Generate Stack Check Code）
明示的なスタックサイズチェッキングを含むコードを生成します。これは、スタックオーバーフローの検出に役立ちます。
［ARM 命令セットと THUMB 命令セットの間の呼び出しをサポート］（Support Calls between ARM and THUMB Instruction Set）
CPU モード（ARM または Thumb）で呼び出すことのできるコードを生成します。
［最適化］（Optimization）
生成されたコードのコンパイラコードの最適化を制御します。
  • ［デフォルト］（Default）：コンパイラのデフォルト、または上位のターゲットまたはグループのレベルの設定を使用します。
  • ［レベル 0（-O0）］（Level 0 (-O0)）：一部の単純なソース変換を除き、すべての最適化をオフにします。
  • ［レベル 1（-O1）］（Level 1 (-O1)）：デバッグビューに著しく悪影響を及ぼす最適化をオフにします。
  • ［レベル 2 速度 (-O2)］（Level 2 Speed (-O2)）：ほとんどすべての最適化を使用し、実行速度を最適化します。
  • ［レベル 2 サイズ（-Os）］（Level 2 Size (-Os)）：ほとんどすべての最適化を使用し、コードサイズを最適化します。
  • ［レベル 3（-O3）］（Level 3 (-O3)）：完全に最適化されたコードを生成します。
［警告］（Warnings）
警告メッセージの生成を制御します。
［Strict ANSI C］
ソースファイルが Strict ANSI C に従っているかどうかをチェックします。
［Thumb コードのコンパイル］（Compile Thumb Code）
Thumb 命令セットを使用して Thumb コードを生成します。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。#include "filename.h" の場合、コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または #include <filename.h> を使用した場合、インクルードパスボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）ダイアログで指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないコンパイラディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［GNU ARM リンカ］（GNU ARM Linker）

［GNU ARM リンカ］（GNU ARM Linker）

［ガーベジコレクションを有効化］（Enable Garbage Collection）
使用されていない入力セクションのガーベジコレクションを有効にします。
［標準システムスタートアップファイルを使用しない］（Do not use Standard System Startup Files）
プログラムにメインルーチンが含まれていない場合は、このオプションを有効にします。
［標準システムライブラリを使用しない］（Do not use Standard System Libraries）
独自のシステムライブラリを指定する場合は、このオプションを有効にします。
［数学ライブラリを使用］（Use Math Libraries）
浮動小数点演算をサポートしている C 実行時ライブラリを使用します。
［テキストの開始］（Text Start）
プログラムコードおよび定数（ROM）のアドレスを開始します。
［データの開始］（Data Start）
初期化されていない変数（RAM）のアドレスを開始します。
［BSS の開始］（BSS Start）
初期化された変数（RAM）のアドレスを開始します。
［リンカのスクリプトファイル］（Linker Script File）
GNU ツールチェーンには、メモリレイアウトを制御するリンカコントロールファイルが必要です。ほとんどのシステムに適合する事前定義されたリンカコントロールファイルは \ARM\GNU フォルダ内にあります。ファイルは使用するアプリケーションに適合していなければならないため、このファイルをプロジェクトフォルダにコピーし、［ターゲットのオプション］（Options for Target）→［リンカ］（Linker）で入力して下さい。リンカコントロールファイルはメモリレイアウトの定義に必要ですが、簡単なテストプログラムについては省略可能です。
［ライブラリを挿入］（Include Libraries）
プロジェクトに追加するアーカイブライブラリファイルを指定します。
［インクルードパス］（Include Paths）
アーカイブライブラリを含めるために検索されるパスのリストです。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールがない場合に、必要な任意のリンカコマンドを指定します。
［リンカ制御文字列］（Linker control string）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［リスト（GNU ARM）］（Listing (GNU ARM)）

［リスト（GNU ARM）］（Listing (GNU ARM)）

［リストのためのフォルダを選択…］（Select Folder for Listings...）
リストファイルを保存するフォルダを選択します。

［アセンブラのリスト］（Assembler Listing）

プロジェクトターゲットのアセンブリソースファイルのリストファイルを作成します。
［高レベルソース］（High Level Source）
アセンブラのリストに高レベルのソース行を挿入します。
［False 条件］（False Conditionals）
false if 文（または .ifdef、あるいは他の条件文）があるか、または true if 文の後に .else があるためにアセンブルされないすべての行はリストから除外されます。
［アセンブリコード］（Assembly Code）
アセンブラ命令をリストに挿入します。
［デバッグディレクティブ］（Debugging Directives）
リストにデバッグディレクティブを挿入します。
［マクロ拡張］（Macro Expansions）
リストにマクロ拡張を挿入します。
［フォームの処理］（Forms Processing）
有効にすると、リストにフォーマットは挿入されません。
［シンボル］（Symbols）
選択すると、シンボル情報がリストファイルに挿入されます。

［リンカのリスト］（Linker Listing）

プロジェクトターゲットのリンカからマップファイルを作成します。
［メモリマップ］（Memory Map）
選択すると、プログラムのメモリマップがマップファイルに挿入されます。
［クロスリファレンス］（Cross Reference）
選択すると、シンボルのクロスリファレンスリストがマップファイルに挿入されます。


µVision4 User's Guide (Japanese): ［出力（GNU ARM）］（Output (GNU ARM)）

［出力（GNU ARM）］（Output (GNU ARM)）

［オブジェクトのためのフォルダを選択…］（Select Folder for Objects...）
オブジェクトファイルを保存するフォルダを選択します。
［実行可能ファイルの名前］（Name of Executable）
生成された実行可能ファイルの名前を指定します。
［実行可能ファイルを作成］（Create Executable）
ターゲットハードウェアまたはシミュレータの実行可能アプリケーションプログラムを生成します。
［デバッグ情報］（Debug Information）
このオプションは、アプリケーションのシンボルテストに必要です。このオプションを無効にすると、µVision デバッガ内で関数名、変数名、またはソースコードにアクセスできなくなります。
［HEX ファイルの作成］（Create HEX File）
Intel HEX ファイルを作成できます。HEX ファイルは、ソフトウェアを PROM プログラミングユーティリティやその他のユーティリティにダウンロードするために使用されます。
［ビッグエンディアン］（Big Endian）
ビッグエンディアン CPU 構成のためのコードを生成します。
［バッチファイルを作成］（Create Batch File）
µVision は、ビルドプロセスのすべてのコマンドを格納するバッチファイル（*.BAT）を生成します。このバッチファイルを使用すると、µVision IDE を使用せずにビルドプロセスを複製できます。
［ライブラリの作成］（Create Library）
ライブラリファイルを生成します。ライブラリは、後でリンカが処理する可能性のあるオブジェクトモジュールのプログラムの集まりです。ライブラリは他のプロジェクトファイルの一部として使用できます。


µVision4 User's Guide (Japanese): ［ターゲット（GNU ARM）］（Target (GNU ARM)）

［ターゲット（GNU ARM）］（Target (GNU ARM)）

［Xtal (MHz)］
デバイスの XTAL 周波数を指定します。
［オペレーティングシステム］（Operating System）
現在、実装されていません。


µVision4 User's Guide (Japanese): アセンブラ

アセンブラ

選択したデバイスとツールセットに応じて、次のいずれかのアセンブラページを利用できます。

  • ［MDK-ARM アセンブラ］（MDK-ARM Assembler）
  • ［Keil A166 アセンブラ］（Keil A166 Assembler）
  • ［Keil Ax51 アセンブラ］（Keil Ax51 Assembler）
  • ［Keil A251 アセンブラ］（Keil A251 Assembler）
  • ［GNU ARM アセンブラ］（GNU ARM Assembler）


µVision4 User's Guide (Japanese): ［バッチビルド］（Batch Build）

［バッチビルド］（Batch Build）

［プロジェクトターゲットの選択］（Select Project Targets）
ターゲットを選択できるアルファベット順のリストです。これらのボタンに関連するアクションは、このリストで選択されたターゲットにのみ適用されます。
［ビルド］（Build）
変更されたファイルをコンパイルしてアセンブルし、選択したターゲットにリンクするボタンです。
［再ビルド］（Rebuild）
変更されたかどうかに関係なく、すべてのファイルをコンパイルしてアセンブルし、選択したターゲットにリンクするボタンです。
［クリーン］（Clean）
選択したターゲットのオブジェクトファイルを削除するボタンです。
［すべてを選択］（Select All）
マウスを 1 回クリックしてすべてのターゲットを選択できるボタンです。
［すべての選択を解除］（Deselect All）
マウスを 1 回クリックしてすべてのターゲットの選択を解除できるボタンです。
［閉じる］（Close）
ダイアログを閉じます。


µVision4 User's Guide (Japanese): ［ブレークポイント］（Breakpoints）

［ブレークポイント］（Breakpoints）

［現在のブレークポイント］（Current Breakpoints）
現在のアクティブなブレークポイントをリストします。
［式］（Expression）
ブレークポイントの式を指定します。例
［カウント］（Count）
［カウント］（Count）の値は、ブレークポイントがトリガされる前に、ブレークポイント式が True となる回数を指定します。
［コマンド］（Command）
ブレークポイントにコマンドを指定すると、µVision によってそのコマンドが実行され、ターゲットプログラムの実行が再開します。このコマンドでは、µVision デバッグ関数またはシグナル関数を指定することもできます。µVision 関数でプログラムの実行を中断するには、_break_ システム変数を設定します。詳細については、「システム変数」を参照して下さい。
［定義］（Define）
指定したブレークポイントを定義します。
［選択範囲を削除］（Kill Selected）
リストで選択したブレークポイントを削除します。
［すべて削除］（Kill All）
このプロジェクトについて定義されているすべてのブレークポイントを削除します。
［閉じる］（Close）
ダイアログを閉じます。

アクセス

［読み出し］（Read）
メモリ読み出しアクセスが発生するとアクティブになるアクセスブレークを定義します。
［書き込み］（Write）
メモリ書き込みアクセスが発生するとアクティブになるアクセスブレークを定義します。
［サイズ］（Size）
アクセスブレーク時にチェックされるメモリサイズを指定します。
［バイト］（Bytes）
メモリサイズをバイト単位で指定します。
［オブジェクト］（Objects）
メモリサイズをオブジェクトとして指定します。


µVision4 User's Guide (Japanese): ［Keil Cx51 コンパイラ］（Keil Cx51 Compiler）

［Keil Cx51 コンパイラ］（Keil Cx51 Compiler）

プリプロセッサシンボル

Define
#if、#ifdef、および #ifndef
  を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define:Check,
  NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5
Undefine
Undefine は、上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

コード最適化

［レベル］（Level）
オブジェクトコードの生成時にコンパイラで使用する最適化レベルを設定します。
［優先］（Emphasis）
コンパイラがコードサイズを最適化するか、実行速度を最適化するかを指定します。
［グローバルレジスタの色分け］（Global Register Coloring）
アプリケーション全体にわたるレジスタ最適化を有効にします。これを設定すると、c51 コンパイラは外部関数によって使用されているレジスタを認識し、µVision は、C ソースファイルの反復再変換を自動的に実行してレジスタ割り当ての効率を向上させます。
［リンカコードパッキング（AJMP/ACALL の最大化）］（Linker Code Packing (max. AJMP / ACALL)）
リンカレベルプログラムの最適化のために、オブジェクトファイルに情報を挿入するようにコンパイラに指示します。有効にすると、LX51 リンカ/ロケータは、この最適化を実行します。
［絶対レジスタアクセスを使用しない］（Don't use absolute register accesses）
R0 ～ R7 のレジスタについて、異なるレジスタバンクからの関数呼び出しが可能な絶対レジスタアドレス指定を無効にします。C コンパイラは PUSH 命令や POP 命令など、ARx シンボルを使用できず、置換コードを挿入する必要があるため、コードは少し長くなります。ただし、コードは選択されたレジスタバンクからは独立します。

その他のコントロール

［警告］（Warnings）
コンパイラの警告を非表示にできます。
［浮動小数点比較のために丸めるビット数］（Bits to round for float compare）
浮動小数点比較を実行する前に丸めるビット数を指定します。デフォルト値（3）を指定すると、浮動小数点比較を実行する前に浮動小数点値の最下位 2 ビットが丸められます。
［アドレスの割り込みベクタ］（Interrupt vectors at address）
割り込み関数の割り込みベクタを生成するように C コンパイラに指示し、割り込みベクタテーブルのベースアドレスを指定します。
［変数の順序を維持］（Keep Variables in Order）
メモリ内の変数の順序を、C ソースファイルで定義されている順に並べます。
［ANSI 整数のプロモーションルールを有効化］（Enable ANSI integer promotion rules）
操作の実行前に式が少ないビット数の型から整数式にプロモートされます。Cx51 コンパイラと他の ANSI コンパイラ間の互換性を確保するために、通常、整数プロモーションは有効になっています。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。#include "filename.h" の場合、コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または #include <filename.h> を使用した場合、インクルードパスボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）で指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil C166 コンパイラ］（Keil C166 Compiler）

［Keil C166 コンパイラ］（Keil C166 Compiler）

プリプロセッサシンボル

Define
#if、#ifdef、および #ifndef
  を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define:Check,
  NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5
Undefine
上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

コード最適化

［レベル］（Level）
オブジェクトコードの生成時にコンパイラで使用する最適化レベルを設定します。
［優先］（Emphasis）
コンパイラがコードサイズを最適化するか、実行速度を最適化するかを指定します。
［グローバルレジスタの色分け］（Global Register Coloring）
アプリケーション全体にわたるレジスタ最適化を有効にします。これを設定すると、C166 コンパイラは外部関数によって使用されているレジスタを認識し、µVision は、C ソースファイルの反復再変換を自動的に実行してレジスタ割り当ての効率を向上させます。
［命令を並べ替えてパイプライン効果を最小化］（Reorder Instructions to Minimize Pipeline Effects）
XE16x および XC20x デバイスのバリアントについてウェイト状態とパイプラインストールを最小化するために命令を並べ替えます。
［非レジスタ自動変数に静的メモリを使用］（Use Static Memory for Non-Register Automatics）
有効にすると、コンパイラは、CPU レジスタに割り当てることのできない自動変数（パラメータではない）に静的なメモリロケーションを使用します。生成されたコードは再入不能ですが、コードサイズは縮小され、実行速度が向上します。
［ポインタアクセスでのエイリアスチェック］（Alias Checking on Pointer Accesses）
無効にすると、コンパイラは、最適化の段階でポインタの書き込み操作を無視します。レジスタが変数を格納している場合、ポインタを通じたアクセスによって変数が変更されていても、その変数が再利用されます。プログラムでポインタによって変数が変更される可能性がない場合は、プログラムサイズを小さくするためにこのオプションを無効にして下さい。

その他のコントロール

［警告］（Warnings）
コンパイラの警告を非表示にできます。
［変数の順序を維持］（Keep Variables in Order）
メモリ内の変数の順序を、C ソースファイルで定義されている順に並べます。
［'char' を 'unsigned char' として処理］（Treat 'char' as 'unsigned char'）
プレーン char が宣言されたすべての変数を unsigned char 変数として処理するようにコンパイラに指示します。
［割り込み開始時に DPP を保存］（Save DPP on Interrupt Entry）
このオプションを選択すると割り込み関数のパフォーマンスが向上します。また、割り込み関数内に DPP0 レジスタと DPP3 レジスタを保持しないようにコンパイラに指示します。DPP0 および DPP3 レジスタが、割り込み関数によって呼び出されるアセンブリサブルーチン内で変更されないことが確かである場合は、このオプションを有効にして下さい。
［倍精度浮動小数点］（Double-precision Floating Point）
C プログラムで double 型を使用している場合は、64 ビット（倍精度）浮動小数点比較を有効にして下さい。float 型は引き続き 32 ビット浮動小数点演算を使用します。無効にすると、double 型が指定されている場合でも、32ビットを使用してすべての浮動小数点演算が実行されます。
［ユーザスタックに一時変数を保存］（Save Temporary Variables on User Stack）
一時結果と呼び出される側によって保存される変数をユーザスタックに保存するようにコンパイラに指示します。システムのスタックスペースが不足した場合にこのオプションが必要になる可能性があります。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。次のようにした場合、
#include "filename.h"
コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または次のようにした場合、
#include <filename.h>
インクルードパスのボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）で指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないアセンブラディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil C251 コンパイラ］（Keil C251 Compiler）

［Keil C251 コンパイラ］（Keil C251 Compiler）

プリプロセッサシンボル

Define
#if、#ifdef、および #ifndef
  を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define:Check,
  NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5
Undefine
上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。

コード最適化

［レベル］（Level）
オブジェクトコードの生成時にコンパイラで使用する最適化レベルを設定します。
［優先］（Emphasis）
コンパイラがコードサイズを最適化するか、実行速度を最適化するかを指定します。
［グローバルレジスタの色分け］（Global Register Coloring）
アプリケーション全体にわたるレジスタ最適化を有効にします。これを設定すると、C251 コンパイラは外部関数によって使用されているレジスタを認識し、µVision は、C ソースファイルの反復再変換を自動的に実行してレジスタ割り当ての効率を向上させます。
［再入可能変数の生成］（Generate reentrant functions）
デフォルトでは（無効にした場合）、非レジスタ自動変数およびパラメータ変数に静的メモリが使用されます。これによって高速コードが生成されます。リンカ/ロケータは、関数が互いに呼び出し合わない場合にはその関数の静的メモリ領域をオーバーレイします。

有効にした場合は、非レジスタ自動変数およびパラメータ変数にスタック空間が使用されます。この場合、一度に複数のプロセスで共有できる再入可能コードが生成されます。

［ポインタアクセスでのエイリアスチェック］（Alias Checking on Pointer Accesses）
このチェックボックスをオンにすると、コンパイラは、通常ポインタを通じてエイリアスを所有する変数を保持しているレジスタを強制的にリロードします。このチェックボックスをオフにすると、ポインタまたは他のエイリアスによって変数が変更されている場合でも、コンパイラはレジスタの内容を再利用します。

その他のコントロール

［警告］（Warning）
コンパイラの警告を非表示にできます。
［変数の順序を維持］（Keep Variables in Order）
メモリ内の変数の順序を、C ソースファイルで定義されている順に並べます。
［プレーン char' を 'unsigned char' として処理］（Treat plain ‘char’ as ‘unsigned char’）
プレーン char が宣言されたすべての変数を unsigned char 変数として処理するようにコンパイラに指示します。
［倍精度浮動小数点］（Double-precision Floating Point）
C プログラムで double 型を使用している場合は、64 ビット（倍精度）浮動小数点比較を有効にして下さい。float 型は引き続き 32 ビット浮動小数点演算を使用します。無効にすると、double 型が指定されている場合でも、32ビットを使用してすべての浮動小数点演算が実行されます。
［浮動小数点比較のために丸めるビット数］（Bits to round for float compare）
浮動小数点比較を実行する前に丸めるビット数を指定します。デフォルト値（3）を指定すると、浮動小数点比較を実行する前に浮動小数点値の最下位 2 ビットが丸められます。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。#include "filename.h" の場合、コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または #include <filename.h> を使用した場合、インクルードパスボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）で指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［色とフォント］（Colors and Fonts）

［色とフォント］（Colors and Fonts）

［ウィンドウ］（Window）
編集可能なウィンドウをリストします。
［要素］（Element）
編集するウィンドウ要素をリストします。

［フォント］（Font）

［フォント］（Font）
フォントとサイズを指定するには、フォント名をクリックします。
［サイズ］（Size）
サイズを指定するには、フォント名をクリックします。
［スタイル］（Style）
フォントスタイル（標準、太字、斜体、斜体 + 太字）を指定します。

［色］（Colors）

［前景］（Foreground）
フォントの色を指定します。
［背景］（Background）
背景の色を指定します。ほとんどの要素については、「デフォルト」色を選択できます。この場合、「テキスト」用に選択した背景色が使用されます。
［コメントに色を使用］（Use Color in Comments）
有効にすると、コメントの要素にも色が付きます。
［サンプル］（Sample）
選択されたフォント/色のオプションのサンプルを表示します。
［ウィンドウの設定をリセット］（Reset Settings of Window）
選択したウィンドウの設定をデフォルトにリセットします。


µVision4 User's Guide (Japanese): コンパイラ

コンパイラ

選択したデバイスとツールセットに応じて、次のいずれかのコンパイラページを利用できます。

  • ［MDK-ARM C コンパイラ］（MDK-ARM C Compiler）
  • ［Keil C166 コンパイラ］（Keil C166 Compiler）
  • ［Keil Cx51 コンパイラ］（Keil Cx51 Compiler）
  • ［Keil C251 コンパイラ］（Keil C251 Compiler）
  • ［GNU ARM C コンパイラ］（GNU ARM C Compiler）


µVision4 User's Guide (Japanese): ［コンフィギュレーション］（Configuration）

［コンフィギュレーション］（Configuration）

［エディタ］（Editor）
ファイルおよびプロジェクト処理、外観、エディタ設定全般を設定したり、構文の色分けを有効/無効にしたりします。
［色とフォント］（Colours & Fonts）
µVision4 ウィンドウの外観を個別に定義します。
［ユーザキーワード］（User Keywords）
個々のファイルタイプのキーワードを定義します。
［ショートカットキー］（Shortcut Keys）
ショートカットキーを定義または再定義します。
［テンプレート］（Templates）
コード記述に使用できるテンプレートを定義します。
［その他］（Other）
現在、TCP/IP ポートは有効または無効にできます。


µVision4 User's Guide (Japanese): ［デバイスデータベース］（Device Database）

［デバイスデータベース］（Device Database）

このダイアログでは、デバイスデータベースに新しいデバイスを追加できます。設定オプションの詳細については、「C. デバイスデータベースのパラメータ」を参照して下さい。

［データベース］（Database）
選択されている Device Database™ でサポートされているすべての CPU をリスト表示します。
［ベンダ］（Vendor）
選択したデバイスの製造元を表示します。
［ファミリ］（Family）
選択したデバイスのファミリを表示します。
［デバイス］（Device）
選択されたデバイスの CPU 名です。
［説明］（Description）
デバイスの機能に関する簡単な説明です。
［オプション］（Options）
µVision IDE の設定オプションです。
［追加］（Add）
［ベンダ］（Vendor）、［ファミリ］（Family）、［デバイス］（Device）、［説明］（Description）、［オプション］（Options）などのフィールドを使用して、選択したデータベースに新しいデバイスを追加します。
［更新］（Update）
現在選択されているデバイスの変更内容をアクティブデータベースに更新します。
［削除］（Remove）
デバイスデータベースからエントリを削除します。警告は表示されません。デバイスは直ちに削除されます。


µVision4 User's Guide (Japanese): ［デバイスの選択］（Select Device）

［デバイスの選択］（Select Device）

別のデバイスに切り替えるにはこのダイアログを使用します。通常、別のデバイスへの切り替えは、汎用デバイスでプロジェクトを開始し、サポートされているデバイスに切り替える場合に行います。

独自のデバイスを作成したり、更新したり、既存のデバイスを削除したりすることもできます。

［データベース］（Database）
汎用デバイスデータベースか、または TOOLS.INI ファイルに入力されたカスタマイズ済みデバイスデータベースを選択できます。
［ベンダ］（Vendor）
選択したデバイスのベンダを表示します。
［デバイス］（Device）
選択されているデバイスの名前を表示します。
［ツールセット］（Toolset）
使用しているツールチェーンです。
［説明］（Description）
コメントが表示されます。コンフィギュレーション設定が表示される場合があります。


µVision4 User's Guide (Japanese): ［デバイス］（Device）

［デバイス］（Device）

選択されているデバイス設定とツールセットを確認します。

［データベース］（Database）
汎用デバイスデータベースか、または TOOLS.INI ファイルに入力されたカスタマイズ済みデバイスデータベースを選択できます。
［ベンダ］（Vendor）
選択したデバイスのベンダを表示します。
［デバイス］（Device）
選択されているデバイスの名前を表示します。
［ツールセット］（Toolset）
選択されたデバイスのソフトウェア開発に必要なツールセットを表示します。
［C51 ツールセットに BL51 ではなく拡張リンカ/ロケータ（LX51）を使用］（Use Extended Linker/Lodator (LX51) instead of BL51）（C51 ツールセットの場合）
far メモリタイプのサポート、完全なアプリケーションを最適化するリンカコードパッキング、拡張アドレス空間を持つデバイスには LX51 が必要です。LX51 には、ユーザメモリクラス、特別 ROM（SROM）サポート、マルチアプリケーションリンケージなどの新しい機能がいくつか用意されています。
［C51 ツールセットに A51 ではなく拡張アセンブラ（AX51）を使用］（Use Extended Assembler (AX51) instead of A51）（C51 ツールセットの場合）
アセンブラレベルで LX51 の機能を完全にサポートするには AX51 が必要です。また、命令セット拡張または拡張アドレス空間を持つデバイスについても、AX51 が必要です。


µVision4 User's Guide (Japanese): ［インラインアセンブラ］（Inline Assembler）

［インラインアセンブラ］（Inline Assembler）

実行時に現在の命令を変更するためのダイアログを表示します。このダイアログは、C51 および C251 ツールセットについては有効になっています。

［逆アセンブリ］（Disassembly）ウィンドウは［インラインアセンブリ］（Inline Assembly）ウィンドウと共に表示され、［現在のアセンブラアドレス］（Current Assembler Address）までスクロールします。

［現在の命令］（Current Instruction）
現在の命令、アドレス、OP コードを表示します。
［現在のアセンブリアドレス］（Current Assembly Address）
値を変更し、［新しい命令の入力］（Enter New Instruction）フィールドを空白のままにして、それぞれのアドレスにスクロールします。
［新しい命令の入力］（Enter New Instruction）
［現在のアセンブリアドレス］（Current Assembly Address）で命令を置換する新しい命令を入力します。

注

  • コマンドを終了するには Return キーを使用するか、フィールドを閉じます。


µVision4 User's Guide (Japanese): ［デバッグ設定］（Debug Settings）

［デバッグ設定］（Debug Settings）

このダイアログは現在、ARM シミュレータでのみ利用できます。

［メッセージの表示］（Display Message）
選択されたイベントが発生した場合、出力ウィンドウの［コマンド］（Command）ページにメッセージが出力されます。
［実行の停止］（Stop Execution）
選択されたイベントが発生した場合にプログラムのシミュレーションを停止します。


µVision4 User's Guide (Japanese): ［デバッグ］（Debug）

［デバッグ］（Debug）

ハードウェアやシミュレーションを使用するかどうかなど、デバッガのオプションを設定します。

［シミュレータを使用］（Use Simulator）
プログラムテスト用 µVision シミュレータを選択します。このシミュレータはデバッグを行います。
［シミュレータの設定］（Simulator Settings）
起動機能や BUS 特性（一部のデバイスでのみ使用可能）などのデバイス固有のシミュレータのオプションを設定します。
［速度をリアルタイムに制限］（Limit Speed to Real-Time）
CPU シミュレーションの速度と実際のクロックである PC クロックを同期できます。この設定は、リアルタイムより速い速度でシミュレートするターゲットにのみ有効です（多くの場合 8051 アプリケーション）。
［使用...（ターゲットドライバ）］（Use ... (Target Driver)）
ハードウェアのデバッグ用ターゲットドライバを選択します。プログラムテストにさまざまなソフトウェアツールまたはハードウェアツールを使用する複数の AGDI ターゲットドライバを使用できます。例えば、組み込みオンチップデバッグハードウェアを使用する ULINK USB-JTAG アダプタドライバを選択できます。
［ターゲットドライバの設定］（Target Driver Settings）
通信チャネルやメモリキャッシュなどのターゲットドライバオプションを設定します。

このダイアログページには、次の内容を設定するシミュレータおよびターゲットドライバのほとんど同一の 2 つのセクションがあります。

［起動時にアプリケーションをロード］（Load Application at Startup）
デバッガの起動時に［出力］（Output）ダイアログで指定した実行可能ファイルをロードします。
［main() まで実行］（Run to main()）
µVision デバッガの起動後、メインラベルまでプログラムを実行します。
［初期化ファイル］（Initialization File）
デバッガの起動時に実行されたデバッグコマンドまたはデバッグセッション時に使用されるデバッグ関数の定義を記述したファイルを指定します。このようなファイルは、コンフィギュレーションの設定に使用されます（［ツールボックス］（Toolbox）のボタンなど）。エディタウィンドウを開くには［編集］（Edit）または［作成］（Create）をクリックします。
［デバッグセッションの設定を復元］（Restore Debug Session Settings）
ブレークポイント、ウォッチポイント、PA（パフォーマンスアナライザ）、メモリ表示、およびツールボックスの前回のデバッグセッションの設定を使用します。
［CPU/ドライバ DLL - パラメータ］（CPU/Driver DLL - Parameter）
シミュレータまたはターゲットドライバの DLL 設定（デバイスデータベースから取得）を確認します。DLL ファイルまたはパラメータは変更しないで下さい。
［ダイアログ DLL - パラメータ］（Dialog DLL - Parameter）
ダイアログの DLL 設定（デバイスデータベースから取得）を確認します。DLL ファイルまたはパラメータは変更しないで下さい。

µVision は、次の順序でダイアログ［プロジェクト］（Project）→［オプション］（Options）→［デバッグ］（Debug）のコマンドを実行します。

  1. ［起動時にアプリケーションをロード］（Load Application at Startup）が有効な場合、デバッガは［プロジェクト］（Project）→［ターゲットのオプション］（Options for Target）→［出力］（Output）→＜実行可能ファイルの名前＞のファイルをロードします。
  2. ［デバッグセッション設定を復元］（Restore Debug Session Settings）が有効な場合、
  3. 初期化ファイルのコマンドが実行されます。
  4. ［main() まで実行］（Run to main ()）が有効な場合、コマンド G, main が実行されます。


µVision4 User's Guide (Japanese): ［デバッグ］（Debug）

［デバッグ］（Debug）

デバッグモードでは、以下のダイアログにアクセスできます。

［ブレークポイント］（Breakpoints）
複合ブレークポイントを定義します。
[メモリマップ]（Memory Map）
メモリ範囲をマップし、実行許可の指定、読み出し、書き込み、実行を行います。
［インラインアセンブラ］（Inline Assembler）
実行時に命令を変更します。このオプションは 8051、251、および C166 デバイスでのみアクティブです。
［関数エディタ］（Function Editor）
関数を追加、削除、およびコンパイルし、デバッグに必要なシグナルをシミュレートします。通常、これらの関数はアプリケーションに用意されていません。
［デバッグ設定］（Debug Settings）
シミュレータのイベントを定義します。このオプションは ARM デバイスでのみアクティブです。


µVision4 User's Guide (Japanese): ［Keil EC++ コンパイラ］（Keil EC++ Compiler）

［Keil EC++ コンパイラ］（Keil EC++ Compiler）

プリプロセッサシンボル
Define は、#if、#ifdef、および #ifndef を使用してチェックできるプリプロセッサシンボルを設定します。定義された名前は、入力されたとおりに（大文字と小文字の区別どおりに）コピーされます。それぞれの名前にはオプションで値を指定できます。Define: Check, NoExtRam, X1=1+5 は、次の C プリプロセッサ #define ステートメントと同じです。
#define Check
#define NoExtRam
#define X1 1+5

Undefine は、上位のターゲットまたはグループのレベルのオプションダイアログで入力された以前の Define の割り当てをクリアします。
［インクルードパス］（Include Paths）
ヘッダファイルを検索するための 1 つ以上のパスをセミコロンで区切って指定できます。#include "filename.h" の場合、コンパイラは現在のフォルダを最初に検索した後、ソースファイルのフォルダを検索します。この検索が失敗した場合、または #include <filename.h> を使用した場合、インクルードパスボックスで指定されているパスが検索されます。この検索も失敗した場合、［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）で指定された INC フォルダのパスが使用されます。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールのないアセンブラディレクティブを指定します。
［コンパイラ制御文字列］（Compiler Control String）
コンパイラのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［編集］（Edit）

［編集］（Edit）

［編集］（Edit）メニューのさまざまなオプションを使用することで、コードの記述作業が容易になります。 ここでは、各ダイアログについて説明します。

［ファイル内検索］（Find in Files）
開いているファイルまたはプロジェクト全体で特定のパターンをスキャンするツールです。
［コンフィギュレーション］（Configuration）
構文の色分け表示、ショートカットキー、キーワード、テンプレートなどのエディタの設定を行います。

注

  • メニューポイントは、その使用の可否に応じて色分けされ、実行したアクションによって異なります。


µVision4 User's Guide (Japanese): ［エディタ］（Editor）

［エディタ］（Editor）

一般的なエディタの設定

［自動インデント］（Auto Indent）
前の行の最初の文字の列の位置に挿入位置を字下げします。
［仮想スペース］（Virtual Spaces）
カーソルを上または下に移動する場合、カーソルによって列の位置が変更されないようにします。
［空白文字の表示］（View White Space Characters）
空白文字をドットで表示します。

関数の表示

［モジュールを表示］（Display Modules）
有効な場合、［関数］（Function）タブで関数名がソースモジュールに従いグループ化されます。無効な場合、すべての関数名はアルファベット順に一覧表示されます。
［プロジェクトファイル内で関数名をスキャンする］（Scan function names in project files）
プロジェクトファイルで関数名がスキャンされます。関数名は、デフォルトで［プロジェクト］（Project）ウィンドウにある［関数］（Function）タブに表示されます。
［現在のエディタファイルで関数名をスキャンする］（Scan function names in current editor files）
現在開いているエディタファイルで関数名がスキャンされます。

外観

［現在の行をハイライトする］（Highlight Current Line）
アクティブなカーソル行が別の色でマークされます。
［一致している括弧および一致していない括弧を強調表示する］（Highlight matching and mismatched braces）
カーソルを括弧の上に移動すると、一致する括弧が強調表示されます。
［構文を色分けして印刷］（Print with Syntax Coloring）
エディタウィンドウで示された色を使用して印刷します。

ファイルとプロジェクトの処理

［バックアップファイル（*.BAK）を作成］（Create Backup files (*.BAK)）
ファイルを保存するときにバックアップを作成します。バックアップファイルは元のファイルと同じディレクトリに保存され、同じファイル名にファイル拡張子 .BAK が付いたものになります。
［外部変更ファイルの自動リロード］（Automatic reload of externally modified files）
外部ツールを使用して変更されたファイルのリロードを指定します。
［デバッグ状態に移行する前にプロジェクトを保存する］（Save Project before entering Debug）
プロジェクトファイル *.uvproj はデバッグの開始前に保存されます。
［デバッグ状態に移行する前にファイルを保存する］（Save Files before entering Debug）
プロジェクトソースコードファイルはデバッグの開始前に保存されます。

C/C++/ASM/その他のファイル

［構文の色分けを使用する］（Use syntax coloring）
［エディタの色］（Editor Colors）ダイアログボックスの定義に従い、言語要素の色分けを有効にします。このチェックボックスが選択されている場合は、µVision は C 言語の要素に別の色を指定します。選択されていない場合は、構文の色分けが無効になります。
［タブの代わりにスペースを挿入］（Insert spaces for tabs）
タブの代わりにスペースを挿入します。
［タブサイズ］（Tab size）
タブの長さをスペースで指定します。
［行番号を表示］（Show Line Numbers）
各テキストエディタの行の先頭に行番号を表示します。
［アウトライン表示で開く］（Open with Outlining）
関数がブロックでラップされ、展開したり、折りたたむことができるようになります。


µVision4 User's Guide (Japanese): ［ファイル］（File）

［ファイル］（File）

次のダイアログは µVision4 環境に直接関連付けられています。

［デバイスデータベース］（Device Database）
このダイアログを使用してプロジェクトのデバイスを選択します。リストからデバイスを追加、変更、または削除できます。
［ライセンス管理］（License Management）
製品のライセンス取得手順を確認し、ここで µVision4 機能のすべてをアクティブにします。


µVision4 User's Guide (Japanese): ［ファイル内検索］（Find in Files）

［ファイル内検索］（Find in Files）

ダイアログの詳細については、「ファイル内検索」を参照して下さい。

検索基準

［検索する文字列］（Find what）
検索する単語または単語の一部を入力します。
［ファイルの種類］（In files of type）
検索するファイルの種類を指定します。
［フォルダ内］（In folder）
検索するフォルダを指定します。

検索プロパティ

［サブフォルダを探す］（Look in sub-folders ）
指定したフォルダのサブフォルダも検索します。
［大文字と小文字を区別する］（Match case）
検索時に大文字と小文字を区別します。
［単語単位］（Match whole word only）
単語の一部ではなく単語全体を単位として検索します。
［隠しファイルとフォルダの検索］（Search hidden files and folders）
検索対象に隠しファイルとフォルダも含めます。デフォルトでは、非表示のオブジェクトはスキャンされません。

ボタン

［検索］（Find）
検索を開始します。
［参照］（Browse）
検索するフォルダを指定します。
［キャンセル］（Cancel）
このウィンドウを閉じます。


µVision4 User's Guide (Japanese): ［ユーティリティ］（Utilities）

［ユーティリティ］（Utilities）

この機能を使用して、ターゲットシステムのフラッシュメモリをプログラミングすることができます。

開発環境への追加や開発環境からの起動が可能なサードパーティ製のフラッシュプログラミングツールを使用できます。

ターゲットドライバまたはサードパーティ製のコマンドラインツール（通常はチップベンダが提供）を選択する必要があります。

［フラッシュプログラムのターゲットドライバを使用する］（Use Target Driver for Flash Programming）
µVision がフラッシュプログラムに使用するドライバを選択します。通常、このドライバは、デバッグインタフェースで使用されるドライバと同じです。
［設定］（Settings）
フラッシュドライバの設定ダイアログを開きます。
［デバッグ前にターゲットをアップデートする］（Update Target before Debugging）
デバッガを起動する前に最新のアプリケーションをダウンロードします。
［初期化ファイル］（Init File）
ターゲットのフラッシュ前に µVision が実行する必要がある初期化ファイルを指定します。この初期化ファイルには、フラッシュのダウンロードのターゲットを設定するために必要なデバッグコマンドが含まれている場合があります。

［編集...］（Edit...）を使用すると、テキストエディタを使用して初期化ファイルを開いたり、内容を変更したりできます。
［フラッシュプログラムに外部ツールを使用する］（Use External Tool for Flash Programming）
µVision は、ターゲットハードウェアをフラッシュするためにサードパーティ製ツールを呼び出します。
［コマンド］（Command）
使用するフラッシュツールのコマンド（通常は .EXE ファイル）を入力します。
［引数］（Arguments）
µVision がフラッシュツールに渡す引数を指定します。ここでキーシーケンスを使用することもできます。
［独立して実行］（Run Independent）
このオプションが有効な場合、µVision はフラッシュツールが完了するまで待機しません。
このオプションが無効な場合、µVision はフラッシュのダウンロードが完了し、出力ウィンドウにフラッシュツールの結果が表示されるまで待機します。


µVision4 User's Guide (Japanese): ［関数エディタ］（Function Editor）

［関数エディタ］（Function Editor）

関数ファイルの作成の詳細については、「関数の作成」を参照して下さい。

［開く］（Open）
参照ダイアログを開き、新しいファイルを選択して編集します。
［新規...］（New...）
新規ファイルを作成して、関数を入力します。
［保存］（Save）
エディタの内容をファイルに保存します。
［名前を付けて保存...］（Save As...）
現在のエディタの内容を別のファイル名で保存します。
［コンパイル］（Compile）
現在のファイルをコンパイルし、出力ウィンドウの［コンパイル・エラー］（Compile Errors）レジスタに結果を出力します。
［コンパイル・エラー］（Compile Errors）
コンパイル結果を表示します。エラーを選択して、エディタウィンドウでエラーがある行を検索します。


µVision4 User's Guide (Japanese): ［Keil BL51 ロケート］（Keil BL51 Locate）

［Keil BL51 ロケート］（Keil BL51 Locate）

［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）
［プロジェクト］（Project）→［オプション］（Options）→［ターゲット］（Target）で指定したメモリ情報を使用するにはこのオプションを有効にします。追加のセグメントをこれらの設定に追加することもできます。
［コード範囲］（Code Range）
CODE メモリクラスに配置されたセグメントのアドレス範囲を指定します（プログラムコードと定数に使用されます）。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout form Target Dialog）が有効な場合、アドレス範囲は［ターゲット］（Target）ダイアログの設定から取得されます。
［Xdata 範囲］（Xdata Range）
XDATA メモリクラスに配置されたセグメントのアドレス範囲を指定します（xdata メモリタイプで指定された変数に使用されます）。［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout form Target Dialog）が有効な場合、アドレス範囲は［ターゲット］（Target）ダイアログの設定から取得されます。
［コード］（Code）
CODE セグメントを絶対メモリに配置するか、セグメントの順序を指定します。
［Xdata］
Xdata セグメントを絶対メモリに配置するか、セグメントの順序を指定します。
［Pdata］
PDATA メモリクラスのベースアドレスを指定します。この設定には、スタートアップコードの PDATASTART の設定を反映する必要があります。
［優先順位］（Precede）
他の再配置可能な BIT、DATA、または IDATA セグメントの前にセグメントを配置します。
［ビット］（Bit）
BIT メモリクラスのベースアドレスを指定し、BIT セグメントを絶対メモリに配置するか、セグメントの順序を指定します。
［データ］（Data）
DATA メモリクラスのベースアドレスを指定し、DATA セグメントを絶対メモリに配置するか、セグメントの順序を指定します。
［Idata］
IDATA メモリクラスのベースアドレスを指定し、IDATA セグメントを絶対メモリに配置するか、セグメントの順序を指定します。
［スタック］（Stack）
?STACK という名前のスタックセグメントをメモリに配置します。デフォルトでは、リンカは、最後に使用された IDATA メモリアドレスにスタックを配置します。アドレスを手動で指定する場合、data または idata 変数が破損し、アドレスが実行時エラーにならないように注意して下さい。
［リンカ制御文字列］（Linker control string）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil BL51 その他］（Keil BL51 Misc）

［Keil BL51 その他］（Keil BL51 Misc）

［警告番号の無効化］（Disable Warning Numbers）
無効にする警告番号のコンマ区切りリストを入力します。
［リンカコントロールファイルを使用する］（Use Linker Control File）
リンカコントロールファイルを有効にします。
［オーバーレイ］（Overlay）
データのオーバーレイに使用されるコールツリーを変更します。通常、プログラムコールツリーは、リアルタイムオペレーティングシステムのスケジューラの場合と同様に、アプリケーションで関数ポインタが使用されるか、アプリケーションに仮想プログラムジャンプが含まれている場合に調整する必要があります。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールがない場合に、必要な任意のリンカコマンドを指定します。
［リンカ制御文字列］（Linker Control String）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil L166 ロケート］（Keil L166 Locate）

［Keil L166 ロケート］（Keil L166 Locate）

［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）
［プロジェクト］（Project）→［オプション］（Options）→［ターゲット］（Target）で指定したメモリ情報を使用するには、このオプションを有効にします。追加のクラスまたはセクションをこれらの設定に追加することもできます。
［C166 変数初期化テーブル］（C166 Variable Initialization Tables）
明示的な値とゼロクリアされた変数が宣言された、変数の初期化に使用するテーブルの場所を指定します。

DPP の使用法

［DPPUSE］
複数の DPP を NDATA および NCONST データグループに使用するかどうかを指定します。
［ndata］
開始 DPP レジスタおよび NDATA データグループのアドレス範囲を指定します。
［nconst］
開始 DPP レジスタおよび NCONST データグループのアドレス範囲を指定します。
［ターゲットクラス］（Target Classes）
［ターゲット］（Target）ダイアログで指定した RAM および ROM の定義で作成されたクラスを表示します。
［ユーザクラス］（User Classes）
ユーザクラスを使用すると、異なるソースモジュールのさまざまな変数を特殊なメモリ領域に配置できます。ユーザクラスの名前は、ディレクティブ RENAMECLASS を使用して C ソースコードで指定されます。
［ユーザセクション］（User Sections）
特定のメモリアドレスにセクションを配置できます。C プログラムのセクション名は、ソースファイル名およびメモリタイプから取得されます。
［リンカ制御文字列］（Linker Control String）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil L166 その他］（Keil L166 Misc）

［Keil L166 その他］（Keil L166 Misc）

［警告］（Warnings）
リンカの警告を有効または無効にします。警告レベルが 0 の場合は、ほとんどのリンカの警告が無効になり、レベルが 2 の場合は、すべての警告が有効になります。
［警告番号の無効化］（Disable Warning Numbers）
無効にする警告番号のコンマ区切りリストを入力します。
［リンカコントロールファイルを使用する］（Use Linker Control File）
すべてのリンカディレクティブを含んでいるリンカコントロールファイルを有効にします。これは、ダイアログで処理が困難な、複雑なリンカの呼び出しに有効です。入力ファイルリストと出力ファイル名は µVision IDE によって指定されています。
［再配置可能な出力ファイルの作成（LINKONLY）］（Create Relocatable Output File (LINKONLY)）
再配置可能なオブジェクトモジュールを作成します。このオプションが選択されている場合、出力ファイルは 2 度目にリンカに渡されます。これは、インクリメンタルリンキングに似ています。
［割り込みベクタテーブルのアドレス］（Interrupt Vector Table Address）
割り込みベクタテーブルの開始アドレスを指定します。デフォルトの開始アドレスは 000000h です。
［割り当て］（Assign）
リンク時にパブリックシンボルとその値を定義します。シンボルを区切るにはコンマを使用します。
［RegBank］
指定したレジスタバンクのベースアドレス、物理メモリアドレス、または順序を指定します。
［予約］（Reserve）
予約するメモリ範囲で、リンカが回避すべきものを指定します。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールがない場合に、必要な任意のリンカコマンドを指定します。
［リンカ制御文字列］（Linker Control String）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil Lx51 ロケート］（Keil Lx51 Locate）

［Keil Lx51 ロケート］（Keil Lx51 Locate）

［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）
［プロジェクト］（Project）→［オプション］（Options）→［ターゲット］（Target）で指定したメモリ情報を使用するには、このオプションを有効にします。ユーザクラスをこれらの設定に追加することもできます。
［予約］（Reserve）
予約するメモリ範囲で、リンカが回避すべきものを指定します。
［C クラス］（C Classes）
［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout form Target Dialog）が有効な場合、［ターゲット］（Target）ダイアログで指定されたメモリ定義について作成されたクラスが表示されます。
［ユーザクラス］（User Classes）
変数またはプログラムコードを特殊なメモリ領域に配置します。以下を使用します。
  • ユーザ定義クラスを指定する Ax51 アセンブラ SEGMENT 定義。
  • 変数またはプログラムコードを特殊なアドレス範囲に配置する Cx51 コンパイラ USERCLASS ディレクティブ。
［ユーザセグメント］（User Segments）
特定のメモリアドレスにセグメントを配置します。C プログラムのセグメント名はソースファイル名およびメモリタイプから取得されます。
［リンカ制御文字列］（Linker Control String）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［Keil Lx51 その他］（Keil Lx51 Misc）

［Keil Lx51 その他］（Keil Lx51 Misc）

［警告］（Warnings）
リンカの警告を有効または無効にします。警告レベルが 0 の場合は、ほとんどのリンカの警告が無効になり、レベルが 2 の場合は、すべての警告が有効になります。
［警告番号の無効化］（Disable Warning Numbers）
無効にする警告番号のコンマ区切りリストを入力します。
［リンカコントロールファイルを使用する］（Use Linker Control File）
リンカコントロールファイルを有効にします。
［大文字と小文字の区別のある記号］（Case Sensitive Symbols）
L251 のみ：このオプションが有効な場合、リンカは大文字と小文字の区別モードで動作します。
［割り当て］（Assign）
リンク時にパブリックシンボルとその値を定義します。シンボルを区切るにはコンマを使用します。
［オーバーレイ］（Overlay）
データのオーバーレイに使用されるコールツリーを変更します。通常、プログラムコールツリーは、リアルタイムオペレーティングシステムのスケジューラの場合と同様に、アプリケーションで関数ポインタが使用されるか、アプリケーションに仮想プログラムジャンプが含まれている場合に調整する必要があります。
［各種コントロール］（Misc Controls）
個別のダイアログコントロールがない場合に、必要な任意のリンカコマンドを指定します。
［リンカ制御文字列］（Linker Control String）
リンカのコマンドラインに現在のディレクティブを表示します。


µVision4 User's Guide (Japanese): ［ロジックアナライザ］（Logic Analyzer）

［ロジックアナライザ］（Logic Analyzer）

［現在のロジックアナライザシグナル］（Current Logic Analyzer Signals）
アクティブなターゲットについて現在定義されているロジックアナライザシグナルをリスト表示します。属性を変更するにはマウスでシグナルを選択します。
  • ［新規］（New）（挿入キー）を使用すれば、シグナル記録の VTREG または変数を追加できます。［削除］（Delete）（Delete キー）を使用すれば、選択したシグナルを削除できます。
  • 次の設定を変更するには、このリストでシグナルの名前を選択します。
［シグナルの表示］（Signal Display）
選択したシグナルの表示を設定します。
  • ［表示タイプ］（Display Type）では、グラフィカルな表示出力を［アナログ］（Analog）、［ビット（0 または 1）］（Bit (0 or 1)）、または［状態（シグナル遷移）］（State (signal transitions)）に設定します。
  • ［色］（Color）では、シグナルを表示する色を設定します。
  • ［16 進数表示］（Hexadecimal Display）をオンにすると、シグナル値は 16 進数値で表示されます。オフにすると、10 進数値で表示されます。
［表示範囲］（Display Range）
10 進数値または 16 進数値でアナログ表示タイプに選択されたシグナル値の範囲を設定します。
  • ［最小値］（Min Value）では最小値を設定します。
  • ［最大値］（Max Value）では最大値を設定します。
［式の表示（シグナルおよびマスク）>>シフト］（Display Formula (Signal & Mask) >> Shift）
シグナル値から特定の表示用ビットを抽出します。
  • ［AND マスク］（And Mask）では、シグナル値を表示する AND マスクを指定します。
  • ［右シフト］（Shift Right）では、シグナル値表示の右シフト因数を指定します。
［エクスポート/インポート］（Export / Import）
現在のロジックアナライザの設定を保存および復元します。
  • ［シグナル定義のエクスポート］（Export Signal Definitions）では、シグナル定義の現在の設定を使用してファイルを作成します。
  • ［シグナル定義のインポート］（Import Signal Definitions）では、ファイルからシグナル定義の設定を復元します。
［すべて削除］（Kill All）
アクティブなターゲットのすべての定義済みシグナルを削除します。
［閉じる］（Close）
ダイアログを閉じます。

詳細については、「設定」を参照して下さい。


µVision4 User's Guide (Japanese): ［ライセンス管理］（License Management）

［ライセンス管理］（License Management）

各 Keil ソフトウェア製品は、ライセンス ID コード（LIC）を使用してアクティブにする必要があります。LIC は、製品の登録により電子メールで受信する個別の製品シリアル番号（PSN）です。

PSN が不明な場合は、Keil ソフトウェア販売部門またはお近くの Keil ソフトウェア代理店にお問い合わせ下さい。

シングルユーザライセンスのライセンス ID コード（LIC）の取得：

［インターネットを使用して LIC を取得する］（Get LIC via Internet...）
Keil Web サイトで［ライセンス管理］（License Management）ページを開きます。製品に割り当てられている製品シリアル番号（PSN）とその他の必要な情報を入力します。フォームを送信すると、製品の LIC が記載された電子メールが届きます。
［LIC を追加］（Add LIC）
製品をアクティブにするには、µVision の［ライセンス管理］（License Management）ページの［新規ライセンス ID コード（LIC）］（New License ID Code (LIC)）入力フィールドに LIC を入力します。［LIC を追加］（Add LIC）をクリックすると、製品がアクティブになります。
［アンインストール...］（Uninstall...）
使用しない製品を選択して、［アンインストール...］（Uninstall...）をクリックします。アンインストールしたら、Keil ソフトウェアに登録し、アンインストールした LIC をライセンスプールに返す必要があります（別のコンピュータ上のソフトウェアにライセンスを割り当てることができるようになります）。アンインストールした LIC を確認した後で、別のコンピュータ上のソフトウェアにライセンスを割り当てることができます。

主な管理手順については、以下を参照して下さい。

  • ［シングルユーザライセンス］（Single-User License）
  • ［フローティングユーザライセンス］（Floating-User License）
  • ［フローティングライセンス管理］（Floating License Administrator）


µVision4 User's Guide (Japanese): リンカ

リンカ

選択したデバイスとツールセットに応じて、次のリンカ/ロケータとその他のページのいずれかを利用できます。

  • ［MDK-ARM リンカ］（MDK-ARM Linker）
  • ［Keil L166 場所指定］（Keil L166 Locate）
  • ［Keil L166 その他］（Keil L166 Misc）
  • ［Keil Lx51 場所指定］（Keil Lx51 Locate）
  • ［Keil Lx51 その他］（Keil Lx51 Misc）
  • ［Keil BL51 場所指定］（Keil BL51 Locate）
  • ［Keil BL51 その他］（Keil BL51 Misc）
  • ［GNU ARM リンカ］（GNU ARM Linker）


µVision4 User's Guide (Japanese): ［PC-Lint の設定］（Setup PC-Lint）

［PC-Lint の設定］（Setup PC-Lint）

このダイアログでは、µVision4 のアドオン製品である Gimpel Software の PC-Lint を設定します。

［PC-Lint インクルードフォルダ］（PC-Lint Include Folders）
PC-Lint インクルードフォルダを管理します。PC-Lint はリストに表示されたすべてのフォルダをスキャンして、#include </b> ファイルを検索します。
［リント実行可能ファイル］（Lint Executable）
PC-Lint 実行可能ファイルのパスを指定します。
［コンフィギュレーションファイル］（Configuration File）
PC-Lint コンフィギュレーションファイルのパスを指定します。次の表に示すように、事前に定義されたコンフィギュレーションファイルを使用できます。
PC-LINT コンフィギュレーションファイル | 説明
..\ARM\BIN\CO-RV.LNT | ARM7、ARM9、および Cortex-Mx の各デバイス用 PC-LINT コンフィギュレーションファイル。
..\C166\BIN\CO-KC166.LNT | クラシック C16x デバイスの Keil C166 用 PC-LINT コンフィギュレーションファイル。
..\C166\BIN\CO-KC166XC.LNT | XE16x デバイスおよび XC20x デバイスの Keil C166 用 PC-LINT コンフィギュレーションファイル。
..\C51\BIN\CO-KC51.LNT | Keil C51 および CX51 用 PC-LINT コンフィギュレーションファイル。
..\C251\BIN\CO-KC251.LNT | Keil C251 用 PC-LINT コンフィギュレーションファイル。


µVision4 User's Guide (Japanese): ［リスト（Keil）］（Listing (Keil)）

［リスト（Keil）］（Listing (Keil)）

µVision は、このダイアログページで設定可能な複数のリストファイルを作成します。リストファイルの一覧については、「ファイルタイプ」を参照して下さい。

［リストのためのフォルダを選択…］（Select Folder for Listings...）
リストファイルを保存するフォルダを選択します。
［ページ幅］（Page Width）
リストファイルの行ごとの文字数を指定します。
［ページ長］（Page Length）
リストファイルのページごとの行数を指定します。

［C コンパイラのリスト］（C Compiler Listing）

プロジェクトターゲットの C ソースファイルのリストファイルを作成します。
［条件付き］（Conditional）
コンパイルされていない条件付きコードをリストファイルに含めます。
［シンボル］（Symbols）
シンボル情報をリストファイルに含めます。
［#include ファイル］（#include Files）
インクルードファイルのテキストをリストファイルに含めます。
［アセンブリコード］（Assembly Code）
生成されたアセンブリコードをリストファイルに挿入します。

［C プリプロセッサのリスト］（C Preprocessor Listing）

プリプロセッサのリストを生成するようにコンパイラに指示します。マクロ呼び出しは拡張され、コメントは削除されます。

［アセンブラのリスト］（Assembler Listing）

プロジェクトターゲットのアセンブリソースファイルのリストファイルを作成します。
［条件付き］（Conditional）
コンパイルされていない条件付きコードをリストファイルに含めます。
［シンボル］（Symbols）
シンボル情報をリストファイルに含めます。
［マクロ］（Macros）
マクロをリストファイルでどのように表示するかを指定します。
［クロスリファレンス］（Cross Reference）
シンボルのクロスリファレンステーブルをリストファイルに含めます。

［リンカのリスト］（Linker Listing）

プロジェクトターゲットのリンカからマップファイルを作成します。
［メモリマップ］（Memory Map）
プログラムのメモリマップをマップファイルに含めます。
［パブリックシンボル］（Public Symbols）
パブリックシンボル情報をマップファイルに含めます。
［ローカルシンボル］（Local Symbols）
ローカルシンボル情報をマップファイルに含めます。
［行番号］（Line Numbers）
行番号をマップファイルに含めます。
［コメントレコード］（Comment Records）
コメント情報をマップファイルに含めます。
［クロスリファレンス］（Cross Reference）
クロスリファレンスのリストをマップファイルに含めます。
［生成シンボル］（Generated Symbols）
コンパイラによって生成されたシンボル情報をマップファイルに含めます。
［ライブラリシンボル］（Library Symbols）
ライブラリによって生成されたシンボル情報をマップファイルに含めます。
［リンカコードのリスト（ARM および C51 のみ）］（Linker Code Listing (only for ARM and C51)）
完全なアプリケーションのコードリストファイルを生成します（ファイル拡張子は *.COD）。C51 の場合、このオプションは、［BL51 の代わりに拡張リンカ/ロケータ（LX51）を使用する］（Use Extended Linker/Locater (LX51) instead of BL51）および［リンカコードパッキング（max. AJMP / ACALL）］（Linker Code Packing (max. AJMP / ACALL)）が有効な場合にのみ使用できます。


µVision4 User's Guide (Japanese): リスト

リスト

µVision は、次のダイアログページで設定可能な複数のリストファイルを作成します。

  • ［リスト（MDK-ARM）］（Listing (MDK-ARM)）
  • ［リスト（Keil）］（Listing (Keil)）（C166、C51、C251）
  • ［リスト（GNU ARM）］（Listing (GNU ARM)）


µVision4 User's Guide (Japanese): ［フローティングユーザライセンス］（Floating-User License）

［フローティングユーザライセンス］（Floating-User License）

多くの Keil ソフトウェア製品は、フローティングユーザライセンスで使用可能です。フローティングライセンスを使用すれば、同時に複数の開発者が複数のコンピュータで製品を使用できます。ライセンス ID コード（LIC）は、製品のインストールごとに必要です。LIC は、製品の登録中に電子メールで受信する個別のシリアル番号（PSN）です。

フローティングユーザライセンスのライセンス ID コード（LIC）の取得：

［製品を追加...］（Add Product...）
［フローティングライセンス管理］（Floating License Administrator）によって作成されたフローティングライセンスファイルを選択します。フローティングライセンスファイルを選択すると、Keil Web サイトの［ライセンス管理］（License Management）ページが開きます。ここで、必要な情報を入力し、フォームを送信します。製品の LIC が記載された電子メールが届きます。
［LIC を追加］（Add LIC）
製品をアクティブにするには、µVision の［ライセンス管理］（License Management）ページの［新規ライセンス ID コード（LIC）］（New License ID Code (LIC)）入力フィールドに LIC を入力します。［製品を追加］（Add LIC）をクリックすると、製品がアクティブになります。
［チェックアウト］（Check Out...）
長期間ライセンスをチェックアウトできます。これは、ポータブルコンピュータを持参する出張時またはネットワークアクセスがない環境で便利です。ライセンスを返す自動返却日を指定する必要があります。
［チェックイン...］（Check In...）
事前にチェックアウトしたフローティングライセンスを返します。
［使用者...］（Used By...）
ソフトウェア製品の現在アクティブなユーザをリスト表示します。


µVision4 User's Guide (Japanese): ［フローティングライセンス管理］（Floating License Administrator）

［フローティングライセンス管理］（Floating License Administrator）

多くの Keil ソフトウェア製品は、フローティングユーザライセンスで使用可能です。フローティングライセンスを使用すれば、同時に複数の開発者が複数のコンピュータで製品を使用できます。サーバベースのフローティングライセンスファイルは、製品の使用前にライセンス管理者が作成しておく必要があります。フローティングライセンスファイルは、製品のすべてのユーザがアクセス可能なネットワークフォルダ上に作成する必要があります。このファイルを作成するには製品シリアル番号（PSN）が必要です。

PSN が不明な場合は、Keil ソフトウェア販売部門またはお近くの Keil ソフトウェア代理店にお問い合わせ下さい。

フローティングライセンスファイルの作成

［パス］（Path）
フローティングライセンスファイルが保存されるネットワークフォルダのパスを入力します。
［PSN］
製品の製品シリアル番号（PSN）を入力します。
［FLF を作成...］（Create FLF...）
指定したネットワークドライブ上にフローティングライセンスファイル（FLF）を作成します。

製品は、製品を使用する各ワークステーションにインストールします。次に、［フローティングユーザライセンス］（Floating-User License）ダイアログを（ワークステーション上で）開き、製品をアクティブにします。


µVision4 User's Guide (Japanese): ［シングルユーザライセンス］（Single-User License）

［シングルユーザライセンス］（Single-User License）

各 Keil ソフトウェア製品は、ライセンス ID コード（LIC）を使用してアクティブにする必要があります。LIC は、製品の登録中に電子メールで受信する個別の製品シリアル番号（PSN）です。

PSN が不明な場合は、Keil ソフトウェア販売部門またはお近くの Keil ソフトウェア代理店にお問い合わせ下さい。

シングルユーザライセンスのライセンス ID コード（LIC）の取得：

［インターネットを使用して LIC を取得する］（Get LIC via Internet...）
Keil Web サイトで［ライセンス管理］（License Management）ページを開きます。製品に割り当てられている製品シリアル番号（PSN）とその他の必要な情報を入力します。フォームを送信すると、製品の LIC が記載された電子メールが届きます。
［LIC を追加］（Add LIC）
製品をアクティブにするには、µVision の［ライセンス管理］（License Management）ページの［新規ライセンス ID コード（LIC）］（New License ID Code (LIC)）入力フィールドに LIC を入力します。［LIC を追加］（Add LIC）をクリックすると、製品がアクティブになります。
［アンインストール...］（Uninstall...）
使用しない製品を選択して、［アンインストール...］（Uninstall...）をクリックします。アンインストールしたら、Keil ソフトウェアに登録し、アンインストールした LIC をライセンスプールに返す必要があります（別のコンピュータ上のソフトウェアにライセンスを割り当てることができるようになります）。アンインストールした LIC を確認した後で、別のコンピュータ上のソフトウェアにライセンスを割り当てることができます。


µVision4 User's Guide (Japanese): ［メモリマップ］（Memory Map）

［メモリマップ］（Memory Map）

［現在のマッピング］（Current Mapped）
現在マッピングされているメモリ範囲を表示します。
表示されたアドレスは µVision が論理セグメントを物理セグメントにマッピングする方法に対応します。例えば、0x00xxxx は DATA、IDATA、または EDATA 空間のアドレスを表し、0x01xxxx は XDATA 空間のアドレスを表し、0xFFxxxx は CODE 空間のアドレスを表します。
［選択した範囲を削除］（Kill Selected Range）
選択したマッピング範囲をリストから削除します。
［マッピング範囲］（Map Range）
メモリ範囲には開始アドレスおよび終了アドレスが含まれます。このとき、範囲のすべてのバイトは［読み出し］（Read）、［書き込み］（Write）、［実行］（Execute）、および［ノイマン型］（von Neumann）チェックボックスの指定に従いマッピングされます。ボックスにはシングルバイトアドレスのみを含めることができ、このときバイトはチェックボックスの指定に従ってマッピングされます。
［読み出し］（Read）
メモリ範囲が読み出されます。
［書き込み］（Write）
メモリ範囲が書き込まれます。
［実行］（Execute）
メモリ範囲が実行されます。
［ノイマン型］（von Neumann）
指定したメモリ範囲をノイマン型メモリとして識別します。これを指定した場合、µVision では外部データメモリ（XDATA）範囲およびコードメモリ（0xFFxxxx）をオーバーラップします。外部データメモリへの書き込みアクセスによってもコードメモリが変更されます。

注

  • ノイマン型メモリの範囲は、コード領域にも、64k 境界にもない場合があります。
  • ノイマン型メモリは、C51 および C251 アーキテクチャの XDATA 空間でのみサポートされています。C166 では使用できません。
  • ノイマン型メモリ範囲には、［読み出し］（Read）および［書き込み］（Write）アクセスを指定する必要があります。
［マッピング範囲］（Map Range）
指定したメモリ範囲をリストに追加します。


µVision4 User's Guide (Japanese): ［オプション］（Options）

［オプション］（Options）

［プロジェクト］（Project）→［オプション］（Options）ダイアログを使用すると、開発ツールチェーンを設定できます。

［デバイス］（Device）：プロジェクトのマイクロコントローラデバイスを選択します。

［プロパティ］（Properties）：ファイルまたはグループ固有のオプションを指定します。

その他のダイアログタブは、選択したマイクロコントローラデバイスおよび選択したツールによって異なります。

MDK-ARM ツールチェーンを使用する ARM7、ARM9、および Cortex-Mx ベースのデバイス。

  • ［ターゲット］（Target）：ターゲットハードウェアのパラメータを指定します。
  • ［出力］（Output）：実行可能ファイル、ライブラリファイル出力、および Intel HEX ファイル出力を設定します。
  • ［リスト］（Listing）：リストファイルを設定します。
  • ［ユーザ］（User）：ビルド前およびビルド後のアクティビティを設定します。
  • ［C/C++］：C コンパイラのオプションを設定します。
  • ［Asm］：アセンブラのオプションを設定します。
  • ［LA ロケート］（LA Locate）：リンカ/ロケータのメモリ配置ディレクティブを指定します。
  • ［デバッグ］（Debug）：µVision4 デバッガ/シミュレータを設定します。
  • ［ユーティリティ］（Utilities）：フラッシュのダウンロードユーティリティを設定します。

C16x、XE16x、および XC20x デバイス。

  • ［ターゲット］（Target）：ターゲットハードウェアのパラメータを指定します。
  • ［出力］（Output）：実行可能ファイル、ライブラリファイル出力、および Intel HEX ファイル出力を設定します。
  • ［リスト］（Listing）：リストファイルを設定します。
  • ［ユーザ］（User）：ビルド前およびビルド後のアクティビティを設定します。
  • ［C166］：コンパイラのオプションを設定します。
  • ［EC++］：埋め込み C++ コンパイラのオプションを設定します。
  • ［A166］：アセンブラのオプションを設定します。
  • ［L166 ロケート］（L166 Locate）：リンカ/ロケータのメモリ配置ディレクティブを指定します。
  • ［L166 その他］（L166 Misc）：その他のリンカ/ロケータのディレクティブを入力します。
  • ［デバッグ］（Debug）：µVision4 デバッガ/シミュレータを設定します。
  • ［ユーティリティ］（Utilities）：フラッシュのダウンロードユーティリティを設定します。

8051 ベースのデバイス。

  • ［ターゲット］（Target）：ターゲットハードウェアのパラメータを指定します。
  • ［出力］（Output）：実行可能ファイル、ライブラリファイル出力、および Intel HEX ファイル出力を設定します。
  • ［リスト］（Listing）：リストファイルを設定します。
  • ［ユーザ］（User）：ビルド前およびビルド後のアクティビティを設定します。
  • ［C51］ または ［CX51］：コンパイラのオプションを設定します。
  • ［A 51］ または ［AX51］（［デバイス］（Device）で有効な場合）：アセンブラのオプションを設定します。
  • ［BL51 ロケート］（BL51 Locate） または ［LX51 ロケート］（LX51 Locate）（［デバイス］（Device）で有効な場合）：リンカ/ロケータのメモリ配置ディレクティブを指定します。
  • ［BL51 その他］（BL51 Misc） または ［LX51 その他］（LX51 Misc）（［デバイス］（Device）で有効な場合）：その他のリンカ/ロケータのディレクティブを入力します。
  • ［デバッグ］（Debug）：µVision4 デバッガ/シミュレータを設定します。
  • ［ユーティリティ］（Utilities）：フラッシュのダウンロードユーティリティを設定します。

251 ベースのデバイス。

  • ［ターゲット］（Target）：ターゲットハードウェアのパラメータを指定します。
  • ［出力］（Output）：実行可能ファイル、ライブラリファイル出力、および Intel HEX ファイル出力を設定します。
  • ［リスト］（Listing）：リストファイルを設定します。
  • ［ユーザ］（User）：ビルド前およびビルド後のアクティビティを設定します。
  • ［C251］：コンパイラのオプションを設定します。
  • ［A251］：アセンブラのオプションを設定します。
  • ［L251 ロケート］（L251 Locate）：リンカ/ロケータのメモリ配置ディレクティブを指定します。
  • ［L251 その他］（L251 Misc）：その他のリンカ/ロケータのディレクティブを入力します。
  • ［デバッグ］（Debug）：µVision4 デバッガ/シミュレータを設定します。
  • ［ユーティリティ］（Utilities）：フラッシュのダウンロードユーティリティを設定します。

GNU ツールチェーンを使用する ARM7、ARM9、および Cortex-Mx ベースのデバイス。

  • ［ターゲット］（Target）：ターゲットハードウェアのパラメータを指定します。
  • ［出力］（Output）：実行可能ファイル、ライブラリファイル出力、および Intel HEX ファイル出力を設定します。
  • ［リスト］（Listing）：リストファイルを設定します。
  • ［ユーザ］（User）：ビルド前およびビルド後のアクティビティを設定します。
  • ［CC］：コンパイラのオプションを設定します。
  • ［アセンブラ］（Assembler）：アセンブラのオプションを設定します。
  • ［リンカ］（Linker）：リンカ/ロケータを設定します。
  • ［デバッグ］（Debug）：µVision4 デバッガ/シミュレータを設定します。
  • ［ユーティリティ］（Utilities）：フラッシュのダウンロードユーティリティを設定します。


µVision4 User's Guide (Japanese): ［出力（Keil）］（Output (Keil)）

［出力（Keil）］（Output (Keil)）

µVision は、このダイアログページで設定可能な複数の出力ファイルを作成します。出力ファイルのリストについては、「ファイルタイプ」を参照して下さい。

［オブジェクトのためのフォルダを選択…］（Select Folder for Objects...）
オブジェクトファイルを保存するフォルダを選択します。
［実行可能ファイルの名前］（Name of Executable）
生成された実行可能ファイルの名前を指定します。
［実行可能ファイルを作成］（Create Executable）
ターゲットハードウェアまたはシミュレータの実行可能アプリケーションプログラムを生成します。
［デバッグ情報］（Debug Information）
このオプションは、アプリケーションのシンボルテストに必要です。このオプションを無効にすると、µVision デバッガ内で関数名、変数名、またはソースコードにアクセスできなくなります。
［ブラウズ情報］（Browse Information）
このオプションは統合されたソースブラウザに必要で、ソースファイル内の速やかな移動を可能にします。
［32K Hexfile のマージ］（Merge32K Hexfile）（8051 ターゲットのみ）
Intel HEX-386 ファイルまたはバンキングアプリケーションのアドレスの順序を変更します。その結果、32KB 共通領域および複数の 32KB コードバンクを持つターゲットハードウェアのイメージを直接生成できるようになります。この Intel HEX-386 ファイルには、次のアドレス範囲のアプリケーションコードの完全なイメージが含まれています。
  • 0x000000-0x007FFF：共通領域
  • 0x008000-0x00FFFF：コードバンク 0
  • 0x010000-0x017FFF：コードバンク 1
  • 0x018000-0x01FFFF：コードバンク 2
などです。通常、このファイルは、ハードウェアなどの ROM デバイスに直接プログラムできます。
［HEX ファイルの作成］（Create HEX File）
Intel HEX ファイルを作成できます。HEX ファイルは、ソフトウェアを PROM プログラミングユーティリティやその他のユーティリティにダウンロードするために使用されます。
［HEX フォーマット］（HEX Format）
生成する HEX ファイル形式を指定します。必要な形式は、アプリケーションプログラムのサイズによって異なります。使用する PROM プログラミングユーティリティが選択した形式に対応していることを確認して下さい。
［ライブラリの作成］（Create Library）
ライブラリファイルを生成します。ライブラリは、後でリンカが処理する可能性のあるオブジェクトモジュールのプログラムの集まりです。ライブラリは他のプロジェクトファイルの一部として使用できます。
［バッチファイルを作成］（Create Batch File）
µVision は、ビルドプロセスのすべてのコマンドを格納するバッチファイル（*.BAT）を生成します。このバッチファイルを使用すると、µVision IDE を使用せずにビルドプロセスを複製できます。


µVision4 User's Guide (Japanese): 出力

出力

µVision4 には、さまざまなツールチェーンについて、複数の出力ファイルオプションがあります。

  • ［出力（MDK-ARM）］（Output (MDK-ARM)）
  • ［出力（Keil）］（Output (Keil)）（C51、C251、C166）
  • ［出力（GNU ARM）］（Output (GNU ARM)）


µVision4 User's Guide (Japanese): ［パフォーマンスアナライザ］（Performance Analyzer）

［パフォーマンスアナライザ］（Performance Analyzer）

C51、C251、および C166 ツールセットには、設定オプションがあります。

［現在の PA 範囲］（Current PA Ranges）
パフォーマンスアナライザの記録について、現在選択されている関数または定義済みのアドレス範囲の一覧を表示します。
［関数シンボル］（Function Symbols）
使用可能な関数シンボルのリスト。名前を Define 行にコピーするには、関数をダブルクリックします。
［パフォーマンスアナライザ範囲を定義］（Define Performance Analyzer Range）
PA 範囲のエントリ行。関数シンボルまたはアドレス範囲が有効です。指定が完了したら、［定義］（Define）ボタンを使用します。
［選択範囲を削除］（Kill Selected）
現在の PA 範囲リストで選択されている PA 範囲を削除します。
［すべて削除］（Kill All）
すべての PA 範囲を削除します。
［閉じる］（Close）
ダイアログを閉じます。


µVision4 User's Guide (Japanese): ［ブック］（Books）

［ブック］（Books）

ブックとマニュアルは、［コンポーネント、環境、ブック］（Components, Environment, Books）→［ブック］（Books）ダイアログを使用して管理します。

［一般ブック］（General Books）、［固有のツール］（Tool Specific）、および［固有のデバイス］（Device Specific）のリストボックス内にあるコントロールを使用して、ブック項目を追加、削除、および再配置できます。

［一般ブック］（General Books）
一般的なブックのリストで、ツールチェーンやマイクロコントローラの影響を受けません。
［固有のツール］（Tool Specific）
ツールチェーン固有のブックのリスト。
［固有のデバイス］（Device Specific）
デバイス固有のブックのリスト。
［デフォルトのルート］（Default Root）
Tools.ini で定義されているデフォルトのルートフォルダを表示します。
［ブックを変更...］（Change Book...）
項目を選択してこのボタンをクリックすると、ブックのタイトルや場所を変更できます。
［新しいブック］（New Book...）
このボタンをアクティブにするには、ブックリストの空いている場所をクリックします。ブックをリストに追加するには、このボタンを使用します。


µVision4 User's Guide (Japanese): ［プロジェクトコンポーネント］（Project Components）

［プロジェクトコンポーネント］（Project Components）

プロジェクトターゲット、グループ、およびファイルのリストボックスボタンで、項目の追加、削除、または再配置を行うことができます。

［プロジェクトターゲット］（Project Targets）
プロジェクト内のすべてのプロジェクトターゲットを表示します。プロジェクトターゲットを使用すると、単一のプロジェクトを構成するさまざまなプログラムを作成できます。テスト用に 1 つのターゲットと、アプリケーションのリリースバージョン用にもう 1 つのターゲットが必要です。
［グループ］（Groups）
現在のプロジェクト内のすべてのファイルグループを表示します。ファイルグループを使用すると、プロジェクト内の関連ファイルをグループ化できます。これは、ファイルを機能ブロックにグループ化したり、ソフトウェアチームでエンジニアを識別したりする際に便利です。
［ファイル］（Files）
選択したファイルグループのすべてのファイルを表示します。
［現在のターゲットとして設定］（Set as Current Target）
選択したプロジェクトターゲットを現在のターゲットとして設定します。
［ファイルの追加］（Add Files）
選択したファイルグループにファイルを追加します。


µVision4 User's Guide (Japanese): ［コンポーネント、環境、ブック］（Components, Environment, and Books）

［コンポーネント、環境、ブック］（Components, Environment, and Books）

［プロジェクトコンポーネント］（Project Components）
ターゲット、グループ、およびファイルを管理します。
［フォルダ/拡張子］（Folders/Extensions）
開発ツールフォルダ、対象ファイル拡張子、ライブラリおよびインクルードフォルダを定義します。
［ブック］（Books）
ブック、マニュアル、データシートをプロジェクトに追加します。


µVision4 User's Guide (Japanese): ［フォルダ/拡張子］（Folders/Extensions）

［フォルダ/拡張子］（Folders/Extensions）

環境の設定、目的のパスと拡張子の設定、開発ツールの選択を行うことができます。

［TOOLS.INI の設定を使用］（Use Settings from TOOLS.INI）
インストールのデフォルトパス設定を使用します。このデフォルト設定は TOOLS.INI ファイルに保存されています。
このオプションが有効な場合は、µVision が異なるフォルダにインストールされている別のコンピュータにプロジェクトを移動できます。
［ツールベースフォルダ］（Tool Base Folder）
現在使用されているツールチェーンへのパスを指定します（例えば、MDK-ARM の場合は C:\Keil\ARM\）。
［BIN］
現在のツールチェーンのバイナリフォルダへのパスを指定します（例えば、MDK-ARM の場合は C:\Keil\ARM\BIN\）。
［INC］
現在のツールチェーンのインクルードフォルダへのパスを指定します（例えば、MDK-ARM の場合は C:\Keil\ARM\INC\）。
［LIB］
現在のツールチェーンのライブラリフォルダへのパスを指定します（例えば、MDK-ARM の場合は C:\Keil\ARM\LIB\）。
［Regfile］
現在のツールチェーンの regfile フォルダへのパスを指定します（例えば、MDK-ARM の場合は C:\Keil\ARM\REG\）。

［デフォルトのファイル拡張子］（Default File Extension）

各ファイルタイプにファイル拡張子を指定します。セミコロンを使用して、複数の拡張子を区切ることができます。例えば、ASM ソースの場合は *.a;*.src のようになります。

［ARM 開発ツールの選択］（Select ARM Development Tools）

［RealView Compiler の使用］（Use RealView Compiler）
RealView コンパイルツールを µVision4 で使用します。［RealView フォルダ］（RealView Folder）には RealView コンパイラのルートフォルダを指定します。例えば次のようになります。
  • RealView Compiler for µVision：BIN
  • RealView Eval バージョン 2.1：C:\Program Files\ARM\RVCT\Programs\2.1\350\eval2-sc\win_32-pentium
［GNU コンパイラの使用］（Use GNU Compiler）
GNU 開発ツールを選択します。
  • GNU-Tool-Prefix は GNU バリアントを指定します。
  • GNU-Tool-Folder は GNU インストールフォルダへのパスです。
  • 例えば次のようになります。
  • GNU V3.22 と uclib：GNU-Tool-Prefix：arm-uclibc- フォルダ：C:\CodeSourcery\
  • GNUARM V4 と標準ライブラリ：GNU-Tool-Prefix：arm-elf- CodeSourcery フォルダ：C:\Program Files\CodeSourcery\Sourcery G++ Lite\

注

  • C51 および MDK-ARM ツールチェーンでのみ有効なオプションもあります。


µVision4 User's Guide (Japanese): ［マルチプロジェクト］（Multi-Project）

［マルチプロジェクト］（Multi-Project）

マルチプロジェクトファイルで、µVision プロジェクトファイルの追加、削除、再配置を行うことができます。

［アクティブプロジェクトとして設定］（Set as Active Project）
プロジェクトをアクティブプロジェクトとして選択します。アクティブプロジェクトとは、現在作業中のプロジェクトです。

詳細については、「マルチプロジェクトファイルの管理」を参照して下さい。


µVision4 User's Guide (Japanese): ［プロジェクト］（Project）

［プロジェクト］（Project）

［プロジェクト］（Project）メニューでは、プロジェクトコンポーネントの設定、別のデバイスへの切り替え、µVision4 オブジェクトの設定を行うためのダイアログが表示されます。

［プロジェクト］（Project）→［管理］（Manage）

［コンポーネント、環境、ブック］（Components, Environment, and Books）
ターゲット、グループ、およびファイルを定義します。開発ツールの選択、ツールパスの設定、独自のマニュアルとブックのプロジェクトへの追加を行うことができます。
［マルチプロジェクトワークスペース］（Multi-Project Workspace）
マルチプロジェクトに対して既存のプロジェクトの追加および削除を行います。
［デバイスの選択］（Select Device）
別のデバイスに切り替えます。
［バッチビルド］（Batch Build）
マルチプロジェクトのコンパイル、リンク、アセンブルを 1 つの作業手順で行います。
［オプション］（Options）
メモリ、RTOS、コード生成、リンカ、コンパイラ、アセンブラ、デバッグ設定を指定します。


µVision4 User's Guide (Japanese): ［プロパティ］（Properties）

［プロパティ］（Properties）

このダイアログを開くには、［プロジェクト］（Project）ウィンドウのコンテキストメニューで、［...のオプション］（Options for ...）メニュー項目を選択します。

［パス］（Path）、［ファイルタイプ］（File Type）、［サイズ］（Size）、［最終更新日］（Last Change）
選択したオブジェクトについて情報を表示します。
［ターゲットのビルドに含める］（Include in Target Build）
このプロジェクトターゲットのグループまたはソースファイルを除外するには、このオプションを無効にします。このオプションを設定しないと、このオブジェクトが変換されず、現在のターゲットにリンクされません。これは、1 つのプロジェクトファイルを複数の異なるハードウェアシステムに使用している場合、コンフィギュレーションファイルで便利です。
［常にビルド］（Always Build）
ソースファイルの変更の有無にかかわらず、ビルドプロセスのたびにソースモジュールを変換するには、このオプションを有効にします。これは、__DATE__マクロと__TIME__マクロがファイルに含まれている場合に便利です。これらのマクロは、アプリケーションプログラムにバージョン情報を格納します。
［アセンブラ SRC ファイルを生成］（Generate Assembler SRC File）
C51、C16x、および C251 ファミリで使用できます。この C モジュールからアセンブラソースファイルを生成するように、C コンパイラを設定します。通常、このオプションは、C ソースファイルに #pragma asm / endasm セクションが含まれている場合に使用されます。
［SRC ファイルをアセンブル］（Assemble SRC File）
C51、C16x、および C251 ファミリで使用できます。このオプションを［アセンブラ SRC ファイルを生成］（Generate Assembler SRC File）オプションと組み合わせて使用すると、コンパイラで生成されたアセンブラソースコードをアプリケーションにリンクできるオブジェクトファイルに変換できます。
［パブリックのみをリンク］（Link Publics Only）
C51、C16x、および C251 ファミリで使用できます。そのモジュールからパブリックシンボルのみをリンクするようにリンカが設定されます。別のアプリケーションからエントリまたは変数アドレスを使用する場合に、このオプションをオンにします。ほとんどの場合、プロジェクトの一部であるアブソリュートオブジェクトファイルを参照しています。
［コードバンク］（Code Bank）
C51、C16x、および C251 ファミリで使用できます。ファイルまたはファイルグループのプログラムコードを特定のコードバンクに割り当てます。［オプション］（Options）→［ターゲット］（Target）ダイアログでコードバンキングを有効にする必要があります。
［EC++を指定して C ファイルをコンパイル］（Compile C File with EC++）
C16x ファミリで使用できます。混合 C/C++プロジェクトがある場合は、埋め込み C++コンパイラを使用して、標準 C ファイルをコンパイルします。
［終了コードで停止］（Stop on Exit Code）
変換メッセージが表示された場合にビルドプロセスを停止するように終了コードを指定します。デフォルトでは、µVision はエラーまたは警告メッセージに関係なく、ビルドプロセス内のすべてのファイルを変換します。
［メモリの割り当て］（Memory Assignment）
ARM および Cortex ファミリで使用できます。ファイルまたはグループを割り当ててメモリ領域を指定します。Code/Const（RO）、ゼロで初期化された（ZI）データ、および標準データ（RW）領域を選択できます。［ターゲット］（Target）ダイアログに使用可能なメモリ領域を入力し、［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog） を［リンカ］（Linker） ダイアログで有効にします。
［モジュールの選択］（Select Modules）
ライブラリの特定のモジュールを常に含めることができます。
［カスタム引数］（Custom Arguments）
この行は、カスタム変換を必要とするファイルがプロジェクトにある場合に必要です。

注&

  • C16x は、C16x、XE16x、および XC20x を表します。
  • チェックボックスには 3 つの状態があります。
    • チェックマークが付いていない場合 – このプロパティは無効になっています。
    • グレーでチェックマークが付いている場合 – このプロパティは親オブジェクトのプロパティを継承します。
    • 白色でチェックマークが付いている場合 – このプロパティはオブジェクトに個別に設定されています。


µVision4 User's Guide (Japanese): ［SVCS］

［SVCS］

［SVCS］メニューでは、プロジェクト開発とサードパーティバージョンコントロールシステムの設定および統合を実行できます。

［テンプレートファイル］（Template File）
［SVCS］メニューのコンフィギュレーションファイルを指定します。ソフトウェア開発チームのメンバすべてが同じテンプレートファイルを使用することをお勧めします。このため、テンプレートファイルをファイルサーバにコピーする必要があります。サンプルファイルは、µVision フォルダ（..\Keil\UV4）にあります。
［ユーザ名］（User Name）
SVCS システムへのログインに使用されるユーザ名。ユーザ名を渡すには、引数行に %U ファイルコードを付けます。
［プロジェクト ID］（Project Ident）
［データベース］（Database）
SVCS システムが使用するデータベースのファイル名またはパス。データベース文字列を渡すには、引数行に %V ファイルコードを付けます。
［メニューコンテンツ］（Menu Content）
［SVCS］メニューに表示されるテキスト。この行にはキーコードとファイルコードを含めることができます。ショートカットを定義するには、& 文字を付けます。選択されたメニュー行で、以下に示したオプションを指定することができます。

例
&Create Project '@P'
&Get Actual Version of '%F'
［コマンド］（Command）
［SVCS］メニュー項目をクリックすると呼び出されるプログラムファイル。
［最小化して実行］（Run Minimized）
ウィンドウを最小化してアプリケーションを実行するには、このオプションを有効にします。
［引数］（Arguments）
SVCS プログラムファイルに渡されるコマンドライン引数。引数を渡すために、キーシーケンスを使用することができます。
［環境］（Environment）
SVCS プログラムの実行前に設定される環境変数。
［初期フォルダ］（Initial Folder）
これは、SVCS コマンドが実行されるフォルダです。通常は、プロジェクトルートフォルダです。

クエリ対象

［コメント］（Comment）
SVCS コマンドを使用する場合に、追加情報を求めることができます。コメントは一時ファイルにコピーされ、SVCS コマンドの引数として、ファイルコード %Q を使用して渡すことができます。
［リビジョン］（Revision）
リビジョンは、SVCS コマンドの引数として、ファイルコード %R を使用して渡すことができます。
［チェックポイント］（Check Point）
チェックポイントは、SVCS コマンドの引数として、ファイルコード %C を使用して渡すことができます。


µVision4 User's Guide (Japanese): ［ショートカットキー］（Shortcut Keys）

［ショートカットキー］（Shortcut Keys）

［コマンドの選択］（Select a Command）
使用可能なメニューコマンドがここに表示されます。1 つ選択し、ショートキーを変更します。
［説明］（Description）
メニューコマンドについて説明します。
［割り当てられたショートカット］（Assigned Shortcuts）
このコマンドに直接アクセスできるキーシーケンスです。ここに新しいショートキーを割り当てることができます。
［ショートカットの作成］（Create Shortcut）
新しいショートカットを作成します。新しいキーシーケンスが既に別のコマンドに割り当てられている場合は、警告が表示されます。
［ショートカットの削除］（Remove Shortcut）
このコマンドのショートキーを削除します。
［すべてのショートカットをリセット］（Reset All Shortcuts）
すべてのコマンドをデフォルトのショートキーを使用して入力します。


µVision4 User's Guide (Japanese): ［シンボル］（Symbols）ウィンドウ

［シンボル］（Symbols）ウィンドウ

［マスク］（Mask）
シンボル名の一致に使用されるマスクを指定します。マスクは英数字とマスク文字で構成します。
文字 説明
# 数字（0～9）と一致
$ どの文字にも一致
* 0 文字以上の文字と一致
例

マスク | 説明
* どのシンボルにも一致します。これはシンボルブラウザのデフォルトのマスクです。
*#* 任意の位置に 1 つの数を格納するシンボル名に一致
_a$#* | 下線の次に文字 'a'、任意の 1 文字、１ つの数字が続き、ゼロ個以上の文字で終わるシンボルに一致します。例えば、_ab1 や _a10value です。
_*ABC | 下線の次にゼロ個以上の文字が続き、ABC で終わるシンボルに一致
［大文字と小文字を区別］（Case Sensitive）
マスクの大文字と小文字を区別して処理します。

注

  • オブジェクトを µVision の他のウィンドウにドラッグアンドドロップできます。


µVision4 User's Guide (Japanese): ［ビュー］（View）

［ビュー］（View）

［デバッグモード］（Debug Mode）では、［ビュー］（View）メニューから次のダイアログにアクセスできます。

［シンボル］（Symbols）ウィンドウ
パターンのマッチング検索機能を使用してオブジェクトを検索します。
［解析］（Analysis）ウィンドウ→［ロジックアナライザ］（Logic Analyzer）→［設定］（Setup）
変数を解析し、グラフ上の値の変化を観察できます。
［解析］（Analysis）ウィンドウ→［パフォーマンスアナライザ］（Performance Analyzer）→［設定］（Setup）
追跡するオブジェクトを解析し、最大限のパフォーマンスを引き出すように調整します。


µVision4 User's Guide (Japanese): ［ターゲット（Keil C51）］（Target (Keil C51)）

［ターゲット（Keil C51）］（Target (Keil C51)）

[Xtal (MHz)]
デバイスの CPU クロックを指定します。ほとんどの場合、この値は XTAL 周波数と同じです。
［メモリモデル］（Memory Model）
C51 コンパイラのメモリモデルを指定します。新しいアプリケーションの開始には、デフォルトの SMALL が適切です。
［コード ROM サイズ］（Code Rom Size）
プログラムメモリのサイズを指定します。このディレクティブは、JMP と CALL 命令のコーディングに影響を与えます。
［オペレーティングシステム］（Operating System）
アプリケーションでリアルタイムオペレーティングシステムを使用できます。Keil には 2 つの異なるバージョンがあります。
  • RTX51 Tiny は、PK51 プロフェッショナルデベロッパーズキットの一部で、通常、8051 アプリケーションに最適です。RTX51 Tiny は、最小のシステムでも動作し、ラウンドロビンタスク切り替えとシグナルの受け渡しをサポートしており、割り込み関数を使用して並列操作できます。
  • RTX51 Full は、ラウンドロビンとプリエンプティブの両方のタスク切り替えをサポートしています。RTX51 Full は、シグナルの受け渡しをサポートしており、メールボックスシステムとセマフォでのメッセージの受け渡しを処理します。
［オンチップを使用...］（Use On-chip ...）
CPU スタートアップコードまたは main 関数の先頭で通常は有効になっているオンチップコンポーネントの使用量を指定します。ダイアログ設定がスタートアップファイルまたはデバイスの初期化の設定と同じであることを確認して下さい（以下の注も参照）。
［オフチップ...メモリ］（Off-chip ... memory）
ターゲットハードウェアの外部 CODE と XDATA メモリ領域を指定します（以下の注も参照）。
Monitor-51 を使用する場合は、CODE と XDATA 領域が重複する物理メモリを指さないようにする必要があります。Monitor-51 では、アプリケーションコードはノイマン型にマップされた RAM に保存されます（つまり、CODE と XDATA は同一であり、8051 が CODE に書き込めないため必要です）。
［コードバンキング］（Code Banking）
プログラムコードバンキングを有効にし、コードバンクの数と、ハードウェアによってサポートされている開始アドレスおよび終了アドレスを定義できます。プログラムコードをコードバンクに配置するには、ソースモジュールを［オプション］（Options）→［プロパティ］（Properties）ダイアログでコードバンクに割り当てる必要があります。バンキングハードウェアを設定するには、L51_BANK.A51 などのコードバンキングコンフィギュレーションファイルが必要です。
［'far' メモリタイプサポート］（'far' memory type support）
far メモリでは、さまざまな方法で物理 XDATA 空間を拡張できます。サンプルプロジェクトは、..\C51\Examples\FarMemory フォルダにあります。拡張 8051 デバイスには通常、追加 CPU 命令があります。クラシック 8051 デバイスでは、XBANKING.A51 と L51_BANK.A51 ファイルを使用すると、バンキングハードウェアを設定できます。
［割り込み時にアドレス拡張子 SFR を保存］（Save address extension SFR in interrupts）
一部の設定では、割り込みサービスルーチンの始めにアドレス拡張子 SFR を保存する必要があります。

注

  • 自動リンカ設定では、リンカロケートダイアログページの［ターゲットダイアログのメモリレイアウトを使用する］（Use Memory Layout from Target Dialog）オプションを有効にする必要があります。


µVision4 User's Guide (Japanese): ［ターゲット（Keil C166）］（Target (Keil C166)）

［ターゲット（Keil C166）］（Target (Keil C166)）

［クロック（MHz）］（Clock（MHz））
デバイスの CPU クロックを指定します。ほとんどの場合、この値は XTAL 周波数と同じです。
［メモリモデル］（Memory Model）
C166 コンパイラのメモリモデルを指定します。新しいアプリケーションの開始には、デフォルトの SMALL が適切です。
［オペレーティングシステム］（Operating System）
アプリケーションでリアルタイムオペレーティングシステム（RTOS）を使用できます。Keil には、以下の異なるバージョンがあります。
  • Advanced RTX166 は、プリエンプティブタスク切り替え、メッセージとシグナルの受け渡し、セマフォなどをサポートしている効率の高い RTOS です。これには、フラッシュファイルシステムと幅広い TCP/IP サポートが含まれています。
  • RTX166 Tiny は、PK166 プロフェッショナルデベロッパーズキットの一部で、少ないメモリ（シングルチップシステム）で実行されます。
  • RTX166 Full は、現在では Advanced RTX166 に置き換えられ、新しい設計には使用されません。下位互換性を維持するために選択できます。
［データしきい値］（Data Threshold）
小さいオブジェクトをより最適なメモリタイプに配置することで、メモリモデル設定を最適化できます。これは、LARGE、HLARGE または COMPACT、HCOMPACT メモリモデルで便利です。デフォルトは near、6 で、6 バイト未満を必要とするすべての変数を near メモリに配置します。妥当なエントリの例を以下に示します。
  • sdata 10：10 バイト未満のサイズの変数を sdata 空間に配置します。これは通常、166 デバイスの XRAM 空間に配置されます。明示的なメモリ空間がないその他の変数は、huge 空間に配置されます。
  • near 6、idata 2、bdata 2：2 バイト未満のサイズの変数を idata、単一ビットメンバを持つビットフィールド構造体を bdata、6 バイト未満のサイズの変数を near にそれぞれ配置します。メモリタイプがないその他の変数は、huge に配置されます。
［オンチップを使用...］（Use On-chip ...）
CPU スタートアップコードで通常は有効になっているオンチップコンポーネントの使用量を指定します。ダイアログ設定がスタートアップファイルの設定と同じであることを確認して下さい。
［Near メモリ］（Near Memory）
16 ビットアドレスを使用して変数にすばやくアクセスするために、RAM と ROM 空間を拡張します。C166 グループ NDATA（RAM）と NCONST（ROM）をサイズ変更します。
［外部メモリ］（External Memory）
ターゲットハードウェアのすべての外部メモリ領域を指定します。RAM は変数を保存するメモリに使用します。ROM は定数とプログラムコード（通常は、EPROM またはフラッシュメモリ）を保存する領域に使用します。情報は、リンカ/ロケータ設定を派生させるのに使用します。さらに、ハードウェアで必要なチップ選択シグナルを生成するには、CPU スタートアップコードを設定する必要があります。

Monitor-166 でテストをする場合、プログラムコードは RAM 空間で実行されますが、このダイアログでは ROM を指定する必要があります。指定しない場合は、アプリケーションに定数とプログラムコード用のメモリがなくなります。


µVision4 User's Guide (Japanese): ［ターゲット（Keil C251）］（Target (Keil C251)）

［ターゲット（Keil C251）］（Target (Keil C251)）

［Xtal (MHz)］
デバイスの CPU クロックを指定します。ほとんどの場合、この値は XTAL 周波数と同じです。
［CPU モード］（CPU Mode）
ソース（251 ネイティブ）は、C251 コンパイラに 251 ソースモードの命令を生成するように指示します。通常はこれにより最良の結果を得ることができます。
バイナリ（8051 互換）は、コンパイラに 251 バイナリモードの命令を生成するように指示します。新しい 251 命令は、ESC の接頭文字（0A5h）バイトを使用しています。C251 コンパイラで生成されたバイナリモードコードは、8051 と互換性がありません。
［メモリモデル］（Memory Model）
メモリモデルは、関数の引数、自動変数、および明示的なメモリタイプ指定子がない宣言に使用するデフォルトのメモリタイプを決定します。

メモリモデルは、生成できる最大プログラムコードに影響を与えません。プログラムサイズは、［コード ROM サイズ］（Code Rom Size）の選択時に指定されます。

メモリモデルは、主に使用されるデフォルトのメモリタイプを指定するため、アプリケーションに必要な変数空間のみに依存します。

注

  • デフォルトの TINY メモリモデルを使用するようにして下さい。このメモリタイプにより最も速く効率的なコードが生成されます。アプリケーションのデータ要件が増大する場合は、XTINY メモリモデルを使用してみて下さい。

メモリタイプ指定子を使用して変数を明示的に宣言することで、メモリモデルにより定められたデフォルトのメモリタイプをオーバーライドできます。

以下の表に、各メモリモデルで使用するメモリ領域を示します。

メモリ
モデル

パラメータと
自動
変数

デフォルトの
グローバル
変数

デフォルトの
定数
変数

デフォルトの
ポインタ
定義

デフォルトの
ポインタ
サイズ

TINY

data

data

near

near *

2 バイト

XTINY

near

near

near

near *

2 バイト

SMALL

data

data

code

far *

4 バイト

XSMALL

near

near

code

far *

4 バイト

LARGE

xdata

xdata

code

far *

4 バイト

［コード ROM サイズ］（Code Rom Size）
251 マイクロコントローラファミリでは、最大 16 MB のプログラムサイズを使用できます。生成された 251 コードは、特定の JMP と CALL 命令を使用して最適化できます。ROM ディレクティブでは、使用する JMP と CALL 命令の組み合わせを選択できます。

コード ROM サイズ

JMP 命令

モジュール内の
CALL 命令

CALL 命令
の外部関数

SMALL

AJMP

ACALL

ACALL

MEDIUM

AJMP

ACALL

LCALL

COMPACT

AJMP

LCALL

LCALL

LARGE

LJMP

LCALL

LCALL

HUGE

LJMP

LCALL/ ECALL

ECALL
［オンチップコード ROM の使用］（Use On-chip Code ROM）
CPU スタートアップコードで通常は有効になっているオンチップコンポーネントの使用量を指定します。ダイアログ設定がスタートアップファイルの設定と同じであることを確認して下さい。
［4 バイトの割り込みフレームサイズ］（4 Byte Interrupt Frame Size）
INTR2 ディレクティブは、251 CPU が割り込みモードでプログラムカウンタの下位 16 ビットを保存するけれど、PSW1 を自動的に保存しないことを C251 コンパイラに通知します。INTR2 を使用する場合、C251 コンパイラは割り込み関数で PSW1 レジスタを手動で保存し復元するコードを生成します。8051 互換の動作が必要な場合は、このディレクティブを使用する必要があります。

［データしきい値］（Data Threshold）

［data］
メモリモデル設定を最適化できます。

例
far:10

 10 バイト未満のサイズの変数を far 空間に配置します。明示的なメモリ空間がないその他の変数は、デフォルトの空間に配置されます。
［near］
メモリモデル設定を最適化できます。

例
near:8

 8 バイト未満のサイズの変数を near 空間に配置します。明示的なメモリ空間がないその他の変数は、デフォルトの空間に配置されます。
［xdata］
メモリモデル設定を最適化できます。

 例
xdata:12

 12 バイト未満のサイズの変数を xdata 空間に配置します。明示的なメモリ空間がないその他の変数は、デフォルトの空間に配置されます。
［コードバンキング］（Code Banking）
プログラムコードバンキングを有効にします。

このチェックボックスをオンにすると、［グループのオプション］（Options for Group）→［プロパティ］（Properties）ダイアログのコードバンクオプションも有効になります。

標準 8051 デバイスでは、64 KB のアドレス範囲をコード空間に使用できます。この 64 KB の上限を超えてプログラムコードを展開できるように、Keil 8051 ツールではコードバンキングをサポートしています。この技術により、1 つの共通領域と 32 のバンク（各バンクに対して最大 64 KB、合計 2 MB のバンク切り替えメモリ）を管理できます。

［バンク］（Banks）
ハードウェアでサポートされているコードバンクの数を指定します。

注

  • プログラムコードをコードバンクに配置するには、ソースモジュールをコードバンクに割り当てる必要があります。この操作は、［オプション］（Options）→［プロパティ］（Properties）ダイアログで行います。このダイアログは、ファイルまたはファイルグループのプロジェクトウィンドウを右マウスクリックすると開きます。このダイアログを使用すると、コードバンクまたは共通領域を選択できます。
［バンク領域］（Bank Area）
ハードウェアでサポートされているバンク領域の開始アドレスと終了アドレスを指定します。

注

  • プログラムコードをコードバンクに配置するには、ソースモジュールをコードバンクに割り当てる必要があります。この操作は、［オプション］（Options）→［プロパティ］（Properties）ダイアログで行います。このダイアログは、ファイルまたはファイルグループのプロジェクトウィンドウを右マウスクリックすると開きます。このダイアログを使用すると、コードバンクまたは共通領域を選択できます。

［外部メモリ］（External Memory）

#0 – 開始/サイズ

ここでは、ターゲットハードウェアのすべての外部メモリ領域を指定します。RAM は、変数が保存されているメモリ領域を示します。ROM は、定数とプログラムコード（通常は、EPROM またはフラッシュメモリ）を保存する領域を参照します。

モニタをテストに使用する場合、プログラムコードは RAM 空間で実行されます。ただし、このダイアログでは ROM 領域を指定する必要があります。指定しない場合は、アプリケーションに定数とプログラムコード用のメモリがなくなります。

この情報を使用して、リンカ/ロケータ設定を派生させます。ハードウェアに使用する特定のチップ選択シグナルが必要な場合は、CPU のスタートアップファイルも設定する必要があります。


µVision4 User's Guide (Japanese): ターゲット

ターゲット

選択したデバイスとツールセットに応じて、次のいずれかのターゲットページを利用できます。

  • ［ターゲット（MDK-ARM）］（Target (MDK-ARM)）
  • ［ターゲット（Keil C166）］（Target (Keil C166)）
  • ［ターゲット（Keil C51）］（Target (Keil C51)）
  • ［ターゲット（Keil C251）］（Target (Keil C251)）
  • ［ターゲット（GNU ARM）］（Target (GNU ARM)）


µVision4 User's Guide (Japanese): ［テンプレート］（Templates）

［テンプレート］（Templates）

プロジェクトウィンドウの［テンプレート］（Templates）タブには、ユーザ定義のテキストブロック（テンプレート）が表示されます。テンプレートをソースファイルに挿入するには、テンプレート名の先頭の数文字を入力してから Ctrl+Space キーを押すか、［テンプレート］（Templates）タブの項目をクリックします。［編集］（Edit）→［コンフィギュレーション］（Configuration）→［テンプレート］（Templates）からテンプレートを定義します。

［テキストファイルタイプ］（Text File Types）
ユーザテキストテンプレートを変更するファイルタイプを選択します。
［テンプレート］（Templates）
テンプレート名を追加または削除します。
［テキスト］（Text）
テンプレートのテキストを編集します。
'|' 文字は、テキストブロックを挿入した後のカーソルの位置を指定します。テキストブロックに '|' 文字が含まれている場合は、2 つの '||' 文字を入力する必要があります。
'\' 文字は制御文字に使用します。'\' 文字を挿入する必要がある場合は、2 つの '\\' 文字を入力して下さい。


µVision4 User's Guide (Japanese): ［ツールメニューのカスタマイズ］（Customize Tools Menu）

［ツールメニューのカスタマイズ］（Customize Tools Menu）

［メニューコンテンツ］（Menu Content）
［ツール］（Tools）メニューに表示されるテキスト。この行にはキーコードとファイルコードを含めることができます。ショートカットを定義するには、アンパサンド（&）文字を付けます。現在選択されているメニュー行で、以下のオプションを指定することができます。
［引数を要求］（Prompt for Arguments）
このオプションが有効な場合は、メニュー項目を呼び出す時にダイアログボックスが開き、ユーザプログラムのコマンドライン引数を指定できます。
［最小化して実行］（Run Minimized）
ウィンドウを最小化してアプリケーションを実行するには、このオプションを有効にします。
［独立して実行］（Run Independent）
このオプションが有効な場合は、µVision は外部アプリケーションが完了するまで待機しません。
このオプションが無効な場合は、外部アプリケーションが終了するまで待機します。外部アプリケーションの出力は、出力ウィンドウの［ビルド］（Build）ページに書き込まれます。
［コマンド］（Command）
選択したメニュー項目で実行されるプログラムファイル。
［初期フォルダ］（Initial Folder）
アプリケーションプログラムの現在の作業フォルダ。このエントリが空の場合、µVision はプロジェクトファイルのベースフォルダを使用します。
［引数］（Arguments）
アプリケーションプログラムに渡されるコマンドライン引数。引数を渡すために、キーシーケンスを使用することができます。


µVision4 User's Guide (Japanese): ［ツール］（Tools）

［ツール］（Tools）

PC-Lint の設定および実行、サードパーティ製ユーティリティへの独自のツールショートカットの設定を行います。

  • Gimpel Software の PC-Lint を設定し、C プログラムの構文とセマンティクスのチェック、障害の検出、C コードの障害の除去を行うことで、デバッグ作業の労力を軽減します。
  • ツールメニューをカスタマイズし、頻繁に使用する外部コマンド、プログラム、およびユーティリティを含めます。これらのプログラムは、µVision4 の［ツール］（Tools）メニューから呼び出すことができます。


µVision4 User's Guide (Japanese): ［ユーザ］（User）

［ユーザ］（User）

このダイアログでは、ビルドプロセス中に実行されるプログラムを指定できます。キーシーケンスを使用すると、µVision プロジェクトマネージャから、これらのユーザプログラムに引数を渡すことができます。

C/C++ ファイルのコンパイル前

［ユーザプログラムの実行］（Run User Program）
各 C/C++ ソースファイルをコンパイルする前にプログラムを実行できます（通常は MISRA ツールなどの広範囲の構文のチェックに使用されます）。
［DOS16］
16 ビット DOS 環境で実行する必要がある古いプログラムに対してのみ使用します。

ビルド/再ビルド前

［ユーザプログラムの実行］（Run User Program）
ビルドまたは再ビルドプロセス前にプログラムを実行できます（通常はプリコンパイルツールに使用されます）。
［DOS16］
16 ビット DOS 環境で実行する必要がある古いプログラムに対してのみ使用します。

ビルド/再ビルド後

［ユーザプログラムの実行］（Run User Program）
正常なビルドまたは再ビルドプロセス後にプログラムを実行できます（通常はファイルコンバータやデバッガに使用されます）。
［DOS16］
16 ビット DOS 環境で実行する必要がある古いプログラムに対してのみ使用します。
［完了時にビープ］（Beep When Complete）
ビルドプロセスの完了時に、音によるシグナルを発します。
［デバッグの開始］（Start Debugging）
コンパイルプロセスの完了後にデバッガを開始します。

例：

  • ユーザプログラムの実行 1：C:\Utilities\Programmer.exe -d271001 #H

     アプリケーション固有のパラメータとフルパス Hex 出力ファイル（#H は C:\MyProject\Project1.HEX を意味します）を指定して呼び出します。
  • ユーザプログラムの実行 2：C:\Utilities\Emulator.exe "%L" -p"$P"

    リンカ出力ファイル（"%L" は "Project1" を意味します）とプロジェクトフォルダ名（アプリケーションパラメータを -p とし、"$P" は C:\MyProject を意味します）を指定して呼び出します。

注

  • 特殊文字（スペース、~、# など）を持つフォルダ名を使用する場合は、キーシーケンスを引用符（""）で囲んで下さい。


µVision4 User's Guide (Japanese): ［ユーザキーワード］（User Keywords）

［ユーザキーワード］（User Keywords）

［テキストファイルタイプ］（Text File Types）
ユーザキーワードを変更するファイルタイプを選択します。
［ユーザキーワード］（User Keywords）
ユーザキーワードの色設定を使用して、エディタで強調表示されているトークンを追加または削除します。


µVision4 User's Guide (Japanese): ダイアログ

ダイアログ

µVision4 IDE/デバッガのダイアログページは、次のカテゴリにグループ分けされています。

  • ［ファイル］（File）→［デバイスデータベース］（Device Database）：マイクロコントローラデバイスリストを確認および変更します。
  • ［ファイル］（File）→［ライセンス管理］（License Management）：ソフトウェアライセンスを管理します。
  • ［編集］（Edit）→［ファイル内検索］（Find in Files）：複数のファイルからテキスト検索を行います。
  • ［編集］（Edit）→［コンフィギュレーション］（Configuration）：エディタ、色 & フォント、ユーザキーワード、ショートカットキー、およびテキストテンプレートを設定します。
  • ［ビュー］（View）→［シンボルウィンドウ］（Symbol Window）：現在のデバッグシンボル、変数、オブジェクトをリストし、デバッグ情報を表示します。
  • ［ビュー］（View）→［解析ウィンドウ］（Analysis Windows）→［ロジックアナライザ］（Logic Analyzer）→［設定］（Setup）：ロジックアナライザのシグナル記録を設定します。
  • ［ビュー］（View）→［解析ウィンドウ］（Analysis Windows）→［パフォーマンスアナライザ］（Performance Analyzer）→［設定］（Setup）：統計を収集するアドレス範囲と関数を設定します。
  • ［プロジェクト］（Project）→コンポーネント、環境、およびブック：ソースファイル、ツール環境、およびドキュメントを管理します。
  • ［マルチプロジェクトワークスペース］（Multi-Project Workspace）：既存のプロジェクトをマルチプロジェクトに追加およびマルチプロジェクトから削除します。
  • ［プロジェクト］（Project）→［デバイスの選択］（Select Device）：プロジェクトのマイクロコントローラデバイスを選択します。
  • ［バッチビルド］（Batch Build）：マルチプロジェクトを 1 つの作業手順でコンパイル、リンク、およびアセンブルします。
  • ［プロジェクト］（Project）→［オプション］（Options）：ツールチェーンを設定します。
  • ［フラッシュ］（Flash）→［フラッシュツールの設定］（Configure Flash Tools）：フラッシュプログラミングに使用するツールを設定します。
  • ［デバッグ］（Debug）→［ブレークポイント］（Breakpoints）：実行ブレークポイント、アクセスブレークポイント、および条件ブレークポイントを管理します。
  • ［デバッグ］（Debug）→［デバッグ設定］（Debug Settings）：シミュレーション用のアクセストラップを設定します。
  • ［デバッグ］（Debug）→［メモリマップ］（Memory Map）：メモリ領域とメモリアクセスタイプを設定します。
  • ［デバッグ］（Debug）→［関数エディタ］（Function Editor）：デバッグ関数またはデバッガ .INI ファイルを作成します。
  • ［ツール］（Tools）→［PC-Lint の設定］（Setup PC Lint）：Gimpel PC-Lint を設定します。
  • ［ツール]（Tools）→［ツールメニューのカスタマイズ］（Customize Tools Menu）：外部コマンドラインツールを追加します。
  • ［SVCS］→［バージョンコントロールの設定］（Configure Version Control）：外部ソフトウェアバージョンコントロールシステムを設定します。


µVision4 User's Guide (Japanese): Error E000 (*** Error E000.)

Error E000

Summary
*** Error E000

Unknown error.
Description

This is an unspecified error.

Cause

Might be a consequence from errors detected in other parts of the code.

Resolution

Resolve those other errors first.


µVision4 User's Guide (Japanese): Error E001 (*** Error E001.)

Error E001

Summary
*** Error E001

Illegal Character
Description

An illegal (unprintable) character has been used.

Resolution

Change or remove the character. If necessary, delete the line and type in the code again.


µVision4 User's Guide (Japanese): Error E002 (*** Error E002.)

Error E002

Summary
*** Error E002

Illegal Character Constant
Description

A character constant has an invalid format.

Cause

Object names, variables or functions are not allowed in constant expressions. The notation '\c' is valid only when c is a printable ASCII character.


µVision4 User's Guide (Japanese): Error E003 (*** Error E003.)

Error E003

Summary
*** Error E003

Illegal Hex Constant
Description

An invalid character has been found in a hexadecimal constant.

Cause

The specified character is not a valid hexadecimal character.

Resolution

Remove any character that is not part of a hexadecimal digit.


µVision4 User's Guide (Japanese): Error E004 (*** Error E004.)

Error E004

Summary
*** Error E004

Escape Value Too Big
Description

The escape character is not valid, or has a wrong format.

Cause

A character sequence is interpreted as a control character, but is not recognized.

Resolution

Remove unnecessary characters, insert additional delimiters.


µVision4 User's Guide (Japanese): Error E005 (*** Error E005.)

Error E005

Summary
*** Error E005

String Too Long
Description

A string may not contain more than 4096 characters.

Resolution

Use the concatenation symbol ('\') to logically continue strings longer than 4096 characters. Lines terminated in this way are concatenated during lexical analysis.


µVision4 User's Guide (Japanese): Error E006 (*** Error E006.)

Error E006

Summary
*** Error E006

Missing String Terminator
Description

A string is not closed with a quote (").


µVision4 User's Guide (Japanese): Error E007 (*** Error E007.)

Error E007

Summary
*** Error E007

Illegal Octal Digit
Description

An invalid character has been found in an octal digit.

Cause

The specified character is not a valid octal digit.

Resolution

Remove any number greater than 7 or any character that is not part of an octal digit.


µVision4 User's Guide (Japanese): Error E008 (*** Error E008.)

Error E008

Summary
*** Error E008

Number Value Too Big
Description

The variable value exceeds the number range of the variable.

Resolution

Use another data type for this variable.


µVision4 User's Guide (Japanese): Error E009 (*** Error E009.)

Error E009

Summary
*** Error E009

Invalid Floating Point Syntax
Description

This error occurs when a floating point argument lies outside of the valid range for 32 bit floating values.

Resolution

Check for underflow, overflow, or a division by zero.


µVision4 User's Guide (Japanese): Error E010 (*** Error E010.)

Error E010

Summary
*** Error E010

Syntax Error
Description

The code part does not confirm to the definition of the programming language.

Cause

Might be a result from previous errors.

Resolution

Resolve other errors before attempting to solve this one.


µVision4 User's Guide (Japanese): Error E011 (*** Error E011.)

Error E011

Summary
*** Error E011

Negative Subscript
Description

An array reference points to a negative number or the object was not an array.


µVision4 User's Guide (Japanese): Error E012 (*** Error E012.)

Error E012

Summary
*** Error E012

Value Out Of Range
Description

The value exceeds the numerical boundaries of the variable.

Resolution

Adjust the data type of the variable.


µVision4 User's Guide (Japanese): Error E013 (*** Error E013.)

Error E013

Summary
*** Error E013

Array Size 0
Description

In general, a formal size specifier is not required for external, single, or multi-dimensional arrays. Typically, the compiler calculates the size at initialization. For external arrays, the size is of no great interest.

Cause

This error is the result of attempting to use the sizeof() operator on an undimensioned array or on a multi-dimensional array with undefined element sizes.


µVision4 User's Guide (Japanese): Error E014 (*** Error E014.)

Error E014

Summary
*** Error E014

Illegal Constant Expression
Description

A constant expression is expected.

Cause

Object names, variables or functions, are not allowed in constant expressions.


µVision4 User's Guide (Japanese): Error E015 (*** Error E015.)

Error E015

Summary
*** Error E015

Multiple Storage Class Given
Description

At most one storage-class specifier may be given in the declaration.

Resolution

Remove the unnecessary storage-class.

Example
// wrong declarations
typedef static int (*get)(void);
char int isWrong;


µVision4 User's Guide (Japanese): Error E016 (*** Error E016.)

Error E016

Summary
*** Error E016

Illegal Storage Class
Description

The specified storage class cannot be used in this context.


µVision4 User's Guide (Japanese): Error E017 (*** Error E017.)

Error E017

Summary
*** Error E017

Illegal Type Specifier
Description

The data type used is not valid.

Cause

The data type might not exist in this context.

Resolution

Use another data type for the variable or parameter.


µVision4 User's Guide (Japanese): Error E018 (*** Error E018.)

Error E018

Summary
*** Error E018

Invalid Storage Class
Description

An object was declared with an invalid memory space specification.

Cause

This occurs when an object is declared outside of a function and with a storage class of auto or register.

Resolution

Use another storage class or declare the object in another context.


µVision4 User's Guide (Japanese): Error E019 (*** Error E019.)

Error E019

Summary
*** Error E019

Parse Stack Overflow
Description

The maximum level of nested blocks has been exceeded. Additional nested parse block levels are ignored.


µVision4 User's Guide (Japanese): Error E020 (*** Error E020.)

Error E020

Summary
*** Error E020

Identifier Expected
Description

An identifier is expected where none has been found.


µVision4 User's Guide (Japanese): Error E021 (*** Error E021.)

Error E021

Summary
*** Error E021

')' Expected
Description

A closing bracket is expected where another character has been found.


µVision4 User's Guide (Japanese): Error E022 (*** Error E022.)

Error E022

Summary
*** Error E022

'(' Expected
Description

An open parantheses is expected where another character has been found (function definition).


µVision4 User's Guide (Japanese): Error E023 (*** Error E023.)

Error E023

Summary
*** Error E023

';' Expected
Description

A semicolon is missing in the previous line. As a consequence, the compiler might generate an excess of error messages.

Resolution

Add the missing semicolon and re-compile the code.


µVision4 User's Guide (Japanese): Error E024 (*** Error E024.)

Error E024

Summary
*** Error E024

'}' Expected
Description

A closing curly bracket is expected where another character has been found.


µVision4 User's Guide (Japanese): Error E025 (*** Error E025.)

Error E025

Summary
*** Error E025

']' Expected
Description

A closing ellipsis is expected where another character has been found.


µVision4 User's Guide (Japanese): Error E026 (*** Error E026.)

Error E026

Summary
*** Error E026

':' Expected
Description

A colon is expected where another character has been found.


µVision4 User's Guide (Japanese): Error E027 (*** Error E027.)

Error E027

Summary
*** Error E027

Expression Too Complex (Heap Nodes)
Description

An expression is too complex and must be broken into two or more sub expressions.


µVision4 User's Guide (Japanese): Error E028 (*** Error E028.)

Error E028

Summary
*** Error E028

Literal Expected
Description

A literal character was expected where another type has been found.


µVision4 User's Guide (Japanese): Error E029 (*** Error E029.)

Error E029

Summary
*** Error E029

Unclosed Comment
Description

An unclosed comment has been found. This might trigger an excess of error messages.


µVision4 User's Guide (Japanese): Error E030 (*** Error E030.)

Error E030

Summary
*** Error E030

Undefined Name Of Virtual Register
Description

An unknown virtual register name has been used.


µVision4 User's Guide (Japanese): Error E031 (*** Error E031.)

Error E031

Summary
*** Error E031

Illegal Qualifier
Cause

You are attemting to:

  • Accessing a field of a variable that is not a structure.
  • Indexing a variable that is not an array.
  • Dereferencing a variable that is not a pointer.


µVision4 User's Guide (Japanese): Error E032 (*** Error E032.)

Error E032

Summary
*** Error E032

Redefinition Error
Description

This variable name has been declared already in another place.

Cause

The specified name cannot be redefined.

Resolution

Use another name for this object.


µVision4 User's Guide (Japanese): Error E033 (*** Error E033.)

Error E033

Summary
*** Error E033

Invalid Type
Description

An invalid data type has been used.

Cause

Also, the parameter might not match the type specification in the declaration.

Resolution

Check the function definition and adjust the data type of the variable or parameter.


µVision4 User's Guide (Japanese): Error E034 (*** Error E034.)

Error E034

Summary
*** Error E034

Undefined Identifier
Description

The identifier cannot be found.

Cause

The identifier has not been defined yet, or the respective declaration file has not been included yet.

Resolution

Declare the variable, or include the file where the variable is defined.


µVision4 User's Guide (Japanese): Error E035 (*** Error E035.)

Error E035

Summary
*** Error E035

Undefined Line Number
Cause

The line number specified in the code is not reachable.

Resolution

A qualification name might be necessary. For example:

  • .module-name.function-name
  • .module-name#line-number


µVision4 User's Guide (Japanese): Error E036 (*** Error E036.)

Error E036

Summary
*** Error E036

Illegal Type Conversion
Description

Converting one type into the other type is not possible.

Cause

An explicit or implicit data type cast failed.

Resolution

Check if all operands in the expression can be converted to the required data type.


µVision4 User's Guide (Japanese): Error E037 (*** Error E037.)

Error E037

Summary
*** Error E037

Operator Applied To Illegal Type
Description

This (unary) operator cannot be used in conjunction with this data type.


µVision4 User's Guide (Japanese): Error E038 (*** Error E038.)

Error E038

Summary
*** Error E038

Sizeof - Illegal Operand Taken
Description

The object passed to sizeof() is not allowed.


µVision4 User's Guide (Japanese): Error E039 (*** Error E039.)

Error E039

Summary
*** Error E039

Not A Modifiable 'Lvalue'
Description

No value can be assigned to the left hand side of the operation.

Cause

An attempt was made to assign a value to an object that cannot be modified. For example to a constant, a function, or a structure without identifying the field.


µVision4 User's Guide (Japanese): Error E040 (*** Error E040.)

Error E040

Summary
*** Error E040

'*' Illegal Indirection
Description

It is not possible to use the "*" operator here.

Cause

Usually, this means you are using an object that does not support the operator "*" (dereferencing) in this context.


µVision4 User's Guide (Japanese): Error E041 (*** Error E041.)

Error E041

Summary
*** Error E041

Incompatible Operand Type
Description

The operand cannot be computed with this operation.

Cause

The operation expects an object of another type.

Resolution

Use operands that casted to the same type. If necessary, use another operation for that operand.


µVision4 User's Guide (Japanese): Error E042 (*** Error E042.)

Error E042

Summary
*** Error E042

At Least One 'void' Type Operand
Description

An function with the type 'void' is used in an operation that expects a return value.

Resolution

Either use a function that returns a value, or redefine the function in use.


µVision4 User's Guide (Japanese): Error E043 (*** Error E043.)

Error E043

Summary
*** Error E043

Address Of 'Rvalue' Taken


µVision4 User's Guide (Japanese): Error E044 (*** Error E044.)

Error E044

Summary
*** Error E044

Unsupported Operation
Description

The operation does not exist.

Cause

The operation you attempt to use cannot be found. Usually, this happens when a resource has been removed, but its associated objects have not been removed.

Resolution

Include the respective file, or remove the object from the source file.


µVision4 User's Guide (Japanese): Error E045 (*** Error E045.)

Error E045

Summary
*** Error E045

Two Pointers/Addresses With Different 'Mspaces'


µVision4 User's Guide (Japanese): Error E046 (*** Error E046.)

Error E046

Summary
*** Error E046

Subscript Requires Array
Cause

The indexed object is not an array, However, you are trying to access the object as if it were an array.


µVision4 User's Guide (Japanese): Error E047 (*** Error E047.)

Error E047

Summary
*** Error E047

'sizeof' Returns Zero
Description

sizeof() retuned a value of zero.

Cause

In C++, an empty class or struct has a sizeof at least 1 by definition. In C, an empty struct is not permitted.

Resolution

Redefine the object.


µVision4 User's Guide (Japanese): Error E048 (*** Error E048.)

Error E048

Summary
*** Error E048

Invalid Dereference
Description

The pointer cannot be dereferenced.

Cause

The dereferenced object is NULL or pointing to NULL. Dereferencing an invalid pointer, or NULL-object, has unpredictable results.

Resolution

Test of the object value before using it.

Example
char *ptr = [expr. is NULL];
*ptr;                        //dereferencing a NULL pointer is not alowed

//better, test first
if (ptr == NULL) {
...
}


µVision4 User's Guide (Japanese): Error E049 (*** Error E049.)

Error E049

Summary
*** Error E049

Not A User Or Built-In Function
Description

The function is not recognized.


µVision4 User's Guide (Japanese): Error E050 (*** Error E050.)

Error E050

Summary
*** Error E050

Unsupported Type
Description

The type specified is not supported.


µVision4 User's Guide (Japanese): Error E051 (*** Error E051.)

Error E051

Summary
*** Error E051

Actual Parameters Do Not Match Function Def
Description

The function is called with parameters that do not match the function declaration.

Cause
  • Number of parameters might not match the function definition.
  • Parameter type mismatch between function call and function definition.


µVision4 User's Guide (Japanese): Error E052 (*** Error E052.)

Error E052

Summary
*** Error E052

Left Side Of '.' Requires Struct/Union
Description

The left side of a member-selection expression must be a structure or union type.

Cause

The object you are trying to access is not recognized as a structure. It also happens, when an array of structures is indexed incorrectly.

See Also
...
  typedef struct  {
    int iTotal;
    char names;
  } testStruct;

  testStruct testIt[4];
  testStruct asignIt;

//incorrect example
  testIt.iTotal[1] = asignIt.iTotal;

//correct example
  testIt[1].iTotal = asignIt.iTotal;
...


µVision4 User's Guide (Japanese): Error E053 (*** Error E053.)

Error E053

Summary
*** Error E053

Left Side Of '->' Requires Struct/Union Pointer


µVision4 User's Guide (Japanese): Error E054 (*** Error E054.)

Error E054

Summary
*** Error E054

Undefined Struct/Union Member


µVision4 User's Guide (Japanese): Error E055 (*** Error E055.)

Error E055

Summary
*** Error E055

Illegal Expression Token


µVision4 User's Guide (Japanese): Error E056 (*** Error E056.)

Error E056

Summary
*** Error E056

Can't Open File


µVision4 User's Guide (Japanese): Error E057 (*** Error E057.)

Error E057

Summary
*** Error E057

Illegal Address (%S)
Description

Generated when the attempt to store values to a certain address fails (memory unmapped or memory write failed).

Cause

Most often, this error occurs when the target debugger is started and loading the object code fails.

Resolution

Correct the project settings. “Download to Flash” option should be disabled and a proper flash algorithms needs to be selected. This prevents writing to flash while the debugger starts. Flash needs to be programmed through “Flash download” before the debugger session is started.


µVision4 User's Guide (Japanese): Error E058 (*** Error E058.)

Error E058

Summary
*** Error E058

Illegal Record


µVision4 User's Guide (Japanese): Error E059 (*** Error E059.)

Error E059

Summary
*** Error E059

Invalid Absolute Module


µVision4 User's Guide (Japanese): Error E060 (*** Error E060.)

Error E060

Summary
*** Error E060

Checksum Error


µVision4 User's Guide (Japanese): Error E061 (*** Error E061.)

Error E061

Summary
*** Error E061

Illegal Hex Module


µVision4 User's Guide (Japanese): Error E062 (*** Error E062.)

Error E062

Summary
*** Error E062

Unknown Environment Variable


µVision4 User's Guide (Japanese): Error E063 (*** Error E063.)

Error E063

Summary
*** Error E063

Logfile Already Active


µVision4 User's Guide (Japanese): Error E064 (*** Error E064.)

Error E064

Summary
*** Error E064

Can'T Create (Or Append To) File


µVision4 User's Guide (Japanese): Error E065 (*** Error E065.)

Error E065

Summary
*** Error E065

Access Violation: Addr=0X%08X


µVision4 User's Guide (Japanese): Error E066 (*** Error E066.)

Error E066

Summary
*** Error E066

Illegal Opcode


µVision4 User's Guide (Japanese): Error E067 (*** Error E067.)

Error E067

Summary
*** Error E067

Invalid Address Expression


µVision4 User's Guide (Japanese): Error E068 (*** Error E068.)

Error E068

Summary
*** Error E068

Div/Mod By Zero


µVision4 User's Guide (Japanese): Error E069 (*** Error E069.)

Error E069

Summary
*** Error E069

Can't Store Value While Running


µVision4 User's Guide (Japanese): Error E070 (*** Error E070.)

Error E070

Summary
*** Error E070

'&': Invalid Operand Given


µVision4 User's Guide (Japanese): Error E071 (*** Error E071.)

Error E071

Summary
*** Error E071

Invalid Expression Type


µVision4 User's Guide (Japanese): Error E072 (*** Error E072.)

Error E072

Summary
*** Error E072

Invalid Item Number


µVision4 User's Guide (Japanese): Error E073 (*** Error E073.)

Error E073

Summary
*** Error E073

Unsupported Breakpoint Type


µVision4 User's Guide (Japanese): Error E074 (*** Error E074.)

Error E074

Summary
*** Error E074

Overlapping Address Ranges


µVision4 User's Guide (Japanese): Error E075 (*** Error E075.)

Error E075

Summary
*** Error E075

Too Many Items


µVision4 User's Guide (Japanese): Error E076 (*** Error E076.)

Error E076

Summary
*** Error E076

Command Not Supported In Target Mode


µVision4 User's Guide (Japanese): Error E077 (*** Error E077.)

Error E077

Summary
*** Error E077

Invalid Bit Address


µVision4 User's Guide (Japanese): Error E078 (*** Error E078.)

Error E078

Summary
*** Error E078

Invalid Bit Position
Description

The definition of the bit position within a declaration must be in the range supported by the microcontroller. Possible ranges are:

  • 0 .. 7
  • 0 .. 15
  • 0 .. 31


µVision4 User's Guide (Japanese): Error E079 (*** Error E079.)

Error E079

Summary
*** Error E079

'{', Scope Stack Overflow (16)


µVision4 User's Guide (Japanese): Error E080 (*** Error E080.)

Error E080

Summary
*** Error E080

Invalid 'Break/Continue'


µVision4 User's Guide (Japanese): Error E081 (*** Error E081.)

Error E081

Summary
*** Error E081

'Case/Default': Missing Enclosing Switch


µVision4 User's Guide (Japanese): Error E082 (*** Error E082.)

Error E082

Summary
*** Error E082

More Than One 'Default'


µVision4 User's Guide (Japanese): Error E083 (*** Error E083.)

Error E083

Summary
*** Error E083

Duplicate Label


µVision4 User's Guide (Japanese): Error E084 (*** Error E084.)

Error E084

Summary
*** Error E084

Missing Return Expression


µVision4 User's Guide (Japanese): Error E085 (*** Error E085.)

Error E085

Summary
*** Error E085

Return Value On Void Function


µVision4 User's Guide (Japanese): Error E086 (*** Error E086.)

Error E086

Summary
*** Error E086

Undefined Label


µVision4 User's Guide (Japanese): Error E087 (*** Error E087.)

Error E087

Summary
*** Error E087

Not An Integer Constant Expression


µVision4 User's Guide (Japanese): Error E088 (*** Error E088.)

Error E088

Summary
*** Error E088

Invalid Type On Controlling Expression


µVision4 User's Guide (Japanese): Error E089 (*** Error E089.)

Error E089

Summary
*** Error E089

Duplicate Identifier (Parm Or Local)
Description

A formal identifier name exists more than once. Identifier names must be unique within their scope.

Resolution

Rename or remove one of the duplicate names.


µVision4 User's Guide (Japanese): Error E090 (*** Error E090.)

Error E090

Summary
*** Error E090

More Than 16 Parameters


µVision4 User's Guide (Japanese): Error E091 (*** Error E091.)

Error E091

Summary
*** Error E091

Call To Undefined Function


µVision4 User's Guide (Japanese): Error E092 (*** Error E092.)

Error E092

Summary
*** Error E092

Can't Redefine Builtin Function


µVision4 User's Guide (Japanese): Error E093 (*** Error E093.)

Error E093

Summary
*** Error E093

Can't Remove Builtin-Function


µVision4 User's Guide (Japanese): Error E094 (*** Error E094.)

Error E094

Summary
*** Error E094

Signal(): Can't Receive Or Return Value(S)


µVision4 User's Guide (Japanese): Error E095 (*** Error E095.)

Error E095

Summary
*** Error E095

Duplicate Case Label


µVision4 User's Guide (Japanese): Error E096 (*** Error E096.)

Error E096

Summary
*** Error E096

Function Too Big


µVision4 User's Guide (Japanese): Error E097 (*** Error E097.)

Error E097

Summary
*** Error E097

Signal() Must Contain Twatch()


µVision4 User's Guide (Japanese): Error E098 (*** Error E098.)

Error E098

Summary
*** Error E098

Internal: Function Execution Error


µVision4 User's Guide (Japanese): Error E099 (*** Error E099.)

Error E099

Summary
*** Error E099

Signal() Already Activated


µVision4 User's Guide (Japanese): Error E100 (*** Error E100.)

Error E100

Summary
*** Error E100

Too Many Signals()


µVision4 User's Guide (Japanese): Error E101 (*** Error E101.)

Error E101

Summary
*** Error E101

No Such Signal()


µVision4 User's Guide (Japanese): Error E102 (*** Error E102.)

Error E102

Summary
*** Error E102

Function Calls Too Nested


µVision4 User's Guide (Japanese): Error E103 (*** Error E103.)

Error E103

Summary
*** Error E103

Command Not Allowed Now


µVision4 User's Guide (Japanese): Error E104 (*** Error E104.)

Error E104

Summary
*** Error E104

Undefined Function


µVision4 User's Guide (Japanese): Error E105 (*** Error E105.)

Error E105

Summary
*** Error E105

Call Not To Function


µVision4 User's Guide (Japanese): Error E106 (*** Error E106.)

Error E106

Summary
*** Error E106

Out Of Memory


µVision4 User's Guide (Japanese): Error E107 (*** Error E107.)

Error E107

Summary
*** Error E107

Function '%S' Is Currently In Use


µVision4 User's Guide (Japanese): Error E108 (*** Error E108.)

Error E108

Summary
*** Error E108

Wwatch/Twatch(): Not Within Signal()


µVision4 User's Guide (Japanese): Error E109 (*** Error E109.)

Error E109

Summary
*** Error E109

Function Has Been Redefined After Reference


µVision4 User's Guide (Japanese): Error E110 (*** Error E110.)

Error E110

Summary
*** Error E110

Too Many Operands


µVision4 User's Guide (Japanese): Error E111 (*** Error E111.)

Error E111

Summary
*** Error E111

Number Of Operands Does Not Match Instruction


µVision4 User's Guide (Japanese): Error E112 (*** Error E112.)

Error E112

Summary
*** Error E112

Illegal Override Type


µVision4 User's Guide (Japanese): Error E113 (*** Error E113.)

Error E113

Summary
*** Error E113

Illegal Operand: '/Register' Or '#Register'


µVision4 User's Guide (Japanese): Error E114 (*** Error E114.)

Error E114

Summary
*** Error E114

Register: Illegal Type- Or Space-Override


µVision4 User's Guide (Japanese): Error E115 (*** Error E115.)

Error E115

Summary
*** Error E115

Instruction Does Not Match Cpu


µVision4 User's Guide (Japanese): Error E116 (*** Error E116.)

Error E116

Summary
*** Error E116

Branch Target Out Of Range


µVision4 User's Guide (Japanese): Error E117 (*** Error E117.)

Error E117

Summary
*** Error E117

Illegal Register Operand


µVision4 User's Guide (Japanese): Error E118 (*** Error E118.)

Error E118

Summary
*** Error E118

Invalid Short Value


µVision4 User's Guide (Japanese): Error E119 (*** Error E119.)

Error E119

Summary
*** Error E119

Invalid Instruction Operand


µVision4 User's Guide (Japanese): Error E120 (*** Error E120.)

Error E120

Summary
*** Error E120

Code Size Limit Exceeded


µVision4 User's Guide (Japanese): Error E121 (*** Error E121.)

Error E121

Summary
*** Error E121

Agdi: Cannot Access Target While Executing


µVision4 User's Guide (Japanese): Error E122 (*** Error E122.)

Error E122

Summary
*** Error E122

Agdi: Memory Read Failed (%S)


µVision4 User's Guide (Japanese): Error E123 (*** Error E123.)

Error E123

Summary
*** Error E123

Agdi: Invalid Operation


µVision4 User's Guide (Japanese): Error E124 (*** Error E124.)

Error E124

Summary
*** Error E124

Agdi: Attempt To Write Read Only Item


µVision4 User's Guide (Japanese): Error E125 (*** Error E125.)

Error E125

Summary
*** Error E125

Agdi: Memory Write Failed (%S)


µVision4 User's Guide (Japanese): Error E126 (*** Error E126.)

Error E126

Summary
*** Error E126

Agdi: Memory Map Failed (0X%08X)


µVision4 User's Guide (Japanese): Error E127 (*** Error E127.)

Error E127

Summary
*** Error E127

Com Channel Not Opened, Use Mode Command First


µVision4 User's Guide (Japanese): Error E128 (*** Error E128.)

Error E128

Summary
*** Error E128

Invalid Map Command


µVision4 User's Guide (Japanese): Error E131 (*** Error E131.)

Error E131

Summary
*** Error E131

File Is Empty


µVision4 User's Guide (Japanese): Error E132 (*** Error E132.)

Error E132

Summary
*** Error E132

Command Supported In Target Mode Only


µVision4 User's Guide (Japanese): Error E133 (*** Error E133.)

Error E133

Summary
*** Error E133

Unknown Namespace


µVision4 User's Guide (Japanese): Error E140 (*** Error E140.)

Error E140

Summary
*** Error E140

Access Is Out Of Bounds


µVision4 User's Guide (Japanese): E. Error Messages

E. Error Messages

The following errors are covered:

Error Number | Description
E000 | Unknown Error
E001 | Illegal Character
E002 | Illegal Character Constant
E003 | Illegal Hex Constant
E004 | Escape Value Too Big
E005 | String Too Long
E006 | Missing String Terminator
E007 | Illegal Octal Digit
E008 | Number Value Too Big
E009 | Invalid Floating Point Syntax
E010 | Syntax Error
E011 | Negative Subscript
E012 | Value Out Of Range
E013 | Array Size 0
E014 | Illegal Constant Expression
E015 | Multiple Storage Class Given
E016 | Illgeal Storage Class
E017 | Illegal Type Specifier
E018 | Invalid Storage Class
E019 | Parse Stack Overflow
E020 | Identifier Expected
E021 | ')' Expected
E022 | '(' Expected
E023 | ';' Expected
E024 | '}' Expected
E025 | ']' Expected
E026 | ':' Expected
E027 | Expression Too Complex (Heap Nodes)
E028 | Literal Expected
E029 | Unclosed Comment
E030 | Undefined Name Of Virtual Register
E031 | Illegal Qualifier
E032 | Redefinition Error
E033 | Invalid Type
E034 | Undefined Identifier
E035 | Undefined Line Number
E036 | Illgeal Type Conversion
E037 | Operator Applied To Illegal Type
E038 | Sizeof Illgeal Operand Taken
E039 | Not A Modifiable Lvalue
E040 | '*' Illegal Indirection
E041 | Incompatible Operand Type
E042 | At Least One 'Void' Type Operand
E043 | Address Of Rvalue Taken
E044 | Unsupported Operation
E045 | Two Pointers/Addresses With Different Mspaces
E046 | Subscript Requires Array
E047 | Sizeof Returns Zero
E048 | Invalid Dereference
E049 | Not A User Or Built-In Function
E050 | Unsupported Type
E051 | Actual Parameters Do Not Match Function Def
E052 | Left Side Of '.' Requires Struct/Union
E053 | Left Side Of '->' Requires Struct/Union Pointer
E054 | Undefined Struct/Union Member
E055 | Illegal Expression Token
E056 | Cant Open File
E057 | Illegal Address (%S)
E058 | Illegal Record
E059 | Invalid Absolute Module
E060 | Checksum-Error
E061 | Illegal Hex Module
E062 | Unknown Environment Variable
E063 | Logfile Already Active
E064 | Can'T Create (Or Append To) File
E065 | Access Violation: Addr=0X%08X
E066 | Illegal Opcode
E067 | Invalid Address Expression
E068 | Div/Mod By Zero
E069 | Can'T Store Value While Running
E070 | '&': Invalid Operand Given
E071 | Invalid Expression Type
E072 | Invalid Item Number
E073 | Unsupported Breakpoint Type
E074 | Overlapping Address Ranges
E075 | Too Many Items
E076 | Command Not Supported In Target Mode
E077 | Invalid Bit Address
E078 | Invalid Bit Position
E079 | '{' Scope Stack Overflow (16)
E080 | Invalid 'Break/Continue'
E081 | 'Case/Default': Missing Enclosing Switch
E082 | More Than One 'Default'
E083 | Duplicate Label
E084 | Missing Return Expression
E085 | Return Value On Void Function
E086 | Undefined Label
E087 | Not An Integer Constant Expression
E088 | Invalid Type On Controlling Expression
E089 | Duplicate Identifier (Parm Or Local)
E090 | More Than 16 Parameters
E091 | Call To Undefined Function
E092 | Can'T Redefine Builtin Function
E093 | Can'T Remove Builtin-Function
E094 | Signal(): Can'T Receive Or Return Value(S)
E095 | Duplicate Case Label
E096 | Function Too Big
E097 | Signal() Must Contain Twatch()
E098 | Internal: Function Execution Error
E099 | Signal() Already Activated
E100 | Too Many Signals()'S
E101 | No Such Signal()
E102 | Function Calls Too Nested
E103 | Command Not Allowed Now
E104 | Undefined Function
E105 | Call Not To Function
E106 | Out Of Memory
E107 | Function '%S' Is Currently In Use
E108 | Wwatch/Twatch(): Not Within Signal()
E109 | Function Has Been Redefined After Reference
E110 | Too Many Operands
E111 | Number Of Operands Does Not Match Instruction
E112 | Illegal Override Type
E113 | Illegal Operand: '/Register' Or '#Register'
E114 | Register: Illegal Type- Or Space-Override
E115 | Instruction Does Not Match Cpu
E116 | Branch Target Out Of Range
E117 | Illegal Register Operand
E118 | Invalid Short Value
E119 | Invalid Instruction Operand
E120 | Code Size Limit Exceeded
E121 | Agdi: Cannot Access Target While Executing
E122 | Agdi: Memory Read Failed (%S)
E123 | Agdi: Invalid Operation
E124 | Agdi: Attempt To Write Read Only Item
E125 | Agdi: Memory Write Failed (%S)
E126 | Agdi: Memory Map Failed (0X%08X)
E127 | Com Channel Not Opened Use Mode Command First
E128 | Invalid Map Command
E129 | User Format
E131 | File Is Empty
E132 | Command Supported In Target Mode Only
E133 | Unknown Namespace
E140 | Access Is Out Of Bounds


µVision4 User's Guide (Japanese): ［ブレークポイント］（Breakpoints）ダイアログ

［ブレークポイント］（Breakpoints）ダイアログ

µVision4 は、複雑なブレークポイントもサポートしています。変数に特定の値が含まれている場合に、プログラムの実行を停止したいことがあります。以下の例は、current.time.sec に値 3 が書き込まれたときの停止方法を示します。

［デバッグ］（Debug）メニューから［ブレークポイント］（Breakpoints）ダイアログを開きます。式に「current.time.sec==3」と入力します。［書き込み］（Write）チェックボックスを選択します（このオプションは、式が書き込まれた場合にのみブレーク条件がテストされるように指定できます）。［定義］（Define）ボタンをクリックして、ブレークポイントを設定します。

ブレークポイント条件をテストするには、以下の手順を実行します。

シンボル | 説明
［リセット］（Reset）ボタン | CPU をリセットします。
［実行］（Run）ボタン | プログラムの実行が停止されたら、MEASURE プログラムの実行を開始します。

数秒後に、µVision4 は実行を停止します。デバッグウィンドウのプログラムカウンタ行には、ブレークポイントが発生した行がマークされます。


µVision4 User's Guide (Japanese): コールスタック

コールスタック

［ウォッチ］（Watch）ウィンドウボタン プログラムの実行時に、µVision4 により関数ネストが内部で追跡されます。［コールスタック］（Call Stack）ウィンドウに、現在の関数ネストが表示されます。行をダブルクリックすると、選択した関数を呼び出したソースコードが表示されます。


µVision4 User's Guide (Japanese): Measure のコンパイルとリンク

Measure のコンパイルとリンク

ターゲットのビルドのボタン MEASURE プロジェクトのコンパイルとリンクの準備ができたら、［プロジェクト］（Project）メニューまたはツールバーから［ターゲットのビルド］（Build Target）コマンドを使用します。µVision4 は、MEASURE のソースファイルのコンパイルとリンクを開始し、ビルドが完了するとメッセージを表示します。

プロジェクトがビルドされたら、シンボル情報を参照またはテストを開始することができます。


µVision4 User's Guide (Japanese): Hello：最初の組み込みプログラム

Hello：最初の組み込みプログラム

..\Examples\Hello フォルダにある HELLO サンプルプログラムを使用して、ツールチェーンが正しくインストールされているかを確認できます。ソースファイル HELLO.C にあるプログラムは、シリアルポートにテキスト "Hello World" を出力します。

µVision4 を使用してアプリケーションのコンパイル、リンク、およびデバッグを開始する場合は、この小さなアプリケーションを使用します。

HELLO サンプルのハードウェアは通常、さまざまなマイクロコントローラデバイスで動作します。使用される唯一のオンチップペリフェラルはシリアルポート（および通信速度ジェネレータ）です。µVision4 では、このプログラムに必要なハードウェアをシミュレートできるため、ターゲットの CPU は実際には必要ありません。

HELLO プロジェクトファイル

µVision4 では、アプリケーションはプロジェクトファイルに保存されます。このプロジェクトをロードするには、［プロジェクト］（Project）メニューから［プロジェクトを開く］（Open Project）を選択し、…\ARM\EXAMPLES\HELLO フォルダにある HELLO.UVPROJ を開きます。

注

  • プロジェクトサンプルには、ファイル拡張子 .UVPROJ または .UV2 が付いている場合があります。µVision4 では、両方のファイルタイプを開くことができます。拡張子 UV2 は自動的に UVPROJ に変換されます。

HELLO.C の編集とビルド

HELLO.C の編集を開始するには。プロジェクトウィンドウの HELLO.C をダブルクリックします。µVision4 では、エディタウィンドウで HELLO.C の内容をロードして表示します。

ビルドボタン プロジェクトのコンパイルとリンクの準備ができたら、［プロジェクト］（Project）メニューまたは［ビルド］（Build）ツールバーから［ビルド］（Build）コマンドを使用します。µVision4 は、ソースファイルの変換とリンクを開始し、テスト用に µVision4 デバッガにロードできるアブソリュートオブジェクトモジュールを作成します。ビルドプロセスのステータスは、［ビルド出力］（Build Output）ウィンドウに表示されます。

注

  • 指定されたサンプルプロジェクトで µVision4 を使用する場合は、エラーが発生することはありません。

HELLO.C のテストとデバッグ

デバッグの開始/停止ボタン HELLO プログラムをコンパイルしてリンクしたら、µVision4 デバッガでテストできます。µVision4 の［デバッグ］（Debug）メニューまたはツールバーから［デバッグセッションの開始/停止］（DebugStart/Stop Debug Session）コマンドを使用します。µVision4 は、デバッガを初期化し、main 関数までプログラムを実行します。

シリアルウィンドウボタン ［ビュー］（View）メニューまたは［デバッグ］（Debug）ツールバーからアプリケーションのシリアル出力を表示するシリアルウィンドウ #x を開きます。

実行ボタン ［デバッグ］（Debug）メニューまたはツールバーから［実行］（Run）コマンドで HELLO を実行します。HELLO プログラムが実行され、シリアルウィンドウにテキスト "Hello World" が表示されます。HELLO により "Hello World" が出力されると、無限ループの実行が開始されます。

実行/停止ボタン ［デバッグ］（Debug）メニューまたはツールバーから［停止］（Stop）コマンドで HELLO の実行を停止します。あるいは、［コマンド］（Command）ウィンドウのコマンドラインで ESC を押すこともできます。

デバッグ中は通常、以下のような出力が表示されます。

シングルステップ実行とブレークポイント

ブレークポイントの挿入/削除ボタン ツールバーまたはローカルエディタメニュー（マウスを右クリックすると開きます）の［ブレークポイントの挿入/削除］（Insert/Remove Breakpoints）コマンドを使用して、main 関数の先頭にブレークポイントを設定します。

リセットボタン ［デバッグ］（Debug）メニューまたはツールバーの［CPU のリセット］（Reset CPU）コマンドを使用します。HELLO を停止した場合は、［実行］（Run）を使用してプログラムの実行を開始します。µVision4 は、ブレークポイントでプログラムを停止します。

ステップオーバーボタン ［デバッグ］（Debug）ツールバーの［ステップ］（Step）ボタンを使用すると、HELLO プログラムをシングルステップで実行できます。現在の命令は、黄色の矢印でマークされています。この矢印は、ステップごとに移動します。

マウスポインタ マウスカーソルを変数の上に置くと、その値が表示されます。

デバッグの開始/停止ボタン ［デバッグセッションの開始/停止］（Start/Stop Debug Session）コマンドを使用すると、いつでもデバッグを停止できます。


µVision4 User's Guide (Japanese): Measure：遠隔測定システム

Measure：遠隔測定システム

MEASURE サンプルプログラムは ..\Examples\Measure フォルダにあります。MEASURE は、測候所やプロセス制御アプリケーションで使用されているデータ収集システムのようにアナログデータとデジタルデータを収集するリモート測定システムです。MEASURE は、3 つのソースファイル（GETLINE.C、MCOMMAND.C、および MEASURE.C）で構成されます。さらに、ほとんどのターゲットでは、追加 CPU 固有のスタートアップまたはコンフィギュレーションファイルが必要です。

Measure は、デジタルポート入力と A/D アナログ入力から受け取るデータを記録します。タイマはサンプルレートを制御します。サンプル間隔は、1 ミリ秒から 60 分の間で設定できます。各測定により、現在の時刻と入力チャネルのすべてのデータが RAM バッファに保存されます。

このセクションでは、MEASURE アプリケーションの ARM バージョンを使用していますが、操作は他のすべてのツールセットとほぼ同じです。

MEASURE アプリケーションを変換してテストするには、以下の手順を実行します。

  • プロジェクトファイルを開く
  • Measure のコンパイルとリンク
  • Measure のテスト
  • プログラムコードの表示
  • メモリの内容の表示
  • プログラムの実行
  • コールスタック
  • トレース記録
  • ［ブレークポイント］（Breakpoints）ダイアログ
  • 変数の監視
  • ソースブラウザ


µVision4 User's Guide (Japanese): プロジェクトファイルを開く

プロジェクトファイルを開く

MEASURE サンプルプログラムのプロジェクトファイルは、Measure.UVPROJ です。このプロジェクトファイルをロードするには、［プロジェクト］（Project）メニューの［プロジェクトを開く］（Open Project）を使用し、...\ARM\...\Examples\Measure フォルダから Measure.UVPROJ を選択します。

注

  • プロジェクトサンプルには、ファイル拡張子 .UVPROJ または .UV2 が付いている場合があります。µVision4 では、両方のファイルタイプを開くことができます。拡張子 UV2 は自動的に UVPROJ に変換されます。

［プロジェクト］（Project）ウィンドウには、MEASURE プロジェクトを構成するソースファイルが表示されます。Source Code グループには、アプリケーション関連の 3 つのソースファイルがあります。以下に、ソースファイルの関数について説明します。ソースファイルを開くには、ファイル名をダブルクリックします。

  • Measure.C：測定システムのメイン C 関数とタイマ 0 の割り込みルーチンが含まれています。main 関数は、マイクロコントローラのすべてのペリフェラルを初期化し、システムのコマンド処理を実行します。タイマの割り込みルーチン timer0 は、システムのリアルタイムクロックと測定サンプリングを管理します。
  • Mcommand.C：表示、時間、間隔のコマンドを処理します。これらの関数は main 関数から呼び出されます。表示コマンドは、浮動小数点形式のアナログ値をリストし、0.00V と 3.00V の間の電圧を示します。
  • Getline.C：シリアルポートから受信した文字のコマンドラインエディタが含まれます。


µVision4 User's Guide (Japanese): プログラムの実行

プログラムの実行

MEASURE のシミュレートを開始する前に、［ビュー］（View）メニューまたは［デバッグ］（Debug）ツールバーからシリアル出力を表示する #1 のシリアルウィンドウを開きます。画面が狭い場合は、他のウィンドウを無効にすることができます。

アセンブラ命令またはソースコード行では、［ステップ］（Step）ツールバーボタンを使用できます。［逆アセンブリ］（Disassembly）ウィンドウがアクティブな場合は、アセンブリ命令ベースでシングルステップを実行します。ソースコードが表示されるエディタウィンドウがアクティブな場合は、ソースコードレベルでシングルステップを実行します。

デバッグコマンドについては、「デバッグコマンド」の章で説明します。


µVision4 User's Guide (Japanese): ソースブラウザ

ソースブラウザ

［ブラウザ］（Browser）ウィンドウボタン MEASURE プロジェクトは、完全なブラウザおよびデバッグ情報を生成するように設定されています。情報を表示するには、［ビュー］（View）メニューまたはツールバーの［ソース参照］（Source Browse）コマンドを使用します。詳細については、「ソースブラウザ」を参照して下さい。


µVision4 User's Guide (Japanese): Measure のテスト

Measure のテスト

［デバッグ］（Debug）ボタン MEASURE サンプルプログラムは、オンチップシリアルポートからのコマンドを受け入れるように設計されています。実際のターゲットハードウェアがある場合は、端末シミュレーションを使用して、ARM CPU と通信できます。ターゲットハードウェアがない場合は、µVision4 を使用してハードウェアをシミュレートできます。また、µVision4 のシリアルウィンドウでは、シリアル入力を実行することもできます。
MEASURE プログラムをビルドしたら、テストすることができます。µVision4 デバッガを開始するには、［デバッグ］（Debug）メニューの［デバッグセッションの開始/停止］（Start/Stop Debug Session）コマンドを使用します。

遠隔測定システムコマンド

以下の表に、MEASURE がサポートしているシリアルコマンドの一覧を示します。これらのコマンドは、ASCII テキスト文字で構成されています。すべてのコマンドは、キャリッジリターンで終わる必要があります。これらのコマンドは、デバッグ中に #1 のシリアルウィンドウに入力できます。

コマンド | シリアルテキスト | 説明
Clear | C | 測定記録バッファをクリアします。
Display | D | 現在の時刻と入力値を表示します。
Time | T hh:mm:ss | 現在の時刻を 24 時間形式で設定します。
Interval | I mm:ss.ttt | 測定サンプルの時間間隔を設定します。時間間隔は 0:00.001（1 ミリ秒）と 60:00.000（60 分）の間で指定する必要があります。
Start | S | 測定記録を開始します。Start コマンドを受け取ったら、MEASURE は指定した間隔ですべてのデータ入力をサンプリングします。
Read | R [count] | 記録されている測定を表示します。Read コマンドを使用すると、表示する最近のサンプル数を指定できます。カウントが指定されていない場合は、Read コマンドは記録されている測定をすべて送信します。時間間隔が 1 秒より長い場合は、実行中に測定を読み出すことができます。それ以外の場合は、記録を停止する必要があります。
Quit | Q | 測定記録を終了します。


µVision4 User's Guide (Japanese): トレース記録

トレース記録

デバッグ中は通常、レジスタ値などの情報を必要とするブレークポイントを設定するか、ブレークポイントにつながる状況を調査します。［トレース記録を有効化］（Enable Trace Recording）が設定されている場合は、ブレークポイントに達するまでに実行された CPU 命令を表示できます。

［命令トレース］（Instruction Trace）ウィンドウは、ARM と Cortex ベースのマイクロコントローラのみで利用できます。その他のマイクロコントローラでは、［逆アセンブリ］（Disassembly）ウィンドウで命令履歴を表示できます。

［レジスタ］（Registers）ウィンドウには、選択した命令の CPU レジスタの内容が表示されます。


µVision4 User's Guide (Japanese): メモリの内容の表示

メモリの内容の表示

［メモリ］（Memory）ウィンドウボタン µVision4 はさまざまな形式でメモリを表示します。［メモリ］（Memory）ウィンドウは、［ビュー］（View）メニューまたはツールバーボタンから開きます。ページには、4 つの異なるメモリ領域のアドレスを入力できます。ローカルメニューを使用すると、メモリの内容を変更したり、異なる出力形式を選択したりできます。


µVision4 User's Guide (Japanese): プログラムコードの表示

プログラムコードの表示

［逆アセンブリ］（Disassembly）ウィンドウのボタン µVision4 では、プログラムコードは［逆アセンブリ］（Disassembly）ウィンドウで表示できます。このウィンドウは、［ビュー］（View）メニューまたはツールバーボタンを選択すると開きます。［逆アセンブリ］（Disassembly）ウィンドウには、ソースとアセンブリ行が混ざり合って表示されます。マウスを右クリックしてローカルメニューを開き、ビューモードを変更したり、他のコマンドを使用したりできます。


µVision4 User's Guide (Japanese): 変数の監視

変数の監視

［ウォッチ］（Watch）ウィンドウボタン 変数、構造、および配列の内容を継続的に表示できます。［ビュー］（View）メニューまたはツールバーから［ウォッチ］（Watch）ウィンドウを開きます。［ローカル］（Locals）ページには、現在の関数のローカルシンボルがすべて表示されます。［ウォッチ #1］（Watch #1）と［ウォッチ #2］（Watch #2）ページでは、以下の説明に従って、プログラム変数を入力できます。

  • テキスト <double-click or F2 to add> をクリックして選択し、少し待ちます。もう一度クリックすると、編集モードになり、変数の追加が可能となります。変数値も同じ方法で変更することができます。
  • エディタウィンドウで変数名を選択し、マウスを右クリックしてローカルメニューを開き、［ウォッチウィンドウに追加］（Add to Watch Window）コマンドを使用します。
  • 出力ウィンドウの［コマンド］（Command）ページで、「WatchSet」と入力します。

変数を削除するには、行をクリックし、Delete キーを押します。

［+］記号をクリックすると、構造体と配列を必要に応じて開くことができます。インデントされた表示行はネストレベルを反映します。

［ウォッチ］（Watch）ウィンドウは、各実行コマンドの終了時点で更新されます。［ビュー］（View）メニューの［定期的なウィンドウの更新］（Periodic Window Update）を有効にすると、プログラムの実行中に［ウォッチ］（Watch）ウィンドウを更新できます。

オンチップペリフェラルの表示と変更

µVision4 では、ターゲットプログラムで使用するオンチップペリフェラルを複数の方法で表示および変更できます。以下の手順を実行すると、サンプルのような結果を直接表示することができます。

シンボル | 説明
［リセット］（Reset）ボタン | CPU をリセットし、定義されているすべてのブレークポイントを削除します。
［実行］（Run）ボタン | プログラムの実行が停止されたら、MEASURE プログラムの実行を開始します。
シリアルウィンドウ 1 のボタン | #x のシリアルウィンドウを開き、MEASURE アプリケーションに対して 'd' コマンドを入力します。MEASURE には、I/O ポート 2 と A/D 入力 0 ～ 3 からの値が表示されます。シリアルウィンドウには、以下の出力が表示されます。

シリアルウィンドウ 1 の MEASURE プログラム出力

以下の手順に従って、I/O ピンへの入力を指定できます。

ペリフェラルダイアログボックスの使用

µVision4 に用意されたダイアログには、［I/O ポート］（I/O Ports）、［割り込み］（Interrupts）、［タイマ］（Timers）、［A/D コンバータ］（A/D Converter）、［シリアルポート］（Serial Ports）、およびチップ固有のペリフェラルがあります。これらのダイアログは、［デバッグ］（Debug）メニューから開くことができます。MEASURE アプリケーションでは、I/O ポート：ポート 2 と A/D コンバータを開くことができます。ダイアログには、ペリフェラルの現在のステータスが表示され、入力値を直接変更できます。

タイマ/カウンタ 0 のペリフェラルダイアログ

A/D コンバータ 0 のペリフェラルダイアログ

これらの各ダイアログには、関連するペリフェラルレジスタシンボルとペリフェラルの現在のステータスが表示されます。入力を変更するには、ピンまたはアナログ入力チャネルの値を変更します。

VTREG シンボルの使用

出力ウィンドウの［コマンド］（Command）ページで、変数やレジスタと同様に、VTREG シンボルへの割り当てを行います。以下に例を示します。

PORT2=0xDA00 set digital input PORT2 to 0xDA00.
AIN1=3.3 set analog input AIN1 to 3.3 volts.

ユーザ関数とシグナル関数の使用

ターゲットプログラムに外部入力を与える高度な方法として、CPU ドライバと µVision4 ユーザによって定義された VTREG シンボルとシグナル関数を組み合わせて使用する方法があります。アナログの例には、AIN0 に入力を与えるシグナル関数が示されています。シグナル関数は MEASURE サンプルに含まれており、［ツールボックス］（Toolbox）の［アナログ0..3V］（Analog0..3V）ボタンですばやく呼び出し、入力 AIN0 の電圧を絶えず変更することができます。


µVision4 User's Guide (Japanese): サンプルプログラム

サンプルプログラム

このセクションでは、ツールキットに含まれているサンプルプログラムについて説明します。サンプルプログラムは、すぐに実行できます。サンプルプログラムでは、ツールの使用方法を学ぶことができます。さらに、サンプルからコードをコピーして、ユーザ独自の方法で使用することもできます。

サンプルプログラムは、各ツールチェーンの Examples フォルダにあります。各サンプルプログラムは、迅速にビルドして評価できるように、プロジェクトファイルと共に別のフォルダに格納されています。サンプルフォルダには、事前定義されているプロジェクトがいくつか含まれています。

ツールチェーンの使用を開始する場合は、以下のプロジェクトを確認することをお勧めします。

例 | 説明
Hello | Hello World プログラム。µVision の使用を開始する場合は、これを最初に試します。シリアルインタフェース上に “Hello World” が出力され、開発ツールが正しく動作していることの確認に役立ちます。
Measure | アナログシグナルとデジタルシグナルを収集するデータ収集システム。
Blinky | I/O 制御を示す簡単な LED フラッシャプログラム。このサンプルプログラムについては、「アプリケーションの作成」の章で説明します。

サンプルプロジェクトのいずれかの使用を開始するには、µVision4 の［プロジェクト］（Project）→［プロジェクトを開く］（Open Project）メニューを使用して、プロジェクトファイルをロードします。この章の次のセクションでは、ツールを使用して次のサンプルプログラムをビルドする方法について説明します。

  • HELLO：組み込みプログラム
  • MEASURE：遠隔測定システム


µVision4 User's Guide (Japanese): exec

exec

概要
void  exec ("command_string") /* Execute Debug Command */
説明

exec 関数を使用すると、ユーザ関数とシグナル関数内から µVision3 デバッグコマンドを呼び出すことができます。command_string には、セミコロンで区切られたいくつかのコマンドが含まれている場合があります。
戻り値

なし
例

command_string はコマンドインタープリタに渡され、有効なデバッグコマンドである必要があります。

>exec ("DIR PUBLIC; EVAL R7")


µVision4 User's Guide (Japanese): BUS コンフィギュレーション

BUS コンフィギュレーション

BUS コンフィギュレーション

通常、接続されたデバイスがアクセス可能になる前にマイクロコントローラ BUS を設定する必要があります。これは、通常、外付けフラッシュ ROM デバイスの場合に該当します。BUS コンフィギュレーションは、ターゲットメモリに書き込む定義済み関数（_WBYTE、_WDWORD など）により実行できます。

これらの関数は、［コンフィギュレーション］（Configuration）ダイアログで指定する初期化ファイルで使用できます。以下に例を示します。

_WDWORD(0xFFE00000, 0x20003CE3);   // BCFG0: Flash Bus Configuration
_WDWORD(0xE002C014, 0x0E6001E4);   // PINSEL2: CS0, OE, WE, BLS0..3

また、以下のように、BUS システムのメニュー駆動型コンフィギュレーションについて、デバッグ関数を記述したり、コンフィギュレーションウィザードを使用したりすることもできます。

/***********************************************************************/
/*  FLASH.INI: Flash Initialization File                               */
/***********************************************************************/

//*** Use Configuration Wizard in Context Menu ***

FUNC void Setup (void) {

// External Memory Controller (EMC)
//   Bank Configuration 0 (BCFG0)
//     IDCY: Idle Cycles (0-15)
//     WST1: Wait States 1 (0-31)
//     WST2: Wait States 2 (0-31)
//     RBLE: Read Byte Lane Enable
//     WP: Write Protect
//     BM: Burst ROM
//     MW: Memory Width  0=8-bit  1=16-bit
//                       2=32-bit 3=Reserved
//
  _WDWORD(0xFFE00000, 0x20003CE3);   // BCFG0: Flash Bus Configuration

  _WDWORD(0xE002C014, 0x0E6001E4);   // PINSEL2: CS0, OE, WE, BLS0..3
                                     //          D0..31, A2..23, JTAG
}

Setup();                             // Setup for Flash


µVision4 User's Guide (Japanese): フラッシュアルゴリズム

フラッシュアルゴリズム

ULINK USB-JTAG アダプタを使用して、さまざまなフラッシュメモリのプログラミング時に使用するフラッシュプログラミングアルゴリズムを定義したり作成したりすることができます。現在、µVision4 は、ARM および C16x デバイスについてフラッシュプログラミングをサポートしています。

ARM および C16x のツールチェーンには、作成する新しいアルゴリズムの開始点として使用できるいくつかのフラッシュデバイスプログラミングアルゴリズムが含まれています。

ARM デバイス

ARM デバイスフラッシュアルゴリズムは、C:\KEIL\ARM\FLASH\ フォルダに保存されています。新しいフラッシュプログラミングアルゴリズムの作成については、『Getting Started User's Guide』で「Flash Programming」の「Define Flash Algorithms」を参照して下さい。

C16x デバイス

C16x デバイスフラッシュアルゴリズムは、C:\KEIL\C166\FLASH\ フォルダに保存されています。新しいフラッシュプログラミングアルゴリズムの作成については、『OCDS Debugging User's Guide』で「Flash Programming」の「Programming Algorithms」を参照して下さい。


µVision4 User's Guide (Japanese): HEX ファイル

HEX ファイル

次のようにして、フラッシュダウンロード用 µVision4 プロジェクトを作成できます。

  1. メニューコマンド［プロジェクト］（Project）→［新しいプロジェクト....］（New Project....）を使用し、µVision プロジェクトファイルを作成します。

  2. デバイスデータベースからプロジェクトのマイクロコントローラを選択します。ただし、このプロジェクトにスタートアップコードをコピーしないで下さい。

  3. ［プロジェクト］（Project）→［ターゲットのオプション］（Options for Target）→［出力］（Output）ダイアログで、［実行可能ファイルの名前］（Name of Executable）に HEX ファイルの名前を入力します。

  4. 「［フラッシュ］（Flash）メニューの設定」の説明に従い、ダウンロードユーティリティを設定します。

［フラッシュダウンロード］（Flash Download）ボタン ［フラッシュ］（Flash）→［ダウンロード］（Download）コマンドを使用する場合、µVision は指定された HEX ファイルをフラッシュ ROM デバイスにプログラミングします。

このような µVision プロジェクトは、自動化されたフラッシュプログラミング用のバッチファイル内で使用できます。


µVision4 User's Guide (Japanese): スクリプトの事前ダウンロード

スクリプトの事前ダウンロード

アプリケーションまたはターゲットシステムによっては、フラッシュプログラミングの直前に特定のデバッグコマンドまたはデバッグ関数を実行する必要があります。ULINK USB-JTAG アダプタを使用する場合、µVision4 では、フラッシュプログラミングの前に、デバッガコマンドおよび関数を含むスクリプトまたは初期化ファイルを作成および実行できます。

初期化ファイルは、［プロジェクト］（Project）→［オプション］（Options）→［ユーティリティ］（Utilities）→［Init ファイル］（Init File） で入力できます。

通常、初期化ファイルは次の用途で使用します。

  • フラッシュ ROM へのアクセスに必要な BUS コンフィギュレーションを設定するメモリまたはレジスタを書き込みます。
  • ユーザアプリケーションとは別にプログラミングが必要なプログラムオブジェクトをロードします。


µVision4 User's Guide (Japanese): プログラムオブジェクト

プログラムオブジェクト

ユーザアプリケーションに加えて、プログラミングが必要な追加のプログラムファイル（データまたはコード）を、LOAD コマンドを使用して初期化ファイルによってダウンロードできます。以下に例を示します。

LOAD MyFile.HEX

デフォルトでは、［プロジェクト］（Project）→［ターゲットのオプション］（Options for Target）→［出力］（Output）で指定された実行可能アプリケーションプログラムが、ターゲットにダウンロードされます。


µVision4 User's Guide (Japanese): ULINK コンフィギュレーション

ULINK コンフィギュレーション

ULINK は、サポートされるほとんどのデバイスに対してフラッシュプログラミング機能を提供します。フラッシュプログラミングは、［プロジェクト］（Project）→［ターゲットのオプション］（Options for Target）→［ユーティリティ］（Utilities）→［設定］（Settings）を選択して開くダイアログで設定します。ダイアログはドライバ固有で、関連するオンラインユーザガイドに説明があります。ほとんどのダイアログには、固有の説明のページを開くためのヘルプボタンがあります。


µVision4 User's Guide (Japanese): ［フラッシュ］（Flash）メニューの設定

［フラッシュ］（Flash）メニューの設定

µVision4 では、フラッシュプログラミングユーティリティ用のコマンドインタフェースが提供されています。これらのユーティリティは、［ターゲットのオプション］（Options for Target）ダイアログの［ユーティリティ］（Utilities）タブで設定されます。このダイアログは、［フラッシュ］（Flash）→［フラッシュツールの設定］（Configure Flash Tools）メニュー項目を選択すると開きます。

コマンドインタフェースが設定されると、［フラッシュ］（Flash）メニューコマンドを使用できます。このメニューコマンドでは、ターゲットデバイスのフラッシュメモリを変更するために［ダウンロード］（Download）または［消去］（Erase）を呼び出すことができます。

  • ［フラッシュプログラムのターゲットドライバを使用する］（Use Target Driver for Flash Programming）：Keil ULINK などのフラッシュプログラミングドライバを選択し、［出力］（Output）ダイアログで指定された実行可能アプリケーションプログラムをダウンロードできます。［設定］（Settings）ボタンを使用すると、ドライバコンフィギュレーションを表示できます。Init ファイルは、BUS コンフィギュレーションまたは追加プログラムファイルのダウンロードに必要です。Init ファイルを使用すると、デバッグコマンドまたはデバッグ関数を使用してスクリプトを事前ダウンロードできます。
  • ［フラッシュプログラムに外部ツールを使用する］（Use External Tool for Flash Programming）：サードパーティ製のコマンドラインベースツールを有効にします。ダウンロードツールを開始するには、コマンドラインおよび引数を指定します。フラッシュプログラミングユーティリティ用に、出力ファイル名、デバイス名、クロック周波数を指定するには、キーシーケンスを使用します。［独立して実行］（Run Independent）を指定すると、µVision4 IDE によるコマンド同期なしでユーティリティを実行できます。

注

  • ほとんどのシングルチップデバイスの場合、µVision4 デバイスデータベースは、オンチップフラッシュ ROM のための正しい設定を提供します。

［ターゲットのオプション］（Options for Target）→［ユーティリティ］（Utilities）ダイアログ


µVision4 User's Guide (Japanese): フラッシュプログラミング

フラッシュプログラミング

µVision4 のプロジェクト環境には、フラッシュプログラミングユーティリティが統合されています。すべてのコンフィギュレーションは、現在のプロジェクトのコンテキストによって保存されます。

外部コマンドライン駆動型ユーティリティ（通常チップベンダーが提供）を使用することも、Keil ULINK USB-JTAG アダプタを使用することもできます。フラッシュプログラミングユーティリティは、［プロジェクト］（Project）→［オプション］（Options）→［ユーティリティ］（Utilities）で設定されます。

フラッシュプログラミングは、［フラッシュ］（Flash）メニューで開始できます。または、［プロジェクト］（Project）→［オプション］（Options）→［ユーティリティ］（Utilities）→［デバッグ前にターゲットを更新］（Update Target before Debugging）を有効にすると、µVision4 デバッガを開始する前に開始できます。

詳細については、次のトピックを参照して下さい。

  • ［フラッシュ］（Flash）メニューの設定：外部コマンドラインベースユーティリティまたは Keil ULINK USB-JTAG アダプタを使用するための［フラッシュ］（Flash）メニューを設定します。
  • ULINK コンフィギュレーション：Keil ULINK USB-JTAG アダプタのためのコンフィギュレーション設定について説明しています。
  • スクリプトの事前ダウンロード：複数のアプリケーションをプログラミングしたり、オフチップフラッシュデバイスをプログラミングするときに ULINK に必要な BUS システムを設定したりできます。
  • フラッシュアルゴリズム：Keil ULINK USB-JTAG アダプタのための独自のフラッシュプログラミングアルゴリズムを作成する方法について説明しています。
  • HEX ファイル：フラッシュダウンロードのために既存の HEX ファイルをプログラミングする方法について説明しています。


µVision4 User's Guide (Japanese): getdbl

getdbl

概要
double getdbl(
  prompt);    /* prompt string */
説明

getdbl デバッガ関数により、プロンプト文字列が表示され、数値を入力するように求められます。
戻り値

getdbl デバッガ関数は、入力された数値の double 値を返します。有効な数値が入力されていない場合は、0.0 という値を返します。
関連項目

getint、getlong
例
getdbl ("Enter the value of pi");


µVision4 User's Guide (Japanese): getint

getint

概要
int getint(
  prompt);    /* prompt string */
説明

getint デバッガ関数により、プロンプト文字列が表示され、数値を入力するように求められます。
戻り値

getint デバッガ関数は、入力された数値の int 値を返します。有効な数値が入力されていない場合は、0.0 という値を返します。
関連項目

getdbl、getlong
例
getint ("Enter Your Age");


µVision4 User's Guide (Japanese): getlong

getlong

概要
long getlong(
  prompt);    /* prompt string */
説明

getlong デバッガ関数により、プロンプト文字列が表示され、数値を入力するように求められます。
戻り値

getlong デバッガ関数は、入力された数値の long 値を返します。有効な数値が入力されていない場合は、0.0 という値を返します。
関連項目

getdbl、getint
例
getlong ("Enter your age in seconds");


µVision4 User's Guide (Japanese): memset

memset

概要
void memset (start_address, length, value)  /* fill memory with value*/
説明

memset 関数は、開始アドレスで指定されたメモリを設定し、長さを指定された値に設定します。
戻り値

なし
例
>MEMSET (0x20000, 0x1000, 'a')       /* Fill 0x20000 to 0x20FFF with 'a' */


µVision4 User's Guide (Japanese): 環境について

環境について

ウィンドウベースの他のアプリケーションと同様、µVision4 でも、コマンド選択のためのメニュー、コマンドボタンをすばやく選択できるツールバー、一般的なウィンドウ機能などが用意されています。

ウィンドウは、分割、並べて表示、非表示、開くなどの操作が可能です。物理的に別の画面にウィンドウを移動することもできます。ただし、ソースコードファイルはエディタウィンドウになければならず、フロートできません。

プロジェクトごとに個別に設定する、独自の画面レイアウトを定義できます。また、複数のレイアウトを保存し、これらの定義を切り替えることができます。

μVision4には、ビルドモード及びデバックモードの2つの動作モードがあります。 どちらの動作モードでもμVision４のソースエディタを使用してソースコードを変更できます。ユーザインターフェースにて用意されているメニュー、コマンド、ウインドウに加えましてデバックモードではウィンドウとダイアログを提供します。

以下の図は、デバッグモードの µVision4 の主要ウィンドウの一部を示しています。


µVision4 User's Guide (Japanese): フォルダ構造

フォルダ構造

セットアッププログラムでは、ベースフォルダのサブフォルダに開発ツールがコピーされます。デフォルトのベースフォルダは、C:\KEIL です。以下の表に、全 µVision4 開発ツールの完全なインストール構造を示します。インストール構造は、インストール済みの製品またはアドオンによって異なる場合があります。

ここでは、デフォルトのフォルダ構造について説明します。別のフォルダにソフトウェアをインストールする場合は、インストール環境に合うようにパス名を調整する必要があります。

ARM 開発ツール（ARM7、ARM9、および Cortex-Mx 用）

フォルダ | 内容
C:\KEIL\ARM\BINxx | µVision4/ARM ツールチェーンの実行可能ファイル。
C:\KEIL\ARM\Boards | ボード固有のサンプルプログラム。
C:\KEIL\ARM\Examples | 汎用サンプルプログラム。
C:\KEIL\ARM\Flash | Keil ULINK USB-JTAG アダプタのフラッシュプログラミングアルゴリズムファイル。
C:\KEIL\ARM\HLP C:\KEIL\ARM\INC C:\KEIL\ARM\RV31 | µVision4 および Keil ARM ツールチェーンのオンラインマニュアル。 C/C++ インクルードファイルおよびデバイス固有のコンパイラインクルードファイル。
C:\KEIL\ARM\RL | RL-ARM リアルタイムライブラリコンポーネント。
C:\KEIL\ARM\RT Agent | リアルタイムエージェントのサンプルファイルおよびセットアップファイル。
C:\KEIL\ARM\Startup | デバイス固有のマイクロコントローラスタートアップファイル。
C:\KEIL\ARM\Utilities | さまざまなサンプルで使用されるユーティリティ。

C16x / XE16x / XC20x 開発ツール

フォルダ | 内容
C:\KEIL\C166\AR166 | Advanced RTX166 リアルタイムオペレーティングシステム。
C:\KEIL\C166\ASM | マクロアセンブラのインクルードファイル。
C:\KEIL\C166\BIN | µVision4/C166 ツールチェーンの実行可能ファイル。
C:\KEIL\C166\Boards | ボード固有のサンプルプログラム。
C:\KEIL\C166\Examples | 汎用サンプルプログラム。
C:\KEIL\C166\Flash | Keil ULINK USB-JTAG アダプタのフラッシュプログラミングアルゴリズムファイル。
C:\KEIL\C166\HLP | µVision4/C166 のオンラインマニュアル。
C:\KEIL\C166\INC | C および EC++ コンパイラのインクルードファイル。
C:\KEIL\C166\LIB | ランタイムライブラリおよび CPU スタートアップファイル。
C:\KEIL\C166\Monitor | Monitor-166 コンフィギュレーションファイルと事前定義されているモニタバージョン。
C:\KEIL\C166\OCDS | インタフェースファイルオンチップデバッグシステム（OCDS）および Keil ULINK。
C:\KEIL\C166\RtxTiny | RTX166 Tiny リアルタイムオペレーティングシステム。

C51 開発ツール（クラシックおよび拡張 8051 バリアント用）

フォルダ | 内容
C:\KEIL\C51\ASM | マクロアセンブラのアセンブラソーステンプレートおよびインクルードファイル。
C:\KEIL\C51\BIN | µVision4/C51 ツールチェーンの実行可能ファイル。
C:\KEIL\C51\Examples | サンプルプログラム。
C:\KEIL\C51\FlashMon | フラッシュモニタのコンフィギュレーションファイルと事前定義されているバージョン。
C:\KEIL\C51\HLP | µVision4/C51 のオンラインマニュアル。
C:\KEIL\C51\INC | C コンパイラのインクルードファイル。
C:\KEIL\C51\ISD51 | ISD51 インシステムデバッガのファイルと事前定義されているバージョン。
C:\KEIL\C51\LIB | ランタイムライブラリおよび CPU スタートアップファイル。
C:\KEIL\C51\Mon51 | Monitor-51 のコンフィギュレーションファイル（クラシック 8051 デバイス用）。
C:\KEIL\C51\Mon390 | Monitor-390 のコンフィギュレーションファイル（Dallas 連続モード用）。
C:\KEIL\C51\RtxTiny2 | RTX51 Tiny Version 2 リアルタイムオペレーティングシステム。

C251 開発ツール

フォルダ | 内容
C:\KEIL\C251\ASM | マクロアセンブラのインクルードファイル。
C:\KEIL\C251\BIN | µVision4/C51 ツールチェーンの実行可能ファイル。
C:\KEIL\C251\Examples | サンプルプログラム。
C:\KEIL\C251\HLP | µVision4/C166 のオンラインマニュアル。
C:\KEIL\C251\INC | C コンパイラのインクルードファイル。
C:\KEIL\C251\LIB | ランタイムライブラリおよび CPU スタートアップファイル。
C:\KEIL\C251\Mon251 | Monitor-251 のコンフィギュレーションファイル。

µVision4 汎用ファイル

フォルダ | 内容
C:\KEIL\UV4 | µVision4 汎用ファイル。


µVision4 User's Guide (Japanese): サポートのリクエスト

サポートのリクエスト

サポートのリクエスト

Keil Software では、最高の組み込み開発ツールおよびマニュアルをお届けするよう心がけていますが、本製品に付属するオンラインマニュアルに関してご提案やご意見がある場合は、当社までご連絡下さい。ソフトウェアについて問題が生じた場合は、当社までご連絡いただく前に、まず以下を試してみて下さい。

  1. 実行しようとしているジョブまたは作業に関連のある本ヘルプのセクションを読んで確認します。
  2. お使いのソフトウェアとユーティリティのバージョンが最新のものかどうかを確認します。www.keil.com/update で、お使いのソフトウェアのバージョンが最新のものかどうかを確認して下さい。
  3. アセンブラ、コンパイラ、リンカ、デバッガ、またはその他の開発ツールのいずれに関する問題であるかを特定します。
  4. さらに、コードの行数を減らして、ソフトウェアの問題を特定します。

それでも問題が解決しない場合は、当社のまで問題をお知らせ下さい。その際、製品のシリアル番号とバージョン番号も併せてお知らせ下さい。問題は電子メールでお知らせくださることをお勧めします。

発生している問題について、できるだけ詳しく記述して下さい。例が説明的であるほど、解決が迅速になります。問題に関連する 1 ページ程度のコードサンプルがある場合は、電子メールでお送り下さい。可能な場合は、µVision4 シミュレータで問題を再現できることを確認して下さい。ご回答までに時間がかかってしまうため、アプリケーション全体または長すぎるリストの送付は避けて下さい。

注

  • www.keil.com/support からテクニカルサポートを受けられます。また、製品のアップデート、アプリケーションノート、およびサンプルプログラムもここから入手できます。


µVision4 User's Guide (Japanese): ソフトウェア開発サイクル

ソフトウェア開発サイクル

Keil µVision4 を使用する場合、プロジェクト開発サイクルは他のソフトウェア開発プロジェクトとほぼ同じです。

  1. プロジェクトを作成し、デバイスデータベースからターゲットチップを選択し、ツール設定を構成します。
  2. C/C++ またはアセンブリでソースファイルを作成します。
  3. プロジェクトマネージャを使用してアプリケーションをビルドします。
  4. ソースファイルのエラーを修正します。
  5. リンクされたアプリケーションをテストします。

以下のブロック図は、µVision4 のソフトウェア開発サイクル全体を示します。各コンポーネントについては後述します。

µVision4 IDE

µVision4 IDE では、プロジェクトマネージャ、対話式エラー修正機能などの豊富な機能を持つエディタが、オプション設定、Make ユーティリティ、およびオンラインヘルプダイアログと統合されています。µVision4 を使用してソースファイルを作成し、ターゲットアプリケーション定義するプロジェクトに編成します。µVision4 では、組み込みアプリケーションを自動的にコンパイル、アセンブル、およびリンクし、開発作業を一元化できます。

C/C++ コンパイラとマクロアセンブラ

ソースファイルが µVision4 IDE により作成され、C または C++ コンパイラまたはマクロアセンブラに渡されます。コンパイラおよびアセンブラは、ソースファイルを処理し、再配置可能オブジェクトファイルを作成します。

ライブラリマネージャ

ライブラリマネージャを使用すると、コンパイラおよびアセンブラにより作成されたオブジェクトファイルから、オブジェクトライブラリを作成できます。ライブラリは、後でリンカが使用する可能性のあるオブジェクトモジュールの特定の形式のプログラムの集まりです。リンカがライブラリを処理するとき、プログラム作成に必要なライブラリのオブジェクトモジュールのみが使用されます。

リンカ/ロケータ

リンカ/ロケータは、ライブラリから抽出されたオブジェクトモジュールと、コンパイラおよびアセンブラにより作成されたオブジェクトモジュールを使用し、実行可能プログラムファイルを作成します。実行可能プログラムファイル（アブソリュートオブジェクトモジュールとも呼ばれます）には、再配置可能コードまたはデータは含まれません。コードおよびデータはすべて、固定されたメモリ位置に存在します。

この実行可能プログラムファイルは、次の場合に使用されます。

  • フラッシュ ROM または他のメモリデバイスのプログラミング
  • Vision4 Debugger によるシミュレーションおよびターゲットデバッグ
  • インサーキットエミュレータによるプログラムテスト

µVision4 デバッガ

µVision4 のソースレベルのシンボリックデバッガは、迅速で信頼性の高いプログラムデバッグに最適です。デバッガには高速シミュレータが含まれているため、オンチップペリフェラルを含むマイクロコントローラシステムや外付けハードウェアのシミュレーションを実行できます。デバイスデータベースからデバイスを選択すると、使用するチップの属性が自動設定されます。

µVision4 デバッガでは、実際のターゲットハードウェアでプログラムをテストするための複数の方法が用意されています。

  • Keil ULINK USB-JTAG アダプタを使用すると、フラッシュダウンロードを実行したり、多くの ARM デバイスで統合されている組み込み ICE マクロなどのオンチップデバッグシステムを介してプログラムのソフトウェアテストを実行したりできます。
  • Keil AGDI インタフェースを使用すると、µVision4 デバッガのフロントエンドをターゲットシステムに接続したり、モニタ、インシステムデバッガ、エミュレータなどの他のデバッガを使用したりできます。


µVision4 User's Guide (Japanese): µVision4 の概要

µVision4 の概要

µVision4 IDE は、強力で最新のエディタ、プロジェクトマネージャ、および Make 機能を組み合わせた、ウィンドウベースのソフトウェア開発プラットフォームです。µVision4 には、C/C++ コンパイラ、マクロアセンブラ、リンカ/ロケータ、HEX ファイルジェネレータなど、組み込みアプリケーションの開発に必要なツールがすべて統合されています。µVision4 には以下の機能が搭載されており、組み込みアプリケーションの開発プロセスを促進します。

  • 豊富な機能を備えたソースコードエディタ
  • 開発環境を設定するためのデバイスデータベース
  • プロジェクトの作成およびメンテナンスのためのプロジェクトマネージャ
  • 組み込みアプリケーションをアセンブル、コンパイル、リンクするための統合 Make ユーティリティ機能
  • あらゆる開発環境設定用のダイアログ
  • 高速 CPU およびペリフェラルシミュレータを備えた、真に統合されたソースレベルおよびアセンブラレベルのデバッガ
  • ターゲットハードウェアのソフトウェアデバッグおよび Keil ULINK アダプタファミリへの接続のための高度な GDI インタフェース
  • アプリケーションプログラムのフラッシュ ROM へのダウンロードのためのフラッシュプログラミングユーティリティ
  • マニュアル、オンラインヘルプ、デバイスデータシート、およびユーザガイドへのリンク

µVision4 IDE には、組み込みアプリケーションを迅速に開発して、開発を成功させるために役立つ数多くの機能と利点があります。Keil ツールは使いやすく、お客様の設計目標を直ちに達成するのに必ず役立つことでしょう。

µVision4 IDE およびデバッガは、Keil 開発ツールチェーンの中核です。µVision4 には、ビルドモードおよびデバッグモードがあります。

ビルドモードでは、プロジェクトおよびプロジェクトファイルのメンテナンス、コードの記述、ターゲットハードウェアとデバイスの選択、およびアプリケーションの生成を行います。

デバッグモードでは、統合的で強力なシミュレータを使用した、または直接ターゲットハードウェアで Keil ULINK USB-JTAG アダプタ（または他の AGDI ドライバ）を使用した、プログラムの検証およびデバッグ、またはアプリケーションの動作の解析を行います。

Keil ULINK アダプタを使用すると、ターゲットシステムのフラッシュ ROM にアプリケーションをダウンロードできます。

機能と利点

機能 | 利点
µVision4 シミュレータは、ほとんどのオンチップペリフェラルをシミュレートするただ 1 つのデバッガです。 | 稼動用ハードウェアが準備できる前に、アプリケーションコードを記述してテストできます。ハードウェア設計を最適化するために、さまざまなハードウェアコンフィギュレーションを調査します。
システムビューア機能を使用し、ペリフェラルの内容を監視できます。 | ユーザ独自のビューを表示および定義し、ペリフェラルを監視します。詳細ステータス情報を取得し、システムビューアウィンドウで直接変更できます。
µVision4 シミュレータのコードカバレッジ機能は、プログラム実行の統計的解析データを提供します。 | セーフティクリティカルシステムを十分にテストおよび検証できます。認証要件のために、実行解析レポートを表示および印刷できます。
ロジックアナライザ機能を使用し、変数の変化をグラフィックで表示できます。 | グラフィック形式のシグナルおよび変数の変化を確認したり、依存関係または相関関係を表示したりします。
µVision4 デバイスデータベースは、ターゲットマイクロコントローラの開発ツールを自動設定します。 | デバイス設定は配布され、テスト済みです。開発者はデフォルト設定が提供されるため、ツールの設定に必要な時間が実質的に短縮されます。
共通テキストシーケンスまたはヘッダブロックを挿入するためのテンプレートエディタ。 | テンプレートを使用し、標準テキスト、ヘッダ説明、および汎用コードブロックをプログラム構造に挿入します。
コード化されたプロシージャ間をすばやくナビゲートするための関数ブラウザ。 | 開発時間を短縮できます。この機能は、Find 関数に追加して使用します。
コンフィギュレーションウィザードは、デバイスおよびスタートアップコード設定のメンテナンスのためのグラフィカルインタフェースとなります。 | スタートアップファイル全体をスキャンまたはスクロールする代わりに、GUI に似た高度な機能を使用できます。
µVision4 IDE には、VCS、CASE、フラッシュ/デバイスプログラミングなど、その他のサードパーティ製のツールが統合されています。 | 開発ツールおよびサードパーティ製のツールにすばやくアクセスできます。設定の詳細はすべて、µVision4 プロジェクトファイルに保存されます。
Keil ULINK USB-JTAG アダプタファミリでは、デバッグおよびフラッシュプログラミングがサポートされており、設定済みアルゴリズムファイルと共に配布されます。このファイルは、ユーザ固有のニーズに合わせて変更または調整できます。 | デバッグおよびプログラミングに必要なツールは 1 つだけです。設定に無駄な時間がかかりません。
ターゲットデバッガおよびシミュレータユーザインタフェースが、同じ外観で実装されています。 | 習得にかかる時間を大幅に短縮できます。
µVision4 では、プロジェクトマネージャ、Make ユーティリティ、デバッガ、および最新のエディタが 1 つのユーザインタフェースに組み込まれています。 | アプリケーション開発を迅速化できます。 編集時、デバッガ機能を設定できます。デバッグ時、ソースコードを変更できます。ただし、これらの変更は、プロジェクトが再ビルドされた後で有効になります。
マルチプロジェクトマネージャを使用すると、さまざまなプロジェクトを 1 つのプロジェクトファイルに統合でき、設計概要がわかりやすくなります。 | 論理的に依存し合っている µVision4 のプロジェクトを 1 つのマルチプロジェクトに組み合わせると、組み込みシステムアプリケーション設計の概要、一貫性、および透過性が向上します。プロジェクトは、個別に、またはバッチモードでビルドまたは再ビルドできます。
デバッグ復元ビューを使用すると、複数のウィンドウレイアウトを定義できます。 | 解析の必要性に最適なビューをすばやく選択できます。デバッグレイアウトは、グローバルなレベルで定義することも、プロジェクトごとに定義することもできます。画面レイアウトを再定義する必要がないため、時間を大幅に節約できます。
オブジェクトのドラッグアンドドロップ。 | ほとんどのオブジェクトを、あるウィンドウから別のウィンドウにドラッグアンドドロップできます。表示面の範囲の任意の場所にウィンドウを移動できます。例えば、複数の［メモリ］（Memory）ウィンドウおよび変数の［ウォッチ］（Watch）ウィンドウを使用できるなど、柔軟性が強化されます。


µVision4 User's Guide (Japanese): printf

printf

概要
void printf ("string", ...) /* ANSI C printf function */
説明

printf 関数は、ANSI C ライブラリ関数のように動作します。最初の引数は、フォーマットストリングです。引数の後に、式または文字列を指定します。printf では従来の ANSI C 形式で指定できます。
戻り値

なし
例
>printf ("random number = %04XH\n", rand(0))
random number = 1014H


µVision4 User's Guide (Japanese): rand

rand

概要
int rand (int seed)  /* return a 16-bit random number */
説明

rand 関数は、0 から +32767 の範囲内の任意の数を返します。乱数ジェネレータは、ゼロ以外の値がシード引数に渡されるたびに再初期化されます。rand 関数を使用して、クロックサイクルを任意の数だけ遅らせたり、特定のアルゴリズムまたは入力ルーチンに渡すための任意のデータを生成したりすることができます。
戻り値

rand 関数は呼び出し元に int 値を返します。
例
>rand (0x1234) /* Initialize random generator with 0x1234 */
0x3B98

>rand (0) /* No initialization */
0x64BD


µVision4 User's Guide (Japanese): rwatch

rwatch

概要
void rwatch (
  unsigned long address);   /* address to watch */
説明

rwatch デバッガ関数は、指定アドレスが読み出されるまでデバッガシグナル関数を遅延させます。この関数が遅延する間、ターゲットプログラムは実行を継続します。この関数は、外部ハードウェアをシミュレーションするシグナル関数を作成するときに便利です。

rwatch デバッガ関数は、ターゲットプログラムによってアドレスが実際に読み出される前に戻ります。これにより、シグナル関数は読み出し要求を中断し、実際に読み出される前にメモリの内容を変更できます。

注

  • アドレスが特殊機能レジスタ（SFR）またはペリフェラルレジスタを参照する場合、反復読み出しが発生することがあります。シグナル関数がこれを無視するようあらかじめ設定しておく必要があります。
  • rwatch デバッガ関数は、シグナル関数内部からのみ呼び出されます。rwatch 関数をシグナル関数外部から呼び出すことはできず、呼び出した場合、エラーメッセージが表示されます。
戻り値

なし。
関連項目

wwatch
例
signal void read_trigger (unsigned long adr) {
  unsigned char val;

  printf ("Track read accesses to address 0x%X\n", adr);

  while (1) {
    rwatch (adr);
    val = getint ("Input Value for Read Trigger");
    _WBYTE (adr, val);       //  update value
  }
}

次の呼び出しは、上のシグナル関数を開始します。この関数は var が読み出されるたびに値を入力するよう求めます。

> read_trigger (&var);


µVision4 User's Guide (Japanese): シミュレーション

シミュレーション

µVision4 デバッガには、シグナル関数の作成に使用する C スクリプト言語が組み込まれています。シグナル関数を使用すると、マイクロコントローラへのアナログ入力およびデジタル入力をシミュレートできます。µVision4 がターゲットプログラムをシミュレート中、シグナル関数はバックグラウンドで実行されます。

µVision4 シミュレータは、UART、I²C、SPI、CAN などのシリアル通信プロトコルのタイミングとロジック動作をシミュレートします。ただし、I/O ポートの物理通信ピンの I/O ポートのトグルはシミュレートしません。

シミュレーション速度を高速化し、通信ペリフェラルへのアクセスを最適化するために、通信ペリフェラルのロジック動作が、DIR VTREG コマンドでリストされる仮想レジスタに反映されます。これには、複雑なペリフェラルをスティミュレイトするデバッグ関数を容易に記述できるという利点があります。

この章では、シミュレーションに使用するシグナル関数テンプレートをいくつか紹介します。

  • 「デジタル入力」では、シミュレートされたデジタル I/O ポートの使用方法およびプログラミング方法について説明します。割り込みシグナルおよびインパルスパターンの例が示されています。
  • 「アナログ入力」では、A/D および D/A コンバータのシミュレートの方法について説明します。さまざまなアナログシグナル関数の例が示されています。
  • 「UART 通信」では、VTREG を介した UART シミュレーション、およびペリフェラルのダイアログまたはシグナル関数による制御について説明します。
  • 「CAN 通信」では、CAN 通信バスをテストするための一般的な設定について説明します。コンフィギュレーションダイアログへのリンクがあります。
  • 「I²C 通信」では、概念、シミュレーション、およびバスモードについて説明します。サンプルアプリケーション、I²C デバイスのシミュレーション、およびデバッグの可能性が示されています。
  • 「SPI 通信」では、µVision4 による SPI のデバッグおよび使用について説明します。サンプルコードでは、スイッチを使用したシンプルな状態マシンをシミュレートしています。


µVision4 User's Guide (Japanese): ノイズシグナル

ノイズシグナル

次のシグナル関数テンプレートを使用して、シグナルパターンにノイズを入れることができます。入力シグナルは、VTREG AIN0 に提供されています。変数ボルト、周波数、オフセット、および期間を使用して、ノイズシグナルを調整できます。

/*----------------------------------------------------------------------*/
/*   Generate Noise Signal on AD Channel 3                              */
/*----------------------------------------------------------------------*/
//
signal void AIN3_Noise (void)  {
  float volts;        // peak-to-peak volatage
  float frequency;    // output frequency in Hz
  float offset;       // volatge offset
  float duration;     // duration in Seconds
  float val;
  long  i, limited;

  volts     = 1.4;
  offset    = 1.6;
  duration  = 0.1;

  printf ("Noise Signal on AD Channel 3.\n");

  limited = (duration * 100000);
  for (i = 0 ; i < limited; i++)  {
    val =  ((float) rand(0)) / 32767.0;
    AIN3 = (val * volts) + offset;
    swatch (0.00001);                // in 10 uSec steps
  }
}

define button "AIN3 Noise","AIN3_Noise()"

上の設定では、AIN3 入力で次のシグナルが生成されます。


µVision4 User's Guide (Japanese): アナログ入力

アナログ入力

µVision4 は、オンチップ A/D および D/A コンバータのタイミングとロジック動作を完全にシミュレートします。

  • ［ペリフェラル］（Peripheral）メニューにあるダイアログを使用して、これらのペリフェラルの設定を検証できます。次の図に示すように、これらのダイアログにアナログ入力値を直接入力できます。
  • CPU ピンを表す仮想シミュレーションレジスタ（VTREG）は、式またはデバッグ関数で使用できます。

A/D コンバータダイアログの例。ダイアログは、選択したデバイスによって異なります。

赤い円は、手動で変更できるアナログ入力値を示しています。

［A/D コンバータ］（A/D Converter）ペリフェラルダイアログ

このセクションでは、VTREG とシグナル関数を使用するシミュレーションスクリプトについて説明します。以下の例があります。

  • 方形波シグナル
  • のこぎり波シグナル
  • 正弦波
  • ノイズシグナル
  • シグナルの組み合わせ


µVision4 User's Guide (Japanese): のこぎり波シグナル

のこぎり波シグナル

次のシグナル関数テンプレートを使用して、のこぎり波シグナルを生成できます。入力シグナルは、VTREG AIN0 に提供されています。変数ボルト、周波数、オフセット、および期間を使用して、のこぎり波シグナルを調整できます。

/*---------------------------------------------------*/
/* Generate Sawtooth Signal on AD Channel 0         */
/*---------------------------------------------------*/
//
signal void AIN1_Saw (void)  {
  float volts;        // peak-to-peak volatage
  float frequency;    // output frequency in Hz
  float offset;       // volatge offset
  float duration;     // duration in Seconds
  float val;
  long  i, end, steps;

  volts     = 2.0;
  offset    = 0.2;
  frequency = 1400;
  duration  = 0.2;

  printf ("Sawtooth Signal on AD Channel 1.\n");

  steps = (100000 * (1/frequency));
  end = (duration * 100000);
  for (i = 0 ; i < end; i++)  {
    val = (i % steps) / ((float) steps);
    AIN1 = (val * volts) + offset;
    swatch (0.00001);                // in 10 uSec increments
  }
}

define button "AIN1 Saw","AIN1_Saw()"

上の設定では、次の出力が生成されます。


µVision4 User's Guide (Japanese): シグナルの組み合わせ

シグナルの組み合わせ

シグナル関数またはシグナル入力は、簡単に組み合わせることができます。

次のシグナル関数は、「同時に」処理されるように複数のシグナルを呼び出す方法を示しています。

前述の関数を AIN0 VTREG に転送して下さい。

AIN0 = expression.

/*----------------------------------------------------------------------*/
/* Combine the Signals                                                  */
/*----------------------------------------------------------------------*/
//
signal void Startup (void)  {
  swatch (0.1);      // wait 0.1 seconds
  AIN1_Saw ();
  swatch (0.003);    // wait 0.03 seconds
  AIN0_Square ();
  swatch (0.006);    // wait 0.06 seconds
  AIN2_Sine ();
  swatch (0.00000000001);
}

define button "AutoComb", "Startup()"

上のシグナル関数では、次の出力が生成されます。

次のシグナル関数に示すように、2 つの正弦波を混在させることも可能です。

/*-----------------------------------------------------------------*/
/* Generate a Sine Wave Input                                      */
/*-----------------------------------------------------------------*/
//
signal void mix_sine (float freq1, float freq2)  {
  float sig1;
  float sig2;
  int z;

  z = 0;

  while (z < 10000)  {   // generate 100 mSec sine wave pulse
//
// Generate 1. Sine Wave input signal
//
    sig1 = __sin (((states * freq1) / CLOCK) * 3.1415926 * 2);

//
// Generate 2. Sine Wave input signal
//
    sig2 = __sin (((states * freq2) / CLOCK) * 3.1415926 * 2);

//
// Input: 1. Sine Wave with 0.5V, 2. Sine Wave with 0.2V, offset 2.5V
//
    AIN0 =  (sig1 * 0.5) + (sig2 * 0.2) + 2.5;
    swatch (0.00001);    // wait 10 uSec
    z++;
  }
}

define button "Combine Sin", "mix_sine(300,2000)"

このシグナル関数をコマンドラインから直接呼び出して、2 つの周波数を生成できます。以下に例を示します。

この呼び出しでは、300Hz 振幅 0.5V および 2000Hz 振幅0.2V の入力シグナルを 2.5V のオフセットで生成します。次の［ロジックアナライザ］（Logic Analyzer）ウィンドウは、このシグナルを示しています。


µVision4 User's Guide (Japanese): 正弦波

正弦波

次のシグナル関数テンプレートを使用して、正弦波シグナルを生成できます。入力シグナルは、VTREG AIN2 に提供されています。変数ボルト、周波数、オフセット、および期間を使用して、正弦波シグナルを調整できます。

/*----------------------------------------------------------------------*/
/*   Generate Sine Wave Signal on AD Channel 2                          */
/*----------------------------------------------------------------------*/
//
signal void AIN2_Sine (void)  {
  float volts;        // peak-to-peak voltage
  float frequency;    // output frequency in Hz
  float offset;       // voltage offset
  float duration;     // duration in Seconds
  float val;
  long  i, end;

  volts     = 1.4;
  offset    = 1.6;
  frequency = 1800;
  duration  = 0.1;

  printf ("Sine Wave Signal on AD Channel 2.\n");

  end = (duration * 100000);
  for (i = 0 ; i < end; i++)  {
    val = __sin (frequency * (((float) STATES) / CLOCK) * 2 * 3.1415926);
    AIN2 = (val * volts) + offset;
    swatch (0.00001);                // in 10 uSec steps
  }
}

define button "AIN2 Sin","AIN2_Sine()"

上の設定では、次の出力が生成されます。


µVision4 User's Guide (Japanese): 方形波シグナル

方形波シグナル

次のシグナル関数テンプレートを使用して、方形波シグナルを生成できます。入力シグナルは、VTREG ADC0 に提供されています。変数ボルト、周波数、オフセット、および期間を使用して、方形波シグナルを調整できます。

必要に応じて、新しい *2.ini ファイルを作成できます。このファイルは、以下のように別の *1.ini ファイルに含めることができます。

INCLUDE *2.ini

/*---------------------------------------------------*/
/* Generates an Square Wave Signal on AD Channel 0   */
/*---------------------------------------------------*/
//
signal void AIN0_Square (void)  {
  float volts;        // peak-to-peak volatage
  float frequency;    // output frequency in Hz
  float offset;       // volatge offset
  float duration;     // duration in Seconds

  volts     = 0.5;
  offset    = 1.6;
  frequency = 2400;
  duration  = 0.5;

  printf ("Square Wave Signal on AD Channel 0.\n");

  while (duration > 0.0)  {
    AIN0 = volts + offset;
    swatch (0.5 / frequency);
    AIN0 = offset;
    swatch (0.5 / frequency);
    duration -= 1.0 / frequency;
  }
}

define button "AIN0 Sqr","AIN0_Square()"

上の設定では、次の出力が生成されます。


µVision4 User's Guide (Japanese): ダイアログページ

ダイアログページ

CAN のペリフェラルダイアログ

µVision4 デバッガには、CAN インタフェースの実際の設定を確認できる CAN ダイアログがあります。このダイアログは、メインメニューの［ペリフェラル］（Peripherals）→［CAN］から開きます。このダイアログには、以下で説明するいくつかのタブがあります。

一般的な CAN コンフィギュレーションペリフェラルダイアログ

CAN コンフィギュレーション（デバイスによって異なります）：汎用 CAN コントローラレジスタ（メッセージ ID マスクや CAN 通信速度など）を確認および変更できます。

注

  • µVision4 デバッガは、CAN 通信エラーを直接シミュレートできません。CAN 通信エラーは、CAN コントローラハードウェアによって処理されます。ユーザアプリケーションは CAN コントローラによって自動的に処理されるので関係ありません。エラー状態をシミュレートする必要がある場合は、CAN コンフィギュレーションダイアログページでエラーステータス情報を設定できます。

一般的な CAN チャネルペリフェラルダイアログ

CAN メッセージオブジェクト（チャネル）（デバイスによって異なります）：ステータス情報などの CAN メッセージオブジェクトレジスタを確認できます。

一般的な CAN 通信ペリフェラルダイアログ

CAN 通信：送受信メッセージを確認できます。このウィンドウは、CAN アナライザと同様に機能し、シミュレートされた CAN バスにメッセージを表示します。以下の情報が含まれます。

  • ［No］または［番号］（Number）は、CAN メッセージの番号（連番）です。

  • ［ステート］（States）は、CPU 状態における CAN メッセージのタイムスタンプです。

  • ［ID］は、送信または受信に使用される CAN メッセージの識別子です。

  • ［Dir］は、CAN メッセージの方向です。［Xmit］は CAN コントローラの送信出力で、［Rec］は受信メッセージです。

  • ［Ch］または［MO］は、チャネルまたはメッセージのオブジェクト番号です（デバイスによって異なります）。

  • ［Len］または［長さ］（Length）は、CAN メッセージのバイト数です。

  • ［データ］（Data）は、CAN メッセージデータバイトです。

注

  • CAN 通信ダイアログ内をダブルクリックすると、ウィンドウがクリアされます。


µVision4 User's Guide (Japanese): CAN 通信

CAN 通信

CAN バスは、複数のマイクロコントローラシステムを接続します。CAN アプリケーションをテストするには、完全なシステムを構成する必要があります。実際のハードウェアでテストするとき、通常は、他のアプリケーションに対するメッセージを生成する CAN アナライザが必要です。

次の図は、CAN アプリケーションのシステムテスト用の一般的なハードウェアコンフィギュレーションを示しています。

µVision4 シミュレータは、システムレベルで CAN アプリケーションをテストする完全な CAN 環境となります。µVision は、以下を介して CAN ペリフェラルへのインタフェースとなります。

  • ダイアログページ：CAN ペリフェラルと CAN メッセージ通信のステータスを示します。
  • 仮想シミュレーションレジスタ（VTREG）：送受信メッセージをシミュレートしたデバッグスクリプトを記述できます。


µVision4 User's Guide (Japanese): 仮想シミュレーションレジスタ（VTREG）

仮想シミュレーションレジスタ（VTREG）

µVision4 デバッガは、デバッガコマンドラインレベルまたはデバッグ関数とシグナル関数内で CAN 通信を確認するために使用できる仮想シミュレーションレジスタ（VTREG）を実装しています。以下のレジスタが実装されています。

VTREG | 説明
CANxID | 現在転送されているメッセージの 11 ビットまたは 29 ビットの識別子です。ID サイズは、CAN0IN または CAN0OUT VTREG の値で指定されます。短い 11 ビット識別子の場合、この VTREG の 11 LSB ビットだけが使用されます。
CANxL | CAN メッセージのデータ長。CAN0L の有効な値は 0...8 です。
CANxBO ...CANxB7 | CAN メッセージのデータバイト。現在のオブジェクトの個々のメッセージバイトにアクセスするために 8 データバイトが実装されています。
CANxIN 受信メッセージをシミュレートするためにユーザによって設定されるか、デバッグ関数内で設定されます。以下の値を使用できます。
  • CANxIN = 1：11 ビット識別子を使用して現在のメッセージを受信します。
  • CANxIN = 2：29 ビット識別子を使用して現在のメッセージを受信します。
  • CANxIN = 3：一致する 11 ビット識別子があるリモートフレームをアプリケーションプログラムに要求します。
  • CANxIN = 4：一致する 29 ビット識別子があるリモートフレームをアプリケーションプログラムに要求します。
  • CANxIN = 0xFF：CAN コントローラの BUSOFF モードをシミュレートします。メッセージが µVision4 シミュレータによって処理されると、CANxIN はシミュレータによって 0 に設定されます。
CANxOUT アプリケーションプログラムによってメッセージを転送するとき、シミュレータによって設定されます。以下の値を使用できます。
  • CANxOUT = 1：11 ビット識別子を使用して現在のメッセージを送信します。
  • CANxOUT = 2：29 ビット識別子を使用して現在のメッセージを送信します。
  • CANxOUT = 3：一致する 11 ビット識別子のあるリモートフレームをユーザまたはデバッグ関数に要求します。
  • CANxOUT = 4：一致する 29 ビット識別子のあるリモートフレームをユーザまたはデバッグ関数に要求します。
CANxTIMING | シミュレートされた通信タイミングを µVision4 内で制御するパフォーマンス係数を設定できます。このパフォーマンス係数により、ビジーな CAN ネットワークがシミュレートされます。パフォーマンス係数が 0 の場合、無限の通信速度の CAN ネットワークがシミュレートされます。係数が 1 の場合、現在選択されている通信速度で CAN メッセージがリアルタイム転送されます。係数が 2 の場合、50% の通信速度と同等のパフォーマンスがシミュレートされます。CANxTIMING は、0 .. 1000 の浮動小数点数です。

VTREG の命名規則における CANx は、デバイスによって異なります。複数の CAN 識別子を提供するデバイスでは、VTREG 名に CAN0 または CAN1 の接頭辞が付けられます。コマンド DIR VTREG を使用して、選択した CAN デバイスの仮想シミュレーションレジスタ名を確認できます。

仮想シミュレーションレジスタ（VTREG）をデバッグ関数と一緒に使用すると、以下のためのスクリプトを生成できます。

  • 受信メッセージのシミュレート
  • 送信メッセージの処理
  • 定期的なメッセージの送信


µVision4 User's Guide (Japanese): 送信メッセージの処理

送信メッセージの処理

CAN0OUT レジスタでブレークポイントを使用することによって、デバッグ関数を呼び出すことができます。デバッグ関数は、CAN メッセージオブジェクトをチェックし、CAN メッセージへの応答の送信または遅延応答を送信するシグナル関数の呼び出しを行うことができます。以下に使用例を示します。

FUNC void CANmessage (void)  {
  switch (CAN0OUT)  {
    case 1: printf ("\nSend Message (11-bit ID=%04X)", CAN0ID);     break;
    case 2: printf ("\nSend Message (29-bit ID=%08X)", CAN0ID);     break;
    case 3: printf ("\nRequest Message (11-bit ID=%04X)", CAN0ID);  return;
    case 4: printf ("\nRequest Message (29-bit ID=%08X)", CAN0ID);  return;
  }

  printf ("\nMessage Length %d, Data: ", CAN0L);
  printf ("%02X %02X %02X %02X ",   CAN0B0, CAN0B1, CAN0B2, CAN0B3);
  printf ("%02X %02X %02X %02X \n", CAN0B4, CAN0B5, CAN0B6, CAN0B7);
}

>BS WRITE CAN0OUT, 1, "CANmessage ()"  // call CANmessage debug function with outgoing messages

注：

すべての CAN メッセージは、CAN 通信のダイアログページでも確認できます。


µVision4 User's Guide (Japanese): 定期的なメッセージの送信

定期的なメッセージの送信

シグナル関数を使用して、ユーザアプリケーションにメッセージを定期的に送信できます。シグナル関数は、µVision4 デバッガ内で作成されます。このトピックの詳細については、µVision4 の「デバッグ関数」を参照して下さい。以下のシグナル関数は、2 バイトのメッセージを毎秒 10 回送信します。シグナル関数は、アプリケーションプログラムに送信された情報値を受信します。この情報値は、継続的に増加します。

SIGNAL void sendCAN (unsigned int info)  {
 while (1)  {
    CAN0ID = 0x4510;          // CAN message ID
    CAN0L  = 2;               // message length 2 bytes
    CAN0B0 = (info & 0xFF);   // message data byte 0
    CAN0B1 = (info >> 8);     // message data byte 1
    CAN0IN = 2;               // send CAN message with 29-bit ID
    twatch (CLOCK / 10);      // send message 10 times per second
    info++;                   // increment info value
  }
}

>sendCAN (500);    // invoke sendCAN function


µVision4 User's Guide (Japanese): 受信メッセージのシミュレート

受信メッセージのシミュレート

次の例は、2 メッセージバイトの受信メッセージオブジェクトのシミュレーションを示します。

>CAN0ID = 0x4500   // message ID = 0x4500
>CAN0L = 2         // message length 2 bytes
>CAN0B0 = 0x12     // message data byte 0
>CAN0B1 = 0x34     // message data byte 1
>CAN0IN = 2        // set CAN message with 29-bit identifier to the application program

注：

  • 受信メッセージを CAN 通信ダイアログページに直接入力することもできます。


µVision4 User's Guide (Japanese): インパルスパターン

インパルスパターン

以下のシグナル関数は、多くの組み込みシステムで一般的なシグナルインパルスパターンを生成します。この例は、電子通信アプリケーションで一般的な DTMF レシーバの入力です。

このコードを初期化ファイル <filename>.ini に追加します。

/*------------------------------------------------------------------*/
/* Generate Input Signal Pattern from a DTMF Receiver               */
/*------------------------------------------------------------------*/
signal void SendDtmf (unsigned char digit)  {
  if (digit == 0)  digit = 10;
  printf ("DMFT Signal = %d\n", digit);
  PORT0 = (PORT0 & 0x07) | (digit << 4);
  swatch (0.06);
  PORT0 |= 0x8;
}

/*------------------------------------------------------------------*/
/* Caller Function for DTMF Receiver                                */
/*------------------------------------------------------------------*/
signal void SendSig (void)  {
  SendDtmf (12);    // send digit 12 = '*'
  swatch (0.12);
  SendDtmf (7);     // send digit 7
  swatch (0.12);
  SendDtmf (2);     // send digit 2
  swatch (0.12);
  SendDtmf (11);    // send digit 11 = '#'
  swatch (0.12);
}

define button "DTMF Signal", "SendSig()"

上のシグナル関数では、次の出力が生成されます。


µVision4 User's Guide (Japanese): 割り込みシグナル

割り込みシグナル

次のシグナル関数テンプレートを使用して、GPIO 割り込みシグナルを生成できます。

このコードを初期化ファイル <filename>.ini に追加します。

/*------------------------------------------------------------------*/
/* Generates a number of pulses on GPIO 0.14                        */
/*------------------------------------------------------------------*/
signal void GPIO_0_14_Square (unsigned int pulses)  {
  float frequency;           // pulse frequency in Hz
  float takeTime;

  frequency = 1000;          // 1 KHz
  takeTime = (1.0 / frequency);

  printf ("%d Square Pulses on GPIO 0.14\n", pulses);

  while (pulses--)
  {
    PORT0 |=  (1 << 14);                        // set    pin 0.14
    PORT1 &=  ~(1 << 24);                       // reset  pin 1.24
    PORT1 |=   (1 << 24);                       // set    pin 1.24
    swatch (takeTime);
    PORT0 &= ~(1 << 14);                        // reset pin 0.14
    swatch (takeTime);
  }
}

GPIO_0_14_Square (100);      // 100 Pulses at debugger startup

define button "EINT1 10  Pulses", "GPIO_0_14_Square (10)"
define button "EINT1 100 Pulses", "GPIO_0_14_Square (100)"

上の設定では、PORT0 で次のシグナルが生成されます。次に示すロジックアナライザの出力は、www.keil.com/download から入手できるサンプルプロジェクト「Using Interrupt EINT1 on Keil MCB2100 Board」で生成されたものです。


µVision4 User's Guide (Japanese): デジタル入力

デジタル入力

µVision4 は、オンチップデジタル I/O ポートのロジック動作をシミュレートします。

  • ［ペリフェラル］（Peripheral）メニューにあるダイアログを使用して、これらのペリフェラルの設定を検証できます。次の図に示すように、これらのダイアログに入力値を直接入力できます。
  • CPU ピンを表す仮想シミュレーションレジスタ（VTREG）は、式またはデバッグ関数で使用できます。

NXP LPC2100 デバイスの I/O ポート

このセクションでは、VTREG とシグナル関数を使用するシミュレーションスクリプトについて説明します。以下の例があります。

  • プッシュボタンは、I/O ピンを切り替えることによってスイッチをシミュレートします。
  • 割り込みシグナル
  • インパルスパターン


µVision4 User's Guide (Japanese): プッシュボタン

プッシュボタン

以下のシグナル関数を使用して、接続されたスイッチに似た I/O ピンを切り替えることができます。

//
// Toggle I/O Pin
//
signal void Toggle_IO_Pin (unsigned char digit)  {
  PORT2 = (PORT2 ^ 0x01);
}

以下の DEFINE コマンドを使用して、この関数にすばやくアクセスするための［ツールボックス］（Toolbox）のボタンを定義できます。

DEFINE BUTTON "Toggle P2.0", "Toggle_IO_Pin()"


µVision4 User's Guide (Japanese): アプリケーション例

アプリケーション例

「Application Note 153: Using and Programming the I²C Bus」（www.keil.com から入手可能）には、I²C シミュレーションの使用方法を示す 2 つのサンプルプログラムが含まれています。これらの例は、バイト指向ハードウェアで I²C バスを使用する方法を示します。

µVision4 プロジェクト I2CEEPROM は NXP 8xC591（8051 ベースのデバイス）用に構成されており、シリアル EEPROM に対する読み出しと書き込みを行い、I²C EEPROM メモリ（4k バイト）をシミュレートするシグナル関数を含みます。

µVision4 プロジェクト Master は 87LPC764 の I²C Single Master Routines（I²C バスマスタとして NXP AN422 - 8XC751 から取得）を含み、I²C メモリ（256 バイト）をシミュレートするシグナル関数を提供します。


µVision4 User's Guide (Japanese): I²C 通信

I²C 通信

I²C バスは、NXP によって定義された 2 ワイヤバスシステムです。I²C バスは双方向で、シンプルながらも効率的な制御アプリケーション用に設計されています。これは、組み込みシステムでマイクロコントローラとペリフェラルをインタフェースで接続するために広く使用されています。

システムは、接続された IC 間で情報をやり取りする SCL（シリアルクロック）および SDA（シリアルデータ）という 2 つのラインで構成されます。バスに接続されたすべてのデバイスは、マスタまたはスレーブデバイスです。各デバイスは、以下のいずれかのモードで使用できます。

  • アイドルモード：デバイスは高いインピーダンス状態で、データを待機します。
  • マスタトランスミッタモード：デバイスはスレーブレシーバにデータを送信します。
  • マスタレシーバモード：デバイスはスレーブトランスミッタからデータを受信します。
  • スレーブレシーバモード：多数のデータバイトがマスタトランスミッタから受信されます。
  • スレーブトランスミッタモード：多数のデータバイトがマスタレシーバから送信されます。

I²C 標準については、NXP の Web ページで公開されている I²C バス仕様を参照して下さい。

このセクションでは、以下のトピックについて説明します。

  • I²C の概念
  • I²C シミュレーション
  • 仮想シミュレーションレジスタ（VTREG）
  • I²C デバイスのシミュレーション
  • アプリケーション例


µVision4 User's Guide (Japanese): I²C の概念

I²C の概念

I²C バスは、ARM7、ARM9、Cortex-Mx、8051、251、C16x、XE16x、XC20x の複数のデバイスで使用でき、さまざまな方法で実装できます。

  • ハードウェア実装されたマスタおよびスレーブ機能のある I²C シリアルポート（NXP 80C552、558、および複数の Atmel デバイス）。
  • ハードウェア実装されたスレーブおよびソフトウェアベースのマスタ機能のある組み合わされた SPI/I²C インタフェース（アナログデバイス ADuC812、ADuC824、およびその他の複数のデバイス）。
  • ソフトウェアベースのマスタおよびスレーブサポート用のシングルビットハードウェア（NXP の Web ページで公開されている NXP AN422 に記載されている NXP 8xC75x および NXP LPC シリーズ）。
  • Infineon C16x、XE16x、および XC20x ファミリの高速シリアルインタフェースを使用した I²C バスのシミュレーション（Infineon AppNote AP1626 を参照）。
  • I²C バスマスタデバイスのソフトウェアベースのシミュレーション。これは、2 つの未使用の I/O ピンを SCL および SDA ピンとして使用する 8051 または C16x デバイスに実装できます。これらの I/O ピンは、ソフトウェアによってのみ制御されます。

I²C シミュレーションに関する情報は、I²C インタフェースハードウェアがあるデバイスに該当します。


µVision4 User's Guide (Japanese): I²C シミュレーション

I²C シミュレーション

ソフトウェアのテストを効率的に行うには、ビットレベルでの I²C バスの動作をシミュレートするだけでは不十分です。I²C バス通信もシミュレートできる必要があります。

µVision4 には、以下の機能があります。

  • I²C バスアクティビティおよびデータ通信を確認するための I²C バスダイアログページ。
  • I²C バスに対するデータの確認および入力に使用できる仮想シミュレーションレジスタ（VTREG）。
  • マイクロコントローラに接続された I²C デバイスをシミュレートするために作成できるデバッグ関数。この方法では、バス通信の一部分だけではなく、アプリケーション全体をシミュレートできます。

I²C バスのダイアログ

µVision4 は、I²C インタフェースのステータス情報を出力し、I²C 通信をリストするダイアログページを提供します（CAN 通信ページに似ています。AN147 を参照して下さい）。

［I²C ハードウェア］（I²C Hardware）タブでは、ハードウェアレジスタを介した I²C 設定の確認と変更、および現在の I²C インタフェースステータスの表示を行うことができます。

［I²C 通信］（I²C Communication）タブでは、I²C バス上のデータ通信を確認し、メッセージジェネレータを使用して I²C バスにデータを直接入力できます。

  • ［モード］（Mode）：I²C データフレームのモード（マスタまたはスレーブ）を示します。
  • ［アドレス］（Address）：I²C データフレームの I²C バスアドレスです。
  • ［方向］（Direction）：I²C データフレームの送信（Transmit）または受信（Receive）を示します。
  • ［データ］（Data）：I²C データフレームのコンテンツです。

注：

  • ドット（.）は肯定応答ビットを意味します。
  • 感嘆符（!）は、非肯定応答を示します。


µVision4 User's Guide (Japanese): I²C デバイスのシミュレーション

I²C デバイスのシミュレーション

指定したシグナル関数を使用して、I²C バスに接続されているハードウェアコンポーネントを実装できます。以下の例は、I²C メモリ（NXP PCF8570 のように 256 バイト）をシミュレートするシグナル関数を示します。

I²C メモリスレーブアドレスは、SADR 変数を介して設定されます。次に例を示します。

SADR = 0x3F// I²C Memory Slave Address

シグナル関数は、次のように［コマンド］（Command）ウィンドウから呼び出されます。

I2C_Memory()

I²C メモリがメモリ領域 V:0 .. V:0xFF にマップされます。

シミュレータが I2C_OUT VTReg で START 状態を検出したら、次のバイトはアドレスバイトとして解釈されます。このアドレスバイトには、ビット 7 .. 1 に 7 ビットのスレーブアドレスが含まれ、ビット 0 に方向 （0 = 書き込み、1 = 読み出し）が含まれます。

  • スレーブメモリがアドレス指定されると、メモリデバイスが ACK をマイクロコントローラに送信します。
  • 方向ビットが '1'（メモリ読み出し）の場合、マイクロコントローラは I2C_IN VTReg を介してメモリから（各読み出しバイトの後に自動的に増加する現在のアドレスから）データバイトを読み出します。マイクロコントローラは、追加のデータバイトを読み出す必要がある場合は各バイトの後に ACK をメモリデバイスに送信します。これが最後のデータバイト読み出しの場合は NACK が送信されます。
  • 方向ビットが '0'（メモリ書き込み）の場合、マイクロコントローラは、新しいメモリアドレスを含むバイトを最初に送信します（メモリは ACK を返す必要があります）。次に、マイクロコントローラは、メモリに書き込まれるデータバイトを（各書き込みバイトの後に自動的に増加する現在のアドレスに）送信します。メモリデバイスは、各バイトの受信後に ACK を返す必要があります。
// Simulation of I²C Memory (Slave): like NXP PCF8570 (256 byte I²C RAM)

MAP V:0,V:0xFF READ WRITE                    // Map User Memory region

DEFINE int SADR                              // Slave Address

signal void I2C_Memory (void) {
  unsigned long adr;

  adr = V:0;
  while (1) {
    wwatch (I2C_OUT);                        // Wait for data from Microcontroller
    while (I2C_OUT == 0x0100) {              // START detected
      wwatch (I2C_OUT);                      // Wait for data from Microcontroller
      if (I2C_OUT > 0xFF) continue;
      if ((I2C_OUT >> 1) != SADR) continue;  // test if Slave is addressed
      I2C_IN = 0xFF00;                       // ACK to Microcontroller
      if (I2C_OUT & 1) {                     // Slave Read
        while (1) {
          I2C_IN = _RBYTE(adr);              // Read Byte from Memory
          adr++;                             // Increment Address
          wwatch (I2C_OUT);                  // Wait for ACK from Microcontroller
          if (I2C_OUT != 0xFF00) break;
        }
      }
      else {                                 // Slave Write
        wwatch (I2C_OUT);                    // Wait for data from Microcontroller
        if (I2C_OUT > 0xFF) continue;
        adr = I2C_OUT | V:0;                 // Set Memory Address
        I2C_IN = 0xFF00;                     // ACK to Microcontroller
        while (1) {
          wwatch (I2C_OUT);                  // Wait for data from Microcontroller
          if (I2C_OUT > 0xFF) break;
          _WBYTE (adr, I2C_OUT);             // Store Byte in Memory
          adr++;                             // Increment Address
          I2C_IN = 0xFF00;                   // ACK to Microcontroller
        }
      }
    }
  }


µVision4 User's Guide (Japanese): 仮想シミュレーションレジスタ（VTREG）

仮想シミュレーションレジスタ（VTREG）

µVision4 デバッガは、仮想シミュレーションレジスタ（VTREG）を実装しています。このレジスタを使用して、デバッガコマンドラインレベルまたはデバッグ関数とシグナル関数内で I²C 通信を確認します。以下のレジスタが実装されています。

VTREG | 説明
I2C_IN I²C ペリフェラルからマイクロコントローラに送信されるデータ。このレジスタの値を以下に示します。
  • 0xFFFF：IDLE または STOP 状態。
  • 0x0100：START の場合、SLAVE 送信またはマイクロコントローラ上での受信を開始します。次のバイトはスレーブアドレスです。
  • 0x00 .. 0xFF：マイクロコントローラに転送される任意のアドレスまたはデータバイト。
  • 0xFF00：ACK 用。
  • 0xFF01：NACK 用。
I2C_OUT マイクロコントローラから I²C ペリフェラルに送信されるデータ。このレジスタの値を以下に示します。
  • 0xFFFF：IDLE または STOP 状態。
  • 0x0100：START の場合、MASTER 送信またはマイクロコントローラ上での受信を開始します。次のバイトはスレーブアドレスです。
  • 0x00 .. 0xFF：I²C ペリフェラルに転送される任意のアドレスまたはデータバイト。
  • 0xFF00：ACK 用。
  • 0xFF01：NACK 用。
I2C_CLK | スレーブモードのクロック周波数（Hz）。例えば、100KHz 送信の場合は 100000。

µVision4 は、I²C バスの 8 ビットアドレスモードだけをサポートします。11 ビットアドレスモードは現在実装されておらず、ほとんどのマイクロコントローラデバイスでもサポートされていません。


µVision4 User's Guide (Japanese): SPI シミュレーション

SPI シミュレーション

シリアルペリフェラルインタフェース（SPI）を使用すると、ボードレベルでデバイスを接続できます。µVision4 デバッガは、マスタとスレーブの両方のモードで複数のマイクロコントローラの SPI インタフェースをシミュレートします。

仮想シミュレーションレジスタ（VTREG）

µVision4 デバッガは、SPI 通信のシミュレーション用に以下の仮想シミュレーションレジスタ（VTREG）を実装しています。

VTREG | 説明
SPIxIN | 現在受信されているデータを取得する SPI 入力レジスタ。
SPIxOUT | 現在送信されているデータを格納する SPI 出力レジスタ。

VTREG の命名規則における SPIx は、デバイスによって異なります。複数の SPI インタフェースを提供するデバイスでは、VTREG 名に SPI0 または SPI1 という接頭辞が付けられます。コマンド DIR VTREG を使用して、選択したデバイスの SPI インタフェースの仮想シミュレーションレジスタ名をチェックできます。

SPI シミュレーションの例

µVison のダウンロードファイル AT25 SPI EEPROM Simulation for NXP LPC2000 は、AT25 SPI EEPROM のシミュレーション例となります。

次のデバッグスクリプトには、Atmel AT250X0 SPI メモリデバイスをシミュレートするデバッガシグナル関数が含まれています。このデバイスは、switch ステートメントで実装されるシンプルな状態マシンを使用してシミュレートされます。

/* Define the state and address for the AT250x0.*/
define char spi_at250x0_state
define int  spi_at250x0_address
define char spi_at250x0_status

/* MAP the memory area to use for the SPI RAM. */
map X:0x700000,X:0x70FFFF READ WRITE

/*-----------------------------------------------
This function implements the state matching for
the AT250x0.

State       Transition
-------------------------------------------------
0: WREN  -> 0
0: WRDI  -> 0
0: RDSR  -> 0
0: Read  -> 1: Get Address LSB -> 2: Read Byte <-
0: Write -> 3: Get Address LSB -> 4: Write Byte -> 5 <-

1: Get Addr LSB -> 2
2: Read Byte(s) -> 2

3: Get Addr LSB -> 4
4: Write Byte   -> 5
-----------------------------------------------*/
func char spi_at250x0 (char st) {
  unsigned char opcode;

  printf ("AT250X0: STATE %u\n", (unsigned) st);

  switch (st)  {
    case 0:  /* Get OPCode */
      opcode = SPI_OUT & 0x0007;
      printf ("AT250X0: OPCODE %u\n", (unsigned) opcode);

    switch (opcode)
      {
      case 1: /* WRSR */
        return (0);

      case 2: /* Write */
        printf ("AT250X0: WRITE OPCODE Detected\n");
        spi_at250x0_address = (SPI_OUT & 0x08) << 5;
        return (3);

      case 3: /* Read */
        printf ("AT250X0: READ OPCODE Detected\n");
        spi_at250x0_address = (SPI_OUT & 0x08) << 5;
        return (1);

      case 4: /* WRDI */
        spi_at250x0_status &= ~0x02; /* Clear Write Enable Bit */
        return (0);

      case 5: /* RDSR */
        SPI_IN = spi_at250x0_status;
        return (5);

      case 6: /* WREN */
        spi_at250x0_status |= 0x02; /* Set Write Enable Bit */
        return (0);
      }
    return (0);

  case 1:  /* Get Address LSB for READ */
    spi_at250x0_address |= (SPI_OUT & 0xFF);
    printf ("AT250X0: Address %4.4X Detected\n", spi_at250x0_address);
    return (2);

  case 2:  /* Read */
    printf ("AT250X0: Read %2.2X from address %4.4X\n", 'A', spi_at250x0_address);
    SPI_IN = _rbyte(X:0x700000 + spi_at250x0_address);
    spi_at250x0_address = (spi_at250x0_address + 1) % 512;
    return (2);

  case 3:  /* Get Address LSB for WRITE */
    spi_at250x0_address |= (SPI_OUT & 0xFF);
    printf ("AT250X0: Address %4.4X Detected\n", spi_at250x0_address);
    return (4);

  case 4:  /* Write */
    if (spi_at250x0_status & 0x02)
      {
      printf ("AT250X0: Write %2.2X to address %4.4X\n", SPI_OUT, spi_at250x0_address);
      _wbyte(X:0x700000 + spi_at250x0_address, SPI_OUT);
      spi_at250x0_status |= 0x01;
      }
    return (5);

  case 5:  /* Instruction End */
    return (5);
  }

return (0);
}

/*
 * This signal function watches the AT89S8252 SPI port for writes.  If there
 * is an SPI port output and if P1.0 is LO (AT250X0 chip select) then interpret
 * the SPI output data and run the state machine.
 */
signal void spi_watcher (void) {

spi_at250x0_state = 0;

while (1) {
  wwatch (SPI_OUT);
  printf ("SPI_OUT Detected\n");

  if ((PORT1 & 0x01) == 0)
    {
    printf ("Calling AT250X0 Routines\n");
    spi_at250x0_state = spi_at250x0 (spi_at250x0_state);

    if (spi_at250x0_status & 0x01)
      swatch (0.000100);
      spi_at250x0_status &= ~0x01;
    }
  else
    {
    printf ("Resetting AT250X0 Routines\n");
    spi_at250x0_state = 0;
    }
  }
}

/*-----------------------------------------------
Enable the signal function for SPI writes.
-----------------------------------------------*/
spi_watcher ();


µVision4 User's Guide (Japanese): UART 通信

UART 通信

多くのマイクロコントローラは、標準の UART または RS232 シリアルインタフェースを備えています。µVision4 デバッガは、マイクロコントローラの UART インタフェースをシミュレートし、ターミナルのように機能する 3 つのシリアルウィンドウを提供します。シリアルウィンドウは、［表示］（View）→［シリアルウィンドウ #1 .. #3］（Serial Window #1 .. #3）から開きます。これらのシリアルウィンドウはターミナルのように操作できます。また、ASSIGN コマンドを使用して、コンピュータの使用可能な COM ポートにシリアル出力を送信することもできます。

ペリフェラルダイアログ

［ペリフェラル］（Peripheral）メニューのダイアログには、マイクロコントローラシステムの UART の現在の状態が表示されます。ここで、通信速度およびシステムのその他のパラメータを簡単に確認できます。

仮想シミュレーションレジスタ（VTREG）

µVision4 デバッガは、UART 通信のシミュレーション用に以下の仮想シミュレーションレジスタ（VTREG）を実装しています。

VTREG | 説明
SxIN | シリアルインタフェース x の入力バッファ。ユーザは 8 ビットまたは 9 ビットの値を SxIN に書き込むことができます。これらの値はターゲットプログラムによって読み出されます。SxIN を読み出して、入力バッファで別の文字を受け入れる準備が完了するタイミングを決定できます。値 0xFFFF は、前の値が完全に処理され、新しい値を書き込むことができるというシグナルを送信します。その他の特殊な値を使用して、パリティエラーまたはフレームエラーをシミュレートできます。
SxOUT | シリアルインタフェース x の出力バッファ。µVision4 は 8 ビットまたは 9 ビットの値を（プログラムされたとおりに）SxOUT VTREG にコピーします。
SxTIME | シリアルインタフェース x の通信速度タイミングを定義します。SxTIME が 1 の場合、µVision4 はプログラムされた通信速度を使用してシリアルインタフェースのタイミングをシミュレートします。SxTIME が 0（デフォルト値）の場合、プログラムされた通信速度タイミングは無視され、シリアル送信時間は即時に設定されます。

VTREG 命名規則における SxIN、SxOUT、および SxTIME はデバイスによって異なります。複数の UART インタフェースを提供するデバイスでは、VTREG 名に S0 または S1 という接頭辞が付けられます。コマンド DIR VTREG を使用して、選択したデバイスの UART インタフェースの仮想シミュレーションレジスタ名をチェックできます。

SxIN VTREG 経由の文字入力

SxIN VTREG では、マイクロコントローラのオンチップシリアルポートへの入力が可能です。

次のデバッグコマンド（デバッガの［コマンド］（Command）ウィンドウに直接入力）は、値をシリアルストリームに入力します。µVision4 デバッガのシリアルウィンドウを使用してシリアルポートに文字を入力することもできます。

SIN = 'A'      /* Input the letter A into the serial stream */
SIN = 0x019E   /* Input the 9-bit value 19Ex into the serial stream */
SIN = 0xA9     /* input value 0xA9 to I/O stream for the UART */

UART 通信タイミングの制御

SxTIME VTREG では、シミュレートされたシリアルポートのタイミングを制御できます。

  • 1 の値は、シリアルポートのタイミングがターゲットハードウェアと同じであることを示します。シリアルポート I/O の通信速度の効果を確認する場合は、この値を使用します。
  • 0 の値は、すべてのシリアル入出力が同時に発生することを示します。通信速度を考慮する必要がない場合、またはシリアル出力を速くする場合は、この値を使用します。

以下に例を示します。

STIME = 0   /* Set Serial 0 for FAST timing */
STIME = 1   /* Set Serial 0 for accurate timing */

UART シミュレーションの例

次のデバッグスクリプトは、約 19.200 ボーの速度で文字 'A' - 'Z' を送信します。

signal void serialA_Z (void) {
  char ch;

  for (ch = 'A'; ch < 'Z'; ch++)   {
   S0IN = ch;                                // send character
   twatch (CLOCK / 900);
  }                                          /* repeat */
}

サポートのナレッジベース（www.keil.com/support）にある「Automated Serial Input Script」およびその他の例を参照して下さい。


µVision4 User's Guide (Japanese): swatch

swatch

概要
void swatch (
  float seconds);   /* seconds to delay */
説明

swatch デバッガ関数は、指定秒数が経過するまでデバッガシグナル関数を遅延させます。この関数が遅延する間、ターゲットプログラムは実行を継続します。この関数は、スロークロックモードや省電力モードが用意されているデバイスでも正確に機能します。

注

  • swatch デバッガ関数は、シグナル関数内部からのみ呼び出されます。swatch 関数をシグナル関数外部から呼び出すことはできず、呼び出した場合、エラーメッセージが表示されます。
戻り値

なし。
関連項目

twatch
例
signal void int0_signal (void) {
  while (1) {
    PORT3 |= 0x04;             /* pull PORT 3.2 high   */
    swatch (0.05);             /* wait 50 milliseconds */
    PORT3 &= ~0x04;            /* pull PORT 3.2 low    */
    swatch (0.05);             /* wait 50 milliseconds */
  }
}

以下の呼び出しにより、ポート 3.2 を 50 ミリ秒ごとに切り替える上のシグナル関数が開始されます。

> int0_signal ();


µVision4 User's Guide (Japanese): twatch

twatch

概要
void twatch (
  unsigned long states);   /* clock states to delay */
説明

twatch デバッガ関数は、指定された CPU 状態の数が経過するまでデバッガシグナル関数を遅延させます。この関数が遅延する間、ターゲットプログラムは実行を継続します。この関数は、スロークロックモードや省電力モードが用意されているデバイスでも正確に機能します。

注

  • twatch デバッガ関数は、シグナル関数内部からのみ呼び出されます。twatch 関数をシグナル関数外部から呼び出すことはできず、呼び出した場合、エラーメッセージが表示されます。
戻り値

なし。
関連項目

swatch
例
signal void int0_signal (void) {
  while (1) {
    PORT3 |= 0x04;             /* pull INT0(P3.2) high */
    PORT3 &= ~0x04;            /* pull INT0(P3.2) low */
                               /*   and generate interrupt */
    PORT3 |= 0x04;             /* pull INT0(P3.2) high */
    twatch (CLOCK);            /* wait for 1 second */
  }
}

以下の呼び出しにより、ポート 3.2 を高、低、高の順に 1 秒ごとに切り替える上のシグナル関数が開始されます。

> int0_signal ();


µVision4 User's Guide (Japanese): ［詳細］（Advanced）メニュー

［詳細］（Advanced）メニュー

［詳細］（Advanced）メニューは［編集］（Edit）→［詳細］（Advanced）から使用でき、次のような拡張エディタ機能が用意されています。

［詳細］（Advanced）メニュー | ツールバー | ショートカット | 説明
［行に移動］（Goto Line） |  | Ctrl+G | 現在のソースファイル内の特定の行番号に移動します。
［一致する括弧に移動］（Goto Matching Brace） |  | Ctrl+E | 一致する波括弧、丸括弧、または角括弧を検索します（このコマンドを使用する際は、カーソルを波括弧、丸括弧、または角括弧の前に置きます）。
［選択範囲にタブを設定］（Tabify Selection） |  |  | 選択したテキスト内のスペースをタブに置き換えます。
［選択範囲のタブを解除］（Untabify Selection） |  |  | 選択したテキスト内のタブをスペースに置き換えます。
［大文字に変換］（Make Uppercase） |  | Ctrl+Shift+U | 選択したテキストを大文字に変換します。
［小文字に変換］（Make Lowercase） |  | Ctrl+U | 選択したテキストを小文字に変換します。
［選択範囲にコメントを追加］（Comment Selection） | ［コメント］（Comment）ボタン |  | 選択した各行をコメントテキストに変換します。
［選択範囲のコメントを解除］（Uncomment Selection） | ［コメント解除］（Uncomment）ボタン |  | 選択した各コメントを通常のテキストに変換します。
［選択範囲にインデントを追加］（Indent Selection） | ［インデント］（Indent）ボタン |  | 選択した各行の行インデントを 1 タブずつ増やします。
［選択範囲のインデントを解除］（Unindent Selection） | ［インデント解除］（Unindent）ボタン |  | 選択した各行の行インデントを 1 タブずつ減らします。
［テキストで選択範囲にインデントを追加］（Indent Selection with Text...） |  |  | 定義した特殊なテキストで、選択した各行の行インデントを増やします。
［テキストで選択範囲のインデントを解除］（Unindent Selection with Text...） |  |  | 定義した特殊なテキストで行が始まっている場合にのみ、そのテキストで、選択した各行の行インデントを減らします。
［末尾の空白を削除］（Delete Trailing White Space） |  |  | 選択したテキストの末尾にあるタブまたは空白を削除します。
［左右の空白を削除］（Delete Horizontal White Space） |  |  | 選択したテキスト内のタブまたは空白を削除します。
［現在の行を切り取り］（Cut Current Line） |  | Ctrl+L | 現在の行のテキストをクリップボードに切り取ります。


µVision4 User's Guide (Japanese): ［解析］（Analysis）メニュー

［解析］（Analysis）メニュー

［表示］（View）→［解析ウィンドウ］（Analysis Windows）を選択すると、グラフィック形式で値を解析したり、モジュールと関数の経過時間を監視したり、実行の統計値を表示したりするためのさまざまなウィンドウにアクセスできます。

［解析］（Analysis）メニュー | ツールバー | ショートカット | 説明
［ロジックアナライザ］（Logic Analyzer） |  |  | ［ロジックアナライザ］（Logic Analyzer）ウィンドウを表示または非表示にします。
［パフォーマンスアナライザ］（Performance Analyzer） | ［パフォーマンスアナライザ］（Performance Analyzer）ボタン |  | ［パフォーマンスアナライザ］（Performance Analyzer）ウィンドウを表示または非表示にします。
［コードカバレッジ］（Code Coverage） | ［コードカバレッジ］（Code Coverage）ボタン |  | ［コードカバレッジ］（Code Coverage）ウィンドウを表示または非表示にします。


µVision4 User's Guide (Japanese): ブックマーク

ブックマーク

ブックマークを定義すると、マークの付いたコードセクション間をすばやく移動できます。

ツールバーのボタンまたはコンテキストメニューを使用して、テキストエディタまたは［逆アセンブリ］（Disassembly）ウィンドウでブックマークを定義します。

ブックマーク挿入ボタン ブックマークを 1 つ挿入/削除します。

次のブックマークボタン 次のブックマークに移動します。

前のブックマークボタン 前のブックマークに移動します。

ブックマークのクリアボタン すべてのブックマークをクリアします。

  • ブックマークによってプログラムの実行が停止されることはありません。
  • ブックマークは、デバッグモードおよび編集モードで追加できます。


µVision4 User's Guide (Japanese): ［ブック］（Books）ウィンドウ

［ブック］（Books）ウィンドウ

［ブック］（Books）ウィンドウ デバイスデータベースからデバイスを選択すると、ツールセットと選択したデバイスについてのユーザマニュアルを、［プロジェクト］（Project）ウィンドウの［ブック］（Books）タブで開くことができます。ほとんどのユーザマニュアルは、ツールセットに含まれているか、Keil 開発ツール CD-ROM に収録されています。

ブックはダブルクリックで開きます。右クリックすると、コンテキストメニューが開きます。［開く］（Open）を選択するとブックが開き、［ブックの管理］（Manage Books）を選択すると［プロジェクト］（Project）→［コンポーネント、環境、ブック］（Components, Environment, Books）→［ブック］（Books）ダイアログが開きます。このダイアログでは、ユーザマニュアルの追加、削除、並べ替えを行うことができます。


µVision4 User's Guide (Japanese): ［デバッグ］（Debug）メニューおよびコマンド

［デバッグ］（Debug）メニューおよびコマンド

［デバッグ］（Debug）メニュー | ツールバー | ショートカット | 説明
［デバッグセッションの開始/停止］（Start/Stop Debug Session） | デバッグの開始/停止ボタン | Ctrl+F5 | µVision4 デバッグモードを開始または停止します。
［CPU をリセット］（Reset CPU） | CPU を開始/リセットボタン |  | CPU をリセット状態に設定します。
［実行］（Run） | 実行ボタン | F5 | 次のアクティブブレークポイントまで実行します。
［停止］（Stop） | 停止ボタン |  | 実行中のプログラムを直ちに停止します。
［ステップ］（Step） | シングルステップボタン | F11 | 関数のシングルステップインを実行します。現在の命令行を実行します。
［ステップオーバー］（Step Over） | ステップオーバーボタン | F10 | 関数のシングルステップオーバーを実行します。
［ステップアウト］（Step Out） | ステップアウトボタン | Ctrl+F11 | 現在の関数の実行を完了し、停止します。
［カーソル行まで実行］（Run to Cursor Line） | カーソル行まで実行ボタン | Ctrl+F10 | 現在のカーソル行に到達するまで実行します。
［次のステートメントを表示］（Show Next Statement） | 次のステートメントを表示ボタン |  | 次の実行可能ステートメント/命令を表示します。
［ブレークポイント］（Breakpoints） |  | Ctrl+B | ［ブレークポイント］（Breakpoints）ダイアログを開きます。
［ブレークポイントを挿入/削除］（Insert/Remove Breakpoints） | ブレークポイントを挿入/削除ボタン | F9 | 現在の行のブレークポイントを切り替えます。
［ブレークポイントを有効化/無効化］（Enable/Disable Breakpoint） | ブレークポイントを有効化/無効化ボタン | Ctrl+F9 | 現在の行のブレークポイントを有効/無効にします。
［すべてのブレークポイントを無効化］（Disable All Breakpoints） | すべてのブレークポイントを無効化ボタン |  | プログラムのすべてのブレークポイントを無効にします。
［すべてのブレークポイントを削除］（Kill All Breakpoints） | すべてのブレークポイントを削除ボタン | Ctrl+Shift+F9 | プログラムのすべてのブレークポイントを削除します。
［OS サポート］（OS Support） |  |  | ［RTX カーネル］（RTX Kernel）ダイアログを開きます。
［実行プロファイル］（Execution Profiling） |  |  | 実行プロファイルを、［オフ］（Off）、［時間］（Time）、［呼び出し］（Calls）、または［情報のリセット］（Reset the information）に設定します。
［メモリマップ］（Memory Map） |  |  | ［メモリマップ］（Memory Map）ダイアログを開きます。
［インラインアセンブリ］（Inline Assembly） |  |  | ［インラインアセンブリ］（Inline Assembly）ダイアログを開きます。
［関数エディタ（Ini ファイルを開く）］（Function Editor（Open Ini File）） |  |  | デバッグ関数とデバッガ初期化ファイルを編集します。
［デバッグ設定］（Debug Settings） |  |  | デバッグイベントの動作に影響を与えるいくつかのフラグを管理します。


µVision4 User's Guide (Japanese): ウィンドウのドッキング

ウィンドウのドッキング

ウィンドウは、別のウィンドウやマルチドキュメントインタフェース（MDI）にドッキングしたり、別の画面でフローティングさせることができます。ウィンドウをドラッグすると、次のスクリーンショットのように、いくつかのドッキングシンボルが表示されます。

ソースコードファイルは、テキストエディタのウィンドウ内になければなりません。

  • タイトルバーかウィンドウのページ名またはオブジェクト名を、左マウスボタンでクリックします。
  • ドッキングシンボルにウィンドウをドラッグします。
  • マウスボタンを離します。


µVision4 User's Guide (Japanese): ［編集］（Edit）メニューおよびコマンド

［編集］（Edit）メニューおよびコマンド

［編集］（Edit）メニューには、元に戻す、やり直し、切り取り、コピー、貼り付け、ブックマーク機能、さまざまな検索コマンドや置換コマンド、ソースアウトライン機能、高度なエディタ機能など、ソースコードを編集するためのコマンドがあります。エディタの設定にもこのメニューからアクセスします。

［編集］（Edit）メニュー | ツールバー | ショートカット | 説明
 |  | Home | カーソルを行の先頭に移動します。
 |  | End | カーソルを行の末尾に移動します。
 |  | Ctrl+Home | カーソルをファイルの先頭に移動します。
 |  | Ctrl+End | カーソルをファイルの末尾に移動します。
 |  | Ctrl+左矢印 | カーソルを 1 ワード左に移動します。
 |  | Ctrl+右矢印 | カーソルを 1 ワード右に移動します。
 |  | Ctrl+A | 現在のファイル内のすべてのテキストを選択します。
［元に戻す］（Undo） | 元に戻すボタン | Ctrl+Z | 直前の編集操作をキャンセルします。
［やり直し］（Redo） | やり直しボタン | Ctrl+Y | 直前に元に戻した操作をやり直します。
［切り取り］（Cut） | 切り取りボタン | Ctrl+X | 選択したテキストをクリップボードに切り取ります。
［コピー］（Copy） | コピーボタン | Ctrl+C | 選択したテキストをクリップボードにコピーします。
［貼り付け］（Paste） | 貼り付けボタン | Ctrl+V | テキストをクリップボードから貼り付けます。
［後方に移動］（Navigate Backwards） | 前へボタン | Ctrl+Shift+- | カーソルを「検索」または「行に移動」コマンドの実行前の位置に戻します。
［前方に移動］（Navigate Forwards） | 次へボタン | Ctrl+- | カーソルを「検索」または「行に移動」コマンドの実行後の位置に移動します。
［ブックマークを挿入/削除］（Insert/Remove Bookmark） | ブックマークを挿入/削除ボタン | Ctrl+F2 | 現在の行のブックマークを切り替えます。
［次のブックマークへ移動］（Goto Next Bookmark） | 次のブックマークボタン | F2 | カーソルを次のブックマークに移動します。
［前のブックマークへ移動］（Goto Previous Bookmark） | 前のブックマークボタン | Shift+F2 | カーソルを前のブックマークに移動します。
［すべてのブックマークをクリア］（Clear All Bookmarks） | すべてのブックマークをクリアボタン | Ctrl+Shift+F2 | アクティブファイルのすべてのブックマークをクリアします。
［検索］（Find） | ［検索］（Find）ボタン | Ctrl+F | アクティブファイルでテキストを検索します。
 |  | F3 | テキスト検索を前方に繰り返します。
 |  | Shift+F3 | テキスト検索を後方に繰り返します。
 |  | Ctrl+F3 | カーソルの下の単語を検索します。
［置換］（Replace） |  | Ctrl+H | 特定のテキストを置換します。
［ファイル内検索］（Find in Files） | ファイル内検索ボタン | Ctrl+Shift+F | 複数のファイルでテキストを検索します。
［インクリメンタル検索］（Incremental Find） | インクリメンタル検索ボタン | Ctrl+I | 文字を入力するのと同時に 1 文字単位で検索を行います。
［アウトライン］（Outlining） |  |  | ソースコードアウトラインのコマンドです。
［詳細］（Advanced） |  |  | 詳細なエディタコマンドです。
［設定］（Configuration） | 設定ボタン |  | 色、フォント、ショートカット、およびエディタのオプションを変更します。


µVision4 User's Guide (Japanese): ［実行プロファイル］（Execution Profiling）メニュー

［実行プロファイル］（Execution Profiling）メニュー

［デバッグ］（Debug）→［実行プロファイル］（Execution Profiling）では、経過時間と、各命令で実行されたサイクル数が記録および表示されます。

呼び出しの時間と回数は累積値です。これらの値は［逆アセンブリ］（Disassembly）ウィンドウとエディタウィンドウに同様に表示されます。

［実行プロファイル］（Execution Profiling）メニュー | ツールバー | ショートカット | 説明
［無効］（Disabled） |  |  | ［逆アセンブリ］（Disassembly）およびエディタウィンドウの実行プロファイラを有効/無効にします。
［時間を表示］（Show Time） |  |  | 命令が実行された累積時間を表示します。
［呼び出し回数を表示］（Show Calls） |  |  | 命令が実行された頻度を表示します。
［情報のリセット］（Reset Information） |  |  | 現在のトレース情報を削除して、カウントをゼロにリセットします。


µVision4 User's Guide (Japanese): ［エクスポート］（Export）メニュー

［エクスポート］（Export）メニュー

［プロジェクト］（Project）→［エクスポート］（Export）メニューには、µVision3 形式でプロジェクトを保存するためのコマンドがあります。

µVision4 形式専用のオプションは変換されません。

µVision4 プロジェクトファイルはそのまま残ります。

［エクスポート］（Export）メニュー | ツールバー | ショートカット | 説明
［プロジェクトを µVision3 形式で保存］（Save Project to µVision3 format） |  |  | プロジェクトファイルを変換します。
［マルチプロジェクトワークスペースを µVision3 形式で保存］（Save Multi-Project Workspace to µVision3 format） |  |  | マルチプロジェクトファイルを変換します。


µVision4 User's Guide (Japanese): ［ファイル］（File）メニューおよびコマンド

［ファイル］（File）メニューおよびコマンド

［ファイル］（File）メニューには、ソースファイルを開く、保存、印刷、および閉じるためのコマンドがあります。［デバイスデータベース］（Device Database）ダイアログと［ライセンスマネージャ］（License Manager）ダイアログには、このメニューからアクセスします。

［ファイル］（File）メニュー | ツールバー | ショートカット | 説明
［新規...］（New...） | 新規ファイルボタン | Ctrl+N | 新しいソースまたはテキストファイルを作成します。
［開く］（Open） | ファイルを開くボタン | Ctrl+O | 既存のファイルを開きます。
［閉じる］（Close） |  |  | アクティブファイルを閉じます。
［保存］（Save） | 保存ボタン | Ctrl+S | アクティブファイルを保存します。
［名前を付けて保存...］（Save as...） |  |  | アクティブファイルを別の名前で保存します。
［すべて保存］（Save All） | すべて保存ボタン |  | プロジェクトやアクティブファイルなど、開いているソースファイルやテキストファイルをすべて保存します。
［デバイスデータベース］（Device Database） |  |  | µVision4 デバイスデータベースを管理します。
［ライセンス管理］（License Management） |  |  | インストールされているソフトウェアコンポーネントを管理および確認します。
［印刷設定...］（Print Setup...） |  |  | プリンタを設定します。
［印刷...］（Print...） | 印刷ボタン | Ctrl+P | アクティブファイルを印刷します。
［印刷プレビュー］（Print Preview） |  |  | 印刷ビューにページを表示します。
1 .. 10 |  |  | 直近に使用されたソースまたはテキストファイルを開きます。
［終了］（Exit） |  |  | µVision4 を終了し、ファイルを保存するメッセージを表示します。


µVision4 User's Guide (Japanese): ［フラッシュ］（Flash）メニュー

［フラッシュ］（Flash）メニュー

［フラッシュ］（Flash）メニューでは、フラッシュプログラミングユーティリティの設定と実行が可能です。

［フラッシュ］（Flash）メニュー | ツールバー | ショートカット | 説明
［ダウンロード］（Download） | ダウンロードボタン |  | ［オプション］（Options）→［ユーティリティ］（Utilities）の設定に従ってフラッシュダウンロードユーティリティを呼び出します。
［消去］（Erase） |  |  | フラッシュ ROM を消去します（一部のデバイスでのみ使用可）。
［フラッシュツールの設定...］（Configure Flash Tools...） |  |  | ［ターゲットのオプション］（Options for Target）→［ユーティリティ］（Utilities）ダイアログを開きます。ここでフラッシュユーティリティを設定できます。


µVision4 User's Guide (Japanese): ［関数］（Functions）ウィンドウ

［関数］（Functions）ウィンドウ

［関数］（Functions）タブ このウィンドウにはプロジェクト関数とライブラリ関数が表示され、モジュールごと、またはアルファベット順にまとめられます。

このウィンドウから、目的の関数にすばやく移動できます。

関数はダブルクリックで開きます。

コンテキストメニューを使用すると、関数をスキャンしたり、表示形式を変更したりできます。


µVision4 User's Guide (Japanese): ［ヘルプ］（Help）メニュー

［ヘルプ］（Help）メニュー

［ヘルプ］（Help）メニューには、オンラインヘルプシステムの起動、オンチップペリフェラル情報の表示、ナレッジベースへのアクセス、テクニカルサポートチームへの問い合わせ、製品アップデートの確認、製品バージョン情報の表示を行うコマンドがあります。

［ヘルプ］（Help）メニュー | ツールバー | ショートカット | 説明
［µVision ヘルプ］（µVision Help） | ウィンドウレイアウトボタン |  | µVision コンテキストヘルプファイルを開きます。
［ブックウィンドウを開く］（Open Books Window） | ウィンドウレイアウトボタン |  | ［プロジェクトワークスペース］（Project Workspace）→［ブック］（Books）タブを開きます。
［オブジェクトのシミュレーション済みペリフェラル］（Simulated Peripherals for object） |  |  | 選択したデバイスのシミュレーション済みペリフェラルについての情報を表示します。
［サポートへの問い合わせ］（Contact Support） |  |  | 技術的なサポートを要求するための Web ベースのフォームが開きます。
［アップデートの確認］（Check for Update） |  |  | 使用可能なアップデートがあるかどうかを www.keil.com で確認します。
［バージョン情報］（About µVision） |  |  | バージョン番号とライセンス情報が表示されます。


µVision4 User's Guide (Japanese): ［管理］（Manage）メニュー

［管理］（Manage）メニュー

［プロジェクト］（Project）→［管理］（Manage）メニューには、プロジェクトコンポーネント、ファイルパス、ツール設定、ブック、およびマニュアルを管理するためのコマンドがあります。

［管理］（Manage）メニュー | ツールバー | ショートカット | 説明
［コンポーネント、環境、ブック］（Components, Environment, Books） | コンポーネント、環境、ブック...ボタン |  | ターゲット、グループ、およびファイルを設定します。ファイル拡張子とツールパスを設定し、開発ツールを選択します。ブックとマニュアルを設定します。
［マルチプロジェクトワークスペース］（Multi-Project Workspace） | マルチプロジェクトワークスペースボタン |  | マルチプロジェクトファイルにプロジェクトを追加します。


µVision4 User's Guide (Japanese): ［OS サポート］（OS Support）メニュー

［OS サポート］（OS Support）メニュー

カーネル対応のデバッグ情報にアクセスするには、［デバッグ］（Debug）→［OS サポート］（OS Support）を使用します。

µVision シミュレータを使用すると、リアルタイムオペレーティングシステムで作成されたアプリケーションを実行してテストできます。

カーネル対応のデバッグは、リアルタイムカーネルとプログラム内のタスクのすべての側面を表示するダイアログ形式で実行できます。このダイアログはターゲットハードウェアで使用できます。

［デバッグ］（Debug）メニュー | ツールバー | ショートカット | 説明
［OS サポート］（OS Support） |  |  | RTX カーネル対応のダイアログを開きます。

注

  • このオプションをアクティブにするには、RTOS を選択する必要があります。


µVision4 User's Guide (Japanese): ［アウトライン］（Outlining）メニュー

［アウトライン］（Outlining）メニュー

［編集］（Edit）→［アウトライン］（Outlining）を選択すると、［アウトライン］（Outlining）メニューが開きます。このメニューでは、ソースコードの論理ブロックを展開したり折りたたんだりすることができます。

メニュー項目 | 説明
［選択範囲を折りたたむ］（Collapse Selection） | 現在選択されているテキストを非表示にします。
［すべての定義を折りたたむ］（Collapse All Definitions） | すべてのプロシージャを非表示にします。
［現在のブロックを折りたたむ］（Collapse Current Block） | 現在のブロックを非表示にします。
［現在のプロシージャを折りたたむ］（Collapse Current Procedure） | 現在のプロシージャを非表示にします。
［現在のアウトラインを停止］（Stop Current Outlining） | 現在の位置にあるアウトライン情報を削除します。
［すべてのアウトラインを停止］（Stop All Outlining） | ドキュメント全体のすべてのアウトライン情報を削除します。
［すべてのアウトラインを開始］（Start All Outlining） | ドキュメント全体にアウトライン情報を挿入します。


µVision4 User's Guide (Japanese): ［ペリフェラル］（Peripherals）メニュー

［ペリフェラル］（Peripherals）メニュー

［ペリフェラル］（Peripherals）メニューでは、オンチップペリフェラル設定を表示および変更するためのダイアログにアクセスできます。

このメニューの内容は、アプリケーションで選択した特定の CPU のペリフェラルを表示するようにカスタマイズされます。

通常、システム設定、割り込み、UART、I2C、タイマ/カウンタ、汎用 I/O、CAN、パルス幅モジュレータ、リアルタイムクロック、およびウォッチドッグタイマのダイアログを使用できます。

このメニューはデバッグモードでのみアクティブになり、次のようなダイアログを使用できます。

メニュー項目 | 説明
［割り込み］（Interrupts） | 割り込みコントローラ
［I/O ポート］（I/O Ports） | I/O ポート
［シリアル］（Serial） | シリアルポート
［タイマ］（Timer） | タイマ/カウンタ
［ウォッチドッグ］（Watchdog） | ウォッチドッグタイマ
［A/D コンバータ］（A/D Converter） | アナログからデジタルへのコンバータ
［D/A コンバータ］（D/A Converter） | デジタルからアナログへのコンバータ
［I²C コントローラ］（I²C Controller） | I²C コントローラ
［CAN コントローラ］（CAN Controller） | CAN コントローラ

注

  • µVision4 で提供されるその他の機能については、システムビューアを確認して下さい。


µVision4 User's Guide (Japanese): ［プロジェクト］（Project）メニューおよびコマンド

［プロジェクト］（Project）メニューおよびコマンド

［プロジェクト］（Project）メニューには、プロジェクトファイルを開く、保存する、閉じるためのコマンドがあります。旧バージョンの µVision にプロジェクトをエクスポートしたり、プロジェクトコンポーネントを管理したり、ターゲット、グループ、ファイルのオプションを設定したり、プロジェクトをビルドしたりするためのコマンドもあります。また、［マルチプロジェクトワークスペース］（Multi-Project Workspace）メニューでは、マルチプロジェクトを管理できます。

［プロジェクト］（Project）メニュー | ツールバー | ショートカット | 説明
［新しい µVision プロジェクト］（New µVision Project） |  |  | 新しいプロジェクトファイルを作成します。
［新しいマルチプロジェクトワークスペース］（New Multi-Project Workspace） |  |  | 新しいマルチプロジェクトファイルを作成します。
［プロジェクトを開く...］（Open Project...） |  |  | 既存のプロジェクトまたはマルチプロジェクトを開きます。現在のプロジェクトを保存して閉じます。
［プロジェクトを閉じる］（Close Project） |  |  | 現在のプロジェクトを保存して閉じます。
［エクスポート］（Export） |  |  | アクティブなプロジェクトまたは現在のマルチプロジェクトを µVision3 形式でエクスポートします。
［管理］（Manage） |  |  | プロジェクトまたはマルチプロジェクトのコンポーネントを管理します。
［ターゲット名のデバイスを選択...］（Select Device for Target name...） |  |  | ［デバイスデータベース］（Device Database）ダイアログを開いてデバイスを変更します。
［オブジェクトを削除］（Remove object） |  |  | ［プロジェクト］（Project）ウィンドウで選択したファイルまたはグループを削除します。
［［オブジェクト］のオプション］（Options for [object]） | ［ターゲットのオプション］（Options for Target）ボタン | Alt+F7 | ターゲット、グループ、またはファイルのツールオプションを変更します。
［ターゲットのクリーン］（Clean target） |  |  | プロジェクトターゲットの中間ファイルを削除します（以下を参照）。
 | ターゲットのドロップダウンリスト |  | 別のターゲットに切り替えます。現在のターゲットは［ビルド］（Build）ツールバーに表示されます。
［ターゲットのビルド］（Build target） | ［ターゲットのビルド］（Build Target）ボタン | F7 | 変更されたファイルを変換してアプリケーションをビルドします。
［すべてのターゲットファイルを再ビルド］（Rebuild all target files） | ［ターゲットの再ビルド］（Rebuild Target）ボタン |  | すべてのソースファイルを再変換してアプリケーションをビルドします。
［バッチビルド］（Batch Build） | ［バッチビルド］（Batch Build）ボタン |  | マルチプロジェクトワークスペースの選択済みプロジェクト/ターゲットに対してビルドコマンドを実行します。
［変換...］（Translate...） | ［変換］（Translate）ボタン | Ctrl+F7 | 現在のファイルを変換します。
［ビルドを停止］（Stop Build） | ［ビルドを停止］（Stop Build）ボタン |  | 現在のビルド処理を停止します。
1 .. 10 |  |  | 直近に使用されたプロジェクトファイルを開きます。

注

  • ［ターゲットのクリーン］（Clean target）の操作を行うと、次のプロジェクトファイルが削除されます。
    • オブジェクトフォルダ内の、実行可能ファイルの名前が付けられており、拡張子が *.、*.lnp、*.htm、*.elf、*.h86、*.hex、*.orc、*.sbr、*.cod、*.plg であるファイル。
    • リストフォルダ内の、実行可能ファイルの名前が付けられており、拡張子が *.map（C166 の場合は *.m66、C51 の場合は *.m51）であるファイル。
    • オブジェクトフォルダ内の各ソースファイルの場合、拡張子が *.obj、*.o、*._ii、*._ia、*.__i であるファイル。
    • リストフォルダ内の各ソースファイルの場合、拡張子が *.lst であるファイル。


µVision4 User's Guide (Japanese): テキストの選択

テキストの選択

µVision4 では、Shift キーを押しながら適切なカーソルキーを押すと、テキストを選択できます。例えば、Ctrl+右矢印キーを押すと、カーソルは次のワードに移動し、Shift+Ctrl+右矢印キーを押すと、現在のカーソル位置から次のワードの先頭までのテキストが選択されます。

また、マウスを使用してテキストを選択することもできます。

選択対象 | マウスの操作
任意の範囲のテキスト | テキスト上でドラッグします。
1 ワード | そのワードをダブルクリックします。
1 行のテキスト | ポインタを行の左側に移動し、ポインタが右矢印に変わったらクリックします。
複数行のテキスト | ポインタを行の左側に移動し、ポインタが右矢印に変わったら上下にドラッグします。
縦方向のテキストブロック | Alt キーを押したままドラッグします。


µVision4 User's Guide (Japanese): ステータスバー

ステータスバー

µVision 画面の下部に表示されるステータスバー（［表示］（View）メニューで有効にした場合）には、以下で説明するように、現在の µVision コマンドについてのメッセージと情報、さらにその他のステータス情報が表示されます。

デバッグチャネル領域にはアクティブなデバッグツールが表示され、組み込みの µVision シミュレータでプログラムをテストするときは Advanced GDI ドライバまたはシミュレーションの名前が表示されます。

実行時間領域には、シミュレーション中の時間情報が表示されます。タイミング解析のためのマークを設定するには、実行時間を右クリックします。

カーソル位置領域には、現在のエディタファイル内での位置が表示されます（L：行番号、C：列番号）。

エディタおよびキーボードのステータス情報領域には、次の項目が表示されます。

  • CAP：キーボードは現在、大文字ロック状態です。
  • NUM：キーボードは現在、数字ロック状態です。
  • SCRL：キーボードは現在、スクロールロック状態です。
  • OVR：入力時に文字を置き換える上書きエディタモードであることを示します。デフォルトでは、文字は入力時に挿入されます。Insert キーを押すと、上書きモードと標準モードが切り替わります。
  • R/W または R/O：現在のエディタファイルの属性。R/W は完全な読み出し/書き込みアクセス権です。R/O は読み出し専用アクセス権です。テキストの変更はできません。


µVision4 User's Guide (Japanese): ［SVCS］メニュー

［SVCS］メニュー

［SVCS］メニューでは、ソフトウェアバージョンコントロールシステム（SVCS）のコマンドの設定と追加を行うことができます。

メニュー項目 | 説明
［ソフトウェアバージョンコントロールを設定］（Configure Software Version Control） | バージョンコントロールシステムのコマンドを設定します。


µVision4 User's Guide (Japanese): ［テンプレート］（Templates）ウィンドウ

［テンプレート］（Templates）ウィンドウ

［テンプレート］（Template）ウィンドウ コードの記述を効率化するには、頻繁に使用する構造体のテンプレートを定義しておきます。

項目をダブルクリックすると、カーソル位置にテンプレートのテキストが挿入されます。

テンプレートを設定するには、コンテキストメニューを表示します。


µVision4 User's Guide (Japanese): ［ツール］（Tools）メニュー

［ツール］（Tools）メニュー

［ツール］（Tools）メニューでは、Gimpel PC-Lint やその他のカスタムプログラムを設定および実行できます。

メニュー項目 | 説明
［PC-Lint の設定］（Setup PC-Lint） | Gimpel Software の PC-Lint を設定します。
［Lint］ | 現在のエディタファイルで PC-Lint を実行します。
［すべての C ソースファイルに対して Lint を実行］（Lint all C Source Files） | プロジェクト内のすべての C ソースファイルに対して PC-Lint を実行します。
［ツールメニューをカスタマイズ...］（Customize Tools Menu...） | ユーザプログラムを［ツール］（Tools）メニューに追加します。「外部プログラムの実行」を参照して下さい。


µVision4 User's Guide (Japanese): ［トレース］（Trace）メニュー

［トレース］（Trace）メニュー

［表示］（View）→［トレース］（Trace）を選択すると、以前に実行した命令の履歴にアクセスできます。

［トレース］（Trace）メニュー | ツールバー | ショートカット | 説明
［命令トレースウィンドウ］（Instruction Trace Window） |  |  | ［命令トレース］（Instruction Trace）ウィンドウを表示または非表示にします。このウィンドウは、ARM7、ARM9、および Cortex-Mx ベースのマイクロコントローラについてアクティブにできます。
［逆アセンブリの記録を表示］（Show Records in Disassembly） |  | Ctrl+T | この機能はすべてのデバイスで機能します。
［トレース記録を有効化］（Enable Trace Recording） |  |  | 命令トレース記録を有効または無効にします。


µVision4 User's Guide (Japanese): ［表示］（View）メニュー

［表示］（View）メニュー

［表示］（View）メニューには、さまざまなウィンドウを表示または非表示にするためのコマンドがあります。ステータスバーも有効または無効にすることができます。デバッグモードで画面を定期的に更新するには、［ウィンドウを定期的に更新］（Periodic Window Update）オプションが便利です。このオプションを選択していない場合は、ツールボックスから画面を手動で更新できます。

［表示］（View）メニュー | ツールバー | ショートカット | 説明
［ステータスバー］（Status Bar） |  |  | ステータスバーを表示または非表示にします。
［ツールバー］（Toolbars） |  |  | 該当するツールバーを表示または非表示にするオプションがあります。［ファイル］（File）ツールバーはいつでも使用できますが、［ビルド］（Build）ツールバーと［デバッグ］（Debug）ツールバーはそれぞれのモードでのみ表示されます。
［プロジェクトウィンドウ］（Project Window） | プロジェクトウィンドウボタン |  | ［プロジェクト］（Project）ウィンドウを表示または非表示にします。
［ブックウィンドウ］（Books Window） | ブックウィンドウボタン |  | ［ブック］（Books）ウィンドウを表示または非表示にします。
［関数ウィンドウ］（Functions Window） | 関数ウィンドウボタン |  | ［関数］（Functions）ウィンドウを表示または非表示にします。
［テンプレートウィンドウ］（Templates Window） | テンプレートウィンドウ |  | ［テンプレート］（Templates）ウィンドウを表示または非表示にします。
［ソースブラウザウィンドウ］（Source Browser Window） | ソースブラウザボタン |  | ［ブラウザ］（Browser）ウィンドウを表示または非表示にします。
［ビルド出力ウィンドウ］（Build Output Window） | ビルド出力ウィンドウボタン |  | ［ビルド出力］（Build Output）ウィンドウを表示または非表示にします。
［ファイル内検索ウィンドウ］（Find in Files Window） | 検索出力ウィンドウボタン |  | ［ファイル内検索］（Find in Files）出力ウィンドウを表示または非表示にします。
［フル画面］（Full Screen） |  |  | エディタのフル画面モードを有効または無効にします。
その他のデバッグモードの項目
［コマンドウィンドウ］（Command Window） | コマンドウィンドウボタン |  | ［コマンド］（Command）ウィンドウを表示または非表示にします。
［逆アセンブリウィンドウ］（Disassembly Window） | 逆アセンブリボタン |  | ［逆アセンブリ］（Disassembly）ウィンドウを表示または非表示にします。
［シンボルウィンドウ］（Symbols Window） | シンボルウィンドウボタン |  | ［シンボル］（Symbols）ウィンドウを表示または非表示にします。
［レジスタウィンドウ］（Registers Window） | レジスタウィンドウボタン |  | ［レジスタ］（Registers）ウィンドウを表示または非表示にします。
［コールスタックウィンドウ］（Call Stack Window） | コールスタックボタン |  | ［コールスタック］（Call Stack）ウィンドウを表示または非表示にします。
［ウォッチウィンドウ］（Watch Window） | ウォッチボタン |  | サブメニューを開いて、［ウォッチ］（Watch）および［ローカル］（Locals）ウィンドウを表示または非表示にします。
［メモリウィンドウ］（Memory Window） | メモリウィンドウボタン |  | サブメニューを開いて、4 つの［メモリ］（Memory）ウィンドウにアクセスします。
［シリアルウィンドウ］（Serial Window） | シリアルウィンドウボタン |  | サブメニューを開いて、シリアルウィンドウ UART #1 ～ UART#4 およびデバッグ（printf）ビューアにアクセスします。
［解析ウィンドウ］（Analysis Windows） |  |  | ロジックアナライザ、パフォーマンスアナライザ、およびコードカバレッジにアクセスするサブメニューを開きます。
［トレース］（Trace） |  |  | 命令履歴ウィンドウにアクセスできるサブメニューを開きます。トレース記録はここから有効または無効にします。
［システムビューア］（System Viewer） |  |  | ペリフェラルウィンドウを表示または非表示にします。
［ツールボックスウィンドウ］（Toolbox Window） | ツールボックスボタン |  | ツールボックスを表示または非表示にします。
［ウィンドウを定期的に更新］（Periodic Window Update） |  |  | 有効にすると、µVision によってウィンドウの内容が定期的に更新されます。


µVision4 User's Guide (Japanese): ［ウィンドウ］（Window）メニュー

［ウィンドウ］（Window）メニュー

［ウィンドウ］（Window）メニューには、テキストエディタでさまざまなウィンドウを分割、選択、および閉じるためのコマンドがあります。

さらに、デバッグモードでは独自の画面レイアウトを定義して、定義した複数のレイアウト間を切り替えることができます。

［ウィンドウ］（Window）メニュー | ツールバー | ショートカット | 説明
［表示をデフォルトにリセット］（Reset View to Defaults） |  |  | ウィンドウのレイアウトをいつでもデフォルトの状態にリセットできます。
［分割］（Split） |  |  | アクティブなエディタタブを 2 つまたは 4 つのペインに分割します。
［すべて閉じる］（Close All） |  |  | すべてのエディタタブを閉じます。
［1-x］ |  |  | 選択したウィンドウをアクティブにします。開いているすべてのエディタファイルがここに表示されます。


µVision4 User's Guide (Japanese): ウィンドウレイアウトの概念

ウィンドウレイアウトの概念

µVision4 では、必要と好みに応じて作業環境を定義できますが、後述の説明や手順をわかりやすくするために、3 つの主要な画面領域が定義されています。

プロジェクトウィンドウ領域には、デフォルトで［プロジェクト］（Project）ウィンドウ、［関数］（Functions）ウィンドウ、［ブック］（Books）ウィンドウ、および［レジスタ］（Registers）ウィンドウが表示されます。

エディタウィンドウ領域内では、ソースコードの変更、パフォーマンスと解析情報の表示、および逆アセンブリコードの確認を行うことができます。

出力ウィンドウ領域には、デバッグ、メモリ、シンボル、コールスタック、ローカル変数、コマンド、参照情報、およびファイル内検索結果に関連する情報が表示されます。

注

  • 何らかの理由で特定のウィンドウが表示されず、そのウィンドウの表示/非表示を何回か試しても表示されない場合は、［ウィンドウ］（Window）→［表示をデフォルトにリセット］（Reset View to Defaults）メニューを使用し、デフォルトのレイアウトで µVision を起動して下さい。


µVision4 User's Guide (Japanese): ユーザインタフェース

ユーザインタフェース

µVision4 ユーザインタフェースには、メニュー、ツールバー、キーボードショートカット、ダイアログボックス、およびウィンドウが用意されており、組み込みプロジェクトのさまざまな側面を管理することができます。

  • メニューバーには、エディタ操作、プロジェクトのメンテナンス、開発ツールのオプション設定、プログラムのデバッグ、外部ツールの制御、ウィンドウの選択と操作、およびオンラインヘルプのコマンドがあります。
  • ツールバーボタンを使用すると、µVision4 コマンドをすぐに実行することができます。
  • 「ウィンドウレイアウトの概念」では、µVision4 のデフォルトの画面レイアウトについて簡単に説明しています。
  • 「ウィンドウのドッキング」では、ウィンドウの移動方法と、ドッキングヘルパコントロールを使用してウィンドウを配置する方法を説明しています。
  • ［ファイル］（File）メニューおよびコマンドには、ファイルを操作するためのコマンドの一覧があります。ライセンスマネージャとデバイスデータベースには、このメニューからアクセスします。
  • ［編集］（Edit）メニューおよびコマンドには、エディタの操作時にアクセスできるコマンドの一覧があります。ブックマーク間の移動、エディタの設定、構文ハイライトの設定、およびショートキー、キーワード、テンプレートの定義は、このメニューから行います。
  • ［表示］（View）メニューには、ステータスバー、ツールバー、およびウィンドウを表示または非表示にするためのコマンドの一覧があります。デバッグモードの場合は、このメニューからウィンドウを定期的に更新するよう設定できます。
  • ［プロジェクト］（Project）メニューおよびコマンドには、プロジェクトの制御に使用できるコマンドの一覧があります。
  • ［フラッシュ］（Flash）メニューには、フラッシュプログラミングに使用できるコマンドとオプションの一覧があります。
  • ［デバッグ］（Debug）メニューおよびコマンドには、ブレークポイント、シングルステップコマンド、実行プロファイリングの設定または削除などのアプリケーションのデバッグと、デバッグ関数エディタの呼び出しを行うためのコマンドの一覧があります。
  • ［ペリフェラル］（Peripherals）メニューには、現在シミュレーション中のペリフェラルの一覧があります。リストは CPU によって異なります。
  • ［ツール］（Tools）メニューでは、サードパーティ製のツールを µVision4 にリンクすることができます。このメニューは必要に応じてカスタマイズして下さい。
  • ［SVCS］メニューでは、ソフトウェアバージョンコントロールシステムにアクセスすることができます。このメニューはカスタマイズすることができます。
  • ［ウィンドウ］（Window）メニューには、ウィンドウを分割する、並べる、および閉じるためのコマンドの一覧があります。さらに、デバッグ復元ビューをこのメニューから保存することができます。
  • ［ヘルプ］（Help）メニューには、サポートに連絡したり、さまざまなヘルプシステムを開いたり、技術情報記事にアクセスしたりするためのコマンドの一覧があります。
  • ステータスバーには、エディタ、デバッガ、およびコマンドラインの情報が表示されます。
  • キーボードショートカットを使用すると、µVision4 のコマンドにすぐにアクセスすることができます。独自のショートキーを定義して下さい。
  • ［ブック］（Books）ウィンドウからは、プロジェクトに含まれるブックとマニュアルにアクセスすることができます。この機能を使用して関連するドキュメントを追加したり表示したりすることができます。
  • ［関数］（Functions）ウィンドウでは、ソースコードを参照することができます。コード内の既存のモジュールと関数について、全体的な概要を把握することができます。
  • ［テンプレート］（Templates）ウィンドウからは、テンプレートにアクセスすることができます。テンプレートの定義、変更、および使用は、このウィンドウから行って下さい。


µVision4 User's Guide (Japanese): コンフィギュレーションウィザード

コンフィギュレーションウィザード

µVision4 コンフィギュレーションウィザードを使用すると、アセンブラ、C/C++、またはデバッガの初期化ファイルのメニュー駆動型設定が可能になります。コンフィギュレーションウィザードでは、コンフィギュレーションファイルのコメントに組み込まれた制御項目が使用されます。

コンフィギュレーションウィザードの項目を格納したファイルには、最初のテキスト行 100 行内に次のテキストを含める必要があります。このテキストがコード内に現れると、エディタはそのファイルをコンフィギュレーションウィザードビューに開きます。

<<< Use Configuration Wizard in Context Menu >>>

コンフィギュレーションウィザードセクションの終わりは、次のテキストで示されます（オプション）。

<<< end of configuration section >>>

例

上のスクリーンショットは、下のサンプルから生成されたものです。

//*** <<< Use Configuration Wizard in Context Menu >>> ***

FUNC void Setup (void) {

// <h> External Bus Interface (EBI)

//   <e1.13> Enable Chip Select 0 (CSR0)
//     <o1.20..31> BA: Base Address <0x0-0xFFF00000:0x100000><#/0x100000>
//                 <i> Start Address for Chip Select Signal
//     <o1.7..8>   PAGES: Page Size      <0=> 1M Byte    <1=> 4M Bytes
//                                       <2=> 16M Bytes  <3=> 64M Bytes
//                 <i> Selects Active Bits in Base Address
//     <o1.0..1>   DBW: Data Bus Width   <1=> 16-bit     <2=> 8-bit
//     <o1.12>     BAT: Byte Access Type <0=> Byte-write
//                                       <1=> Byte-select
//     <e1.5>      WSE: Enable Wait State Generation
//       <o1.2..4>   NWS: Number of Standard Wait States <1-8><#-1>
//     </e>
//     <o1.9..11>  TDF: Data Float Output Time <0-7>
//                 <i> Number of Cycles Added after the Transfer
//   </e>
  _WDWORD(0xFFE00000, 0x010024A9);   // EBI_CSR0: Flash

//   <e1.13> Enable Chip Select 1 (CSR1)
//     <o1.20..31> BA: Base Address <0x0-0xFFF00000:0x100000><#/0x100000>
//                 <i> Start Address for Chip Select Signal
//     <o1.7..8>   PAGES: Page Size      <0=> 1M Byte    <1=> 4M Bytes
//                                       <2=> 16M Bytes  <3=> 64M Bytes
//                 <i> Selects Active Bits in Base Address
//     <o1.0..1>   DBW: Data Bus Width   <1=> 16-bit     <2=> 8-bit
//     <o1.12>     BAT: Byte Access Type <0=> Byte-write
//                                       <1=> Byte-select
//     <e1.5>      WSE: Enable Wait State Generation
//       <o1.2..4>   NWS: Number of Standard Wait States <1-8><#-1>
//     </e>
//     <o1.9..11>  TDF: Data Float Output Time <0-7>
//                 <i> Number of Cycles Added after the Transfer
//   </e>
  _WDWORD(0xFFE00004, 0x040034A5);   // EBI_CSR1: RAM

//   <q1.4>        DRP: Data Read Protocol
//                      <0=> Standard Read
//                      <1=> Early Read
  _WDWORD(0xFFE00024, 0x00000010);   // EBI_MCR:  Data Read Protocol

  _WDWORD(0xFFE00020, 0x00000001);   // EBI_RCR:  Remap Command

// </h>

// <o> Program Entry Point
  PC = 0x04000000;

}

// <s> Change ID
// <s1.30> Change Password String
#define ID  "My User ID"
char pw[] = "My Password";

//*** <<< end of configuration section >>>    ***

コンフィギュレーションメニュー

コンフィギュレーションメニューは、項目と修飾子によって制御されますコンフィギュレーションウィザードのメニューのさまざまな制御項目と修飾子について、以下で説明します。

項目 | テキスト | 説明
<h> | ○ | 見出し。続くオプションがグループにまとめられます。
<e>§ | ○ | 有効化付き見出し。続くオプション（チェックボックスから有効化可能）がグループにまとめられます。
<e.4>§ | ○ | 有効化付き見出し。特定のビットを修飾します（サンプルではビット 4）。
</h> または </e> | ○ | 見出しまたは有効化の終わりを示します。
<i> | ○ | 前の項目のツールヒントヘルプ
<q>§ | ○ | チェックボックスを表示するビット値のオプション
<o>§ | ○ | 選択または数値入力が可能なオプション
<o.4..5>§ | ○ | 数値でビットを修飾します（サンプルではビット 4 とビット 5）。
<o.4>§ | ○ | 数値でシングルビットを修飾します。
<s>§ | ○ | 文字列入力が可能なオプション
<s.10>§ | ○ | 文字列入力とサイズ制限（10 文字）が可能なオプション
修飾子 |  | 説明
<0-31> | × | オプションフィールドの値の範囲
<0-100:10> | × | ステップ 10 のオプションフィールドの値の範囲
<0x40-0x1000:0x10> | × | 16 進形式の値の範囲
<0=> | ○ | 選択する値とテキスト
<#+1> <#-1> <#*8> <#/3> | × | 数がフィールドにマージされる前に実行される値の修飾（加算、減算、乗算、除算）

注

  • デフォルトでは、コメントセクションに続く次の数または文字列が修飾されます。§でマークされた項目には、以下のように、スキップ値を続けることができます。
    <o1>
    このスキップ値は、多数の項目をスキップするために使用されています。上のサンプルでは、コメントに続く 2 番目の数が修飾されます。
  • 項目または修飾子の後にテキストを続けることができます。
  • 項目または修飾子内では、空白文字は無視されます。
  • 記述の前にデバイスデータシートから取得したシンボル名を使用することをお勧めします。


µVision4 User's Guide (Japanese): ファイル内検索

ファイル内検索

［編集］（Edit）→［ファイル内検索］（Find in Files）ダイアログでは、指定されたすべてのファイルを対象にテキスト検索を実行できます。

［ファイル内検索］（Find in Files）ダイアログ

検索結果は、出力ウィンドウの［ファイル内検索］（Find in Files）ページに表示されます。［ファイル内検索］（Find in Files）ページでダブルクリックすると、一致する文字列があるテキスト行にエディタが移動します。


µVision4 User's Guide (Japanese): ツールパラメータ用キーシーケンス

ツールパラメータ用キーシーケンス

µVision4 環境から外部ユーザプログラムに引数を渡すために、キーシーケンスを使用することができます。キーシーケンスは、［ツール］（Tools）メニュー、［SVCS］メニュー、および［ターゲットのオプション］（Options for Target）→［出力］（Output）ダイアログの［ユーザプログラムの実行］（Run User Program）引数に適用できます。

キーシーケンスとは、キーコードとファイルコードを 1 つずつ組み合わせたものです。使用できるキーコードとファイルコードを以下の表に示します。

キーコード | ファイルコードで選択されたパスを指定
% | 拡張子は付くがパス指定は付かないファイル名（PROJECT1.UVPROJ）
# | 完全なパス指定が付くファイル名（C:\MYPROJECT\PROJECT1.UVPROJ）
@ | 拡張子もパス指定も付かないファイル名（PROJECT1）
$ | ファイルコードで指定されたファイルのフォルダ名（C:\MYPROJECT）
! | 現在のフォルダに対する相対パス指定が付くファイル名（SRC\TEST.C）
~ † | 現在のカーソル位置の行番号（ファイルコード F にのみ有効）
^ † | 現在のカーソル位置の列番号（ファイルコード F にのみ有効）
  • † キーコード ~ と ^ は、ファイルコード F と組み合わせた場合のみ使用できます。
  • 一部のキーコードはエスケープする必要があります。ユーザプログラムのコマンドラインで $、#、%、@、~、または ^ を使用するには、同じシンボルを繰り返して $$、##、%%、@@、~~、または ^^ のようにエスケープします。
  • 例えば、「@@」と指定すると、ユーザプログラムのコマンドラインで単一の@と解釈されます。
ファイルコード | ユーザプログラムラインに挿入されるファイル名または引数を指定
$D | µVision4 デバイスデータベースから選択されるデバイス名
E | 現在フォーカスされているエディタファイル
F コンテキストに応じて、このファイルコードは以下を返します。
  • ［プロジェクト］（Project）ウィンドウで選択されたファイル
  • 現在アクティブなエディタファイル
  • ビルドプロセスで現在変換中のファイル
K | 開発ツールのルートフォルダ（C:\Keil）
L | リンカ出力ファイル。通常はデバッグ用の実行可能ファイル（PROJECT1）。
H | アプリケーションの HEX ファイル（PROJECT1.H86）
P | 現在のプロジェクトファイルの名前（PROJECT1.UVPROJ）
X | キーコード %、#、および @ 用。µVision4 の実行可能プログラムファイル（C:\Keil\UV4\UV4.EXE）。
$X | キーコード $ 用。MHz 単位の XTAL クロック周波数。［ターゲットのオプション］（Options for Target）→［ターゲット］（Target）→［XTAL］で選択します。
^X | キーコード ^ 用。kHz 単位の XTAL クロック周波数。［ターゲットのオプション］（Options for Target）→［ターゲット］（Target）→［XTAL］で選択します。

SVCS システムには、次のファイルコードが使用されます。
Q † | SVCS システムのコメントを保持するファイル名
R † | SVCS システムのリビジョン番号を保持する文字列
C † | SVCS システムのチェックポイント文字列を保持する文字列
I † | SVCS システムの［SVCS］→［バージョンコントロールの設定］（Configure Version Control）→［プロジェクト ID］（Project Ident）の文字列を保持する文字列
U † | ［SVCS］→［バージョンコントロールの設定］（Configure Version Control）→［ユーザ名］（User Name）で指定されたユーザ名
V † | ［SVCS］→［バージョンコントロールの設定］（Configure Version Control）→［データベース］（Database）で指定されたファイル名
  • † ファイルコード Q、R、C、U、および V は、キーコード % と組み合わせた場合のみ使用できます。


µVision4 User's Guide (Japanese): 外部プログラムの実行

外部プログラムの実行

外部プログラムは、コマンドプロンプトから呼び出すときと同様に、［ツール］（Tools）メニューから実行することができます。

［ツール］（Tools）→［ツールメニューのカスタマイズ］（Customize Tools Menu）ダイアログで、外部ユーザアプリケーションのパラメータを設定します。以下のダイアログの画像は、ツール設定のサンプルを示したものです。キーシーケンスを使用して、プロジェクト名、ファイル名、またはその他のプロジェクト固有パラメータを指定することができます。

外部プログラムのパラメータ設定により、以下に示すように［ツール］（Tools）メニューが拡張されます。

注

  • 設定オプションの詳細については、「［ツールメニューのカスタマイズ］（Customize Tools Menu）」を参照して下さい。


µVision4 User's Guide (Japanese): PC-Lint の実行

PC-Lint の実行

Gimpel Software が開発した PC-Lint は、アプリケーションのすべてのモジュールで C プログラムの構文とセマンティクスをチェックします。PC-Lint はバグおよび不整合の可能性のあるものにフラグを設定し、明確でない、誤りのある、あるいは無意味な C コードの位置を特定します。PC-Lint を使用すると、ターゲットアプリケーションのデバッグ作業の労力が大幅に軽減されます。

お使いの PC に PC-Lint をインストールし、［ツール］（Tools）→［PC-Lint の設定］（Setup PC Lint）ダイアログでパラメータを入力して下さい。PC-Lint の一般的なコンフィギュレーションのサンプルを以下に示します。

［ビルド］（Build）ページで正確な出力を得るには、KEIL\ARM\BIN フォルダにあるコンフィギュレーションファイルを使用する必要があります。

PC-Lint を設定したら、ソースコードをリントすることができます。［ツール］（Tools）→［リント］（Lint...）を選択すると、現在フォーカスのあるエディタファイルに対して PC-Lint が実行されます。［ツール］（Tools）→［C ソースファイルをすべてリント］（Lint All C Source Files）を選択すると、プロジェクトのすべての C ソースファイルに対して PC-Lint が実行されます。PC-Lint のメッセージは、［ビルド］（Build）→［出力］（Output）ウィンドウにリダイレクトされます。Lint メッセージ行の上でダブルクリックすると、エディタがソースファイルの位置に移動します。

PC-Lint の出力ウィンドウのサンプル

［ビルド］（Build）→［出力］（Output）ウィンドウで正確な出力を得るには、コンフィギュレーションファイルに次のオプション行が存在する必要があります。

-hsb_3 // 3 lines output, column below
-format="*** LINT: %(%f(%l) %)%t %n: %m" // Change message output format
-width(0,10) // Don't break lines

各ツールセットは、特定の PC-LINT コンフィギュレーションファイルを使用します。このファイルは、コンパイラバリアントに合わせて設定されています。これらのコンフィギュレーションファイルには、前述した行など、該当する PC-LINT コンフィギュレーションオプションがすべて含まれています。さまざまなコンパイラで必要な他の PC-Lint オプションも含まれているため、次のコンフィギュレーションファイルを使用することを強くお勧めします。

PC-LINT コンフィギュレーションファイル | 説明
..\ARM\BIN\CO-RV.LNT | ARM7、ARM9、および Cortex-Mx の各デバイス用 PC-LINT コンフィギュレーションファイル
..\C51\BIN\CO-KC51.LNT | Keil C51 および CX51 用 PC-LINT コンフィギュレーションファイル
..\C251\BIN\CO-KC251.LNT | Keil C251 用 PC-LINT コンフィギュレーションファイル
..\C166\BIN\CO-KC166.LNT | クラシック C16x デバイスの Keil C166 用 PC-LINT コンフィギュレーションファイル
..\C166\BIN\CO-KC166XC.LNT | XE16x デバイスおよび XC20x デバイスの Keil C166 用 PC-LINT コンフィギュレーションファイル


µVision4 User's Guide (Japanese): ソースブラウザ

ソースブラウザ

ソースブラウザには、プログラムシンボルについての情報が表示されます。［ターゲットのオプション］（Options for Target）→［出力］（Output）→［情報を参照］（Browse Information）オプションが有効な場合、コンパイラはビルド時にブラウザ情報をオブジェクトファイルに含めます。

［ビュー］（View）→［ソースブラウザ］（Source Browser）を使用して、［ブラウザ］（Browser）ウィンドウを開きます。

注

  • このウィンドウの検索コントロールは、選択されたデバイスに依存し、デバイスに応じて異なります。

［ブラウザ］（Browser）ウィンドウには、シンボル名、クラス、型、メモリ空間、および使用数が一覧表示されます。情報をソートするには、リスト項目をクリックします。次の表で説明するオプションを使用すると、ブラウザ情報をフィルタすることができます。

［ブラウザ］（Browser）ウィンドウのオプション | 説明
［シンボル］（Symbol） | シンボル名の一致に使用されるマスクを指定します。マスクは英数字とマスク文字で構成されます。# は数字（0 ～ 9）、$ は任意の 1 文字、* はゼロ個以上の文字と一致します。
［フィルタオン］（Filter on） | シンボルの定義型を選択します。
［ファイルの概要］（File Outline） | 情報を一覧表示するファイルを選択します。
［メモリ空間］（Memory Spaces） | データおよび関数シンボルのメモリ型を指定します。

シンボル名のマスクのサンプルをいくつか次の表に示します。

マスク | 一致するシンボル名...
* | どのシンボルにも一致します。シンボルブラウザのデフォルトのマスクです。
*#* | 任意の位置で 1 つの数字を含む名前。
_a$#* | 下線の次に文字 a、任意の 1 文字、１ つの数字が続き、ゼロ個以上の文字で終わる名前。例えば、_ab1、_a10value などです。
_*ABC | 下線の次にゼロ個以上の文字が続き、ABC で終わる名前。

［ブラウザ］（Browser）ウィンドウのローカルメニューは、マウスを右クリックすると開きます。ローカルメニューを使用すると、選択された参照上でエディタを開くことができます。関数については、呼び出しと呼び出し元のグラフも表示できます。［定義と参照］（Definitions and References）ビューには、次のシンボルにより追加情報が提供されます。

シンボル | 説明
[D] | 定義
[R] | 参照
[r] | 読み出しアクセス
[w] | 書き込みアクセス
[r/w] | 読み出し/書き込みアクセス
[&] | アドレス参照

エディタウィンドウ内でブラウザ情報を使用することができます。検索する項目を選択し、右クリックしてローカルメニューを開くか、次に示すキーボードショートカットを使用します。

ショートカット | 説明
F12 | 定義に移動します。カーソルがシンボル定義に置かれます。
Shift+F12 | 参照に移動します。カーソルがシンボル参照に置かれます。
Ctrl+Num+ | 次の参照または定義に移動します。
Ctrl+Num– | 前の参照または定義に移動します。


µVision4 User's Guide (Japanese): ［SVCS］メニューの使用

［SVCS］メニューの使用

µVision4 には、ソフトウェアバージョンコントロールシステム（SVCS）への設定可能なインタフェースがあります。Intersolv PVCS、Microsoft SourceSafe、MKS Source Integrity、Rational Clear Case などのための事前定義されたテンプレートファイルが用意されています。『Application Note 179: CVS Integration for µVision3』には、Concurrent Versions System（CVS）インタフェースのサンプルがあり、これは µVision4 にも使用することができます。

お使いのバージョンコントロールシステムのコマンドラインツールは、［SVCS］→［ソフトウェアバージョンコントロールの設定］（Configure Software Version Control）メニューから呼び出すことができます。［SVCS］メニューのコンフィギュレーションは、テンプレートファイルに保存されます。ダイアログオプションについては、以下で説明します。キーシーケンスを使用して、プロジェクト名、ファイル名、またはその他のプロジェクト固有パラメータを指定することができます。

ダイアログ項目 | 説明
［テンプレートファイル］（Template File） | ［SVCS］メニューのコンフィギュレーションファイルの名前。ソフトウェア開発チームのすべてのメンバが同じテンプレートファイルを使用することをお勧めします。このため、テンプレートファイルをファイルサーバにコピーする必要があります。
［ユーザ名］（User Name） | SVCS システムへのログインに使用されるユーザ名。ユーザ名は、引数行で %U キーシーケンスを使用して渡します。
［プロジェクト ID］（Project Ident） | SVCS データベースで定義されたプロジェクト ID 名。
［データベース］（Database） | SVCS システムが使用するデータベースのファイル名またはパス。データベース文字列は、引数行で %V キーシーケンスを使用して渡します。
［メニューコンテンツ］（Menu Content） | ［SVCS］メニューに表示されるテキスト。この行にはキーコードとファイルコードを含めることができます。ショートカットを定義するには、直前に & 文字を付けます。選択されたメニュー行で、以下に示すオプションを指定することができます。
［クエリ対象］（Query for）： ［コメント］（Comment） | 一時ファイルにコピーされるコメントを求めます。ファイルのパスは、SVCS コマンドの引数として %Q キーシーケンスを使用して渡すことができます。
［クエリ対象］（Query for）： ［リビジョン］（Revision） | %R キーシーケンスを使用して文字列として渡されるリビジョン情報を求めます。
［クエリ対象］（Query for）： ［チェックポイント］（Check Point） | %C キーシーケンスを使用して文字列として渡されるチェックポイント情報を求めます。
［最小化して実行］（Run Minimized） | ウィンドウを最小化してアプリケーションを実行するには、このオプションを有効にします。
［コマンド］（Command） | ［SVCS］メニュー項目をクリックすると呼び出されるプログラムファイル。
［引数］（Arguments） | SVCS プログラムファイルに渡されるコマンドライン引数。
［環境］（Environment） | SVCS プログラムの実行前に設定される環境変数。
［初期フォルダ］（Initial Folder） | 通常は、プロジェクトフォルダです。

SVCS アプリケーションプログラムのコマンドライン出力は、一時ファイルにコピーされます。SVCS コマンドの実行が完了すると、この一時ファイルの内容が出力ウィンドウの［ビルド］（Build）ページに表示されます。

µVision4 プロジェクトは、2 つの別個のファイルに保存されます。プロジェクト設定は *.UVPROJ に保存されます。このファイルを確認するには SVCS を使用する必要があります。アプリケーションを再ビルドするには、このファイルで十分です。*.OPT 内の µVision4 のローカルコンフィギュレーションには、ウィンドウの位置とデバッガ設定が含まれています。
一般的な［SVCS］メニュー項目を以下の表に示します。コンフィギュレーションによっては、追加項目や別の項目も使用できることがあります。インクルードファイルをドキュメントファイルとしてプロジェクトに追加しておくと、SVCS を使用してすばやくアクセスすることができます。

［SVCS］メニュー項目 | 説明
［エクスプローラ］（Explorer） | 対話式の SVCS エクスプローラを起動します。
［チェックイン］（Check In） | ファイルを SVCS データベースに保存し、ローカルコピーを読み出し専用にします。
［チェックアウト］（Check Out） | SVCS から実際のファイルバージョンを取得し、変更できるようにします。
［チェックアウトを元に戻す］（Undo Check Out） | ファイルのチェックアウト処理を元に戻します。
［最新バージョンを配置］（Put Current Version） | SVCS データベースにローカルファイルを保存しますが、ファイルの変更は依然として可能です。
［実際のバージョンを取得］（Get Actual Version） | ファイルの最新の読み出し専用コピーを SVCS から取得します。
［ファイルをプロジェクトに追加］（Add file to Project） | ファイルを SVCS プロジェクトに追加します。
［ファイルをプロジェクトに追加］（Add file to Project） | ファイルを SVCS プロジェクトに追加します。
［相違点、履歴］（Differences, History） | ファイルについての SVCS 情報を表示します。
［プロジェクトの作成］（Create Project） | ローカル µVision4 プロジェクトと同じ名前の SVCS プロジェクトを作成します。

注

  • プログラムパスとツールパラメータに合わせて、事前定義の *.SVCS ファイルをテキストエディタで変更することができます。

  • Microsoft SourceSafe では、新しい µVision4 プロジェクトを選択した後に［Set Current Project］（現在のプロジェクトを設定）コマンドを実行する必要があります。ワークステーションのログイン名を使用するには、コンフィギュレーションから SSUSER 環境変数を削除して下さい。

  • MKS Source Integrity は、サーバ上にプロジェクトデータベース、ワークステーション上にローカルサンドボックスを作成するよう事前定義されています。

  • Intersolv PVCS は、プロジェクトの作成とメンテナンスを行うよう事前定義されていません。


µVision4 User's Guide (Japanese): ユーティリティ

ユーティリティ

µVision4 には、ソフトウェアプロジェクトで役に立つ強力な機能が多数搭載されています。さらに、外部ツールへのインタフェースも用意されています。

搭載されているユーティリティ：

  • コンフィギュレーションウィザード：スタートアップファイルと初期化ファイルのメニュー駆動型設定が可能です。
  • ファイル内検索：指定されたすべてのファイルを対象にテキスト検索を実行できます。
  • ソースブラウザ：プログラムのプログラムシンボルについての情報を表示します。
  • ［フラッシュ］（Flash）メニュー：フラッシュプログラミングユーティリティを起動することができます。

外部ツールのインタフェース：

  • 外部プログラムの実行：［ツール］（Tools）メニューでカスタマイズできます。
  • ［SVCS］メニューの使用：［SVCS］メニューから使用できるソフトウェアバージョンコントロールシステム（Software Version Control System）のコンフィギュレーションについて説明しています。
  • ツールパラメータ用キーシーケンス：µVision4 環境から外部ユーザプログラムに引数を渡すことができます。
  • PC-Lint の実行：Gimpel PC-Lint（µVision4 のアドオン製品）から C プログラム全体の構文をチェックすることができます。


µVision4 User's Guide (Japanese): wwatch

wwatch

概要
void wwatch (
  unsigned long address);   /* address to watch */
説明

wwatch デバッガ関数は、指定アドレスが書き込まれるまでデバッガシグナル関数を遅延させます。この関数が遅延する間、ターゲットプログラムは実行を継続します。この関数は、外部ハードウェアをシミュレーションするシグナル関数を作成するときに便利です。

wwatch デバッガ関数は、ターゲットプログラムによってアドレスが実際に書き込まれた後に戻ります。これにより、シグナル関数は書き込まれた値を読み出し、必要に応じてメモリの内容を変更することができます。

注

  • アドレスが特殊機能レジスタ（SFR）またはペリフェラルレジスタを参照する場合、反復書き込みが発生することがあります。シグナル関数がこれを無視するようあらかじめ設定しておく必要があります。
  • wwatch デバッガ関数は、シグナル関数内部からのみ呼び出されます。wwatch 関数をシグナル関数外部から呼び出すことはできず、呼び出した場合、エラーメッセージが表示されます。
戻り値

なし。
関連項目

rwatch
例
signal void write_message (unsigned long adr) {
  float sec;
  unsigned char val;

  printf ("Track write accesses to address 0x%X\n", adr);

  while (1) {
    wwatch (adr);                        // wait for write access
    val = _RBYTE (adr);                  // read value
    sec = ((float) states) / clock;      // calculate time stamp
    printf ("Write 0x%X to 0x%X at %f Sec.\n", val, adr, sec);
  }
}

次の呼び出しは、上のシグナル関数を起動します。この関数は PORT1 にアクセスするたびに printf デバッガ関数を使用してメッセージを出力します。

> write_message (&PORT1);