Skip to content

Commit d3b9836

Browse files
committed
feat: read memory page by page
1 parent bbc639c commit d3b9836

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

examples/read_mem.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from sys import exit
22
from stm32_flash import *
3-
from stm32_flash import _STM32_readMode, _STM32_sendAddress, _STM32_readPage
43

54
ans = STM32_startCommunication()
65
if ans == STM32_NACK:
@@ -9,13 +8,5 @@
98

109
print('\nSTM32 FOUND')
1110

12-
print('\nREADING MEMORY')
13-
14-
_STM32_readMode()
15-
print('\nREAD MODE')
16-
17-
_STM32_sendAddress(STM32_ADDRESS)
18-
print('\nADDRESS SENT')
19-
20-
page = _STM32_readPage()
21-
print(page)
11+
print("\nREADING 10 MEM PAGES")
12+
STM32_readMEM(10)

stm32_flash.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from time import sleep_ms
2-
from machine import Pin, UART
2+
from machine import UART
33

44
STM32_INIT = b'\x7F'
55
STM32_NACK = b'\x1F'
@@ -167,7 +167,7 @@ def _STM32_sendAddress(address: bytes) -> bytes:
167167

168168
def _incrementAddress(address: bytearray):
169169
"""
170-
Incremets address by one page (256 bytes)
170+
Increments address by one page (256 bytes)
171171
:param address:
172172
:return:
173173
"""
@@ -220,3 +220,21 @@ def _STM32_flashPage(data: bytearray) -> bytes:
220220
uart.write(bytes([checksum]))
221221

222222
return _STM32_waitForAnswer()
223+
224+
225+
def STM32_readMEM(pages: int):
226+
"""
227+
Reads n 256-bytes pages from memory
228+
:param pages: number of pages to read
229+
:return:
230+
"""
231+
232+
for i in range(0, pages):
233+
_STM32_readMode()
234+
_STM32_sendAddress(readAddress)
235+
236+
page = _STM32_readPage()
237+
print(f"Page {i+1} content:\n")
238+
print(page.hex())
239+
240+
_incrementAddress(readAddress)

0 commit comments

Comments
 (0)