blob: f313307d1b6f0d997c20cbdb53972962ab313705 [file] [log] [blame]
Andrzej Puzdrowski9a605b62020-03-16 13:34:30 +01001/*
2 * Copyright (c) 2020 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <zephyr.h>
8
9void cleanup_arm_nvic(void) {
10 /* Allow any pending interrupts to be recognized */
11 __ISB();
12 __disable_irq();
13
14 /* Disable NVIC interrupts */
15 for (u8_t i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) {
16 NVIC->ICER[i] = 0xFFFFFFFF;
17 }
18 /* Clear pending NVIC interrupts */
19 for (u8_t i = 0; i < ARRAY_SIZE(NVIC->ICPR); i++) {
20 NVIC->ICPR[i] = 0xFFFFFFFF;
21 }
22}