Andrzej Puzdrowski | 9a605b6 | 2020-03-16 13:34:30 +0100 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2020 Nordic Semiconductor ASA |
| 3 | * |
| 4 | * SPDX-License-Identifier: Apache-2.0 |
| 5 | */ |
| 6 | |
Piotr Mienkowski | a504669 | 2020-04-02 01:41:54 +0200 | [diff] [blame] | 7 | #include <arch/arm/aarch32/cortex_m/cmsis.h> |
Andrzej Puzdrowski | 9a605b6 | 2020-03-16 13:34:30 +0100 | [diff] [blame] | 8 | |
| 9 | void cleanup_arm_nvic(void) { |
| 10 | /* Allow any pending interrupts to be recognized */ |
| 11 | __ISB(); |
| 12 | __disable_irq(); |
| 13 | |
| 14 | /* Disable NVIC interrupts */ |
Kumar Gala | 0813efe | 2020-05-27 12:25:41 -0500 | [diff] [blame^] | 15 | for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) { |
Andrzej Puzdrowski | 9a605b6 | 2020-03-16 13:34:30 +0100 | [diff] [blame] | 16 | NVIC->ICER[i] = 0xFFFFFFFF; |
| 17 | } |
| 18 | /* Clear pending NVIC interrupts */ |
Kumar Gala | 0813efe | 2020-05-27 12:25:41 -0500 | [diff] [blame^] | 19 | for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICPR); i++) { |
Andrzej Puzdrowski | 9a605b6 | 2020-03-16 13:34:30 +0100 | [diff] [blame] | 20 | NVIC->ICPR[i] = 0xFFFFFFFF; |
| 21 | } |
| 22 | } |