PARTNERコマンドウインドウ
現在 PARTNERコマンドウインドウでサポートされているコマンド
コマンド |
説明 |
---|---|
指定幅でメモリをリードします。主にI/O空間に対して使用 |
|
指定幅でメモリをライトします。主にI/O空間に対して使用 |
|
ARMv8プロセッサでシステムレジスタのリードに使用 |
|
ARMv8プロセッサでシステムレジスタのライトに使用 |
|
メモリダンプ。I/Oメモリに対しては使用不可 |
|
ターゲットメモリをリードし、その内容をファイル化 |
|
ファイル内容をターゲットメモリに対して書き込み |
|
シンボルダンプ |
|
MMUに関連するレジスタの表示、アドレス変換など |
|
スナップショットファイルの作成 |
|
|
デバッガのバージョン表示 |
rootdir設定コマンド |
PARTNERコマンドウインドウの起動
デバッグ中に、メニューの PARTNER Command Window が表示されます。このウィンドウ内で、PI
/PO
コマンドを実行することにより、
I/O空間へのアクセスが可能になります。
ウィンドウ内で実行されたコマンドの履歴は、ウィンドウ上部の矢印をクリックするか、または ALT+↑, ALT+↓ で呼び出す事ができます。
デバッグ中のI/Oアクセス (PI
/PO
コマンド)
概要
通常のメモリを参照するメモリウィンドウでは、メモリアクセス幅指定がなく、場合によっては 同じメモリアドレスに対して複数回のアクセスをしてしまう可能性があるため、I/O空間のアクセス には適していません。
ここでは、デバッグ用のコマンドウィンドウでI/Oレジスタへのアクセスを行う方法を紹介します。
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
オプションの詳細は 指定可能なオプションについて を参照してください。
- PIB アドレス[, /P][, /アクセスポート]
指定されたアドレスから8bit幅でデータを読み出します。
- PIW アドレス[, /P][, /アクセスポート]
指定されたアドレスから16bit幅でデータを読み出します。
- PID アドレス[, /P][, /アクセスポート]
指定されたアドレスから32bit幅でデータを読み出します。
- POB アドレス, データ[, /P][, /アクセスポート]
指定されたアドレスに8bitのデータを書き込みます。
- POW アドレス, データ[, /P][, /アクセスポート]
指定されたアドレスに16bitのデータを書き込みます。
- POD アドレス, データ[, /P][, /アクセスポート]
指定されたアドレスに32bitのデータを書き込みます。
使用例
0xF8008000
から8bitのデータを読み出す:
> pib 0xf8008000
address : data : bit data
F8008000 03 0000 0011
物理アドレス 0x20808000
から32bitのデータをAHBで読み出す:
> pid 0x20808000, /ahb
address : data : bit data
20808000 E7913003 1110 0111 1001 0001 0011 0000 0000 0011
物理アドレス 0x20808002
に16bitのデータを書き込み、それを読み出す:
> pow 0x20808002, 0x55aa, /p
> piw 0x20808002, /p
address : data : bit data
20808002 55AA 0101 0101 1010 1010
指定可能なオプションについて
PI
/PO
コマンドに /P
オプションを指定すると、デバッガが一時的にMMUを無効にして、物理アドレスでアクセスします。
/アクセスポート
オプションには、/AHB, /APB
が指定可能です。
/AHB
が指定されると、CPUを介さずに直接物理メモリにアクセスできます。そのため、CPUが実行状態でも使用できます。
/APB
を指定するとAPB空間にアクセスできますが、通常は使用しません。
デバッグ中のシステムレジスタアクセス (PIS
/POS
コマンド)
概要
PIS
/POS
コマンドを実行することにより、I/O空間へのアクセスが可能になります。
PIS
コマンドは、レジスタ名で指定されたシステムレジスタの値を読みだし、2進数と16進数で表示します。
POS
コマンドは、レジスタ名で指定されたシステムレジスタに、指定されたデータを書き込みます。
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
指定可能なレジスタ名は以下の表を参照してください。 また、表にないシステムレジスタにアクセスする場合は、システムレジスタを表す5つの
数字 op0, op1, CRn, CRm, op2
を指定できます (書式2, 4)。例えば、SCTLR_EL1
を表すパラメータは 3, 0, 1, 0, 0
となります。
システムレジスタのパラメータの詳細は「ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile」
または、各種プロセッサのTechnical Reference Manualを参照してください。
- PIS レジスタ名
レジスタ名を使って値を読みだします。
- PIS op0, op1, CRn, CRm, op2
5つの数字を指定する形式でレジスタを指定して値を読みだします。
- POS レジスタ名, データ
レジスタ名を使って値を読みだします。
- POS op0, op1, CRn, CRm, op2, データ
5つの数字を指定する形式でレジスタを指定して値を読みだします。
使用例
PCの値を物理アドレスに変換して結果を取得:
>pos AT_S1E2R, _pc
>pis PAR_EL1
0x00000000FFF65B00 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 0110 0101 1011 0000 0000
>pis 3, 0, 7, 4, 0
0x00000000FFF65B00 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 0110 0101 1011 0000 0000
>
使用可能なレジスタ名
レジスタ名 |
説明 |
---|---|
|
物理アドレスレジスタ。アドレス変換結果が格納されている |
|
フォールトアドレスレジスタ (EL1) |
|
フォールトアドレスレジスタ (EL2) |
|
フォールトアドレスレジスタ (EL3) |
|
マルチプロセッサアフィニティレジスタ |
|
アドレス変換テーブルベースレジスタ0 (EL1) |
|
アドレス変換テーブルベースレジスタ0 (EL2) |
|
アドレス変換テーブルベースレジスタ0 (EL3) |
|
アドレス変換テーブルベースレジスタ1 |
|
リセットベクタベースアドレス (EL1) |
|
リセットベクタベースアドレス (EL2) |
|
リセットベクタベースアドレス (EL3) |
|
例外シンドロームレジスタ (EL1) |
|
例外シンドロームレジスタ (EL2) |
|
例外シンドロームレジスタ (EL3) |
|
システム制御レジスタ (EL1) |
|
システム制御レジスタ (EL2) |
|
システム制御レジスタ (EL3) |
|
セキュア設定レジスタ |
|
モニタデバッグシステム制御レジスタ |
|
カレントキャッシュサイズIDレジスタ |
|
キャッシュレベルIDレジスタ |
|
キャッシュサイズ選択レジスタ |
|
割り込みステータスレジスタ |
|
命令フォールトステータスレジスタ |
POS
コマンドのみで指定可能なレジスタ一覧
レジスタ名 |
説明 |
---|---|
|
アドレス変換実行 (Stage 1 and 2 EL0 Read) |
|
アドレス変換実行 (Stage 1 and 2 EL0 Write) |
|
アドレス変換実行 (Stage 1 and 2 EL1 Read) |
|
アドレス変換実行 (Stage 1 and 2 EL1 Write) |
|
アドレス変換実行 (Stage 1 and 2 EL2 Read) |
|
アドレス変換実行 (Stage 1 and 2 EL2 Write) |
|
アドレス変換実行 (Stage 1 and 2 EL3 Read) |
|
アドレス変換実行 (Stage 1 and 2 EL3 Write) |
|
アドレス変換実行 (Stage 1 EL0 Read) |
|
アドレス変換実行 (Stage 1 EL0 Write) |
|
アドレス変換実行 (Stage 1 EL1 Read) |
|
アドレス変換実行 (Stage 1 EL1 Write) |
|
アドレス変換実行 (Stage 1 EL2 Read) |
|
アドレス変換実行 (Stage 1 EL2 Write) |
|
アドレス変換実行 (Stage 1 EL3 Read) |
|
アドレス変換実行 (Stage 1 EL3 Write) |
メモリのダンプ (D
コマンド)
概要
メモリ内容を指定されたビット幅の単位で連続的に表示します。主にDRAMなどのメモリに対して使用します。 同一のメモリアドレスに対して複数回アクセスする可能性があるため、I/O空間に対しては デバッグ中のI/Oアクセス を使用してください。
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
- D [アドレスS][, アドレスE][, カウント][, {/H|/D|/O}][, /P][, /アクセスポート[, /S|/NS]]
Byte 単位でメモリの内容をダンプします。
- DB [アドレスS][, アドレスE][, カウント][, {/H|/D|/O}][, /P][, /アクセスポート[, /S|/NS]]
Byte 単位でメモリの内容をダンプします。
- DW [アドレスS][, アドレスE][, カウント][, {/H|/D|/O}][, /P][, /アクセスポート[, /S|/NS]]
Word (16-bit) 単位でメモリの内容をダンプします。
- DD [アドレスS][, アドレスE][, カウント][, {/H|/D|/O}][, /P][, /アクセスポート[, /S|/NS]]
Double Word (32-bit) 単位でメモリの内容をダンプします。
- DQ [アドレスS][, アドレスE][, カウント][, {/H|/D|/O}][, /P][, /アクセスポート]
QuadWord (64-bit) 単位でメモリの内容をダンプします。
- DA [アドレスS][, アドレスE][, /アクセスポート[, /S|/NS]]
ASCII 文字としてメモリの内容をダンプします。
- DS [アドレスS][, アドレスE][, /アクセスポート[, /S|/NS]]
4-byte (short float) としてメモリの内容をダンプします。
- DL [アドレスS][, アドレスE][, /アクセスポート]
8-byte (long float) としてメモリの内容をダンプします。
使用例
メモリの内容をダンプ:
>d 100, 107f↓
00001000 07 8B 56 08 8B 46 06 05 04 00 83 D2 00 52 50 9A .儀.祈..
00001010 30 00 9A 72 83 C4 04 8B 5E 8E 89 57 06 89 47 04 0.嗷ζ..
00001020 33 C0 50 B8 0F 00 50 8D 46 98 50 8D 5E 82 9A 2D 3タPク..P
00001030 01 E1 7E 9A CD 01 E1 7E 9A 07 00 C1 7E 83 C4 0E .痿塹.痿
00001040 EB 5F C7 46 FC 0A 00 FF 76 08 FF 76 06 8D 86 78 ・ヌF...x
00001050 FF 50 9A D2 01 CB 7D 83 C4 06 33 C0 50 B8 0F 00 .P墺.ヒ}.
00001060 50 8D 46 98 50 8D 86 78 FF 50 9A 87 01 CB 7D 83 P孝榔号.
00001070 C4 08 EB 2D 3D 42 00 75 03 E9 97 FD 3D 44 00 75 ト..-=B..
>dw 1000, /d↓
00001000 35591 2134 18059 1286 .儀.祈..
>ds 1000, 1010↓
00001000 07 8B 56 08 8B 46 06 05 1.872503839874758e-284
00001008 04 00 83 D2 00 52 50 9A -6.145418052632678e-182
00001010 30 00 9A 72 83 C4 04 8B -1.383122489480937e-255
>da 5b000000, 5b00001f↓
5B000000 \r\n
5B000002 #include "dry.h"\r\n
5B000014 \r\n
5B000016 #define LOOPS 1750000\r\n
>
指定可能なオプション
アドレスS
と アドレスE
は、それぞれ先頭アドレスと終端アドレスです。
アドレスS
が省略された場合には、前回 D
コマンドで表示した次のアドレスから表示します。アドレスE
が省略された場合には、1行分の表示をします。
カウント
は1行に表示するデータの個数です。
カウントが省略された場合には、16、8、4のいずれかの個数 (1行に表示出来る範囲) 表示されます。
/H
を指定すると16進表示、 /D
を指定すると10進表示、 /O
を指定すると8進表示です。
/H
、 /D
、 /O
の表示データの基数指定を省略した場合には前回の D
コマンドの表示基数で表示します。なお、PARTNER起動時の D
コマンドの表示基数は16進数です。
/P
のを指定すると、MMU 無効の状態でメモリ内容を表示します。
/アクセスポート
の指定は以下の表のいずれかを指定します。
ターゲットのデバッグシステムがCoreSightの場合にDAPのアクセスポートを経由してメモリをアクセスする場合の設定です。
アクセスポート |
動作 |
---|---|
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
Cortex-Mの空間をアクセスするためのAHB-APです。 |
|
MEM-APのアクセスポート番号を |
/S
, /NS
は、セキュリティ属性を指定します。
アクセスポートに /AHB
または /AXI
指定をした場合のみにこのオプションを指定できます。
|
セキュア転送を行います。 |
|
非セキュア転送を行います。 |
ファイルからターゲットメモリに読み込む (RD
コマンド)
概要
ファイルの内容をターゲットメモリに書き込む。
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
- RD ファイル名[, アドレス][, ファイルオフセット, サイズ][, /アクセスポート]
Byte 単位でメモリの内容をダンプします。
指定されたファイルのフォーマットを確認し、モトローラS形式もしくはバイナリでターゲット システムのメモリに読み込みます。バイナリファイルの場合はアドレス指定が必須です。
バイナリファイルを読み込む場合は、ファイルオフセット
, サイズ
を指定することで、
ファイル内の任意の位置にデータを指定されたバイト数だけ読み込むことができます。
指定されたサイズよりファイル長が短い場合は、EOFまでを読み込みます。
また、特殊シンボル __IO_BYTES__
には読み込んだバイト数が設定されます。
マクロ機能と組み合わせて、ファイルデータをターゲットシステム上でシーケンシャルに処理する
場合などに利用できます。
使用例
test.dat
の内容をターゲットメモリの 0xf40000000
番地からの領域に書き込む:
>rd c:\work\test.dat, f40000000↓
Read c:\work\test.dat
40000000 - 400FFFFF
Complete
Read memory : 3.328 sec 1024 Kbyte (307 Kbyte/sec)
>
使用可能なオプション
ファイル名
には、読み込むファイル名を指定します。絶対パスもしくは、カレントディレクトリからの相対パス指定。
アドレス
は、データを書き込むターゲットメモリの先頭アドレスを指定します。バイナリファイルを読み込む場合には
指定が必須です。
ファイルオフセット, サイズ
ファイル内の任意の位置のデータ (ファイルオフセット
) を指定されたバイト数 (サイズ
) だけ
読み込む場合に指定します。
/アクセスポート
の指定は以下の表のいずれかを指定します。
ターゲットのデバッグシステムがCoreSightの場合にDAPのアクセスポートを経由してメモリをアクセスする場合の設定です。
アクセスポート |
動作 |
---|---|
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
Cortex-Mの空間をアクセスするためのAHB-APです。 |
|
MEM-APのアクセスポート番号を |
ターゲットメモリのデータをファイルに書き出す (WR
コマンド)
概要
ターゲットメモリのデータをファイルに書き出す
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
- WR ファイル名, アドレスS, アドレスE[, /アクセスポート]
先頭アドレスと終端アドレスを指定してメモリのデータを書き出します。
- WR ファイル名, アドレスS, /Lサイズ[, /アクセスポート]
先頭アドレスとサイズを指定してメモリのデータを書き出します。
ファイル名の拡張子によって、バイナリ、モトローラSなどのファイル形式を選択し、メモリ内容を選択したファイル形式でファイルに書き出します。
使用例
ターゲットメモリの 0xf40000000
番地から 0xf40100000
番地までのデータを test.dat
に書き込む:
>wr c:\work\test.dat, f40000000, f40100000↓
Write c:\work\test.dat
40000000 - 40100000
Write memory : 3.407 sec 1024 Kbyte (300 Kbyte/sec)
>
ターゲットメモリの 0xf40000000
番地から 0x100000
バイトのデータを test.dat
に書き込む:
>wr c:\work\test.dat, f40000000, /L0x100000↓
Write c:\work\test.dat
40000000 - 400FFFFF
Write memory : 3.406 sec 1024 Kbyte (300 Kbyte/sec)
>
使用可能なオプション
ファイル名
には、読み込むファイル名を指定します。絶対パスもしくは、カレントディレクトリからの相対パス指定。
アドレスS
は、ターゲットメモリの先頭アドレスを指定します。 アドレスE
は、終端アドレスを指定します。
書き出すデータのサイズを指定する場合には /Lサイズ
を指定します。
/アクセスポート
の指定は以下の表のいずれかを指定します。
ターゲットのデバッグシステムがCoreSightの場合にDAPのアクセスポートを経由してメモリをアクセスする場合の設定です。
アクセスポート |
動作 |
---|---|
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
Cortex-Mの空間をアクセスするためのAHB-APです。 |
|
MEM-APのアクセスポート番号を |
シンボルダンプ (X
コマンド)
概要
現在登録されているグローバルシンボルのシンボル名とその内容を表示します。
使い方
使用できるコマンドを以下に示します。
- X
すべてのシンボルを表示します。
- X シンボル名
シンボル名指定されたシンボルを表示します。シンボル名には
*
と?
のワイルドカード (Windowsのワイルドカードと同機能) が利用ができます。
使用例
全シンボルの表示:
>x↓
00F00002 _main
00F000BE __chkstk
00F000D2 __astart
.
.
>
_ma?n
にマッチするシンボルの表示:
>x _ma?n↓
00F00002 _main
>
MMUに関連するレジスタの表示、アドレス変換情報表示 (MMU
コマンド)
概要
MMUレジスタ値の表示/変更
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
- MMU
MMU (MPU) のすべてのレジスタとフラグ内容を表示します。
- MMU {/ON|/OFF}
MMU (MPU) /IDC/ライトバッファ機能をON/OFFします。
- MMU /S
MMU (MPU) ステータス (フォールトステータス等) を表示します。
- MMU /T
TCMの状態を表示します。
- MMU アドレスS[, アドレスE]
仮想アドレスを物理アドレスに変換し、ページディスクリプタ情報と共に表示します。 (MMUの場合のみ) アドレス範囲を指定した場合、同一属性で連続的なアドレス変換が 行われる変換テーブルについては表示を省略し、指定アドレス範囲内で情報の変化点 のみ表示します。
- MMU /L2C[, {ON|OFF|CLEAN|INVALID|C&I}]
L2キャッシュの状態表示や制御を行います。第2パラメータによって以下のように 動作します。この機能が使用できるのは、ARM製のキャッシュコントローラARML2xxが 使われており、CFGファイルで
CFG_ARM_L210
またはCFG_ARM_L2C
の設定が行われ ている場合です。 Cortex-A8やA15のように外部のキャッシュコントローラがない CPUでは使用できません。- 省略
L2キャッシュの状態表示
ON
L2キャッシュON
OFF
L2キャッシュOFF
CLEAN
L2キャッシュ全体のクリーン
INVALID
L2キャッシュ全体のインバリデート
C&I
L2キャッシュ全体のクリーンとインバリデート
- MMU /{C1|C3|C5|C6} = レジスタ値
デバッガが管理するユーザステート時のCP15の制御レジスタの設定。(AArch32ステート時に有効)
C1
SCTLR (System Control Register,
p15, 0, c1, c0, 0
)C3
DACR (Domain Access Control Register,
p15, 0, c3, 0
)C5
DFSR (Data Fault Status Register,
p15, 0, c5, 0
)C6
DFAR (Data Fault Address Register,
p15, 0, c6, 0
)
これらのレジスタは、ブレーク時にデバッガが保存しその値を、MMU
コマンドで表示しています。
また、再実行 (G
コマンド) には、保存した値を書き戻します。
これらのレジスタは、デバッガのブレーク状態で一時的に書き換えられています。
デバッガコマンドでユーザ状態のレジスタ値を書き換える必要がある場合にこのコマンドを使用します。
PIC
/POC
コマンドでもCP15制御レジスタをアクセスできますが、コマンド発行時点でレジスタの読み書き行います。
また、再実行 (G
コマンド) には MMU
コマンドで設定した値に書き戻されることに注意してください。
(PIC
/POC
コマンド参照)
使用例
Cortex-A9 (AArch32):
>mmu↓
MMU : ON A-fault : DISABLE
D-Cache : ENABLE SW : OFF
Z : ENABLE I-Cache : ENABLE
Vect : Low HA : DISABLE
EE : OFF NMFI : OFF
TEX-remap : DISABLE AFE : DISABLE
TE : ARM
Vector Base = 80000000
Control Reg(C1) = 00C5187D TTB Control = 00000000
TTBR0(C2) = 80018000 TTBR1 = 00000000
Dom. Acc. CTRL(C3) = (15)CCCC (11)CCCC (7)CCCC (3)CCCC(0)
FCSE PID(C13) = 00000000
Context ID(C13) = 3FFCA200
>mmu 8000FDA0↓
8000FDA0 -> 8000FDA0 nG=0 S=0 XN=0 AP=11(URW) Domain=0:Client TEX=000 C=1 B=1 NS=0 Section
>mmu/s↓
Fault status = 0000(none)
Domain = 12:Client Fault address = BFC6F5E9
I.Fault Status = 1111(Permission Page)
>mmu/off↓
MMU/IDC/Write buffer OFF
>mmu↓
MMU : OFF A-fault : DISABLE
D-Cache : DISABLE SW : OFF
Z : ENABLE I-Cache : DISABLE
Vect : Low HA : DISABLE
EE : OFF NMFI : OFF
TEX-remap : DISABLE AFE : DISABLE
TE : ARM
Vector Base = 80000000
Control Reg(C1) = 00C50870 TTB Control = 00000000
TTBR0(C2) = 80018000 TTBR1 = 00000000
Dom. Acc. CTRL(C3) = (15)CCCC (11)CCCC (7)CCCC (3)CCCC(0)
FCSE PID(C13) = 00000000
Context ID(C13) = 3FFCA200
>mmu /c3=0x5f05555a↓
>mmu↓
MMU : OFF A-fault : DISABLE
D-Cache : DISABLE SW : OFF
Z : ENABLE I-Cache : DISABLE
Vect : Low HA : DISABLE
EE : OFF NMFI : OFF
TEX-remap : DISABLE AFE : DISABLE
TE : ARM
Vector Base = 80000000
Control Reg(C1) = 00C50870 TTB Control = 00000000
TTBR0(C2) = 80018000 TTBR1 = 00000000
Dom. Acc. CTRL(C3) = (15)CCMM (11)FFCC (7)CCCC (3)CCRR(0)
FCSE PID(C13) = 00000000
Context ID(C13) = 3FFCA200
>
Cortex-A57 (AArch64):
>mmu↓
SCTLR_EL1 : 0x34D5D91D
Current EL: EL1
MMU : ON Align Check : OFF
Cache : ON SA Check : ON
SA0 Check : ON CP15BEN : OFF
T32EE : OFF ITD : OFF
SED : ON UMA : OFF
I-Cache : ON DZE : Allowed
UCT : ON nTWI : ON
nTWE : ON WXN : OFF
E0E : LITTLE EE : LITTLE
UCI : ON
TCR_EL1 : 0x00000034B5193519
TTBR0_EL1 : 0x00010000539D2000
TTBR1_EL1 : 0x0000000048B81000
>mmu FFFFFFC0000921B8↓
0xFFFFFFC0000921B8 -> 0x00000000480921B8 nG=0 AF=1 SH=3 NS=1 XN=1 PXN=0 B=1 C=1 Block(2MB)
>mmu /S↓
Exception Syndrome = 0x56000000
Exception class: SVC instruction execution
Instruction length: 32-bit
FAR_EL1 = 0x00000055A7FDB210
IFSR32_EL2 = 0x00000000FFFFFFFF
>mmu /OFF↓
MMU/IDC/Write buffer OFF
>mmu↓
SCTLR_EL1 : 0x34D5D918
Current EL: EL1
MMU : OFF Align Check : OFF
Cache : OFF SA Check : ON
SA0 Check : ON CP15BEN : OFF
T32EE : OFF ITD : OFF
SED : ON UMA : OFF
I-Cache : ON DZE : Allowed
UCT : ON nTWI : ON
nTWE : ON WXN : OFF
E0E : LITTLE EE : LITTLE
UCI : ON
TCR_EL1 : 0x00000034B5193519
TTBR0_EL1 : 0x00010000539D2000
TTBR1_EL1 : 0x0000000048B81000
>mmu /L2C↓
Control = 00000010
Extended Control = 00000010
Aux Control = 00000010
Intc Base = 00000010
c0, Cache Type Reg = 0x00000000
c0, Cache Level ID = 0x00000000
c0, Cache Size ID(L1D) = 0x00000000
c0, Cache Size ID(L1I) = 0x00000000
c0, Cache Size ID(L2D) = 0x00000000
>
スナップショットファイルの作成 (WRSSHOT
コマンド)
概要
問題の調査のためのスナップショットファイルを取得する際に使用するコマンドです。
レジスタなどのCPU内部資源、アドレス範囲で指定されたメモリ内容、デバッグ情報
ファイル名およびヒストリデータ (ヒストリデータがある場合) をスナップショットファイルとして
ファイルに書き出します。ファイル名の拡張子を省略した場合は、.sshot
の拡張子がつけられます。
使い方
使用できるコマンドを以下に示します。なお、書式中にある []
内のオプションは省略可能です。
- WRSSHOT ファイル名, アドレス範囲[, /RS][, /RT][, /アクセスポート]
MMU (MPU) ステータス (フォールトステータス等) を表示します。
アドレス範囲
は、複数のアドレス空間 (最大32領域) を指定可能です。
MMUの機能で、アドレス変換を利用している場合は、物理メモリのアドレスを指定してください。
このとき、必ずページテーブルの領域も含めてください。取得したメモリ内容にページテーブルが
含まれていない場合、正しいメモリの内容が表示出来ない可能性があります。
使用例
アドレス範囲 0x0
~0xfffff
と 0x400000
~0x5fffff
をスナップショット (system_rrr.sshot
):
>wrsshot system_err, 0x0, 0x000fffff, 0x00400000, 0x005fffff↓
Write c:\gcc4\arm\Samples\arm11\system_err.sshot
debug info. file : c:\gcc4\arm\Samples\arm11\dhrystone.out
00000000 - 000FFFFF
00400000 - 005FFFFF
>
使用可能なオプション
/RS
スナップショットファイル中にデバッグ情報を保存しません。
/RT
スナップショットファイル中にトレースデータを保存しません。
/アクセスポート
の指定は以下の表のいずれかを指定します。
ターゲットのデバッグシステムがCoreSightの場合にDAPのアクセスポートを経由してメモリをアクセスする場合の設定です。
アクセスポート |
動作 |
---|---|
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
システムバスをアクセスするためのAHB/AXI-APです。 |
|
Cortex-Mの空間をアクセスするためのAHB-APです。 |
|
MEM-APのアクセスポート番号を |
rootdir設定コマンド (ROOTDIR
コマンド)
概要
アプリケーションのパス名を解決します
使い方
使用できるコマンドを以下に示します。
- ROOTDIR
現在設定されているルートディレクトリのパスを表示します。
- ROOTDIR パス
ルートディレクトリパスを設定します。 アプリケーションのデバッグ情報を解決するために、ルートディレクトリのパスを指定します。 Windows から見えるルートファイルシステムのルートディレクトリへのパスを指定してください。
使用例
ルートディレクトリが /opt/kmc/kzm-arm11/root
で Z:
ドライブに /opt
をマウントした場合:
rootdir z:\kmc\kzm-arm11\root