From 7908044a44e2a717fca23d9ee7b9b11d371aa2ed Mon Sep 17 00:00:00 2001 From: bennydiamond Date: Sun, 13 Sep 2026 12:01:29 -0400 Subject: [PATCH] Rework flash_write_enable() --- rtl837x_flash.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/rtl837x_flash.c b/rtl837x_flash.c index 4845eeba..5f04c88a 100644 --- a/rtl837x_flash.c +++ b/rtl837x_flash.c @@ -34,7 +34,7 @@ __xdata uint8_t flash_capacity_code; /* * Configure Memory Managed IO */ -static void flash_configure_mmio() +static void flash_configure_mmio(void) { while(SFR_FLASH_EXEC_BUSY); @@ -51,7 +51,7 @@ static void flash_configure_mmio() SFR_FLASH_DUMMYCYCLES = 8; } -static void flash_configure_sio() +static void flash_configure_sio(void) { while(SFR_FLASH_EXEC_BUSY); @@ -88,19 +88,15 @@ static uint8_t flash_read_status(void) static void flash_write_enable(void) { - short status; + while (flash_read_status() & STATUS_REG_BUSY_MASK); + while(SFR_FLASH_EXEC_BUSY); - while (flash_read_status() & STATUS_REG_BUSY_MASK); - - while (!(status & STATUS_REG_WEL_MASK)) { - while(SFR_FLASH_EXEC_BUSY); + SFR_FLASH_TCONF = 0x18; + SFR_FLASH_CMD = CMD_WRITE_ENABLE; - SFR_FLASH_TCONF = 0x18; - SFR_FLASH_CMD = CMD_WRITE_ENABLE; - - SFR_FLASH_EXEC_GO = 1; - status = flash_read_status(); - } + SFR_FLASH_EXEC_GO = 1; + while (SFR_FLASH_EXEC_BUSY); + while (!(flash_read_status() & STATUS_REG_WEL_MASK)); }