External Interrupt controller HW driver header file.
More...
#include <stdint.h>
Go to the source code of this file.
|
enum | XIRQ_TRIGGER_enum { XIRQ_TRIGGER_LEVEL_LOW = 0b00
, XIRQ_TRIGGER_LEVEL_HIGH = 0b01
, XIRQ_TRIGGER_EDGE_FALLING = 0b10
, XIRQ_TRIGGER_EDGE_RISING = 0b11
} |
|
External Interrupt controller HW driver header file.
- See also
- https://stnolting.github.io/neorv32/sw/files.html
◆ NEORV32_XIRQ
◆ XIRQ_TRIGGER_enum
XIRQ trigger type configuration
◆ neorv32_xirq_available()
int neorv32_xirq_available |
( |
void | | ) |
|
Check if external interrupt controller was synthesized.
- Returns
- 0 if XIRQ was not synthesized, 1 if EXTIRQ is available.
◆ neorv32_xirq_channel_disable()
void neorv32_xirq_channel_disable |
( |
int | channel | ) |
|
Disable IRQ channel.
- Parameters
-
[in] | channel | XIRQ interrupt channel (0..31). |
◆ neorv32_xirq_channel_enable()
void neorv32_xirq_channel_enable |
( |
int | channel | ) |
|
Enable IRQ channel.
- Parameters
-
[in] | channel | XIRQ interrupt channel (0..31). |
◆ neorv32_xirq_get_num()
int neorv32_xirq_get_num |
( |
void | | ) |
|
Get number of implemented XIRQ channels
- Returns
- Number of implemented channels (0..32).
◆ neorv32_xirq_global_disable()
void neorv32_xirq_global_disable |
( |
void | | ) |
|
Globally disable XIRQ interrupts (via according FIRQ channel).
- Note
- Triggered / triggering XIRQ will remain pending.
◆ neorv32_xirq_global_enable()
void neorv32_xirq_global_enable |
( |
void | | ) |
|
Globally enable XIRQ interrupts (via according FIRQ channel).
- Note
- Triggered / triggering XIRQ will remain pending.
◆ neorv32_xirq_install()
int neorv32_xirq_install |
( |
int | channel, |
|
|
void(* | handler )(void) ) |
Install interrupt handler function for XIRQ channel.
- Parameters
-
[in] | channel | XIRQ interrupt channel (0..31). |
[in] | handler | The actual handler function for the specified interrupt (function MUST be of type "void function(void);"). |
- Returns
- 0 if success, -1 if invalid channel.
◆ neorv32_xirq_setup()
int neorv32_xirq_setup |
( |
void | | ) |
|
Initialize XIRQ controller.
- Note
- All interrupt channels will be deactivated and all installed handlers addresses will be deleted.
- Returns
- 0 if success, != 0 if error.
◆ neorv32_xirq_setup_trigger()
void neorv32_xirq_setup_trigger |
( |
int | channel, |
|
|
int | config ) |
Configure a channel's trigger type.
- Parameters
-
[in] | channel | XIRQ interrupt channel (0..31). |
[in] | config | Trigger type (XIRQ_TRIGGER_enum). |
◆ neorv32_xirq_uninstall()
int neorv32_xirq_uninstall |
( |
int | channel | ) |
|
Uninstall interrupt handler function for XIRQ channel.
- Note
- This will also deactivate the according XIRQ channel.
- Parameters
-
[in] | channel | XIRQ interrupt channel (0..31). |
- Returns
- 0 if success, -1 if invalid channel.