Partnerコマンドウインドウ

現在 Partnerコマンドウインドウでサポートされているコマンド

コマンド

説明

PI

指定幅でメモリをリードします。主にI/O空間に対して使用

PO

指定幅でメモリをライトします。主にI/O空間に対して使用

PIS

ARMv8プロセッサでシステムレジスタのリードに使用

POS

ARMv8プロセッサでシステムレジスタのライトに使用

D

メモリダンプ。I/Oメモリに対しては使用不可

WR

ターゲットメモリをリードし、その内容をファイル化

RD

ファイル内容をターゲットメモリに対して書き込み

X

シンボルダンプ

MMU

MMUに関連するレジスタの表示、アドレス変換など

WRSSHOT

スナップショットファイルの作成

VER

デバッガのバージョン表示

ROOTDIR

rootdir設定コマンド


PARTNERコマンドウインドウの起動

デバッグ中に、メニューの [デバッグ]-[ウィンドウ]-[PARTNER コマンドウィンドウ] をクリックすると Partner Command Window が表示されます。このウィンドウ内で、PI/POコマンド を実行することにより、 I/O空間へのアクセスが可能になります。

../_images/partner-cmd-window.png

ウィンドウ内で実行されたコマンドの履歴は、ウィンドウ上部の矢印をクリックするか、または 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
>

使用可能なレジスタ名

PIS/POSコマンドで指定可能なレジスタ一覧

レジスタ名

説明

PAR_EL1

物理アドレスレジスタ。アドレス変換結果が格納されている

FAR_EL1

フォールトアドレスレジスタ (EL1)

FAR_EL2

フォールトアドレスレジスタ (EL2)

FAR_EL3

フォールトアドレスレジスタ (EL3)

MPIDR_EL1

マルチプロセッサアフィニティレジスタ

TTBR0_EL1

アドレス変換テーブルベースレジスタ0(EL1)

TTBR0_EL2

アドレス変換テーブルベースレジスタ0(EL2)

TTBR0_EL3

アドレス変換テーブルベースレジスタ0(EL3)

TTBR1_EL1

アドレス変換テーブルベースレジスタ1

RVBAR_EL1

リセットベクタベースアドレス(EL1)

RVBAR_EL2

リセットベクタベースアドレス(EL2)

RVBAR_EL3

リセットベクタベースアドレス(EL3)

ESR_EL1

例外シンドロームレジスタ(EL1)

ESR_EL2

例外シンドロームレジスタ(EL2)

ESR_EL3

例外シンドロームレジスタ(EL3)

SCTLR_EL1

システム制御レジスタ(EL1)

SCTLR_EL2

システム制御レジスタ(EL2)

SCTLR_EL3

システム制御レジスタ(EL3)

SCR_EL3

セキュア設定レジスタ

MDSCR_EL1

モニタデバッグシステム制御レジスタ

CCSIDR_EL1

カレントキャッシュサイズIDレジスタ

CLIDR_EL1

キャッシュレベルIDレジスタ

CSSELR_EL1

キャッシュサイズ選択レジスタ

ISR_EL1

割り込みステータスレジスタ

IFSR32_EL2

命令フォールトステータスレジスタ

POSコマンドのみで指定可能なレジスタ一覧

レジスタ名

説明

AT_S12E0R

アドレス変換実行 (Stage 1 and 2 EL0 Read)

AT_S12E0W

アドレス変換実行 (Stage 1 and 2 EL0 Write)

AT_S12E1R

アドレス変換実行 (Stage 1 and 2 EL1 Read)

AT_S12E1W

アドレス変換実行 (Stage 1 and 2 EL1 Write)

AT_S12E2R

アドレス変換実行 (Stage 1 and 2 EL2 Read)

AT_S12E2W

アドレス変換実行 (Stage 1 and 2 EL2 Write)

AT_S12E3R

アドレス変換実行 (Stage 1 and 2 EL3 Read)

AT_S12E3W

アドレス変換実行 (Stage 1 and 2 EL3 Write)

AT_S1E0R

アドレス変換実行 (Stage 1 EL0 Read)

AT_S1E0W

アドレス変換実行 (Stage 1 EL0 Write)

AT_S1E1R

アドレス変換実行 (Stage 1 EL1 Read)

AT_S1E1W

アドレス変換実行 (Stage 1 EL1 Write)

AT_S1E2R

アドレス変換実行 (Stage 1 EL2 Read)

AT_S1E2W

アドレス変換実行 (Stage 1 EL2 Write)

AT_S1E3R

アドレス変換実行 (Stage 1 EL3 Read)

AT_S1E4W

アドレス変換実行 (Stage 1 EL3 Write)


メモリのダンプ (Dコマンド)

概要

メモリ内容のダンプ表示

使い方

使用できるコマンドを以下に示します。なお、書式中にある [] 内のオプションは省略可能です。

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

システムバスをアクセスするためのAHB/AXI-APです。

/AHB

システムバスをアクセスするためのAHB/AXI-APです。

/CTEXM

Cortex-Mの空間をアクセスするためのAHB-APです。

/MEMAPn

MEM-APのアクセスポート番号を /MEMAP1 の様に指定します。 AHB-APやAXI-AP が複数存在する場合に指定します。

/S , /NS は、セキュリティ属性を指定します。 アクセスポートに/AHBまたは/AXI指定をした場合のみにこのオプションを指定できます。

/S

セキュア転送を行います。

/NS

非セキュア転送を行います。


ファイルからターゲットメモリに読み込む (RDコマンド)

概要

ファイルの内容をターゲットメモリに書き込む。

使い方

使用できるコマンドを以下に示します。なお、書式中にある [] 内のオプションは省略可能です。

RD ファイル名[,アドレス][,Fileオフセット,バイト][,/アクセスポート]

Byte 単位でメモリの内容をダンプします。

指定されたファイルのフォーマットを確認し、モトローラS形式もしくはバイナリでターゲット システムのメモリに読み込みます。バイナリファイルの場合はアドレス指定が必須です。

バイナリファイルを読み込む場合は、Fileオフセット,バイトを指定することで、 ファイル内の任意の位置にデータを指定されたバイト数だけ読み込むことができます。 指定されたサイズよりファイル長が短い場合は、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)
>

使用可能なオプション

ファイル名 には、読み込むファイル名を指定します。絶対パスもしくは、カレントディレクトリからの相対パス指定。

アドレス は、データを書き込むターゲットメモリの先頭アドレスを指定します。バイナリファイルを読み込む場合には 指定が必須です。

Fileオフセット,サイズ ファイル内の任意の位置のデータ(Fileオフセット)を指定されたバイト数(サイズ)だけ 読み込む場合に指定します。

/アクセスポート の指定は以下の表のいずれかを指定します。 ターゲットのデバッグシステムがCoreSightの場合にDAPのアクセスポートを経由してメモリをアクセスする場合の設定です。

アクセスポート

動作

/AHB

システムバスをアクセスするためのAHB/AXI-APです。

/AHB

システムバスをアクセスするためのAHB/AXI-APです。

/CTEXM

Cortex-Mの空間をアクセスするためのAHB-APです。

/MEMAPn

MEM-APのアクセスポート番号を /MEMAP1 の様に指定します。 AHB-APやAXI-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

システムバスをアクセスするためのAHB/AXI-APです。

/AHB

システムバスをアクセスするためのAHB/AXI-APです。

/CTEXM

Cortex-Mの空間をアクセスするためのAHB-APです。

/MEMAPn

MEM-APのアクセスポート番号を /MEMAP1 の様に指定します。 AHB-APやAXI-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

システムバスをアクセスするためのAHB/AXI-APです。

/AHB

システムバスをアクセスするためのAHB/AXI-APです。

/CTEXM

Cortex-Mの空間をアクセスするためのAHB-APです。

/MEMAPn

MEM-APのアクセスポート番号を /MEMAP1 の様に指定します。 AHB-APやAXI-AP が複数存在する場合に指定します。


rootdir設定コマンド (ROOTDIRコマンド)

概要

アプリケーションのパス名を解決します

使い方

使用できるコマンドを以下に示します。

ROOTDIR

現在設定されているルートディレクトリのパスを表示します。

ROOTDIR <PATH>

ルートディレクトリパスを設定します。 アプリケーションのデバッグ情報を解決するために、ルートディレクトリのPATHを指定します。 Windows から見えるルートファイルシステムのルートディレクトリへのパスを指定してください。

以下は、コマンドの使用例です。

ルートディレクトリが/opt/kmc/kzm-arm11/root でZ: ドライブに/opt をマウントした場合:

rootdir z:\kmc\kzm-arm11\root