Multi-ICE ® バージョン 2.1 ユーザガイド Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE ユーザガイド Copyright © 1998-2001 ARM Limited®. All rights reserved. リリース情報 本書の改訂履歴は以下の通りです。 改訂履歴 日付 発行 変更内容 1998 年 6 月 A 初版 1998 年 11 月 B 社内リリース 1998 年 12 月 C Multi-ICE リリース 1.3 用に改訂 2001 年 1 月 D Multi-ICE バージョン 2.0 用に改訂 2001 年 9 月 E Multi-ICE バージョン 2.1 用に改訂 著作権 ® または ™ のマークが付いた言葉およびロゴは、ARM 社が所有する登録商標または商標です。本書 に記載されている他の製品名は、各社の所有する商標です。 本書に記載されている情報の全部または一部、ならびに本書で紹介する製品は、著作権所有者の 文書による事前の許可を得ない限り、転用・複製することを禁じます。 本書に記載されている製品は、今後も継続的に開発・改良の対象となります。本書に含まれる製 品およびその利用方法についての情報は、ARM が利用者の利益のために提供するものです。しか しながら当社では、製品の市販性または利用の適切性を含め、暗示的・明示的に関係なく一切の 責任を負いません。 本書は、本製品の利用者をサポートすることだけを目的としています。本書に記載されている情 報の使用、情報の誤りまたは省略、あるいは本製品の誤使用によって発生したいかなる損失・損 傷についても、ARM 社は一切責任を負いません。 規格準拠情報 このセクションでは、電磁規格準拠(EMC)および他の重要情報を記載します。 連邦通信委員会(FCC)通達 本デバイスはテスト装置であり、よってFCC規則セクション15.103 (c)パート15は適用されません。 CE 規格準拠宣言 本装置は、ISE/IEC ガイド 22 および EN45014 に基づいて検査されており、以下の製品 EMC 規格 に準拠します。 ii Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 本書が付属する製品は、追加修正により EMC 指令 89/336/EEC の要件に準拠します。 守秘義務 本書は誰でも閲覧することができます。したがって配布に関する制限はありません。 製品ステータス 本書には最終情報(完成製品に関する情報)が記載されています。 ARM ホームページ http://www.arm.com ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. iii iv Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 目次 Multi-ICE ユーザガイド 序章 本書について ................................................................................................ xiv ご意見・ご質問............................................................................................. xix 第1章 はじめに 1.1 1.2 1.3 1.4 1.5 第2章 セットアップ 2.1 2.2 2.3 2.4 第3章 システム要件 ............................................................................................... 2-2 Multi-ICE ハードウェアの接続 ..................................................................... 2-5 非標準ハードウェアへの接続 ...................................................................... 2-9 ソフトウェアの起動................................................................................... 2-12 Multi-ICE サーバの使用 3.1 3.2 3.3 3.4 ARM DUI0048EJ-00 Multi-ICE について ....................................................................................... 1-2 入手方法および互換性 ................................................................................. 1-3 基本原理....................................................................................................... 1-4 Multi-ICE コンポーネントについて.............................................................. 1-7 新機能および旧バージョンからの変更点 .................................................. 1-11 Multi-ICE サーバのメニューについて .......................................................... 3-2 Multi-ICE サーバデバイスコンフィギュレーションファイル ...................... 3-9 サーバコンフィギュレーション................................................................. 3-14 マルチプロセッサとの Multi-ICE サーバの使用......................................... 3-25 Copyright © 1998-2001 ARM Limited. All rights reserved. v 目次 第4章 Multi-ICE を使用したデバッグ 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 第5章 トラブルシューティング 5.1 5.2 第6章 ARM1020T(Rev 0)プロセッサ................................................................ D-2 Intel 80200(XScale マイクロアーキテクチャ)プロセッサ...................... D-3 CP15 レジスタのマッピング E.1 E.2 E.3 vi Multi-ICE サーバ .......................................................................................... C-2 プロセッサ情報 D.1 D.2 付録 E Multi-ICE 内部ブレークポイント................................................................. B-2 デバッガによるコードのステッピングと実行............................................. B-4 ブレークポイント / ウォッチポイント割り当てアルゴリズム .................... B-5 コマンドライン構文 C.1 付録 D IR 長コンフィギュレーションファイル ...................................................... A-2 デバイスコンフィギュレーションファイル ................................................ A-3 ブレークポイント選択アルゴリズム B.1 B.2 B.3 付録 C システム設計ガイドラインについて ........................................................... 6-2 システム設計 ............................................................................................... 6-3 ASIC に関するガイドライン ....................................................................... 6-9 PCB に関するガイドライン ...................................................................... 6-11 JTAG シグナルの完全性と最大ケーブル長............................................... 6-14 EmbeddedICE インタフェース用ターゲットのコネクタとの互換性 ....... 6-16 サーバコンフィギュレーションファイルの構文 A.1 A.2 付録 B トラブルシューティング ............................................................................. 5-2 エラーメッセージ...................................................................................... 5-11 システム設計ガイドライン 6.1 6.2 6.3 6.4 6.5 6.6 付録 A ARM デバッガとの互換性 ........................................................................... 4-2 ADW、ADU あるいは AXD と Multi-ICE の接続 ......................................... 4-3 Multi-ICE DLL の構成 .................................................................................. 4-8 マルチプロセッサの構成およびデバッグ.................................................. 4-22 デバッガ内部変数...................................................................................... 4-30 事後分析デバッグ...................................................................................... 4-38 CP15 へのアクセス ................................................................................... 4-42 セミホスティング...................................................................................... 4-43 ウォッチポイントとブレークポイント ..................................................... 4-48 ROM 内のアプリケーションのデバッグ ................................................... 4-53 EmbeddedICE ロジックへの直接アクセス ............................................... 4-56 レジスタマッピングについて...................................................................... E-2 ARM710T プロセッサのレジスタ ............................................................... E-3 ARM720T プロセッサのレジスタ ............................................................... E-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 目次 E.4 E.5 E.6 E.7 E.8 E.9 E.10 付録 F ARM740T プロセッサのレジスタ ................................................................ E-5 ARM920T/ARM922T プロセッサのレジスタ............................................... E-6 ARM925T プロセッサのレジスタ .............................................................. E-10 ARM940T プロセッサのレジスタ .............................................................. E-14 ARM946E-S プロセッサのレジスタ .......................................................... E-17 ARM1020T プロセッサのレジスタ ............................................................ E-20 Intel 80200(XScale マイクロアーキテクチャ)プロセッサのレジスタ .. E-24 JTAG インタフェース接続 F.1 F.2 F.3 F.4 付録 G Multi-ICE JTAG インタフェース接続........................................................... F-2 Multi-ICE JTAG ポートタイミング特性 ....................................................... F-5 TCK 周波数 .................................................................................................. F-7 TCK 値 ....................................................................................................... F-11 ユーザ I/O 接続 G.1 Multi-ICE ユーザ I/O ピン接続..................................................................... G-2 用語集 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. vii 目次 viii Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 表一覧 Multi-ICE ユーザガイド 表 2-1 表 3-1 表 3-2 表 3-3 表 4-1 表 4-2 表 4-3 表 4-4 表 4-5 表 E-1 表 E-2 表 E-3 表 E-4 表 E-5 表 E-6 表 E-7 表 E-8 表 E-9 表 E-10 表 E-11 表 E-12 表 E-13 ARM DUI0048EJ-00 改訂履歴 ........................................................................................................................ ii Multi-ICE バージョン 2.1 の対応オペレーティングシステム .................................... 2-2 自動コンフィギュレーションに使用される TCK 周波数 .......................................... 3-3 スケールおよび乗数の値 ......................................................................................... 3-23 クロッキング速度のスケール値 .............................................................................. 3-23 ARM7 ファミリがサポートするデバッガ変数 ........................................................ 4-31 ARM9 ファミリがサポートするデバッガ変数 ........................................................ 4-32 ARM10 ファミリ /XScale マイクロアーキテクチャがサポートするデバッガ変数 4-32 キャッシュ選択タイプの値 ..................................................................................... 4-34 ブレークポイント ................................................................................................... 4-50 ARM710T プロセッサのレジスタ ............................................................................. E-3 ARM720T プロセッサのレジスタ ............................................................................. E-4 ARM740T プロセッサのレジスタ ............................................................................. E-5 ARM920T/ARM922T プロセッサのレジスタ ............................................................ E-6 ARM920T/ARM922T cp15 レジスタ 7 へのアクセス ............................................... E-7 ARM920T/ARM922T cp15 レジスタ 8 へのアクセス ............................................... E-8 ARM925T プロセッサのレジスタ ........................................................................... E-10 ARM925T cp15 レジスタ 7 へのアクセス ............................................................... E-11 ARM925T cp15 レジスタ 8 へのアクセス ............................................................... E-12 ARM925T cp15 レジスタ 7 へのアクセス ............................................................... E-13 ARM940T プロセッサのレジスタ ........................................................................... E-14 ARM925T cp15 レジスタ 7 へのアクセス ............................................................... E-15 ARM946E-S プロセッサのレジスタ ....................................................................... E-17 Copyright © 1998-2001 ARM Limited. All rights reserved. ix 表一覧 表 E-14 表 E-15 表 E-16 表 E-17 表 F-1 表 F-2 表 F-3 表 F-4 表 G-1 x ARM940T cp15 レジスタ 7 へのアクセス .............................................................. E-19 ARM1020T プロセッサのレジスタ ......................................................................... E-20 ARM1020T cp15 レジスタ 7 へのアクセス ............................................................ E-21 ARM1020T cp15 レジスタ 8 へのアクセス ............................................................ E-22 JTAG ピン出力 ......................................................................................................... F-3 Multi-ICE IEEE1149.1 タイミング要件 ..................................................................... F-5 TCK 周波数 ............................................................................................................... F-7 TCK 値 .................................................................................................................... F-11 ユーザ I/O 接続 ......................................................................................................... G-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 図一覧 Multi-ICE ユーザガイド 図 Pre-1 図 1-1 図 1-2 図 2-1 図 2-2 図 2-3 図 2-4 図 2-5 図 2-6 図 3-1 図 3-2 図 3-3 図 3-4 図 3-5 図 3-6 図 3-7 図 3-8 図 3-9 図 3-10 図 3-11 図 3-12 図 3-13 図 3-14 ARM DUI0048EJ-00 タイミングダイアグラムの規則に使用される記号 ........................................................ xvii Multi-ICE インタフェースユニット ................................................................................ 1-7 複数デバッガと複数ターゲットの接続 .......................................................................... 1-9 Multi-ICE 製品キット ...................................................................................................... 2-6 Multi-ICE インタフェースユニットのケーブル接続 ....................................................... 2-7 Multi-ICE の対電圧電流消費量 ..................................................................................... 2-11 Multi-ICE のスタートメニュー項目 .............................................................................. 2-12 未構成の Multi-ICE サーバウィンドウ .......................................................................... 2-14 ARM7TDMI 用に構成された Multi-ICE サーバウィンドウ ........................................... 2-15 Multi-ICE サーバのメニュー項目 .................................................................................... 3-2 [File] メニュー ................................................................................................................ 3-3 [View] メニュー .............................................................................................................. 3-5 [Run Control] メニュー ................................................................................................... 3-6 [Connection] メニュー .................................................................................................... 3-7 [Settings] メニュー ......................................................................................................... 3-7 [Help] メニュー ............................................................................................................... 3-8 ARM940T の自動コンフィギュレーション .................................................................. 3-10 TAP ドライバステータスダイアログ ........................................................................... 3-15 TAP コントローラデバイス ID レジスタのフォーマット ............................................ 3-16 [Start-up Options] ダイアログボックス ........................................................................ 3-16 [Port Settings] ダイアログボックス ............................................................................. 3-18 [User Output Bits] ダイアログボックス ........................................................................ 3-20 ユーザ入力ビットのステータス ................................................................................... 3-21 Copyright © 1998-2001 ARM Limited. All rights reserved. xi 図一覧 図 3-15 図 3-16 図 3-17 図 3-18 図 4-1 図 4-2 図 4-3 図 4-4 図 4-5 図 4-6 図 4-7 図 4-8 図 4-9 図 4-10 図 4-11 図 4-12 図 4-13 図 4-14 図 4-15 図 4-16 図 4-17 図 4-18 図 4-19 図 4-20 図 4-21 図 4-22 図 4-23 図 4-24 図 6-1 図 6-2 図 6-3 図 6-4 図 6-5 図 6-6 図 6-7 図 6-8 図 6-9 図 F-1 図 F-2 図 G-1 図 G-2 xii [JATG Settings] ダイアログボックス .......................................................................... 3-21 デバイス間のインタラクションの設定 ........................................................................ 3-28 カスケード動作 ............................................................................................................ 3-29 ポーリング周波数の設定 ............................................................................................. 3-30 AXD の [Options] メニュー ............................................................................................ 4-4 AXD の [Choose Target] ダイアログボックス ............................................................... 4-4 AXD を使用した Multi-ICE DLL の選択 .......................................................................... 4-5 ADW および ADU の [Options] メニュー ....................................................................... 4-5 Multi-ICE をアクティブにしたときの ADW コンフィギュレーションダイアログ ........ 4-6 ADW を使用した Multi-ICE DLL の選択 ......................................................................... 4-6 Multi-ICE コンフィギュレーションダイアログボックス ............................................... 4-8 「Welcome to Multi-ICE」ダイアログ ............................................................................. 4-9 [Driver Details] ダイアログボックス ............................................................................ 4-10 サーバ検索ダイアログボックス .................................................................................. 4-12 キャッシュ設定を表示した Multi-ICE の [Processor Settings] タブ ............................ 4-14 XScale 設定を表示した Multi-ICE の [Processor Settings] タブ .................................. 4-15 Multi-ICE の [Advanced] 設定タブ ............................................................................... 4-16 [Trace] コンフィギュレーションタブ .......................................................................... 4-18 [About] タブ ................................................................................................................. 4-19 チャネルビューワのコントロール ............................................................................... 4-20 ターゲットコンフィギュレーションを名前を付けて保存 ........................................... 4-23 コンフィギュレーションスクリプトを実行するよう AXD を設定 .............................. 4-26 マルチプロセッサターゲット用に構成された 3 つの AXD と Multi-ICE サーバ .......... 4-27 1 セクションのプログラムレイアウトに対する top_of_memory の位置付け ............. 4-36 EmbeddedICE ロジックレジスタを示したレジスタビュー ........................................ 4-57 [View] → [Registers] メニュー ..................................................................................... 4-58 [Display Co-processor Regs] ダイアログボックス ...................................................... 4-58 [Raw Co-processor 0] のビューに表示された EmbeddedICE ロジックレジスタ ....... 4-59 基本 JTAG ポートシンクロナイザ ................................................................................. 6-4 図 6-1 の基本 JTAG ポートシンクロナイザのタイミングダイアグラム ....................... 6-5 単一立上がりエッジ D タイプ ASIC 設計規則に基づく JTAG ポートシンクロナイザ . 6-5 図 6-3 の D タイプ JTAG シンクロナイザのタイミングダイアグラム .......................... 6-6 リセット回路ロジックの例 ............................................................................................ 6-8 電源モニタ IC を使用したリセット回路の例 ................................................................. 6-8 ASIC 内で直列にチェイン接続された TAP コントローラ ........................................... 6-10 典型的な PCB の接続 .................................................................................................. 6-11 ターゲットインタフェースの電圧レベル .................................................................... 6-12 上から見た JTAG ピン接続 ........................................................................................... F-2 Multi-ICE JTAG ポートタイミング特性 ......................................................................... F-5 ユーザ I/O ピン接続 ....................................................................................................... G-2 ユーザ入力シグナルの TTL レベルへの変換 ................................................................. G-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 序章 本章では、Multi-ICE バージョン 2.1 ユーザガイドについて概説します。ここでは本ユー ザガイドの構成と、Multi-ICE および ARM デバッガに関する他の参考書を紹介します。 本章は以下のセクションから構成されています。 • 本書について:P xiv • ARM DUI0048EJ-00 ご意見・ご質問:P xix Copyright © 1998-2001 ARM Limited. All rights reserved. xiii 序章 本書について 本書は、ARM マルチプロセッサ EmbeddedICE インタフェースユニット(Multi-ICE) バージョン 2.1 の解説書です。 対象読者 本書は、ARM ソフトウェア開発ツールキット(SDT)または ARM デベロッパスイート (ADS)の開発環境を使用して、Windows/Unix プラットフォーム上で Multi-ICE を使用 するユーザを対象にしています。したがって本書は、読者が ARM アーキテクチャに関 してある程度の知識を持つソフトウェアエンジニア、あるいは Multi-ICE と互換性のあ る製品を設計するハードウェアエンジニアであることを前提に書かれています。 本書の中には、JTAG テクノロジに関するある程度の知識が必要とされる部分もありま す。JATG に関するより詳しい情報については、米国電気電子学会(IEEE)発行の IEEE 規格 1149.1 を参照して下さい。詳細については IEEE のウェブサイト http://www.ieee.org/ を参照して下さい。 構成 本書は以下の章と付録から構成されています。 第1章 はじめに 第 1 章では以下について説明します。 第2章 • Multi-ICE 製品の提供物 • CPU 内部の EmbeddedICE ロジックの用途 • Multi-ICE バージョン 2.1 と 2.0 との違い、バージョン 2.0 とリリー ス 1.4 との違い、リリース 1.4 と 1.3 との違い セットアップ Multi-ICE のセットアップ方法について説明します。また、この章では ハードウェア / ソフトウェアのシステム要件、ハードウェアの接続方法、 Multi-ICE サーバの起動方法についても説明します。 第3章 Multi-ICE サーバの使用 サーバの構成を含め、Multi-ICE サーバの使用方法を説明します。またこ の章では、実行制御機能およびユーザ I/O 機能についても説明します。 xiv Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 序章 第4章 Multi-ICE を使用したデバッグ この章では以下の方法を説明します。 • Multi-ICE の ARM デバッガへの接続 • 内部変数を使用した Multi-ICE の動作の変更 • ウォッチポイントとブレークポイントの実装とその意味 • EmbeddedICE ロジックへの直接アクセス この章は、デバッガのユーザマニュアル(ADS デバッガガイド等)と合 わせてお読み下さい。 第5章 トラブルシューティング トラブルシューティングとエラーメッセージ一覧を記載しています。 第6章 システム設計ガイドライン Multi-ICE を使用してデバッグすることが可能な ARM ベースの ASIC お よび PCB の設計情報を記載しています。 この章では以下について説明しています。 付録 A • 推奨クロッキングおよびリセット回路ダイアグラム • TAP コントローラのチェインニング • 推奨物理コネクタタイプおよびピン出力 • ロジック電圧レベルの適用 • 供給電圧による消費電力量の変化 サーバコンフィギュレーションファイルの構文 サーバコンフィギュレーションファイルについて説明します。このファ イルは、Multi-ICE にターゲットデバイスグループを記述するものです。 付録 B ブレークポイント選択アルゴリズム Multi-ICE によるユーザ定義ブレークポイントおよび内部生成ブレーク ポイントのハードウェアへの割り当て方法を説明します。ターゲットメ モリ領域に特定のタイプのブレークポイントを割り当てる必要がある場 合は、この付録を必ずお読み下さい。 付録 C コマンドライン構文 Multi-ICE サーバのコマンドライン構文について説明します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. xv 序章 付録 D プロセッサ情報 ARM10 と XScale マイクロアーキテクチャプロセッサにおける Multi-ICE の動作の違いについて説明します。 付録 E CP15 レジスタのマッピング システム制御コプロセッサ(CP15)を実装した、ARM7/ARM9/ARM10 ベースのプロセッサと XScale プロセッサのレジスタマッピングについて 説明します。 付録 F JTAG インタフェース接続 JTAG ピン接続について説明します。 付録 G ユーザ I/O 接続 Multi-ICE で提供されている補助入出力接続について説明します。 表記規則 本書では以下の表記規則を用いています。 bold 文中の ARM プロセッサシグナル名、ならびにメニュー名等のインタ フェース要素を太字で記載しています。また、必要に応じて記述リスト 内の重要箇所にも太字を使用している場合があります。 italic 重要用語、相互参照、引用箇所を斜体で記載しています。 monospace コマンド、ファイル名、プログラム名、ソースコード等、キーボードか ら入力可能なテキストを示しています。 monospace コマンドまたはオプションに使用可能な略語を示しています。コマンド 名またはオプション名を全て入力する代わりに、下線部分の文字だけを 入力してこれらを指定することができます。 typewriter italic コマンドまたは関数への引数で、特定の値に置き換えることが可能なも のを示しています。 typewriter bold サンプルコード以外に使用される言語キーワードを示しています。 xvi Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 序章 タイミングダイアグラムに関する規則 本書にはいくつかのタイミングダイアグラムが記載されています。図 Pre-1 は、これら のダイアグラムに使用されているコンポーネントを示しています。これと違う意味で 使用している場合は、その都度明確に記しています。したがって特に明記されていな い限り、他の意味はありません。 図 Pre-1 タイミングダイアグラムの規則に使用される記号 影付きのバス / シグナル領域は未定義のため、これらのバスおよびシグナルは各時点に おける影付き領域内でどんな値でも取り得ます。実際のレベルは重要ではなく、通常 の動作には影響しません。 参考資料 このセクションでは、ARM および他社から発行されている本製品の関連出版物を紹介 します。 ARM の出版物 本書には、Multi-ICE バージョン 2.1 に固有の情報が記載されています。 以下は Multi-ICE 関連の出版物です。 ARM DUI0048EJ-00 • Multi-ICE リファレンスガイド(ARM DUI 0154) • ARM Multi-ICE インストールガイド(ARM DSI 0005) Copyright © 1998-2001 ARM Limited. All rights reserved. xvii 序章 • Multi-ICE の「Readme.txt」ファイルは Multi-ICE 配布用 CD に収録されており、 本製品と一緒にインストールされます。 • Multi-ICE の「proclist.txt」ファイルには、Multi-ICE がサポートするプロ セッサの一覧が含まれています。このファイルは製品と一緒にインストールされ ます。 Multi-ICE バージョン 2.1 を ARM デベロッパスイート(ADS)v1.1 と併用する場合は、 以下の出版物で ADS の他のコンポーネントに関する情報を参照して下さい。 • • • • • • • トレースデバッグツールユーザガイド(ARM DUI 0118) ADS Installation and License Management Guide(ARM DUI 0139) セットアップガイド(ARM DUI 0064) CodeWarrior IDE Guide(ARM DUI 0065) ADS デバッガガイド(ARM DUI 0066) ADS デベロッパガイド(ARM DUI 0056) ARM Application Library Programmers Guide(ARM DUI 0081) ARM デベロッパスイートに含まれる以下の出版物も参考にして下さい。 • ARM Architecture Reference Manual(ARM DDI 0100)。このマニュアルは、DynaText 形式のオンラインブックと PDF ファイルで提供されています。 また、ARM 製品に関連する特定の情報については、以下の出版物を参照して下さい。 • ARM Reference Peripheral Specification(ARM DDI 0062) • 使用しているハードウェアデバイスに関する ARM データシートまたはテクニカ ルリファレンスマニュアル 他の出版物 参考として以下の出版物を紹介します。これらの出版物は記載している発行元から入 手することができます。 • • xviii Intel® XScale™ コアデベロッパマニュアル、データシート、詳細情報。Ref 27341401-002. Intel Corp. 2000. IEEE 標準テストアクセスポートおよびバウンダリスキャンアーキテクチャ (IEEE Std.1149.1)。この規格は Multi-ICE が通信する JTAG ポートについて説明 しています。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 序章 ご意見・ご質問 ARM 社では、Multi-ICE および本書に関するご意見・ご質問をお待ちしています。 Multi-ICE に関するご意見 Multi-ICE に関するご意見・ご質問等がございましたら、製品購入元までご連絡下さい。 その際、迅速かつ適切な対応をさせて頂くために、以下の情報をご用意下さい。 • 使用している Multi-ICE のバージョン • • • • • ホストおよびターゲットハードウェアの型、オペレーティングシステム(OS)の 両方を含め、使用しているプラットフォームに関する詳しい情報 可能であれば、当該の問題が繰り返し発生する小さなスタンドアロンサンプル コード 期待していた動作と、実際に起こったことに関する詳しい説明 コマンドラインオプションを含め、使用した全てのコマンド 可能であれば、問題を例示するサンプル出力 本書に関するご意見 本書に関するご意見等がございましたら、電子メールに以下の情報をご記入の上、 [email protected] までお寄せ下さい。 • • • • 資料名 資料番号 ご意見のあるページ番号 ご意見についての詳しい説明 補足または向上すべき点についてのご提案もお待ちしています。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. xix 序章 xx Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第1章 はじめに 本章では、Multi-ICE バージョン 2.1 ならびにそのソフトウェアコンポーネントとドキュ メンテーションについて説明します。本章は以下のセクションから構成されています。 • Multi-ICE について:P. 1-2 • 入手方法および互換性:P. 1-3 基本原理:P. 1-4 Multi-ICE コンポーネントについて:P. 1-7 • 新機能および旧バージョンからの変更点:P. 1-11 • • ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-1 はじめに 1.1 Multi-ICE について Multi-ICE は、ARM が開発した EmbeddedICE ロジックデバッグソリューションです。 このソリューションは、EmbeddedICE ロジックを組込んだ ARM プロセッサコア上で動 作するソフトウェアのデバッグを可能にします。 Multi-ICE は、小さなインタフェースユニットを使用する JTAG(Joint Test Action Group) IEEE 規格 1149.1 に準拠したハードウェア上のポートと、ワークステーション上で動作 する ARM リモートデバッグインタフェース(RDT)を使用する Windows または UNIX デバッガとの間における、ソフトウェアとハードウェアのインタフェースの役割を果 たします。 Multi-ICE は、1 つ以上の ARM CPU または DSP プロセッサを組込んだシステムに使用 できます。また、ETM(Enbedded Trace Macrocel)もサポートしています。この情報を デコードするための外部ハードウェアおよびソフトウェアは、ARM 社から別途入手で きます。 Multi-ICE バージョン 2.1 の製品構成: • ワークステーションのパラレルポートを、デバッグ機能と EmbeddedICE 機能を 組込んだ ASIC の JTAG インタフェースと接続するインタフェースユニット • インタフェースユニットをパラレルポートに接続するケーブル(発泡材の下に納 められています。) • 20 ウェイリボンケーブル。Multi-ICE インタフェースユニットをターゲットに接 続します。 • ARM デバッガとインタフェースユニットとの通信を可能にする CD-ROM 収録ソ フトウェア。本ソフトウェアは以下のコンポーネントで構成されています。 • — Multi-ICE サーバ — デバッガと使用するためのダイナミックリンクライブラリ(DLL) — PDF/Dynatext 形式の文書 — TAPOp アプリケーションプログラムインタフェース(API)を使用したサ ンプルプログラム 以下の文書: — ユーザガイド(本書) — インストールガイド(CD ケース内) — 保証書およびエンドユーザライセンス ターゲット側で 14 ウェイ接続を使用する場合は、20 ウェイ -14 ウェイケーブルアダプ タ(部品番号 HPI-0027)を ARM から入手可能です。 1-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに 1.2 入手方法および互換性 Multi-ICE は、ARM 社および販売代理店から、以下を含むパッケージとして入手可能 です。 • JTAG ハードウェアインタフェース • 別途お求め頂いた外部デバッガに RDI を使用して接続するソフトウェアインタ フェースコンポーネント Multi-ICE は旧バージョンからアップグレードすることができます。詳細については、 販売代理店にお問い合わせ頂くか、ARM 社のウェブサイトをご覧下さい。 ADS バージョン 1.1 には、完全にサポートされた以下のデバッガが含まれています。 • ARM eXtended Debugger (AXD, both Windows and UNIX versions) • Windows 版 ARM デバッガ(ADW) • UNIX 版 ARM デバッガ(ADU) Multi-ICE には ARM 標準規格 RDI 1.5.1 インタフェースに準拠する他社製デバッガとの 互換性もあります。 OEM ライセンスについては、ARM 社に直接お問い合わせ下さい。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-3 はじめに 1.3 基本原理 EmbeddedICE® ロジックおよび ARM プロセッサデバッグ拡張により、Multi-ICE は ARM プロセッサ上で動作するソフトウェアをデバッグすることが可能です。このセクショ ンでは以下について説明します。 • ARM コアのデバッグ拡張:P. 1-4 • EmbeddedICE ロジック:P. 1-4 • ICE 拡張ユニット:P. 1-5 • Multi-ICE とデバッグモニタとの違い:P. 1-5 注 ご使用の ARM プロセッサが JTAG デバッギングをサポートしているかどうかについて は、付属のデータシートまたはテクニカルリファレンスマニュアルを参照して下さい。 1.3.1 ARM コアのデバッグ拡張 ARM コアのデバッグ拡張は、プロセッサコア周辺の複数のスキャンチェインと、デ バッグ時のコアの動作を制御するいくつかの補助シグナルで構成されています。以下 は、補助シグナルの中でも最も重要なシグナルです。 BREAKPT 外部ハードウェアはこのコアシグナルによってデバッグ時にプロセッサ の実行を停止させることができます。このシグナルが HIGH の場合、現 在のメモリアクセスにブレークポイントのタグが付けられ、この命令の 実行時にコアが停止します。 DBGRQ このコアシグナルは、現在の命令の完了時に CPU コアをデバッグ状態に させるレベル感知入力です。 DBGACK このコアシグナルは、外部デバイスにコアの現在の状態を特定させるた め、コアがデバッグ状態にあるときに HIGH となる CPU コアからの出力 です。 Multi-ICE は、EmbeddedICE ロジックの制御レジスタへの書き込み等、プロセッサコア のデバッグインタフェースを使用することによって、上記および他のシグナルを使用 します。詳細については、ARM データシートのデバッグインタフェースのセクション、 あるいは使用するコアのテクニカルリファレンスマニュアルを参照して下さい。 1.3.2 EmbeddedICE ロジック EmbeddedICE ロジックは、ARM コアの JTAG デバッグサポートを提供する統合オン チップロジックです。EmbeddedICE/RT は、EmbeddedICE に実行中のターゲット上でブ レークポイントを設定するといったリアルタイムデバッグをサポートする拡張機能を 組込んだものです。 1-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに EmbeddedICE ロジックは、JTAG インタフェースを使用して ARM コア上の TAP コン トローラ経由でアクセスされます。ターゲットに適した EmbeddedICE ロジックの設計 方法については、第 6 章「システム設計ガイドライン」を参照して下さい。 標準 EmbeddedICE ロジックは以下で構成されています。 • ウォッチポイントユニット:2 • 制御レジスタ:1 • ステータスレジスタ:1 • デバッグ通信チャネルリンクを組込んだレジスタセット:1 デバッグ通信チャネル(DCC)の詳細については、ADS デベロッパガイドを参照して 下さい。 一方または両方のウォッチポイントユニットをプログラムすることにより、ARM CPU コアの命令実行を停止させることができます。ウォッチポイントレジスタ内の値と、ア ドレスバス、データバスならびに選択されている制御シグナルの現在の値が一致する と、実行が停止します。 比較への影響を防ぐため、どのビットでもマスクすることができます。ウォッチポイ ントユニットは、ウォッチポイント(データアクセスの監視)またはブレークポイン ト(命令フェッチの監視)のどちらかになるように構成することができます。 詳細については、該当する ARM データシートの関連セクションまたはテクニカルリ ファレンスマニュアルを参照して下さい。 1.3.3 ICE 拡張ユニット ICE 拡張ユニット(IEU)は、プロセッサ製造時に EmbeddedICE ロジックに追加するこ とが可能なロジックブロックです。IEU を使用すれば、コンパレータおよび JTAG ス キャンチェインを追加してデバッガが使用できるハードウェアブレークポイントユ ニットの数を増やすことができます。IEU には様々なサイズがあり、最高 30 ユニット まで追加することができます。Multi-ICE は、IEU を組込んだプロセッサ上ではこのロ ジックを自動的にサポートします。 1.3.4 Multi-ICE とデバッグモニタとの違い ARM ファームウェアスイート(AFS)で提供されている Angel™ デバッグモニタ等のデ バッグモニタは、使用するアプリケーションと共にターゲットハードウェア上で動作 するアプリケーションであり、ターゲットリソース(メモリ、例外ベクタへのアクセ ス、時間、等)を割当てる必要があります。 EmbeddedICE デバッグアーキテクチャは、リソースをほとんど必要としません。ボー ド上のアプリケーションではなく、以下を使用して機能します。 • ARM DUI0048EJ-00 コア内部の追加デバッグハードウェア(ホストとターゲットとの通信を可能にす るパーツ) Copyright © 1998-2001 ARM Limited. All rights reserved. 1-5 はじめに • コアシグナルをホストコンピュータが利用できる形にバッファリング / 変換する 外部インタフェースユニット EmbeddedICE デバッグアーキテクチャは、他への影響を最小限に抑えたデバッグを可 能にします。 1-6 • デバッグ対象ターゲットには、デバッグをサポートする特別なハードウェアはほ とんど必要ありません。 • ほとんどの場合、デバッグ対象システムにおいてデバッグ用のメモリを確保して おく必要はなく、特別なソフトウェアをアプリケーションに組込む必要もありま せん。 • デバッグ対象システムの実行は、ブレークポイントユニットまたはウォッチポイ ントユニットがトリガされたとき、あるいは実行停止を要求したときにのみ停止 します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに 1.4 Multi-ICE コンポーネントについて このセクションでは、Multi-ICE 製品のコンポーネントと組立て方法を説明します。 • Multi-ICE インタフェースユニット:P. 1-7 • Multi-ICE パラレルポートドライバ:P. 1-7 • Multi-ICE サーバ:P. 1-8 • ポートマップアプリケーション:P. 1-9 Multi-ICE DLL を UNIX ワークステーション上で使用する場合は、TCP/IP ネットワーク を使用してサーバを実行する Windows ワークステーションにその UNIX ワークステー ションを接続する必要があります。 Multi-ICE サーバの詳細については、第 2 章「セットアップ」および第 3 章「Multi-ICE サーバの使用」を参照して下さい。Multi-ICE デバッガインタフェースの詳細について は、第 4 章「Multi-ICE を使用したデバッグ」を参照して下さい。 1.4.1 Multi-ICE インタフェースユニット Multi-ICE インタフェースユニットは、Windows ワークステーションによる複数の JTAG 対応デバイスの制御を可能にするハードウェアです。図 1-1 は、このユニットを示して います。このユニットの一端にはパラレルポートが、もう一端には 20 ピン JTAG コネ クタと外部電源入力があります。このインタフェースユニットをワークステーション のパラレルポートに接続する付属ケーブルが 1 本同梱されています。 ARM Parallel Port RealView ICE Mult i JTAG Interface Power Busy 図 1-1 Multi-ICE インタフェースユニット このインタフェースユニットによって、Windows ワークステーションは基本 JTAG 動 作を直接制御することができます。したがって、ソフトウェアをアップデートすれば、 新しいプロセッサの新デバッグ機能とサポートを追加することが可能です。 1.4.2 Multi-ICE パラレルポートドライバ Multi-ICE インタフェースユニットは標準パラレルポートを介して Windows ワークス テーションに接続しますが、Multi-ICE は標準パラレルポートドライバを使用しません。 その代わり、インタフェースユニットとの高速通信を可能にするために最適化された ドライバを使用します。このドライバは Multi-ICE のインストール時に自動的にインス トールされ、Multi-ICE サーバのオプションを使用して構成します。Windows NT 4.0 で ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-7 はじめに は、デバイスコントロールパネルに Multi-ICE パラレルポートドライバが表示されます。 サポートされている他の Windows バリアントでは、このドライバにアクセスする方法 はありません。 Multi-ICE サーバを実行する Windows ワークステーショ このパラレルポートドライバは、 ンでのみ必要となります。 1.4.3 Multi-ICE サーバ Multi-ICE サーバは、インタフェースユニットに接続した Windows ワークステーション 上で動作するアプリケーションです。Multi-ICE サーバは、ボード上の他のデバイスに 影響を及ぼすことなく、JTAG デバイスのそれぞれを個別に取り扱うことができます。 Multi-ICE サーバはこの機能を使用して、ボード上の各 JTAG デバイスへの仮想接続を 確立します。デバッグソフトウェアはこれらの仮想接続の 1 つに接続し、ボード上の 他のデバイスに認識されることなくデバッグ操作を実行することができます (P. 1-9 図 1-2)。 Multi-ICE サーバによる多重同時接続が可能なため、マルチプロセッサを搭載したター ゲットの場合には、複数のデバッガを実行し、それぞれをボード上の各プロセッサに 接続することができます。この方法でマルチプロセッサシステムも容易にデバッグす ることが可能です。また、Multi-ICE サーバはプロセッサの同期始動・停止を実行して、 プロセッサ間のインタラクションが発生するマルチプロセッサシステムをデバッグす ることができます。 1-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに 図 1-2 複数デバッガと複数ターゲットの接続 さらに、Multi-ICE サーバはネットワーク経由の接続をサポートしているため、デバッ グソフトウェアをサーバと異なるコンピュータ上で、あるいは必要に応じて複数の異 なるコンピュータ上で実行することもできます。 1.4.4 ポートマップアプリケーション ネットワーク接続をサポートするためには、Multi-ICE サーバを実行する Winndows ワー クステーション上でもう一つ別のアプリケーションを実行する必要があります。この アプリケーションはポートマッパと呼ばれ、ネットワークに接続した他のコンピュー タ上のソフトウェアに Multi-ICE サーバを検出させます。 通常、ポートマッパは Multi-ICE サーバによって自動的に起動されます。ポートマッパ は最小化されたコンソールウィンドウ内で動作し、ユーザによる操作を必要としませ ん。ネットワーク接続を必要としない場合、あるいは Windows ワークステーション上 で別のポートマッパを既に実行している場合には、ポートマッパを起動させないよう に Multi-ICE サーバの設定を変更することができます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-9 はじめに 1.4.5 The Multi-ICE DLL Multi-ICE DLL は、起動・停止・ダウンロード等のデバッガコマンドを、特定プロセッ サの JTAG 制御シーケンスに変換するソフトウェアモジュールです。このモジュール は、ユーザインタフェースを提供する AXD 等のデバッガと JTAG デバイスを制御する Multi-ICE サーバとの間で動作します。 Multi-ICE DLL は、Windows/UNIX のダイナミックリンクライブラリ形式で提供されま す。Multi-ICE バージョン 2.1 DLL は、様々な ARM コアのデバッグをサポートしてい ます(サポート対象コア一覧については、proclist.txt を参照して下さい)。また、 この DLL は RDI 1.5.1 インタフェースをサポートするすべてのグラフィカルデバッガに も使用できます。この中には ARM の最新グラフィカルデバッガ(AXD、ADW、ADU) の全てが含まれます。 1-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに 1.5 新機能および旧バージョンからの変更点 このセクションでは、本製品の新機能と旧バージョンからの変更点について説明します。 • Multi-ICE バージョン 2.1 の新機能:P. 1-11 • Multi-ICE バージョン 2.1 での変更点:P. 1-11 • Multi-ICE バージョン 2.0 の新機能:P. 1-12 • Multi-ICE バージョン 2.0 での変更点:P. 1-13 リリース 1.4 の新機能:P. 1-13 • 1.5.1 Multi-ICE バージョン 2.1 の新機能 Multi-ICE バージョン 2.1 には新たに以下の機能が追加されています。 新プロセッサのサポート ARM7 コア ARM7TDMI™(Rev 4)、ARM7TDMI-S™(Rev 4) ARM9 コア ARM922T™(Rev 0)、ARM925T、 ARM946E-S™(Rev 1) 新オペレーティングシステムのサポート Windows Me XScale プロセッサのサポートの向上 XScale プロセッサのサポート方法の変更により、以前のように接続時に プロセッサをリセットする必要がなくなりました。詳細については、 P. D-3「Intel 80200(XScale マイクロアーキテクチャ)プロセッサ」を参 照して下さい。 ハードウェアインタフェースの向上 Multi-ICE インタフェースユニットに外部電力電源オプションを組込ん で、十分な電力を供給できないシステムへの接続を可能にしました。 ホットプラグのサポート 新しい電力供給機能により、Multi-ICE インタフェースユニットを実行中 のターゲットボードに接続し、ターゲットを再起動せずに実行中のプロ グラムを分析できるようになりました。 1.5.2 Multi-ICE バージョン 2.1 での変更点 Multi-ICE バージョン 2.1 では以下が変更されています。 TAPOp API ARM DUI0048EJ-00 TAPOp API を若干修正し、影響を受ける関数の明確化・簡素化を図って います。 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-11 はじめに 1.5.3 Multi-ICE バージョン 2.0 の新機能 Multi-ICE バージョン 2.0 には新たに以下の機能が追加されています。 新プロセッサのサポート ARM7 コア ARM7TDMI-S(Rev 1 および Rev 2)、ARM7TDI-S™ (Rev 2)、Samsung KS32C50100 ARM9 コア ARM9E-S™(Rev 0) 、ARM920T™(Rev 1) 、 ARM946E-S(Rev 0)、ARM966E-S™(Rev 0) ARM10 コア ARM1020T™(Rev 0)、ARM10200T™(Rev 0) Intel XScale マイクロアーキテクチャ Intel 80200 新オペレーティングシステムのサポート Windows 2000、Solaris 7 ARM デベロッパスイートのサポート トレースデバッグツール(TDT)を含め ADS v1.1 を完全サポート。 ターゲットプロセッサの記述の向上 ユーザインタフェースを使用して、システムコプロセッサや浮動小数点 ユニット等の追加コンポーネントが組込まれたターゲットをより明確に 記述・表現できるようになり、Multi-ICE DLL にハードコーディングする 必要がなくなりました。 新しいコンフィギュレーションダイアログボックス コンフィギュレーションダイアログボックスがより使いやすくなり、 ARM TDT のサポートが追加されたため、ワークステーション上で実行 している Multi-ICE サーバを Windows Network Browser サービスを利用し て探索できるようになりました。 ETM( (Enbedded Trace Macrocel)と )と MultiTrace™ のサポート Multi-ICE は ETM へのアクセスをサポートしています。 MultiTrace は、特別なソフトウェアとハードウェアを組込んだ、ARM 実 行トレースソリューション(別製品として入手可能)です。 RealMonitor のサポート Multi-ICE は、ARM のリアルタイムデバッグソリューションである RealMonitor(RM)へのアクセスをサポートしています。 EmbeddedICE/RT のサポート Multi-ICE は、EmbeddedICE/RT 拡張を実装した ARM コア搭載プロセッ サをサポートしています。 1-12 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 はじめに 自動コンフィギュレーション拡張 自動コンフィギュレーションでコンフィギュレーションモードにおける ARM Integrator™ ボードをサポートしているため、これらのボード上の FPGA ファームウェアを修正し易くなりました。 1.5.4 Multi-ICE バージョン 2.0 での変更点 Multi-ICE バージョン 2.0 では以下が変更されています。 [Start Menu] Windows の [Start] → [Program] メニュー項目を [ARM Multi-ICE v2.0] に、デフォルトのインストール場所を Program Files\ARM に変更し、 他の ARM アプリケーションとの整合性を図っています。 ブレークポイントアルゴリズムの変更 ウォッチポイント / ブレークポイント割り当てアルゴリズムを修正し、 ハードウェアブレークポイントユニットへの実際の割り当てを変更して います。 詳細については、付録 B「ブレークポイント選択アルゴリズム」を参照 して下さい。 arm9_restart_code_address ARM デバッガ内部変数 arm9_restart_code_address を削除し、そ れと等価な機能を提供するインタフェースを Multi-ICE コンフィギュ レーションダイアログボックスに追加しています。 1.5.5 リリース 1.4 の新機能 リリース 1.4 には新たに以下の機能が追加されています。 新プロセッサのサポート ARM920T(Rev 0)、ARM940T™(Rev 1)リリース 1.4 へのソフトウェア アップデートで ARM966E-S(Rev 0)がサポートされます。 新オペレーティングシステムのサポート Windows 98 ARM デベロッパスイートのサポート RDI 1.5.1 のサポートを含め、ADS v1.0 を完全サポートしています。 要求ページメモリのサポートの向上 要求ページメモリによってアドレス空間内のシステムメモリの位置が分 かりにくいことがあるため、これを解決するいくつかの機能を追加して います。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 1-13 はじめに パフォーマンスの向上 特に ARM9 コアにおけるデバッグ性能が向上しています。 1-14 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第2章 セットアップ 本章では、Multi-ICE の部品の接続方法と Multi-ICE サーバソフトウェアの構成方法に ついて説明します。本章は以下のセクションから構成されています。 • システム要件:P. 2-2 • Multi-ICE ハードウェアの接続:P. 2-5 • 非標準ハードウェアへの接続:P. 2-9 ソフトウェアの起動:P. 2-12 • ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-1 セットアップ 2.1 システム要件 このセクションでは、Multi-ICE のハードウェア / ソフトウェア要件を説明します。 • • • 2.1.1 ホストソフトウェア要件:P. 2-2 ホストハードウェア要件:P. 2-3 ターゲットハードウェア要件:P. 2-4 ホストソフトウェア要件 Multi-ICE バージョン 2.1 には、独立した2 つのソフトウェアコンポーネントがあります。 • Multi-ICE サーバ:インタフェースユニットが接続されたコンピュータ上で実行 します。 • Multi-ICE DLL:別のコンピュータ上でも実行することができます。 表 2-1 は、上記の各コンポーネントに使用可能なオペレーティングシステムを示してい ます。 表 2-1 Multi-ICE バージョン 2.1 の対応オペレーティングシステム オペレーティングシステム Multi-ICE バージョン 2.1 Multi-ICE バージョン 2.1 DLL サーバ Windows 95 ○ ○ Windows 98 ○ ○ Windows Me ○ ○ Windows NT 4.0(Intel) ○ ○ Windows 2000 ○ ○ Solaris 2.6 または 7 × ○ HP-UX 10 × ○ ARM RDI 1.5.1 仕様に準拠する他社製デバッガと同様、ADS v1.0.1/v1.1 および SDT 2.51 に同梱されている全てのグラフィカルデバッガに Multi-ICE バージョン 2.1 DLL との互 換性があります。 例えば、UNIX下でAXD等のデバッガを実行する場合には、デバッガに接続し、Multi-ICE サーバソフトウェアを実行できる別のコンピュータを使用する必要があります。UNIX を実行するワークステーションには Multi-ICE サーバへの TCP/IP 接続をサポートする ネットワーキングソフトウェアをインストールし、デバッガインストールガイドに指 定された最低ソフトウェア要件を満たしている必要があります。 2-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ ネットワーキングソフトウェア サーバへのリモートアクセスを必要とする場合、使用するオペレーティングシステム に付属のネットワーキングソフトウェアをインストールしておく必要があります。イ ンストール時に TCP/IP スタックが存在しなければ、以下の警告文が表示されます。 TCP/IP protocol does not appear to have been set up on this computer. Setup will continue. Please install TCP/IP if you want to use Multi-ICE remote access features. (このコンピュータには TCP/IP プロトコルがセットアップされていません。セットアッ プを続行します。Multi-ICE リモートアクセス機能を使用する場合は TCP/IP をインス トールして下さい。) 自動ダイアルアップ Multi-ICE がネットワーク機能を使用するために、Mulit-ICE の使用時に自動ダイアル アップがトリガされる場合があります。以下のいずれかの方法で、不要なダイアルアッ プを防ぐことができます。 2.1.2 • Multi-ICE サーバの [Settings] メニューで [Allow Network Connections] をディセー ブルし、DLL のサーバ名に「This Computer」のみを使用する。 • 自動ダイアルアップをディセーブルする。 ホストハードウェア要件 このセクションでは、Multi-ICE DLL ならびに Windows における Multi-ICE サーバのイ ンストールと実行に必要な最低推奨ハードウェア要件を定義します。 ディスク容量 本ソフトウェアのフルインストールを実行する場合は、20MB のハードディスク空き容 量が必要です。 Windows で Multi-ICE ソフトウェアを使用するには Multi-ICE サーバと DLL を Windows で使用するには以下が必要です。 • 200MHz Pentium プロセッサ • システムメモリ : • — Windows 95/Windows 98/Windows Me:32MB RAM — Windows NT 4.0/Windows 2000:64MB RAM CD-ROM ドライブ(ネットワーク経由の使用も可) • • • ARM DUI0048EJ-00 VGA 以上の解像度に対応しているグラフィックデバイスで、OS がサポートして いるもの パラレルポート ネットワークカード(サーバへのリモートアクセスを必要とする場合) Copyright © 1998-2001 ARM Limited. All rights reserved. 2-3 セットアップ Solaris で Multi-ICE DLL を使用するには Solaris で Multi-ICE DLL を使用するには以下が必要です。 • Sun UltraSparc または互換マシン • 共有デスクトップ環境(CDE)を持つ Solaris 2.6 または Solaris 7 CD-ROM ドライブ(ネットワーク接続された CD-ROM ドライブでも可) 接続済みのネットワークインタフェース • • HP-UX で Multi-ICE DLL を使用するには HP-UX で Multi-ICE DLL を使用するには以下が必要です。 2.1.3 • HP PA-RISC v1.1 または v2.0 プロセッサ • HP-UX 10.20 • CD-ROM ドライブ(ネットワーク経由の使用も可) • 接続済みのネットワークインタフェース ターゲットハードウェア要件 Multi-ICE バージョン 2.1 は極めて柔軟に設計されていますが、以下のターゲットハー ドウェア要件があります。 • デバイスインタフェースが IEEE1149.1(JTAG)仕様に準拠していること。 • 電子シグナルがこのインタフェースに使用可能なものであり、かつ第 6 章「シス テム設計ガイドライン」で定められている電流・電圧の許容範囲内であること。 • 以前の 14 ウェイ EmbeddedICE コネクタあるいは別のケーブルを使用する場合を 「Multi-ICE JTAG インタフェー 除き、ターゲットボード上の IDC コネクタは P. F-2 ス接続」の記載通りに接続すること。 • 第 6 章「システム設計ガイドライン」に記載されている 1 項目以上の変更を行わ ない限り、ターゲットボードと Multi-ICE インタフェースユニット間のケーブル 長が 20cm 以下であること。 • デバッグロジックのサポートを組込んだ 1 つ以上の ARM アーキテクチャCPU が JTAG スキャンチェインにリンクしていること。この中には ARM7/ARM9 コアの ほとんどと、ARM1020T コアならびに Intel 80200(XScale マイクロアーキテク チャ)プロセッサが含まれます。StrongARM® プロセッサは対象外です。 CPU を含む対応プロセッサ一覧については、ソフトウェアと同時にインストールされ る proclist.txt ファイルを参照して下さい。 2-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ 2.2 Multi-ICE ハードウェアの接続 このセクションでは、Multi-ICE ハードウェアのセットアップ方法を説明します。 • • 2.2.1 必要なもの:P. 2-5 接続手順:P. 2-7 必要なもの ハードウェアのセットアップには、P. 2-6 図 2-1 が示す Multi-ICE 製品キットの以下の アイテムが必要です。 • パラレルケーブル:両端がオス D コネクタのラウンドケーブル • JTAG ケーブル:両端に角形 IDC ソケットがあるフラットリボンケーブル • Multi-ICE インタフェースユニット 使用するターゲットハードウェアのタイプによっては、以下のアイテムも必要です。 • 2.1mm のジャックプラグを使用して Multi-ICE インタフェースに 9V を供給する ように設定された電源アダプタ。このアダプタを使用すると、Multi-ICE による ターゲットの電力消費を防ぐことができます。 • JTAG インタフェースアダプタ(ARM 部品番号 HPI-0027B)。このアダプタは一 端が 14 ウェイ、もう一端が 20 ウェイのコネクタを装着した小型 PCB で、ARM から入手可能です。 上記の他に以下のアイテムも用意する必要があります。 ARM DUI0048EJ-00 • Multi-ICE サーバがサポートするオペレーティングシステムが動作し、パラレル ポートがある Windows ワークステーション(P. 2-2 表 2-1 参照) • Multi-ICEがサポートするJTAG対応デバイスが組込まれたターゲットハードウェ ア(P. 2-4「ターゲットハードウェア要件」参照) Copyright © 1998-2001 ARM Limited. All rights reserved. 2-5 セットアップ 図 2-1 Multi-ICE 製品キット 2-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ 2.2.2 接続手順 Multi-ICE インタフェースユニットをワークステーションとターゲットハードウェアに 接続します。P. 2-7 図 2-2 は接続例を示しています。 図 2-2 Multi-ICE インタフェースユニットのケーブル接続 ハードウェアの接続手順: 1. ARM DUI0048EJ-00 Multi-ICE ソフトウェアがホストマシンにインストールされていることを確認し ます。Multi-ICE ソフトウェアのインストールについては、Multi-ICE インストー ルガイドを参照して下さい。 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-7 セットアップ 2. パラレルケーブルの一端をホストコンピュータのパラレルポート(プリンタ、パ ラレル、IEEE 1284 等の文字または絵で表示されています)に、もう一端を Multi-ICE インタフェースユニットに接続します。 3. ターゲットが十分な電流を供給できない、あるいは既に実行中のターゲットに接 続するといった理由で、Multi-ICE ユニット専用電源を必要とする場合は、外部 電源を Multi-ICE インタフェースユニットに接続し、スイッチを入れます。 注 何が発生しているかを調べるなどの目的で、既に起動して動作しているハード ウェアに Multi-ICE を接続する場合は、P. 4-38「事後分析デバッグ」を参照して 下さい。 4. JTAG ケーブルの一端を Multi-ICE インタフェースユニットの JTAG コネクタに 接続し、もう一端を以下のどちらかに接続します。 • ターゲットボードの JTAG コネクタ:このコネクタが Multi-ICE 接続標準に 準拠する 20 ウェイ IDC コネクタである場合 • オプションの JTAG インタフェースアダプタの 20 ウェイコネクタ:ター ゲット JTAG コネクタが EmbeddedICE インタフェースユニット接続標準に 準拠した 14 ウェイ IDC コネクタである場合 ターゲットボードのコネクタの種類が上記と異なる場合は、P. 2-9「非標準ハー ドウェアへの接続」を参照して下さい。 このケーブルに使用される IDC ソケットは、小さな突起部をプラグのスロットに 合わせて差し込むようになっています。 5. 2-8 まだ電源を入れていない場合は、ターゲットボードの電源を入れます。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ 2.3 非標準ハードウェアへの接続 このセクションでは、ターゲットボードに ARM 型式 20 ウェイ IDC コネクタがない場 合の Multi-ICE ハードウェアのセットアップ方法について説明します。このセクション は以下のサブセクションで構成されています。 • PID/PIE/PIV ARM 開発ボードとの互換性:P. 2-9 • • 2.3.1 非標準コネクタ:P. 2-9 電源:P. 2-10 PID/PIE/PIV ARM 開発ボードとの互換性 Multi-ICE を初期の ARM 開発ボードと共に使用するには、以下の抵抗を短絡させる必 要があります。 ARM7TDMI® ヘッダ(HHI-0016B) ) ヘッダ( 抵抗 R1(修正ボックス番号 1 に X マークが付いていない場合のみ) ARM PIV7T ボード(HBI-0008B) ) ボード( レジスタ R12 ARM PIE7 ボード(HBI-0004B) ) ボード( 抵抗 R53 これらの修正によって、ターゲットボードと EmbeddedICE インタフェースユニットと の互換性がなくなることはありません。 注 起動によって完全にリセットされるとは限らないため、イメージをロード / 実行する前 に ARM 開発ボード(PID)を手動でリセットする必要があります。 2.3.2 非標準コネクタ Multi-ICE 製品には、ARM 標準規格に合わせて配線された 20 ウェイ IDC ソケットを使 用するケーブルが付属しています。このコネクタに適したプラグは、現行の全ての ARM 開発ボードといくつかの他社製ターゲットボードに装着されています。ARM 開発ボー ド(PID)の CPU ヘッダカード等、ARM 開発ターゲットの中には新型 20 ウェイソケッ トとのシグナル互換性がある 14 ウェイソケットを使用しているものがあります。これ らのボードへの接続を可能にするアダプタカードは ARM から入手可能です。 テキサスインスツルメンツ(TI)社の JTAG インタフェース定義を使用して製造された ボードは、ARM ボードと同じ 14 ウェイ IDC コネクタを使用していますが、使用して いるシグナルの割り当て方式が異なります。ターゲットがこのコネクタを使用してい る可能性がある場合(TI 製ボード等)は、Multi-ICE を使用する前にそのターゲット ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-9 セットアップ ボードのリファレンスマニュアルで確認して下さい。この種のボードに Multi-ICE を接 続するためのアダプタは、ARM から無償提供しています。部品番号 HPI 0068A でご請 求下さい。 使用するターゲットに ARM 型式コネクタがない、あるいはこれからターゲットボード を設計するという場合は、Multi-ICE Reference Guide を参照して下さい。 2.3.3 電源 Multi-ICE インタフェースユニットの電力は以下を介して供給されます。 • 20 ウェイ JTAG コネクタのピン 2(Vsupply) :ターゲットの電源から電流を取り ます。 • パワー入力ジャック ターゲットの電源電圧は最小 2V、最大 5V です。動作電流の近似値は以下の公式から 求めることができます。 800mA × 1.5V (targetV ) 2 P. 2-11 図 2-3 は、この関数グラフを示しています。Multi-ICE インタフェースユニット は起動時にグラフが示す値よりも多くの電流を消費するため、これに耐え得る電源を 使用する必要があります。一般的な目安として、3.3V で 440mA が測定されています。 ターゲットの電源電圧または電流の供給値が低すぎる場合は、外部パワー入力ジャッ クを使用する必要があります。 Multi-ICE インタフェースユニットへの電力は、一般電源変圧器(AC アダプタ)から のパワー入力ジャックを使用して供給することができます。この変圧器の定格電圧は、 最低 500mA で 9 ~ 12V とします。外部パワージャックを使用する場合は、1 ~ 5V の 論理電圧を使用するターゲットに接続することができます。 注 初期の EmbeddedICE インタフェースユニットの説明書には、ターゲット電源 Vdd から JTAG インタフェースパワーピンへの給電に直列抵抗が必要であると記載されていま す。Multi-ICE をターゲットからの電力供給で正常に動作させるには、この抵抗を取り 除く必要があります。 この抵抗を短絡させてもARM EmbeddedICEインタフェースユニットの動作には影響が なく、ARM 製ターゲットボードであればターゲットボードの動作に影響を及ぼすこと もありません。 2-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ 図 2-3 Multi-ICE の対電圧電流消費量 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-11 セットアップ 2.4 ソフトウェアの起動 このセクションでは、Multi-ICE ソフトウェアの実行方法を説明します。Multi-ICE ソフ トウェアに関する詳しい情報については、以下の章を参照して下さい。 • 第 3 章「Multi-ICE サーバの使用」 • 第 4 章「Multi-ICE を使用したデバッグ」 Multi-ICE ソフトウェアをまだインストールしていない場合は、先にインストールして 下さい。ソフトウェアのインストール方法については、Multi-ICE インストールガイド を参照して下さい。 このセクションは以下のサブセクションで構成されています。 • Microsoft Windows の Multi-ICE スタートプログラムメニュー:P. 2-12 • • 2.4.1 Multi-ICE サーバの起動:P. 2-13 他の Multi-ICE サーバスタートアップ機能:P. 2-15 Microsoft Windows の Multi-ICE スタートプログラムメニュー Multi-ICE を Microsoft Windows コンピュータにインストールすると、図 2-4 が示すメ ニュー項目が Windows プログラムメニューに表示されます。このメニュー項目の順序 は、図と異なる場合があります。 図 2-4 Multi-ICE のスタートメニュー項目 メニュー項目: [Help for Multi-ICE Server] Multi-ICE サーバのオンラインヘルプファイルを表示します。 [Help for Multi-ICE] Multi-ICE のオンラインヘルプファイルを表示します。 [Multi-ICE Server] Multi-ICE サーバを実行します。 [Portmap] 2-12 サーバへのネットワークアクセスに必要なポートマップアプリケーショ ンを実行します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ [Readme] Windows ノートパッドで本製品の Readme ファイルを表示します。この ファイルには、本書に記載されていない補足説明が収録されています。 [Setup for Multi-ICE] Multi-ICE セットアッププログラムを実行します。このプログラムによっ て、追加コンポーネントのインストール・修復またはワークステーショ ンからの Multi-ICE バージョン 2.1 ソフトウェアの削除を行うことができ ます。 元の場所から移動したファイルと、インストール後に Multi-ICE インス トールディレクトリに作成されたファイルは、インストールソフトウェ アの削除または修復を行っても削除されません。 [TAPOp Guide] インストールされた PDF ファイルビューアを使用して、Multi-ICE Version 2.1 TAPOp API Reference Guide を表示します。 注 この項目は、PDF 文書をインストールした場合にのみ使用できます。 [User Guide] インストールされた PDF ファイルビューアを使用して、Multi-ICE バー ジョン 2.1 ユーザガイドを表示します。このユーザガイドは、印刷物で も提供されています。 注 この項目は、PDF 文書をインストールした場合にのみ使用できます。 2.4.2 Multi-ICE サーバの起動 Multi-ICE サーバを起動するには: 1. 以下を確認します。 • Multi-ICE インタフェースユニットがワークステーションに接続されている。 • Multi-ICE インタフェースユニットがターゲット JTAG コネクタに接続され ている。 • ターゲットの電源が入っている。 • インタフェースユニット上の緑色の電源ライトが明るく点灯している。 詳細については、P. 2-5「Multi-ICE ハードウェアの接続」を参照して下さい。 2. [Start] → [Programs] → [ARM Multi-ICE v2.1]→ [Multi-ICE Server]を選択します。 ソフトウェアが Multi-ICE サーバウィンドウを表示します(図 2-5)。ホストコン ピュータのコンフィギュレーションによっては、portmap アプリケーションも 起動・最小化されます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-13 セットアップ 図 2-5 未構成の Multi-ICE サーバウィンドウ 2-14 3. Multi-ICE ハードウェアを検出できないことを知らせるダイアログが表示された 場合は、[OK] をクリックしてステップ 1 の項目を再確認して下さい。 4. サーバを構成します。通常、この構成は自動コンフィギュレーションコマンドを 使用して行うことができます。[File] → [Auto-configure] を選択し、サーバがター ゲットを調べ終わるまで待ちます。サーバによってデバイスが UNKNOWN である ことが通知された場合には、サーバを手動で構成する必要があります。手動によ るサーバの構成方法については、第 3 章「Multi-ICE サーバの使用」を参照して 下さい。自動コンフィギュレーションが機能すると、図 2-6 のような画面が表示 されます。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 セットアップ 図 2-6 ARM7TDMI 用に構成された Multi-ICE サーバウィンドウ 設定および自動設定コマンドの詳細については、P. 3-14「サーバコンフィギュ レーション」に記載されています。 2.4.3 他の Multi-ICE サーバスタートアップ機能 このセクションでは、Multi-ICE サーバの起動についてより詳しく説明します。 TCP/IP スタックがインストールされていないワークステーションで Multi-ICE サーバ を使用する Multi-ICEサーバの初回起動時にTCP/IPスタックがワークステーションにインストール されていなければ警告メッセージが表示され、[Settings] メニューの [Allow Network Connections] のチェックが自動的に外されます。 ネットワーク設定はセッション間で保持されます。 ハードウェアを使用しないで起動する Multi-ICE サーバソフトウェアはインタフェースユニットを接続しなくても起動するこ とができます。以下のメッセージを通知するダイアログボックスが表示されます。 Could not find the Multi-ICE hardware. Please check that the hardware is properly connected to the parallel port and powered up (Multi-ICE ハードウェアを検出できませんでした。Multi-ICE ハードウェアがパラレル ポートに正しく接続され、電源が入っていることを確認して下さい。) ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 2-15 セットアップ このメッセージは単なる警告です。Multi-ICE サーバを起動するには: 1. インタフェースユニットがパラレルポートとターゲットに接続されていて、電源 が入っていることを確認します。 2. [File] → [Load configuration] または [File] → [Auto-configure] を使用して、コン フィギュレーションをサーバにロードします。 ネットワーク接続なしで ネットワーク接続なしで使用する 接続なしで使用する 状況によっては、ネットワークソフトウェアがインストールされていないマシンや、 ネットワーク設定が正しくないマシンでは、Multi-ICE サーバが起動後にすぐ終了しま す。このため、[Allow Network Connections] の設定をオフにすることができません (P. 2-15「TCP/IP スタックがインストールされていないワークステーションで Multi-ICE サーバを使用する」、P. 3-7「[Settings] メニュー」参照)。 この問題が発生する場合には、Windows Explorer でスクリプト Non_tcp_ip.reg (Multi-ICE インストールディレクトリにあります)を開き 開き、 開き このスクリプトを実行して 下さい。これによりシステムレジストリ内で [Allow Network Connections] の設定がオ フにされ、サーバがネットワークを使用しようとするのを防ぐことができます。 サーバを最小化した状態で起動する サーバを最小化した状態で起動するためのショートカットアイコンを以下の手順で作 成することができます。 1. サーバアイコンを右クリックして [Create Shortcut] を選択します。 2. このショートカットを右クリックして [Properties] を選択します。 3. [Shortcut] タブをクリックします。 4. [Run] ドロップダウンリストから [Minimized] を選択します。 5. [OK] をクリックします。 このショートカットアイコンをダブルクリックすると、サーバを最小化した状態で起 動することができます。 2-16 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第3章 Multi-ICE サーバの使用 本章では Multi-ICE サーバの使用方法について説明します。本章は以下のセクションか ら構成されています。 • Multi-ICE サーバのメニューについて:P. 3-2 • Multi-ICE サーバデバイスコンフィギュレーションファイル:P. 3-9 • サーバコンフィギュレーション:P. 3-14 マルチプロセッサとの Multi-ICE サーバの使用:P. 3-25 • ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-1 Multi-ICE サーバの使用 3.1 Multi-ICE サーバのメニューについて このセクションでは、Multi-ICE サーバのメニュー項目について概説します。 • • • • • • • 3.1.1 メニュー構成:P. 3-2 [File] メニュー:P. 3-2 [View] メニュー:P. 3-5 [Run control] メニュー:P. 3-5 [Connection] メニュー:P. 3-6 [Settings] メニュー:P. 3-7 [Help] メニュー:P. 3-8 メニュー構成 図 3-1 はサブメニューとその項目を示しています。 図 3-1 Multi-ICE サーバのメニュー項目 3.1.2 [File] メニュー [File] メニューからは、Multi-ICE サーバの構成および TAPOp 要求のロギング制御を行 うことができます(P. 3-3 図 3-2 参照)。 3-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 図 3-2 [File] メニュー このメニューには以下の項目があります。 [Load Configuration] コンフィギュレーションファイルの名前とパスを入力するダイアログ ボックスを表示します。この項目は Multi-ICE の手動コンフィギュレー ションに使用します。詳細については、P. 3-13「IRlength.arm コンフィ ギュレーションファイル」を参照して下さい。 [Auto-Configure] JTAG スキャンチェインに接続されたデバイスを問い合わせ、検出内容 を含むコンフィギュレーションファイルを作成します。表 3-1 は、実際 に使用される周波数を示しています。 表 3-1 自動コンフィギュレーションに使用される TCK 周波数 メニュー項目 自動コンフィギュレーション 通常動作時の TCK 時の TCK 周波数 周波数 Auto-Configure 1MHz Auto-Configure at 20kHz 20kHz 10MHza 20kHz a. 2 つ以上の TAP を使用するターゲットの場合、あるいは適応クロッキン グが使用されない限り、より低い周波数を必要とすることが分かってい るデバイスの場合は 1MHz。 自動コンフィギュレーションについては P. 3-9「自動デバイスコンフィ ギュレーション」で説明しています。認識されないデバイスは UNKNOWN としてマークされますが、これらのデバイスは検索テーブルに追加する ことができます(P. 3-13「IRlength.arm コンフィギュレーションファイ ル」参照)。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-3 Multi-ICE サーバの使用 注 既知のプロセッサの自動コンフィギュレーションに失敗した(UNKNOWN と表示される)場合には、ハードウェアリセットボタンを使用してプロ セッサをリセットするか、または電源を入れ直して自動コンフィギュ レーションを再試行して下さい。 [Auto-Configure at 20kHz] この項目は [Auto-Configure] と同じですが、使用する TCK 周波数は 20kHz を超えません。実際に使用される周波数については、P. 3-3 表 3-1 を参照して下さい。この項目は、JTAG ケーブルまたはデバイスが高周 波数では信頼性の高い動作を保証できないとき、あるいはデバイスがス リープモードにあるとき(システムクロックが遅いためにデバイスが高 速 TCK に素早く反応できないとき)に使用すると便利です。 手動コンフィギュレーションを用いる場合は、コンフィギュレーション ファイルで別のタイミングパラメータを指定していない限り、表 3-1 の [Auto-Configure] に割り当てられた TCK 周波数が使用されます。 [Reset Target] ターゲットハードウェアをリセットします。このメニュー項目を選択す る代わりにツールバーの [Reset Target] ボタンをクリックしても効果は 同じです。 [Reset Target] のアクションを制御し、nSRST または nTRST、あるいは 両方のシグナルをアサートすることができます。(nSRST および nTRST の説明については用語集を参照して下さい。 )この操作は、[JTAG Settings] ダイアログボックス(P. 3-21「JTAG 設定ダイアログ」参照)から、ある いはコンフィギュレーションファイルの「 「Reset」 」セクションから行うこ とができます(P. 3-9「Multi-ICE サーバデバイスコンフィギュレーション ファイル」参照)。 また、ターゲットハードウェアはデバッガ内部変数 system_reset (P. 4-30「デバッガ内部変数」参照)を使用してリセットすることも可能 です。この方法では nSRST がアサートされますが、nTRST はアサート されません。 [Log] リモートプロシージャコールのロギングをオン / オフします。オンになっ ているとメニュー項目の隣にチェックマークが表示され、サーバが受信 したTAPOpプロトコル要求を記述したテキストがログファイルに書き込 まれます。 使用するファイル名は [Set Log File] から指定することができます。 [Set Log File...] ログファイルの名前とパスを入力するダイアログボックスを表示します。 [Recent File] 最も最近に使用した 8 つのコンフィギュレーションファイルのリストを 表示します。 [Exit] 3-4 Multi-ICE サーバを終了します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 3.1.3 [View] メニュー [View] メニューは、Multi-ICE サーバウィンドウの表示を制御します(図 3-3)。 図 3-3 [View] メニュー このメニューには以下の項目があります。 [Toolbar] [Toolbar] ツールバーのオン / オフを切り替えます。ツールバーが表示さ れているときは、このメニュー項目の隣にチェックマークが表示されま す。ツールバーを使用することによって、以下の機能に素早くアクセス することができます。 [File] → [Auto-Configure] サーバの自動コンフィギュレーションを試行します。 [File] → [Load Configuration] コンフィギュレーションファイルの名前の入力を促すダイアログを表示 します。 [File] → [Reset Target] nTRST または nSRST、あるいは両方を使用してターゲットをリセット します。 [Help] → [Help Topics] Multi-ICE のオンラインヘルプを表示します。 [Status Bar] ステータスバーのオン / オフを切り替えます。ステータスバーが表示さ れているときは、このメニュー項目の隣にチェックマークが表示されま す。ステータス ステータスバーには、Multi-ICE の現在の状態に関する情報が表示さ ステータス れます。 [RPC Calls] デバッグウィンドウのオン / オフを切り替えます。デバッグウィンドウ がアクティブのときは、このメニュー項目の隣にチェックマークが表示 され、デバッグウィンドウに全ての TAPOp 要求が表示されます。 [Clear Debug Window] デバッグウィンドウに表示されている全てのテキストをクリアします。 3.1.4 [Run control] メニュー [Run Control] メニューは、複数コアの同期停止・始動を制御します(図 3-4)。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-5 Multi-ICE サーバの使用 図 3-4 [Run Control] メニュー このメニューには以下の項目があります。 [Independent] 構成済みの全てのデバイスを単独で動作させます。このとき、デ バイス間のインタラクションは存在しません。 [All Run] ハードウェアが許す限り全てのデバイスをほぼ同時に始動させ ます。 [All Run/Stop] • 接続された全てのデバッガによってプロセッサの始動可能 が通知されたときに、構成済みの全てのデバイスを実行し ます。 • デバイスが 1 つでも停止すると、構成済みの全てのデバイ スを停止させます。 [Custom] [Set-up Custom] アクションを使用して指定した通りに、構成済み デバイスのインタラクションを開始させます。 [Set-up Custom...] デバイスのインタラクション方式を指定できるダイアログボッ クスを表示します。詳細については、P. 3-28「デバイス間のイン タラクションの設定」および P. 3-30「ポーリング周波数の設定」 を参照して下さい。 [Load Settings...] [Save Settings] を使用して前に保存した実行制御設定をロードす るためのダイアログボックスを表示します。 [Save Settings...] 実行制御設定をファイルに保存するためのダイアログボックス を表示します。 これらのメニュー項目については、P. 3-25「マルチプロセッサとの Multi-ICE サーバの 使用」のセクションを参照して下さい。 3.1.5 [Connection] メニュー [Connection] メニューには使用中の全ての TAP コントローラがリスト表示され、この メニューのオプションを使用して接続を個々に強制終了することができます(図 3-5)。 3-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 図 3-5 [Connection] メニュー 注意 クライアントとの接続を切断する他の試みが失敗した場合にのみ、接続を強制終了し て下さい。 サーバとアクティブなクライアントとの接続を強制終了すると、クライアントがク ラッシュしたり、他の望ましくない動作を引き起こす可能性があります。 3.1.6 [Settings] メニュー [Settings] メニューからは、サーバによる JTAG ポートの使用方法を構成することがで きます(図 3-6 参照)。 図 3-6 [Settings] メニュー このメニューには以下の項目があります。 [Port Settings....] 4 ビットアクセスを強制するオプションを含め、使用するパラレルポー トアドレスの選択に使用するダイアログボックスが表示されます。また、 現在のポートモードも表示されます。ポート設定の詳細については、 P. 3-18「パラレルポート設定ダイアログ」を参照して下さい。 [User Output Bits...] ユーザ出力ビットを制御するダイアログボックスを表示します。これら のビットは、ユーザ入出力(I/O)コネクタから使用できるロジックレベ ルの 2 つの出力に対応しています(P. 3-19「ユーザ出力ビットダイアロ グ」および Multi-ICE Reference Guide 参照)。これらのシグナルを使用し て、サーバ側でユーザロジックをリモート制御することができます。 [JTAG Settings...] クロックスピードの設定に使用するダイアログボックスを表示します。 クロックスピードは、[Set Periods Manually] オプションを使用するか、 またはコンフィギュレーションファイル内の情報をインクルードするこ とによって、プリセットされた周波数から選択することができます。詳 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-7 Multi-ICE サーバの使用 細については、P. 3-21「JTAG 設定ダイアログ」を参照して下さい。コン フィギュレーションファイルにタイミング情報が含まれている場合は、 その情報が自動的に選択されます。 [Start-up Options] 起動時におけるサーバの動作を指定できるダイアログボックスを表示し ます。詳細については、P. 3-16「スタートアップオプションダイアログ」 を参照して下さい。 3.1.7 [Help] メニュー [Help] メニューからはオンラインヘルプと Multi-ICE に関する情報にアクセスすること ができます(図 3-7)。 図 3-7 [Help] メニュー このメニューは以下の項目から構成されています。 [Help Topics] Multi-ICE のヘルプを起動します。 [About Multi-ICE Server...] Multi-ICE のソフトウェア / ハードウェアモジュールのバージョン情報を 表示します。製品購入元のテクニカルサポートにお問い合わせの際は、 この情報をお伝え下さい。 3-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 3.2 Multi-ICE サーバデバイスコンフィギュレーションファイル Multi-ICE サーバは、コンフィギュレーションファイルを使用してボード上のデバイス に関する情報を記憶します。Multi-ICE はコンフィギュレーションデータを使用して正 しいドライバを選択します。Multi-ICE には、サポートされている ARM デバイスのコ ンフィギュレーションデータが既に組込まれています。 以下のセクションでは、コンフィギュレーションファイルの作成方法について説明し ます。 • 自動デバイスコンフィギュレーション:P. 3-9 • 3.2.1 手動デバイスコンフィギュレーション:P. 3-12 自動デバイスコンフィギュレーション 使用する ASIC の全てのコアがサポートされている ARM コアである場合、Multi-ICE は そのASICをスキャンし、autoconfig.cfgファイルを作成することによってコンフィ ギュレーションファイルを作成することができます。この操作には [File] → [Auto-Configure]を使用するか、あるいは遅いデバイスであれば[File]→[Auto-Configure at 20KHz] を使用します。 コンフィギュレーションファイルには、各 TAP コントローラに関する情報が含まれて います。Multi-ICE 製品には、サポートされている全ての JTAG 対応 ARM デバイスに 関する必要情報が組込まれています。ARM デバイス以外のデバイスが使用されている 場合は、それらのデバイスをコンフィギュレーションダイアグラム内で特定できるよ うに Multi-ICE に対して宣言することができます。 コンフィギュレーションファイルを自動作成する場合は、[File] → [Auto-Configure] を 選択します。Multi-ICE は検出したデバイスの図形描画と、スキャンチェイン内におけ るそのデバイスの出現順序を表示します。P. 3-10 図 3-8 は、ARM940T の構成結果を示 しています。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-9 Multi-ICE サーバの使用 図 3-8 ARM940T の自動コンフィギュレーション 注 自動コンフィギュレーションによって、コンフィギュレーションを決定している間に いくつかのシステムリセットが発行されます。これを使用するターゲットに対して行 えない場合には、サーバを手動で構成する必要があります。詳細については、P. 3-13 「IRlength.arm コンフィギュレーションファイル」を参照して下さい。 図 3-8 は以下を示しています。 • このコンフィギュレーションの名前。この名前を使用してコンフィギュレーショ ンにラベルを付けることができます。 • スキャンチェイン内で検出されたデバイスの順序。矢印の付いた TDI(テスト データ入力)は、Multi-ICE インタフェースユニットから送られてくる JTAG デー タを表し、矢印の付いた TDO(テストデータ出力)は Multi-ICE インタフェース ユニットへ送られるデータを表します。 • 検出された各デバイスを示すボックス。以下がこのボックス内に表示されます。 — 3-10 以下のシンボルを使用する各コアの状態 [S] コアが停止していることを示します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 [R] [D] [X] コアが動作中であることを示します。 コアがダウンロード中であることを示します。 コアの状態が不明である(接続されているデバッガが存在しな い)ことを示します。 — デバイスの TAP 番号 — デバイスの総称名。この名前は irlength.arm に記載されている名前で あり、変更は不可能です。 Multi-ICE は自動生成されたコンフィギュレーションをファイルに書き込むと同時に、 すぐに使用できるようにこのファイルをロードします。このファイルは Multi-ICE プロ グラムディレクトリ(例:C:\Program Files\ARM\ARM Multi-ICE\)に autoconf.cfg の名前で書き込まれます。例 3-1 は、P. 3-10 図 3-8 のコンフィギュレー ションに対応するファイルを示しています。 例 3-1 ARM940T の自動コンフィギュレーションファイル ;Total IR length = 4 [TITLE] Auto-detected TAP Configuration [TAP 0] ARM940T ;IR_len=4, ID_code=1F0F0F0F [Timing] Adaptive=OFF このファイルには、コンフィギュレーション名、ARM940T を参照する TAP 0 のエント リ、ならびにタイミングデータが含まれています。セミコロン(;)から、行の終わり まではファイルへのコメントです。 このファイル内容の詳細については、付録 A「サーバコンフィギュレーションファイ ルの構文」を参照して下さい。 注 自動生成されたコンフィギュレーションをコピーして違う名前を付けることにより、 自分でコンフィギュレーションファイルを記述したり、Mutlti-ICE に自動コンフィギュ レーションの一部としてボードをリセットさせなくても、いくつもの異なるサーバコ ンフィギュレーションを作成することができます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-11 Multi-ICE サーバの使用 3.2.2 手動デバイスコンフィギュレーション サーバコンフィギュレーションファイルを作成し、それを Multi-ICE サーバにロードす ることによって、Multi-ICE サーバを手動で構成することができます。コンフィギュレー ションファイルの構造および内容については、P. A-3「デバイスコンフィギュレーショ ンファイル」を参照して下さい。コンフィギュレーションファイルを作成するには: 1. proclist.txt をチェックして、構成するデバイスが Multi-ICE にサポートされ ているかどうかを確認します。 • デバイスタイプがサポートされていない場合は、Multi-ICE にそのデバイス のスキャンチェイン選択レジスタの長さを伝えるデバイスエントリを作成 することによって、そのデバイスを指定することができます(P. 3-13「非 サポートデバイスの指定」参照)。 • デバイスタイプがサポートされていれば、IRlength.arm ファイル内のデ バイスエントリの名前を記述します。このファイルの詳細については、 P. 3-13「IRlength.arm コンフィギュレーションファイル」を参照して下さい。 2. テキストファイルエディタを開き、ファイル拡張子 .cfg の付いた新規ファイル を作成します。 3. このテキストファイルに、少なくとも以下に関するエントリを入力します。 • TITLE セクション • 最初のデバイス名(IRlength.arm に記述されているもの)を含む TAP 0 セクション 構成するデバイスによっては、このテキストファイルに他のセクションも記述し なければならない場合があります。詳細については、P. A-3「デバイスコンフィ ギュレーションファイル」を参照して下さい。 4. このファイルを保存します。 5. Multi-ICE サーバで、[File] → [Load Configuration...] をクリックします。 6. 作成したコンフィギュレーションファイルを指定し、[Open] をクリックします。 7. このコンフィギュレーションに指定したデバイスを認識するように Multi-ICE サーバが構成されます。 注 手動コンフィギュレーションをロードするとき、Multi-ICE サーバは構成された デバイスが実スキャンチェインと一致しているかどうかをチェックしません。こ のチェックはユーザ自身が行う必要があります。 3-12 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 非サポートデバイスの指定 1 つの UNKNOWN デバイスを指定するには: 1. 2. その未知のデバイス内の TAP コントローラ命令レジスタ(IR)の長さを検出す る必要があります。この長さは以下の方法で検出することができます。 a. ターゲットの自動コンフィギュレーションを実行する。 b. Multi-ICE サーバウィンドウ内の UNKNOWN デバイスボックスをダブルク リックする。これによって IR の長さを示すダイアログボックスが表示され ます。 USERDRVn.TXT(n は未知のデバイスの IR 長)という名前のテキストファイル を Multi-ICE インストールディレクトリ内に作成します。このファイルには、未 知のデバイスの名前が含まれている必要があります。 例えば、IR 長が 4 ビットの DSP に対する TAP コントローラを組込んだターゲットを 指定するには、DSP という文字を含む USERDRV4.TXT ファイルを作成します。 注 Multi-ICE サーバは IR 長が同じ複数のデバイスを区別することができないため、これら のデバイスを指定することはできません。 IRlength.arm コンフィギュレーションファイル Multi-ICE サーバは、JTAG チェイン内で検出した各 IR レジスタの長さを加算して、ス キャンチェインの長さを計算します。この情報は、IRlength.arm という名前の付い たファイルに保持されています。このファイルは、DSP 等の使用する他のデバイスに 関する情報を保存するように編集することができます。このファイルは、Multi-ICE イ ンストールディレクトリに保存されます。例 3-2 は、IRlength.arm ファイルからの 抜粋を示しています。 例 3-2 irlength.arm コンフィギュレーションファイルからの抜粋 ;ARM7 series cores ARM7TDMI=4 ARM7TDMI-S=4 ARM740T=4 ;ARM9 series cores ARM9TDMI=4 ARM920T=4 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-13 Multi-ICE サーバの使用 3.3 サーバコンフィギュレーション このセクションでは、Multi-ICE サーバプログラムのコンフィギュレーションについて さらに詳しく説明します。このセクションは以下のサブセクションで構成されています。 • チップドライバ設定ダイアログ:P. 3-14 • • • • • 3.3.1 スタートアップオプションダイアログ:P. 3-16 パラレルポート設定ダイアログ:P. 3-18 ユーザ出力ビットダイアログ:P. 3-19 ユーザ入力ビット:P. 3-21 JTAG 設定ダイアログ:P. 3-21 チップドライバ設定ダイアログ P. 3-10 図 3-8 が示すコアの四角枠内をダブルクリックすると、Multi-ICE サーバは接続 しているデバイスの詳細情報を表示します。このデバイス情報は、デバイス TAP コン トローラ設定を読み出し、サーバに組込まれた標準テーブルに基づいてこれらを解釈 することによって取得されます。P. 3-15 図 3-9 は、この詳細情報が表示されるダイア ログボックスを示しています。 このダイアログボックスの一番上にある [List of Drivers] には、特定の TAP コントロー ラに適用可能な Multi-ICE ドライバの名前が表示されます。このリストには、正の IR 長を持つメインドライバ(P. 3-15 図 3-9 では ARM940T)が必ず表示されます。また、 irlength.arm ファイル内で宣言されている IR 長が 0 のエイリアスドライバが表示さ れる場合もあります。この例としては、ETM を搭載した ARM920T が挙げられます。 このダイアログボックスの [Driver Details] 領域に表示される情報は接続ごとに変更さ れ、また、[List of Drivers] に表示されるデバイスごとにも異なります。 3-14 [Connected To] 接続に割り当てられた名前を示します。 [At] 接続が確立された時間を示します。 [connectId] 接続に割り当てられた接続番号です。RPC ログファイルでも見る ことができます。 [Vers. Reqd] 接続確立時にクライアントが要求したサーバプロトコルのバー ジョン番号を示します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 図 3-9 TAP ドライバステータスダイアログ デバイス本体に関する情報は、このダイアログボックスの [Device Details] 領域に表示 されます。[List of Drivers] で別のドライバを選択しても、この領域に表示される情報 は使用するドライバではなくデバイスに関連付けられているため、[Device Name] 以外 の情報は変更されません。 このダイアログボックスは以下の項目で構成されています。 [IR Length] JTAG TAP コントローラの主要要素である命令レジスタのビット 長を示します。 [Device Name] デバイスに付けられた名前を示します。 [Device No.] デバイス製造者によって割り当てられた番号を示します。 [Version No.] チップのバージョン番号を示します。 [Manufacturer] 製造者番号をテキストで示します。 [Man No.] JTAG 製造者コードを示します。 デバイス、バージョン、製造者の各番号は、TAP コントローラの ID レジスタから読み 出されます。このレジスタ内の値は、P. 3-16 図 3-10 が示すフォーマットに準拠します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-15 Multi-ICE サーバの使用 図 3-10 TAP コントローラデバイス ID レジスタのフォーマット 注 デバイス識別子に関するIEEE 1149.1仕様に従い、[Device No.]フィールドでは値0xF0F0 が、[Man No.] フィールドでは値 0x787 がそれぞれ無効となります。 ARM はシリコン製造者にロジックを提供する際に、これらの値をデバイスロジックに 組込んで製造者またはデバイス固有のコードに上書きされるようにしています。 ARM で設定したデフォルト値が上書きされていない場合、Multi-ICE DLL は製造者と してストリング UNKNOWN (Generic ARM) を使用します。デバイス名と部品番号は、 可能な限りデバイスの特性から決定されます。それが不可能なデバイスについては自 動コンフィギュレーションが行われないため、手動で構成する必要があります。特定 可能であれば、Multi-ICE は実際の製造者番号とストリングも表示します。 3.3.2 スタートアップオプションダイアログ このセクションでは、[Start-up Options] ダイアログボックス(図 3-11)の各部について 説明します。 図 3-11 [Start-up Options] ダイアログボックス 3-16 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 このダイアログボックスは、[Settings] → [Start-up Options...] メニューからアクセス可 能であり、2 つのグループに分割されています。 • • ネットワーク設定 スタートアップコンフィギュレーション [Network Settings] 項目では、Multi-ICE サーバのネットワーク機能をイネーブルまたは ディセーブルすることができます。他の設定は、初期の JTAG デバイスコンフィギュ レーションを制御します。 このダイアログボックスは以下の項目で構成されています。 [Allow Network Connections] この項目を選択した場合、Multi-ICE サーバはクライアントに Sun RPC プ ロトコルを使用したネットワーク経由でリモート接続させることができ ます。これを可能にするには、両方のワークステーションに TCP/IP ス タックをセットアップしておく必要があります。しかし、以下の場合に はこの選択を解除することもできます。 • 影響を受けやすいデバイスへのネットワーク接続を禁止する場合 • TCP/IP スタックがセットアップされていないワークステーション でサーバを使用する場合 [Start Portmap Service] このオプションを選択すると、次回 Multi-ICE サーバを起動するときに ポートマッププログラムも起動します。[Start Portmap Service] ボックス のチェックを外した場合は、Multi-ICE サーバを起動する前に、別の方法 (例:[Start] → [Programs] → [ARM Multi-ICE v2.1] → [Portmap])でポー トマップサービスを起動する必要があります。 注 ポートマップサービスの自動起動を選択していない場合、ポートマップ サービスが別のアプリケーションで提供されていなくても、警告メッ セージは表示されません。この場合、クライアントはサーバへの接続に 失敗し、その後しばらくしてエラーが発生したことを通知します。 この問題を解決するためには、Multi-ICE サーバを再起動して [Start Portmap Service] オプションを選択し、Multi-ICE サーバを閉じてからも う一度 Multi-ICE サーバを起動します。 [Allow Network Connections] が選択解除されている場合は、ポートマッ プサービスが必要とされていないため、このオプションはディセーブル されます。 [None] ARM DUI0048EJ-00 このオプションを選択すると、自動コンフィギュレーションもコンフィ ギュレーションファイルのロードも実行されません。サーバは P. 2-14 図 2-5 のようなウィンドウの表示とともに起動し、構成を終えて初めて使用 できるようになります。 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-17 Multi-ICE サーバの使用 [Auto-Configure] このオプションを選択すると、検出された全てのデバイスを含むコン フィギュレーションファイルが自動的に作成されます(P. 3-9「自動デバ イスコンフィギュレーション」参照)。認識されないデバイスは、UNKNOWN としてマーキングされます。 [Auto-Configure at 20kHz] 20kHz での自動コンフィギュレーションは、エミュレーション環境やプ ロセッサがスリープモードにあるといった遅いクロックを使用するシス テムにおいて有効です。 [Load Configuration] コンフィギュレーションファイルの名前とパスを入力するためのダイア ログボックスを表示します。このオプションは Multi-ICE の手動コンフィ ギュレーションに使用します(P. 3-13「IRlength.arm コンフィギュレー ションファイル」参照)。 3.3.3 パラレルポート設定ダイアログ このセクションでは、[Port Settings] ダイアログボックスの使用方法について説明しま す。このダイアログボックスには [Settings] メニューからアクセスすることができます。 図 3-12 [Port Settings] ダイアログボックス このダイアログボックスは以下の項目で構成されています。 [Port Address] 使用するパラレルポートアドレスを指定します。以下のいずれかを使用 することができます。 AUTO 使用するパラレルポートを自動的に選択します。 LPT1 使用するパラレルポートとして LTP1 を選択します。 LPT2 使用するパラレルポートとして LPT2 を選択します。 注 Multi-ICE インタフェースは、アドレス 0x278 または 0x378 で標準パラ レルポートハードウェアを使用するパラレルポートに接続する必要があ ります。 3-18 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 [Force 4-bit access] パラレルポートに4ビットデータ転送を使用させたい場合に選択します。 [Current Port Mode] この部分にはパラレルポートの動作モードが表示されます。パラレル ポートの多くは、いくつかのモードのうちの BIOS 設定によって定義さ れたモードで動作できます。詳細については、使用するコンピュータハー ドウェアのマニュアルを参照して下さい。Multi-ICE は、以下のパラレル ポートモードを認識します。 4 ビット 基本単方向パラレルポート 8 ビット 8 ビット双方向パラレルポート ECP 拡張機能ポート。このモードではブロックデータ転送が可能 なため、8 ビットモードよりも高速です。 Multi-ICE は拡張パラレルポート(EPP)モードを認識しないため、この モードのポートを双方向 8 ビットモードで使用します。Multi-ICE は、 IEEE1284 ポートを ECP 互換モードで使用することができます。 • • 3.3.4 注 ECP を感知するパラレルポートドライバは Multi-ICE パラレルポー トドライバの動作に干渉するため、Windows 95、Windows 98、 Windows Me のドライバには ECP モードは使用されていません。 マシンによっては、非準拠パラレルポートの使用が原因で、不規 則に通信障害を発生させる可能性があります。Multi-ICE ハード ウェアに接続できない、あるいは実行中にタイムアウトエラーが 発生する場合には、4 ビット強制アクセスを試行して下さい。 ユーザ出力ビットダイアログ ユーザ出力ビットは、ユーザ I/O コネクタからの 2 つの TTL ロジックレベル出力に対 応しています(付録 G「ユーザ I/O 接続」参照)。これらのシグナルを使用して、ユー ザロジックをサーバ側でリモート制御することができます。 [User Output Bits] ダイアログボックス(P. 3-20 図 3-13)には [Settings] メニューから アクセスできます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-19 Multi-ICE サーバの使用 図 3-13 [User Output Bits] ダイアログボックス 注 ユーザ出力ビットの状態は、クリックするとすぐに変更されます。変更は [OK] をク リックしなくても適用されます。 このダイアログボックスは以下の項目で構成されています。 [Set Low] ビットを永久に LOW に設定します。 [Set High] ビットを永久に HIGH に設定します。 [Set by Debugger/Driver] 出力ビットを以下のどちらかによって制御することができます。 • • TAPOp プロシージャコール TAPOp_WriteMICEUser1 および TAPOp_WriteMICEUser2(Multi-ICE Reference Guide 参照。) デバッガ内部変数 output_bit_1 および output_bit_2(P. 4-33 「内部変数の記述」参照。) [Set on Download] デバッガが指定された TAP コントローラにダウンロードしている間、 ビット 1 を HIGH に設定します。 [Set on Go] デバッガが指定された TAP コントローラ上のイメージファイルを実行し ている間、ビット 2 を HIGH に設定します。 ユーザ出力ビットに使用する TAP コントローラは、[Tap Position] ドロップダウンボッ クスからその番号を選択することによって指定することができます。リストには構成 済みの全ての TAP コントローラが表示されます。 3-20 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 3.3.5 ユーザ入力ビット ユーザ入力ビットは、ユーザ I/O コネクタからの 2 つの TTL ロジックレベル出力に対 応しています(付録 G「ユーザ I/O 接続」参照)。これらのシグナルを使用して、ユー ザロジックをサーバ側でリモート制御することができます。 ユーザ入力ビットは Multi-ICE サーバウィンドウの右下隅に表示されます(図 3-14)。 各ビットは以下の色で表示されます。 • HIGH のとき:ライトグリーン • LOW のとき:ダークグリーン 図 3-14 ユーザ入力ビットのステータス 3.3.6 JTAG 設定ダイアログ 図 3-15 が示す [JTAG Settings] ダイアログボックスでは、Multi-ICE による JTAG クロッ クおよびリセットシグナルの生成方法を選択することができます。このメニュー項目 は、ターゲットが構成されるまでディセーブルされます。したがってターゲットの自 動コンフィギュレーションを実行するか、コンフィギュレーションファイルをロード する必要があります。 図 3-15 [JATG Settings] ダイアログボックス ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-21 Multi-ICE サーバの使用 選択したターゲットのコンフィギュレーションファイルで定義されていない設定には デフォルト値がセットされます。このダイアログボックスでは以下を行うことができ ます。 • 選択したコンフィギュレーションファイルからタイミングおよびリセットシグ ナルの設定を使用する。 • タイミングおよびリセットシグナルの設定を定義する。 コンフィギュレーションファイル内に定義されている設定を変更せずにそのまま使用 する場合は、[Use Settings from Config File] をクリックします。 コンフィギュレーションファイルで定義されている設定を修正する場合は、[Use Settings Below] をクリックします。これにより、[JTAG Bit Transfer Timing] および [Reset Behavior] の制御グループがイネーブルされます。これらの制御の初期設定は、 サーバの現在のコンフィギュレーションから取得されます。 [JTAG Bit Transfer Timing] グループでは、基本 TCK 周波数を定義し、適応クロッキ ングの使用の有無を選択することができます。 • 選択可能なプリセット TCK 周波数:10MHz、5MHz、1MHz、20kHz • [Set Periods Manually] を選択し、特定の TCK パターンを定義します。P. 3-22 「TCK 周期の手動設定」を参照して下さい。 • ターゲットデバイスに適応クロッキングを使用する必要がある場合は、[Adaptive] を選択します。P. 3-24「適応クロッキング」および第 6 章「システム設計ガイド ライン」を参照して下さい。 [Reset Behavior] グループでは、Multi-ICE にターゲットシステムのリセットを通知する 際にアサートされるシグナルを定義することができます。Multi-ICE インタフェースユ ニットは以下の 2 つのシグナルを制御することができます。 nTRST 正しく接続すると、このシグナルのアサートによってターゲット上の JTAG ロジックだけがリセットされます。 nSRST 正しく接続すると、このシグナルのアサートによってターゲットプロ セッサと接続されているペリフェラルがリセットされますが、JTAG ロ ジックはリセットされません。 [File] → [Reset Target] を選択したとき、あるいは赤色のリセットツールバーボタンを クリックしたときにアサートされるシグナルの組み合わせをラジオボタンを使用して 選択することができます。 ターゲットに対する上記シグナルのアクションについては、使用するターゲットの説 明書を参照して下さい。 TCK 周期の手動設定 [Set Periods Manually] を選択するか、コンフィギュレーションファイルにクロッキン グ情報が含まれている場合は、HIGH/LOW 周期は以下の式から求められます。 t = 50ns * ( スケール * ( 乗数 + 1)) 3-22 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 予め計算されている TCK 周波数 / 値の一覧については、P. F-7「TCK 周波数」および P. F-11「TCK 値」を参照して下さい。サーバコンフィギュレーションファイルには、こ れと同じ HIGH/LOW 周期の値が使用されます(付録 A「サーバコンフィギュレーショ ンファイルの構文」参照)。 注 JTAG クロックレートが非常に遅い場合、サーバに使用されるパラレルポートドライバ はワークステーションの処理時間をかなりの割合で使用します。このため、実行中ア プリケーションの実行速度が低下します。 HIGH 周期および LOW 周期には、0 ~ 255 の値を入力することができます。入力した 8 ビット値は 3 ビットと 5 ビットに分かれて、表 3-2 が示すスケール(S)と乗数(M) の値を形成します。 表 3-2 スケールおよび乗数の値 スケール 乗数 7 6 5 4 3 2 1 0 S S S M M M M M 乗数は下位 5 ビットから形成され、0 ~ 31 の値を取ります。表 3-3 はスケール値を示 しています。SSS は上位 3 ビットを表します。スケールは、式で使用される値を表します。 表 3-3 クロッキング速度のスケール値 SSS スケール 0 1 1 2 2 4 3 8 4 16 5 32 6 64 7 128 例 3-3 は、いくつかのサンプル周波数のエンコード方法を示しています。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-23 Multi-ICE サーバの使用 例 3-3 JTAG HIGH/LOW 設定値の導出 100kHz (approx) HIGH = LOW = 162[SSS = 5 (S = 32) 500kHz HIGH = LOW = 19 [SSS = 0 (S = 1) 2MHz HIGH = LOW = 4 [SSS = 0 (S = 1) M = 2] M = 19] M = 4] 適応クロッキング ターゲットが RTCK シグナルを用いる場合は、コア外部でこのクロックとプロセッサ クロックを同期化するため、適応クロッキング 適応クロッキング機能を選択して下さい。これにより、 適応クロッキング JTAG インタフェースをめぐる同期化問題を避けることができます。 注 適応クロッキング機能を使用すると、伝送遅延、ゲート遅延ならびに同期化要件によっ て、適応クロッキングを使用しない場合よりも最大クロック周波数が低下します。ハー ドウェアの設計上必要でない限り、適応クロッキングは使用しないで下さい。 適応クロッキングの概念に関する詳しい説明については、第 6 章「システム設計ガイ ドライン」を参照して下さい。 3-24 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 3.4 マルチプロセッサとの Multi-ICE サーバの使用 ターゲットに複数のプロセッサがある場合は、Multi-ICE を使用して各プロセッサに 別々のデバッガを接続することが可能です。各プロセッサで実行しているコードは、ブ レークポイントの設定、イメージのダウンロード、プロセッサの開始・停止等により、 他のプロセッサに影響を及ぼすことなく完全に独立してデバッグすることができます。 手順: 1. Multi-ICE サーバにターゲット上の全てのプロセッサが表示されていることを確 認します。 2. 各プロセッサごとに選択したデバッガのインスタンスを実行します。 3. 各デバッガから Multi-ICE DLL コンフィギュレーションダイアログを使用して、 各プロセッサを選択します。 注 ARM デバッガを使用すれば、そのデバッガセッション機能を使用することによって、 起動するたびに各デバッガを別々に構成する手間を省くことができます。詳細につい ては、P. 4-22「マルチプロセッサの構成およびデバッグ」を参照して下さい。 以下のセクションでは、マルチプロセッサへの Multi-ICE の使用について説明します。 • • • • • 3.4.1 デバイス実行制御:P. 3-25 実行制御とデバッガ:P. 3-26 実行制御について:P. 3-27 デバイス間のインタラクションの設定:P. 3-28 ポーリング周波数の設定:P. 3-30 デバイス実行制御 マルチプロセッサシステムでは、プロセッサは相互にインタラクションを行って要求 された結果を生成します。Multi-ICE サーバには、このようなシステムのデバッグを支 援する実行制御機能があります。実行制御により、構成可能な方法で複数のプロセッ サを同時に始動・停止させることができます。実行制御機能を使用して、以下を行う ことができます。 ARM DUI0048EJ-00 • 複数のプロセッサに特定プログラム位置と状態を設定し、これらのプロセッサを 同時に始動させる。これを同期始動と呼びます。Multi-ICE はこれらのプロセッ サを全く同時に、少なくとも 1TCK 周期以内に始動させます。 • いずれかのプロセッサがブレークポイントにヒットしたときに全てのプロセッ サを強制的に停止させ、ブレークポイント到達時のシステム全体の状態を確認す る。これを同期停止と呼びます。全てのプロセッサがほぼ同時に停止します(停 止要求への反応時間によります)。 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-25 Multi-ICE サーバの使用 より複雑な始動 / 停止条件を設定することも可能です。 3.4.2 実行制御とデバッガ 実行制御は、Multi-ICE サーバの機能の一つです。Multi-ICE サーバは、システム内の各 プロセッサに関する情報を保持できる唯一の場所であるため、異なるプロセッサ間の インタラクションはこのサーバ上で構成し、制御します。 注 • プログラムの特定部分をデバッグするために実行制御を必要とする場合は、予期 せぬ停止イベントの発生を防ぐため、最初はサーバに [Independent] 実行制御を 設定しておくことを推奨します。プログラムが対象エリアに到達したら、サーバ で目的に合った実行制御設定をセットアップし、デバッグを開始して下さい。 • 実行制御設定は実行が開始されて初めて適用されるため、この設定を変更すると きはシステム内の全てのプロセッサが停止していることを確認して下さい。 同期始動 特定のプロセッサを含む同期始動グループを設定した場合は、そのプロセッサを始動 してもすぐには始動しません。デバッガは、サーバが他のプロセッサの始動を待って いることを示すメッセージを表示します。全ての待機メッセージが消えて全てのプロ セッサが同時に始動するには、その前に他のデバッガを使用して同期始動グループの 各プロセッサを始動させる必要があります。 注 同期始動に加えて同期停止も必要とする場合は、グループ内のいずれかのプロセッサ を始動させる前に、同期停止をサーバに設定する必要があります。 同期停止 プロセッサの 1 つが停止すると(ブレークポイントやウォッチポイント等により)、そ のプロセッサに接続されたデバッガがそのプロセッサの状態を表示します。このプロ セッサと一緒に他のプロセッサを停止させるように Multi-ICE サーバを設定しておく と、Multi-ICE サーバはこれらのプロセッサを停止させ、接続されているデバッガが以 下のメッセージを表示します。 Server stopped the processor(サーバがプロセッサを停止しました。) これにより、グループ内の全てのプロセッサの状態を確認することができます。 3-26 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 3.4.3 実行制御について プロセッサは以下に挙げるような様々な原因で停止する可能性があります。 • halt processor モードのデバッガがプロセッサに接続されている。 • • • • • • デバッガの停止ボタンが押された。 プロセッサがブレークポイントまたはウォッチポイントにヒットした。 プロセッサがベクタにアクセスし、ベクタキャッチがイネーブルされている。 プロセッサ上で実行中のプログラムがセミホスティングコールを発生させ、デ バッガで標準セミホスティングが選択されている。 デバッガが次の命令までステップ実行する。 ETM 等の外部ハードウェアが DBGRQ シグナルをコアにアサートする。 これらの停止イベントは全てサーバに検出され、実行制御設定に基づいて処理されま す。[Independent] 実行制御以外の設定を使用すると、他のプロセッサも同様に停止す る可能性があります。このことは数多くのことを暗示しています。 • セミホスティングコールの間に複数デバイスの実行制御を必要とする場合は、 AXD の [Processor Properties] ダイアログボックスで [DCC Semihosting] を設定す る必要があります。ADW では、デバッガ内部変数 semihosting_enabled を 2 に設定する必要があります。詳細については、P. 4-30「デバッガ内部変数」の semihosting_enabled=2 の説明を参照して下さい。 • デバッガはデバッグ用途にブレークポイントを使用しますが、Multi-ICE サーバ はこれらのブレークポイントととユーザが指定したブレークポイントを同じも のとみなします。例えば、AXD でカウント値 50 のブレークポイントを作成した 場合、プロセッサはこのブレークポイントをヒットするたびに停止し、50 回ヒッ トするまではその都度再始動します。このとき、以下が行われます。 • ARM DUI0048EJ-00 — プロセッサが停止するたびに、サーバが指定された停止イベントをアク ティブにします。これは予想通りの動作ではないかもしれません。 — プロセッサが再始動するたびに(この例では 49 回)、実行制御設定が適用 されます。同期始動 / 停止を設定した場合、デバッグしているプロセッサ がカウント中のブレークポイントをヒットするたびに、全ての同期停止プ ロセッサが停止します。デバッガがブレークポイントをヒットしたプロ セッサの再始動を試みると、Multi-ICE サーバは同期停止プロセッサも始動 するまで待機します。 デバッガの [Step] をクリックすると、そのプロセッサに対する停止イベントがア クティブになります。これは、ステップ実行が次の命令にブレークポイントを設 定してプロセッサを始動させることによって実現されるためです。プロセッサが ブレークポイントをヒットすると、他の全ての場合と同様にサーバは停止イベン トを実行します。 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-27 Multi-ICE サーバの使用 • 3.4.4 通常、デバッガを使用してイメージをロードする場合には、ブレークポイントは 自動的に関数 main に設定されます。[Go] をクリックするとこのブレークポイン トまで初期化コードが実行されるため、プログラムを継続するにはもう一度 [Go] をクリックする必要があります。このブレークポイントは、他のブレークポイン トと同じように処理されます。 デバイス間のインタラクションの設定 図 3-16 は、[Run Control Dialog] のデバイスインタラクションタブを示しています。こ のダイアログボックスでは、デバイス TAP コントローラ番号の複数のタブがあり、4 つのブロックに使用可能な全てのデバイスがリスト表示される場合もあります。この タブを使用して、個々のデバイス間、あるいはデバイスグループ間のインタラクショ ンを設定することができます。 3 つ以下のデバイスを含むタブでは、未使用ボックスに NOT VALID が表示され、選択 することができません。 図 3-16 デバイス間のインタラクションの設定 タブにリスト表示されるデバイスごとに、以下の制御設定を使用することができます。 [Range field] 各デバイスの記述の下にあるドロップダウンリストボックスを指しま す。このフィールドから、現在のデバイスによって停止させるデバイス を選択することができます。デフォルト設定は、[All Devices] です。 使用可能なデバイスが 3 つ以上ある場合は、全デバイス、個々のデバイ ス番号、またはデバイスグループを選択することができます。 例えば、10 のデバイスがリスト表示されている場合には、以下の表記を 使用して 2、5、7、8、9 のデバイスを停止させることができます。 3-28 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 2, 5, 7-9 [Disabled] このデバイスからの停止イベントはディセーブルされ、他のデバイスを 制御することはできません。 [Single] 範囲フィールドに表示されていれば、現在実行中のどのデバイスでも強 制的に停止させます。範囲フィールド内のデバイスのいずれかをこの方 法で強制停止させると、これらのデバイスに対する停止イベントはアク ティブになりません。 [Cascade] 範囲フィールドに表示されていれば、現在実行中のどのデバイスでも強 制的に停止させます。範囲フィールド内のデバイスのいずれかをこの方 法で強制停止させると、これらのデバイスに対する全ての停止イベント がアクティブになります。あるデバイスが実行中でなく、そのデバイス に対して停止イベントが実行されると、その停止イベントは完全に無視 されます。 注 既に停止しているプロセッサを介して停止イベントがカスケードされる ことはありません。 例えば、最初 1 ~ 10 の全てのデバイスが実行中であると仮定します。図 3-17 は、デバイス 1 が停止したときに、他に 3 つのデバイスが停止する 様子を示しています。こうして順番に、以後のデバイスセットが停止し ていきます。 Sync. [Start] この設定をイネーブルすると、対象プロセッサが同期始動グループに含 まれます。同期始動グループ内の 1 つのプロセッサが始動すると、その プロセッサは始動準備完了としてマーキングされます。全てのプロセッ サの始動準備が整うと、始動グループ内の全てのプロセッサが同時に始 動します。 図 3-17 カスケード動作 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-29 Multi-ICE サーバの使用 設定の組み合わせ より厳密な制御を行うため、個々の目的を達成する設定を組み合わせることができま す。P. 3-29 図 3-17 のダイアグラムを一例として使用します。 3.4.5 • デバイス 4 がディセーブルされている場合、デバイス 5、7、9、10、11 はデバイ ス 1 からの制御設定による影響を受けません。 • デバイス 4 および 5 に [Cascade] を設定し、一方でデバイス 7 をディセーブルす ると、デバイス 9 にはデバイス 1 からの制御設定が作用しますが、デバイス 10 と 11 には作用しません。 • デバイス 6 に [Cascade] でなく [Single] を設定すると、デバイス 1 の制御設定は デバイス 8 に作用しません。 ポーリング周波数の設定 図 3-18 は、[Run Control] ダイアログボックスの [Settings] タブを示しています。この 部分に表示されるコントロールを使用して、Multi-ICE が使用するポーリング周波数を 変更することができます。この操作を行うことにより、ホストコンピュータの反応と、 Multi-ICE がデバイスステータスを検出する目的でデバイスをポーリングする回数との バランスを取ることができます。 図 3-18 ポーリング周波数の設定 プロセッサがデバッグ状態に入ってから、Multi-ICE がこれを認識してアクションを起 こすまでには遅延があります。ここでは以下のように設定することができます。 Low 3-30 ステータスのポーリングを最小限に抑えることによって、デバッガの反 応を最大限に高めます。プロセッサが停止していても、すぐに認識され ないことがあります。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE サーバの使用 High ステータスの高速ポーリングを行いますが、デバッガの反応が極めて遅 くなります。プロセッサが停止していても、すぐに認識されます。 デフォルトでは目盛りの中間点が設定されます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 3-31 Multi-ICE サーバの使用 3-32 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第4章 Multi-ICE を使用したデバッグ 本章では、サポートされている ARM デバッガへの Multi-ICE の接続方法、ならびに Multi-ICE DLL の特徴について説明します。 本章は、ADS デバッガガイドや ADS デバッグターゲットガイド等、使用するデバッガ のマニュアルと併せてお読み下さい。本章は以下のセクションから構成されています。 • ARM デバッガとの互換性:P. 4-2 • ADW、ADU あるいは AXD と Multi-ICE の接続:P. 4-3 • Multi-ICE DLL の構成:P. 4-8 • マルチプロセッサの構成およびデバッグ:P. 4-22 デバッガ内部変数:P. 4-30 事後分析デバッグ:P. 4-38 CP15 へのアクセス:P. 4-42 セミホスティング:P. 4-43 ウォッチポイントとブレークポイント:P. 4-48 ROM 内のアプリケーションのデバッグ:P. 4-53 EmbeddedICE ロジックへの直接アクセス:P. 4-56 • • • • • • • ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-1 Multi-ICE を使用したデバッグ 4.1 ARM デバッガとの互換性 ARM デバッギングシステムを使用して ARM ターゲットイメージをデバッグする場合 には、以下のどの ARM デバッガでも使用することができます。 • ARM eXtended デバッガ(AXD)Windows 版 /UNIX 版 • ARM デバッガ Windows 版(ADW)(SDT 2.51、ADS v1.0.1、あるいは ADS v1.1) • ARM デバッガ UNIX 版(ADU)(SDT 2.51、ADS v1.0.1、あるいは ADS v1.1) デバッガは Multi-ICE と併せて使用することによって機能します。Multi-ICE はターゲッ トへのアクセス機能と、正しい方法でターゲットにアクセスするためのデバッガ構成 ツールを提供します。デバッガはレジスタウィンドウや逆アセンブラ等、アプリケー ションのデバッグに必要なユーザインタフェースアイテムを提供します。 開発ボードの詳細については、使用するターゲットボードの説明書を参照して下さい。 4-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 4.2 ADW、 、ADU あるいは AXD と Multi-ICE の接続 コンフィギュレーションファイルをロードするか、または Auto-Configure を実行した ら、デバッガを Multi-ICE サーバに接続する必要があります。以下のセクションでは、 各 ARM デバッガの接続手順を説明します。 • AXD の接続:P. 4-4 • ADW/ADU の接続:P. 4-5 この手順は Windows ベースと UNIX ベースのどちらのシステムにも共通しているため、 例示されているスクリーンショットが Windows をベースにしたものであっても、Solaris および HP-UX で動作する ADU と AXD には同じ手順が適用されます。 注 この注は、Microsoft Windows が動作するワークステーションだけに適用されます。 Windows Explorer のデフォルト設定では、[File Open] ダイアログボックスに拡張子 .dll のファイルが表示されません。したがってこの設定を変更しない限り、Multi-ICE DLL は表示されません。 デスクトップを更新することなく、Windows 95 または Windows NT 4 で .dll ファイル を表示させるには: 1. Windows Explorer ウィンドウを開き、[View] → [Options] を選択します。 2. [View] タブを選択します。 3. [Show all files] ラジオボタンを選択します。 4. [Options] ダイアログの [OK] ボタンをクリックします。 デスクトップを更新することなく Windows 95 または Windows NT 4.0 で、さらには Windows 98、Windows ME、あるいは Windows 2000 で .dll ファイルを表示させるには: ARM DUI0048EJ-00 1. Windows Explorer ウィンドウを開き、[View] → [Folder Options] を選択します。 2. [View] タブを選択します。 3. ツリービュー内で、[Files and Folders] → [Hidden Files] を探します。そのグルー プ内の [Show all files] ラジオボタンを選択します。 4. [Folder Options] ダイアログの [OK] ボタンをクリックします。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-3 Multi-ICE を使用したデバッグ 4.2.1 AXD の接続 Windows または UNIX を使用して AXD 内で Multi-ICE DLL を起動するには、以下の手 順に従って下さい。 1. [Options] → [Configure Target] を選択します(図 4-1)。 図 4-1 AXD の [Options] メニュー 図 4-2 が示す [Choose Target] ダイアログボックスが表示されます。 図 4-2 AXD の [Choose Target] ダイアログボックス 2. 4-4 [Target Environments] リストに Multi-ICE が表示されている場合は、それを(そ の上でクリックして)選択し、ステップ 3 に進みます。リスト内に Multi-ICE が 存在しない場合は: a. [Add]を選択します。 Windowsの[Open]ダイアログボックスが表示されます。 b. Multi-ICE のインストールディレクトリを指定します(例:C:\Program Files\ARM\Multi-ICE)。 c. Multi-ICE.dll ファイルを探してこれを選択し、ダイアログボックス内 の [Open] ボタンをクリックします(P. 4-5 図 4-3)。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-3 AXD を使用した Multi-ICE DLL の選択 [Open] をクリックすると、ダイアログボックスが閉じられます。 [Target Environments] リストに Multi-ICE DLL のファイルパス名が表示さ れます。 4.2.2 3. [Configure] を選択し、Multi-ICE コンフィギュレーションダイアログを表示させ ます。 4. 続けて P. 4-8「Multi-ICE DLL の構成」で説明している手順に従って下さい。 ADW/ADU の接続 ADW または ADU 内で Multi-ICE DLL を起動するには、以下の手順に従って下さい。 1. ADW または ADU を起動します。最後に使用されたデバッグターゲットが、あ るいはデバッガをインストールした直後であれば ARMulator® が自動的に起動し ます。[Target Warning] ダイアログが表示された場合は [No] をクリックして下さ い。これによって ADW または ADU が ARMulator を起動します。 2. [Options] → [Configure Debugger] を選択します(図 4-4)。 図 4-4 ADW および ADU の [Options] メニュー ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-5 Multi-ICE を使用したデバッグ デバッガによって、図 4-5 のような [Debugger Configuration] ダイアログボックス が表示されます。[Target] タブを選択します。 図 4-5 Multi-ICE をアクティブにしたときの ADW コンフィギュレーションダイアログ 3. 図 4-5 が示す [Target Environment] リストに Multi-ICE が表示されている場合は、 ステップ 4 に進みます。 リスト内に Multi-ICE が存在しない場合は: a. [Add] を選択します。[Open] ダイアログボックスが表示されます。 b. Multi-ICE のインストールディレクトリを指定します(例:C:\Program Files\ARM\Multi-ICE)。 c. Multi-ICE.dll ファイルを探し、このファイルを選択します(図 4-6)。 ダイアログボックス内の [Open] ボタンをクリックします。 [Open] をクリックすると [Open] ダイアログボックスが閉じられ、[Target Environments] リストに Multi-ICE DLL のファイルパス名が表示されます。 図 4-6 ADW を使用した Multi-ICE DLL の選択 4-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ ARM DUI0048EJ-00 4. [Debugger Configuration] ダイアログボックスで [Configure] を選択します。 Multi-ICE コンフィギュレーションダイアログボックスが表示されます。 5. 続けて P. 4-8「Multi-ICE DLL の構成」で説明している手順に従って下さい。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-7 Multi-ICE を使用したデバッグ 4.3 Multi-ICE DLL の構成 このセクションでは、Multi-ICE コンフィギュレーションダイアログボックスの項目に ついて説明します。このダイアログボックスには、以下の見出しの付いたタブが表示 されます。 • [Connect] コンフィギュレーションタブ:P. 4-8 • [Processor Settings] タブ:P. 4-13 • [Advanced] コンフィギュレーションタブ:P. 4-15 • [Trace] コンフィギュレーションタブ:P. 4-18 • [About] タブ:P. 4-19 • [Channel Viewers] コンフィギュレーションタブ:P. 4-19 最後のセクションでは、コンフィギュレーション設定の保存方法を説明します。 • 4.3.1 DLL 設定の保存:P. 4-21 [Connect] コンフィギュレーションタブ 図 4-7 は、Multi-ICE サーバ接続コンフィギュレーションダイアログを示しています。 このダイアログを使用して、Multi-ICE サーバとデバッグするプロセッサを選択します。 図 4-7 Multi-ICE コンフィギュレーションダイアログボックス 4-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ Multi-ICE の構成が終わっていない場合は、図 4-8 が示す「Welcome to Multi-ICE」ダイ アログが表示されます。記載内容を読み終わったら [OK] をクリックしてこのダイアロ グを閉じます。 図 4-8 「Welcome to Multi-ICE」ダイアログ 」ダイアログ Multi-ICE コンフィギュレーションダイアログボックスは以下の項目で構成されてい ます。 [Location of Multi-ICE] Multi-ICE サーバおよび Multi-ICE インタフェースユニットを検出するた めに Multi-ICE が問い合わせるワークステーションの名前を入力する必 要があります。 • 既にワークステーションと接続している場合は、このエリアにそ のワークステーションの名前が表示され、デバイス情報が [Device selection] に表示されます。 • サーバにまだ接続していない場合は、 このエリアと[Device selection] が空白のまま表示されます。 使用するワークステーションに Multi-ICE インタフェースユニットを接 続している場合は、[This computer... ] ボタンをクリックします。動作中 の Multi-ICE サーバが存在しない場合には、ソフトウェアがサーバを起 動するかどうかを尋ねるメッセージを表示します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-9 Multi-ICE を使用したデバッグ サーバが別のワークステーション上で動作している場合は、[Another computer... ] をクリックします。表示された [Select server location] ダイ アログボックスの [Network address] にサーバの名前を入力するか、また はネットワークリストから名前を選択します。詳細については、P. 4-11 「リモート Multi-ICE サーバ」を参照して下さい。 [Device selection] デバイスツリーから対象とするプロセッサデバイス(またはコア)を選 択する必要があります。ここに表示されるデバイスは、Multi-ICE サーバ ウィンドウ上の TAP コンフィギュレーションエリアに表示されるデバイ スに対応し、デバイスのエイリアスがメインデバイスに従属するものと して表示されます。 選択するデバイスの詳しい情報を見たい場合は、[Details...] をクリックし て [Driver Details] ダイアログボックス(図 4-9)を表示させて下さい。 図 4-9 [Driver Details] ダイアログボックス 各フィールドには以下の情報が表示されます。 [Driver Name] Multi-ICE がデバイスを参照するために使用する名 前が表示されます。ここに表示される名前は、ドラ イバ情報ファイル IRlength.arm 内で使用されて いる名前と同じです。 [Type] プロセッサのタイプが表示されます(例:ARM 7、 ARM 9、Xscale)。 [Version] デバイス制御に使用されるソフトウェアドライバ のバージョン番号が表示されます。 [Server Requires] ドライバを使用するために必要な Multi-ICE サーバ のバージョンが表示されます。 [Connection name] この入力項目はオプションです。必要に応じて使用する接続の名前を入 力して下さい。ここに入力した情報は、デバイスを使用するエンジニア またはテストプログラムを特定する際に役立ちます。この名前は、正し く接続されたときにサーバ上のデバッグウィンドウ内に表示されます。 4-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 設定を適用し、ターゲットプロセッサに接続するには: 1. [OK] をクリックします。これで [Debugger Configuration] ダイアログボックスに 戻ります。 2. コンフィギュレーションダイアログで [OK] をクリックし、ターゲットプロセッ サに接続します。接続に成功すると、サーバウィンドウにデバイス名が赤で表示 され、接続情報がサーバコンソールウィンドウに表示されます。接続に失敗する と、エラーメッセージが表示されます。 リモート Multi-ICE サーバ [Connect] コンフィギュレーションタブ(P. 4-8「Multi-ICE コンフィギュレーションダイ アログボックス」参照)の [Another computer...] ボタンを使用すると、別のコンピュー タ上にある Multi-ICE サーバに接続するように Multi-ICE を構成することができます。 表 示されるダイアログボックスは、使用するワークステーションで構成されているネット ワークソフトウェアによって異なります。 • UNIX ワークステーションを使用している場合、あるいはローカルエリアネット ワークソフトウェアがインストールされていない Windows ワークステーション を使用している場合は、P. 4-11「ネットワークを使用できないワークステーショ ン」を参照して下さい。 • ネットワークソフトウェアがインストールされた Windows ワークステーション で、Windows Network Neighborhood を使用できる場合には、P. 4-11「ネットワー クを使用できるワークステーション」を参照して下さい。 ネットワークを使用できないワークステーション UNIX ワークステーション、ならびに Windows コンピュータブラウザサービスを使用 できない Windows ワークステーションの場合には、接続先マシンの名前を入力するた めのダイアログボックスが表示されます。 Windows 95、Windows 98 あるいは Windows Me で TCP/IP ネットワークを使用している 場合、ネットワーク検索ダイアログ(P. 4-12 図 4-10)を表示させるには、事前に Windows コンピュータブラウザサービスをインストールしておく必要があります。 ネットワークを使用できるワークステーション Windows コンピュータブラウザサービスを使用できる Windows ワークステーションの 場合は、P. 4-12 図 4-10 が示すダイアログボックスが表示され、ネットワークを閲覧し て接続する Multi-ICE サーバを検索することができます。このブラウザには、Windows コンピュータブラウザサービスとリモートアクセス可能な Multi-ICE サーバの両方が存 在するワークステーションだけが表示されます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-11 Multi-ICE を使用したデバッグ このダイアログボックスには以下の 2 通りの使い方があります。 • • 接続先のワークステーションが分かっている場合は、[Server name] テキスト フィールドにその名前を入力することができます。入力する名前は、テキスト名 (例:PC2)または IP アドレス(点で 4 区分した形式。例:192.168.3.1)の どちらであっても構いません。入力したら [OK] をクリックして終了します。 ツリービューを使用してサーバを検索することができます。 ネットワークを検索するには、ワークステーションの名前が表示されるまで アイコ ンの上をクリックし、リストエリア内の名前を拡張します。この中に、[Allow Network Connections] の設定がイネーブルされて実行されている Multi-ICE サーバがあります。 グループ内のMulti-ICEサーバをリスト表示するためには、 そのグループ内の全てのワー クステーションに問い合わせる必要があります。Multi-ICEは一度に複数のワークステー ションを問い合わせ、その際にはダイアログの最上部にメッセージを表示します。 グループ内にサーバが動作する接続可能なワークステーションが存在しない場合、そ のグループは アイコンなしで表示されます。 マシンが表示され、その名前の隣にある アイコンを選択すると、そのサーバで現在 構成されているプロセッサのリストが表示されます。 図 4-10 サーバ検索ダイアログボックス デバイス名の隣にあるアイコンは、現在の接続状態を示しています。 4-12 • アイコンを囲む赤円は、接続がアクティブな状態にあるデバイスであることを示 します。 • 青緑色の ARM powered アイコンは、Multi-ICE によるデバッグが可能な ARM デ バイスであることを示します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ • は Multi-ICE によるデバッグが不可能なデバイス(例:FPGA、DSP コア、フ ラッシュメモリデバイス)であることを示します。 • は、同じ TAP コントローラに接続された拡張デバイス(例:ETM(Enbedded Trace Macrocel))であることを示します。ETM の詳細については、トレースデ バッグツールユーザガイドを参照して下さい。 リストが完全に表示される前に接続先のデバイスを選択して [OK] をクリックすると、 その先の情報が表示されなくなります。しかし、実行中の操作を完了させる必要があ り、その間は Stopping... で始まるメッセージが表示されます。このプロセスが完 了するまでに数秒かかる場合があります。 4.3.2 [Processor Settings] タブ [Processor Settings] タブを使用すると、ターゲットへの接続前にプロセッサ固有の設定 を変更することができます。定義可能な設定は接続するプロセッサによって異なるた め、このタブを使用する前に([Connect] タブを使用して)プロセッサを選択しておく 必要があります。このタブでは以下の設定を変更することができます。 Cashe clean code address P. 4-14 図 4-11 が示すこの設定では、データキャッシュ(DCache)内の 全てのダーティデータをメインメモリに書き込むためのコードシーケン スを保持しておく 128 バイトのメモリエリアのベースアドレスを設定し ます。 Dcache のクリーニングが重要な理由は、プロセッサキャッシュがイネー ブルされているときに、ターゲットメモリに書き込まれるプログラム命 令が Dcache 経由で書き込まれ、命令キャッシュ経由で読み出されるため です。Dcache がクリーンされていなければ、プロセッサが実行する前に いくつかまたは全ての命令がメインメモリに書き込まれず、そのアドレ スにあるメモリの元の内容が代わりに実行されます。 Multi-ICE は必要に応じてキャッシュクリーンコードをロードします。こ のエリアは読み出し / 書き込み可能なプログラムメモリでなければなら ず、このエリアを他の目的に使用することはできません。Multi-ICE がこ のメモリエリアにコードをロードできない場合は、エラーメッセージ 「Could not clean D-Cache - memory may appear incoherent in writeback regions(DCache をクリーンできませんでした。ライ トバック領域のメモリに矛盾が生じる可能性があります)」が表示されま す。このメッセージに関しては、P. 5-15「Multi-ICE DLL メッセージ」を 参照して下さい。 プロセッサタイプによっては、ブレークポイントまたは例外の処理時に Multi-ICE がプロセッサを再始動できるよう、再始動コードもダウンロー ドしなければならない場合があります。このタイプのプロセッサの場合、 再始動コードがこのアドレスに書き込まれます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-13 Multi-ICE を使用したデバッグ 図 4-11 キャッシュ設定を表示した Multi-ICE の [Processor Settings] タブ Handler base address P. 4-14 図 4-11 が示す設定により、デバッグハンドラが XScale マイクロ アーキテクチャプロセッサ用に使用できる 2KB の空きメモリ領域を指定 することができます。 ここでは以下の 2 つを設定することができます。 アドレス ハンドラコードのベースアドレスです。このアドレスは 2KB アドレス境界に整列し(アドレスの下位 11 ビットがゼロ)、サ イズが 2KB のアドレスである必要があり、他の目的に使用す ることはできません。 レイトスタートアップのイネーブル Multi-ICE による Intel 後期スタートアップ機能の使用をイネー ブルまたはディセーブルします。 イネーブルすると、Multi-ICE はターゲットボード上の Intel レ イトスタートアップ用ファームウェアに接続します。これに より、リセットせずに XScale プロセッサに接続することが可 能です。 4-14 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-12 XScale 設定を表示した Multi-ICE の [Processor Settings] タブ 4.3.3 [Advanced] コンフィギュレーションタブ [Advanced] コンフィギュレーションタブには、ターゲットのメモリエンディアン構成 に合わせてデバッガを構成したり、情報のキャッシングの有無、ならびにデバッガソ フトウェアインタフェース方式を指定できる項目が含まれています。P. 4-16 図 4-13 は、 このタブを示しています。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-15 Multi-ICE を使用したデバッグ 図 4-13 Multi-ICE の [Advanced] 設定タブ このダイアログボックスは以下の項目で構成されています。 [Target Settings] ターゲットコンフィギュレーションダイアログの [Target Settings] に表 示されるラジオボタンを使用して、ターゲットがリトルエンディアン リトルエンディアン構 リトルエンディアン 成またはビッグエンディアン ビッグエンディアン構成のどちらであるかを指定することがで ビッグエンディアン きます。 SDT 2.51 や ADU 等の古いソフトウェアを使用している場合には、これ らのボタンを使用することができません。その場合は以下の手順に従っ て下さい。 1. デバッガの [Options] メニューから [Configure Debugger] を選択し ます。 2. [Debugger] タブをクリックします。 3. [Endian] ボタンのいずれかを選択します。 [Read-ahead Cache] このチェックボックスを使用して、プロセッサ停止中にホスト側でター ゲットメモリのキャッシングを行うかどうかをイネーブルまたはディ セーブルできます。このチェックボックスの初期値は internal_cache_enabled に設定されています。デバッガ内部変数 internal_cache_flushに1を設定することにより、特定のタイミング でキャッシュをフラッシュできます。また、デバッガ内部変数 internal_cache_enabled に 0 を設定すると、キャッシュを一時的に オフにすることができます。詳細については、P. 4-33「内部変数の記述」 を参照して下さい。 4-16 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ [Read-ahead caching] を使用することにより、デバッガが要求する以上の メモリを読み出し、そのときは使用されないメモリ内容も後で要求され た場合に備えてキャッシングするため、メモリ読み出しのパフォーマン スが向上します。この機能を使用すると、多数のストリング変数をデバッ ガウィンドウに表示したままコードをステップ実行する等の操作で、パ フォーマンスが飛躍的に向上します。 最初に DLL が先読みすることはありません。あるメモリ領域の最初の読 み出し要求が成功すると、DLL はその領域に安全にアクセスできること を学習します。それから DLL はデバッガが再始動するまでその領域を キャッシングします。 SDT 2.51 に含まれる ADW を除き、全ての ADS デバッガがセッション間 の先読み設定を保存します。 注 [Read-ahead caching] はデフォルトでオンに設定されています。以下の場 合は、この機能をオフにする必要があります。 • 要求ページメモリを使用するシステムのデバッグを行う場合 • ハードウェアレジスタを読み出すデバッガを使用するときに、予 期しない近隣レジスタの読み出しを行わせたくない場合 [Debugger Interface Settings] Multi-ICE は RDI 1.5.1 に準拠するデバッガをサポートしており、RDI 1.5 に準拠するデバッガへの接続も可能です。この項目には、現在使用中の RDI バージョンが表示されます。 このダイアログボックスから使用する RDI バージョンを選択することが できます。 [Automatic] 自動バージョン認識方式を用いて、デバッガに最も 適したモードを選択します。デフォルトではこの設 定が使用されます。 [RDI 1.5] Multi-ICE DLL に RDI バージョン 1.5 を使用させる 場合に選択します。 [RDI 1.5.1] Multi-ICE DLL に RDI バージョン 1.5.1 を使用させ る場合に選択します。 ARM デバッガを使用する場合には、全ての ARM デバッガに対して正し く機能する [Automatic] 設定の使用を推奨します。 注 AXD は RDI 1.5.1 しかサポートしておらず、[Automatic] を設定すると自 動的に RDI 1.5.1 が選択されます。AXD に強制的に RDI 1.5 を使用して Multi-ICE に接続させると、AXD の [Stop] ボタンが機能しなくなります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-17 Multi-ICE を使用したデバッグ [Report non-fatal errors on startup] この設定は、デバッガが Multi-ICE ターゲットに最初に接続する際に発 生するエラーと関係します。このオプションにチェックを入れると、致 命的なエラーとそうでないエラーの両方が通知されます。デフォルトで はこの設定が使用されるため、Multi-ICE が検出する全ての問題が通知さ れます。 デバッガによっては、コンフィギュレーション中のエラーであれば全て が致命的なエラーと見なすものもあり、これが原因でターゲットに接続 できない場合もあります。この場合は、このオプションのチェックを外 すと、Multi-ICE が致命的エラーのみを通知するようになります。 4.3.4 [Trace] コンフィギュレーションタブ ARM トレースデバッグツール(TDT)がワークステーションにインストールされてい れば、図 4-14 が示す [Trace] タブが表示されます。TDT がインストールされていなけ れば、[Trace] タブは表示されません。 図 4-14 [Trace] コンフィギュレーションタブ この [Trace] タブを使用して、トレース情報のキャプチャに使用するトレースコンポー ネントを構成することができます。Multi-ICE の [Trace] コンフィギュレーションタブの 使用方法および TDT の詳細については、トレースデバッグツールユーザガイドを参照 して下さい。 4-18 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 4.3.5 [About] タブ [About] タブには使用中の Multi-ICE のバージョン情報が表示されます(図 4-15)。この タブには使用している Multi-ICE DLL と、接続しているコンポーネントに関する全ての バージョン情報が表示されます。 TDT のインストールと構成が終わっていれば、トレースキャプチャの制御に使用され る DLL(例:multitrace.dll)のバージョン番号もこのリストに表示されます。 図 4-15 [About] タブ 4.3.6 [Channel Viewers] コンフィギュレーションタブ チャネルビューワを使用すると、DCC 経由の転送情報をデバッガ外部のプログラムで 操作することができます。ARM デバッガには ThumbCV と呼ばれるビューワが付属し ており、これが DCC 経由で送られたワードを変換してウィンドウに表示します。この ビューワにはテキスト入力エリアもあり、ここに入力した文字をターゲットに送信す ることができます。詳細については、ADS デベロッパガイドを参照して下さい。 Multi-ICE による DCC チャネル経由の転送情報のバッファリング方法については、 P. 4-21「Multi-ICE によるチャネルビューワのバッファリング」を参照して下さい。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-19 Multi-ICE を使用したデバッグ AXD におけるチャネルビューワの使用 Multi-ICE コンフィギュレーションダイアログの [Channel Viewers] タブは、ADW にの み使用することができます。AXD におけるチャネルビューワの使用方法については、 AXD の説明書を参照して下さい(ADS デバッガガイド参照)。 ADW におけるチャネルビューワの使用 チャネルビューワにより、ホストはより複雑な方法でターゲットを監視したり、外部 センサの存在をシミュレートすることができます。チャネルビューワの詳細について は、ADS デバッガガイドを参照して下さい。DCC ハードウェアに関する詳しい情報に ついては、使用している ARM コアのリファレンスマニュアルを参照して下さい。 図 4-16 が示すチャネルビューワのコントロールにより、選択されたチャネルビューワ DLL がイネーブルまたはディセーブルされます。 図 4-16 チャネルビューワのコントロール 注 • チャネルビューワと DCC セミホスティングには同一 DCC が使用されるため、こ れらを(semihosting_enabled = 2 を設定してイネーブル)同時に使用する ことはできません。したがって、DCC セミホスティングがイネーブルされてい る場合には、チャネルビューワを追加することも使用することもできません。 • DCC チャネルビューワを ARM10(Rev 0)プロセッサおよび XScale マイクロアー キテクチャプロセッサに使用することはできません。 チャネルビューワには以下の 3 つのコントロールがあります。[Enabled] チェックボッ クスは、チャネルビューワ機能をイネーブルします(同時に他の用途への DCC の使用 をディセーブルします)。[Enabled] にチェックを入れると、[Add] ボタンと [Remove] ボタンを使用して、Multi-ICE に使用可能なチャネルビューワ DLL のリストを操作でき るようになります。 [Add] 4-20 チャネルビューワ DLL を追加します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ [Remove] 選択された DLL を削除します。 ビューワを追加するとそのチャネルビューワが初期化され、例えば ThumbCV ビューワ の場合は画面に新しいウィンドウが作成されます。 Multi-ICE によるチャネルビューワのバッファリング Multi-ICE DLL にはデバッガからターゲットへの DCC 転送用に 1024 ワードの内部バッ ファが存在します。ターゲットに送られるデータは、ターゲットプログラムがそのデー タを要求するまで、このバッファ内にキャッシングされます。 4.3.7 DLL 設定の保存 セッション間の DLL 設定の保持とその保存方法は、使用しているデバッガによって異 なります。 ADW (SDT 2.51) DLL セッション設定のほとんどをレジストリに保存します。ただ し、先読みキャッシュをイネーブルするチェックボックスの状態 等、Multi-ICE リリース 1.3 の後に導入されたセッション設定は保 存されません。 ADW (ADS 1.0.1)、 、ADU (ADS 1.0.1) 全てのDLLセッション設定をユーザプロファイル内のファイルに 保存します。例えば Windows NT の場合、このファイルには以下 のような名前が付けられます。 c:\winnt\profiles\username\adwtoolconf-default.cnf -session name パラメータを使用して ADS 1.0 ADW を起動する と、各セッションの設定は別々のファイルに保存され、default が name に置き換わったファイル名が付けられます。 ARM DUI0048EJ-00 AXD (ADS 1.0.1) 全ての DLL セッション設定をレジストリに保存します。 AXD (ADS 1.1) 全ての DLL 設定をレジストリに、あるいは [File] → [Save Session] を選択した場合は指定したファイルに保存します。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-21 Multi-ICE を使用したデバッグ 4.4 マルチプロセッサの構成およびデバッグ このセクションでは、ADS v1.1 AXD と Multi-ICE バージョン 2.1 を使用したマルチプ ロセッサシステムのセットアップ方法について説明します。このセクションは以下の サブセクションで構成されています。 • 名前の付いた AXD ターゲットコンフィギュレーションを使用したコンフィギュ レーション:P. 4-22 • セッションファイルを使用したコンフィギュレーション:P. 4-24 作業の進め方に最も適した方法を選択して下さい。複数ターゲットを使用する方法の 方が簡単ですが、セッションファイルを使用すると自動設定が可能な範囲が広くなり ます。 注 Multi-ICE インタフェースユニットに接続したマルチプロセッサシステムに AXD を使 用する場合は、デバッグする各プロセッサに対して 1 つの AXD インスタンスを実行す る必要があります。AXD の 1 つのインスタンスを複数のプロセッサに接続することは できません。 4.4.1 名前の付いた AXD ターゲットコンフィギュレーションを使用したコンフィギュレーション AXD では、名前の付いた複数のターゲットコンフィギュレーションを使用することが できます。マルチプロセッサのセットアップでは、各プロセッサに 1 つのターゲット を作成し、プロセッサ間の切替えも簡単に行えるため、このことが有利に働きます。 この設定を行うには: 1. AXD を実行します。 2. [Options] → [Configure Target...] を選択し、ターゲットコンフィギュレーション ダイアログを表示させます。 3. Multi-ICE がターゲットリストに表示されていなければ、[Add] ボタンを使用して 追加します(P. 4-8「Multi-ICE DLL の構成」参照)。 4. Multi-ICE ターゲットコンフィギュレーションをコピーして、以下の手順でター ゲットボード上のプロセッサごとに 1 つのターゲットコンフィギュレーションを 作成します。 a. リストから Multi-ICE を選択します。 b. c. d. [Save As] をクリックし、ターゲットコンフィギュレーションの [Save] ダイ アログボックスを表示させます。 ターゲットコンフィギュレーションに付ける新しい名前を入力します (P. 4-23 図 4-17)。 [OK] をクリックします。 例えば 3 つのプロセッサをセットアップする場合には、Multi-ICE_TAP1 およ びMulti-ICE_TAP2と名前を付けたMulti-ICEの2つのコピーを作成し、[Rename] をクリックして元のファイルの名前を Multi-ICE_TAP0 に変更する方法が考え られます。 4-22 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-17 ターゲットコンフィギュレーションを名前を付けて保存 5. [Target Environments] リストでターゲットの名前を選択して [Configure] をクリッ クし、これらのターゲットを個々に構成します。詳細については、P. 4-8「Multi-ICE DLL の構成」を参照して下さい。 6. 各ターゲットのコンフィギュレーションが完了したら、AXD の [Configure Target] ダイアログボックスで [OK] をクリックします。AXD はこれら全てのターゲット の設定を保存し、選択された設定に接続します。 ターゲットコンフィギュレーションダイアログで別のターゲットを選択することによ り、システム内のプロセッサを簡単にスワップできます。 起動時にターゲットを選択するように AXD を構成する デフォルトのコンフィギュレーションでは、AXD を実行すると最後の実行時に使用さ れたターゲットが自動的に選択されます。このように起動時にデフォルトターゲット に接続するのではなく、ターゲットコンフィギュレーションダイアログを表示するよ うに変更するには以下の手順に従って下さい。 手順: ARM DUI0048EJ-00 1. 使用するターゲットボードに合わせて Multi-ICE サーバが正しく構成されている ことを確認して下さい。 2. AXD を実行します。 3. [Options] → [Configure Interface...] を選択し、インタフェースコンフィギュレー ションダイアログを表示させます。 4. [Session File] タブの [Reselect Target] オプションをディセーブルします。 5. AXD を終了します。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-23 Multi-ICE を使用したデバッグ AXD を CodeWarrior から起動する ADS 付属の CodeWarrior IDE には、プロジェクトをビルドし、AXD を自動的に起動し て実行するボタンがあります。マルチプロセッサシステムの場合、AXD は最も最近に 使用されたプロセッサ上のプロジェクトを実行しようとします。したがって、P. 4-23 「起動時にターゲットを選択するように AXD を構成する」で説明した変更を行うこと を推奨します。 4.4.2 セッションファイルを使用したコンフィギュレーション 複数デバッガをより自動化したい場合には、AXD のセッション機能を使用することが できます。AXD セッションファイルには、実行可能イメージファイルの名前やウィン ドウの場所といったデバッガ設定、ならびに現在のターゲットコンフィギュレーショ ンが含まれています。AXD へのコマンドライン引数を使用すると、起動時に用いる特 定のセッションファイルを選択することができます。この方法では、使用するセッショ ンファイルを変更することにより、AXD を特定プロセッサに自動的に接続させること ができます。 この方法には、特に接続するプロセッサを頻繁に変更する場合は、P. 4-22「名前の付い た AXD ターゲットコンフィギュレーションを使用したコンフィギュレーション」で述 べたマルチターゲット方法ほどの柔軟性はありません。しかし、AXD の起動時にプロ セッサを指定しておくことで、より広い範囲での自動化が可能になります。 最初の AXD セッションファイルを構成するには: 1. 使用するターゲットボードに合わせて Multi-ICE サーバが正しく構成されている ことを確認して下さい。 2. AXD を実行します。 3. ターゲットコンフィギュレーションに Multi-ICE を選択します。その後の変更で 混乱しないように、Multi-ICE コンフィギュレーションのコピーを 1 つだけ残し、 [Remove] をクリックしてそれ以外の全てのコンフィギュレーションを削除して おくことを推奨します。 4. ターゲットボード上のいずれかのプロセッサに接続するように Multi-ICE を構成 します。 5. [Options] → [Configure Interface...] を選択します。 6. [Session File] タブの [Reselect Target] オプションをイネーブルします。 このオプションをイネーブルしておかないと、作成したセッションファイルを AXD にロードしてもターゲットは選択されません。 7. 4-24 [OK] をクリックします。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ セッション設定の変更 まずシステム内の各プロセッサに 1 つのセッションファイルを作成する必要がありま す。ターゲットボード上の各プロセッサごとに以下を行って下さい。 1. [Options] → [Configure Target...] を選択します。 2. ターゲットコンフィギュレーションリストから Multi-ICE を選択します。 3. 対象プロセッサに対して Multi-ICE を構成します。 4. Multi-ICE コンフィギュレーションダイアログ内の [OK] をクリックし、そのコン フィギュレーションを確定します。 5. [Configure Target]ダイアログで[OK]をクリックし、対象プロセッサに接続します。 6. AXD がこのプロセッサに接続するときに、特定の実行可能イメージをロードさ せたい場合には: 7. ARM DUI0048EJ-00 a. [File] → [Load Image] をクリックし、対象ファイルをロードします。 b. [Options] → [Configure Interface...] を選択します。 c. [Session File]タブの[Reload Images]オプションをイネーブルします(P. 4-26 図 4-18 参照)。 d. [OK] をクリックします。 例えばプロセッサを特定の状態に設定するために、AXD 起動時にコンフィギュ レーションスクリプトを実行させたい場合には: a. [Options] → [Configure Interface...] を選択します。 b. [Session File] タブの [Run Configuration Script] オプションを選択します。 c. [Browse...] ボタンを使用してコンフィギュレーションスクリプトを検索す るか、またはテキストフィールドにスクリプトの名前を指定します(P. 4-26 図 4-18 参照)。 d. [OK] をクリックします。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-25 Multi-ICE を使用したデバッグ 図 4-18 コンフィギュレーションスクリプトを実行するよう AXD を設定 8. [File] → [Save Session...] を選択し、セッションファイルを保存します。ファイル 拡張子には .ses を必ず使用して下さい。このコンフィギュレーションが接続す るプロセッサを特定できるような名前を付けることを推奨します。 また、セッションファイルはアクセスし易いディレクトリにまとめて保存してお くことをお奨めします。 これで、AXD のコマンドラインから適切なセッションファイルを指定することにより、 接続するプロセッサを選択することができます。例: axd -session C:\sessions\tap1.ses P. 4-27 図 4-19 は、Multi-ICE サーバに接続する 3 つの AXD およびマルチプロセッサ ターゲットの例を示しています。 4-26 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-19 マルチプロセッサターゲット用に構成された 3 つの AXD と Multi-ICE サーバ いくつかの AXD セッションファイルコマンドをスクリプトに書き込むことにより、各 プロセッサに対して 1 つずつ、必要な数の AXD のインスタンスを自動的に起動するこ とができます。例 4-1 および例 4-2 は、このサンプルファイルを示しています。UNIX スクリプトファイルコマンド source ads.cshrc は、ADS 実行ファイルのパスと環 境を設定します。これらのファイルの Windows バージョンは、Multi-ICE をインストー ルしたディレクトリの中の「examples」ディレクトリに収録されています。 注 Windows では pause コマンドが使用されます。これは、Windows では AXD の複数の コピーを同時にロードすることが不可能なためです。pause コマンドはユーザがキー を押すまで待機するため、AXD のコピーをロードして初期化するごとにキーを押す必 要があります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-27 Multi-ICE を使用したデバッグ 例 4-1 Windows バッチファイル start axd -session C:\sessions\tap0.ses pause start axd -session C:\sessions\tap1.ses pause start axd -session C:\sessions\tap2.ses 例 4-2 Unix シェルスクリプト source ads.cshrc axd -session sessions/tap0.ses & axd -session sessions/tap1.ses & axd -session sessions/tap2.ses & デスクトップ上にプロセッサごとのショートカットを作成することができます。この ショートカットを Windows で作成するには: 1. デスクトップ上で右クリックし、コンテキストメニューを表示させます。 2. [New] → [Shortcut] を選択します。 3. [Create Shortcut] ダイアログボックスで、[Browse] をクリックします。 4. ブラウズダイアログを使用して、AXD.exe を探します。AXD をデフォルトの場 所にインストールした場合、このファイルは C:\Program Files\ARM\ ADSv1_1\Bin\axd.exe にあります。 5. [Open] をクリックします。 6. [End] キーを押して行の終わりまでカーソルを動かし、スペースを 1 つ入れた後 に以下を入力します。 -session “C:\sessions\tap0.ses” これで画面には以下のような行が表示されているはずです。 "C:\Program Files\ARM\ADSv1_1\Bin\axd.exe" -session “C:\sessions\tap0.ses” 7. [Next>] をクリックします。 8. このショートカットに付ける名前を入力します(例:AXD on Tap0)。 9. [Finish] をクリックします。 このショートカットをダブルクリックすると AXD が起動し、セッションファイルに保 存された設定を使用して構成済みのプロセッサに自動的に接続します。 4-28 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ UNIX デスクトップも同様の方法で構成することができます。デスクトップ環境(CDE、 OpenWindows 等) の詳細については、使用しているシステムの説明書を参照して下さい。 注 セッションファイル内の設定を変更する場合は、このファイルを保存し直す必要があ ります。設定を変更しても、AXD は起動時に使用するセッションファイルを自動的に 更新しません。 CodeWarrior からのセッションの使用 セッションの設定を完了した後で、[Run] ボタンをクリックすることによって自動的に セッションの 1 つが選択されるように CodeWarrior を構成することができます。プロ セッサごとに異なる CodeWarrior プロジェクトを割り当てる場合には、この方法が最も 適しています。この方法を選択しない場合は、異なるプロセッサを使用するたびにプ ロジェクトの設定を変更する必要があります。 特定のセッションにおいて AXD にロードするプロジェクトを構成するには: 1. CodeWarrior IDE においてプロジェクト設定ダイアログを表示させ、settings のツ リー内で [ARM Runner in the Debugger section] を選択します。 2. [Choose Debugger] タブを選択します。 3. [AXD] を選択する。 4. [Equivalent Command Line] コントロールにおいて、-session パラメータを入 力します(P. 4-25「セッション設定の変更」参照)。 例: axd -session C:\sessions\tap0.ses -exec &1 注 -session パラメータとセッションファイル名を続けて入力し、コマンドライン 内で -debug または -exec パラメータよりも前に置く必要があります。 5. [Save] をクリックしてダイアログボックスを閉じます。 注意 このパネル内の他の設定を後で変更する場合は、-session 引数を再度入力する必要 があります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-29 Multi-ICE を使用したデバッグ 4.5 デバッガ内部変数 常に存在するデバッガ内部変数については、関連するデバッガユーザガイドを参照し て下さい。このセクションでは、Multi-ICE ソフトウェアのインストールによって使用 可能になる他のデバッガ内部変数について説明します。このセクションは以下のサブ セクションで構成されています。 • デバッガ内部変数へのアクセス:P. 4-30 • • 4.5.1 プロセッサごとの内部変数のサポート:P. 4-30 内部変数の記述:P. 4-33 デバッガ内部変数へのアクセス デバッガ内部変数は、デバッガの動作、言い換えればデバッガによるターゲットへの アクセス方法を制御する値です。いくつかの変数はフロントエンドデバッガを制御し ます(例:searchpath)。それ以外の変数を使用して、Multi-ICE コンフィギュレー ションダイアログを使用せずに Multi-ICE の動作を制御することができます。 AXD では、プロセッサアイコン上でマウスの右ボタンをクリックして表示される [Properties] メニューを使用して、vector_catch、vector_address、 semihosting_enabled、semihosting_dcchandler_address の全ての変数にア クセスすることができます。 また、他の変数には AXD の [Debugger Internals] ウィンドウからアクセスすることが 可能です。 4.5.2 プロセッサごとの内部変数のサポート 使用可能な変数セットは、選択するプロセッサによって多少左右されます。例えば、シ ステムコプロセッサに関連する変数は、システムコプロセッサが存在しないプロセッ サでは使用できません。 P. 4-31 表 4-1、P. 4-32 表 4-2、P. 4-32 表 4-3 は、各プロセッサグループで使用可能な変 数を示しています。機能の説明ならびに変数に使用できる値については、P. 4-33「内部 変数の記述」を参照して下さい。 デルタマーク ∆ の付いた変数は、ADS v1.1 AXD では使用されません。AXD および Multi-ICE バージョン 2.1 はデバッガにターゲットを通知するメカニズムをサポートし ているため、これらの変数は不要です。 4-30 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ シグママーク Σ の付いた変数は AXD プロパティインタフェースに組込まれており、デ バッガ内部変数リストには表示されません。 表 4-1 ARM7 ファミリがサポートするデバッガ変数 変数名 ARM7a ARM7Tb KS32C50100 ARM7xxTc user_input_bit [1,2] ○ ○ ○ ○ user_output_bit [1,2] ○ ○ ○ ○ vector_address Σ × × × ○d safe_non_vector_address ○ ○ ○ ○ cp15_current_memory_area ∆ × × × ○e system_reset ○ ○ ○ ○ semihosting_enabled =0 or =1 Σ ○ ○ ○ ○ semihosting_enabled =2 Σ × ○ ○ ○ semihosting_dcchandler_address Σ × ○ ○ ○ ks32c_special_base_address × × ○ × sw_breakpoints_preferred ○ ○ ○ ○ cp_access_code_address ○ ○ ○ ○ internal_cache_enabled ○ ○ ○ ○ internal_cache_flush ○ ○ ○ ○ top_of_memory ○ ○ ○ ○ icebreaker_lockedpoints ○ ○ ○ ○ a. ARM7 には、ARM7DI、ARM7DMI、ならびにこれらのコアを使用するデバイスが含まれます。 b. ARM7T には、ARM7TDI、ARM7TDMI、ARM7TDI-S、ARM7TDMI-S、ならびにこれらのコア を使用するデバイスが含まれます。 c. ARM7xxT には、ARM710T™、ARM720T™、ARM740T™ が含まれます。 d. ARM720T のみです。 e. ARM740T のみです。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-31 Multi-ICE を使用したデバッグ 表 4-2 ARM9 ファミリがサポートするデバッガ変数 変数名 ARM9Ta ARM9xxTb ARM9E-S ARM9xxE-Sc user_input_bit [1,2] ○ ○ ○ ○ user_output_bit [1,2] ○ ○ ○ ○ vector_address Σ No ○d ○e ○ safe_non_vector_address ○ ○ ○ ○ system_reset ○ ○ ○ ○ cp15_cache_selected ∆ × ○ × ○ cp15_current_memory_area ∆ × ○f × ○g cp_access_code_address × ○ × ○ semihosting_enabled Σ ○ ○ ○ ○ semihosting_dcchandler_address Σ ○ ○ ○ ○ sw_breakpoints_preferred ○ ○ ○ ○ internal_cache_enabled ○ ○ ○ ○ internal_cache_flush ○ ○ ○ ○ top_of_memory ○ ○ ○ ○ icebreaker_lockedpoints ○ ○ ○ ○ a. b. c. d. e. f. g. ARM9T には、ARM9TDMI™ およびこのコアを使用するデバイスが含まれます。 ARM9xxT には、ARM920T、ARM922T™、ARM925T™、ARM940T が含まれます。 ARM946E-S および ARM966E-S が含まれます。 ARM940T(Rev0)を除きます。 システムコプロセッサは存在しません。 ARM920T のみです。 ARM946E-S のみです。 表 4-3 ARM10 ファミリ /XScale マイクロアーキテクチャがサポートするデバッガ変数 4-32 Variable name ARM1020Ta XScale user_input_bit [1,2] ○ ○ user_output_bit [1,2] ○ ○ vector_address Σ ○ × Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 表 4-3 ARM10 ファミリ /XScale マイクロアーキテクチャがサポートするデバッガ変数(続き) マイクロアーキテクチャがサポートするデバッガ変数(続き) Variable name ARM1020Ta XScale safe_non_vector_address × × system_reset ○ ○ cp15_cache_selected ∆ ○ × semihosting_enabled Σ ○ ○ semihosting_dcchandler_address Σ ○ × sw_breakpoints_preferred ○ ○ internal_cache_enabled ○ ○ internal_cache_flush ○ ○ top_of_memory ○ ○ icebreaker_lockedpoints × × a. ARM1020T™ を含みます。 4.5.3 内部変数の記述 このセクションでは、Multi-ICE を使用時にデバッガ上で使用できるデバッガ内部変数 を紹介します。これらの変数の読み書きの方法については、使用するデバッガの説明 書を参照して下さい。 cp_access_code_address コプロセッサ命令の読み出しまたは書き込み中に Multi-ICE が使用でき る 40 バイト以上のメモリエリアを指定します。Multi-ICE はこのメモリ を使用した後で、元の値を再ロードします。このメモリエリアは読み出 し可能、書き込み可能、実行可能である必要があります。 cp15_cache_selected ハーバードアーキテクチャプロセッサでのみ使用できます。ARM9 ファ ミリと ARM10 ファミリはこれに含まれますが、ARM7 ファミリは含ま れません。XScale プロセッサではこの変数を使用できません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-33 Multi-ICE を使用したデバッグ 注 AXD を使用している場合、この変数を使用することはできません。その 代わり、Multi-ICE がターゲットのコプロセッサレジスタ名とアクセス情 報を AXD に伝えます。AXD は通知されたレジスタをプロセッサレジス タビューに組込み、ユーザは必要に応じてその値を確認し、修正するこ とができます。 この変数は読み出し / 書き込みが行われる CP15 レジスタのエイリアスを 通知します。この変数の値には、表 4-4 の中から 1 つを選択して下さい。 表 4-4 キャッシュ選択タイプの値 値 CPU タイプ 説明 0 ARM9 または ARM10 データキャッシュ(DCache)を選択します。 (ハーバード)コア 1 ARM9 または ARM10 命令キャッシュ(ICache)を選択します。 (ハーバード)コア 2 ARM946E-S、 ARM966E-S 密結合した命令メモリを選択します。 3 ARM946E-S、 ARM966E-S 密結合したデータメモリを選択します。 CP15レジスタへのアクセスに関する詳しい情報については、付録E「CP15 レジスタのマッピング」または使用するプロセッサの ARM テクニカル リファレンスマニュアルを参照して下さい。 cp15_current_memory_area (0-7=Memory areas 0-7) ARM740T および ARM940T プロセッサのレジスタ 6 へのアクセスに使用 されるメモリエリアを選択します。ARM940T プロセッサの場合、変数 cp15_cache_selected によってデータアクセスと命令アクセスのど ちらであるかが選択されます。CP15 レジスタに関する詳しい情報につい ては、付録 E「CP15 レジスタのマッピング」を参照して下さい。 注 AXD を使用している場合、この変数を使用することはできません。その 代わり、Multi-ICE がターゲットのコプロセッサレジスタ名とアクセス情 報を AXD に伝えます。AXD は通知されたレジスタをプロセッサレジス タビューに組込み、ユーザは必要に応じてその値を確認し、修正するこ とができます。 4-34 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ icebreaker_lockedpoints この変数は EmbeddedICE ロジックウォッチポイントレジスタへのユーザ アクセスを制御します。この変数はビットマスクとして機能し、ビット 0 がウォッチポイントユニット 0 に、ビット 1 がウォッチポイントユニッ ト 1 に関連付けられます。IEU がプロセッサに組込まれている場合、ビッ ト 2 は IEU ユニット 0 に、ビット 3 は IEU ユニット 1 に、ビット 31 は IEU ユニット 29 に関連付けられます。 ビットマスク内のビットがセット (1) されると、Multi-ICE は関連付けら れたウォッチポイントユニットを使用しません。そのビットがクリア (0) されると、Multi-ICE は関連付けられたユニットを使用できるようになり ます。詳細については、P. 4-60「EmbeddedICE ロジック値の使用」を参 照して下さい。 internal_cache_enabled (0=disabled, 1=enabled) Multi-ICE DLL 内のメモリキャッシュの動作を制御します。AXD の起動 時、この変数には Multi-ICE の [Advanced Settings] ウィンドウ内の [Cache Enabled] フラグと同じ値が使用されます。ユーザはこの値を変更して初 期値をオーバライドすることにより、キャッシュをイネーブルまたは ディセーブルすることができます。 internal_cache_flush この変数には必ず 0 をセットします。この変数に 0 以外の値をセットす ると、Multi-ICE 内部メモリキャッシュがフラッシュされます。 ks32c_special_base_address Samsung KS32C50100 プロセッサの特別なシステムレジスタのアドレス を保持します。これらのレジスタは数多くのメモリページの 1 つにマッ プすることができますが、デバイスにその位置を問い合わせることはで きません。このバンク内の 1 つのレジスタは、Multi-ICE キャッシュ操作 コードに使用されます。 safe_non_vector_address この変数はデフォルトで 0x10000 に設定されます。この変数には、 vector_address で始まる 64KB のメモリブロックにオーバラップしな い 64KB メモリエリアのベースアドレスを設定する必要があります。参 照されるメモリブロックは安全なものである必要があります。その理由 は、Multi-ICE DLL がこのエリアからの読み出しを発生させる可能性があ り、これらの読み出しによる悪影響があってはならないからです。メモ リの読み出しによってデータアボートを発生させたり、I/O デバイスに影 響を与えるようなことがあってはなりません。Multi-ICE によってこのメ モリエリアへの書き込みが行われることはありません。 semihosting_dcchandler_address semihosting_enabled の値が 2 に設定されているとき、 semihosting_dcchandler_address の値は SWI ハンドラのアドレス となります(P. 4-43「セミホスティング」参照)。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-35 Multi-ICE を使用したデバッグ semihosting_enabled Multi-ICE DLL のセミホスティング機能を制御します(P. 4-43「セミホス ティング」参照)。 sw_breakpoints_preferred ブレークポイント選択アルゴリズムを制御します。この変数に 0 以外の 値が設定されていると、ブレークポイント選択アルゴリズムは可能な限 り(例えば、ROM 内にはソフトウェアブレークポイントを設定しませ ん)ソフトウェアブレークポイントの使用を選択します。 この変数に 0 が設定されていると、要求されたブレークポイントの数が 使用可能なハードウェアブレークポイントユニットの数を超えない限 り、ブレークポイント選択アルゴリズムはハードウェアブレークポイン トの使用を選択します。詳細については、付録 B「ブレークポイント選 択アルゴリズム」を参照して下さい。 system_reset この変数を読み出すと、常に 0 が返されます。0 以外の値が書き込まれ た場合、約 250ms のリセットパルスを使用してターゲットボードがすぐ にリセットされます。 top_of_memory C ライブラリがスタック空間に使用するメモリの最上位アドレスを定義 します。この変数の値は、SYS_HEAPINFO セミホスティング SWI 呼び 出しによってターゲットに転送されます。この変数のデフォルト値は 0x80000 であり、その場合はスタックにプッシュされた最初のワードが 0x7FFFC に書き込まれます。 SYS_HEAPINFO のために、Multi-ICE は図 4-20 が示すメモリマップを想定 します。 図 4-20 1 セクションのプログラムレイアウトに対する top_of_memory の位置付け 4-36 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 注 • アプリケーションを分散ロードする場合、そのアプリケーション にはスタックとヒープの範囲を定義するユーザ定義関数 (__user_initial_stackheap)が組込まれている必要がありま す。したがって、このアプリケーションが SYS_HEAPINFO を明示 的に呼び出さなければ、ターゲットは top_of_memory の値を無 視します。 • top_of_memory の値は、プログラムのベースアドレスとプログ ラムサイズの合計よりも大きな値にする必要があります。不正な 値を設定すると、スタックの破損により、あるいはプログラムが 自己コードを上書きすることにより、クラッシュが発生する可能 性があります。 • top_of_memory がそのメモリの実際の最上位にある必要はあり ません。C またはアセンブラプログラムはこれよりも上位アドレス にあるメモリを使用することができます。 user_input_bit1, user_input_bit2 これらの変数は、2 つのユーザ入力ビットの状態を示します。これらの 変数に対するポーリングは行われないため、[Debugger Internals] ウィン ドウが表示された時点、コアが最後に停止した時点、あるいはコマンド ラインからのコマンドが実行された時点におけるユーザビットの状態が 表示されます。 user_output_bit1, user_output_bit2 これらの変数によってユーザ出力ビットの状態を変更することができま す。出力ビットは、この接続に出力ビットが割り当てられており、[Set by Driver] オプションがイネーブルされている場合にのみ変更できます。 ユーザ出力ビットは、[Settings] メニューの [User Output Bits] を使用し てサーバに設定することができます(P. 3-19「ユーザ出力ビットダイア ログ」参照)。ポーリングは行われないため、[Debugger Internals] ウィン ドウが表示された時点、あるいはコマンドラインからのコマンドが実行 された時点における状態が表示されます。 vector_address この変数は、ARM720T™ や ARM920T 等のベクタテーブルの位置を変更 可能なプロセッサにのみ適用可能です。この変数は Multi-ICE に例外ベ クタテーブルの位置を通知します。デフォルト値には、最後にプロセッ サが停止したときの最新のベクタアドレスが使用されます。このアドレ スは、CP15 レジスタ 1 の V ビットの読み出しによって決定されます。こ のアドレスには 0 または 0xFFFF0000 のどちらかを設定することができ ます。このアドレスには読み出し可能なメモリが存在している必要があ ります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-37 Multi-ICE を使用したデバッグ 4.6 事後分析デバッグ このセクションでは、それまで実行されていたものの現在は Multi-ICE に接続していな いシステムの状態を検査する方法について説明します。例えば、これによってプログ ラムが停止した原因を特定することができます。 Multi-ICE を使用して実行中のターゲットを検査する前に、そのターゲットに合わせて Multi-ICE インタフェースユニットとサーバを構成する必要があります。Multi-ICE イン タフェースユニットが接続されていない状態で動作しているターゲットの場合に、そ のターゲットが特定の動作を見せる理由を知る必要があるときは、Multi-ICE インタ フェースユニットを起動し、そのターゲットの状態に干渉せずにサーバを構成する必 要があります。そのためには、Multi-ICE インタフェースユニットをターゲットに接続 する前に起動する必要があります。以下では、考え得る Multi-ICE の起動方法について 説明します。 4.6.1 • パワージャックを使用したインタフェースユニットの起動(Multi-ICE バージョ ン 2.1):P. 4-38 • 修正ケーブルを使用したインタフェースユニットの起動:P. 4-39 • 14 ウェイ JTAG アダプタ HPI-0027 を使用したインタフェースユニットの起動: P. 4-40 パワージャックを使用したインタフェースユニットの起動(Multi-ICE バージョン 2.1) ) パワージャックを使用したインタフェースユニットの起動( Multi-ICE バージョン 2.1 付属の Multi-ICE インタフェースハードウェアには以下が含ま れています。 • JTAG コネクタに隣接するパワー入力ジャックソケット • パワー調整 / スイッチ回路。これによってターゲットに影響を及ぼすことなく JTAG ケーブルを抜き差しすることができます。 パワージャックには 2.1mm 中心正極性プラグを使用できます。電源には 9V ~ 12V DC の出力電圧、最低連続出力定格 200mA のものを使用することができます。 注 インタフェースユニットの JTAG 回路に使用される基準電圧は、JTAG コネクタの VTref シグナルから生成されます。このシグナルがターゲットで接続されていない場合は、 ターゲットまたは JTAG ケーブルを修正して適切な基準を与える必要があります。一 般的に、VTref を Vsupply に接続すれば十分です。 実行中のターゲットに接続するには: 1. 4-38 Multi-ICE インタフェースユニットがターゲットからまだ起動されていないこと を確認します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 2. ターゲットがアダプタに接続していない場合に JTAG 入力ラインが静止状態にな るよう、入力ライン TDI、TMS、nSRST、nTRST にはプルアップ抵抗(通常基 準)を、TCK にはプルダウン抵抗を実装する必要があります。 3. パワージャックをインタフェースユニットに接続します。 4. Multi-ICE サーバを構成します。サーバは手動で構成するか、あるいは別のテス トシステムを使用して自動コンフィギュレーションを実行する必要があります。 サーバはそのまま動作させておきます。 注 デバッグの必要があるターゲットで自動コンフィギュレーション機能は使用し ないで下さい。これを実行すると、プロセッサがリセットされます。 5. 20 ウェイ JTAG ケーブルをターゲットに接続します。 6. デバッガを起動します。その後デバッガはプロセッサを停止させ、停止した状態 を表示します。 問題のハイレベルビュー(ソースコード)を得るには、ターゲットプログラムの シンボルテーブルをデバッガにロードする必要があります。AXD では、[File] → [Load debug symbols...] を選択します。ADW または ADU では、[File] → [Load debug symbols...] を選択します。 7. 4.6.2 [Go] ボタンまたは [Run] ボタンを押し、JTAG コネクタを外してシステムを再始 動させます。その後、デバッガを終了します。 修正ケーブルを使用したインタフェースユニットの起動 注 Multi-ICE バージョン 2.1 のインタフェースユニットを使用し、ターゲットに 20 ウェイ JTAG コネクタがある場合には、この方法を使用して下さい。 修正ケーブルを使用して実行中のターゲットに接続するには: ARM DUI0048EJ-00 1. Multi-ICE インタフェースユニットがターゲットからまだ起動されていないこと を確認します。 2. IDC ケーブルをピン 1(VTref)、ピン 2(Vsupply)、GND に分割します。 3. Multi-ICE インタフェースユニットを起動するために Vsupply と GND 間に 5V の 電源を接続します。ただし、スイッチはまだ入れないで下さい。 4. 使用するターゲットに適切な電圧を、1kΩ 抵抗を介して 20 ウェイ Multi-ICE コネ クタのピン 1(VTref)に接続します。VTref に必要な電源電流はごくわずかで す。ターゲットが 3.3V または 5V ロジックを使用している場合、この基準電圧に は Multi-ICE インタフェースユニットの起動に使用したときと同じ電源を使用す Copyright © 1998-2001 ARM Limited. All rights reserved. 4-39 Multi-ICE を使用したデバッグ ることができます。使用するターゲットがより低い電圧で動作する場合には、そ の電圧を VTref に適用する必要があります(VTref の詳細については、第 6 章 「システム設計ガイドライン」を参照して下さい)。 5. ターゲットからケーブルを外したときに JTAG 入力ラインが静止状態になるよ う、入力ライン TDI、TMS、nSRST、nTRST にはプルアップ抵抗(通常基準) を、TCK にはプルダウン抵抗を実装する必要があります。 6. Vsupply と GND 間、ならびに VTref と GND 間の電源を入れます。Multi-ICE イ ンタフェースユニットの電源ランプが明るく点灯します。 7. Multi-ICE サーバを構成します。サーバは手動で構成するか、あるいは別のテス トシステムを使用して自動コンフィギュレーションを実行する必要があります。 サーバはそのまま動作させておきます。 注 デバッグの必要があるターゲットで自動コンフィギュレーション機能は使用し ないで下さい。これを実行すると、プロセッサがリセットされます。 8. 20 ウェイ JTAG ケーブルをターゲットに接続します。 9. デバッガを起動します。その後デバッガはプロセッサを停止させ、停止した状態 を表示します。 問題のハイレベルビュー(ソースコード)を得るには、ターゲットプログラムの シンボルテーブルをデバッガにロードする必要があります。AXD では、[File] → [Load debug symbols...] を選択します。ADW または ADU では、[File] → [Load debug symbols...] を選択します。 10. 4.6.3 [Go] ボタンまたは [Run] ボタンを押し、JTAG コネクタを外してシステムを再始 動させます。その後、デバッガを終了します。 14 ウェイ JTAG アダプタ HPI-0027 を使用したインタフェースユニットの起動 オプションの 14 ウェイアダプタを使用して実行中のターゲットに接続するには: 4-40 1. Multi-ICE インタフェースユニットがターゲットからまだ起動されていないこと を確認します。 2. 14 ウェイアダプタのコネクタ J3 のリンクを外し、5V 電源を +5V ピンと 0V ピン に接続します。VTref シグナルはターゲット電源に永久的に接続します。 3. ターゲットからアダプタを外したときに JTAG 入力ラインが静止状態になるよ う、入力ライン TDI、TMS、nSRST、nTRST にはプルアップ抵抗(通常基準) を、TCK にはプルダウン抵抗を実装する必要があります。 4. Vsupply と GND 間の電源を入れます。Multi-ICE インタフェースユニットの電源 ランプが明るく点灯します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 5. Multi-ICE サーバを構成します。サーバは手動で構成するか、あるいは別のテス トシステムを使用して自動コンフィギュレーションを実行する必要があります。 サーバはそのまま動作させておきます。 注 デバッグの必要があるターゲットで自動コンフィギュレーション機能は使用し ないで下さい。これを実行すると、プロセッサがリセットされます。 6. 20 ウェイ JTAG ケーブルをターゲットに接続します。 7. デバッガを起動します。その後デバッガはプロセッサを停止させ、停止した状態 を表示します。 問題のハイレベルビュー(ソースコード)を得るには、ターゲットプログラムの シンボルテーブルをデバッガにロードする必要があります。AXD では、[File] → [Load debug symbols...] を選択します。ADW または ADU では、[File] → [Load debug symbols...] を選択します。 8. ARM DUI0048EJ-00 [Go] ボタンまたは [Run] ボタンを押し、JTAG コネクタを外してシステムを再始 動させます。その後、デバッガを終了します。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-41 Multi-ICE を使用したデバッグ 4.7 CP15 へのアクセス Multi-ICE はコプロセッサをサポートしています。ARM プロセッサの記述の中には、シ ステム制御コプロセッサ CP15 の記述が含まれているため、コプロセッサをデバッガに 記述する必要はありません。 ARM コプロセッサアーキテクチャの一般的な記述および CP15 の汎用形式については、 ARM Architecture Reference Manual を参照して下さい。使用しているプロセッサの詳し い機能については、そのプロセッサのテクニカルリファレンスマニュアルを参照して 下さい。これらの資料の多くは PDF 形式で ARM の Web サイト上で提供しています。 また、ご要望に応じて紙の資料も提供しています。補足情報については、付録 E「CP15 レジスタのマッピング」を参照して下さい。 4-42 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 4.8 セミホスティング セミホスティングにより、ARM プロセッサターゲットはデバッガ実行中のコンピュー タに I/O 要求を発行することができます。したがって開発期間中には、ターゲットには 画面、キーボード、ディスクのいずれも不要です。これらの要求は、C ライブラリ関数 (例:printf()、getenv())への呼び出しの結果として発行されます。以下のセク ションでは、Multi-ICE を使用したセミホスティングについて説明します。 • • 4.8.1 セミホスティングのイネーブル:P. 4-43 Multi-ICE 使用時のアプリケーション SWI ハンドラの追加:P. 4-45 セミホスティングのイネーブル Multi-ICE DLL を使用しているとき、セミホスティングは実 SWI 例外ハンドラに、ある いはブレークポイントを使用したハンドラのエミュレートによって処理されます。こ のセミホスティング方法は、以下のデバッガ内部変数を使用して変更することが可能 です。 semihosting_enabled デフォルトではこの変数に1を設定して、ブレークポイントセミホスティ ングがイネーブルされますが、以下の値を設定することができます。 0 セミホスティングをディセーブルします。 1 ブレークポイントベースの SWI ハンドラのエミュレーション を使用する開始 - 停止セミホスティングをイネーブルします。 2 ホストとの通信に DCCを用いる例外ハンドラを使用するDCC セミホスティングをイネーブルします。 vector_catch の S ビットを、semihosting_enabled の変更に使用す ることはできません。 semihosting_vector この変数は、Multi-ICE DLL によって設定されたブレークポイントの位置 を制御し、セミホスティングされたSWIを検出します。vector_address が上位ベクタの使用を指定していない限り、この変数にはデフォルトで 8 が設定されます。 ADW および ADU の場合、これらの変数には [View] メニューから [Debugger Internals] を選択することによってアクセスできます。AXD の場合、デバッガ内部変数には専用 ウィンドウからアクセスします。詳細については、ADS デバッガガイドを参照して下 さい。 開始 - 停止セミホスティング 開始 - 停止セミホスティング、つまり標準的なセミホスティングでは、 semihosting_vector の値により、レークポイントを SWI ベクタに、あるいはユーザ 定義の SWI ハンドラと関係する場所に設定します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-43 Multi-ICE を使用したデバッグ ブレークポイントにヒットすると、Multi-ICE はこれをセミホスティング要求として解 釈します。 • プロセッサレジスタとメモリが必要に応じて読み出され、要求がデコードされ ます。 • この要求がホストで実行されます。 • 戻り値がレジスタ R0 に保存され、必要に応じてメモリが修正されます。 • 次の命令が SWI の次の命令になるように、pc が修正されます。 • 実行が再開されます。 注 Multi-ICE の標準セミホスティングは、時間に厳密な割込み駆動型ソフトウェアを組込 んだシステムに使用しないことを推奨します。セミホスティング命令が実行されてい る間はプロセッサを停止させる必要があるため、割込みが無視されることがあります。 これらのシステムのデバッグには、P. 4-44「DCC セミホスティング」または ARM RealMonitor を使用して下さい。 SWI ベクタ上のブレークポイントは、他の目的に使用される可能性のあるブレークポ イントリソースを使用します。 DCC セミホスティング DCC セミホスティングには、標準的なブレークポイントベースのセミホスティングと 比較して 2 つのメリットがあります。 • • ほとんどの場合において実行速度がより速くなります。 ターゲットプロセッサがデバッグ状態にならないため、割込み処理を継続させる ことができます。 DCC セミホスティングではターゲットへの干渉度が高くなるため、初期セミホスティ ングモードには標準セミホスティングが設定されています。 DCC セミホスティングではプロセッサが停止しないため、リアルタイムシステムには このセミホスティング方法がより適しています。また、DCC セミホスティングはプロ セッサの自動始動 / 停止に干渉しないため、JTAG チェインで複数プロセッサを使用す るターゲットにも有効です。 DCC セミホスティングがイネーブルされている間は、DCC を他の目的(チャネルビュー ワ等)に使用することはできません。 DCC セミホスティング SWI ハンドラは、変数 semihosting_dcchandler_address に指定されたアドレスのターゲットメモリにインストールされます。デバッガがハン ドラを書き込むメモリは必ず未使用メモリでなければなりません。 SWI ハンドラのサイズは 0.75KB 以下であり、以下の場合には必ずメモリに書き込まれ ます。 • 4-44 semihosting_enabled に 2 を設定することによって DCC セミホスティングが イネーブルされている場合 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ • semihosting_dcchandler_address が変更され、DCC セミホスティングが 既にイネーブルされている場合 semihosting_dcchandler_address のデフォルト値は 0x70000 です。ハンドラの 位置を変更するには、以下を行う必要があります。 1. semihosting_enabled に 0 を設定してセミホスティングをディセーブルしま す。 2. 変数 semihosting_dcchandler_address に新規の値を設定し、ハンドラの アドレスを変更します。 3. semihosting_enabled に 2 を設定し、DCC セミホスティングをイネーブルし ます。 注 Rev C 以前の AMBA ラッパを使用するプロセッサには、DCC セミホスティング (semihosting_enabled=2)は使用できません。代わりに semihosting_enabled=1(開始 - 停止セミホスティング)を使用して下さい。 4.8.2 Multi-ICE 使用時のアプリケーション SWI ハンドラの追加 多くのアプリケーションは、セミホスティング SWI 以外にも専用の SWI ハンドラを必 要とします。アプリケーション SWI ハンドラが Multi-ICE のセミホスティング方法と 協調して機能するよう、以下を行う必要があります。 1. アプリケーション SWI ハンドラをベクタテーブルにインストールします。 2. 標準セミホスティングの場合は、ハンドラが SWI を認識しない場合にのみ、あ るいはこれをセミホスティング SWI として認識する場合にのみ到達する位置を 指すように、semihosting_vector の値を修正します。 3. DCC セミホスティングの場合は、アプリケーション SWI ハンドラを SWI ベクタ にインストールします。アプリケーションが認識しない SWI が発生すると、プ ロセッサが SWI ハンドラに入ったときの状態で semihosting_dcchandler_address+12 に分岐します。DCC セミホスティン グハンドラはその要求を実行し、呼び出しコードに戻ります。 例えば、ある SWI ハンドラでは SWI の処理に失敗したかどうかを検出し、エラーハン ドラに分岐することも考えられます(SWI ハンドラの記述に関しては、ADS の説明書 を参照して下さい)。P. 4-46 例 4-3 は、基本的な例外ハンドラの一例を示しています。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-45 Multi-ICE を使用したデバッグ 例 4-3 基本的な SWI ハンドラ CMP r0, #1 BNE NoSuchSWI LDMFD sp!, {r0} MSR spsr_cf, r0 LDMFD sp!, {r0-r12, pc}^ ; ; ; ; ; ; r0 = 1 if SWI handled Test if SWI has been handled. Call unknown SWI handler. Unstack SPSR... ...and restore it. Restore registers and return. 例 4-4 が示すように、このコードは Multi-ICE 開始 - 停止セミホスティングと組み合わ せて使用するように修正することができます。 例 4-4 Multi-ICE とリンクさせた SWI ハンドラ ; CMP r0, #1 ; LDMFD sp!, {r0} ; MSR spsr_cf, r0 ; LDMFD sp!, {r0-r12, lr} ; MOVEQS pc, lr ; Semi_SWI MOVS pc,lr r0 = 1 if SWI handled Test if SWI has been handled. Unstack SPSR... ...and restore it. Restore registers. Return if SWI handled. 次に、Semi_SWI のアドレスで semihosting_vector を設定する必要があります。 Multi-ICE DLL はセミホスティングされた SWI の処理後にすぐアプリケーションに戻 るため、このアドレスにある命令が実際に実行されることはありません。正規の SWI リターン命令を使用すれば、セミホスティングブレークポイントが設定されていなく てもアプリケーションはクラッシュしません。 アプリケーションがセミホスティングされた ARM C ライブラリとリンクしており、そ のために C ライブラリのスタートアップコードが使用される場合には、アプリケーショ ンが専用ハンドラをインストールする直前に、通常はメインコードにブレークポイント を設定して semihosting_vector の内容を変更する必要があります。これは、アプ リケーション実行開始前に semihosting_vector にアプリケーション SWI ハンドラ の不良部分が設定されていると、ライブラリの初期化によって呼び出されるセミホス テッド SWI が未知のウォッチポイントエラーをトリガする可能性があるためです。こ の時点では、SWI ベクタにはまだアプリケーションハンドラが書き込まれておらず、ソ フトウェアブレークポイントのビットパタンを保持している可能性があります。 semihosting_vector のアドレスが現在到達不可能な場所に移動しているため、これ によってMulti-ICE DLLが認識しないブレークポイントがトリガされることになります。 4-46 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 注 スタートアップコードを含め、アプリケーションにセミホスティングを必要としない 場合には、semihosting_enabled に 0 を設定してこのプロセスを単純化することが できます。 それまで Angel デバッグモニタと合わせて実行していたアプリケーションを Multi-ICE システムに移行する場合には、注意が必要です。通常 Angel デバッグモニタシステム では、アプリケーション SWI ハンドラは Angel がインストールした SWI ベクタを別の 場所に移動・調整し、アプリケーション SWI ハンドラをその SWI ベクタにインストー ルすることによって追加されます。SWI ベクタから移動させる命令も、ジャンプ先の コードも存在しないため、この方法を Multi-ICE DLL に適用することはできません。し たがって、アプリケーションを Multi-ICE ベースのシステムに移行する場合には、 Multi-ICE によるアプリケーションとセミホステッド SWI ハンドラのインストール方法 に変換する必要があります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-47 Multi-ICE を使用したデバッグ 4.9 ウォッチポイントとブレークポイント ARM デバッガには Multi-ICE ターゲットに対するブレーク / ウォッチ機能があります。 以下のセクションでは、実装されている機能とその使用方法について説明します。 • ウォッチポイント:P. 4-48 • • • • • ブレークポイント:P. 4-49 ウォッチポイント、ブレークポイント、プログラムカウンタ:P. 4-49 ベクタブレークポイントと例外:P. 4-50 ROM 0x0 におけるベクタキャッチ:P. 4-51 プロセッサの停止:P. 4-51 ブレークポイントハードウェアの管理に関する詳しい説明については、付録 B「ブレー クポイント選択アルゴリズム」を参照して下さい。 4.9.1 ウォッチポイント ARM デバッガのウォッチポイントは全てデータ変更型ウォッチポイントです。つまり、 データポイントが現在メモリ内にあるデータと同じ値で読み出し/書き込みが行われる と、そのウォッチポイントは作用しません。他の形式のウォッチポイントの実装方法 については、P. 4-56「EmbeddedICE ロジックへの直接アクセス」を参照して下さい。 ハードウェアウォッチポイントとソフトウェアウォッチポイント EmbeddedICE ロジックポイントを使用してハードウェアウォッチポイントを実装する ことにより、マスクされたアドレスへのデータの書き込みを検出することができます。 関連データの書き込み時にのみ実行が停止するため、このタイプのウォッチポイント は効率的です。ただし、このウォッチポイントは EmbeddedICE ロジックポイントに完 全に依存します。 注 構造体または配列にウォッチポイントが設定されている場合、このマスクにはウォッ チポイント設定対象以外のいくつかのアドレスが含まれることがあります。この場合、 これらの不要なアドレスへの書き込みはデバッガによって排除されます。不要な ウォッチポイントにヒットするとプロセッサが停止し、そのたびにデバッガが自動的 にプロセッサを再始動させるため、実行パフォーマンスが若干低下します。 ソフトウェアウォッチポイントは EmbeddedICE ロジックを異なる方法で使用します。 命 令が実行されるたびに関連するデータ位置が検査され、値が変更されたかどうかが チェックされます。値が変更されていると、実行が停止します。変更されていなければ 実行が再開されます。このタイプのウォッチポイントは実行パフォーマンスを大幅に低 下させます。さらにこのタイプのウォッチポイントは、メモリマップデバイスレジスタ に見られるような、書き込み専用メモリエリアには使用できません。 4-48 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 4.9.2 ブレークポイント 現在のブレークポイントまたはウォッチポイントを検査するとき(ADW コマンドウィ ンドウで引数なしのウォッチ / ブレークコマンドを使用して、あるいは ADW、AXD、 ADU の [Breakpoints] または [Watchpoints] ウィンドウを表示させて)、その出力から ハードウェアブレークポイント / ウォッチポイントかソフトウェアブレークポイント / ウォッチポイントかを知ることができます。 ハードウェアブレークポイントとソフトウェアブレークポイント EmbeddedICEロジックポイントを使用して実装するハードウェアブレークポイントは、 対象アドレスからの命令フェッチを検出するために使用します。この命令フェッチの 検出はどのような場合にも機能し、デバッグされているプログラムが実行時に自己修 正を行っても、あるいはそのコードが ROM 内に存在していても行われます。ただし、 ハードウェアブレークポイントは使用可能な 2 つの EmbeddedICE ロジックポイントユ ニットのうちの一方に完全に依存します。 ARM アーキテクチャ v5 より以前の ARM プロセッサでは、EmbeddedICE ロジックユ ニットを使用して、特定のビットパタンを持つ命令フェッチを検出することにより、ソ フトウェアブレークポイントを実装します。このビットパタンは前もって適切な位置 にストアされ、実命令はホストデバッガメモリにストアされます。1 つの EmbeddedICE ロジックポイントを使用して、ソフトウェアブレークポイントをいくつでもサポート することができます。 ARM アーキテクチャ v5 プロセッサには専用のブレークポイント命令があるため、別 途 EmbeddedICE ロジックを使用する必要はありません。 自己修正コード、ROM 内のコード、ディスクファイルからページングされたコードの いずれもソフトウェアブレークポイントを使用してデバッグすることはできません。 ROM 内の位置にブレークポイントを設定しようとすると、Multi-ICE はそのメモリを 書き込み不能とし、ハードウェアブレークポイントを使用しようとします。 4.9.3 ウォッチポイント、ブレークポイント、プログラムカウンタ ウォッチポイントは、ウォッチポイントの設定されたデータに変更が生じたときにア クティブになります。ウォッチポイントがアクティブになると、プログラムカウンタ はウォッチポイントを発生させた命令の次の命令を指すように更新されます。した がってウォッチポイントデータの値は古い値から新しい値に置き換えられています。 ブレークポイントは、ブレークポイントが設定された命令がパイプラインの実行ス テージに到達し、その命令が実行される前にアクティブになります。このため、ブレー クポイントが発生してもプログラムカウンタは更新されず、ブレークポイントが設定 された命令のアドレスをそのまま保持します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-49 Multi-ICE を使用したデバッグ 注 ARM CPU のコア内部において、通常プログラムカウンタは現在実行中の命令から 2 つ 先の命令を指します。 (一般的に、このアドレスは現在パイプラインのフェッチステー ジにロードされている命令のアドレスとなります。)ARM デバッガは、実行中の、あ るいは実行直前の命令がデバッガ内に表示されるように、修正後の値をプログラムカ ウンタに表示することによってこれを簡素化します。 4.9.4 EmbeddedICE/RT ブレークポイント EmbeddedICE/RT ロジックは EmbeddedICE ロジックのアップデートバージョンです。 EmbeddedICE/RT ロジックは、ARM7TDMI プロセッサコア Rev 4 以上および ARM9TDMI プロセッサコア Rev 2 以上に組込まれており、リアルタイムデバッグをサポートしま す。このロジックで改良された点の多くは、RealMonitor 等のターゲットベースのモニ タのみに有効です。しかし、Multi-ICE は RT 拡張を使用して、ターゲットプログラム の実行中にブレークポイントまたはウォッチポイントを設定することができます。こ の場合は、ターゲットデバッガもこの機能をサポートしている必要があります。ADS v1.1 付属の AXD バージョンにはこのサポートが含まれています。 4.9.5 ベクタブレークポイントと例外 Multi-ICE DLL は、デバッガ内部変数 vector_catch によって暗示的に要求されたも のも含め、要求された全てのブレークポイントを受信した順序で設定します。Multi-ICE DLL は使用可能なブレークポイントリソースをできるだけ効率的に使用しますが、ベ クタキャッチブレークポイントが存在する場合はソフトウェアブレークポイントの使 用が要求されることがあります。 vector_catch 変数は、表 4-5 に示す条件のいずれかが発生したときに、実行をトラッ プする必要があるかどうかを示します。この変数のデフォルト値には、ADW の場合は %RUsPDAifE、AXD の場合は %RUsPDif が使用されます。大文字はその条件をインター セプトする必要があることを示します。 表 4-5 ブレークポイント 4-50 ベクタ 説明 R リセット U 未定義命令 S ソフトウェア割込み(SWI) P 命令プリフェッチアボート Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 表 4-5 ブレークポイント ベクタ 説明 D データアクセスアボート Aa アドレス例外 I 割込み要求(IRQ) F 高速割込み要求(FIQ) Eb エラー a. AXD では使用されません。 b. AXD および ADW では使用されません。 ARM9TDMI/ARM10TDMI ファミリデバイスならびに XScale アーキテクチャプロセッ サでは、コア内の補助ハードウェアを使用することによって、ベクタに汎用ブレーク ポイントを設定しなくてもベクタキャッチを実行することができます。詳細について は、ARM9TDMI テクニカルリファレンスマニュアルまたは ARM1020T テクニカルリファ レンスマニュアルを参照して下さい。 通常は、デバッガ内部変数 semihosting_enabled および semihosting_vector によってより厳密に制御されるため、vector_catch 内の SWI フラグには小文字を使 用します(P. 4-43「セミホスティング」参照)。 注 semihosting_enabledにゼロ以外の値を設定してvector_catchのSビットをセッ トすると、セミホスティングよりもベクタキャッチの実行が優先されます。 4.9.6 ROM 0x0 におけるベクタキャッチ アドレス 0x0 に ROM が存在するシステムでは、vector_catch の設定に注意を払う 必要があります。詳細については、P. 4-53「ROM 内のアプリケーションのデバッグ」 を参照して下さい。 4.9.7 プロセッサの停止 ARM プロセッサは以下の 2 通りの方法で停止させることができます。 ARM DUI0048EJ-00 • DBGRQ をアサートして DBGACK を待つ。これが標準方式です。 • nSRST をアサートして nTRST を発行し、リセットベクタにブレークポイントを 設定してから nSRST をアサート解除する。これは代替方式です。 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-51 Multi-ICE を使用したデバッグ 標準方式を用いて失敗すると、代替方式を試行するかどうかを尋ねるメッセージが表 示されます。この方式では、コアと TAP コントローラの両方がリセットされ、TAP コ ントローラを動作させた状態で維持します。次にアドレス 0 にハードウェアブレーク ポイントをプログラムし、システムリセットを解除して、しばらく待機してプロセッ サがブレークポイントにヒットするかどうかを確認します。 nWaitが永久にアサートされている場合等、 コアがクロッキングされていないときには、 このリセット方法によってデバッガが再度プロセッサの制御を得ることができます。 注 この代替方式ではマルチプロセッサシステムの全てのプロセッサがリセットされるた め、標準方式と比較すると干渉度が高くなります。 4-52 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 4.10 ROM 内のアプリケーションのデバッグ このセクションでは、Multi-ICE を使用した ROM 内のアプリケーションのデバッグに おけるいくつかの関連事項を説明します。 • リセットからのデバッグ:P. 4-53 • 4.10.1 ROM が 0 番地にあるシステムのデバッグ:P. 4-55 リセットからのデバッグ Multi-ICE DLL を使用して、ROM 内で実行中のシステムをデバッグすることができま す。一般的に、アプリケーションが ROM にストアされているターゲットボードを起動 すると、そのアプリケーションが実行を開始します。したがって、ホストでデバッガ を起動すると、ターゲット上のプロセッサは停止します。この段階で、デバッガがい つ起動されたかにより、アプリケーションの実行ライフタイムにおける到達ポイント が異なります。 言い換えれば、現在の位置からシステムの状態を確認し、実行を再開することが可能 です。場合によってはこのことが有利に働きます。しかしながら多くのケースでは、ア プリケーションの実行は起動時と同じように再開されることが望まれます。この場合 には以下の 2 つの方法を使用することができます。 • • リセットのシミュレーション:P. 4-54 実リセットの実行:P. 4-55 ROM から実行しているコードをデバッグする場合にはソフトウェアブレークポイント を使用できないため、ROM 内のコードにブレークポイントを設定できるよう、少なく とも 1 つのウォッチポイントユニットを使用可能な状態にしておく必要があります。標 準セミホスティングまたはベクタキャッチを使用しないことで、デバッガが内部用途 にこれらのユニットを使用する可能性を軽減することができます。ベクタキャッチ ハードウェアが存在しないプロセッサでこの効果を得るには、デバッガ起動後のでき るだけ早い時点で以下のデバッガ内部変数を設定する必要があります。 semihosting_enabled = 0 vector_catch = 0 次に、非 ROM ブレークポイント / ウォッチポイントを設定する前に、全ての ROM ブ レークポイントを設定します。こうしておかないとウォッチポイントユニットが一杯 になり、結果的に ROM ブレークポイントを設定することができず、既に設定されてい るブレークポイントが多過ぎて追加できないことを示すデバッガ依存のメッセージが 表示されます。 ROM 内のシステムのデバッグに関するもう一つのファクタに、ROM イメージはデバッ グ情報を保持しない点が挙げられます。Multi-ICE DLL を使用してデバッグする場合に は、[Load Symbols...] の使用等により、ホスト上のファイルから関連情報をデバッガに ロードすることによって、シンボルやソースコード情報を使用することができます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-53 Multi-ICE を使用したデバッグ リセットのシミュレーション 以下を設定することにより、デバッガ内からリセットを何度もシミュレートすること ができます。 • pc に 0(リセットベクタのアドレス)を設定する。 • cpsr に %IF_SVC を設定する(これにより、割込みをディセーブルした状態でスー パバイザモードに変更します)。 この設定によって起動時またはリセット時の ARM プロセッサの状態がシミュレートさ れますが、メモリマップをリセットしたり、ペリフェラルレジスタ等のターゲット特有 の機能を初期化することはできません。したがって可能な場合は、ターゲット特有の機 能が起動時の状態と同じになるように、アプリケーションを再度実行する前にこれらの 機能を修正しておくことを推奨します。この手続きは、使用するデバッガの機能を記述 することで自動化することができます。例 4-5 は、ADW の場合の記述例を示していま す。ファイル名 embed.axf は、ターゲットが実行するファイルの名前に置き換える必 要があります。また、ターゲットのメモリレイアウトによっては、top_of_memory の 値も変更する必要があります。 例 4-5 ADW/ADU の ADS バージョンの推奨リセットスクリプト readsyms embed.axf pc = 0x0 cpsr = %IFt_SVC $vector_catch = 0 $semihosting_enabled = 0 $top_of_memory = 0x40000 例 4-6 は、AXD を使用した場合の例を示しています。 例 4-6 AXD の推奨リセットスクリプト loadsymbols embed.axf setpc 0 sreg cpsr 0xd3 spp vector_catch 0 spp semihosting_enabled 0 let $top_of_memory 0x40000 4-54 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 実リセットの実行 リセット回路の設計によっては、ボードの実リセットを実行できる場合があります。た だし、EmbeddedICE ロジックもリセットされてしまうため、デバッガが再同期化され ない可能性があることから、実リセットを実行するタイミングには注意する必要があ ります。ボードをリセットするには以下の 2 通りの方法があります。 • • ボード上の全てをリセットする完全なパワーオンリセット EmbeddedICE ロジックを除き、ボード上の全てをリセットするリセットボタン リセット方法の詳細については、第 6 章「システム設計ガイドライン」を参照して下 さい。 リセットベクタ(またはリセットコードの開始アドレス)にハードウェアブレークポ イントが設定され、推奨リセット回路が使用されている場合にターゲットがリセット されると、ターゲットは要求通りにリセットで停止します。 注 ハードウェアの配線が原因で、Multi-ICE を使用してターゲット上のリセットを検出で きない場合には、プロセッサをリセットする前に他の全てのブレークポイントと ウォッチポイントを削除しておくことを推奨します。 ARM Integrator ボードを使用した例 ARM Integrator ボードは、必要な 2 つのレベルのリセットを実装しています。リセット スイッチは要求された初期化リセットを実行するため、リセットからのデバッグも可 能です。ユーザに必要とされるのはハードウェアブレークポイントを設定し、リセッ トボタンを押すことだけです。 4.10.2 ROM が 0 番地にあるシステムのデバッグ ベクタキャッチハードウェアが存在せず、0 番地に RAM ではなく ROM があるシステ ムをデバッグする場合には、vector_catch に 0 を設定する必要があります。これに より、Multi-ICE によるベクタテーブルへのソフトウェアブレークポイントの設定を防 ぐことができます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-55 Multi-ICE を使用したデバッグ 4.11 EmbeddedICE ロジックへの直接アクセス EmbeddedICE ロジックレジスタを操作するには、コプロセッサ番号を 0 に指定して、コ プロセッサレジスタを表示 / 設定するコマンドを使用します。 注 • XScale マイクロアーキテクチャプロセッサには EmbeddedICE ロジックブロック が存在しないため、これらのプロセッサにおけるコプロセッサ 0 は実際のハード ウェアコプロセッサを意味します。 • ARM10 プロセッサの EmbeddedICE ロジックは他と異なるため、EmbeddedICE ロ ジックコプロセッサはエミュレートされません。 以下のセクションでは、デバッガから EmbeddedICE ロジックレジスタへのアクセス方 法と、レジスタの使用方法について説明します。 • AXD からの EmbeddedICE ロジックレジスタの読み出し:P. 4-56 4.11.1 • ADW からの EmbeddedICE ロジックレジスタの読み出し:P. 4-58 • EmbeddedICE ロジック値の使用:P. 4-60 • ICE 拡張ユニットのサポート:P. 4-60 AXD からの EmbeddedICE ロジックレジスタの読み出し AXD の GUI を使用してコプロセッサ 0 レジスタにアクセスするには、[Processor Views] → [Registers] を選択します。表示されたレジスタウィンドウから、コプロセッサ 0 レ ジスタを選択することができます(P. 4-57 図 4-21)。 注 ADS v1.0.1 を使用している場合には、このウィンドウに表示される EmbeddedICE ロジッ クレジスタは個々に命名されておらず、CoProc 0 の見出しの下に表示されます。 4-56 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-21 EmbeddedICE ロジックレジスタを示したレジスタビュー AXD コマンドラインインタフェースにコマンド reg を入力すると、名前の付いたグ ループごとにレジスタが表示されます。バンク名は AXD のバージョンごとに異なり ます。 ADS 1.0.1 . Coproc 0 ADS 1.1 EICE 例えば ADS 1.1 の場合には、コマンド registers EICE を入力すると、例 4-7 が示す ように EmbeddedICE ロジックレジスタの内容が表示されます。 例 4-7 AXD を使用したコプロセッサ 0 レジスタの表示 Debug >reg EICE Registers Bank: Index Name #1 c0 #2 c1 #3 c2 ARM DUI0048EJ-00 EICE Value 0x05 0x0D 0x1F Copyright © 1998-2001 ARM Limited. All rights reserved. 4-57 Multi-ICE を使用したデバッグ #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 4.11.2 c4 c5 c8 c9 c10 c11 c12 c13 c16 c17 c18 c19 c20 c21 0x00 0x703008AD 0x00000000 0x00000000 0x00000000 0x00000000 0x0000 0x00 0x00000000 0x00000000 0x00000000 0x00000000 0x0000 0x00 ADW からの EmbeddedICE ロジックレジスタの読み出し ADW の GUI を使用してコプロセッサ 0 レジスタにアクセスするには、[Views] → [Registers] を選択します(図 4-22)。 図 4-22 [View] → [Registers] メニュー 上記のメニューからコプロセッサダイアログを表示させます。[Co-processor Number] に 0 を入力し、[Raw (Unformatted)] 表示オプションにチェックを入れます(図 4-23)。 図 4-23 [Display Co-processor Regs] ダイアログボックス [OK] を選択し、コプロセッサレジスタウィンドウを表示させます(P. 4-59 図 4-24)。 4-58 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Multi-ICE を使用したデバッグ 図 4-24 [Raw Co-processor 0] のビューに表示された EmbeddedICE ロジックレジスタ ADW の [Command Window] にコマンド cregisters 0 を入力すると、例 4-8 が示す ように EmbeddedICE ロジックレジスタが表示されます。 例 4-8 コプロセッサ 0 レジスタ値の例 Debug: cregisters 0 c0 = 0x05 c1 = 0x09 c4 = 0x00 c5 = 0x00000000 c8 = 0x516ce8da c9 = 0xbfdf0ea6 c10 = 0xbff6fd7d c11 = 0xfbaffbff c12 = 0x0000 c13 = 0xff c16 = 0x00000008 c17 = 0x00000003 c18 = 0x7dfeeffb c19 = 0xffffffff c20 = 0x0100 c21 = 0xf6 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 4-59 Multi-ICE を使用したデバッグ 4.11.3 EmbeddedICE ロジック値の使用 EmbeddedICE ロジックスキャンチェイン内のレジスタアドレスフィールドは、コプロ セッサ 0 レジスタの番号を保持します。EmbeddedICE ロジックの詳しい説明について は、デバッグ機能を備えた ARM コア(ARM7TDMI、ARM9TDMI 等)の ARM テクニ カルリファレンスマニュアルを参照して下さい。 EmbeddedICE ロジックレジスタはこの方法で自由に読み出すことができますが、レジ スタへの書き込みにはより細心の注意を払う必要があります。これは、Mutli-ICE DLL がブレークポイントとウォッチポイントの設定にも EmbeddedICE ロジックレジスタを 使用するためです。EmbeddedICE ロジックレジスタに(ADW コマンド cwrite 0 20 0x44 等を使用して)書き込みを行うと、Multi-ICE DLL はブレークポイントレジスタが 使用中であるかどうかをチェックします。使用されていれば、Multi-ICE DLL はハード ウェアブレークポイントをソフトウェアブレークポイントに変更することによって、 そのレジスタを開放しようと試みます。そして、Multi-ICE は以後このブレークポイン トレジスタを使用しないように、このレジスタをロックします。 ロックされたブレークポイントは、icebreaker_lockedpoints の値を表示させるこ とによって確認できます。また、この変数への書き込みを行うことによってブレークポ イントのロックを解除することも可能です。ARM7/ARM9 プロセッサファミリでは、こ れらのブレークポイントに 1 と 2 の番号が付けられ、icebreaker_lockedpoints の ビット 1 とビット 2 がそれぞれのステータスを示します。 コプロセッサ 0 への書き込みによって定義されたブレークポイントまたはウォッチポ イントが発生すると、Multi-ICE DLL は Unknown Watchpoint を通知して実行を停止 します。これは、そのブレークポイントが Multi-ICE DLL の制御範囲外であることを意 味します。 注 制御レジスタとステータスレジスタである EmbeddedICE ロジックレジスタ 0 および 1 への書き込みは行わないで下さい。Multi-ICE DLL はそれ自身の動作の多くをこれらの レジスタを使用して実行するため、ユーザが加えた変更は無視されるか、それによっ て DLL が誤動作する恐れがあります。 デバッガによる EmbeddedICE ロジックレジスタの読み出し / 書き込み要求によって、こ れらのレジスタへの読み出し / 書き込みがすぐに行われるとは限りません。これは効率 性を上げる目的で、Multi-ICE ソフトウェアがプログラム実行再開直前にレジスタを更 新するためです。 4.11.4 ICE 拡張ユニットのサポート Multi-ICE は ARM ICE 拡張ユニット(IEU)をサポートしています。IEU はプロセッサ の設計時に追加することが可能なロジックブロックであり、これによってデバッガに 使用できるブレークポイントユニットの数を増やすことができます。 このユニットが存在していれば、自動的に使用されます。IEU ブレークポイントレジス タには 2 ~ 31 の番号が割り当てられます。対応する icebreaker_lockedpoints の ビットは 0x4 ~ 0x80000000 です。 4-60 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第5章 トラブルシューティング 本章では、Multi-ICE の使用に伴って発生する可能性のあるいくつかの問題と、その解 決方法について説明します。本章は以下のセクションから構成されています。 • トラブルシューティング:P. 5-2 • ARM DUI0048EJ-00 エラーメッセージ:P. 5-11 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-1 トラブルシューティング 5.1 トラブルシューティング このセクションでは以下の状況について説明します。 5-2 • Multi-ICE サーバがチップの自動コンフィギュレーションに失敗する:P. 5-3 • デバッガが "Attempt to force the processor to enter debug state failed - execution continues(プロセッサをデバッグ状態にできません。実行を継続します)" とい うメッセージを表示する:P. 5-5 • デバッガが "Target processor would not enter debug state when requested. Do you want to try asserting System Reset with a breakpoint on address 0?(要求してもターゲット プロセッサがデバッグ状態になりません。アドレス 0 にブレークポイントを設定 してシステムリセットのアサートを試行しますか?)” というメッセージを表示 する:P. 5-6 • デバッガが不規則に停止する、デバッガを起動できない:P. 5-7 • デバッガが "Hardware interface timeout(ハードウェアインタフェースのタイムア ウトです)" というメッセージを表示する:P. 5-7 • デバッガが "Unable to set vector catch breakpoints on exception vectors(例外ベクタ にベクタキャッチブレークポイントを設定できません)" というメッセージを表 示する:P. 5-7 • アプリケーションのロード中または実行中にデータアボートやクラッシュが発 生する:P. 5-8 • DCC セミホスティング、チャネルビューワ、あるいは DCC に障害が発生する: P. 5-8 • ストリングを印字するプログラムがロード / 実行されているようだが、誤ったテ キストが表示される:P. 5-8 • ストリング処理を含む、あるいは文字配列を使用する 'C' プログラムが、ある ARM プロセッサ上では機能しても他のプロセッサ上では機能しない:P. 5-9 • Multi-ICE とロジックアナライザを ARM Integrator ボードに接続してプログラム をトレースしようとしても、Multi-ICE が "The target is being reset, unable to connec (ターゲットリセット中のため接続できません)" というメッセージを継続して表 示する:P. 5-9 • ARMulator を使用すると機能するアプリケーションが、Multi-ICE を使用するとす ぐにクラッシュする:P. 5-9 • Multi-ICE サーバを実行するとコンピュータの実行速度が著しく低下する:P. 5-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング 5.1.1 Multi-ICE サーバがチップの自動コンフィギュレーションに失敗する この問題の原因としては以下が考えられます。 • チップ内に自動コンフィギュレーションにサポートされていないデバイスが存 在する:P. 5-3 • • • • シグナル障害がある:P. 5-3 自動コンフィギュレーション中にサーバがプロセッサを停止できない:P. 5-4 Multi-ICE インタフェースユニットの電源が入っていないか、十分な電力が供給 されていない:P. 5-4 TAP コントローラに何らかの問題がある:P. 5-4 チップ内に自動コンフィギュレーションにサポートされていないデバイスが存在する 自動コンフィギュレーションプロセスにおいて、未知のデバイスに接続されて動作して いるTAPコントローラが検出されると、サーバウィンドウに表示されるTAPボックスに UNKNOWNというラベルが付けられます。サポート対象デバイス一覧がproclist.txt ファイルに記載されています。使用しているデバイスの自動コンフィギュレーションが サポートされていない場合には、以下の2つの方法を使用することができます。 • 手動コンフィギュレーションを使用する(P. 3-12「手動デバイスコンフィギュ レーション」参照)。 • TAP ボックスをダブルクリックする。これにより、検出された TAP コントロー ラの IR 長を示すダイアログが表示されます。この表示された IR 長を使用するデ バイスが(自動コンフィギュレーションが可能なデバイスを除き)チップ内に 1 つしか存在しない場合には、そのデバイスが何であるかをサーバに通知すること ができます。これを通知するには、USERDRVn.TXT(n は IR 長)という名前の ファイルを Multi-ICE インストールディレクトリに追加します。このファイル内 には、使用するデバイスの名前を 1 行目に記述しておき、それ以上は何も記述し ないで下さい。例えば、IR 長が 4 の DSP を使用する場合は、テキスト DSP を含 む USERDRV4.TXT ファイルを追加します。 シグナル障害がある 以下に最も一般的な原因を挙げます。 • • ARM DUI0048EJ-00 nTRST シグナルにプルアップ抵抗がない。このシグナルは、Multi-ICE インタ フェースユニットからオープンコレクタでドライブされます。ユニット内にはプ ルアップ抵抗がありません。EmbeddedICE インタフェースユニットでは、このシ グナルはプッシュ - プルドライバによってドライブされるため、プルアップは (たとえ指定されていても)必要ありません。 シグナル nTRST および nSRST がターゲットによって正しくドライブされない。 これらのシグナルを正常にドライブする方法については、第 6 章「システム設計 ガイドライン」を参照して下さい。 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-3 トラブルシューティング • TCK 周波数がそのチップには高過ぎる。この原因としては以下の状況が考えら れます。 — シミュレートされている TAP コントローラを Quickturn/IKOS ユニットで使 用している。このケースでは、デフォルト周波数の 1MHz では高過ぎる可 能性があります。[File] → [Autoconfigure at 20KHz] を選択し、20kHz での 自動コンフィギュレーションを試行して下さい。これでもうまくいかない 場合は、サーバを手動で構成して下さい。 — MCLK 設定が 1MHz よりも遥かに低いチップを使用している。一般的な例 としては、省電力(スリープモード)回路を組込んだポケベル等のデバイ スが挙げられます。ボードによっては、ソフトウェアによるレジスタへの 書き込みにより、高速(例:20MHz)と低速(例:25kHz)のクロック周 波数を切り替えられる場合があります。プロセッサ MCLK が 25kHz で実 行されていると、自動コンフィギュレーションは失敗します。代わりに 20kHz での自動コンフィギュレーションを試行して下さい。これでもうま くいかない場合は、サーバを手動で構成して下さい。 自動コンフィギュレーションに使用されるデフォルト TCK 周波数は 1MHz です。 正常に機能しているチップでは、これが問題になることはありません。 自動コンフィギュレーション中にサーバがプロセッサを停止できない この場合は、TAP コントローラボックスに UNKNOWN と表示されます。一般的には、プ ロセッサが正しくリセットされていないことが原因です。リセットボタンを押し、自 動コンフィギュレーションを再試行して下さい。これに失敗した場合には、プロセッ サリセット信号が継続的にアサートされていない(LOW でホールドされていない)こ とを確認して下さい。継続的にアサートされている場合は、この問題を修復し、自動 コンフィギュレーションを再試行して下さい。 Multi-ICE インタフェースユニットの電源が入っていないか、十分な電力が供給され ていない Multi-ICE には、20 ウェイ JTAG コネクタのピン 2 で 2V ~ 5V DC、または外部パワー 入力ジャックで 9V ~ 12V DC を供給し、かつ十分な電流を供給できる電源が必要です (P. 4-38「事後分析デバッグ」参照)。PID ボードに ARM7TDMI ヘッダカードを使用し ている場合は、十分な電力を供給するために抵抗 R1 を短絡させる必要があります。 Multi-ICE インタフェースユニットに十分な電力が供給されている場合は、電源ランプ が明るく点灯します。 TAP コントローラに何らかの問題がある その他、以下のような原因が考えられます。 • 5-4 シグナル nTDOen が正しく実装されていない。nTDOen シグナルは、TDO ピン のパッドトライステートドライバをイネーブルするために使用されます。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング • ターゲットハードウェアが nWAIT を永久的に LOW でドライブしているか、 HWAIT または BWAIT を永久的に HIGH でドライブしている。これらのシグナ ルはプロセッサコアクロックをゲートするため、EmbeddedICE ロジックはコアを デバッグ状態にすることができません。これが発生するときは、一般的にハード ウェアに障害があることを意味します。 5.1.2 デバッガが "Attempt to force the processor to enter debug state failed - execution continues(プ (プ ロセッサをデバッグ状態にできません。実行を継続します)" というメッセージを表示する ロセッサをデバッグ状態にできません。実行を継続します) Multi-ICE は DBGRQ シグナルをアサートすると、ターゲットがデバッグ状態に入るま で待機します。タイムアウトまでにデバッグ状態に入らなければ、エラーが通知され ます。この問題の原因としては以下が考えられます。 • このデバイスまたはケーブル長に対して、JTAG クロック周波数が高過ぎる。よ り低いクロック周波数で試してみて下さい。 • サーバが正しく手動構成されていない( IRlength.arm ファイルに記述された 番号、タイプ、デバイス順序、IR 長のいずれかに誤りがある)。 • プロセッサがリセット状態でホールドされている。 • プロセッサシグナル DBGEN が LOW(アサート解除)されているために、DBGRQ が認識されない。 • プロセッサのメモリインタフェースシグナル nWAIT(またはこれと等価なバス シグナル BWAIT および HWAIT)が永久的にアサートされているか、プロセッ サコアクロックが存在しない。プロセッサは各命令の終わりにのみ DBGRQ を認 識するため、現在の命令を終了できないと、プロセッサがデバッグ状態に入るこ とができません。 • 1 つ以上の JTAG シグナル(最も一般的には TCK)が十分安定していない。こ の理由としては、PCB の設計、配線の長さやタイプといった様々な問題が考え られます。 そのデバイスの自動コンフィギュレーションを実行できたにも関わらず(P. 5-3 「Multi-ICE サーバがチップの自動コンフィギュレーションに失敗する」参照)、そ の動作に信頼性が欠ける場合には、JTAG シグナルの質に問題があります。サー バを手動構成した場合には、"Can't stop processor(プロセッサを停止で きません)" というエラーメッセージが表示されます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-5 トラブルシューティング 5.1.3 デバッガが "Target processor would not enter debug state when requested. Do you want to try asserting System Reset with a breakpoint on address 0?(要求してもターゲットプロセッサがデバッグ状態 (要求してもターゲットプロセッサがデバッグ状態 になりません。アドレス 0 にブレークポイントを設定してシステムリセットのアサートを試行しますか?)” にブレークポイントを設定してシステムリセットのアサートを試行しますか?) と いうメッセージを表示する デバッガがプロセッサを停止させるなどの目的で、Mutli-ICE を使用してプロセッサに アクセスしようとしたが、Multi-ICE DLL がこれを試行してもプロセッサが期待通りに 応答しなかった。この原因としては以下が考えられます。 • このデバイスまたはケーブル長に対して、JTAG クロック周波数が高過ぎる。よ り低いクロック周波数で試してみて下さい。 • サーバが正しく手動構成されていない(IRlength.arm ファイルに記述された 番号、タイプ、デバイス順序、IR 長のいずれかに誤りがある)。 • プロセッサがリセット状態でホールドされている。 • プロセッサシグナル DBGEN が LOW(アサート解除)されているために、DBGRQ が認識されない。 • プロセッサのメモリインタフェースシグナル nWAIT(またはこれと等価なバス シグナル BWAIT および HWAIT)が永久的にアサートされているか、プロセッ サコアクロックが存在しない。プロセッサは各命令の終わりにのみ DBGRQ を認 識するため、現在の命令を終了できないと、プロセッサはデバッグ状態に入るこ とができません。 • 1 つ以上の JTAG シグナル(最も一般的には TCK)が十分安定していない。こ の理由としては、PCB の設計、配線の長さやタイプといった様々な問題が考え られます。 そのデバイスの自動コンフィギュレーションを実行できたにも関わらず(P. 5-3 「Multi-ICE サーバがチップの自動コンフィギュレーションに失敗する」参照)、そ の動作に信頼性が欠ける場合には、JTAG シグナルの質に問題があります。サー バを手動構成した場合には、"Can't stop processor(プロセッサを停止で きません)" というエラーメッセージが表示されます。 ブレークポイントをアドレス 0 番地に設定してプロセッサをリセットすることで、プ ロセッサの制御を何度でも得ることができますが、この場合は JTAG チェインに接続 された他のプロセッサも含め、ターゲット全体をリセットする必要があります。この ため、Multi-ICE はこの操作を行ってもよいかどうかを尋ねるメッセージを表示します。 注 プロセッサへのアクセスを得るこの方法は、システムリセット nSRST と TAP リセッ トライン nTRST がそれぞれ単独で接続されていない限り(第 6 章「システム設計ガイ ドライン」参照)、正しく機能しません。これは Multi-ICE がプロセッサのリセット中 に TAP コントローラをプログラムする必要があるためです。 5-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング 5.1.4 デバッガが実行ウィンドウに "*** Data abort***"(データアボート)を表示する (データアボート)を表示する デバッガは起動すると、プロセッサを停止させて pc の現在の値を読み出すことができ ます。実行ウィンドウには、プログラムカウンタが示すアドレス周辺のメモリが表示 されます。その位置にメモリが存在しない場合は、上記のメッセージを表示してメモ リアクセスがアボートされます。この場合は、イメージファイルをロードするか、実 行可能コードを指すように pc レジスタを明示的に設定する必要があります。 5.1.5 デバッガが不規則に停止する、デバッガを起動できない 不規則に発生する障害には様々な原因が考えられますが、主な原因としてはハード ウェアタイミングやロジックの問題が挙げられます。この動作の最も一般的な原因は、 ARM プロセッサのパワーアップリセット時に、nTRST が LOW で送信されないことに あります。これが行われない限り、EmbeddedICE ロジックは未定義状態となります。 5.1.6 デバッガが "Hardware interface timeout(ハードウェアインタフェースのタイムアウトです) (ハードウェアインタフェースのタイムアウトです)" とい うメッセージを表示する この問題の原因としては以下が考えられます。 • ターゲットハードウェアが Multi-ICE インタフェースユニットに接続されていな いか、Multi-ICE インタフェースユニットがワークステーションに接続されてい ない。 • Multi-ICE インタフェースユニットに十分な電力が供給されていない。Multi-ICE には、20 ウェイ JTAG コネクタのピン 2 で 2V ~ 5V DC、または外部パワー入力 ジャックで 9V ~ 12V DC を供給し、かつ十分な電流を供給できる電源が必要で す(P. 4-38「事後分析デバッグ」参照)。PID ボードに ARM7TDMI ヘッダカード を使用している場合は、十分な電力を供給するために抵抗 R1 を短絡させる必要 があります。 • サーバが Multi-ICE インタフェースユニットまたはターゲットハードウェアとの 接続を確立できない。一般的には、適応クロッキングをオンにしたために良好な RTCK シグナルが送信されないことが原因です。自動コンフィギュレーションを 使用すると、RTCK シグナルの存在も自動構成されます。ターゲット回路が続け て RTCK の生成に失敗すると、ハードウェアインタフェースタイムアウトが発 生します。 5.1.7 デバッガが "Unable to set vector catch breakpoints on exception vectors(例外ベクタにベクタ (例外ベクタにベクタ キャッチブレークポイントを設定できません)" というメッセージを表示する キャッチブレークポイントを設定できません) ARM7 ベースのシステムでは、Multi-ICE は vector_catch の値が示すベクタテーブ ル要素にソフトウェアブレークポイントを設定しようとします。しかしアドレス 0x0 に ROM が存在すると、Multi-ICE はブレークポイントを設定することができず、エラー メッセージを通知します。 ARM9 ファミリ、ARM10 ファミリならびに XScale アーキテクチャプロセッサにはベ クタキャッチハードウェアが組込まれているため、アドレス 0x0 に ROM が存在して いても問題ありません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-7 トラブルシューティング 5.1.8 アプリケーションのロード中または実行中にデータアボートやクラッシュが発生する ARM コンパイラ / リンカツールはデフォルトコードアドレス 0x8000 を使用するため、 別のアドレスを指定しない限り、ターゲットメモリマップの 0x8000 以上に使用可能 なメモリが存在している必要があります。この条件は、ARM 開発ボード、ARM PIE/ARM PIV ボード、ならびに ARM Integrator コアモジュールでは満たされています。 Multi-ICE DLL は、以下の場合にターゲットボードのメモリマップを仮定する必要があ ります。 • C ライブラリがスタック / ヒープ情報を得るためにセミホスティングを使用する 場合 • DCC セミホスティングハンドラの位置で、DCC セミホスティングがイネーブル されている場合 デフォルトでは、Multi-ICE DLL は 0x60000 近辺から 0x80000 の間に書き込み可能 なメモリが存在すると想定します。これらのアドレスは、ターゲットにアドレスマッ プの最下位に 512KB の RAM が存在している場合に有効となります。DCC セミホス ティングコードは、デフォルトで 0x70000 にダウンロードされます。 スタックおよびヒープの位置を変更するには、デバッガ変数 top_of_memory を変更 する必要があります。DCC セミホスティングハンドラの位置を変更するには、デバッ ガ変数 semihosting_dcchandler_address を変更する必要があります。 5.1.9 DCC セミホスティング、チャネルビューワ、あるいは DCC に障害が発生する この問題の原因としては以下が考えられます。 • ARM 評価ボード(HBI0041)で使用されている ARM7DI プロセッサのように、 使用しているプロセッサに DCC が実装されていない。 • チャネルビューワと DCC セミホスティングを同時に使用している。どちらか一 方を選択して下さい。 • 改訂 C または旧 AMBA® ラッパを使用するコアを使用している。 1998 年 9 月に出荷された Atmel AT91 チップがこの問題の影響を受けることが分 かっています。現在のところ、デバイスを交換する以外の解決策は分かっていま せん。 5.1.10 ストリングを印字するプログラムがロード / 実行されているようだが、誤ったテキストが表示される ターゲットメモリコントローラはバイト読み出しをサポートしていません。この場合、 char にアクセスするどの C コードも正しく機能しないので深刻な問題です。 どの組込みストリング処理関数(例:strcmp、strlen、strcpy)もバイト読み出し 可能なメモリが存在しなければ正しく機能せず、char 型配列へのアクセスにも失敗し ます。ARM コードがすべて 32 ビット(Thumb の場合は 16 ビット)であるため、メモ リコントローラがサポートしなければならないのはワードアクセスとハーフワードア クセスだけであるという考えは間違っています。このように設計されたメモリコント ローラにも機能するように特別にコードを記述することはできますが、このようなコ ントローラを使用するプロセッサは汎用 C コードを正しく実行することができません。 5-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング 5.1.11 ストリング処理を含む、あるいは文字配列を使用する 'C' プログラムが、ある ARM プロセッサ上で は機能しても他のプロセッサ上では機能しない ターゲットメモリコントローラはバイト読み出しをサポートしていません。この場合、 char にアクセスするどの C コードも正しく機能しないので深刻な問題です。 詳細については、P. 5-8「ストリングを印字するプログラムがロード / 実行されている ようだが、誤ったテキストが表示される」を参照して下さい。 5.1.12 Multi-ICE とロジックアナライザを ARM Integrator ボードに接続してプログラムをトレースしようと しても、Multi-ICE が "The target is being reset, unable to connec(ターゲットリセット中のため接続できま (ターゲットリセット中のため接続できま しても、 せん)" せん) というメッセージを継続して表示する Integrator CM7TDMI ボードの nSRST に取り付けられているプルアップ抵抗は 47KΩ 抵 抗です。この抵抗によるプルアップは比較的弱いため、Multi-ICE が検出する nSRST 上 の電圧レベルがロジック 0(リセット条件)になる場合があります。この状況は、nSRST シグナルが組込まれているレースポートにロジックアナライザケーブルが接続されて いると、特に発生しやすくなります。 いったんアナライザを外して接続し直すことによって、Multi-ICE を接続できる場合が あります。完全に解決するには、プルアップ抵抗 R22 を 10KΩ デバイスに交換して下 さい。抵抗を交換する場合には以下の手順に従って下さい(または ARM テクニカルサ ポートまでお問い合わせ下さい)。 5.1.13 1. R22 の 47KΩ レジスタを取り外します。R22 は Multi-ICE コネクタ近くのボード 表面にあります。 2. R22 に 10KΩ 0603 抵抗を取り付けます。 ARMulatorを使用すると機能するアプリケーションが、 を使用すると機能するアプリケーションが、Multi-ICEを使用するとすぐにクラッシュする を使用するとすぐにクラッシュする この障害の原因としては、Multi-ICE によってアプリケーションスタックが配置される メモリ内の場所に実メモリが存在しないか、アプリケーションに使用されるスタック メモリと他のメモリがオーバラップしていることが考えられます。 ARMulator のデフォルトメモリモデルはアドレス空間全体から要求通りのメモリペー ジを作成するため、ARMulator コンフィギュレーションファイルで上位メモリ内にス タック最上位の値を指定することができます。この結果、通常は下位メモリ内のプロ グラムがスタックに干渉することはありません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-9 トラブルシューティング Multi-ICE はターゲット上で使用可能なメモリだけを使用する必要がありますが、ター ゲットのメモリマップが知らされることはありません。このことが影響するかどうか は、アプリケーションのリンク方法によります。 1 つのセミホステッドイメージ スタックの位置は、デバッガ変数 top_of_memory によって定義 されます。この位置のデフォルト値は 0x80000 です。この変数 は必ず正しく設定する必要があります。 分散ロード スタックとヒープの位置は C ライブラリに呼び出される関数に よって定義され、Multi-ICE とは関係ありません。 top_of_memory の詳しい説明と ARM C ライブラリによるこの変数の使用方法につい ては、P. 4-33「内部変数の記述」を参照して下さい。 5.1.14 Multi-ICE サーバを実行するとコンピュータの実行速度が著しく低下する Multi-ICE サーバを実行すると、Multi-ICE パラレルポートドライバがアクティブになり ます。複数のパラレルポートを持つマシンの中には、2 番目のパラレルポートに Multi-ICE ユニットが接続されているかどうかをチェックしようとするために、パラレ ルポートドライバがプロセッサ時間の大部分を消費してしまうものがあります。 パラレルポートが 1 つしかない場合には何の問題もありません。 速度低下を防止するには、Multi-ICE インタフェースユニットに使用するパラレルポー トを明示的に選択する必要があります(P. 3-18「パラレルポート設定ダイアログ」参 照)。この設定を [Auto] のままにしないで下さい。Multi-ICE バージョン 2.1 以降では、 ここでの設定がセッション間で保持されます。 5-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング 5.2 エラーメッセージ このセクションではダイアログボックスに表示されるエラーメセージと、エラーから の回復が可能な場合はその方法について説明します。以下のセクションでは、これら のエラーメッセージについて説明します。 • Multi-ICE サーバメッセージ:P. 5-11 • 5.2.1 Multi-ICE DLL メッセージ:P. 5-15 Multi-ICE サーバメッセージ 以下はサーバエラーメッセージです。 An error occurred while attempting to set up the TAP configuration. ハードウェアの構成が不可能であるか、アプリケーションのメモリ不足 を示しています。 An error occurred while opening the selected port. 予期しないソフトウェアエラーが発生したことを示しています。テクニ カルサポートにお問い合わせ下さい。 An error occurred while retrieving the hardware details. This application will now terminate. 製品供給元のテクニカルサポートにお問い合わせ下さい。 An error prevented retrieval of hardware details. 製品供給元のテクニカルサポートにお問い合わせ下さい。 Hardware Interface Timeout. P. 5-7「デバッガが "Hardware interface timeout (ハードウェアインタフェー スのタイムアウトです)" というメッセージを表示する」参照。. Auto-Configuration failed. Check the target power is on. Your chip may require manual configuration. この原因としては以下が考えられます。 • 電源が入っていない。 • Multi-ICE ディレクトリが存在しない、またはディレクトリに書き 込めない。ディレクトリが存在し、アクセス可能であることを確 認して下さい。 • チップが ARM チップではない可能性がある。この場合は、手動コ ンフィギュレーションファイルを記述する必要があります。P. 3-14 「サーバコンフィギュレーション」を参照して下さい。 Could not clean D-Cache - memory may appear incoherent in writeback regions. ターゲットが ARM9TDMI または ARM10TDMI プロセッサコアを使用し ている場合、Multi-ICE は Multi-ICE コンフィギュレーションダイアログ (P. 4-13「[Processor Settings] タブ」参照)の [Cache clean code address] の設定を使用して、キャッシュクリーンコードの保存および実行に使用 できるメモリを指定します。Multi-ICE は再配置可能なコードが最初に要 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-11 トラブルシューティング 求されたときに、そのコードをこのメモリにダウンロードして実行しま す。この警告メッセージは、コードを正しくダウンロードできなかった 場合に表示されます。 Multi-ICE がこのコードをターゲットにダウンロードできない理由とし て以下が挙げられます。 • [Cache clean code address] にメモリが存在しない。 • [Cache clean code address] にあるメモリが読み出し専用メモリ(実 ROM、あるいは EEPROM のように特別な書き込み手順を必要とす るメモリ)である。 • アクティブなメモリ管理ユニット(MMU)が存在し、[Cache clean code address] を含むページが読み出し専用としてマークされてい る。 以下の方法でこの問題を解決することができます。 • [Cache clean code address] を、Multi-ICE によるアクセスが可能で あり、かつアプリケーションに使用されない RAM 内のアドレスに 変更する。 • 指定したメモリの MMU ページ記述子に、データ読み出し / データ 書き込み / 命令読み出しをイネーブルさせる。 • 結果的に生じるメモリの矛盾を気にしない場合は、このエラーを 無視し、[Cache clean code address] に 0 を設定してキャッシュク リーニングをオフにする。 Multi-ICE コンフィギュレーションダイアログで [Cache clean code address] の設定を変更することにより、Multi-ICE に再度キャッシュク リーンコードをダウンロードさせることができます。 このエラーを無視してキャッシュクリーニングをオフにする場合は、以 下の点に注意する必要があります。 • データキャッシュ(DCache)のキャッシュ不可ビットがセットさ れておらず、デバッグ状態時に DCache が消去されないこと。 つまり、メモリはプロセッサが見た通りに正確に読み出されるた め、DCache 内にダーティデータが存在していても矛盾が生じませ ん。しかし、キャッシュ可能領域におけるデータの読み出しは DCache のラインフィルを発生させるため、新しいアドレスが DCache に書き込まれ、古いデータが消去されます。 • 5-12 メモリに書き込まれる全てのデータが通常通りに書き込まれるこ と。 これは DCache 内のアドレスにヒットする書き込みがメモリではな く、キャッシュに保存されることを意味します。このことはデー タが実コードである場合に問題となります。 この動作には、DCache にキャッシュされたアドレスに設定された ソフトウェアブレークポイントが、プロセッサの命令フェッチで正 しく読み出されないためにヒットしないという副作用があります。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング 注 フォルトアドレスレジスタ(FAR)およびフォルトステータスレジスタ (FSR)がシステムコプロセッサに実装されている場合、これらのレジス タはデバッグ状態開始時に読み出されます。この 2 つのレジスタの値は システムコプロセッサ (15) レジスタを表示させることで確認することが 可能であり、新しい値を書き込まない限りはデバッグ状態終了直前に復 元されます。メモリアボートを発生させるデバッグアクションを実行す ると、そのアボート直後の FSR と FAR の値を含むエラーが返されます。 TAP configuration failed. Please check that the target hardware and the Multi-ICE unit are properly connected and powered up. Multi-ICE インタフェースユニットに十分な電力が供給され、Multi-ICE 付属ケーブルを使用してワークステーションに接続されていることを確 認して下さい。 Multi-ICE パラレルポートドライバを使用するには、ホストワークステー ション上のパラレルポートインタフェースが 2 つの標準アドレスのどち らかに存在している必要があります。LPT1 の標準アドレスは 0x378、 LPT2 は 0x278 です。ハードウェアが異なるアドレスを使用している場 合は、Multi-ICE インタフェースユニットを使用できません。 Multi-ICE にターゲットボード上の 14 ウェイコネクタを使用している場 合: • 電力がターゲットから供給されている場合には、14 ウェイ JTAG アダプタのジャンパ J3 が +5V と TP にリンクしていること、さら に必要に応じてターゲット上の直列抵抗が短絡していることを確 認して下さい。P. 2-9「非標準ハードウェアへの接続」を参照して 下さい。 • 電力が外部から供給されている場合には、供給電圧の値が適正で、 かつスイッチが入っていることを確認して下さい。P. 2-5「Multi-ICE ハードウェアの接続」を参照して下さい。 Failed to open parallel port. The port may be in use. この原因としては以下が考えられます。 • そのパラレルポートを他のデバイス(プリンタ等)が使用している。 • パラレルポートハードウェアに欠陥がある。 Multi-ICE driver failure. Check that Multi-ICE device driver is installed and running and there is no other Multi-ICE server running. Multi-ICE パラレルポートドライバが存在しないか、起動されていませ ん。パラレルポートドライバの起動方法はオペレーティングシステムに よって異なります。 Windows NT 4.0 ARM DUI0048EJ-00 デバイスコントロールパネルでデバイスリストの 中から Multi-ICE を探し、ドライバが存在し、か つ起動していることを確認します。 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-13 トラブルシューティング Windows 95/98/Me Multi-ICE ドライバはサーバによって自動的に起動 されます。 Windows 2000 Multi-ICE ドライバはサーバによって自動的に起動 されます。 The server could not initialize correctly. Please close down one or more applications and re-start. Multi-ICE サーバに必要なシステムリソース(システムタイマ、グラ フィックリソース、メインメモリ、等)を他のアプリケーションが使用 しています。他のアプリケーションを起動している場合は、全て終了さ せます。それ以外の場合には、このエラーは Windows を再起動する必要 があることを示している可能性があります。 The server installation is incomplete or damaged. You may wish to re-install the software. サーバが必要な項目をシステムレジストリ内で検出できないことを意味 します。この原因としては以下が考えられます。 • このバージョンの Multi-ICE がそのコンピュータにインストールさ れていない。 • そのコンピュータのWindowsシステムレジストリが破損している。 既に Multi-ICE をインストールしている場合は、まずこれをアンインス トールする必要があります。その後、Multi-ICE ソフトウェアを再インス トールして下さい。 注 アンインストールを行う前に、残しておきたいコンフィギュレーション ファイルが Multi-ICE ディレクトリに保存されていないかどうかを チェックしておくことを推奨します。 The attached device is not compatible with this server. パラレルポートに接続されているハードウェアに以下のどちらかの問題 があることを意味します。 • Multi-ICE インタフェースユニットではない。 • Multi-ICE インタフェースユニットに欠陥がある。 Multi-ICE インタフェースユニットが正しいパラレルポートに接続され ていることを確認して下さい。正しく接続されている場合は、インタ フェースユニットが P. 2-5「Multi-ICE ハードウェアの接続」に記載され ている通りに接続され、ケーブルが正常に機能しているかどうかを チェックします。その後も同じエラーが表示される場合は、製品供給元 のテクニカルサポートにご連絡下さい。 5-14 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 トラブルシューティング The decision to read core information has been re-specified in file filename at line number. 接続したデバイスからコア情報を自動的に読み出すかどうかが、コン フィギュレーションファイル内で複数回指定されています。この場合は、 コンフィギュレーションファイルから余分な項目を削除する必要があり ます。 The selected server is not compatible with this debugger. ARM Multi-ICE DLL には ARM Multi-ICE サーバしか使用できません。 5.2.2 Multi-ICE DLL メッセージ 以下はデバッガエラーメッセージです。 The driver for device could not be found. デバイスに対応する .MUL ファイルがあるべき場所に存在しないことを 意味します。 The driver for device could not be found. This was due to an installation problem. Please re-install the Multi-ICE software. Multi-ICE DLL がレジストリ内の項目を検出できないことを意味します。 The driver for device could not be read. この原因としては以下が考えられます。 • デバイスに対応する.MULファイルを別のアプリケーションが開い ている。 • .MUL ファイルが存在しない。 • .MUL ファイルが破損している、または古い。 The format of the driver for device is not valid. デバイスに対応する .MUL ファイルが破損しているか、そのデバイスに対 して .MUL ファイルが古過ぎることを意味します。恐らくインストールし た内容が破損しています。ソフトウェアを再インストールして下さい。 The previously connected device is no longer available. デバッガセッションを最後に保存したときに接続していたサーバが、そ のときと同じプロセッサに接続していないことが原因です。 The server found on location has not been initialized. サーバは検出されたものの、まだ(自動コンフィギュレーションまたは 手動コンフィギュレーションによって)構成されていないことを意味し ます。このときに表示されるサーバウィンドウは P. 2-14 図 2-5 のように なります。サーバを構成して接続を再試行して下さい。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 5-15 トラブルシューティング The server on location returned an unexpected error of [number]. The server may be incompatible. Multi-ICE DLL と Multi-ICE サーバのバージョンに互換性がありません。 Multi-ICE サーバの [Help] → [About Multi-ICE] ダイアログから使用して いるバージョンを確認し、Multi-ICE コンフィギュレーションウィンドウ のタイトルストリングに表示されるバージョン番号と比較します。サー バと DLL のバージョンが同じになるように、必要に応じてソフトウェア のアップグレードまたは再インストールを行って下さい。 The server on location returned too much driver information. The version of the server software may not be compatible with your current debugger. Multi-ICE DLL と Multi-ICE サーバのバージョンに互換性がありません。 Multi-ICE サーバの [Help] → [About Multi-ICE] ダイアログで使用してい るサーバのバージョンを確認し、ソフトウェアのアップグレードまたは 再インストールを行って下さい。 5-16 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 第6章 システム設計ガイドライン 本章では、Multi-ICE を使用してデバッグすることが可能な ARM ベースのデバイスお よび PCB の開発について説明します。本章は以下のセクションから構成されています。 • • • • • • ARM DUI0048EJ-00 システム設計ガイドラインについて:P. 6-2 システム設計:P. 6-3 ASIC に関するガイドライン:P. 6-9 PCB に関するガイドライン:P. 6-11 JTAG シグナルの完全性と最大ケーブル長:P. 6-14 EmbeddedICE インタフェース用ターゲットのコネクタとの互換性:P. 6-16 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-1 システム設計ガイドライン 6.1 システム設計ガイドラインについて 本章では以下について説明します。 • 複数ユニットで構成されるシステムにおける複数 TAP コントローラの接続方法 (例:ARM コアとデジタルシグナルプロセッサ(DSP)の接続) • 要求ページシステムのサポート • Multi-ICE 適応クロッキング機能を使用した JTAG クロックレートの制御 • リセットシグナルとその回路例 • EmbeddedICE コネクタとの互換性 JTAG インタフェースコネクタのピン出力については、付録 F「JTAG インタフェース 接続」を参照して下さい。 6-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン 6.2 システム設計 このセクションでは、Multi-ICE と互換性のあるクロッキング回路とリセット回路の設 計方法について説明します。このセクションは以下のサブセクションから構成されて います。 • ARM コアと他のデバイスの組み合わせ:P. 6-3 • • 6.2.1 適応クロッキングを使用した JTAG ポートの同期化:P. 6-3 リセットシグナル:P. 6-6 ARM コアと他のデバイスの組み合わせ Multi-ICE を使用すれば、ARM プロセッサと他のデバイスを組み合わせたシステムを デバッグすることができます。TAP コントローラは、P. 6-9「複数デバイスから構成さ れる IC」に記載されているようにデイジーチェイン接続する必要があります。特定の デバイスにアクセスする際、Multi-ICE は他の全ての TAP コントローラをバイパスモー ドに設定します。Multi-ICE には、数多くの ARM TAP コントローラに対応する命令レ ジスタ長を記述したデータベースファイル IRlength.arm が同梱されています。この データベースファイルにない TAP コントローラを使用する場合は、データベースに項 目を追加する必要があります。 ARM プロセッサ以外のデバイスにアクセスするためのドライバは、Multi-ICE のソフ トウェアインタフェースレイヤを使用して記述することができます。詳細については、 Multi-ICE Reference Guide を参照して下さい。 6.2.2 適応クロッキングを使用した JTAG ポートの同期化 ARM7TDMI や ARM920T 等のハードマクロセルだけを使用している ARM ベースのデ バイスは、標準 5 線 JTAG インタフェース(TCK、TMS、TDI、TDO、nTRST)を使 用します。しかし、ターゲットシステムによっては、JTAG イベントをシステム内のク ロックに同期化させる必要があります。この場合に備え、JTAG ポートには補助シグナ ルが組込まれています。例えば、この同期化は以下のようなシステムで必要とされます。 • 単一立上がりエッジ D タイプ設計規則を用いた ASIC(ARM7TDMI-S プロセッサ コアベースの ASIC 等) • ARM マクロセルの外部スキャンチェインが単一立上がりエッジ D タイプ設計規 則に準拠している必要があるシステム この同期化には、Multi-ICE の適応クロッキング機能を使用して対応することができま す。適応クロッキングがイネーブルされていると、Multi-ICE は TCK シグナルを発行 し、RTCK(リターン TCK)が返されるのを待ちます。Multi-ICE は、RTCK を受信す るまで次の TCK を発行しません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-3 システム設計ガイドライン 注 • 適応クロッキング機能を使用すると、伝送遅延、ゲート遅延ならびに同期化要件 によって、適応クロッキングを使用しない場合よりも最大クロック周波数が低下 します。ハードウェアの設計上必要でない限り、適応クロッキングは使用しない で下さい。 • ターゲットの自動コンフィギュレーションを行う際、Multi-ICE インタフェース ユニットは TCK に応答する RTCK のパルスを受信すると適応クロッキングが要 求されているとみなし、ターゲットコンフィギュレーションで適応クロッキング をイネーブルします。ハードウェアが適応クロッキングを必要としていない場 合、ターゲットは必要以上に遅い速度でドライブされます。適応クロッキングは、 JTAG 設定ダイアログのコントロールを使用してディセーブルできます。 適応クロッキングは、処理要求によってクロック速度を変化させるバッテリ駆動型機 器等、周波数が低い、または可変周波数を使用するターゲットへのインタフェースと して使用することが可能です。このようなシステムの場合、TCK の方がシステムクロッ クよりも何百倍も速いことがあり、デバッガがターゲットシステムと同期化できない 可能性があります。適応クロッキングは、JTAG ポートの速度を低速なシステム速度に 自動的に適応させます。 図 6-1 は基本的なアプリケーションの回路を、P. 6-5 図 6-2 はタイミングダイアグラム の一部を示しています。システムクロックの反対側のエッジでフリップフロップにク ロックを供給することで遅延を低減しています。これは、2 番目のフリップフロップに よって、信号が不安定になりにくくなるためです。RTCK は TCK を制御するフィード バックループの一部であるため、フリップフロップシンクロナイザ 1 つだけでも TCK イベントを全て見逃すことはありません。 TMS TMS TDI TDI TDO TDO RTCK TCK D Q nCLR Q D nCLR TCK ASIC nTRST nTRST CLK CLK 図 6-1 基本 JTAG ポートシンクロナイザ 6-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン TCK CLK RTCK 図 6-2 図 6-1 の基本 JTAG ポートシンクロナイザのタイミングダイアグラム 設計内の全てのフリップフロップを 1 つのクロックの単一エッジでクロッキングする 制約条件を設けることは、ASCI 設計フローとその設計規則において一般的なことです。 システムに完全非同期の JTAG ポートにこれを適用するには、JTAG TCK イベントを この単一クロックのクロックイネーブルに変換し、JTAG ポートが同期化遅延をオーバ ランできないようにする必要があります。図 6-3 はこの回路の実装例を示しています。 また P. 6-6 図 6-4 の部分的なタイミングダイアグラムは、TCKFallingEn と TCKRisingEn が厳密に 1 CLK 周期でどのようにアクティブになるかを示しています。さらにこのダ イアグラムは、これらのイネーブルシグナルが TCK の両エッジでのみ状態を変更する ために、RTCK と TDO シグナルをどのようにゲートするかを示しています。 図 6-3 単一立上がりエッジ D タイプ ASIC 設計規則に基づく JTAG ポートシンクロナイザ ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-5 システム設計ガイドライン TCK CLK TCKRisingEn TCKFallingEn RTCK TAPC TDO 図 6-4 図 6-3 の D タイプ JTAG シンクロナイザのタイミングダイアグラム 6.2.3 リセットシグナル このセクションでは ARM デバイスに使用可能なリセットシグナルと、Multi-ICE が仮 定するリセットシグナルの接続方法について説明します。このセクションは以下のサ ブセクションから構成されています。 • ARM リセットシグナル:P. 6-6 • Multi-ICE リセットシグナル:P. 6-7 • リセット回路の例:P. 6-7 ARM リセットシグナル 全ての ARM コアには、nRESET、BnRES あるいは HRESET と呼ばれるメインプロ セッサリセットがあります。このリセットシグナルは、以下の条件が 1 つ以上発生し たときにアサートされます。 • パワーオン • 手動プッシュボタン • デバッガからのリモートリセット(Multi-ICE を使用) • ウォッチドッグ回路(アプリケーションに適切な場合) JTAG インタフェースを組込んだどの ARM プロセッサコアにも、nTRST(TAP リセッ ト)と呼ばれる 2 番目のリセット入力があります。このシグナルは、EmbeddedICE ロ ジック、TAP コントローラならびにバウンダリスキャンセルをリセットします。この リセットシグナルは、以下の条件が 1 つ以上発生したときにアサートされます。 • • 6-6 パワーオン リモート JTAG リセット(Multi-ICE から) Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン これら 2 つのシグナルは JTAG コネクタで別々に使用できるようにしておくことを強 く推奨します。nRESET シグナルと nTRST シグナルが互いにリンクしていると、シス テムをリセットすることによって TAP コントローラもリセットされます。つまり、以 下のことを意味します。 • それまでに設定していたブレークポイントが失われるため、リセットからシステ ムをデバッグすることができない。 • TAP コントローラ状態が変更されても Multi-ICE はこれを復元しないため、デ バッグセッションを最初から始めなければならない可能性がある。 Multi-ICE リセットシグナル Multi-ICE インタフェースユニットには、デバッグターゲットボードに接続する 2 つの リセットシグナルがあります。 • nTRST:ARM プロセッサコア上の JTAG nTRST シグナルをドライブします。こ のシグナルは、Multi-ICE ソフトウェアがターゲットシステムのデバッグインタ フェースを再初期化する必要があるときにアクティブになるオープンコレクタ 出力です。 • nSRST:ターゲットボード上のシステムリセットシグナルをドライブ / 感知する 双方向シグナルです。このオープンコレクタ出力は、ターゲットシステムを再初 期化するためにデバッガによって LOW でドライブされます。 ターゲットボードには、これら 2 つのリセットシグナルに対するプルアップ抵抗を実 装する必要があります。 リセット回路の例 P. 6-8 図 6-5 および P. 6-8 図 6-6 の回路は、P. 6-6「リセットシグナル」で説明した動作 がどのようにアクティブなるかを示しています。P. 6-8 図6-6で使用されているMAX823 は、典型的な電源スーパバイザです。このスーパバイザの電流を制限した nRESET 出 力は、Multi-ICE インタフェースユニットによってオーバドライブすることができます。 Multi-ICE サーバはリセットを検出すると、クライアントが次にターゲットステータス を問い合わせたときにそのリセットを検出できるように、このイベントを記録します。 この記録はアクティブな各接続に対して保持されるため、あるクライアントによって 別のクライアントがリセットを検出できないということはありません。その他にシス テムがリセットされたことを証明するものがない可能性があるため、この記録はター ゲットシステムがウォッチドッグリセット回路を使用している場合に特に有効です。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-7 システム設計ガイドライン 図 6-5 リセット回路ロジックの例 図 6-6 電源モニタ IC を使用したリセット回路の例 6-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン 6.3 ASIC に関するガイドライン このセクションでは以下について説明します。 • 複数デバイスから構成される IC:P. 6-9 • 6.3.1 バウンダリスキャンテストベクタ:P. 6-10 複数デバイスから構成される IC JTAG 規格は元来、PCB 上の複数デバイスのデイジーチェイン接続を記述したもので す。今ではこのコンセプトの範囲が、1 パッケージ内のマルチコアにまで至っていま す。ASIC 内に複数の JTAG TAP コントローラが存在する場合、Multi-ICE がこれら全 てと同時に通信できるように、これらの TAP コントローラは全て直列にチェイン接続 する必要があります。このチェインニングは ASCI 内部でも外部でも可能です。 以下では、考え得るいくつかの複数 TAP コントローラの構成方法について説明します。 • TAP コントローラを ASIC 内で直列にチェイン接続する • 各 JTAG 接続セットを別々に接続する • データシグナルを多重化する TAP コントローラを ASIC 内で直列にチェイン接続する この方法は、ボードレベルの JTAG 相互接続を拡張する最も自然な方法であり、 Multi-ICE を使用する場合にはこの方法を推奨します。パッケージのピン数を増やす必 要はなく、指定されていない TAP コントローラはバイパスモードに入ることができる ため、速度への影響もほとんどありません(P. 6-10 図 6-7 参照)。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-9 システム設計ガイドライン 図 6-7 ASIC 内で直列にチェイン接続された TAP コントローラ 各 JTAG 接続セットを別々に接続する この方法は PCB で最も柔軟性のある方法ですが、必要となるデバイスパッケージのピ ン数が多くなります。デバイステストを簡素化するためにこの方法を選択する場合、 Multi-ICE を使用するときは PCB 上で JTAG ポートを直列にチェイン接続する必要があ ります。各 JTAG ポートをトラッキングして PCB 上でヘッダを分けることができます が、ヘッダごとに 1 つの Multi-ICE インタフェースユニットが必要となり、有益とは言 えません。 データシグナルを多重化する Multi-ICE は、異なる複数のプロセッサ間における TCK、TMS、TDI、TDO、RTCK の多重化をサポートしていません。 6.3.2 バウンダリスキャンテストベクタ JTAG バウンダリスキャンテスト方式を使用してプロダクションテストベクタを適用 する場合、各 TAP コントローラに外部から別々にアクセスしたいことがあります。こ の場合は、デバイス内の複数ブロックに使用するテストベクタをマージする必要はあ りません。1 つの方法としては、デバイスエレメントをテストモードに入れるパッケー ジピンを使用して、ハイブリッドを採用する方法です。この方法によって TDO シグナ ルと TDI シグナルの内部デイジーチェインを中断し、通常動作で別の目的に使用され るピンに独立 JTAG ポートを多重化することができます。 6-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン 6.4 PCB に関するガイドライン このセクションでは、ターゲット PCB 上の物理的 / 電気的接続について説明します。 • • PCB の接続:P. 6-11 ターゲットインタフェースのロジックレベル:P. 6-11 Multi-ICE JTAG ヘッダコネクタについては、P. F-2「Multi-ICE JTAG インタフェース接 続」を参照して下さい。 6.4.1 PCB の接続 JTAG ヘッダはターゲットデバイスにできるだけ接近させることを推奨します。こうす ることで長い PCB トラックが原因で生じ得るシグナルの劣化を最小限に抑えることが できます。 図 6-8 は、PCB 接続レイアウトの例を示しています。 図 6-8 典型的な PCB の接続 6.4.2 ターゲットインタフェースのロジックレベル Multi-ICE は、ターゲットシステムの様々なロジックレベルとインタフェースするよう に設計されています。Multi-ICE はそれ自身の出力ドライブと入力閾値をターゲットシ ステムの基準電圧に適合させることによってインタフェースを取ります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-11 システム設計ガイドライン VTref(JTAG ヘッダコネクタのピン 1)は、Multi-ICE インタフェースユニットに基準 電圧を送ります。約 3.2V で切り取られるこの電圧は、TCK、TDI、TMS のロジック 1 の出力ハイ電圧(Voh)として使用されます。0V はロジック 0 の出力ロウ電圧として 使用されます。TDO/RTCK/nSRST 入力の入力ロジック閾電圧(Vi(th))は Voh レベル の半分であるため、約 1.55V で切り取られます。図 6-9 は、VTref に対する Voh と Vi(th) の関係を示しています。 図 6-9 ターゲットインタフェースの電圧レベル 適応インタフェースレベルは 1V 未満の VTref でも動作します。しかし VTref が約 0.85V 未満になると、Multi-ICE はこの条件を「ターゲット不在」として解釈し、ソフトウェ アはこれをエラー条件として通知します。 Multi-ICE からの nTRST 出力は事実上オープンコレクタでドライブされるため、能動 的に 0V にプルされますが、リセット状態を終了するためにターゲットシステム内のプ ルアップ抵抗に依存します。これは、このシグナルを nTRST の別のソース(ターゲッ トシステムのパワーオンリセット等)と OR を取るよう配線するのが一般的であるため です。 6-12 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン Multi-ICE からの nSRST も同様にオープンコレクタでドライブされますが、ターゲッ トシステム内の抵抗でプルアップする必要があります。このシグナルは Multi-ICE イン タフェースユニットへの入力でもあるため、大きな値の内部プルアップ抵抗(Voh に 対して 51kΩ)が実装されています。これは nSRST がターゲットシステムに接続され ていないときに、疑似的に LOW になるのを防止するためです。 Multi-ICE インタフェースユニットの入出力特性には、ターゲットシステムの TTL 互換 または CMOS ロジックのロジックレベルと互換性があります。他のロジックシステム との互換性を評価する場合は、全てのシグナルの出力インピーダンスが約 100Ω である ことを参考にして下さい。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-13 システム設計ガイドライン 6.5 JTAG シグナルの完全性と最大ケーブル長 JTAG ベースのデバッグでは、エラーを検出または修正する手段がないため、Multi-ICE とターゲットボード間の接続が極めて信頼性の高いものでなければなりません。この 理由から、良好なシグナルの完全性を確保することが重要です。 最大ケーブル長を制限する 1 つの要因に伝播遅延があります。通常、Multi-ICE インタ フェースユニットはデータ送信時と同じクロック TCK を使用して、ターゲットから返 されるデータをサンプリングします。伝播遅延が長過ぎると、Multi-ICE インタフェー スユニットは誤った時点でシグナルをサンプリングします。この問題は、適応クロッ キングを使用することで解決できます。このモードでは、ターゲットがクロック RTCK を返し、Multi-ICE はこのシグナルでクロッキングされるまで、TDO におけるデータの サンプリングも、TDI における次のデータ送信も行いません。 ASIC または ASSP(ARM プロセッサベースのマイクロコントローラ内にあるものな ど)では、TDO シグナルと RTCK シグナルには一般的にそのデバイス上の他のシグナ ルよりも強いドライバは実装されません。これらのドライバの強度は、デバイスごと に異なります。例えば、シンク電流またはソース電流で 4mA という仕様があります。 大抵の設計では、デバイス上のこれらのピンを Multi-ICE コネクタのピンに対応させる ために直接接続します。 Multi-ICE 付属ケーブルのようにケーブル長が非常に短い場合には、このタイプの弱い ドライバが適しています。一方、長いケーブルを使用する場合には、容量性負荷が大 きくなるにつれてケーブルをドライブしにくくなります。したがって長いケーブルを 使用する場合は、ケーブルを伝送線と考えて適切なインピーダンス整合を取らないと、 反射が生じます。 Multi-ICE にはさらに強力なドライバがあり、100Ω 直列抵抗を介して接続することに よって、JTAG ケーブルとインピーダンス整合を取ります。Multi-ICE の出力回路は 40mA 以上の電流を容易にシンクまたはソースすることが可能です。この回路はター ゲット側で使用される典型的な回路よりもはるかに優れています。 ターゲット側の典型的な状況(弱ドライバ、インピーダンス整合抵抗なし)では、短 いケーブル(約 20cm)を使用して動作の信頼性を高めるしかありません。長いケーブ ルを使用しなければならない場合は、ターゲット側で使用される回路を改善させる必 要があります。 この場合は、ターゲットボードに良好な電流ドライブを備えた外部バッファと、TDO (および使用する場合は RTCK)に対する 100Ω 直列抵抗を追加する方法を推奨します。 この方法を使用することにより、最大数メートルまでの非常に長いケーブルを介して デバッグすることが可能です。ケーブル長とバッファおよびケーブルからの伝播遅延 によっては、それでも適応クロッキングを使用しなければならない場合もあります。 設計内で適応クロッキングを使用していない場合は、TDO に使用されるものと同じ バッファおよびインピーダンス整合回路から送信される TCK シグナルを使用して、 ターゲット側で RTCK を生成することができます。 6-14 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 システム設計ガイドライン さらに長いケーブルを必要とする場合は、別の方法として、RS422 等の差動ドライバ を介して JTAG シグナルをバッファリングし、より対線を使用してリモート側の差動 レシーバに接続します。この場合もケーブルとドライバの伝播遅延分を見越し、適応 クロッキングを使用する必要があります。この方法を使用すると、何十メートル離れ ていても信頼性の高い動作を確保することができます。 Multi-ICE サーバで JTAG クロック速度を低下させると、長いケーブルに関係する問題 の全てではありませんが、いくつかは解消することができます。デバッガでコードを ダウンロードする速度やメモリを読み出す速度を低下させてもそれほど大きな問題は ない場合は、このクロック速度を低下させて実験してみるのもよいでしょう。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 6-15 システム設計ガイドライン 6.6 EmbeddedICE インタフェース用ターゲットのコネクタとの互換性 EmbeddedICE インタフェースユニットは、ターゲットシステムとのインタフェースに 14 ウェイコネクタを使用します。ARM ではアダプタボード HPI-0027 を提供しており、 これによって14ウェイコネクタを使用するターゲットボードにMulti-ICEインタフェー スユニットを接続することができます。またご要望に応じて、ARM では EmeddedICE インタフェースユニットを 20 ウェイコネクタを使用するターゲットに接続するための ボードも提供しています。 6.6.1 Multi-ICE インタフェースユニットを 14 ウェイコネクタに接続するためのアダプタ アダプタボードの 14 ウェイソケットは古いヘッダを使用するターゲットボードに接続 し、Multi-ICE リボンケーブルはアダプタボードの 20 ウェイヘッダに接続します。 3 ピンヘッダ J3 は以下のように接続されています。 ピン 1 0V、Gnd ピン 2 Multi-ICE コネクタピン 2、Vsupply ピン 3 ターゲットコネクタピン 1、SPU Multi-ICE インタフェースユニットが通常通りターゲットシステムから電力を得られる ように、アダプタボードのジャンパリンクはピン 2 および 3 に接続します。ターゲッ トシステムが適切な電圧または電流を供給できない場合は、2V ~ 5V DC 外部電源をピ ン 1 と 2 に接続することができます。 3 ピンヘッダ J4 は以下のように接続されています。 ピン 1 0V ピン 2 Multi-ICE コネクタピン 11、RTCK ピン 3 Multi-ICE コネクタピン 9 が与える抵抗、TCK アダプタボードのジャンパリンクは、Multi-ICE RTCK 入力を 0V に接続します。ター ゲットシステムに適応クロッキングを使用する場合、TCK はここでタップされ、ター ゲットのクロッキングに使用される同期化バージョンを RTCK としてフィードバック することができます。 6-16 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 A サーバコンフィギュレーションファイルの構文 本付録ではサーバコンフィギュレーションファイル形式について説明します。本付録 は以下のセクションから構成されています。 • IR 長コンフィギュレーションファイル:P. A-2 • ARM DUI0048EJ-00 デバイスコンフィギュレーションファイル:P. A-3 Copyright © 1998-2001 ARM Limited. All rights reserved. A-1 サーバコンフィギュレーションファイルの構文 A.1 IR 長コンフィギュレーションファイル Multi-ICE は、接続されているスキャンチェインの長さを計算する必要があります。こ の長さは、スキャンチェイン内で検出した各 TAP IR レジスタの長さを加算することに よって求められます。この計算はチェイン内のデバイスを特定し、IRlength.arm と 呼ばれるファイル内の情報を使用して行うことができます。このファイルは Multi-ICE インストールディレクトリに保存されています。例 A-1 は、IRlength.arm ファイル からの抜粋を示しています。 例 A-1 IRlength.arm コンフィギュレーションファイルからの抜粋 ;ARM7 series cores ARM7TDMI=4 ARM7TDMI-S=4 ARM740T=4 ;ARM9 series cores ARM9TDMI=4 ARM920T=4 A.1.1 ファイル構文 このファイルには以下の構文が適用されます。 • 空白行は無視されます。 • コメントはセミコロンで始まり、その行の終わりまで続きます。 • このファイル内の他のテキストには name=value の形式を適用する必要があり ます。name はデバイス名、value はそのデバイスの IR 長を示します。name と value の間にスペースは入れないで下さい。 本製品の付属ファイルには、Multi-ICE DLL が認識する全てのデバイスが含まれてい ます。 A.1.2 デバイスエイリアス IRlength.arm ファイルには、IR 長の値を 0 にして項目を追加することができます。 こ のように、手動で生成したコンフィギュレーションファイル内に追加した名前を、別 のデバイスのエイリアスとして使用することができます。この方法は、例えば 2 つの 連携クライアントが同一デバイスへのアクセスを要求する場合に便利です。エイリア スを使用することにより、サーバは両方のクライアントを接続させることができます。 TAPOp 呼び出し内で deselect パラメータを使用すると、2 つのクライアント間でそ のデバイスへのアクセスをアービトレーションすることができます。 A-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 サーバコンフィギュレーションファイルの構文 A.2 デバイスコンフィギュレーションファイル デバイスコンフィギュレーションファイルは、Multi-ICE サーバを特定のターゲットに 合わせて設定するために必要な情報を含むテキストファイルです。これらのコンフィ ギュレーションファイルはどこでも適当な場所に保存することができます。 A.2.1 構文 デバイスコンフィギュレーションファイルは、ファイル拡張子 .cfg の付いたテキスト ファイルです。このファイルの構文は、Windows INI ファイル形式に似ています。 • 空白行は無視されます。 • コメントはセミコロンで始まり、その行の終わりまで続きます。 • 角括弧[]で囲まれたテキストは、ファイルのセクションの始まりを示し、以下の ストリングのいずれかである必要があります(大文字・小文字は関係ありません)。 — TITLE — TAP n — RESET — TIMING — TAPINFO Tapのnには、記述しようとするTAPコントローラの番号を0から順に指定する必 要があります。 以下は、このコンフィギュレーションの各セクションの内容です。 Title タイトルストリングです。 Tap n デバイス(IRlength.arm に記述されている必要があります)の名前です(P. A-4 例 A-2 参照)。Multi-ICE ソフトウェアがデバイスエイリアスを必要とする場合は、これを 次の行に同じ形式で記述する必要があります。この構文は以下のようになります。 Name DriverOptions, DriverVersion DriverOptions フィールドには、特定デバイスのドライバに渡される任意のテキスト ストリングを指定します。ドライバ名とドライバオプションの間にはスペースを 1 つ 入れる必要がありますが、ドライバオプション間にもスペースを含めることができま す。このフィールドは、カンマか改行で終わります。 オプションストリングに 1 つ以上のアスタリスク * が含まれていると、Multi-ICE サー バは TAP ウィンドウにステータスインジケータ [X] を表示しません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. A-3 サーバコンフィギュレーションファイルの構文 DriverVersion フィールドには整数値を指定します。値を指定することにより、その バージョン以上のドライバだけが使用可能であることが通知されます。 例 A-2 コンフィギュレーションファイルの TAP セクション [TAP 0] ARM7TDMI ;Plain, no options [TAP 1] ARM7TDMI , 2 ;Requires V2 or higher [TAP 2] ARM7TDMI *ABC;Driver=ARM7TDMI, Options="ABC", no status Reset このセクションには例 A-3 が示す 2 つのワードの一方または両方が含まれています。 nSRST システムをリセットすると nSRST がアサートされます。 nTRST システムをリセットすると nTRST がアサートされます。 リセットセクションが存在しない場合に Multi-ICE サーバの GUI を使用してシステム をリセットすると、両方のシグナルがアサートされます。 例 A-3 コンフィギュレーションファイルの Reset セクション [Reset] nTRST nSRST Timing タイミングセクションは、TCK シグナルの生成方法を定義します(P. A-5 例 A-4 参照)。 このセクションには、以下の名前の値を組み合わせて指定することができます。 A-4 High TCK = HIGH(正電圧)の周期を、P. F-7「TCK 周波数」に記載されてい る値を使用して指定します。 Low TCK = LOW(ゼロ電圧)の周期を、P. F-7「TCK 周波数」に記載されて いる値を使用して指定します。 Adaptive ターゲットが RTCK をドライブする場合は YES、ドライブしない場合は NO を指定します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 サーバコンフィギュレーションファイルの構文 HIGH と LOW の値は、サーバの [Settings] → [JTAG Settings] ダイアログボックスに表 示される値に対応しています。 例 A-4 コンフィギュレーションファイルの Timing セクション [TIMING] High=100 Low=50 Adaptive=ON Tapinfo TAPINFO セクション(例 A-5 参照)は、コンフィギュレーションファイルのロード後 に、デバイスから補足情報を読み出す必要があるかどうかをサーバに通知します。こ のセクションに YES が指定されているとサーバは全ての補足情報を読み出し、指定さ れていない場合は読み出しません。この情報は、サーバの [Configuration] ウィンドウ内 で TAP コントローラをダブルクリックすることによって表示させることができます。 例 A-5 コンフィギュレーションファイルの Tapinfo セクション [TAPINFO] YES TAPINFO オプションがコンフィギュレーションファイルに含まれている理由は、ASIC 開発者が柔軟にテストを行えるようにするためです。[Auto-configure] 機能を使用して いる場合は、TAPINFO が必ず提供されます。デフォルトでは、コンフィギュレーショ ンファイルをロードすると TAPINFO は提供されません。 A.2.2 コンフィギュレーションファイルの例 例 A-6 は、全てのタイプのデータを含んだコンフィギュレーションファイルを示して います。 例 A-6 完全なコンフィギュレーションファイル [TITLE] Example TAP Configuration [TAP 0] ARM7TDMI [TAP 1] ARM9TDMI ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. A-5 サーバコンフィギュレーションファイルの構文 [Reset] nTRST nSRST [TIMING] High=100 Low=50 Adaptive=ON [TAPINFO] YES A-6 ; When you reset: ; reset tap controller ; and reset the target board ; ; ; ; These HIGH and LOW values correspond to those in the server Settings->JTAG Settings dialog box. Use the RTCK adaptive clocking signal. ; Tells the server to gather core information ; after loading this.cfg file. Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 B ブレークポイント選択アルゴリズム 本付録では、ブレークポイント割り当てアルゴリズムについて説明します。本付録を 参考にして、プロセッサの限られたブレークポイントリソースのほとんどを設定でき ます。本付録は以下のセクションから構成されています。 • Multi-ICE 内部ブレークポイント:P. B-2 • ARM DUI0048EJ-00 デバッガによるコードのステッピングと実行:P. B-4 Copyright © 1998-2001 ARM Limited. All rights reserved. B-1 ブレークポイント選択アルゴリズム B.1 Multi-ICE 内部ブレークポイント Multi-ICE は、現在要求されているブレークポイントを内部と外部に分けたリストを保 持しています。外部ブレークポイント / ウォッチポイント(ユーザによって明示的に設 定されたもの、あるいはユーザの代わりに自動的に設定された main ブレークポイン ト)は、デバッガのブレークポイント / ウォッチポイントリストに表示されます。内部 で設定されたブレークポイントは、デバッガに表示されません。しかし、内部ブレー クポイントはプロセッサ上で使用可能なブレークポイントリソースを潜在的に使用す る可能性があり、これによる影響を受ける場合があります。以下では、内部ブレーク ポイントの使用について説明します。 ベクタキャッチブレークポイント ARM7T ベースのコアのベクタキャッチは、ブレークポイントを使用し て実装されます。したがって、ユーザが設定するブレークポイントとベ クタキャッチブレークポイントがハードウェアブレークポイントリソー スをめぐって競合することになります。デフォルトの vector_catch 設 定とハードウェアを使用した場合は、使用可能なブレークポイントユ ニットが2つしかないため、ほとんどまたは全てのベクタキャッチブレー クポイントがソフトウェアブレークポイントとして設定されます。 この影響の一つとして、アドレス 0 に ROM が存在するシステムがベク タキャッチ用のブレークポイントユニットを使用できず、この結果以下 のエラーメッセージが表示されます。 Unable to set breakpoints on exception vectors as specified by vector_catch この問題を解消するには、アドレス 0 に RAM を置いて実行するか、 vector_catch を変更して必要なブレークポイントの数を減らします。 XScale マイクロアーキテクチャプロセッサ、ARM9 プロセッサコア、な らびに ARM10 プロセッサの場合には、ベクタキャッチがコア内の専用 ハードウェアに実装されています。したがって、ベクタキャッチブレー クポイントとユーザブレークポイント間の競合が発生しないため、上記 の制約条件は適用されません。 ベクタキャッチブレークポイントは、デバッガの起動時と vector_catch の変更時に設定されます。 セミホスティング SWI ブレークポイント SWI ベクタ上のブレークポイントは、特殊なケースとして処理されます。 このブレークポイントの割り当ては、2 つのデバッガ内部変数によって 制御されます。 • vector_catch • semihosting_enabled デフォルトでは、vector_catch 内の S ビットはセットされず、 semihosting_enabled に 1 がセットされます。つまり、SWI ベクタ上 にブレークポイントが存在しているものの、ヒットしたときには停止す るのではなく、セミホスティング要求として処理されます。 B-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 ブレークポイント選択アルゴリズム vector_catch 内の S ビットがセットされていると、Multi-ICE は SWI 命 令に設定されたブレークポイントを発生させ、semihosting_enabled の設定を無視します。vector_catch 内の S ビットがクリアされている と、semihosting_enabled の設定によって後続の SWI 命令に対する Multi-ICE の応答方法が決定されます。 ステップ実行時のブレークポイント コードをステップ実行する場合、デバッガはプロセッサを停止させる場 所にブレークポイントを設定します。これと同じことが、実行タイプ Run to cursor が要求されたときにも行われます。 シングルステッピングブレークポイントは、プロセッサに実行開始を要 求するまで設定されません。したがってコードをステッピングするとき は、デバッガのブレークポイントビューに表示されるハード / ソフトブ レークポイントへのユーザブレークポイントの厳密な割り当ては異なり ます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. B-3 ブレークポイント選択アルゴリズム B.2 デバッガによるコードのステッピングと実行 コードのステッピングには以下のアルゴリズムが使用されます。 1. 現在の命令にブレークポイントが設定されている場合は、そのブレークポイント が削除されます。これがユーザ定義のブレークポイントであった場合は、ステッ ピング後に復元されます。これが前回のステップ実行のためのブレークポイント であった場合は、そのまま破棄されます。 2. 命令の読み出しとデコードが行われます(選択されるデコード方法は、CPSR 内 の T ビットの現在の値に基づきます)。次に実行される命令のアドレスが計算さ れ、ブレークポイントがその命令に設定されます。通常、ARM コードの場合は pc+4、Thumb® コードの場合は pc+2 として計算されますが、分岐命令がステッピ ングされる場合は、その分岐アドレスが計算されます。 3. プロセッサが再始動します。この時点で保留されていた割込みがあり、割込みが イネーブルされていると、割込みが受け付けられて最後まで実行され、ISR 完了 後に 1 つの命令がステッピングされます。したがって ISR が完了しなければ、ス テッピングも完了しません。 4. 分岐自身へのシングルステッピングはこのアルゴリズムにサポートされていな いため、この場合はエラーが生成されます。 コードの実行には以下のアルゴリズムが使用されます。 1. 現在の命令にブレークポイントが設定されていない場合は、プロセッサが再始動 します。 2. 現在の命令にブレークポイントが設定されている場合は、そのブレークポイント が削除され、プロセッサが再始動します。 3. 現在の命令にユーザブレークポイントが設定されている場合は、それが削除さ れ、上記のステッピングアルゴリズムを使用して、次の位置までのシングルス テッピングが実行されます。ユーザブレークポイントが復元され、プロセッサが (ユーザブレークポイントの 1 つが新しい位置にも設定されていない限り)新し い位置から再始動します。 これが行われる理由は、ブレークポイントから再開することによって同一ブレー クポイント上の後続のヒットを見過ごさずに済むためです。例えば、ループ内で は [Go] をクリックしてループを 1 回パスする場合があります。このメカニズム では、[Go] をクリックするごとに 1 ループしか実行されません。 高水準言語コードのステップスルーには、これらの方法の組み合わせが使用されます。 注 Multi-ICE は、デバッガ内で [Go] をクリックするごとにソフトウェアブレークポイント 命令を書き直しません。つまり、分散ロードイメージまたは自己修正コードを使用し ている場合には、変更されるコード周辺のソフトウェアブレークポイントを手動で設 定 / 設定解除する必要があります。 B-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 ブレークポイント選択アルゴリズム B.3 ブレークポイント / ウォッチポイント割り当てアルゴリズム この単純なアルゴリズムは、Multi-ICE がユーザブレークポイントとデバッガ内部ブ レークポイントを使用可能なハードウェアリソースにマップするときの基本プロセス を示しています。 1. 現在ユーザに割り当てられているハードウェアブレークポイントリソース (icebreaker_lockedpoints 参照)は使用されません。Multi-ICE はこれらの リソースを使用不可能とみなし、使用可能ハードウェアリストから削除します。 2. 次に、要求されている全てのウォッチポイントが割り当てられ、その後 ROM に 存在するブレークポイントが割り当てられます。 (これら両方のタイプに専用の ハードウェアリソースが必要となります。)これら全てを設定できるだけの十分 なハードウェアブレークポイントユニットが存在しない場合は、それ以上のブ レークポイントまたはウォッチポイントの設定が不可能なことを示すエラーが 表示されます。 3. 残りのブレークポイントは、ハードウェアブレークポイントまたはソフトウェア ブレークポイントとして割り当てられます。デバッガ内部ブレークポイントより もユーザブレークポイントが優先され、ユーザの設定は以下のように sw_breakpoints_preferred の値によって指定されます。 • 値がゼロ(デフォルト)の場合、ユーザブレークポイントはブレークポイ ントユニットに空きがあればハードウェアブレークポイントとして、空き がなければソフトウェアブレークポイントとして割り当てられます。 • ゼロ以外の値が設定されている場合、ユーザブレークポイントは可能な限 りソフトウェアブレークポイントとして割り当てられます。これが不可能 な場合(その位置が ROM 内にある場合など)に、代わりにハードウェア ブレークポイントを使用できるときは、それが使用されます。 ブレークポイントの設定が不可能な場合には、それ以上のブレークポイントまた はウォッチポイントを設定できないことを示すエラーが表示されます。 4. ステッピングブレークポイントは、可能な限りハードウェアブレークポイントと して割り当てられます。これは以下の理由によるものです。 • どのブレークポイントの割り当ても、ROM に対するステッピングイン / ア ウトによって変更されることがない。 • パフォーマンスが向上する。 例えば、標準 ARM7 コアを使用している場合に、ユーザブレークポイントが 1 つも設 定されておらず、vector_catch=0、semihosting_enabled=0(内部ブレークポイ ントも設定されていない)と仮定したとき、ブレークポイントが追加されるときの動 作は以下のようになります。 ARM DUI0048EJ-00 1. 最初のユーザブレークポイントがハードウェアブレークポイントとして割り当 てられます。 2. 2 番目のブレークポイントが設定されると、最初のブレークポイントが(可能で あれば)ソフトウェアブレークポイントに格下げされ、2 番目がハードウェアブ レークポイントとして割り当てられます。 3. 後続のブレークポイントが設定されると、最後のブレークポイントがハードウェ ア、その他全てがソフトウェアブレークポイントとして割り当てられます。 Copyright © 1998-2001 ARM Limited. All rights reserved. B-5 ブレークポイント選択アルゴリズム B-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 C コマンドライン構文 本付録では、Multi-ICE サーバのコマンドライン構文について説明します。 • ARM DUI0048EJ-00 Multi-ICE サーバ:P. C-2 Copyright © 1998-2001 ARM Limited. All rights reserved. C-1 コマンドライン構文 C.1 Multi-ICE サーバ Multi-ICE サーバは DOS コマンドライン(Win9x では MS-DOS Prompt、Windows NT/2000 では Command Prompt)から、あるいは [Start] → [Run] を使用して起動し、 個々のコマンドを発行することができます。Multi-ICE サーバは完全 Win32 API プログ ラムです。 Multi-ICE サーバは以下の構文を理解します。 Multi-ICEServer [-A | config_file] 上記において: -A サーバに標準TCKレートでの自動コンフィギュレーションを指示します。 [Start-up Options] ダイアログ(P. 3-16「スタートアップオプションダイ アログ」参照)の [Start-up Configuration] に [None] が設定されていない 限り、このパラメータは無視されます。[Start-up Configuration] に設定 されたその他全ての値は -A パラメータをオーバライドします。 config_file 使用するコンフィギュレーションファイルを指定します。このファイル 内の設定は、[Start-up Options] ダイアログボックス内の設定をオーバライ ドします。 C-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 D プロセッサ情報 本付録では、特定のプロセッサに固有の情報について説明します。本付録は以下のセ クションから構成されています。 • ARM1020T(Rev 0)プロセッサ:P. D-2 • ARM DUI0048EJ-00 Intel 80200(XScale マイクロアーキテクチャ)プロセッサ:P. D-3 Copyright © 1998-2001 ARM Limited. All rights reserved. D-1 プロセッサ情報 D.1 ARM1020T( (Rev 0)プロセッサ )プロセッサ ARM1020T プロセッサには、エンハンスト CPU、ベクタ浮動小数点コプロセッサ、統 合 デ バ ッ グ ロ ジ ッ ク が 組 込 ま れ て い ま す。こ の プ ロ セ ッ サ の 詳 細 に つ い て は、 ARM1020T(Rev 0)テクニカルリファレンスマニュアルを参照して下さい。 こ の セ ク シ ョ ン で は、ARM1020T で実行中 のプロ グ ラムをデバッ グ するときの Multi-ICE の使用方法について説明します。 D.1.1 ARM1020T( (Rev 0)プロセッサの制約 )プロセッサの制約 ARM1020T(Rev 0)プロセッサに接続した場合、Multi-ICE バージョン 2.1 は以下の機 能をサポートしません。 • ビッグエンディアンシステム • マルチプロセッサの同期開始 / 停止 • ハードウェアウォッチポイント キャッシュが正しくオンにされているとき、このプロセッサはデバッグ状態における メモリへの書き込みを実行しません。このことは、コードのダウンロードやソフトウェ アブレークポイントの設定を含め、いくつかのデバッグ操作に影響を及ぼします。こ のため、必ず以下の規則に従って下さい。 • コードをダウンロードする際は、必ずキャッシュをオフにして下さい。 • キャッシュをオンにした状態で、コード内に 5 個以上のブレークポイントを設定 しないで下さい。これにより、デバッガがプログラムの実行制御に 2 つのハード ウェアブレークポイントユニットを使用することができます。 プロセッサがデバッグ状態に入るときに DCache がオンになっていると、Multi-ICE が この DCache をクリーンします。このクリーンを行うために、Multi-ICE は構成済みの Cashe clean code address にあるメモリに何らかのコードをダウンロードし、それを実行 します。キャッシュがオンになっていると、デバッグ状態にあるプロセッサはメモリ の書き込みを正しく行わないため、Multi-ICE がこのコードをダウンロードできない場 合があります。Multi-ICE にコードをダウンロードさせるには、以下を行う必要があり ます。 • Cashe clean code address にメモリが存在することを確認します。 • プロセッサがデバッグ状態にあるときは、このメモリを ICache にも DCache にも 存在させてはなりません。 この操作には以下のどちらかの方法を使用することができます。 D-2 • アプリケーションにも参照されず、デバッガまたはオペレーティングシステムに も(メモリの一貫性をチェックする等の目的で)参照されないキャッシュクリー ンアドレス領域を指定します。 • そのメモリを MMU テーブル内でキャッシュ不可能としてマーキングします。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 プロセッサ情報 D.2 Intel 80200( (XScale マイクロアーキテクチャ)プロセッサ Intel 80200(XScale マイクロアーキテクチャ)プロセッサは Intel StrongARM の後継プ ロセッサであり、いくつかのコプロセッサとペリフェラルを備えたエンハンスト CPU を搭載しています。このプロセッサの詳細については、Intel® XScale™ コアデベロッパー マニュアルを参照して下さい。 このセクションでは、Intel 80200 プロセッサで実行中のプログラムをデバッグするとき の Multi-ICE の使用方法について説明します。このセクションは以下のサブセクション から構成されています。 • システムリセット時の動作:P. D-3 • • • • • D.2.1 デバッグモード:P. D-5 パフォーマンスカウンタ:P. D-6 コプロセッサ:P. D-7 デバッグハンドラファームウェアのサポート:P. D-7 まとめ:P. D-8 システムリセット時の動作 XScale プロセッサのデバッグアーキテクチャは、ARM アーキテクチャベースのプロ セッサとは大幅に異なります。このプロセッサは、ブレークポイントにヒットしたと きなどに、デバッグと呼ばれる違うプロセッサモードでデバッガ専用ハンドラに分岐 することによって、デバッグ状態に入ります。このハンドラはプロセッサ命令キャッ シュの特別な場所に保存され、通常はプロセッサがリセットでホールドされていると きにこの場所に保存されます。 Multi-ICE バージョン 2.1 は以下の方法でのみ XScale アーキテクチャプロセッサに接続 することができます。 ARM DUI0048EJ-00 • Multi-ICEは nSRST を使用してプロセッ デバッグハンドラをダウンロードする間、 サをリセットでホールドします。その後、プロセッサをリセット状態から開放す る前にデバッグシグナルをアサートし、事実上リセットハンドラに分岐させます。 • Multi-ICE バージョン 2.1 がそれまでにデバッグハンドラをダウンロードしたこと があり、プロセッサがまだ始動していない場合には、デバッグハンドラはキャッ シュ内に存在するため、Multi-ICE がこれを再度ダウンロードする必要はありま せん。したがって、デバッグセッションに再接続することが可能です。この機能 は、前のデバッグセッションの終了時にプロセッサがまだ動作していたかどうか に関係なくサポートされます。 • システムファームウェア内のリセットハンドラは、Intel ホットデバッグをサポー トすることが可能です。この場合、プロセッサはパワーオン(または他の種類の) リセットから起動して実行することが可能であり、デバッガはプロセッサをリ セットし直すことなく後で接続することができます。システムがリセットされな いため、接続時におけるプロセッサの状態は失われません。ホットデバッグの使 用に関する詳しい情報については、Intel までお問い合わせ下さい。 Copyright © 1998-2001 ARM Limited. All rights reserved. D-3 プロセッサ情報 注 Multi-ICE バージョン 2.0 は、リセットを使用する接続だけをサポートしています。 接続するプロセッサをリセットしたい場合: • Multi-ICE コンフィギュレーションダイアログの [Processor Settings] タブにある [Enable hot-debug] チェックボックスの選択を解除します。 • ターゲットボードにシグナル nTRST および nSRST を接続する必要があります。 • スタティックメモリの状態を検査する以外に、事後分析デバッグを実行すること はできません。ダイナミックメモリの内容は、システムリセットによって失われ ている可能性があります。 • 相互接続された複数の XScale プロセッサをデバッグすることはできません。ま た最初にデバッガを XScale プロセッサに接続しない限り、XScale プロセッサと ARM 設計プロセッサをデバッグすることもできません。 ホットデバッグを使用できるシステムファームウェアの使用により、あるいは前の Multi-ICE セッションからインストールされた、既にセットアップされているデバッグ ハンドラに再接続したい場合には: • デバッガが接続されていない間は、アプリケーションに SWI 呼び出しを発生さ せないようにする必要があります。アプリケーションが SWI 呼び出しを発生さ せると、そのアプリケーションはハングし、プロセッサをリセットしない限りは デバッガを再接続することができません。 • XScale プロセッサは、デバッガが接続されると必ず停止します。XScale プロセッ サを使用してノンストップデバッグを行うことは不可能です。 • 再接続すると、Multi-ICE はデバッグハンドラが実行しているアドレスを検出し ます。このアドレスが現在構成されているアドレスと異なる場合には、既存のア ドレスを使用するかどうか(Yes をクリック)、新しいアドレスをリロードする か(No をクリック)、あるいは接続試行をキャンセル(Cancel)するかどうかを 尋ねるメッセージが表示されます(ただし、プロセッサは既に停止しています)。 • Multi-ICE がデバッグとの接続を確立できない場合には、プロセッサをリセット して接続を確保するかどうかを尋ねるメッセージが表示されます。[No] をクリッ クすると、その接続試行がアボートされます。 Multi-ICE コンフィギュレーションダイアログの [Processor Settings] タブを使用して、 使用される専用キャッシュ内に命令アドレスを構成します。このアドレスでマップさ れる物理メモリが存在する必要はありませんが、少なくとも 2KB 境界で整列し、アド レス 0 の +/- 32MB の範囲に存在している必要があります。不正なアドレスを入力する と、The address you have entered is invalid というエラーメッセージが表 示されます。 D-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 プロセッサ情報 D.2.2 デバッグモード XScale マイクロアーキテクチャには、Undef モード等の既存モードに類似する、デバッ グモードと呼ばれる新しいプロセッサモードが加わっています。プロセッサは以下の ようなデバッグイベントが発生すると、デバッグモードに入ります。 • プロセッサがブレークポイントにヒットする。 • デバッグ要求シグナル入力がアサートされる。 デバッグハンドラはチップ上の DCC を使用してホストデバッガと通信します。このた め、DCC を以下のような他の目的で使用することはできません。 • DCC セミホスティング • ARM RealMonitor デバッグエージェントのサポート • DCC チャネルビューワ デバッグベクタは存在しません。その代わり、通常のリセットハンドラとデバッグハ ンドラの両方が使用できるようにリセットベクタがオーバロードされます。したがっ て以下の 2 つのケースがあります。 • パワーオンリセットが発生すると、プロセッサが ROM からロードされた実リ セットベクタを使用する。 • デバッガがプロセッサをリセットするとき、nSRST がアサートされている間に デバッグハンドラをインストールする。デバッガが nSRST をアサート解除する と、プロセッサはデバッグハンドラを実行します。 このオーバロードにより、アプリケーションプログラムはデバッガ接続時にハードリ セットをシミュレートする方法として、アドレスの 0 番地への分岐を使用することがで きなくなります。しかし、Multi-ICE はプロセッサの制御を得ているため、このように シミュレートしたリセットをエミュレートすることが可能であり、したがってデバッガ 内で pc に 0 を設定すると、Multi-ICE はゼロへの分岐をリセットハンドラへの分岐と解 釈し、リセットコードを実行します。ただしこの場合、Multi-ICE はリセットベクタに ある命令のみをエミュレートし、次のような命令に対してのみ上記を実行します。 • LDR <rd>, [<rn>, #Immed12] • B loc • {MOV|MVN} <rd>, <rn>, {<rm> |#Immed} • {ADD|SUB|RSB|AND|EOR|ORR} <rd>, <rn>, {<rm> |#Immed} loc はアドレスオフセットです。 リセットベクタのデバッグバージョンは、ミニ ICache と呼ばれるキャッシュの一部分 に含まれるキャッシュ行に保持されます。このミニ ICache は、0x0 および 0xffff0000 で始まるメモリにマップされ、プロセッサがデバッグ状態にあるときに使用されます。 現在の XScale プロセッサのキャッシュ行は、リセットベクタだけではなく、どのよう な例外ベクタも保持するのに十分な大きさがあります。したがってデバッガがアク ティブのときには、割込み等の他の例外もデバッグベクタを使用するため、失敗する 可能性があります。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. D-5 プロセッサ情報 Multi-ICE はプログラム実行前に、さらにシングルステップまたはブレークポイント後 の再開前にも、現在定義されているベクタをプログラム実行前に通常メモリからミニ ICache にコピーします。この動作は、プログラムが自らベクタを変更しない限り、正 しく機能します。しかしプログラムが例外ベクタを変更し、 (SWI オペコード等によっ て)その例外が発生すると、変更されたベクタが無視されて代わりに古い値が使用さ れます。 これを避けるには: D.2.3 1. 例外ベクタアドレスへの書き込みと、最初に発生する例外の間に、ブレークポイ ントを設定します。 2. プログラムを実行します。 3. ブレークポイントにヒットしたら、デバッガの [Continue] または [Go] コマンド を使用してプログラムの実行を継続させます。継続させた結果、Multi-ICE はメ インメモリからミニ ICache ベクタを再度書き込み、例外ベクタも新しいハンド ラに書き込みます。 パフォーマンスカウンタ ADS デバッガを使用して、Intel 80200 プロセッサのパフォーマンスカウンタを見るこ とができます。しかし、XScale プロセッサはデバッグ状態に入っても、パフォーマン スカウンタを自動的にディセーブルしません。デバッグモニタを使用するとコードが 実行されるため、パフォーマンスカウンタはデバッグ状態の間にインクリメントされ ます。 Multi-ICE バージョン 2.1 のデバッグモニタは、デバッグ状態にある間はパフォーマン スカウンタをディセーブルし、デバッグ状態終了時に再度イネーブルします。 デバッグハンドラはこのカウンタをすぐにディセーブルすることができないため、プ ロセッサがデバッグ状態を開始したり終了するたびに、カウンタがデバッグ状態の何 らかの影響を受けます。例えば、実行された命令の数をカウントするようにパフォー マンスカウンタが構成されている場合には、1 つの命令をシングルステッピングする と、予想に反して 9 つの命令が実行されたとカウントされます。これはステッピング される 1 つの命令以外にも、デバッグ状態の開始とカウンタのディセーブル、その後 のカウンタのディセーブルとデバッグ状態の終了に 8 つの命令が実行されるためです。 ブレークポイントが設定された命令から実行を開始する場合、デバッガはまず最初に そのブレークポイントが設定された命令を通り越してシングルステッピングを実行 し、その後プログラムの実行を再開させます。したがって、ブレークポイントが設定 された 1 つの命令から別のブレークポイントまで実行する場合はその影響が倍になり、 18 の余分な命令が記録されます。セミホスティングを使用すると、この影響が実行さ れるどの SWI 命令にも見られます。 注 ここに記載している数字は暫定の値であり、Multi-ICE または XScale アーキテクチャプ ロセッサのバージョンによって異なる可能性があります。 D-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 プロセッサ情報 D.2.4 コプロセッサ XScale アーキテクチャプロセッサはいくつかのコプロセッサを備えています。 • コプロセッサ 0:シグナル処理に使用されます。 • コプロセッサ 13:オンチップペリフェラルの制御に使用されます。 • コプロセッサ 14:デバッグに使用されます。 • コプロセッサ 15:システム制御に使用されます。 ADW でコプロセッサ 0 が検出されると、EmbeddedICE レジスタのエミュレーションが XSscale アーキテクチャプロセッサで検出された実コプロセッサ 0 レジスタに置き換え られます。 使用可能な命令およびレジスタが ARM プロセッサの場合とは異なるため、コプロセッ サ 14 および 15 を使用する場合には注意を払う必要があります。 D.2.5 デバッグハンドラファームウェアのサポート 例 D-1 のコードは、ターゲットファームウェアに組込まれ、かつ Multi-ICE バージョン 2.1 を使用している場合に、ホットデバッグを可能にするリセットハンドラの例です。 例 D-1 ホットデバッグファームウェアの例 MY_RESET MRS AND CMP BEQ MOV MCR B r13, cpsr r13, r13, #0x1f r13, #0x15 DBG_ENTRY ; Are we in debug mode? r13, #0x8000001c p14, 0, r13, c10, c0, 0 ; Enable debug and signal late startup MY_ENTRY ; branch to rest of reset code DBG_ENTRY ; Indicate we support hot debug 0 MCR ORR MCR p14, 0, r13, c10, c0, 0 r13, r13, #0x1c p14, 0, r13, c10, c0, 0 ADR MCR r13, SCRATCH_LINE p15, 0, r13, c7, c5, 1 ; Synchronise the caches - this forces ; outstanding cache line loads to be ; terminated MCR p15, 0, r13, c7, c5, 6 ; And invalidate the BTB MRC BVS p14, 0, r15, c14, c0 %b0 ; Wait for TX channel to be free ; Tell debug handler we are downloading ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. D-7 プロセッサ情報 1 MOV MCR r13, #0x00B00000 p14, 0, r13, c8, c0 MRC BPL MRC p14, 0, r15, c14, c0 %b1 p14, 0, r13, c9, c0 ; Send the data word in r0 ; Now wait for a reply ; Wait for RX data ; Read the data word into r13 ; Should now have line-zero loaded into the mini-I-cache ; so branch to address zero MOV pc, #0 デバッグハンドラにはいくつかの制約条件があります。 D.2.6 • そのコードはメモリのキャッシュ可能領域に保存する必要があります。コードが キャッシュ不可能である場合、新しいモニタをダウンロードするときにMulti-ICE が使用する何らかのハードウェアをめぐって競合が発生する可能性があります。 • 実デバッグ例外が発生すると、デバッグモードでエントリポイント MY_RESET に 入ります。更新される可能性のあるレジスタは、デバッグ中のアプリケーション の状態に関係しない R13 だけです。しかし、XScale アーキテクチャでは R13 の 使用自体が制限されています。MY_RESET に入るときに変更可能なレジスタは R15 以外に存在しません。 • SCRATCH_LINE は、キャッシュ可能メモリ内の 32 バイト(1 キャッシュ行)領 域に、32 バイト境界で整列して記憶させる必要があります。 • 通常のリセットハンドラも指定されている通りにデバッグをイネーブルし、ホッ トデバッグサポートを通知する必要があります。つまり、DCSR のビット 31 と ビット [5:3] を全てセットする必要があります。 • ターゲットがデバッガに送信するワードの値は、0x00B00000 である必要があり ます。Multi-ICE はこの値かどうかをテストし、この値を受信した場合にのみホッ トデバッグを許可します。 まとめ このセクションでは、Multi-ICE を XScale アーキテクチャプロセッサに使用する場合に 行うべきこと、行ってはならないことをまとめます。 行うべきこと 以下を行う必要があります。 D-8 • リセットシグナルを Multi-ICE インタフェースユニットに接続する。 • 例外ベクタへの書き込みまたはメモリマップの変更と、例外が最初に発生するま での間に、ブレークポイントを設定する。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 プロセッサ情報 • 例外ベクタ内で LDR pc, [loc] または B loc 命令を使用する。 行ってはならないこと 以下は決して行わないで下さい。 ARM DUI0048EJ-00 • リセットをシミュレートするなどの目的で、アドレス 0x0 に分岐するプログラ ムまたはアドレス 0xFFFF0000 への分岐を記述する。 • アドレス 0x0 または 0XFFFF0000 からの 2KB のアドレス空間を使用してコード をストアする。 • コプロセッサ 0 を使用して EmbeddedICE ロジックレジスタを見る。 Copyright © 1998-2001 ARM Limited. All rights reserved. D-9 プロセッサ情報 D-10 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 E CP15 レジスタのマッピング 本付録では、システムコプロセッサレジスタのマッピングについて説明します。本付 録は以下のセクションから構成されています。 • レジスタマッピングについて:P. E-2 ARM DUI0048EJ-00 • ARM710T プロセッサのレジスタ:P. E-3 • ARM720T プロセッサのレジスタ:P. E-4 • ARM740T プロセッサのレジスタ:P. E-5 • ARM920T/ARM922T プロセッサのレジスタ:P. E-6 • ARM925T プロセッサのレジスタ:P. E-10 • ARM940T プロセッサのレジスタ:P. E-14 • ARM946E-S プロセッサのレジスタ:P. E-17 • ARM1020T プロセッサのレジスタ:P. E-20 • Intel 80200(XScale マイクロアーキテクチャ)プロセッサのレジスタ:P. E-24 Copyright © 1998-2001 ARM Limited. All rights reserved. E-1 CP15 レジスタのマッピング E.1 レジスタマッピングについて ADS v1.1 付属の ARM AXD を使用すると、ターゲットの記述をデバッガに渡し、命名 されビットフィールドにデコードされたコプロセッサレジスタを表示させることがで きます。 一方、ADW と ADU はリスト形式によるコプロセッサレジスタの表示しかサポートし ておらず、このリスト内の各項目が 16 個の標準レジスタにそれぞれ対応しています。 CP15 内の標準レジスタ番号は複数の機能に使用されるため、これでは問題があります。 例えば ARM710T デバイスの場合、CP15 r8 は TLB 全体のフラッシュにも 1 つの TLB 項目のフラッシュにも使用されます。この問題を解決するため、Multi-ICE は 2 つのデ バッガ内部変数を使用して、コプロセッサレジスタの読み出し時にアクセスされる実 コプロセッサレジスタを指定します。 コプロセッサウィンドウには標準レジスタだけが表示されます。Multi-ICE によって定 義されたデバッガ内部変数の値と、レジスタに書き込まれるデータ値は、各コプロセッ サレジスタアクセスの正確な意味を決定するために使用されます。 以下は、定義されている特別なデバッガ内部変数です。 • cp15_cache_selected • cp15_current_memory_area P. 4-30「デバッガ内部変数」を参照して下さい。 E-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング E.2 ARM710T プロセッサのレジスタ 表 E-1 は ARM710T プロセッサのレジスタを示しています。 表 E-1 ARM710T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 - c1 制御レジスタ 読み出し / 書き込み Config 値 c2 変換テーブルベースレジスタ 読み出し / 書き込み ベースアドレス c3 ドメインアクセス制御レジスタ 読み出し / 書き込み ドメイン値 c5 フォルトステータスレジスタ 読み出し / 書き込み フォルト値 c6 フォルトアドレスレジスタ 読み出し / 書き込み フォルトアドレス c7 キャッシュ操作: • ID キャッシュ無効化 書き込み専用 TLB 操作: 書き込み専用 c8 SBZ • TLB 全体を無効化 SBZ • 単一項目を無効化 仮想アドレス 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 ~ c3、 、c5、 、c6 データ読み出し / 書き込みが期待通りに発生します。 c7 どの値も ID キャッシュを無効化します。 c8 0 を書き込むと、TLB 全体が無効化します。 ビット 0 に 1 をセットしてアドレスを書き込むと、アドレスに対応する TLB 項目が無効化されます。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. E-3 CP15 レジスタのマッピング E.3 ARM720T プロセッサのレジスタ 表 E-2 は ARM720T プロセッサのレジスタを示しています。 表 E-2 ARM720T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 - c1 制御レジスタ 読み出し / 書き込み コンフィギュレー ションデータ c2 変換テーブルベースレジスタ 読み出し / 書き込み ベースアドレス c3 ドメインアクセス制御レジスタ 読み出し / 書き込み ドメイン値 c5 フォルトステータスレジスタ 読み出し / 書き込み フォルト値 c6 フォルトアドレスレジスタ 読み出し / 書き込み フォルトアドレス c7 キャッシュ操作: • ID キャッシュ無効化 書き込み専用 TLB 操作: 書き込み専用 c8 c13 SBZ • TLB 全体を無効化 SBZ • 単一項目を無効化 仮想アドレス プロセス ID レジスタ(WinCE) 読み出し / 書き込み プロセス ID 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 ~ c3、 、c5、 、c6 データ読み出し / 書き込みが期待通りに発生します。 c7 どの値も ID キャッシュを無効化します。 c8 0 を書き込むと、TLB 全体が無効化されます。 ビット 0 に 1 をセットしてアドレスを書き込むと、アドレスに対応する TLB 項目が無効化されます。 c13 E-4 データ読み出しまたは書き込みが期待通りに発生します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング E.4 ARM740T プロセッサのレジスタ 表 E-3 は ARM740T プロセッサのレジスタを示しています。 表 E-3 ARM740T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 - c1 制御レジスタ 読み出し / 書き込み コンフィギュレーション データ c2 キャッシュ制御 読み出し / 書き込み キャッシュ制御フラグ c3 バッファ可能制御 読み出し / 書き込み バッファ制御フラグ c5 メモリ保護 読み出し / 書き込み メモリ保護データ c6 メモリエリア定義: • メモリ領域 0 ~ 7 読み出し / 書き込み c7 キャッシュ操作: 書き込み専用 • ID キャッシュを無効化 ベース、サイズ、イネー ブル SBZ 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 ~ c3、 、c5 データ読み出し / 書き込みが期待通りに発生します。 ARM DUI0048EJ-00 c6 読み出された、あるいは書き込まれたデータ値が、変数 cp15_current_memory_area によって定義されたメモリエリアに使 用される、ベースアドレス、サイズ値、イネーブルフラグからなるメモ リエリアの定義を設定または読み出します。 c7 どの値も ID キャッシュを無効化します。 Copyright © 1998-2001 ARM Limited. All rights reserved. E-5 CP15 レジスタのマッピング E.5 ARM920T/ARM922T プロセッサのレジスタ 表 E-4 は ARM920T/ARM922T プロセッサのレジスタを示しています。 表 E-4 ARM920T/ARM922T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 読み出し専用 ID 情報 キャッシュコンフィギュ レーションa c1 制御レジスタ 読み出し / 書き込み コンフィギュレーション フラグ c2 変換テーブルベース 読み出し / 書き込み 変換テーブルベース c3 ドメインアクセス制御 読み出し / 書き込み アクセスフラグ c5 フォルトステータスレジスタ プリフェッチフォルトステータスレジスタ 読み出し / 書き込み 読み出し / 書き込み ステータス情報 ステータス情報b c6 フォルトアドレスレジスタ 読み出し / 書き込み フォルトアドレス c7 キャッシュ操作: • ICache/DCache 無効化 書き込み専用 c8 c9 E-6 SBZ • ICache 無効化 SBZ • I 単一項目(VA)無効化 VA • ICache 行プリフェッチ VA • DCache 無効化 SBZ • D 単一項目(VA)無効化 VA • D 単一項目(VA)クリーン VA • D 単一項目クリーン / 無効化 VA • D 単一項目(インデクス)クリーン インデクス / セグメント • D 単一項目(インデクス)クリーン / 無効化 • ライトバッファドレイン インデクス / セグメント SBZ TLB 操作: 読み出し / 書き込み • ITLB/DTLB 無効化 SBZ • ITLB 無効化 SBZ • ITLB 単一項目(VA)無効化 VA • DTLB 無効化 SBZ • DTLB 単一項目(VA)無効化 VA キャッシュロックダウン制御 • データロックダウン制御 • 命令ロックダウン制御 読み出し / 書き込み Copyright © 1998-2001 ARM Limited. All rights reserved. ベース / ヴィクティム ベース / ヴィクティム ARM DUI0048EJ-00 CP15 レジスタのマッピング 表 E-4 ARM920T/ARM922T プロセッサのレジスタ(続き) プロセッサのレジスタ(続き) レジスタ 説明 c10 アクセス TLB ロックダウン制御 • • データ 読み出し / 書き込み ベース / ヴィクティム データロックダウンベース 命令ロックダウンベース ベース / ヴィクティム c13 プロセス ID 読み出し / 書き込み プロセス ID c15 テスト / デバッグレジスタ 読み出し / 書き込み DCAM/ICAM フラグ a. Rev.1 以上 b. Rev.1 以上 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 cp15_cache_selected = 0を使用したデータ読み出しによってIDレジ スタが読み出されます。 cp15_cache_selected = 1 を使用した読み出しによって、キャッシュ コンフィギュレーションレジスタが読み出されます。 c1、 、c2、 、c3 c5 データ読み出しまたは書き込みが期待通りに発生します。 cp15_cache_selected = 0 を使用したデータ読み出しによって、FSR (データアボート)が読み出されます。 cp15_cache_selected = 1 を使用したデータ読み出しによって、PFSR (プリフェッチアボート)が読み出されます。 PFSR は、rev.1 以上のプロセッサで発生します。 c6 データ読み出しまたは書き込みが期待通りに発生します。 c7 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [2:0] が表 E-5 に示すように実行される機能を決定します。 表 E-5 ARM920T/ARM922T cp15 レジスタ 7 へのアクセス ARM DUI0048EJ-00 cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 1 0 0 0 ICache/DCache 無効化 1 0 0 1 ICache 無効化 1 0 1 0 I 単一項目(VA)無効化 1 0 1 1 ICache 行プリフェッチ 0 0 0 0 DCache 無効化 Copyright © 1998-2001 ARM Limited. All rights reserved. E-7 CP15 レジスタのマッピング 表 E-5 ARM920T/ARM922T cp15 レジスタ 7 へのアクセス(続き) へのアクセス(続き) cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 0 0 0 1 D 単一項目無効化 0 0 1 0 D 単一項目(VA)クリーン 0 0 1 1 D 単一項目(VA)クリーン / 無効化 0 1 0 0 D 単一項目(インデクス) クリーン 0 1 0 1 D 単一項目クリーン / 無効化 0 1 1 0 ライトバッファドレイン この機能のデコード時に使用されるデータ値は、下位数ビットをクリア した状態で書き込まれたデータ値のビット [31:3] です。 c8 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [1:0] が表 E-6 に示すように実行される機能を決定します。 表 E-6 ARM920T/ARM922T cp15 レジスタ 8 へのアクセス cp15_cache_selected ビット 1 ビット 0 目的 1 0 0 ITLB/DTLB 無効化 1 0 1 ITLB 無効化 1 1 0 ITLB 単一項目(VA)無効化 0 0 0 DTLB 無効化 0 0 1 DTLB 単一項目(VA)無効化 この機能のデコード時に使用されるデータ値は、下位数ビットをクリア した状態で書き込まれたデータ値のビット [31:2] です。 c9 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み がデータキャッシュロックダウンベースにアクセスします。 cp15_cache_selected = 1 を使用したデータ読み出しが命令キャッ シュロックダウンベースにアクセスします。 E-8 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング c10 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み がデータ TLB ロックダウンレジスタにアクセスします。 cp15_cache_selected = 1 を使用したデータ読み出しが命令 TLB ロッ クダウンレジスタにアクセスします。 c13 データ読み出しまたは書き込みが期待通りに発生します。 注 ARM920T には cp15_current_memory_area は使用されません。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. E-9 CP15 レジスタのマッピング E.6 ARM925T プロセッサのレジスタ 表 E-7 は ARM925T プロセッサのレジスタを示しています。 表 E-7 ARM925T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 読み出し専用 ID 情報 キャッシュコンフィギュレー ションa c1 制御レジスタ 読み出し / 書き込み コンフィギュレーションフラグ c2 変換テーブルベース 読み出し / 書き込み 変換テーブルベース c3 ドメインアクセス制御 読み出し / 書き込み アクセスフラグ c5 フォルトステータスレジスタ 読み出し / 書き込み ステータス情報 c6 フォルトアドレスレジスタ 読み出し / 書き込み フォルトアドレス c7 キャッシュ操作: • ICache/DCache 無効化 書き込み専用 • c8 E-10 SBZ ICache 無効化 SBZ • I 単一項目(VA)無効化 VA • ICache 行プリフェッチ VA • DCache 無効化 SBZ • D 単一項目(VA)無効化 VA • D 単一項目(インデクス)無効化 • DCache 全体クリーン インデクス / セグメント SBZ • D 単一項目(VA)クリーン VA • D 単一項目クリーン / 無効化 VA • D 単一項目(インデクス)クリーン インデクス / セグメント • D単一項目 (インデクス) クリーン/無効化 • ライトバッファドレイン インデクス / セグメント SBZ TLB 操作: 読み出し / 書き込み • ITLB/DTLB 無効化 SBZ • ITLB 無効化 SBZ • ITLB 単一項目(VA)無効化 VA • DTLB 無効化 SBZ • DTLB 単一項目(VA)無効化 VA Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング 表 E-7 ARM925T プロセッサのレジスタ(続き) プロセッサのレジスタ(続き) レジスタ 説明 アクセス c10 読み出し / 書き込み TLB ロックダウン制御 • • データ ベース / ヴィクティム データロックダウンベース 命令ロックダウンベース ベース / ヴィクティム c13 プロセス ID 読み出し / 書き込み プロセス ID c15 TI 専用レジスタ 読み出し / 書き込み コンフィギュレーションビット I 最大 • I 最大 • I 最小 I 最小 • スレッド ID スレッド ID • ARM925T ステータスレジスタ ステータスビット a. Rev.1 以上 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 cp15_cache_selected = 0 を使用したデータ読み出しによって、ID レ ジスタが読み出されます。 cp15_cache_selected = 1 を使用したデータ読み出しでキャッシュコ ンフィギュレーションレジスタが読み出されます。 c1、 、c2、 、c3 データ読み出しまたは書き込みが期待通りに発生します。 c5 データ読み出しまたは書き込みが FSR にアクセスし、データアボートが 記録されます。プリフェッチアボート(命令アクセスの失敗によって発 生する)は記録されません。 c6 データ読み出しまたは書き込みが FAR にアクセスし、データアボートが 記録されます。プリフェッチアボート(命令アクセスの失敗によって発 生する)は記録されません。 c7 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [2:0] が表 E-8 に示すように実行される機能を決定します。 表 E-8 ARM925T cp15 レジスタ 7 へのアクセス cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 1 0 0 0 ICache/DCache 無効化 1 0 0 1 ICache 無効化 1 0 1 0 I 単一項目(VA)無効化 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. E-11 CP15 レジスタのマッピング 表 E-8 ARM925T cp15 レジスタ 7 へのアクセス(続き) へのアクセス(続き) cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 1 0 1 1 ICache 行(VA)プリフェッチ 1 1 0 0 ライトバッファドレイン 0 0 0 0 DCache 無効化 0 0 0 1 D 単一項目無効化 0 0 1 0 D 単一項目(インデクス)無効化 0 0 1 1 DCache 全体クリーン 0 1 0 0 D 単一項目(VA)クリーン 0 1 0 1 D 単一項目(VA)クリーン / 無効化 0 1 1 0 D 単一項目(インデクス)クリーン 0 1 1 1 D 単一項目(インデクス)クリーン / 無効化 この機能のデコード時に使用されるデータ値は、下位数ビットをクリア した状態で書き込まれたデータ値のビット [31:3] です。 c8 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [1:0] が表 E-9 に示すように実行される機能を決定します。 表 E-9 ARM925T cp15 レジスタ 8 へのアクセス cp15_cache_selected ビット 1 ビット 0 目的 1 0 0 ITLB/DTLB 無効化 1 0 1 ITLB 無効化 1 1 0 ITLB 単一項目(VA)無効化 0 0 0 DTLB 無効化 0 0 1 DTLB 単一項目(VA)無効化 この機能のデコード時に使用されるデータ値は、下位数ビットをクリア した状態で書き込まれたデータ値のビット [31:2] です。 E-12 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング c10 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み がデータ TLB ロックダウンレジスタにアクセスします。 cp15_cache_selected = 1 を使用したデータ読み出しが命令 TLB ロッ クダウンレジスタにアクセスします。 c13 データ読み出しまたは書き込みが期待通りに発生します。 c15 cp15_current_memory_area の値が表 E-10 が示すように実行される 機能を決定しますが、この機能はメモリエリアに関連付けられません。 表 E-10 ARM925T cp15 レジスタ 7 へのアクセス cp15_current_memory_area アクセス 目的 0 読み出し / 書き込み ARM925T コンフィギュレーションレジスタ 1 読み出し / 書き込み I 最大 2 読み出し / 書き込み I 最小 3 読み出し / 書き込み スレッド ID 4 読み出し専用 ARM DUI0048EJ-00 ARM925T ステータスレジスタ Copyright © 1998-2001 ARM Limited. All rights reserved. E-13 CP15 レジスタのマッピング E.7 ARM940T プロセッサのレジスタ 表 E-11 は ARM940T プロセッサのレジスタを示しています。 表 E-11 ARM940T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 読み出し専用 ID 情報 キャッシュコンフィギュレーションa c1 制御レジスタ 読み出し / 書き込み コンフィギュレーションフラグ c2 キャッシュ制御 • データキャッシュ制御 • 命令キャッシュ制御 読み出し / 書き込み c3 バッファ可能制御 読み出し / 書き込み D バッファ制御フラグ c5 メモリ保護 • データキャッシュ制御 • 命令キャッシュ制御 読み出し / 書き込み メモリエリア定義: • D メモリ領域 0 ~ 7 読み出し / 書き込み c6 • c7 c15 ICache 制御フラグ DCache 保護フラグ ICache 保護フラグ ベース、サイズ、イネーブル ベース、サイズ、イネーブル I メモリ領域 0 ~ 7 キャッシュ操作: • ICache フラッシュ c9 DCache 制御フラグ 書き込み専用 SBZ • ICache 単一項目フラッシュ • DCache フラッシュ インデクス / セグメント SBZ • DCache 単一項目フラッシュ インデクス / セグメント • DCache 項目クリーン インデクス / セグメント • ICache 行プリフェッチ アドレス • DCache項目クリーン/フラッシュ • ライトバッファドレイン インデクス / セグメント SBZ キャッシュロックダウン制御 • データロックダウン制御 • 命令ロックダウン制御 読み出し / 書き込み テスト / デバッグレジスタ 読み出し / 書き込み マップ I または D CAM フラグ D 制御値 I 制御値 a. Rev.1 以上 E-14 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 ID レジスタが cp15_cache_selected = 0 で読み出され、Rev.1 以上 の場合は、キャッシュコンフィギュレーションレジスタが cp15_cache_selected = 1 で読み出されます。 c1 データ読み出しまたは書き込みが期待通りに発生します。 c2 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込 みによって、DCache ビットが読み出しまたは書き込まれます。 cp15_cache_selected = 1 を使用したデータ読み出しまたは書き込み によって、ICache ビットが読み出しまたは書き込まれます。 c3 データ読み出しまたは書き込みが期待通りに発生します。 c5 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み によって、データ保護アクセス許可が読み出しまたは書き込まれます。 cp15_cache_selected = 1 を使用したデータ読み出しまたは書き込み によって、命令保護アクセス許可が読み出しまたは書き込まれます。 c6 読み出された、あるいは書き込まれたデータ値が、メモリエリアのベー スアドレス、サイズ、イネーブルフラグからなるメモリエリア定義を読 み出します。メモリエリアは cp15_current_memory_area の値によっ て定義されます。また、変数 cp15_cache_selected によって I エリ アか D エリアのどちらかが選択されます。 c7 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [1:0] が表 E-12 に示すようにアクセスされる機能を決定します。 表 E-12 ARM925T cp15 レジスタ 7 へのアクセス ARM DUI0048EJ-00 cp15_cache_selected ビット 1 ビット 0 目的 0 0 0 DCache フラッシュ 0 0 1 DCache 一項目フラッシュ 0 1 0 DCache 項目クリーン 0 1 1 DCache 項目クリーン / フラッシュ 1 0 0 ICache フラッシュ Copyright © 1998-2001 ARM Limited. All rights reserved. E-15 CP15 レジスタのマッピング 表 E-12 ARM925T cp15 レジスタ 7 へのアクセス(続き) へのアクセス(続き) cp15_cache_selected ビット 1 ビット 0 目的 1 0 1 ICache 一項目フラッシュ 1 1 0 ICache キャッシュ行プリフェッチ 1 1 1 ライトバッファドレインa a. Rev.1 以上 機能のデコード時に使用されるデータ値は、0 と OR されて書き込まれ たデータ値のビット [31:2] となります。したがって、r7 に 0x80000002 が書き込まれ、cp15_cache_selected =1 である場合は、0x80000000 にある命令が ICache にプリフェッチされます。 c8 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み によって、データロックダウン制御が読み出しまたは書き込まれます。 cp15_cache_selected = 1 を使用したデータ読み出しまたは書き込み によって、命令ロックダウン制御が読み出しまたは書き込まれます。 c15 E-16 データ読み出しまたは書き込みが期待通りに発生します。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング E.8 ARM946E-S プロセッサのレジスタ 表 E-13 は ARM946E-S プロセッサのレジスタを示しています。 表 E-13 ARM946E-S プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 読み出し専用 読み出し専用 ID 情報 キャッシュコンフィギュレー ション 結合メモリ情報 c1 制御レジスタ 読み出し / 書き込み コンフィギュレーションフラグ c2 キャッシュ制御 • データキャッシュ制御 • 命令キャッシュ制御 読み出し / 書き込み c3 バッファ可能制御 読み出し / 書き込み D バッファ制御フラグ c5 メモリ保護 • データキャッシュ制御 • 命令キャッシュ制御 読み出し / 書き込み メモリエリア定義: • D メモリ領域 0 ~ 7 読み出し / 書き込み c6 • c7 • VA ごとの ICache 項目のフラッシュ • ICache 行プリフェッチ • DCache フラッシュ • VA ごとの DCache のフラッシュ • VA ごとの DCache 項目のクリーン • VA ごとの DCache 項目のクリーン / フラッ シュ インデクスごとの DCache 項目のクリーン • DCache 保護フラグ ICache 保護フラグ ベース、サイズ、イネーブル ベース、サイズ、イネーブル I メモリ領域 0 ~ 7 キャッシュ操作: • ICache フラッシュ • DCache 制御フラグ ICache 制御フラグ インデクスごとの DCache 項目のクリーン / フラッシュ ARM DUI0048EJ-00 書き込み専用 SBZ VA アドレス SBZ VA VA VA インデクス / セグメント インデクス / セグメント Copyright © 1998-2001 ARM Limited. All rights reserved. E-17 CP15 レジスタのマッピング 表 E-13 ARM946E-S プロセッサのレジスタ(続き) プロセッサのレジスタ(続き) レジスタ 説明 アクセス c9 読み出し / 書き込み キャッシュロックダウン制御 • データロックダウン制御 • 命令ロックダウン制御 • 密結合 D メモリ制御 • 密結合 I メモリ制御 データ D 制御値 I 制御値 D メモリ値 I メモリ値 c13 トレースプロセス ID レジスタ 読み出し / 書き込み トレースプロセス ID c15 テスト / デバッグレジスタ 読み出し / 書き込み Multi-ICE はサポートしていま せん。 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 cp15_cache_selected = 0 を使用したデータ読み出しによって、ID レ ジスタが読み出されます。 cp15_cache_selected = 1 を使用した読み出しによって、キャッシュ コンフィギュレーションレジスタが読み出されます。 cp15_cache_selected = 2 を使用した読み出しによって、密結合メモ リ情報レジスタが読み出されます。 c1 データ読み出しまたは書き込みが予想通りに発生します。 c2 cp15_cache_selected = 0 または cp15_cache_selected = 2 を使用 したデータ読み出しまたは書き込みによって、DCache ビットが読み出し または書き込まれます。 cp15_cache_selected = 1 または cp15_cache_selected = 3 を使用 したデータ読み出しまたは書き込みによって、ICache ビットが読み出し または書き込まれます。 c3 データ読み出しまたは書き込みが予想通りに発生します。 c5 cp15_cache_selected = 0 または cp15_cache_selected = 2 を使用 したデータ読み出しまたは書き込みによって、データ保護アクセス許可 が読み出しまたは書き込まれます。 cp15_cache_selected = 1 を使用したデータ読み出しまたは書き込み によって、命令保護アクセス許可が読み出しまたは書き込まれます。 c6 E-18 読み出された、あるいは書き込まれたデータ値が、変数 cp15_current_memory_area によって定義されたメモリエリアに使 用される、ベースアドレス、サイズ値、イネーブルフラグからなるメモ リエリアの定義を設定または読み出します。ARM940T とは異なり、こ れらのレジスタの I バージョンと D バージョンは分かれていません。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング c7 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [2:0] が表 E-14 に示すようにアクセスされる機能を決定します。 表 E-14 ARM940T cp15 レジスタ 7 へのアクセス cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 0 0 0 0 DCache フラッシュ 0 0 0 1 VA ごとの DCache のフラッシュ 0 0 1 0 VA ごとの DCache 項目のクリーン 0 0 1 1 VA ごとの DCache 項目のクリーン / フラッシュ 0 1 0 0 インデクスごとの DCache 項目のクリーン 0 1 0 1 インデクスごとのDCache項目のクリーン/フラッシュ 1 0 0 0 ICache フラッシュ 1 0 0 1 VA ごとの ICache 項目のフラッシュ 1 0 1 0 ICache 行プリフェッチ 機能のデコード時に使用されるデータ値は、0 と OR されて書き込まれ たデータ値のビット [31:3] となります。したがって、r7 に 0x80000002 が書き込まれ、cp15_cache_selected =1 である場合は、0x80000000 にある命令が ICache にプリフェッチされます。 c9 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み によって、データロックダウン制御が読み出しまたは書き込まれます。 cp15_cache_selected = 1 を使用したデータ読み出しまたは書き込み によって、命令ロックダウン制御が読み出しまたは書き込まれます。 cp15_cache_selected = 2 を使用したデータ読み出しまたは書き込み によって、密結合データメモリ制御が読み出しまたは書き込まれます。 cp15_cache_selected = 3 を使用したデータ読み出しまたは書き込み によって、密結合命令メモリ制御が読み出しまたは書き込まれます。 c13 ARM DUI0048EJ-00 データ読み出しまたは書き込みが期待通りに発生します。 Copyright © 1998-2001 ARM Limited. All rights reserved. E-19 CP15 レジスタのマッピング E.9 ARM1020T プロセッサのレジスタ 表 E-15 は ARM1020T プロセッサのレジスタを示しています。 表 E-15 ARM1020T プロセッサのレジスタ レジスタ 説明 アクセス データ c0 ID レジスタ 読み出し専用 読み出し専用 ID 情報 キャッシュコンフィギュ レーション c1 制御レジスタ 読み出し / 書き込み コンフィギュレーション フラグ c2 変換テーブルベース 読み出し / 書き込み 変換テーブルベース c3 ドメインアクセス制御 読み出し / 書き込み アクセスフラグ c5 フォルトステータスレジスタ 読み出し / 書き込み ステータス情報 c6 フォルトアドレスレジスタ 読み出し / 書き込み フォルトアドレス c7 キャッシュ操作: • ICache/DCache 無効化 書き込み専用 c8 c9 E-20 SBZ SBZ VA VA SBZ VA • ICache 無効化 • I 単一項目(VA)無効化 • ICache 行プリフェッチ • DCache 無効化 • D 単一項目(VA)無効化 • D 単一項目(VA)クリーン • D 単一項目クリーン / 無効化 VA VA • D 単一項目(インデクス)クリーン インデクス / セグメント • D単一項目(インデクス)クリーン/無効化 • ライトバッファドレイン インデクス / セグメント SBZ TLB 操作: 読み出し / 書き込み • ITLB/DTLB 無効化 SBZ • ITLB 無効化 SBZ • ITLB 単一項目(VA)無効化 VA • DTLB 無効化 SBZ • DTLB 単一項目(VA)無効化 VA キャッシュロックダウン制御 • データロックダウンベース • 命令ロックダウンベース 読み出し / 書き込み Copyright © 1998-2001 ARM Limited. All rights reserved. ベース / ヴィクティム ベース / ヴィクティム ARM DUI0048EJ-00 CP15 レジスタのマッピング 表 E-15 ARM1020T プロセッサのレジスタ(続き) プロセッサのレジスタ(続き) レジスタ 説明 アクセス c10 TLB ロックダウン制御 読み出し / 書き込み • • データ ベース / ヴィクティム データロックダウンベース 命令ロックダウンベース ベース / ヴィクティム c13 プロセス ID 読み出し / 書き込み プロセス ID c15 テスト / デバッグレジスタ 読み出し / 書き込み Multi-ICE はサポートして いません。 以下は、これらのレジスタの読み出し / 書き込みに使用するエンコーディングです。 c0 cp15_cache_selected = 0 を使用したデータ読み出しによって、ID レ ジスタが読み出されます。 cp15_cache_selected = 1 を使用した読み出しによって、キャッシュ コンフィギュレーションレジスタが読み出されます。 c1、 、c2、 、c3、 、c5 データ読み出しまたは書き込みが期待通りに発生します。 c6 cp15_cache_selected = 0 を使用したデータ読み出しによって、デー タ側の FSR が読み出されます。 cp15_cache_selected = 1 を使用したデータ読み出しによって、命令 側の FSR が読み出されます。 c7 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [2:0] が表 E-16 に示すように実行される機能を決定します。 表 E-16 ARM1020T cp15 レジスタ 7 へのアクセス cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 ARM DUI0048EJ-00 1 0 0 0 ICache/DCache 無効化 1 0 0 1 ICache 無効化 1 0 1 0 ICache 単一項目(VA)無効化 1 0 1 1 ICache 行プリフェッチ 0 0 0 0 DCache 無効化 0 0 0 1 DCache 単一項目無効化 0 0 1 0 DCache 単一項目(VA)クリーン Copyright © 1998-2001 ARM Limited. All rights reserved. E-21 CP15 レジスタのマッピング 表 E-16 ARM1020T cp15 レジスタ 7 へのアクセス(続き) へのアクセス(続き) cp15_cache_selected ビット 2 ビット 1 ビット 0 目的 0 0 1 1 DCache 単一項目(VA)クリーン / 無効化 0 1 0 0 DCache 単一項目(インデクス) クリーン 0 1 0 1 DCache単一項目クリーン/無効化 0 1 1 0 ライトバッファドレイン この関数のデコード時に使用されるデータ値は、最下位ビットをクリア した状態で書き込まれたデータ値のビット [31:3] です。 c8 cp15_cache_selected の値と関連して書き込まれたデータ値のビッ ト [1:0] が表 E-17 に示すように実行される機能を決定します。 表 E-17 ARM1020T cp15 レジスタ 8 へのアクセス cp15_cache_selected ビット 1 ビット 0 目的 1 0 0 ITLB/DTLB 無効化 1 0 1 ITLB 無効化 1 1 0 ITLB 単一項目(VA)無効化 0 0 0 DTLB 無効化 0 0 1 DTLB 単一項目(VA)無効化 この機能のデコード時に使用されるデータ値は、下位数ビットをクリア した状態で書き込まれたデータ値のビット [31:2] です。 c9 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み がデータキャッシュロックダウンベースにアクセスします。 cp15_cache_selected = 1 を使用したデータ読み出しが命令キャッ シュロックダウンベースにアクセスします。 c10 E-22 cp15_cache_selected = 0 を使用したデータ読み出しまたは書き込み がデータ TLB ロックダウンレジスタにアクセスします。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 CP15 レジスタのマッピング cp15_cache_selected = 1 を使用したデータ読み出しが命令 TLB ロッ クダウンレジスタにアクセスします。 c13 ARM DUI0048EJ-00 データ読み出しまたは書き込みが期待通りに発生します。 Copyright © 1998-2001 ARM Limited. All rights reserved. E-23 CP15 レジスタのマッピング E.10 Intel 80200( (XScale マイクロアーキテクチャ)プロセッサのレジスタ Intel 80200 プロセッサは、いくつかのコプロセッサを実装しています(Intel® XScale™ コ アデベロッパマニュアル参照)。 Multi-ICE がサポートする Intel 80200 プロセッサのコプロセッサレジスタは、使用して いるデバッガによって異なります。 • ADS v1.1(またはそれ以降)の AXD を使用している場合、Multi-ICE は全てのコ プロセッサレジスタへのアクセスをサポートします。 • ADW または ADS v1.0.1 を使用している場合、CRm と opcode_2 の両方に 0 を設 定したコプロセッサ命令を使用してアクセスできるコプロセッサレジスタだけ がサポートされます。 Intel 80200 プロセッサへのアクセスには、変数 cp15_cache_selected および cp15_current_memory_area は使用されません。 E-24 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 F JTAG インタフェース接続 本付録では、JTAG ピン接続について説明します。本付録は以下のセクションから構成 されています。 • Multi-ICE JTAG インタフェース接続:P. F-2 ARM DUI0048EJ-00 • Multi-ICE JTAG ポートタイミング特性:P. F-5 • TCK 周波数:P. F-7 • TCK 値:P. F-11 Copyright © 1998-2001 ARM Limited. All rights reserved. F-1 JTAG インタフェース接続 F.1 Multi-ICE JTAG インタフェース接続 JTAG コネクタは Multi-ICE インタフェースユニットの片端にあります。このコネクタ は、突起のある 20 ウェイ絶縁変位コネクタ(IDC ボックスヘッダ 2.54mm オス)でリ ボンケーブルに取り付けられた IDC ソケットと適合します(図 F-1)。 VTref 1 2 Vsupply nTRST 3 4 GND TDI 5 6 GND TMS 7 8 GND 9 10 GND RTCK 11 12 GND TDO 13 14 GND nSRST 15 16 GND DBGRQ 17 18 GND DBGACK 19 20 GND TCK 図 F-1 上から見た JTAG ピン接続 注 GND ピンは全てターゲットボード上の 0V に接続する必要があります。 F.1.1 JTAG ピン出力 P. F-3 表 F-1 は JTAG ピン出力を示しています。 F-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 表 F-1 JTAG ピン出力 ピン シグナル I/O 説明 ピン 1 VTref 入力 ターゲット基準電圧です。ターゲットに電力が供給されていることを示 し、TDO および RTCK 上の入力コンパレータのロジックレベル基準の 作成にも使用されます。このシグナルは、ターゲットへの出力ロジック レベルも制御します。通常はターゲットボード上の Vdd から送信され、 直列抵抗が取り付けられている場合があります(ただし、これは推奨し ません)。 ピン 2 Vsupply 入力 Multi-ICE への供給電圧です。Multi-ICE はステップアップ電圧コンバー タを介し、このピンから自らの供給電流を得ます。このシグナルは通常 ターゲットの Vdd から送信されますが、このピンへの供給に直列抵抗を 使用してはなりません。ターゲットの供給電圧またはその電流容量が低 すぎる場合には、EmbeddedICE 用アダプタの外部パワージャックによっ てこのパスは遮断されます。 ピン 3 nTRST 出力 Multi-ICE からターゲット JTAG ポート上のリセットシグナルへのオー プンコレクタ出力です。接続不在時に不意のリセットを防止するため、 このピンはターゲットで HIGH にプルする必要があります。 ピン 4 GND - グランド ピン 5 TDI 出力 Multi-ICE からターゲット JTAG ポートへのテストデータ入力シグナル です。このピンは定義済みの状態にプルすることを推奨します。 ピン 6 GND - グランド ピン 7 TMS 出力 Multi-ICE からターゲット JTAG ポートへのテストモードシグナルです。 このピンは、接続不在時における疑似 TCK の影響を抑えるために、ター ゲット上でプルアップする必要があります。 ピン 8 GND - グランド ピン 9 TCK 出力 Multi-ICE からターゲット JTAG ポートへのテストクロックシグナルで す。このピンは定義済みの状態にプルすることを推奨します。 - グランド 入力 ターゲット JTAG ポートから Multi-ICE へのリターンテストクロックシ グナルです。ターゲットによっては、JTAG 入力を内部クロックに同期 化させる必要があります。この要件を満たすため、リターンされて再設 定された TCK を使用して、TCK レートを動的に制御することができま す。Multi-ICE の適応クロックタイミング機能は、次の操作を行う前に TCK の変化がエコーされるまで待ちます。TCK を処理する必要がない ターゲットの場合は、このピンを単純にグランドに接続して下さい。 ピン 12 GND - グランド ピン 13 TDO 入力 ターゲット JTAG ポートから Multi-ICE へのテストデータ出力です。 ピン 10 GND ピン 11 RTCK ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. F-3 JTAG インタフェース接続 表 F-1 JTAG ピン出力(続き) ピン出力(続き) I/O 説明 ピン 14 GND - グランド ピン 15 nSRST 入力 / 出力 Multi-ICE からターゲットシステムリセットへのオープンコレクタ出力 です。このシグナルは、ターゲット上でリセットが開始されたことをデ バッガに通知するための Multi-ICE への入力シグナルでもあります。 接続不在時の不意のリセットを防止するため、このピンはターゲットで プルアップする必要があります。 ピン 16 GND - グランド ピン 17 DBGRQ - Multi-ICE インタフェースユニット内ではこのピンは接続されていませ ん。このシグナルは、他の機器との互換性を取る目的で、ターゲットシ ステムへのデバッグ要求シグナルとして使用するために予約されてい ます。 ピン 18 GND - グランド ピン 19 DBGACK - Multi-ICEインタフェースユニット内ではこのピンは接続されません。こ のシグナルは、他の機器との互換性を取る目的で、ターゲットシステム からのデバッグ肯定応答シグナルとして使用するために予約されてい ます。 ピン 20 GND - グランド ピン F-4 シグナル Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 F.2 Multi-ICE JTAG ポートタイミング特性 図 F-2 および表 F-2 は、Multi-ICE ユニットのタイミング特性を示しています。ターゲッ トデバイスやボードを設計する際に、特定の TCK 周波数で Multi-ICE を接続したい場 合には、これらの特性を考慮に入れる必要があります。これらの特定は Multi-ICE ハー ドウェアに関連しています。これらの特性はターゲットの特性と併せて考慮する必要 があります。 IEEE1149.1 に完全準拠する JTAG デバイスの場合、TDI と TMS は TCK の立上がり エッジでサンプリングされ、TDO は TCK の立下りエッジで変化します。これらの特 性を利用するため、Multi-ICE は TCK の立上がりエッジで TDO をサンプリングし、そ の TDI および TMS シグナルを TCK の立下りエッジで変化させます。したがって完全 準拠ターゲットであれば、最小セットアップ時間とホールド時間に関する問題を、単 に TCK 周波数を下げるだけで解決することができます。なぜならこれによって、変化 するシグナルとサンプリングされるシグナルの区別がつきやすくなるためです。 Tbscl Tbsch TCK Tbsod TMS/TDI Tbsis Tbsih TDO 図 F-2 Multi-ICE JTAG ポートタイミング特性 表 F-2 Multi-ICE IEEE1149.1 タイミング要件 パラメータ プログラム済み 最小 最大 説明 注 Tbscl ○ 50ns 204.8µs TCK LOW 周期 a Tbsch ○ 50ns 204.8µs TCK HIGH 周期 b Tbsod × - 10ns TCK (立下り)からの TDI および TMS 有効 c Tbsis × 27ns - TCK (立上がり)までの TDO セットアップ d Tbsih × 10ns - TCK(立上がり)からの TDO ホールド - a. Multi-ICE サーバソフトウェアにより、表 F-2 が示す値の間で TCK LOW 周期と HIGH 周期を変更すること 。表 F-2 内のその他のパラメータは、選択した Tbscl ができます(第 3 章「Multi-ICE サーバの使用」参照) および Tbsch の特定の値について考慮する必要があります。自動構成されるシングル TAP システムのデフォ ルト値は、名目上 Tbscl=50ns、Tbsch=50ns です。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. F-5 JTAG インタフェース接続 b. Multi-ICE サーバソフトウェアにより、表 F-2 が示す値の間で TCK LOW 周期と HIGH 周期を変更すること ができます(第 3 章「Multi-ICE サーバの使用」参照)。表 F-2 内のその他のパラメータは、選択した Tbscl および Tbsch の特定の値について考慮する必要があります。自動構成されるシングル TAP システムのデフォ ルト値は、名目上 Tbscl=50ns、Tbsch=50ns です。 c. Tbsod は TCK 立下りエッジと、Multi-ICE 出力シグナル TDI および TMS の有効レベルとの間の最大遅延で す。ターゲットはこれらのシグナルを TCK の立上がりエッジからサンプリングするため、TCK の立上が りエッジに相対するターゲットの最小セットアップ時間は Tbscl–Tbsod です。 d. Tbsis は、Multi-ICE が TDO シグナルをサンプリングするときの、TCK の立上がりエッジに相対する TDO 入力シグナルの最小セットアップ時間です。ターゲットは前の TCK 立下りエッジで TDO の値を変更する ため、TCK の立下りエッジに相対して有効になるターゲット TDO レベルの最大時間は Tbscl–Tbsis です。 F-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 F.3 TCK 周波数 表 F-3 は、特定の TCK 周波数に関する JTAG 設定ダイアログの TCK フィールドに入 力する値を示しています。例えば、3.33MHz TCK レートの場合は、TCK HIGH および TCK LOW に値 2 を使用します。 表 F-3 TCK 周波数 周波数 ) (kHz) ARM DUI0048EJ-00 半周期 ) (ns) 周波数 ) (kHz) 値 半周期 ) (ns) 値 10000.00 50 0 454.55 1100 21 5000.00 100 1 434.78 1150 22 3333.33 150 2 416.67 1200 23 2500.00 200 3 400.00 1250 24 2000.00 250 4 384.62 1300 25 1666.67 300 5 370.37 1350 26 1428.57 350 6 357.14 1400 27 1250.00 400 7 344.83 1450 28 1111.11 450 8 333.33 1500 29 1000.00 500 9 322.58 1550 30 909.09 550 10 312.50 1600 31 833.33 600 11 294.12 1700 48 769.23 650 12 277.78 1800 49 714.29 700 13 263.16 1900 50 666.67 750 14 250.00 2000 51 625.00 800 15 238.10 2100 52 588.24 850 16 227.27 2200 53 555.56 900 17 217.39 2300 54 526.32 950 18 208.33 2400 55 500.00 1000 19 200.00 2500 56 Copyright © 1998-2001 ARM Limited. All rights reserved. F-7 JTAG インタフェース接続 表 F-3 TCK 周波数(続き) 周波数(続き) 周波数 ) (kHz) F-8 半周期 ) (ns) 周波数 ) (kHz) 値 半周期 ) (ns) 値 476.19 1050 20 192.31 2600 57 185.19 2700 58 59.52 8400 116 178.57 2800 59 56.82 8800 117 172.41 2900 60 54.35 9200 118 166.67 3000 61 52.08 9600 119 147.06 3400 80 50.00 10000 120 138.89 3600 81 48.08 10400 121 131.58 3800 82 46.30 10800 122 125.00 4000 83 44.64 11200 123 119.05 4200 84 43.10 11600 124 113.64 4400 85 41.67 12000 125 108.70 4600 86 40.32 12400 126 104.17 4800 87 39.06 12800 127 100.00 5000 88 36.76 13600 144 96.15 5200 89 34.72 14400 145 92.59 5400 90 32.89 15200 146 89.29 5600 91 31.25 16000 147 86.21 5800 92 29.76 16800 148 83.33 6000 93 28.41 17600 149 80.65 6200 94 27.17 18400 150 78.13 6400 95 26.04 19200 151 73.53 6800 112 25.00 20000 152 69.44 7200 113 24.04 20800 153 65.79 7600 114 23.15 21600 154 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 表 F-3 TCK 周波数(続き) 周波数(続き) 周波数 ) (kHz) ARM DUI0048EJ-00 半周期 ) (ns) 周波数 ) (kHz) 値 半周期 ) (ns) 値 62.50 8000 115 22.32 22400 155 21.55 23200 156 7.44 67200 212 20.83 24000 157 7.10 70400 213 20.16 24800 158 6.79 73600 214 19.53 25600 159 6.51 76800 215 18.38 27200 176 6.25 80000 216 17.36 28800 177 6.01 83200 217 16.45 30400 178 5.79 86400 218 15.63 32000 179 5.58 89600 219 14.88 33600 180 5.39 92800 220 14.20 35200 181 5.21 96000 221 13.59 36800 182 5.04 99200 222 13.02 38400 183 4.88 102400 223 12.50 40000 184 4.60 108800 240 12.02 41600 185 4.34 115200 241 11.57 43200 186 4.11 121600 242 11.16 44800 187 3.91 128000 243 10.78 46400 188 3.72 134400 244 10.42 48000 189 3.55 140800 245 10.08 49600 190 3.40 147200 246 9.77 51200 191 3.26 153600 247 9.19 54400 208 3.13 160000 248 8.68 57600 209 3.00 166400 249 8.22 60800 210 2.89 172800 250 Copyright © 1998-2001 ARM Limited. All rights reserved. F-9 JTAG インタフェース接続 表 F-3 TCK 周波数(続き) 周波数(続き) 周波数 ) (kHz) F-10 半周期 ) (ns) 周波数 ) (kHz) 値 半周期 ) (ns) 値 7.81 64000 211 2.79 179200 251 2.69 185600 252 2.52 198400 254 2.60 192000 253 2.44 204800 255 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 F.4 TCK 値 表 F-4 は、JTAG 設定ダイアログの TCK フィールドに対応する周波数を示しています。 例えば、TCK HIGH および TCK LOW の値が 4 の場合、TCK レートは 2MHz となります。 表 F-4 TCK 値 半周期 ) (ns) 値 ARM DUI0048EJ-00 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 0 50 10000.00 21 1100 454.55 1 100 5000.00 22 1150 434.78 2 150 3333.33 23 1200 416.67 3 200 2500.00 24 1250 400.00 4 250 2000.00 25 1300 384.62 5 300 1666.67 26 1350 370.37 6 350 1428.57 27 1400 357.14 7 400 1250.00 28 1450 344.83 8 450 1111.11 29 1500 333.33 9 500 1000.00 30 1550 322.58 10 550 909.09 31 1600 312.50 11 600 833.33 32 100 5000.00 12 650 769.23 33 200 2500.00 13 700 714.29 34 300 1666.67 14 750 666.67 35 400 1250.00 15 800 625.00 36 500 1000.00 16 850 588.24 37 600 833.33 17 900 555.56 38 700 714.29 18 950 526.32 39 800 625.00 19 1000 500.00 40 900 555.56 Copyright © 1998-2001 ARM Limited. All rights reserved. F-11 JTAG インタフェース接続 表 F-4 TCK 値(続き) 半周期 ) (ns) 値 F-12 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 20 1050 476.19 41 1000 500.00 42 1100 454.55 66 600 833.33 43 1200 416.67 67 800 625.00 44 1300 384.62 68 1000 500.00 45 1400 357.14 69 1200 416.67 46 1500 333.33 70 1400 357.14 47 1600 312.50 71 1600 312.50 48 1700 294.12 72 1800 277.78 49 1800 277.78 73 2000 250.00 50 1900 263.16 74 2200 227.27 51 2000 250.00 75 2400 208.33 52 2100 238.10 76 2600 192.31 53 2200 227.27 77 2800 178.57 54 2300 217.39 78 3000 166.67 55 2400 208.33 79 3200 156.25 56 2500 200.00 80 3400 147.06 57 2600 192.31 81 3600 138.89 58 2700 185.19 82 3800 131.58 59 2800 178.57 83 4000 125.00 60 2900 172.41 84 4200 119.05 61 3000 166.67 85 4400 113.64 62 3100 161.29 86 4600 108.70 63 3200 156.25 87 4800 104.17 64 200 2500.00 88 5000 100.00 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 表 F-4 TCK 値(続き) 半周期 ) (ns) 値 ARM DUI0048EJ-00 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 65 400 1250.00 89 5200 96.15 90 5400 92.59 114 7600 65.79 91 5600 89.29 115 8000 62.50 92 5800 86.21 116 8400 59.52 93 6000 83.33 117 8800 56.82 94 6200 80.65 118 9200 54.35 95 6400 78.13 119 9600 52.08 96 400 1250.00 120 10000 50.00 97 800 625.00 121 10400 48.08 98 1200 416.67 122 10800 46.30 99 1600 312.50 123 11200 44.64 100 2000 250.00 124 11600 43.10 101 2400 208.33 125 12000 41.67 102 2800 178.57 126 12400 40.32 103 3200 156.25 127 12800 39.06 104 3600 138.89 128 800 625.00 105 4000 125.00 129 1600 312.50 106 4400 113.64 130 2400 208.33 107 4800 104.17 131 3200 156.25 108 5200 96.15 132 4000 125.00 109 5600 89.29 133 4800 104.17 110 6000 83.33 134 5600 89.29 111 6400 78.13 135 6400 78.13 112 6800 73.53 136 7200 69.44 Copyright © 1998-2001 ARM Limited. All rights reserved. F-13 JTAG インタフェース接続 表 F-4 TCK 値(続き) 半周期 ) (ns) 値 F-14 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 113 7200 69.44 137 8000 62.50 138 8800 56.82 162 4800 104.17 139 9600 52.08 163 6400 78.13 140 10400 48.08 164 8000 62.50 141 11200 44.64 165 9600 52.08 142 12000 41.67 166 11200 44.64 143 12800 39.06 167 12800 39.06 144 13600 36.76 168 14400 34.72 145 14400 34.72 169 16000 31.25 146 15200 32.89 170 17600 28.41 147 16000 31.25 171 19200 26.04 148 16800 29.76 172 20800 24.04 149 17600 28.41 173 22400 22.32 150 18400 27.17 174 24000 20.83 151 19200 26.04 175 25600 19.53 152 20000 25.00 176 27200 18.38 153 20800 24.04 177 28800 17.36 154 21600 23.15 178 30400 16.45 155 22400 22.32 179 32000 15.63 156 23200 21.55 180 33600 14.88 157 24000 20.83 181 35200 14.20 158 24800 20.16 182 36800 13.59 159 25600 19.53 183 38400 13.02 160 1600 312.50 184 40000 12.50 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 JTAG インタフェース接続 表 F-4 TCK 値(続き) 半周期 ) (ns) 値 ARM DUI0048EJ-00 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 161 3200 156.25 185 41600 12.02 186 43200 11.57 210 60800 8.22 187 44800 11.16 211 64000 7.81 188 46400 10.78 212 67200 7.44 189 48000 10.42 213 70400 7.10 190 49600 10.08 214 73600 6.79 191 51200 9.77 215 76800 6.51 192 3200 156.25 216 80000 6.25 193 6400 78.13 217 83200 6.01 194 9600 52.08 218 86400 5.79 195 12800 39.06 219 89600 5.58 196 16000 31.25 220 92800 5.39 197 19200 26.04 221 96000 5.21 198 22400 22.32 222 99200 5.04 199 25600 19.53 223 102400 4.88 200 28800 17.36 224 6400 78.13 201 32000 15.63 225 12800 39.06 202 35200 14.20 226 19200 26.04 203 38400 13.02 227 25600 19.53 204 41600 12.02 228 32000 15.63 205 44800 11.16 229 38400 13.02 206 48000 10.42 230 44800 11.16 207 51200 9.77 231 51200 9.77 208 54400 9.19 232 57600 8.68 Copyright © 1998-2001 ARM Limited. All rights reserved. F-15 JTAG インタフェース接続 表 F-4 TCK 値(続き) 半周期 ) (ns) 値 F-16 周波数(kHz) ) 周波数( 半周期 ) (ns) 値 周波数(kHz) ) 周波数( 209 57600 8.68 233 64000 7.81 234 70400 7.10 245 140800 3.55 235 76800 6.51 246 147200 3.40 236 83200 6.01 247 153600 3.26 237 89600 5.58 248 160000 3.13 238 96000 5.21 249 166400 3.00 239 102400 4.88 250 172800 2.89 240 108800 4.60 251 179200 2.79 241 115200 4.34 252 185600 2.69 242 121600 4.11 253 192000 2.60 243 128000 3.91 254 198400 2.52 244 134400 3.72 255 204800 2.44 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 付録 G ユーザ I/O 接続 本付録では、Multi-ICE で提供されている補助入出力接続について説明します。本付録 は以下のセクションから構成されています。 • Multi-ICE ユーザ I/O ピン接続:P. G-2 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. G-1 ユーザ I/O 接続 G.1 Multi-ICE ユーザ I/O ピン接続 このセクションではユーザ I/O コネクタについて説明します。このセクションは以下の サブセクションから構成されています。 • ユーザ I/O ピン接続:P. G-2 • 入力ビットロジック:P. G-4 ユーザ(I/O)コネクタは、Multi-ICE インタフェースユニットの取り外し可能カバーの 下にあります。このコネクタは、リボンケーブルに取り付けられた IDC ソケットと適 合する 20 ウェイヘッダです(図 G-1)。 TestClk 1 2 GND Test1 3 4 Test2 Test3 5 6 Test4 Test5 7 8 Reset +5V 9 10 V+HP Vt_out 11 12 out-1 Vt_in 13 14 out-2 Comp- 15 16 in-1 Comp+ 17 18 in-2 Compout 19 20 GND 図 G-1 ユーザ I/O ピン接続 ターゲットシンボルロジックレベルで動作しているシグナルを使用して、ユーザ定義 入力の 1 つをドライブする必要がある場合、P. G-4 図 G-2 の回路例を参照して下さい。 G.1.1 ユーザ I/O ピン接続 表 G-1 は、ユーザ入力 / 出力ピン接続を示しています。 表 G-1 ユーザ I/O 接続 ピン シグナル I/O 説明 ピン 1 TestClk - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 2 GND - - ピン 3 Test1 - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 4 Test2 - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 5 Test3 - プロダクションテスト用です。このピンは接続しないで下さい。 G-2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 ユーザ I/O 接続 表 G-1 ユーザ I/O 接続(続き) 接続(続き) ピン シグナル I/O 説明 ピン 6 Test4 - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 7 Test5 - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 8 Reset - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 9 +5V 出力 外部ロジック回路の少量の電力供給として使用します。このピンからの 電流は 20mA までに抑えることを推奨します。DC-DC コンバータがあ るため、外部ロジックに供給されるターゲットからの補助電流はほぼ Iout * (5V / target voltage) であることに注意して下さい。 ピン 10 V+HP - プロダクションテスト用です。このピンは接続しないで下さい。 Vt_out - プロダクションテスト用です。このピンは接続しないで下さい。 ピン 12 out-1 出力 ユーザ出力ビットです。 ピン 13 Vt_in - 入力ロジックの検出に使用される閾電圧で、ターゲットロジック基準電 圧(ターゲットコネクタピン 1 の VTref)から導出されます。ターゲッ トロジックレベルが監視されている場合は、このピンをコンパレータへ の入力の 1 つとして使用して下さい。 ピン 14 out-2 出力 ユーザ出力ビットです。 ピン 15 Comp- 入力 ユーザ定義入出力に使用する予備の LM339D コンパレータの反転入力 に接続します。このピンのGNDには1MΩのプルダウン抵抗があります。 ピン 16 in-1 入力 ユーザ入力ビットです。このピンは 74ACT ファミリの入力閾値を使用 し、+5V にプルアップする 10kΩ 抵抗を持っています。 ピン 17 Comp+ 入力 ユーザ定義入出力に使用する予備の LM339D コンパレータの非反転入 力に接続します。このピンには最大 +5V に上げる 1MΩ のプルアップダ ウン抵抗があります。 ピン 18 in-2 入力 ユーザ入力ビットです。このピンは 74ACT ファミリの入力閾値を使用 し、+5V にプルアップする 10kΩ 抵抗を持っています。 ピン 19 Compout 出力 ユーザ定義入出力に使用する予備の LM339D コンパレータの出力に接 続します。このシグナルはオープンコレクタ出力であるため、プルアッ プ抵抗を必要とします(ユーザ入力 in-1 および in-2 には既に適切なプ ルアップ抵抗(5V に対して 10kΩ)があります)。 ピン 20 GND - - ピン 11 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. G-3 ユーザ I/O 接続 G.1.2 入力ビットロジック ユーザ入力ビットは、ユーザ I/O コネクタからの 2 つの TTL ロジックレベル出力に対 応しています(P. G-2「ユーザ I/O ピン接続」参照)。これらのシグナルを使用して、 ユーザロジックをサーバ側でリモート監視することができます。 Multi-ICE JTAG ポートは、自動的に自らの入力 / 出力閾値をターゲットシステムの (VTref ピンに基づく)電圧レベルに適応させます。Multi-ICE ユーザ I/O コネクタの入 力は、標準 TTL レベルで動作します。ターゲットシンボルロジックレベルで動作して いるシグナルを使用して、ユーザ定義入力の 1 つをドライブする必要があります。図 G-2 の回路は、これを TTL レベルに変換します。 図 G-2 ユーザ入力シグナルの TTL レベルへの変換 ピン 15、17、19 は、Multi-ICE インタフェースユニット内の LM339 型コンパレータに 接続します。オープンコレクタ出力(ピン 19)は、適切なプルアップ抵抗を持つユー ザ入力(ピン 16)をドライブします。コンパレータへの反転入力(ピン 15)は、電圧 G-4 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 ユーザ I/O 接続 基準ミラー回路からの出力(ピン 13)によってドライブされます。コンパレータへの 非反転入力(ピン 17)は、小さな直列抵抗(Rin)を使用して監視されるシグナルに よってドライブされます。 コンパレータの出力も大きな抵抗(Rhyst)を介してこの入力にフィードバックされ、 少量のヒステリシスを発生させます(記載値に対して約 20mV)。入力シグナルのグラ ンド基準はピン 20 に接続し、JTAG コネクタ経由よりも直接のリターンパスを与える 必要があります。 Multi-ICE サーバウィンドウの右下端に表示されます。 ユーザ入力ビットは、 各ビットは: ARM DUI0048EJ-00 • HIGH のときはライトグリーンで表示されます。 • LOW のときはダークグリーンで表示されます。 Copyright © 1998-2001 ARM Limited. All rights reserved. G-5 ユーザ I/O 接続 G-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 用語集 Adaptive clocking (適応クロッキング) Multi-ICE がクロックシグナルを送信し、リターンクロックの受信を待ってから次のク ロックパルスを生成する方法。この方法により、Multi-ICE インタフェースユニットは 様々なシグナルドライブ機能やケーブル長に適応することができます。 ADS ARM デベロッパスイート参照。 ADU UNIX 版 ARM デバッガ参照。 ADW Windows 版 ARM デバッガ参照。 Angel ARM ベースのターゲットで動作し、アプリケーションのデバッグを可能にするデバッ グモニタ。 Application Program Interface(アプリケーションプログラムインタフェース) (アプリケーションプログラムインタフェース) 2 つ以上のソフトウェアコンポーネント同士をインタフェースさせるために使用され る一連の手続き、関数、データ構造、制約条件に関する仕様。例えば、オペレーティ ングシステムとそれが使用するアプリケーションプログラム間の API により、ファイ ルからのデータ読み出し方法が厳密に指定される場合があります。 ARM Debugger for UNIX( (UNIX 版 ARM デバッガ) UNIX 版 ARM デバッガ(ADU)および Windows 版 ARM デバッガ(ADW)は、同じ ARM デバッガソフトウェアの 2 つのバージョンであり、それぞれ UNIX 下または Windows 下で動作します。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 用語集- 1 用語集 ARM Debugger for Windows( (Windows 版 ARM デバッガ) Windows 版 ARM デバッガ(ADW)および UNIX 版 ARM デバッガ(ADU)は、同じ ARM デバッガソフトウェアの 2 つのバージョンであり、それぞれ Windows 下または UNIX 下で動作します。このデバッガは元々 ARM ソフトウェア開発ツールキットの一 部として発売されたものです。現在も完全サポートされており、ARM デベロッパス イートに同梱されています。 ARM Developer Suite( (ARM デベロッパスイート) 支援文書およびサンプルを含み、ARM ファミリの RISC プロセッサ用アプリケーショ ンを記述してデバッグするためのアプリケーションスイート。 ARM eXtended Debugger( (ARM 拡張デバッガ) デバッグエージェントを利用してデバッグターゲット上で動作するソフトウェアの実 行を検査・制御するための、ARM の最新デバッガソフトウェア。AXD には Windows 版と UNIX 版の 2 つのバージョンがあります。 ARMulator 命令セットシミュレータ。各種 ARM プロセッサの命令セットとアーキテクチャをシ ミュレートするモジュールの集合です。 AXD ARM 拡張デバッガ参照。 Big-endian(ビッグ (ビッグ エンディアン) ワードの最下位バイトが最上位バイトよりも上位アドレスに位置するメモリ構成。リ トルエンディアン参照。 Cache cleaning (キャッシュ クリーニング) キャッシュ内のダーティデータをメインメモリに書き込むプロセス。 Coprocessor (コプロセッサ) 浮動小数点計算、シグナル処理、メモリ管理等の特定の操作に使用される補助プロ セッサ。 Core Module (コアモジュール) Integrator 参照。 CPU 中央処理装置。 CPSR カレントプログラムステータスレジスタ。プログラムステータスレジスタ参照。 DCache データキャッシュ。 DLL ダイナミックリンクライブラリ参照。 Dirty data (ダーティデータ) プロセッサデータキャッシュの参照時において、そのキャッシュにデータは書き込ま れているが、メインメモリには書き込まれていないこと。ライトスルーキャッシュは データをキャッシュとメモリに同時に書き込むため、ダーティデータを使用できるの はライトバックキャッシュだけです。メインメモリへのダーティデータの書き込みプ ロセスを、キャッシュクリーニングと呼びます。 Double word (ダブルワード) 64 ビットの情報単位。ダブルワードの内容は、指定されていない限り符号なし整数と みなされます。 用語集- 2 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 用語集 Dynamic Linked Library(ダイナミックリンクライブラリ) (ダイナミックリンクライブラリ) プログラムの集合であり、実行プログラムに必要であればこの中のどのプログラムでも 呼び出すことが可能です。大きなプログラムとプリンタやキーボード等のデバイスとの 通信を支援する小さなプログラムは、しばしば DLL としてパッケージングされます。 ECP 拡張機能ポート参照。 Enhanced Capability Port(拡張機能ポート) (拡張機能ポート) パラレルポート経由の高速双方向データ転送を可能にするパラレルポートの標準。 EPP および IEEE1284 参照。 Enhanced Parallel Port(拡張パラレルポート) (拡張パラレルポート) パラレルポート経由の高速双方向データ転送を可能にするパラレルポートの標準。 ECP および IEEE1284 参照。 EPP 拡張パラレルポート参照。 Environment(環境) (環境) アプリケーションを実行する実ハードウェアとオペレーティングシステムのこと。 ETM Enbedded Trace Macrocel。 External Data Representation(外部データ表現) (外部データ表現) システム固有の方法でコンピュータシステム間で入力されたデータの転送方法を記述 した、Sun Microsystems によって定義された仕様。Sun RPC に使用されています。 Flash memory (フラッシュメモリ) アプリケーションコードの保持に頻繁に使用される不揮発性メモリ。 Halfword (ハーフワード) 16 ビットの情報単位。ハーフワードの内容は、指定されていない限り符号なし整数と みなされます。 Heap(ヒープ) (ヒープ) コンピュータメモリ内で、新しい変数の作成に使用することが可能な部分。 Host(ホスト) (ホスト) 別のコンピュータにデータや他のサービスを提供するコンピュータ。特に、デバッグ するターゲットにデバッグサービスを提供するコンピュータを指します。 ICache 命令キャッシュ。 ICE インサーキットエミュレータ参照。 ICE Extension Unit (ICE 拡張ユニット) より多くのブレークポイントユニットを使用するための EmbeddedICE ロジックのハー ドウェア拡張。 ID 識別子。 IEEE 1149.1 TAP を定義した IEEE 規格。一般的に(正しくはないですが)JTAG と呼ばれています。 IEEE 1284 ECP を囲むパラレルポートインタフェースの規格ですが、半自動転送を可能にするま でに拡張されています。 IEU ICE 拡張ユニット参照。 ARM DUI0048EJ-00 Copyright © 1998-2001 ARM Limited. All rights reserved. 用語集- 3 用語集 Image(イメージ) (イメージ) 実行を目的にプロセッサにロードされた実行可能ファイル。 In-Circuit Emulator (インサーキット エミュレータ) 回路動作中における回路のシグナルへのアクセス、およびシグナルの修正を可能にす るデバイス。 Instruction Register (命令レジスタ) TAP コントローラを参照するときに、TAP の動作を制御するレジスタ。 Integrator AP および SP マザーボードレイアウトで使用することが可能な ARM ハードウェア開発 プラットフォーム。プロセッサとローカルメモリを組込んだコアモジュールを入手す ることができます。 IR 命令レジスタ参照。 Joint Test Action Group(ジョイントテストアクショングループ) (ジョイントテストアクショングループ) IEEE 1149.1 規格を作成した規格団体の名前。 JTAG ジョイントテストアクショングループ参照。 Little-endian(リトル (リトル エンディアン) ) エンディアン ワードの最下位バイトが最上位バイトよりも下位アドレスに位置するメモリ構成。 ビッグエンディアン参照。 Memory management unit(メモリ管理ユニット) (メモリ管理ユニット) キャッシュとメモリブロックへのアクセス許可を制御し、仮想アドレスを物理アドレ スに変換するハードウェア。 MMU メモリ管理ユニット参照。 Multi-ICE マルチプロセッサ EmbeddedICE インタフェース。ARM の登録商標です。 nSRST システムリセットの省略形。TAP コントローラ以外のターゲットシステムをリセット させる電子シグナルです。マニュアルによっては、このシグナルが nSYSRST と記載さ れている場合があります。 nTRST 参照。 nTRST TAP リセットの省略形。ターゲットシステムの TAP コントローラをリセットさせる電 子シグナルです。マニュアルによっては、このシグナルが nICERST と記載されている 場合があります。 nSRST 参照。 Open collector (オープンコレクタ) 1 つ以上のドライバで能動的に LOW にドライブするか、受動的に HIGH にプルされる シグナル。「ワイヤード AND」シグナルとして知られています。 PID ARM プラットフォーム独立開発カード。ARM 開発ボードとして知られています。 PIE ARM が設計・提供するプラットフォーム独立評価カード。 Port mapper (ポートマッパ) 用語集- 4 RPC クライアントプロセスを特定の RPC サービスのために RPC サーバプロセスに接続 させるプロセス。 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 用語集 Processor Core (プロセッサコア) メモリから命令を読み出してそれを実行するマイクロプロセッサの部分を指し、命令 フェッチユニット、算術 / 論理ユニットおよびレジスタバンクも含まれます。オプショ ンのコプロセッサ、キャッシュならびにメモリ管理ユニットはこれに含まれません。 Processor Status Register(プロセッサステ (プロセッサステー (プロセッサステータスレジスタ) プログラムステータスレジスタ参照。 Program image (プログラムイメージ) イメージ参照。 Program Status Register(プログラムステ (プログラムステー (プログラムステータスレジスタ) プログラムステータスレジスタ(PSR)は、現在のプログラムに関する情報と現在のプ ロセッサに関する情報を保持します。このため、しばしばプロセッサステータスレジ スタと呼ばれます。 また、保存 PSR(SPSR)と区別するために、カレント PSR(CPSR)と呼ばれることも あります。SPSR は、現在の関数が呼び出されたときに PSR が保持していた値を保持 し、この値は制御が戻されるときに復元されます。 RDI Remapping (リマッピング) Remote_A リモートデバッグインタフェース参照。 物理メモリまたはデバイスのアドレスを、アプリケーションの実行開始後に変更する こと。通常、この動作は初期化完了後に ROM を RAM に置き換えるために行われます。 ソフトウェアプロトコルコンバータおよびコンフィギュレーションインタフェース。 デバッガのRDI 1.5ソフトウェアインタフェースとAngelターゲットに使用されるAngel デバッグプロトコル間の変換を行います。シリアルインタフェースまたはイーサネッ トインタフェース経由での通信が可能です。 Remote Debug Interface(リモートデバッグインタフェース) (リモートデバッグインタフェース) デバッガとデバッグエージェント間のオープン ARM 標準手続きインタフェース。この 標準はできる限り適用することを推奨します。 Remote Procedure Call(リモートプロシージャコール) (リモートプロシージャコール) 異なるプロセス内の手続きへの呼び出し。呼び出している手続きは、通常異なるプロ セッサで実行されている異なるプロセス内の手続きを呼び出します。 RM RealMonitor RPC リモートプロシージャコール参照。 RTCK リターン TCK。適応クロッキングをイネーブルするシグナルです。 RTOS リアルタイムオペレーティングシステム。 Scan Chain (スキャンチェイン) TDI-TDO 間に接続された複数 TAP コントローラからの複数レジスタからなるグループ であり、これを介してテストデータがシフトされます。 Semihosting (セミホスティング) ターゲットがアプリケーションコード内で発生した I/O 要求を、その I/O 自体をサポー トしようとするのではなく、ホストシステムに通知するメカニズム。 SPSR ARM DUI0048EJ-00 保存プログラムステータスレジスタ。プログラムステータスレジスタ参照。 Copyright © 1998-2001 ARM Limited. All rights reserved. 用語集- 5 用語集 SWI ソフトウェア割込み。プロセッサにプログラマが指定したサブルーチンを呼び出させ る命令。ARM によってセミホスティングを処理するために使用されます。 Synchronous starting(同期開始) (同期開始) 複数のプロセッサに特定プログラムの位置と状態を設定し、これらのプロセッサを同 時に始動させること。 Synchronous stopping(同期停止) (同期停止) 複数プロセッサが同時に実行を停止するように、これらのプロセッサを停止すること。 Sun RPC Sun Microsystems によって標準として定義された RPC の特殊形式であり、XDR 標準と TCP/IPデータグラムを使用して、 ネットワークに接続されたコンピュータと通信します。 TAP テストアクセスポート参照。 TAP Controller (TAP コントローラ) テスト用デバイスのいくつかまたは全部へのアクセスを可能にするデバイス上のロ ジック。この回路機能は IEEE1149.1 で定義されています。 TAP、IEEE1149.1 参照。 TAPOp Multi-ICE サーバとクライアント間のインタフェース API の名前。 Target(ターゲット) (ターゲット) アプリケーションプログラムを実行中の実プロセッサ(実シリコンまたはシミュレー トされたプロセッサ)。 TCK TAP データライン TMS、TDI、TDO 上のデータを計時する電子クロックシグナル。 TDI データソース(上流)から TAP コントローラへの電子シグナル入力。通常、このシグ ナルは Multi-ICE インタフェースユニットを最初の TAP コントローラに接続している とみなされます。 TDO TAP コントローラからデータソース(下流)への電子シグナル出力。通常、このシグ ナルは最後の TAP コントローラを Multi-ICE インタフェースユニットに接続している とみなされます。 Test Access Port (テストアクセス ポート) TTL Watchpoint (ウォッチポイント) デバイスの TAP コントローラへのアクセスに使用されるポート。TCK、TMS、TDI、 TDO ならびに nTRST(オプション)から構成されます。 トランジスタトランジスタロジック。2 つのバイポーラトランジスタがロジック出力を 1 または 0 にドライブするロジック設計のタイプ。LSI および VLSI ロジックには HIGH ロジックレベルが +5V に、LOW が 0V に接近する TTL がよく使用されます。 監視され、変更されると実行を停止させるイメージ内の位置。 Word(ワード) (ワード) 32 ビットの情報単位。ワードの内容は、指定されていない限り符号なし整数とみなさ れます。 XDR 外部データ表現参照。 用語集- 6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Index The items in this index are listed in alphabetical order, with symbols and numerics appearing at the end. The references given are to page numbers. A Angel debug monitor 4-47 AXD 4-4 Active server connections 4-12 Debuggers 2-2 Adaptive clocking 5-7, 6-3, 6-4 Developer Suite 2-2 menu option 3-24 Development Board 4-55, 5-8 Adaptive JTAG voltage levels 6-12 Embedded Trace Macrocell 1-12 Adaptor Firmware Suite 1-5 TI 14-way to 20-way 2-10 Integrator 5-8 14-way to 20-way 1-2, 2-8, 4-40, Integrator board 1-13 5-13 PID board 4-55 ADU 1-3 PIE7 board 2-9, 5-8 ADW 1-3, 4-5 PIV7T board 2-9, 5-8 accessing debugger internals 4-43 Processors. See Processors Configure Debugger menu item 4-5 RealMonitor 1-12, 4-44 Debugger Configuration diaog 4-6 System coprocessor 4-34, 4-42 error messages 5-15 TDT 1-12 AFS 1-5 ARMulator 4-5 Allow network connections 2-15, 4-12 ASIC AMBA 5-8 guidelines 6-9 Angel debug monitor 1-5 multiple devices 6-9 ARM signal drivers 6-14 ADS 1-12, 1-13, 2-2 Automatic ADW 4-2, 4-5 configuration 3-3 ARM DUI0048EJ-00 dialup 2-3 AXD 1-3, 4-4 Accessing debugger internals 4-43 Choose Target dialog 4-4 Configure Target menu item 4-4 debugging multiple processors 4-22 B Big endian 4-16, D-2 Boards ARM Development 5-8 ARM Integrator 5-8 ARM PIE7 2-9, 5-8 ARM PIV7T 2-9, 5-8 compatibility 2-9 Integrator 1-13 Box header, JTAG F-2 Breakpoints 4-49, B-2 exception vectors 5-7 hardware vs software 4-49 ROM 4-53 Copyright © 1998-2001 ARM Limited. All rights reserved. Index-1 Index semihosting 4-46 signal 1-4 single-stepping B-3 SWI vector B-2 BREAKPT signal 1-4 Browsing for server 4-11 C Cable length, JTAG 6-14 Cache clean code address 4-13 read-ahead memory 4-16 Calculating, JTAG clock 3-22 CE Declaration of Conformity ii Channel viewers DLL 4-20 failing 5-8 selecting 4-20 Clocks adaptive 6-3, 6-4 JTAG speed 3-21 menu option 3-24 setting speed 3-7 synchronizing 3-24, 6-3 Compatibility boards 2-9 Multi-ICE with debuggers 1-3 Configuration automatic 3-3, 3-9 manual 3-12 server 2-14 Configuration files autoconfig.cfg 3-9 creating 3-9 examples A-5 IRlength.arm 5-5, 5-6, A-3 loading 3-3 userdrvn.txt 3-13, 5-3 Connecting debugger to Multi-ICE 4-3 Multi-ICE hardware 2-5 Connection active server 4-12 PCB 6-11 Coprocessor debug 4-56, D-7 signal processing D-7 Index-2 system 4-42, D-7, E-1 vector floating-point D-2 0, accessing 4-56 Coprocessor 0 D-7 Coprocessor 15 4-34, 4-42, D-7 Coprocessors register display E-2 Cores, CPU starting and stopping 3-5 Creating Multi-ICE configuration files 3-9 Disk usage 2-3 Displaying RPC call information 3-5 DLL files channel viewer 4-20 Downloading code user output bits 3-20 Driver .mul files 5-15 D ECP parallel port 3-19 Electromagnetic conformity ii Embedded Trace Macrocell 1-2, 1-12 EmbeddedICE 1-2, 1-4, 4-35, 4-60, 6-16 debug architecture 1-5 Interface Unit 2-10 logic, resetting 4-55, 5-7 resetting logic 6-6 EmbeddedICE/RT logic 1-4 Enable late startup 4-14 Endian big 4-16, D-2 little 4-16 EPP parallel port 3-19 Error messages from ADW 5-15 from Multi-ICE server 5-11 ETM See Embedded Trace Macrocell Examining a running system 4-38 Exception vectors breakpoints 5-7 setting breakpoints 5-7 Exiting Multi-ICE server 3-4 Extensions debug 1-4 Daisy chaining TAP controllers 6-3 Data Cache uncachable bit 5-12 Data transfer, 4-bit 3-19 DBGACK signal 1-4 DBGEN 5-5, 5-6 DBGRQ signal 1-4 Debug extensions 1-4 Debug Comms Channel 1-5 viewers see Channel Viewers Debug Communications Channel. See Debug Comms Channel. Debug handler base address 4-14 Debugger ADW 4-2 internal variables 4-30 saving settings 4-21 Debugger variables See also Variables Debuggers connecting to Multi-ICE 4-3 performance 3-30 Debugging ROM applications 4-53 self-modifying code 4-49 Defining JTAG device interaction 3-28 Desktop Update, Windows 4-3 Devices execution control 3-27 polling 3-30 unknown 2-14, 5-3 Dialup automatic 2-3 Digital signal processor 6-2 E F Fault Address Register 5-13 Fault Status Register 5-13 FCC notice ii Files autoconfig.cfg 3-9 configuration 3-9 driver .mul 5-15 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Index log 3-4 Non_tcp_ip.reg 2-16 Flash memory Memory flash 4-13 FPGA 1-13, 4-13 defining interaction 3-28 Enabling tristate driver 5-4 list of signals F-2 low clock rates 3-23 port synchronizer 6-4, 6-5 settings 3-7 signal list F-2 14-way to 20-way adaptor 1-2, 4-40 H K Hard disk usage 2-3 Hardware requirements 2-3 Harvard architecture 4-33 HBI-0004 2-9 HBI-0008 2-9 HHI-0016 2-9 HPI-0027 1-2, 2-8, 4-40, 5-13 HPI-0068 2-10 HP-UX 10.20 2-4 Killing TAP connection 3-6 KS32C50100, Samsung 4-31, 4-35 L Listing TAP controllers 3-6 Little endian 4-16 LM339 G-4 Loading configuration files 3-3 Log files 3-4 Logic levels 6-11 TTL 3-19, 3-21, G-4 Logic types CMOS 6-13 TTL 6-13 I ICE Extension Unit. See IEU IDC header F-2 IEEE 1284 parallel port Parallel port IEEE 1284 mode 3-19 IEU 1-5, 4-60 Image downloading 3-20 endian 4-16 load symbols 4-39, 4-41 Installing Multi-ICE 2-12 irlength.arm A-3 M J Joint Test Action Group. See JTAG JTAG 1-2 boundary scan 6-10 cable length 6-14 clock speed 3-21–3-22 calculating 3-22 setting 3-21 clock too fast 5-5, 5-6 controlling settings for 3-7 debugging support 1-4 ARM DUI0048EJ-00 MAX823 6-7 Memory regions ARM740T, ARM940T 4-34 Management Unit 5-12 Messages creating log files 3-4 Microsoft WinCE 4-37 Microsoft Windows Browser service 4-11 browsing networks 1-12 Desktop Update 4-3 installing Multi-ICE 2-12 NT 4 4-3 parallel port driver 3-19 requirements 2-3 versions 2-2 2000 1-11, 1-12 95 4-3 Mixing ARM CPUs with others 6-3 MMU 5-12 Modification box (PCB) 2-9 Multi-ICE 3-4 compatibility 1-3 connection configuration 4-8 DLL 1-10 using on UNIX 1-7 install directory 4-4, 4-6 interface unit 1-7, 2-13, D-8 multiple processors 4-22 poll rate 3-30 run control 3-26 server 1-8 server poll frequency 3-30 startup menu 2-12 toolbar 3-5 Multi-ICE interface unit 4-38, 5-7 Multi-ICE menus Connection 3-6 File 3-2 Help 3-8 overview 3-2 Run Control 3-5 Settings 3-7 View 3-5 Multi-ICE power supply 2-10 Multi-ICE server 2-2 browsing for 1-12, 4-11 configuration 3-9 error messages 5-11 multiple connections 1-8 starting 2-13 Multi-ICE.dll 4-4, 4-6 Multiple TAP controllers 6-9 N Network dialup 2-3 software 2-3 Network connections allowing 2-15, 4-12 nICERST. See Signals Non_tcp_ip.reg 2-16 Notices Copyright © 1998-2001 ARM Limited. All rights reserved. Index-3 Index CE conformity ii FCC ii nSRST. See Signals nSYSRST. See Signals nTRST. See Signals O OEM licenses 1-3 Open collector output F-3 P Parallel port driver 1-7 ECP mode 3-19 EPP mode 3-19 selecting 3-7 settings 3-7, 3-18 4-bit data transfer 3-19 4-bit mode 3-19 8-bit mode 3-19 PCB connections 6-11 Persistence debugger settings 4-21 PID7T 4-55 Polling devices 3-30 Portmap service 1-9, 3-17 Power resetting 4-53 series resistor 2-10 supply 4-38 supply requirements 2-10 Vdd 2-10, F-3 Processors ARM10 4-56 ARM10 family 4-32–4-33 ARM1020T 1-12, 4-32, D-2 ARM7 family 4-31 ARM7DI 4-31 ARM7DMI 4-31 ARM7TDI 4-60 ARM7TDI-S 1-12, 4-31 ARM7TDMI 1-11, 2-15, 6-3 ARM7TDMI-S 1-11, 1-12, 4-31, 6-3 ARM710T 4-31, E-2 Index-4 ARM720T 4-31, 4-37 ARM740T 4-31 ARM9 family 1-14, 4-32, 4-33 ARM9E-S 1-12 ARM9TDMI 4-32, 4-33, 4-60, 5-11 ARM9TDMI-S 4-32, 4-33 ARM920T 1-12, 1-13, 4-32, 4-37, 6-3 ARM922T 1-11 ARM925T 1-11 ARM940T 1-13, 4-32, 4-34 ARM946E-S 1-11, 1-12, 4-34 ARM966E-S 1-12, 1-13, 4-32, 4-34 Atmel AT91 5-8 Harvard architecture 4-33 Intel XScale family 4-32 Intel 80200 1-12, 4-56, D-3 list of supported 2-4, 5-3 Samsung KS32C50100 1-12, 4-31, 4-35 XScale architecture 4-56, 5-7, D-3 Program counter 4-50 R RDI 1-2, 1-13 version setting 4-17 Read-ahead Cache 4-16 RealMonitor, ARM 1-12 Remote Debug Interface. See RDI Report non-fatal errors 4-18 Requirements hardware 2-3 software 2-2 Reset circuit 6-8 EmbeddedICE logic 4-55 power-on 4-53 signals 6-6 simulating 4-54 system 4-36 vector 4-55 ROM 4-49 at address zero 4-51, 4-55, 5-7 breakpoints in 4-53 debugging applications 4-53 RPC display 3-5 logging 3-4 RS422 6-15 Running, Multi-ICE server 2-13 S S bit in vector_catch 4-43, B-2, B-3 Scan chains 1-4 displaying 3-10 examining 3-3 requirements 2-4 Self-modifying code debugging 4-49 Semihosting 4-43 breakpoint usage 4-46 Enabling and disabling 4-43 Server configuring 2-14, 3-9 starting 2-13 Settings clock speed 3-7 debuggers saving 4-21 JTAG clock speed 3-21 parallel port 3-7, 3-18 RDI version 4-17 user output bits 3-19, 3-21, G-4 Signals BREAKPT 1-4 DBGACK 1-4, 4-51 DBGEN 5-5, 5-6 DBGRQ 1-4, 3-27, 4-51, 5-5 drivers, ASIC 6-14 JTAG F-3 JTAG, list of F-2 MCLK 5-4 multiplexing JTAG 6-10 nICERST 用語集- 4 nSRST 3-4, 3-5, 4-51, 5-3, 6-7, 6-12, 6-13, A-4, D-5 nSYSRST 用語集- 4 nTDOen 5-4 nTRST 3-4, 3-5, 4-51, 5-3, 5-7, 6-3, 6-6, 6-12, A-4 nWait 4-52 open collector F-3 pull-up resistors 4-39, 4-40, ??–4-40 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00 Index reset 6-6 RTCK 3-24, 5-7, 6-12, 6-16 RTCK feedback loop 6-4 TCK 3-22, 6-12, 6-14, A-4 frequency F-7, F-11 14-way adaptor 6-16 TDI 6-12 Timing F-5 TMS 6-12 Vsupply 2-10, 4-39, 6-16 VTref 4-39, 4-40, 6-12 Single-stepping breakpoints B-3 Software requirements 2-2 Solaris 7.0 1-12, 2-4 Standard EmbeddedICE Interface Unit connection 2-8 Standards IEEE 1149.1 1-2, 2-4, 3-16 Multi-ICE connection 2-8 RS422 6-15 Starting CPU cores 3-5 Multi-ICE Server 2-12 Stopping CPU cores 3-5 Supported processor list 2-4, 5-3 SWI vector breakpoint B-2 handlers 4-35, 4-43 handlers, adding 4-45 Symbols core status, JTAG 3-10 image load 4-39–4-41 Synchronizing clocks 3-24 processor start and stop 1-8, 3-5, 3-25–3-27, D-2 Synchronous start group 3-26 stopping processors 3-26 System requirements 2-2 T T bit in CPSR B-4 TAP controllers 1-5, 6-9 bypass 6-3 chaining 6-3 ARM DUI0048EJ-00 IR register A-2 V listing 3-6 V bit in CP15 4-37 multiple 6-9 Variable user output bits 3-20 vector_catch 4-51 TAPOp Variables controlling user output bits 3-21, arm9_restart_address 1-13 G-4 cache clean code address 4-13, protocol version 3-14 5-11, 5-12 user output bits 3-19 cp15_cache_selected 4-32, 4-33, TAPOp procedure calls E-2 TAPOp_WriteMICEUser1 3-20 cp15_current_memory_area 4-31, TAPOp_WriteMICEUser2 3-20 4-34, E-2 Target cp_access_code_address 4-31–4-33 debugging multiple 4-22 debug handler base address 4-14 interface voltage levels 6-12 debugger internal 4-30 TCK 6-12, A-4 icebreaker_lockedpoints Test Access Port 1-5 4-31–4-35, 4-60, B-5 controllers 6-2 internal_cache_enabled 4-16, Texas Instruments JTAG adaptor 2-10 4-31–4-35 Thumb state flag B-4 internal_cache_flush 4-16, ThumbCV 4-19, 4-21 4-31–4-35 Timeout ks32c_special_base_address 4-31, hardware interface 5-7 4-35 Toolbars 3-5 safe_non_vector_address Trace Debug Tools 1-12, 4-18 4-31–4-35 trace capture dll 4-19 searchpath 4-30 semihosting_dcchandler_address 4-30–4-35, 4-44, 4-45, 5-8 U semihosting_enabled 3-27, 4-20, UNIX 4-30–4-33, 4-36, 4-43–4-45, 4-51 connecting debugger 4-3 semihosting_vector 4-43, 4-45, debugging 2-2 4-46, 4-51 support 1-3 sw_breakpoints_preferred Unknown 4-31–4-33, 4-36 device 2-14, 5-3 system_reset 4-31–4-33, 4-36 watchpoint error 4-46 top_of_memory 4-31–4-33, 4-36, User input bits 4-54, 5-8 sample circuit 3-21, G-4 user_input_bit1 4-31, 4-32, 4-37 viewing 3-21, G-5 user_output_bit1 4-31, 4-32, 4-37 User I/O connector G-2 vector_address 4-30, 4-31, 4-32, User output bits 4-35, 4-37, 4-43 accessing G-4 vector_catch 4-30, 4-50, 4-55 controlling 3-7 Vector catch breakpoints B-2 setting 3-19, 3-21, G-4 Vector catch hardware 4-51 setting TAP controllers 3-20 ARM10 processor B-2 TAPOp procedure calls 3-19, 3-21, ARM9 processor B-2 G-4 XScale processor B-2 Viewing Copyright © 1998-2001 ARM Limited. All rights reserved. Index-5 Index device information 3-15 user input bits 3-21, G-5 W Warranty 1-2 Watchpoints 4-48 unknown 4-46 Windows. See Microsoft Windows X XScale processor debug architecture D-3 debug handler address 4-14 late startup 4-14 reset vector overloading D-5 Numerics 4-bit data transfer 3-19 4-bit parallel port 3-19 8-bit parallel port 3-19 Index-6 Copyright © 1998-2001 ARM Limited. All rights reserved. ARM DUI0048EJ-00
© Copyright 2024 Paperzz