非機密扱い | ![]() | ARM DUI0446ZJ | ||
| ||||
ホーム > 組み込みシステムのデバッグ > 仮想メモリと物理メモリについて |
メモリ管理ユニット(MMU)を含むプロセッサは、メモリを 2 つの方法(仮想メモリと物理メモリ)で表示できます。仮想アドレスは MMU 内のアドレス変換前のアドレスで、物理アドレスは変換後のアドレスです。
通常、デバッガがメモリにアクセスする場合は仮想アドレスを使用します。しかし MMU が無効になっている場合は、マッピングは一様で、仮想アドレスと物理アドレスは同じものになります。
デバッガに物理アドレスを使用させるには、アドレスに接頭辞 P:
を付けます。
例えば、
P:0x8000 P:0+main は main() のアドレスオフセットの付いた物理アドレスを作成します。
プロセッサが TrustZone テクノロジも含む場合、セキュア ワールドとノーマル ワールドにアクセスできます。それぞれに独自で別々の仮想および物理アドレス マッピングが行われます。この場合、アドレス接頭辞 P:
は使用できません。その代わり、通常環境の物理アドレスには NP:
を、セキュアワールドの物理アドレスには SP:
を使用する必要があります。
物理アドレスへのアクセスはすべての操作で有効になっているわけではありません。たとえば、 ARM ハードウェアは物理アドレス経由でのブレークポイントの設定はサポートしていません。
物理アドレス経由でメモリにアクセスする場合は、キャッシュはフラッシュできません。このため、メモリを物理アドレスで表示するか仮想アドレスで表示するかによって、結果が異なる場合があります(同じメモリアドレスを処理すると仮定して)。