Przeglądaj źródła

Fix RST signal handling

Petteri Aimonen 3 lat temu
rodzic
commit
a7465e1134

+ 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)