Browse Source

Update hook after updating GPIO bits (#3091)

Fixes #3089
galjonsfigur 4 years ago
parent
commit
7140894f2f
1 changed files with 4 additions and 0 deletions
  1. 4 0
      app/platform/platform.c

+ 4 - 0
app/platform/platform.c

@@ -307,6 +307,10 @@ int platform_gpio_register_intr_hook(uint32_t bits, platform_hook_function hook)
       uint32_t old_bits = oh.entry[i].bits;
       *(volatile uint32_t *) &oh.entry[i].bits = bits;
       *(volatile uint32_t *) &oh.all_bits = (oh.all_bits & ~old_bits) | bits;
+      ETS_GPIO_INTR_DISABLE();
+      // This is a structure copy, so interrupts need to be disabled
+      platform_gpio_hook = oh;
+      ETS_GPIO_INTR_ENABLE();
       return 1;
     }
   }