1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include "nrf.h" 8 #include "nrfx_glue.h" 9 10 #include <rtthread.h> 11 #include <rthw.h> 12 13 #define NUM_IRQS_PER_REG 32 14 #define REG_FROM_IRQ(irq) (irq / NUM_IRQS_PER_REG) 15 #define BIT_FROM_IRQ(irq) (irq % NUM_IRQS_PER_REG) 16 17 /** 18 * @brief Return IRQ enable state 19 * 20 * @param irq IRQ line 21 * @return interrupt enable state, true or false 22 */ NVIC_IRQ_IS_ENABLED(unsigned int irq)23int NVIC_IRQ_IS_ENABLED(unsigned int irq) 24 { 25 return NVIC->ISER[REG_FROM_IRQ(irq)] & (1 << BIT_FROM_IRQ(irq)); 26 } 27 nrfx_enter_critical(void)28unsigned int nrfx_enter_critical(void) 29 { 30 return rt_hw_interrupt_disable(); 31 } 32 nrfx_exit_critical(unsigned int ctx)33void nrfx_exit_critical(unsigned int ctx) 34 { 35 rt_hw_interrupt_enable(ctx); 36 }