summaryrefslogtreecommitdiff
path: root/decoders
diff options
context:
space:
mode:
Diffstat (limited to 'decoders')
-rw-r--r--decoders/jtag_stm32/pd.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/decoders/jtag_stm32/pd.py b/decoders/jtag_stm32/pd.py
index 51c910d..10a098f 100644
--- a/decoders/jtag_stm32/pd.py
+++ b/decoders/jtag_stm32/pd.py
@@ -133,7 +133,7 @@ class Decoder(srd.Decoder):
def __init__(self, **kwargs):
self.state = 'IDLE'
- # self.state = 'BYPASS'
+ self.samplenums = None
def start(self):
self.out_ann = self.register(srd.OUTPUT_ANN)
@@ -178,16 +178,20 @@ class Decoder(srd.Decoder):
[0, ['Unknown instruction: ' % bits]]) # TODO
def decode(self, ss, es, data):
- # Assumption: The right-most char in the 'val' bitstring is the LSB.
cmd, val = data
self.ss, self.es = ss, es
- # The STM32F10xxx has two serially connected JTAG TAPs, the
- # boundary scan tap (5 bits) and the Cortex-M3 TAP (4 bits).
- # See UM 31.5 "STM32F10xxx JTAG TAP connection" for details.
- # Due to this, we need to ignore the last bit of each data shift.
- val = val[:-1]
+ if cmd != 'NEW STATE':
+ val, self.samplenums = val
+
+ # The right-most char in the 'val' bitstring is the LSB.
+
+ # The STM32F10xxx has two serially connected JTAG TAPs, the
+ # boundary scan tap (5 bits) and the Cortex-M3 TAP (4 bits).
+ # See UM 31.5 "STM32F10xxx JTAG TAP connection" for details.
+ # Due to this, we need to ignore the last bit of each data shift.
+ val = val[:-1]
# State machine
if self.state == 'IDLE':