@web-font-path: "roboto-debian.css";
Loading...
Searching...
No Matches
irq.h File Reference
#include "pico.h"
#include "hardware/address_mapped.h"
#include "hardware/regs/intctrl.h"
#include "pico/platform/cpu_regs.h"
Include dependency graph for irq.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PICO_MAX_SHARED_IRQ_HANDLERS   4
#define PICO_DISABLE_SHARED_IRQ_HANDLERS   0
#define PICO_VTABLE_PER_CORE   0
#define PICO_DEFAULT_IRQ_PRIORITY   0x80
#define PICO_LOWEST_IRQ_PRIORITY   0xff
#define PICO_HIGHEST_IRQ_PRIORITY   0x00
#define PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY   0x80
#define PICO_SHARED_IRQ_HANDLER_HIGHEST_ORDER_PRIORITY   0xff
#define PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY   0x00
#define PARAM_ASSERTIONS_ENABLED_HARDWARE_IRQ   0

Typedefs

typedef void(* irq_handler_t) (void)
 Interrupt handler function type.

Functions

static void check_irq_param (__unused uint num)
void irq_set_priority (uint num, uint8_t hardware_priority)
 Set specified interrupt's priority.
uint irq_get_priority (uint num)
 Get specified interrupt's priority.
void irq_set_enabled (uint num, bool enabled)
 Enable or disable a specific interrupt on the executing core.
bool irq_is_enabled (uint num)
 Determine if a specific interrupt is enabled on the executing core.
void irq_set_mask_enabled (uint32_t mask, bool enabled)
 Enable/disable multiple interrupts on the executing core.
void irq_set_mask_n_enabled (uint n, uint32_t mask, bool enabled)
 Enable/disable multiple interrupts on the executing core.
void irq_set_exclusive_handler (uint num, irq_handler_t handler)
 Set an exclusive interrupt handler for an interrupt on the executing core.
irq_handler_t irq_get_exclusive_handler (uint num)
 Get the exclusive interrupt handler for an interrupt on the executing core.
void irq_add_shared_handler (uint num, irq_handler_t handler, uint8_t order_priority)
 Add a shared interrupt handler for an interrupt on the executing core.
void irq_remove_handler (uint num, irq_handler_t handler)
 Remove a specific interrupt handler for the given irq number on the executing core.
bool irq_has_handler (uint num)
 Determine if there is an installed IRQ handler for the given interrupt number.
bool irq_has_shared_handler (uint num)
 Determine if the current IRQ andler for the given interrupt number is shared.
irq_handler_t irq_get_vtable_handler (uint num)
 Get the current IRQ handler for the specified IRQ from the currently installed hardware vector table (VTOR) of the execution core.
static void irq_clear (uint int_num)
 Clear a specific interrupt on the executing core.
void irq_set_pending (uint num)
 Force an interrupt to be pending on the executing core.
void runtime_init_per_core_irq_priorities (void)
 Perform IRQ priority initialization for the current core.
static __force_inline void irq_init_priorities (void)
void user_irq_claim (uint irq_num)
 Claim ownership of a user IRQ on the calling core.
void user_irq_unclaim (uint irq_num)
 Mark a user IRQ as no longer used on the calling core.
int user_irq_claim_unused (bool required)
 Claim ownership of a free user IRQ on the calling core.
bool user_irq_is_claimed (uint irq_num)
void __unhandled_user_irq (void)

Function Documentation

◆ runtime_init_per_core_irq_priorities()

void runtime_init_per_core_irq_priorities ( void )

Perform IRQ priority initialization for the current core.

Note
This is an internal method and user should generally not call it.