6.17 キャッシュのデバッグについて

DS-5デバッガ。では、システムのキャッシュの内容を表示できます(L1 キャッシュ、TLB キャッシュなど)。

[キャッシュデータ]ビューで、または[コマンド]ビューで cache list コマンドと cache print コマンドを使用すると、キャッシュに関する情報を表示できます。
図 6-4 [キャッシュデータ]ビュー(L1 TLB キャッシュを示す)
[キャッシュデータ]ビュー(L1 TLB キャッシュを示す)

キャッシュの認識は、正確なデバイスおよび接続方法によって異なります。
[DTSL コンフィギュレーションエディタ]ダイアログの[Cache debug mode]オプションは、[キャッシュデータ]ビューのキャッシュ RAM の読み出しを有効または無効にします。[キャッシュデータ]ビューが適切に設定されている場合にこのオプションを選択すると、ターゲットが停止するたびにキャッシュ RAM の読み出しを実行できます。
[DTSL コンフィギュレーションエディタ][Preserve cache contents in debug state]オプションを有効にすると、コアの停止中にキャッシュの内容が保持されます。このオプションを無効にした場合、コアの停止中にキャッシュの内容が保持される保証はありません。

最も正確な結果を得るには、[DTSL コンフィギュレーションエディタ]ダイアログの[Preserve cache contents in debug state]オプションを有効にして下さい。このオプションを有効にしない場合、ターゲットとのデバッガのインタラクションのため、表示される情報の正確性が低下する場合があります。
図 6-5 DTSL コンフィギュレーションエディタ([Cache RAMs configuration]タブ)
DTSL コンフィギュレーションエディタ(キャッシュ読み出しオプションが有効な場合)

ARMv8 アーキテクチャベースのプロセッサの場合、キャッシュ予約に制約があります。
  • 短い記述子変換テーブルフォーマットを使用するよう MMU が構成されている場合、キャッシュ予約できません。
  • 長い記述子変換テーブルフォーマットを使用する場合は、キャッシュ予約できますが、TLB コンテンツは予約できません。
[Debug Configurations]ダイアログからターゲットに接続する前、または[デバッグ制御]ビューのコンテキストメニューから接続した後に、このオプションを有効にすることができます。

一部のデバイスでは、キャッシュデータの読み出しが非常に遅くなる可能性があります。この問題を回避するため、不要な DTSL オプションは有効にしないで下さい。また、必要に応じて、ユーザインタフェースのキャッシュビューを閉じます。
[メモリ]ビューでは、ターゲットに存在するさまざまなキャッシュのパースペクティブから見たターゲットメモリを表示できます。コマンドラインで、キャッシュのパースペクティブからメモリを表示または読み出すには、メモリアドレスの接頭辞として <cacheViewID=value>: を追加します。Cortex-A15 プロセッサに対して、指定できる cacheViewID の値を以下に示します。
以下に例を示します。
# L1D キャッシュのパースペクティブからアドレス 0x9000 のメモリを表示します。
x/16w N<cacheViewID=L1D>:0x9000

# L2 キャッシュのパースペクティブからアドレス 0x80009000 の myFile.bin にメモリをダンプします。
dump binary memory myFile.bin S<cacheViewID=L2>:0x80009000 0x10000

# L3 キャッシュのパースペクティブからアドレス 0x80009000 の myFile.bin にメモリを追加します。
append memory myFile.bin <cacheViewID=L3>:0x80009000 0x10000
関連する参考文書
11.19 [キャッシュデータ]ビュー
11.14 [Memory]ビュー
11.44 [DTSL Configuration Editor(DTSL コンフィギュレーションエディタ)]ダイアログボックス
関連情報
DS-5 デバッガキャッシュコマンド
DS-5 デバッガメモリコマンド
非機密扱いPDF file icon PDF 版ARM DUI0446WJ
Copyright © 2010-2015 ARM.All rights reserved.