15.9.2 デバイス リセット動作のオーバーライド

DSTREAM クラス デバイスでは、System Reset 要求のデフォルトの操作は、JTAG コネクタ上で nSRST を駆動することです。一部のプラットフォームの場合、このピンは JTAG コネクタに存在しません。このピンが存在しない場合には、他の方法を使用してリセットを実行する必要があります。

システム リセット コントローラ デバイスなど、別のシステム コンポーネントに書き込んでリセットを行う場合もあります。これを使用できない場合は別の方法として、システムのウォッチドッグタイムアウトを発生させてシステムを順にリセットします。どちらの方法でも、デフォルトのリセット動作を変更する必要があります。デフォルトのリセット動作をオーバーライドするには、必要なアクションを実行するため、resetTarget メソッドがオーバーライドされる場合があります。

以下のコードシーケンスはこの例です。

1.from com.arm.debug.dtsl.components import ConnectableDevice
2.[snip]
3.
4.class DtslScript(DTSLv1):
5.'''デバッグとトレースをサポートするトップレベルのコンフィギュレーション クラス'''
6.
7.[snip]
8.
9.def setupPinMUXForTrace(self):
10.'''Sets up the IO Pin MUX to select 4 bit TPIU trace'''
11.addrDBGMCU_CR = 0xE0042004
12.value = self.readMem(addrDBGMCU_CR)
13.value |=  0xE0 # TRACE_MODE=11 (4 bit port), TRACE_IOEN=1
14.self.writeMem(addrDBGMCU_CR, value)
15.
16.def enableSystemTrace(self):
17.'''Sets up the system to enable trace
18.For a Cortex-M3 system we must make sure that the
19.TRCENA bit (24) in the DEMCR registers is set.
20.NOTE: This bit is normally set by the DSTREAM Cortex-M3
21.template - but we set it ourselves here in case
22.no one connects to the Cortex-M3 device.
23.'''
24.addrDEMCR = 0xE000EDFC
25.bitTRCENA = 0x01000000
26.value = self.readMem(addrDEMCR)
27.value |= bitTRCENA
28.self.writeMem(addrDEMCR, value)
29.
30.def postReset(self):
31.'''Makes sure the debug configuration is re-instated
32.following a reset event
33.'''
34.if self.getOptionValue("options.traceBuffer.traceCaptureDevice") == "DSTREAM":
35.self.setupPinMUXForTrace()
36.self.enableSystemTrace()
37.
38.def resetTarget(self, resetType, targetDevice):
39.# perform the reset
40.DTSLv1.resetTarget(self, resetType, targetDevice)
41.# perform the post-reset actions
42.Self.postReset()

38 では resetTarget メソッドが宣言されます。このメソッドは、通常のリセット メソッドを呼び出してリセットを実行した後、カスタム postReset メソッドを呼び出して、リセット後に必要なアクションを実行します。

DTSLv1 への resetTarget の実装により、targetDevicesystemReset メソッドが呼び出されます。

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