NMSIS-Core
Version 1.3.1
NMSIS-Core support for Nuclei processor-based devices
|
Functions that manage interrupts and exceptions via the ECLIC. More...
Enumerations | |
enum | IRQn { Reserved0_IRQn = 0, Reserved1_IRQn = 1, Reserved2_IRQn = 2, SysTimerSW_IRQn = 3, Reserved3_IRQn = 4, Reserved4_IRQn = 5, Reserved5_IRQn = 6, SysTimer_IRQn = 7, Reserved6_IRQn = 8, Reserved7_IRQn = 9, Reserved8_IRQn = 10, Reserved9_IRQn = 11, Reserved10_IRQn = 12, Reserved11_IRQn = 13, Reserved12_IRQn = 14, Reserved13_IRQn = 15, Reserved14_IRQn = 16, Reserved15_IRQn = 17, Reserved16_IRQn = 18, FirstDeviceSpecificInterrupt_IRQn = 19, SOC_INT_MAX } |
Definition of IRQn numbers. More... | |
Functions | |
__STATIC_FORCEINLINE void | __ECLIC_SetCfgNlbits (uint32_t nlbits) |
Set nlbits value. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetCfgNlbits (void) |
Get nlbits value. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetInfoVer (void) |
Get the ECLIC version number. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetInfoCtlbits (void) |
Get CLICINTCTLBITS. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetInfoNum (void) |
Get number of maximum interrupt inputs supported. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetMth (uint8_t mth) |
Set Machine Mode Interrupt Level Threshold. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetMth (void) |
Get Machine Mode Interrupt Level Threshold. More... | |
__STATIC_FORCEINLINE void | __ECLIC_EnableIRQ (IRQn_Type IRQn) |
Enable a specific interrupt. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetEnableIRQ (IRQn_Type IRQn) |
Get a specific interrupt enable status. More... | |
__STATIC_FORCEINLINE void | __ECLIC_DisableIRQ (IRQn_Type IRQn) |
Disable a specific interrupt. More... | |
__STATIC_FORCEINLINE int32_t | __ECLIC_GetPendingIRQ (IRQn_Type IRQn) |
Get the pending specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetPendingIRQ (IRQn_Type IRQn) |
Set a specific interrupt to pending. More... | |
__STATIC_FORCEINLINE void | __ECLIC_ClearPendingIRQ (IRQn_Type IRQn) |
Clear a specific interrupt from pending. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetTrigIRQ (IRQn_Type IRQn, uint32_t trig) |
Set trigger mode and polarity for a specific interrupt. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetTrigIRQ (IRQn_Type IRQn) |
Get trigger mode and polarity for a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetShvIRQ (IRQn_Type IRQn, uint32_t shv) |
Set interrupt working mode for a specific interrupt. More... | |
__STATIC_FORCEINLINE uint32_t | __ECLIC_GetShvIRQ (IRQn_Type IRQn) |
Get interrupt working mode for a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetCtrlIRQ (IRQn_Type IRQn, uint8_t intctrl) |
Modify ECLIC Interrupt Input Control Register for a specific interrupt. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetCtrlIRQ (IRQn_Type IRQn) |
Get ECLIC Interrupt Input Control Register value for a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetLevelIRQ (IRQn_Type IRQn, uint8_t lvl_abs) |
Set ECLIC Interrupt level of a specific interrupt. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetLevelIRQ (IRQn_Type IRQn) |
Get ECLIC Interrupt level of a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetPriorityIRQ (IRQn_Type IRQn, uint8_t pri) |
Get ECLIC Interrupt priority of a specific interrupt. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetPriorityIRQ (IRQn_Type IRQn) |
Get ECLIC Interrupt priority of a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetVector (IRQn_Type IRQn, rv_csr_t vector) |
Set Interrupt Vector of a specific interrupt. More... | |
__STATIC_FORCEINLINE rv_csr_t | __ECLIC_GetVector (IRQn_Type IRQn) |
Get Interrupt Vector of a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetModeIRQ (IRQn_Type IRQn, uint32_t mode) |
Set privilege mode of a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetSth (uint8_t sth) |
Set supervisor-mode Interrupt Level Threshold in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetSth (void) |
Get supervisor-mode Interrupt Level Threshold in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetTrigIRQ_S (IRQn_Type IRQn, uint32_t trig) |
Set trigger mode and polarity for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetTrigIRQ_S (IRQn_Type IRQn) |
Get trigger mode and polarity for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetShvIRQ_S (IRQn_Type IRQn, uint32_t shv) |
Set interrupt working mode for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetShvIRQ_S (IRQn_Type IRQn) |
Get interrupt working mode for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetCtrlIRQ_S (IRQn_Type IRQn, uint8_t intctrl) |
Modify ECLIC Interrupt Input Control Register for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetCtrlIRQ_S (IRQn_Type IRQn) |
Get ECLIC Interrupt Input Control Register value for a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetLevelIRQ_S (IRQn_Type IRQn, uint8_t lvl_abs) |
Set ECLIC Interrupt level of a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetLevelIRQ_S (IRQn_Type IRQn) |
Get ECLIC Interrupt level of a specific interrupt. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetPriorityIRQ_S (IRQn_Type IRQn, uint8_t pri) |
Set ECLIC Interrupt priority of a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetPriorityIRQ_S (IRQn_Type IRQn) |
Get ECLIC Interrupt priority of a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_EnableIRQ_S (IRQn_Type IRQn) |
Enable a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE uint8_t | __ECLIC_GetEnableIRQ_S (IRQn_Type IRQn) |
Get a specific interrupt enable status in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_DisableIRQ_S (IRQn_Type IRQn) |
Disable a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __ECLIC_SetVector_S (IRQn_Type IRQn, rv_csr_t vector) |
Set Interrupt Vector of a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE rv_csr_t | __ECLIC_GetVector_S (IRQn_Type IRQn) |
Get Interrupt Vector of a specific interrupt in supervisor mode. More... | |
__STATIC_FORCEINLINE void | __set_exc_entry (rv_csr_t addr) |
Set Exception entry address. More... | |
__STATIC_FORCEINLINE rv_csr_t | __get_exc_entry (void) |
Get Exception entry address. More... | |
__STATIC_FORCEINLINE void | __set_nonvec_entry (rv_csr_t addr) |
Set Non-vector interrupt entry address. More... | |
__STATIC_FORCEINLINE rv_csr_t | __get_nonvec_entry (void) |
Get Non-vector interrupt entry address. More... | |
__STATIC_FORCEINLINE rv_csr_t | __get_nmi_entry (void) |
Get NMI interrupt entry from 'CSR_MNVEC'. More... | |
Functions that manage interrupts and exceptions via the ECLIC.
#define ECLIC_ClearPendingIRQ __ECLIC_ClearPendingIRQ |
Definition at line 254 of file core_feature_eclic.h.
#define ECLIC_DisableIRQ __ECLIC_DisableIRQ |
Definition at line 251 of file core_feature_eclic.h.
#define ECLIC_DisableIRQ_S __ECLIC_DisableIRQ_S |
Definition at line 283 of file core_feature_eclic.h.
#define ECLIC_EnableIRQ __ECLIC_EnableIRQ |
Definition at line 249 of file core_feature_eclic.h.
#define ECLIC_EnableIRQ_S __ECLIC_EnableIRQ_S |
Definition at line 281 of file core_feature_eclic.h.
#define ECLIC_GetCfgNlbits __ECLIC_GetCfgNlbits |
Definition at line 243 of file core_feature_eclic.h.
#define ECLIC_GetCtrlIRQ __ECLIC_GetCtrlIRQ |
Definition at line 260 of file core_feature_eclic.h.
#define ECLIC_GetCtrlIRQ_S __ECLIC_GetCtrlIRQ_S |
Definition at line 276 of file core_feature_eclic.h.
#define ECLIC_GetEnableIRQ __ECLIC_GetEnableIRQ |
Definition at line 250 of file core_feature_eclic.h.
#define ECLIC_GetEnableIRQ_S __ECLIC_GetEnableIRQ_S |
Definition at line 282 of file core_feature_eclic.h.
#define ECLIC_GetInfoCtlbits __ECLIC_GetInfoCtlbits |
Definition at line 245 of file core_feature_eclic.h.
#define ECLIC_GetInfoNum __ECLIC_GetInfoNum |
Definition at line 246 of file core_feature_eclic.h.
#define ECLIC_GetInfoVer __ECLIC_GetInfoVer |
Definition at line 244 of file core_feature_eclic.h.
#define ECLIC_GetLevelIRQ __ECLIC_GetLevelIRQ |
Definition at line 262 of file core_feature_eclic.h.
#define ECLIC_GetLevelIRQ_S __ECLIC_GetLevelIRQ_S |
Definition at line 278 of file core_feature_eclic.h.
#define ECLIC_GetMth __ECLIC_GetMth |
Definition at line 248 of file core_feature_eclic.h.
#define ECLIC_GetPendingIRQ __ECLIC_GetPendingIRQ |
Definition at line 253 of file core_feature_eclic.h.
#define ECLIC_GetPriorityIRQ __ECLIC_GetPriorityIRQ |
Definition at line 264 of file core_feature_eclic.h.
#define ECLIC_GetPriorityIRQ_S __ECLIC_GetPriorityIRQ_S |
Definition at line 280 of file core_feature_eclic.h.
#define ECLIC_GetShvIRQ __ECLIC_GetShvIRQ |
Definition at line 258 of file core_feature_eclic.h.
#define ECLIC_GetShvIRQ_S __ECLIC_GetShvIRQ_S |
Definition at line 274 of file core_feature_eclic.h.
#define ECLIC_GetSth __ECLIC_GetSth |
Definition at line 270 of file core_feature_eclic.h.
#define ECLIC_GetTrigIRQ __ECLIC_GetTrigIRQ |
Definition at line 256 of file core_feature_eclic.h.
#define ECLIC_GetTrigIRQ_S __ECLIC_GetTrigIRQ_S |
Definition at line 272 of file core_feature_eclic.h.
#define ECLIC_GetVector __ECLIC_GetVector |
Definition at line 295 of file core_feature_eclic.h.
#define ECLIC_GetVector_S __ECLIC_GetVector_S |
Definition at line 299 of file core_feature_eclic.h.
#define ECLIC_SetCfgNlbits __ECLIC_SetCfgNlbits |
Definition at line 242 of file core_feature_eclic.h.
#define ECLIC_SetCtrlIRQ __ECLIC_SetCtrlIRQ |
Definition at line 259 of file core_feature_eclic.h.
#define ECLIC_SetCtrlIRQ_S __ECLIC_SetCtrlIRQ_S |
Definition at line 275 of file core_feature_eclic.h.
#define ECLIC_SetLevelIRQ __ECLIC_SetLevelIRQ |
Definition at line 261 of file core_feature_eclic.h.
#define ECLIC_SetLevelIRQ_S __ECLIC_SetLevelIRQ_S |
Definition at line 277 of file core_feature_eclic.h.
#define ECLIC_SetModeIRQ __ECLIC_SetModeIRQ |
Definition at line 268 of file core_feature_eclic.h.
#define ECLIC_SetMth __ECLIC_SetMth |
Definition at line 247 of file core_feature_eclic.h.
#define ECLIC_SetPendingIRQ __ECLIC_SetPendingIRQ |
Definition at line 252 of file core_feature_eclic.h.
#define ECLIC_SetPriorityIRQ __ECLIC_SetPriorityIRQ |
Definition at line 263 of file core_feature_eclic.h.
#define ECLIC_SetPriorityIRQ_S __ECLIC_SetPriorityIRQ_S |
Definition at line 279 of file core_feature_eclic.h.
#define ECLIC_SetShvIRQ __ECLIC_SetShvIRQ |
Definition at line 257 of file core_feature_eclic.h.
#define ECLIC_SetShvIRQ_S __ECLIC_SetShvIRQ_S |
Definition at line 273 of file core_feature_eclic.h.
#define ECLIC_SetSth __ECLIC_SetSth |
Definition at line 269 of file core_feature_eclic.h.
#define ECLIC_SetTrigIRQ __ECLIC_SetTrigIRQ |
Definition at line 255 of file core_feature_eclic.h.
#define ECLIC_SetTrigIRQ_S __ECLIC_SetTrigIRQ_S |
Definition at line 271 of file core_feature_eclic.h.
#define ECLIC_SetVector __ECLIC_SetVector |
Definition at line 294 of file core_feature_eclic.h.
#define ECLIC_SetVector_S __ECLIC_SetVector_S |
Definition at line 298 of file core_feature_eclic.h.
#define RESTORE_IRQ_CSR_CONTEXT | ( | ) |
Restore necessary CSRs from variables for vector interrupt nesting.
This macro is used restore CSRs(MCAUSE, MEPC, MSUB) from pre-defined variables in SAVE_IRQ_CSR_CONTEXT macro.
Definition at line 1356 of file core_feature_eclic.h.
#define RESTORE_IRQ_CSR_CONTEXT_S | ( | ) |
Restore necessary CSRs from variables for vector interrupt nesting in supervisor mode.
Definition at line 1363 of file core_feature_eclic.h.
#define SAVE_IRQ_CSR_CONTEXT | ( | ) |
Save necessary CSRs into variables for vector interrupt nesting.
This macro is used to declare variables which are used for saving CSRs(MCAUSE, MEPC, MSUB), and it will read these CSR content into these variables, it need to be used in a vector-interrupt if nesting is required.
Definition at line 1334 of file core_feature_eclic.h.
#define SAVE_IRQ_CSR_CONTEXT_S | ( | ) |
Save necessary CSRs into variables for vector interrupt nesting in supervisor mode.
Definition at line 1341 of file core_feature_eclic.h.
enum IRQn |
Definition of IRQn numbers.
The core interrupt enumeration names for IRQn values are defined in the file <Device>.h.
The table below describes the core interrupt names and their availability in various Nuclei Cores.
Definition at line 202 of file core_feature_eclic.h.
__STATIC_FORCEINLINE void __ECLIC_ClearPendingIRQ | ( | IRQn_Type | IRQn | ) |
Clear a specific interrupt from pending.
This function removes the pending state of the specific interrupt IRQn. IRQn cannot be a negative number.
[in] | IRQn | Interrupt number |
Definition at line 506 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_DisableIRQ | ( | IRQn_Type | IRQn | ) |
Disable a specific interrupt.
This function disables the specific interrupt IRQn.
[in] | IRQn | Number of the external interrupt to disable |
Definition at line 454 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_DisableIRQ_S | ( | IRQn_Type | IRQn | ) |
Disable a specific interrupt in supervisor mode.
This function disables the specific interrupt IRQn.
[in] | IRQn | Number of the external interrupt to disable |
Definition at line 1145 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_EnableIRQ | ( | IRQn_Type | IRQn | ) |
Enable a specific interrupt.
This function enables the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 420 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_EnableIRQ_S | ( | IRQn_Type | IRQn | ) |
Enable a specific interrupt in supervisor mode.
This function enables the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 1111 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetCfgNlbits | ( | void | ) |
Get nlbits value.
This function get the nlbits value of CLICCFG register.
Definition at line 329 of file core_feature_eclic.h.
References CLIC_CLICCFG_NLBIT_Msk, CLIC_CLICCFG_NLBIT_Pos, and ECLIC.
Referenced by __ECLIC_GetLevelIRQ(), __ECLIC_GetLevelIRQ_S(), __ECLIC_GetPriorityIRQ(), __ECLIC_GetPriorityIRQ_S(), __ECLIC_SetLevelIRQ(), __ECLIC_SetLevelIRQ_S(), __ECLIC_SetPriorityIRQ(), and __ECLIC_SetPriorityIRQ_S().
__STATIC_FORCEINLINE uint8_t __ECLIC_GetCtrlIRQ | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt Input Control Register value for a specific interrupt.
This function modify ECLIC Interrupt Input Control register of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 617 of file core_feature_eclic.h.
References ECLIC.
Referenced by __ECLIC_GetLevelIRQ(), __ECLIC_GetPriorityIRQ(), __ECLIC_SetLevelIRQ(), and __ECLIC_SetPriorityIRQ().
__STATIC_FORCEINLINE uint8_t __ECLIC_GetCtrlIRQ_S | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt Input Control Register value for a specific interrupt in supervisor mode.
This function modify ECLIC Interrupt Input Control register of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 970 of file core_feature_eclic.h.
References ECLIC.
Referenced by __ECLIC_GetLevelIRQ_S(), __ECLIC_GetPriorityIRQ_S(), __ECLIC_SetLevelIRQ_S(), and __ECLIC_SetPriorityIRQ_S().
__STATIC_FORCEINLINE uint32_t __ECLIC_GetEnableIRQ | ( | IRQn_Type | IRQn | ) |
Get a specific interrupt enable status.
This function returns the interrupt enable status for the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 439 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetEnableIRQ_S | ( | IRQn_Type | IRQn | ) |
Get a specific interrupt enable status in supervisor mode.
This function returns the interrupt enable status for the specific interrupt IRQn in S MODE.
[in] | IRQn | Interrupt number |
Definition at line 1130 of file core_feature_eclic.h.
References CLIC_INTIE_IE_Msk, and ECLIC.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetInfoCtlbits | ( | void | ) |
Get CLICINTCTLBITS.
This function gets CLICINTCTLBITS from CLICINFO register.
Definition at line 362 of file core_feature_eclic.h.
References CLIC_CLICINFO_CTLBIT_Msk, CLIC_CLICINFO_CTLBIT_Pos, and ECLIC.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetInfoNum | ( | void | ) |
Get number of maximum interrupt inputs supported.
This function gets number of maximum interrupt inputs supported from CLICINFO register.
Definition at line 378 of file core_feature_eclic.h.
References CLIC_CLICINFO_NUM_Msk, CLIC_CLICINFO_NUM_Pos, and ECLIC.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetInfoVer | ( | void | ) |
Get the ECLIC version number.
This function gets the hardware version information from CLICINFO register.
Definition at line 345 of file core_feature_eclic.h.
References CLIC_CLICINFO_VER_Msk, CLIC_CLICINFO_VER_Pos, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetLevelIRQ | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt level of a specific interrupt.
This function get interrupt level of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 671 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetLevelIRQ_S | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt level of a specific interrupt.
This function get interrupt level of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 1025 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ_S(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetMth | ( | void | ) |
Get Machine Mode Interrupt Level Threshold.
This function gets machine mode interrupt level threshold.
Definition at line 404 of file core_feature_eclic.h.
References ECLIC.
__STATIC_FORCEINLINE int32_t __ECLIC_GetPendingIRQ | ( | IRQn_Type | IRQn | ) |
Get the pending specific interrupt.
This function returns the pending status of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 473 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetPriorityIRQ | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt priority of a specific interrupt.
This function get interrupt priority of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 732 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetPriorityIRQ_S | ( | IRQn_Type | IRQn | ) |
Get ECLIC Interrupt priority of a specific interrupt in supervisor mode.
This function get interrupt priority of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 1086 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ_S(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetShvIRQ | ( | IRQn_Type | IRQn | ) |
Get interrupt working mode for a specific interrupt.
This function get selective hardware vector or non-vector working mode of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 585 of file core_feature_eclic.h.
References CLIC_INTATTR_SHV_Msk, CLIC_INTATTR_SHV_Pos, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetShvIRQ_S | ( | IRQn_Type | IRQn | ) |
Get interrupt working mode for a specific interrupt in supervisor mode.
This function get selective hardware vector or non-vector working mode of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 938 of file core_feature_eclic.h.
References CLIC_INTATTR_SHV_Msk, CLIC_INTATTR_SHV_Pos, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetSth | ( | void | ) |
Get supervisor-mode Interrupt Level Threshold in supervisor mode.
This function gets supervisor mode interrupt level threshold.
Definition at line 858 of file core_feature_eclic.h.
References ECLIC.
__STATIC_FORCEINLINE uint32_t __ECLIC_GetTrigIRQ | ( | IRQn_Type | IRQn | ) |
Get trigger mode and polarity for a specific interrupt.
This function get trigger mode and polarity of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 548 of file core_feature_eclic.h.
References CLIC_INTATTR_TRIG_Msk, CLIC_INTATTR_TRIG_Pos, and ECLIC.
__STATIC_FORCEINLINE uint8_t __ECLIC_GetTrigIRQ_S | ( | IRQn_Type | IRQn | ) |
Get trigger mode and polarity for a specific interrupt in supervisor mode.
This function get trigger mode and polarity of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 900 of file core_feature_eclic.h.
References CLIC_INTATTR_TRIG_Msk, CLIC_INTATTR_TRIG_Pos, and ECLIC.
__STATIC_FORCEINLINE rv_csr_t __ECLIC_GetVector | ( | IRQn_Type | IRQn | ) |
Get Interrupt Vector of a specific interrupt.
This function get interrupt handler address of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 795 of file core_feature_eclic.h.
References __RV_CSR_READ, and CSR_MTVT.
__STATIC_FORCEINLINE rv_csr_t __ECLIC_GetVector_S | ( | IRQn_Type | IRQn | ) |
Get Interrupt Vector of a specific interrupt in supervisor mode.
This function get interrupt handler address of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 1198 of file core_feature_eclic.h.
References __RV_CSR_READ, and CSR_STVT.
__STATIC_FORCEINLINE void __ECLIC_SetCfgNlbits | ( | uint32_t | nlbits | ) |
Set nlbits value.
This function set the nlbits value of CLICCFG register.
[in] | nlbits | nlbits value |
Definition at line 313 of file core_feature_eclic.h.
References CLIC_CLICCFG_NLBIT_Msk, CLIC_CLICCFG_NLBIT_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetCtrlIRQ | ( | IRQn_Type | IRQn, |
uint8_t | intctrl | ||
) |
Modify ECLIC Interrupt Input Control Register for a specific interrupt.
This function modify ECLIC Interrupt Input Control(CLICINTCTL[i]) register of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | intctrl | Set value for CLICINTCTL[i] register |
Definition at line 601 of file core_feature_eclic.h.
References ECLIC.
Referenced by __ECLIC_SetLevelIRQ(), and __ECLIC_SetPriorityIRQ().
__STATIC_FORCEINLINE void __ECLIC_SetCtrlIRQ_S | ( | IRQn_Type | IRQn, |
uint8_t | intctrl | ||
) |
Modify ECLIC Interrupt Input Control Register for a specific interrupt in supervisor mode.
This function modify ECLIC Interrupt Input Control(CLICINTCTL[i]) register of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | intctrl | Set value for CLICINTCTL[i] register |
Definition at line 954 of file core_feature_eclic.h.
References ECLIC.
Referenced by __ECLIC_SetLevelIRQ_S(), and __ECLIC_SetPriorityIRQ_S().
__STATIC_FORCEINLINE void __ECLIC_SetLevelIRQ | ( | IRQn_Type | IRQn, |
uint8_t | lvl_abs | ||
) |
Set ECLIC Interrupt level of a specific interrupt.
This function set interrupt level of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | lvl_abs | Interrupt level |
Definition at line 637 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), __ECLIC_SetCtrlIRQ(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE void __ECLIC_SetLevelIRQ_S | ( | IRQn_Type | IRQn, |
uint8_t | lvl_abs | ||
) |
Set ECLIC Interrupt level of a specific interrupt in supervisor mode.
This function set interrupt level of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | lvl_abs | Interrupt level |
Definition at line 990 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ_S(), __ECLIC_SetCtrlIRQ_S(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE void __ECLIC_SetModeIRQ | ( | IRQn_Type | IRQn, |
uint32_t | mode | ||
) |
Set privilege mode of a specific interrupt.
This function set in which privilege mode the interrupts IRQn should be taken.
[in] | IRQn | Interrupt number |
[in] | mode | Privilege mode |
Definition at line 821 of file core_feature_eclic.h.
References CLIC_INTATTR_MODE_Msk, CLIC_INTATTR_MODE_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetMth | ( | uint8_t | mth | ) |
Set Machine Mode Interrupt Level Threshold.
This function sets machine mode interrupt level threshold.
[in] | mth | Interrupt Level Threshold. |
Definition at line 391 of file core_feature_eclic.h.
References ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetPendingIRQ | ( | IRQn_Type | IRQn | ) |
Set a specific interrupt to pending.
This function sets the pending bit for the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
Definition at line 489 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetPriorityIRQ | ( | IRQn_Type | IRQn, |
uint8_t | pri | ||
) |
Get ECLIC Interrupt priority of a specific interrupt.
This function get interrupt priority of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | pri | Interrupt priority |
Definition at line 702 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), __ECLIC_SetCtrlIRQ(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE void __ECLIC_SetPriorityIRQ_S | ( | IRQn_Type | IRQn, |
uint8_t | pri | ||
) |
Set ECLIC Interrupt priority of a specific interrupt in supervisor mode.
This function get interrupt priority of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | pri | Interrupt priority |
Definition at line 1056 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ_S(), __ECLIC_SetCtrlIRQ_S(), and ECLIC_MAX_NLBITS.
__STATIC_FORCEINLINE void __ECLIC_SetShvIRQ | ( | IRQn_Type | IRQn, |
uint32_t | shv | ||
) |
Set interrupt working mode for a specific interrupt.
This function set selective hardware vector or non-vector working mode of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | shv |
|
Definition at line 566 of file core_feature_eclic.h.
References CLIC_INTATTR_SHV_Msk, CLIC_INTATTR_SHV_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetShvIRQ_S | ( | IRQn_Type | IRQn, |
uint32_t | shv | ||
) |
Set interrupt working mode for a specific interrupt in supervisor mode.
This function set selective hardware vector or non-vector working mode of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | shv |
|
Definition at line 919 of file core_feature_eclic.h.
References CLIC_INTATTR_SHV_Msk, CLIC_INTATTR_SHV_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetSth | ( | uint8_t | sth | ) |
Set supervisor-mode Interrupt Level Threshold in supervisor mode.
This function sets supervisor-mode interrupt level threshold.
[in] | sth | Interrupt Level Threshold. |
Definition at line 842 of file core_feature_eclic.h.
References ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetTrigIRQ | ( | IRQn_Type | IRQn, |
uint32_t | trig | ||
) |
Set trigger mode and polarity for a specific interrupt.
This function set trigger mode and polarity of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | trig |
|
Definition at line 527 of file core_feature_eclic.h.
References CLIC_INTATTR_TRIG_Msk, CLIC_INTATTR_TRIG_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetTrigIRQ_S | ( | IRQn_Type | IRQn, |
uint32_t | trig | ||
) |
Set trigger mode and polarity for a specific interrupt in supervisor mode.
This function set trigger mode and polarity of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | trig |
|
Definition at line 879 of file core_feature_eclic.h.
References CLIC_INTATTR_TRIG_Msk, CLIC_INTATTR_TRIG_Pos, and ECLIC.
__STATIC_FORCEINLINE void __ECLIC_SetVector | ( | IRQn_Type | IRQn, |
rv_csr_t | vector | ||
) |
Set Interrupt Vector of a specific interrupt.
This function set interrupt handler address of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | vector | Interrupt handler address |
Definition at line 763 of file core_feature_eclic.h.
References __FENCE_I(), __RV_CSR_READ, CSR_MTVT, MFlushDCacheLine(), and MInvalICacheLine().
__STATIC_FORCEINLINE void __ECLIC_SetVector_S | ( | IRQn_Type | IRQn, |
rv_csr_t | vector | ||
) |
Set Interrupt Vector of a specific interrupt in supervisor mode.
This function set interrupt handler address of the specific interrupt IRQn.
[in] | IRQn | Interrupt number |
[in] | vector | Interrupt handler address |
Definition at line 1166 of file core_feature_eclic.h.
References __FENCE_I(), __RV_CSR_READ, CSR_STVT, SFlushDCacheLine(), and SInvalICacheLine().
__STATIC_FORCEINLINE rv_csr_t __get_exc_entry | ( | void | ) |
Get Exception entry address.
This function get exception handler address from 'CSR_MTVEC'.
Definition at line 1240 of file core_feature_eclic.h.
References __RV_CSR_READ, CSR_MTVEC, and ECLIC_MODE_MTVEC_Msk.
__STATIC_FORCEINLINE rv_csr_t __get_nmi_entry | ( | void | ) |
Get NMI interrupt entry from 'CSR_MNVEC'.
This function get NMI interrupt address from 'CSR_MNVEC'.
Definition at line 1299 of file core_feature_eclic.h.
References __RV_CSR_READ, and CSR_MNVEC.
__STATIC_FORCEINLINE rv_csr_t __get_nonvec_entry | ( | void | ) |
Get Non-vector interrupt entry address.
This function get Non-vector interrupt address.
Definition at line 1279 of file core_feature_eclic.h.
References __RV_CSR_READ, CSR_MTVEC, CSR_MTVT2, and ECLIC_MODE_MTVEC_Msk.
__STATIC_FORCEINLINE void __set_exc_entry | ( | rv_csr_t | addr | ) |
Set Exception entry address.
This function set exception handler address to 'CSR_MTVEC'.
[in] | addr | Exception handler address |
Definition at line 1222 of file core_feature_eclic.h.
References __RV_CSR_WRITE, CSR_MTVEC, and ECLIC_MODE_MTVEC_Msk.
__STATIC_FORCEINLINE void __set_nonvec_entry | ( | rv_csr_t | addr | ) |
Set Non-vector interrupt entry address.
This function set Non-vector interrupt address.
[in] | addr | Non-vector interrupt entry address |
Definition at line 1257 of file core_feature_eclic.h.
References __RV_CSR_READ, __RV_CSR_WRITE, CSR_MTVEC, CSR_MTVT2, and ECLIC_MODE_MTVEC_Msk.