summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Lawrence <[email protected]>2020-02-11 14:34:07 -0600
committerPeter Lawrence <[email protected]>2020-02-11 14:34:07 -0600
commit6ab799c7eb15918dfd86fb7bee982dc64b7fe53c (patch)
treef4c4be5893f2ea259dbb3a403ad871ba7edf1850
parent7d8ecc63a60b039b6e59961023ffb1c228e20d4f (diff)
atomic GPIO operation in BSP
-rw-r--r--hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c b/hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c
index e666a10aa..3a341de9a 100644
--- a/hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c
+++ b/hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c
@@ -93,8 +93,11 @@ void board_led_write(bool state)
{
uint32_t current = (state) ? LED_STATE_ON : (1-LED_STATE_ON);
current <<= LED_PIN;
+ uint32_t irq_state = __get_PRIMASK();
+ __disable_irq();
current |= LED_PORT->DOUT & ~(1UL << LED_PIN);
LED_PORT->DOUT = current;
+ __set_PRIMASK(irq_state);
}
uint32_t board_button_read(void)