Implementation of external irq driver. More...
#include "no_os_irq.h"
#include "no_os_list.h"
#include "no_os_uart.h"
#include "no_os_util.h"
#include "no_os_error.h"
#include "no_os_timer.h"
#include "no_os_alloc.h"
#include "pico_irq.h"
#include "pico_uart.h"
#include "pico_timer.h"
#include "pico/stdlib.h"
#include "hardware/irq.h"
Classes | |
struct | irq_action |
Struct used to store a (peripheral, callback) pair. More... | |
struct | event_list |
Struct that stores all the actions for a specific event. More... | |
Macros | |
#define | PICO_IRQ_NB 26u |
Functions | |
void | on_uart0_rx (void) |
UART0 RX interrupt handler. | |
void | on_uart1_rx (void) |
UART1 RX interrupt handler. | |
int32_t | irq_action_cmp (void *data1, void *data2) |
Action comparator function. | |
int | pico_irq_ctrl_init (struct no_os_irq_ctrl_desc **desc, const struct no_os_irq_init_param *param) |
Initialized the controller for pico external interrupts. | |
int | pico_irq_ctrl_remove (struct no_os_irq_ctrl_desc *desc) |
Free the resources allocated by irq_ctrl_init(). | |
int | pico_trigger_level_set (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level level) |
Unused. | |
int | pico_irq_register_callback (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *cb) |
Register a callback. | |
int | pico_irq_unregister_callback (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *cb) |
Unregister a callback. | |
int | pico_irq_global_enable (struct no_os_irq_ctrl_desc *desc) |
Enable all interrupts. | |
int | pico_irq_global_disable (struct no_os_irq_ctrl_desc *desc) |
Disable all interrupts. | |
int | pico_irq_enable (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id) |
Enable a specific interrupt. | |
int | pico_irq_disable (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id) |
Disable a specific interrupt. | |
Variables | |
const struct no_os_irq_platform_ops | pico_irq_ops |
pico specific IRQ platform ops structure | |
Implementation of external irq driver.
Copyright 2022(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define PICO_IRQ_NB 26u |
int32_t irq_action_cmp | ( | void * | data1, |
void * | data2 ) |
Action comparator function.
irq_action compare function
data1 | - List element. |
data2 | - Key. |
void on_uart0_rx | ( | void | ) |
UART0 RX interrupt handler.
void on_uart1_rx | ( | void | ) |
UART1 RX interrupt handler.
int pico_irq_ctrl_init | ( | struct no_os_irq_ctrl_desc ** | desc, |
const struct no_os_irq_init_param * | param ) |
Initialized the controller for pico external interrupts.
desc | - Pointer where the configured instance is stored. |
param | - Configuration information for the instance. |
int pico_irq_ctrl_remove | ( | struct no_os_irq_ctrl_desc * | desc | ) |
Free the resources allocated by irq_ctrl_init().
desc | - Interrupt controller descriptor. |
int pico_irq_disable | ( | struct no_os_irq_ctrl_desc * | desc, |
uint32_t | irq_id ) |
Disable a specific interrupt.
desc | - Interrupt controller descriptor. |
irq_id | - Interrupt identifier. |
int pico_irq_enable | ( | struct no_os_irq_ctrl_desc * | desc, |
uint32_t | irq_id ) |
Enable a specific interrupt.
desc | - Interrupt controller descriptor. |
irq_id | - Interrupt identifier. |
int pico_irq_global_disable | ( | struct no_os_irq_ctrl_desc * | desc | ) |
Disable all interrupts.
desc | - Interrupt controller descriptor. |
int pico_irq_global_enable | ( | struct no_os_irq_ctrl_desc * | desc | ) |
Enable all interrupts.
desc | - Interrupt controller descriptor. |
int pico_irq_register_callback | ( | struct no_os_irq_ctrl_desc * | desc, |
uint32_t | irq_id, | ||
struct no_os_callback_desc * | cb ) |
Register a callback.
desc | - The IRQ controller descriptor. |
irq_id | - Interrupt identifier. |
cb | - Descriptor of the callback. |
int pico_irq_unregister_callback | ( | struct no_os_irq_ctrl_desc * | desc, |
uint32_t | irq_id, | ||
struct no_os_callback_desc * | cb ) |
Unregister a callback.
desc | - Interrupt controller descriptor. |
irq_id | - Id of the interrupt. |
cb | - Descriptor of the callback. |
int pico_trigger_level_set | ( | struct no_os_irq_ctrl_desc * | desc, |
uint32_t | irq_id, | ||
enum no_os_irq_trig_level | level ) |
Unused.
desc | - Irq descriptor. |
irq_id | - The interrupt vector entry id of the peripheral. |
level | - The trigger condition. |
const struct no_os_irq_platform_ops pico_irq_ops |
pico specific IRQ platform ops structure
pico platform specific irq platform ops structure