6.11 TrustZone 対応ターゲットのデバッグについて

ARM TrustZone® は、複数の ARM プロセッサに組み込まれているセキュリティ技術です。例えば、Cortex™-A クラスプロセッサが該当します。メモリや周辺機器などの実行とリソースをセキュアワールドとノーマルワールドで分けます。

TrustZone をサポートするターゲットに接続するときに、セキュアワールドへのアクセスが許可されている場合、デバッガはセキュアワールドと通常環境の両方へのアクセスを提供します。この場合、すべてのアドレスおよびアドレスに関連する操作は、1つの世界に固有のものです。つまり、アドレスまたは式が必要なコマンドを使用する場合は、接頭辞を付けて適用先の環境も指定する必要があります。例えば、「N:0x1000 」または「S:0x1000 」と指定します。

各パラメータには以下の意味があります。

N:

通常環境メモリのアドレスの場合。

S:

セキュアワールドメモリのアドレスの場合

現在のワールドでアドレスを指定する場合は、接頭辞を省略できます。

イメージおよびデバッグ情報をロードする場合、これらを適切なワールドにロードすることが重要です。デバッグランチャパネルでは、イメージおよびデバッグ情報のアドレスのワールドを直接指定することはできません。そのため、これを行うには代わりにスクリプトコマンドを使用する必要があります。デバッガランチャパネルの[Debugger]タブには、デバッグ初期化スクリプト、または接続時に任意のデバッガコマンドのセットを実行するオプションが用意されています。コマンド例には以下のものがあります。

  • イメージのみをノーマルワールドにロードする(イメージ内のアドレスにゼロオフセットを適用)

    load myimage.axf N:0
  • デバッグ情報のみをセキュアワールドにロードする(デバッグ情報内のアドレスにゼロオフセットを適用)

    file myimage.axf S:0
  • イメージおよびデバッグ情報をセキュアワールドにロードする(アドレスにゼロオフセットを適用)

    loadfile myimage.axf S:0

デバッグシンボルのロードやブレークポイントの設定といった操作をノーマルワールドおよびセキュアワールドの両方に適用する必要がある場合は、ノーマルワールドに 1 回、セキュアワールドに 1 回、合計 2 回の操作を実行する必要があります。

$PC などのレジスタにワールドはありません。現在のワールドにはないレジスタ内のアドレスからメモリの内容にアクセスするには、N:0+$PC という式を使用できます。一般に、デバッグ情報を含む式はロードされるときにワールドに関連付けられるため、これらの式に必要ありません。

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