esp32/include/irq_arch.h

Implementation of the kernels irq interface.

CPU_INUM_GPIO

fixed allocated CPU interrupt numbers that are used by RIOT

1
2   /* level interrupt, low priority = 1 */
CPU_INUM_CAN
1
3   /* level interrupt, low priority = 1 */
CPU_INUM_UART
1
5   /* level interrupt, low priority = 1 */
CPU_INUM_RTC
1
9   /* level interrupt, low priority = 1 */
CPU_INUM_I2C
1
12  /* level interrupt, low priority = 1 */
CPU_INUM_WDT
1
13  /* level interrupt, low priority = 1 */
CPU_INUM_SOFTWARE
1
17  /* level interrupt, low priority = 1 */
CPU_INUM_ETH
1
18  /* level interrupt, low priority = 1 */
CPU_INUM_TIMER
1
19  /* level interrupt, medium priority = 2 */
irq_isr_enter()

Macros that have to be used on entry into and reset from an ISR.

1
2
int _irq_state = irq_disable (); \
                           irq_interrupt_nesting++;

NOTE: since they use a local variable they can be used only in same functionMacro that has to be used at the entry point of an ISR

irq_isr_exit()

Macro that has to be used at the exit point of an ISR.

1
2
3
4
5
if (irq_interrupt_nesting) \
                               irq_interrupt_nesting--; \
                           irq_restore (_irq_state); \
                           if (sched_context_switch_request) \
                               thread_yield();
critical_enter()

Macros to enter and exit from critical region.

1
int _irq_state = irq_disable ()

NOTE: since they use a local variable they can be used only in same function

critical_exit()
1
irq_restore(_irq_state)
critical_enter_var( m)

Macros to enter and exit from critical region with state variable.

1
m = irq_disable ()
critical_exit_var( m)
1
irq_restore(m)
uint32_t irq_interrupt_nesting

Indicates the interrupt nesting depth.

The variable is increment on entry into and decremented on exit from an ISR.