Selaa lähdekoodia

Fix RST signal handling

Petteri Aimonen 3 vuotta sitten
vanhempi
sitoutus
a7465e1134
2 muutettua tiedostoa jossa 7 lisäystä ja 0 poistoa
  1. 1 0
      lib/AzulSCSI_platform_GD32F205/AzulSCSI_platform.cpp
  2. 6 0
      src/AzulSCSI.cpp

+ 1 - 0
lib/AzulSCSI_platform_GD32F205/AzulSCSI_platform.cpp

@@ -152,6 +152,7 @@ void azplatform_set_rst_callback(void (*callback)())
     gpio_exti_source_select(SCSI_RST_EXTI_SOURCE_PORT, SCSI_RST_EXTI_SOURCE_PIN);
     exti_init(SCSI_RST_EXTI, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
     NVIC_SetPriority(SCSI_RST_IRQn, 0x00U);
+    NVIC_EnableIRQ(SCSI_RST_IRQn);
 }
 
 void SCSI_RST_IRQ (void)

+ 6 - 0
src/AzulSCSI.cpp

@@ -1172,6 +1172,12 @@ void scsi_loop()
 
 void onBusReset(void)
 {
+  if (g_busreset)
+  {
+    // Previous reset is not yet handled
+    return;
+  }
+
   int filterlen = 100;
 
   if (g_scsi_quirks == SCSI_QUIRKS_SHARP)