Skip to content

Commit e3c9784

Browse files
committed
Apply the peripheral read/write debug decorator
1 parent 4acb5e5 commit e3c9784

File tree

9 files changed

+23
-24
lines changed

9 files changed

+23
-24
lines changed

qiling/hw/char/stm32f4xx_usart.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,8 @@ def __init__(self, ql, label, intn=None):
5959
self.recv_buf = bytearray()
6060
self.send_buf = bytearray()
6161

62+
@QlPeripheral.read_debug
6263
def read(self, offset: int, size: int) -> int:
63-
self.ql.log.debug(f'[{self.label.upper()}] [R] {self.find_field(offset, size):10s}')
64-
6564
buf = ctypes.create_string_buffer(size)
6665
ctypes.memmove(buf, ctypes.addressof(self.usart) + offset, size)
6766
retval = int.from_bytes(buf.raw, byteorder='little')
@@ -71,9 +70,8 @@ def read(self, offset: int, size: int) -> int:
7170

7271
return retval
7372

74-
def write(self, offset: int, size: int, value: int):
75-
self.ql.log.debug(f'[{self.label.upper()}] [W] {self.find_field(offset, size):10s} = {hex(value)}')
76-
73+
@QlPeripheral.write_debug
74+
def write(self, offset: int, size: int, value: int):
7775
if offset == self.struct.SR.offset:
7876
self.usart.SR &= value | USART_SR.CTS | USART_SR.LBD | USART_SR.TC | USART_SR.RXNE
7977

@@ -94,8 +92,7 @@ def transfer(self):
9492
data = self.usart.DR
9593

9694
self.usart.SR |= USART_SR.TXE
97-
self.send_buf.append(data)
98-
self.ql.log.debug(f'[{self.label}] Send {repr(chr(data))}')
95+
self.send_buf.append(data)
9996

10097
if not (self.usart.SR & USART_SR.RXNE):
10198
# TXE bit must had been cleared

qiling/hw/gpio/stm32f4xx_gpio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(self, ql, label,
6464
PUPDR = pupdr_reset,
6565
)
6666

67+
@QlPeripheral.read_debug
6768
def read(self, offset: int, size: int) -> int:
6869
if offset == self.struct.BSRR.offset:
6970
return 0x00
@@ -72,6 +73,7 @@ def read(self, offset: int, size: int) -> int:
7273
ctypes.memmove(buf, ctypes.addressof(self.gpio) + offset, size)
7374
return int.from_bytes(buf.raw, byteorder='little')
7475

76+
@QlPeripheral.write_debug
7577
def write(self, offset: int, size: int, value: int):
7678
if offset == self.struct.IDR.offset:
7779
return

qiling/hw/i2c/stm32f4xx_i2c.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,13 @@ def reset(self):
6262
TRISE = 0x0002
6363
)
6464

65-
def read(self, offset: int, size: int) -> int:
66-
self.ql.log.debug(f'[{self.label.upper()}] [R] {self.find_field(offset, size):10s}')
67-
65+
@QlPeripheral.read_debug
66+
def read(self, offset: int, size: int) -> int:
6867
buf = ctypes.create_string_buffer(size)
6968
ctypes.memmove(buf, ctypes.addressof(self.i2c) + offset, size)
7069
return int.from_bytes(buf.raw, byteorder='little')
7170

71+
@QlPeripheral.write_debug
7272
def write(self, offset: int, size: int, value: int):
7373
self.ql.log.debug(f'[{self.label.upper()}] [W] {self.find_field(offset, size):10s} = {hex(value)}')
7474

qiling/hw/intc/cm4_nvic.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,13 @@ def step(self):
113113
self.clear_pending(IRQn)
114114
self.ql.arch.handle_interupt(IRQn)
115115

116+
@QlPeripheral.read_debug
116117
def read(self, offset: int, size: int) -> int:
117118
buf = ctypes.create_string_buffer(size)
118119
ctypes.memmove(buf, ctypes.addressof(self.nvic) + offset, size)
119120
return int.from_bytes(buf.raw, byteorder='little')
120121

122+
@QlPeripheral.write_debug
121123
def write(self, offset: int, size: int, value: int):
122124
def write_byte(ofs, byte):
123125
for var, func in self.triggers:

qiling/hw/misc/cm4_scb.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,13 @@ def get_pending(self, IRQn):
117117
def get_priority(self, IRQn):
118118
return self.scb.SHP[(IRQn & 0xf) - 4]
119119

120+
@QlPeripheral.read_debug
120121
def read(self, offset: int, size: int) -> int:
121122
buf = ctypes.create_string_buffer(size)
122123
ctypes.memmove(buf, ctypes.addressof(self.scb) + offset, size)
123124
return int.from_bytes(buf.raw, byteorder='little')
124125

126+
@QlPeripheral.write_debug
125127
def write(self, offset: int, size: int, value: int):
126128
if offset == self.struct.ICSR.offset:
127129
if (value >> 28) & 1:

qiling/hw/misc/stm32f4xx_rcc.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,14 @@ def __init__(self, ql, label, intn=None):
7979

8080
self.intn = intn
8181

82-
def read(self, offset: int, size: int) -> int:
83-
self.ql.log.debug(f'[{self.label.upper()}] [R] {self.find_field(offset, size):10s}')
84-
82+
@QlPeripheral.read_debug
83+
def read(self, offset: int, size: int) -> int:
8584
buf = ctypes.create_string_buffer(size)
8685
ctypes.memmove(buf, ctypes.addressof(self.rcc) + offset, size)
8786
return int.from_bytes(buf.raw, byteorder='little')
8887

88+
@QlPeripheral.write_debug
8989
def write(self, offset: int, size: int, value: int):
90-
self.ql.log.debug(f'[{self.label.upper()}] [W] {self.find_field(offset, size):10s} = {hex(value)}')
91-
9290
if offset == self.struct.CR.offset:
9391
value = (self.rcc.CR & RCC_CR.RO_MASK) | (value & RCC_CR.RW_MASK)
9492
elif offset == self.struct.CFGR.offset:

qiling/hw/spi/stm32f4xx_spi.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,8 @@ def __init__(self, ql, label, intn=None):
6464

6565
self.intn = intn
6666

67+
@QlPeripheral.read_debug
6768
def read(self, offset: int, size: int) -> int:
68-
self.ql.log.debug(f'[{self.label.upper()}] [R] {self.find_field(offset, size):10s}')
69-
7069
if self.in_field(self.struct.DR, offset, size):
7170
self.spi.SR &= ~SPI_SR.RXNE
7271

@@ -76,9 +75,8 @@ def read(self, offset: int, size: int) -> int:
7675

7776
return data
7877

78+
@QlPeripheral.write_debug
7979
def write(self, offset: int, size: int, value: int):
80-
self.ql.log.debug(f'[{self.label.upper()}] [W] {self.find_field(offset, size):10s} = {hex(value)}')
81-
8280
if offset in [self.struct.SR.offset, self.struct.RXCRCR.offset, self.struct.TXCRCR.offset]:
8381
return
8482

qiling/hw/timer/cm4_systick.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,17 @@ def step(self):
4444
else:
4545
self.systick.VAL -= self.ratio
4646

47-
def read(self, offset: int, size: int) -> int:
48-
self.ql.log.debug(f'[{self.label.upper()}] [R] {self.find_field(offset, size):10s}')
49-
47+
@QlPeripheral.read_debug
48+
def read(self, offset: int, size: int) -> int:
5049
buf = ctypes.create_string_buffer(size)
5150
ctypes.memmove(buf, ctypes.addressof(self.systick) + offset, size)
5251

5352
if offset == self.struct.CTRL.offset:
5453
self.systick.CTRL &= ~SYSTICK_CTRL.COUNTFLAG
5554
return int.from_bytes(buf.raw, byteorder='little')
5655

56+
@QlPeripheral.write_debug
5757
def write(self, offset: int, size: int, value: int):
58-
self.ql.log.debug(f'[{self.label.upper()}] [W] {self.find_field(offset, size):10s} = {hex(value)}')
59-
6058
# ignore the reserved bit
6159
if offset == self.struct.CTRL.offset:
6260
value &= SYSTICK_CTRL.MASK

qiling/hw/timer/stm32f4xx_rtc.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,13 @@ def __init__(self, ql, label, wkup_intn=None, alarm_intn=None):
9191
self.wkup_intn = wkup_intn
9292
self.alarm_intn = alarm_intn
9393

94+
@QlPeripheral.read_debug
9495
def read(self, offset: int, size: int) -> int:
9596
buf = ctypes.create_string_buffer(size)
9697
ctypes.memmove(buf, ctypes.addressof(self.rtc) + offset, size)
9798
return int.from_bytes(buf.raw, byteorder='little')
9899

100+
@QlPeripheral.write_debug
99101
def write(self, offset: int, size: int, value: int):
100102
data = (value).to_bytes(size, 'little')
101103
ctypes.memmove(ctypes.addressof(self.rtc) + offset, data, size)

0 commit comments

Comments
 (0)