fix racing issue for SAMD when executing WFI
This commit is contained in:
parent
37a7cf9934
commit
e79340601f
@ -69,6 +69,7 @@
|
|||||||
#include "samd/events.h"
|
#include "samd/events.h"
|
||||||
#include "samd/external_interrupts.h"
|
#include "samd/external_interrupts.h"
|
||||||
#include "samd/dma.h"
|
#include "samd/dma.h"
|
||||||
|
#include "shared-bindings/microcontroller/__init__.h"
|
||||||
#include "shared-bindings/rtc/__init__.h"
|
#include "shared-bindings/rtc/__init__.h"
|
||||||
#include "reset.h"
|
#include "reset.h"
|
||||||
|
|
||||||
@ -496,7 +497,12 @@ void port_sleep_until_interrupt(void) {
|
|||||||
(void) __get_FPSCR();
|
(void) __get_FPSCR();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
__WFI();
|
common_hal_mcu_disable_interrupts();
|
||||||
|
if (!tud_task_event_ready()) {
|
||||||
|
__DSB();
|
||||||
|
__WFI();
|
||||||
|
}
|
||||||
|
common_hal_mcu_enable_interrupts();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user