diff options
| author | Peter Lawrence <[email protected]> | 2020-02-11 14:34:07 -0600 |
|---|---|---|
| committer | Peter Lawrence <[email protected]> | 2020-02-11 14:34:07 -0600 |
| commit | 6ab799c7eb15918dfd86fb7bee982dc64b7fe53c (patch) | |
| tree | f4c4be5893f2ea259dbb3a403ad871ba7edf1850 | |
| parent | 7d8ecc63a60b039b6e59961023ffb1c228e20d4f (diff) | |
atomic GPIO operation in BSP
| -rw-r--r-- | hw/bsp/nutiny_sdk_nuc505/nutiny_sdk_nuc505.c | 3 |
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) |
