6.3 仮想メモリと物理メモリについて

メモリ管理ユニット(MMU)を含むプロセッサは、メモリを 2 つの方法(仮想メモリと物理メモリ)で表示できます。仮想アドレスは MMU 内のアドレス変換前のアドレスで、物理アドレスは変換後のアドレスです。

通常、デバッガがメモリにアクセスする場合は仮想アドレスを使用します。しかし MMU が無効になっている場合は、マッピングは一様で、仮想アドレスと物理アドレスは同じものになります。

デバッガに物理アドレスを使用させるには、アドレスに接頭辞 P: を付けます。

例えば、

P:0x8000 
P:0+main は main() のアドレスオフセットの付いた物理アドレスを作成します。

プロセッサが TrustZone テクノロジも含む場合、セキュア ワールドとノーマル ワールドにアクセスできます。それぞれに独自で別々の仮想および物理アドレス マッピングが行われます。この場合、アドレス接頭辞 P: は使用できません。その代わり、通常環境の物理アドレスには NP: を、セキュアワールドの物理アドレスには SP: を使用する必要があります。

注:

  • ARMv6 より前の ARM® アーキテクチャに準拠するプロセッサは、この方法による物理アドレスの設定をサポートしていません。これには ARM7 ファミリと ARM9 ファミリのプロセッサのほとんどが含まれます。
  • 物理アドレスへのアクセスはすべての操作で有効になっているわけではありません。たとえば、 ARM ハードウェアは物理アドレス経由でのブレークポイントの設定はサポートしていません。

    物理アドレス経由でメモリにアクセスする場合は、キャッシュはフラッシュできません。このため、メモリを物理アドレスで表示するか仮想アドレスで表示するかによって、結果が異なる場合があります(同じメモリアドレスを処理すると仮定して)。

非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.