Skip to content

Commit 81ec22f

Browse files
committed
Add flash sector erase before page writes
1 parent ef97299 commit 81ec22f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Diff for: ports/stm32h7/board_flash.c

+11
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
#ifdef IS25LP064A
1414
#include "components/is25lp064a/is25lp064a_qspi.h"
15+
#include "components/is25lp064a/is25lp064a.h"
1516
#endif
1617

1718
#if defined (BOARD_QSPI_FLASH_EN) && (BOARD_QSPI_FLASH_EN == 1)
@@ -239,8 +240,18 @@ bool board_flash_write(uint32_t addr, void const * data, uint32_t len)
239240
{
240241
// SET_BOOT_ADDR(BOARD_AXISRAM_APP_ADDR);
241242
// handles erasing internally
243+
#ifdef IS25LP064A
244+
// flash needs to be erased before writing
245+
if (addr % IS25LP064A_SECTOR_SIZE == 0) {
246+
// erase 4k sector ahead of next page writes
247+
if (CSP_QSPI_EraseSector(addr, addr+IS25LP064A_SECTOR_SIZE) != qspi_OK) {
248+
TUF2_LOG1("Error erasing sector at address: %lx \r\n",addr);
249+
}
250+
}
251+
#endif
242252
if (qspi_Write((uint8_t *)data, (addr - QSPI_BASE_ADDR), len) != qspi_OK)
243253
{
254+
TUF2_LOG1("Error QSPI Flash write\r\n");
244255
__asm("bkpt #9");
245256
}
246257
return true;

0 commit comments

Comments
 (0)