Explorar o código

RP2040: Fix random boot hangs

Sometimes flash_do_cmd() call would coincide with SysTick interrupt.
Interrupts should be disabled when running it.
Petteri Aimonen %!s(int64=2) %!d(string=hai) anos
pai
achega
9553aff679
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      lib/BlueSCSI_platform_RP2040/BlueSCSI_platform.cpp

+ 2 - 0
lib/BlueSCSI_platform_RP2040/BlueSCSI_platform.cpp

@@ -88,7 +88,9 @@ void platform_init()
     // Get flash chip size
     uint8_t cmd_read_jedec_id[4] = {0x9f, 0, 0, 0};
     uint8_t response_jedec[4] = {0};
+    __disable_irq();
     flash_do_cmd(cmd_read_jedec_id, response_jedec, 4);
+    __enable_irq();
     g_flash_chip_size = (1 << response_jedec[3]);
     log("Flash chip size: ", (int)(g_flash_chip_size / 1024), " kB");