6.4 アドレス空間について

DS-5 デバッガで、アドレス空間接頭辞を使用して、異なるアドレス空間を参照できます。これらのアドレス空間接頭辞をさまざまなデバッグ処理に使用して、以下のようなことを実行できます。

  • 特定のメモリ空間にブレークポイントを設定する

  • メモリの読み出しと書き込みを行う

  • 特定のメモリ空間に関連付けられたシンボルをロードする

DS-5 デバッガでは、これらの接頭辞を実行が停止した現在のメモリ空間を報告するときにも使用します。

注:

アドレス空間はターゲットごとに異なるものを使用できます。アドレス空間を使用できるかどうかは、セキュリティ拡張機能など、どのアーキテクチャ機能が実装されているのかで決まります。

ARMv7 ベースプロセッサのアドレス空間

ARMv7 ベースプロセッサに、以下のアドレス空間接頭辞を使用できる可能性があります。

  • S: これはセキュアアドレス空間に対応します。
  • H: これはハイパーバイザアドレス空間に対応します。
  • N: これは非セキュアアドレス空間に対応します。
  • SP: これはセキュアワールド物理メモリに対応します。
  • NP: これは非セキュアワールド物理メモリに対応します。

以下は、ARMv7 ベースプロセッサにアドレス空間を使用できる DS-5 デバッガコマンドの例です。

  • break S:main

  • x N:0x80000000

  • add-symbol-file foo.axf SP:0

実行が停止すると、DS-5 デバッガは現在のメモリ空間を報告します。以下に例を示します。

  • Execution stopped in SVC mode at S:0x80000000

  • Execution stopped in SYS mode at breakpoint 1: S:0x80000BA8

ARMv8 ベースプロセッサのアドレス空間

AArch64 実行状態にある場合、ARMv8 ベースプロセッサに、以下のアドレス空間接頭辞を使用できる可能性があります。

  • EL3: これは EL3 変換状況に対応します。これは、セキュアアドレス空間です。
  • EL2: これは EL2 変換状況に対応します。これは、非セキュアアドレス空間です。
  • EL1S: これはセキュア EL1 とセキュア EL0 変換状況に対応します。
  • EL1N: これは非セキュア EL1 と非セキュア EL0 変換状況に対応します。
  • SP: これはセキュアワールド物理メモリに対応します。
  • NP: これは非セキュアワールド物理メモリに対応します。

AArch32 実行状態にある場合、ARMv8 ベースプロセッサに、以下のアドレス空間接頭辞を使用できる可能性があります。

  • S: これは EL3、セキュア EL1、およびセキュア EL0 変換状況に対応します。
  • H: これは EL2 変換状況に対応します。これは、非セキュアアドレス空間です。
  • N: これは非セキュア EL1 と非セキュア EL0 変換状況に対応します。
  • SP: これはセキュアワールド物理メモリに対応します。
  • NP: これは非セキュアワールド物理メモリに対応します。

以下は、ARMv8 ベースプロセッサにアドレス空間を使用できる DS-5 デバッガコマンドの例です。

  • break EL1N:main

  • x EL1S:0x80000000

  • add-symbol-file foo.axf SP:0

実行が停止すると、DS-5 デバッガは現在のメモリ空間を報告します。以下に例を示します。

  • Execution stopped in EL3h mode at: EL3:0x0000000080001500

  • Execution stopped in EL1h mode at breakpoint 2.2: EL1N:0x0000000080000F6C

コアが例外レベル EL3 で停止した場合、EL1/EL0 での変換状況が、セキュアアクセス向けに設定されているのかそれとも非セキュアアクセス向けに設定されているのかを、デバッガが確信をもって判断できません。これは、セキュアワールドと非セキュアワールドを切り替える際に、セキュアモニタが実行時にこれを変更する可能性があるからです。ソフトウェアブレークポイントを EL1S: アドレスまたは EL1N: アドレスに設定するなど、EL3 からのメモリアクセスにより破損やターゲットのロックアップが生じる可能性があります。

EL1 と EL0 例外レベルのメモリ空間の接頭辞は同じです。これは、EL0 と EL1 の両方に同じ変換テーブルが使用されているためです。これらの変換テーブルは、セキュア EL1/EL0 または非セキュア EL1/EL0 のいずれかのために使用されます。そのため、AArch64 状態で、コアがセキュア状態で EL0 で停止した場合、デバッガは Execution stopped in EL0h mode at: EL1S:0x0000000000000000 と報告します。

注:

ここで報告された EL1S: は、EL0 と EL1 に共通のメモリ空間を示しています。例外レベルは示していません。
非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.