15.5.9 MEM-AP アクセスとコアデバイスのリンク

MEM-AP タイプのデバイスを直接認識できないクライアントもあります。DS-5デバッガはそのようなクライアントの一例です。このようなクライアントに MEM-AP デバイスを利用させるには、名前付きアドレス空間フィルタを任意の DTSL の Device オブジェクトに追加して下さい。アドレス空間フィルタの目的は、既知のアドレス空間名を使用してメモリアクセスが行われた場合、コアではなく別の DTSL デバイスを通じてアクセスを実行するように Device オブジェクトに指示することです。例えば、アドレス空間フィルタを、「AHB」のアドレス空間を持つアドレスに対するメモリアクセスを検出する Cortex-M3 DTSL デバイスに追加することができます。Device オブジェクトがこのようなアクセスを検出すると、Cortex-M3 を経由せずに AHB デバイスを使用してアクセスを実行します。DS-5デバッガの場合、これは、アドレスに AHB:(例: AHB:0x20000000)という接頭文字を付けると、AHB-AP を使用してアクセスを実行できることを意味します。

次のコードは、Cortex-M3 オブジェクトにアドレス空間フィルタを追加する方法を示しています。

devID = self.findDevice("CSMEMAP")
self.AHB = CortexM_AHBAP(self, devID, "CSMEMAP")
devID = self.findDevice("Cortex-M3")
self.cortexM3 = ResetHookedDevice(self, devID, "Cortex-M3")
self.cortexM3.registerAddressFilters(
    [AHBCortexMMemAPAccessor("AHB", self.AHB, "AHB bus accessed via AP_0")])

任意の数のアドレスフィルタを追加できますが、各ファイル名(DS-5デバッガのアドレス接頭辞)は一意である必要があります。

IDevice を実装するオブジェクトのサポートされているアドレス空間を特定するには、getAddressSpaces() メソッドを呼び出します。クライアントがアドレス空間にマッチングする場合は、IDevice メモリアクセスメソッドに渡される rule パラメータにアドレス空間をマップできます。その後、rule パラメータを使用してメモリアクセスを適切なデバイスに指定します。

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