Skip to content

Commit efe0737

Browse files
committed
feat: extended erase bank1 and bank2
feat: standard mass erase
1 parent 676975b commit efe0737

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

stm32_flash.py

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,17 +272,30 @@ def STM32_writeMEM(file_path: str):
272272
sleep_ms(100)
273273

274274

275-
def _STM32_standardEraseMEM(pages: int, page_list: list = None):
275+
def _STM32_standardEraseMEM(pages: int, page_list: bytearray = None):
276276
"""
277277
Standard Erase (0x43) flash mem pages according to AN3155
278278
:param pages: number of pages to be erased
279279
:param page_list: page codes to be erased
280280
:return:
281281
"""
282-
pass
283282

283+
if _STM32_eraseMode() == STM32_NACK:
284+
print("COULD NOT ENTER ERASE MODE")
285+
return
284286

285-
def _STM32_extendedEraseMEM(pages: int, page_list: list = None):
287+
if pages == 0xFF:
288+
# Mass erase
289+
uart.write(b'\xFF')
290+
uart.write(b'\x00')
291+
else:
292+
print("Not yet implemented erase")
293+
294+
if _STM32_waitForAnswer() != STM32_ACK:
295+
print("ERASE OPERATION ABORTED")
296+
297+
298+
def _STM32_extendedEraseMEM(pages: int, page_list: bytearray = None):
286299
"""
287300
Extended Erase (0x44) flash mem pages according to AN3155
288301
:param pages: number of pages to be erased
@@ -299,14 +312,24 @@ def _STM32_extendedEraseMEM(pages: int, page_list: list = None):
299312
uart.write(b'\xFF')
300313
uart.write(b'\xFF')
301314
uart.write(b'\x00')
315+
elif pages == 0xFFFE:
316+
# Bank1 erase
317+
uart.write(b'\xFF')
318+
uart.write(b'\xFE')
319+
uart.write(b'\x01')
320+
elif pages == 0xFFFD:
321+
# Bank2 erase
322+
uart.write(b'\xFF')
323+
uart.write(b'\xFD')
324+
uart.write(b'\x02')
302325
else:
303326
print("Not yet implemented erase")
304327

305328
if _STM32_waitForAnswer() != STM32_ACK:
306329
print("ERASE OPERATION ABORTED")
307330

308331

309-
def STM32_eraseMEM(pages: int, page_list: list = None):
332+
def STM32_eraseMEM(pages: int, page_list: bytearray = None):
310333
"""
311334
Erases flash mem pages according to AN3155
312335
:param pages: number of pages to be erased

0 commit comments

Comments
 (0)