summaryrefslogtreecommitdiff
path: root/tb/models/smp.py
blob: a6439f8f00c25f56e715e7a13fbe23b298ef358c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
__all__ = ['SmpModel']

class SmpModel:
    def __init__(self):
        self._pe0 = SmpPe(0)
        self._pe1 = SmpPe(1)
        self._pe2 = SmpPe(1)
        self._pe3 = SmpPe(1)

    def read(self):
        return self._pe0.read() \
                | self._pe1.read() << 8 \
                | self._pe2.read() << 16 \
                | self._pe3.read() << 24

class SmpPe:
    def __init__(self, halt_on_reset):
        self._bkpt = 0
        self._halted = halt_on_reset

    def read(self):
        return self._bkpt << 1 | self._halted