...

Multi-ICE - ARM Information Center

by user

on
Category: Documents
16

views

Report

Comments

Transcript

Multi-ICE - ARM Information Center
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
Fly UP