![]() |
NMSIS-Core
Version 1.5.0
NMSIS-Core support for Nuclei processor-based devices
|
Functions that manage interrupts and exceptions via the ECLIC. More...
Enumerations | |
| enum | IRQn_Type { 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 uint32_t | __ECLIC_GetInfoShadowNum (void) |
| Get number of shadow register groups. 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_INLINE void | __ECLIC_SetLevelIRQ (IRQn_Type IRQn, uint8_t lvl_abs) |
| Set ECLIC Interrupt level of a specific interrupt. More... | |
| __STATIC_INLINE uint8_t | __ECLIC_GetLevelIRQ (IRQn_Type IRQn) |
| Get ECLIC Interrupt level of a specific interrupt. More... | |
| __STATIC_INLINE void | __ECLIC_SetPriorityIRQ (IRQn_Type IRQn, uint8_t pri) |
| Get ECLIC Interrupt priority of a specific interrupt. More... | |
| __STATIC_INLINE uint8_t | __ECLIC_GetPriorityIRQ (IRQn_Type IRQn) |
| Get ECLIC Interrupt priority of a specific interrupt. More... | |
| __STATIC_INLINE 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_SetPendingIRQ_S (IRQn_Type IRQn) |
| Set a specific interrupt to pending in supervisor mode. More... | |
| __STATIC_FORCEINLINE int32_t | __ECLIC_GetPendingIRQ_S (IRQn_Type IRQn) |
| Get the pending specific interrupt in supervisor mode. More... | |
| __STATIC_FORCEINLINE void | __ECLIC_ClearPendingIRQ_S (IRQn_Type IRQn) |
| Clear a specific interrupt from pending 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_INLINE void | __ECLIC_SetLevelIRQ_S (IRQn_Type IRQn, uint8_t lvl_abs) |
| Set ECLIC Interrupt level of a specific interrupt in supervisor mode. More... | |
| __STATIC_INLINE uint8_t | __ECLIC_GetLevelIRQ_S (IRQn_Type IRQn) |
| Get ECLIC Interrupt level of a specific interrupt. More... | |
| __STATIC_INLINE void | __ECLIC_SetPriorityIRQ_S (IRQn_Type IRQn, uint8_t pri) |
| Set ECLIC Interrupt priority of a specific interrupt in supervisor mode. More... | |
| __STATIC_INLINE 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_INLINE 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_INLINE void | __set_nonvec_entry (rv_csr_t addr) |
| Set Non-vector interrupt entry address. More... | |
| __STATIC_INLINE 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 259 of file core_feature_eclic.h.
| #define ECLIC_ClearPendingIRQ_S __ECLIC_ClearPendingIRQ_S |
Definition at line 286 of file core_feature_eclic.h.
| #define ECLIC_DisableIRQ __ECLIC_DisableIRQ |
Definition at line 256 of file core_feature_eclic.h.
| #define ECLIC_DisableIRQ_S __ECLIC_DisableIRQ_S |
Definition at line 299 of file core_feature_eclic.h.
| #define ECLIC_EnableIRQ __ECLIC_EnableIRQ |
Definition at line 254 of file core_feature_eclic.h.
| #define ECLIC_EnableIRQ_S __ECLIC_EnableIRQ_S |
Definition at line 297 of file core_feature_eclic.h.
| #define ECLIC_GetCfgNlbits __ECLIC_GetCfgNlbits |
Definition at line 247 of file core_feature_eclic.h.
| #define ECLIC_GetCtrlIRQ __ECLIC_GetCtrlIRQ |
Definition at line 265 of file core_feature_eclic.h.
| #define ECLIC_GetCtrlIRQ_S __ECLIC_GetCtrlIRQ_S |
Definition at line 292 of file core_feature_eclic.h.
| #define ECLIC_GetEnableIRQ __ECLIC_GetEnableIRQ |
Definition at line 255 of file core_feature_eclic.h.
| #define ECLIC_GetEnableIRQ_S __ECLIC_GetEnableIRQ_S |
Definition at line 298 of file core_feature_eclic.h.
| #define ECLIC_GetInfoCtlbits __ECLIC_GetInfoCtlbits |
Definition at line 249 of file core_feature_eclic.h.
| #define ECLIC_GetInfoNum __ECLIC_GetInfoNum |
Definition at line 250 of file core_feature_eclic.h.
| #define ECLIC_GetInfoShadowNum __ECLIC_GetInfoShadowNum |
Definition at line 251 of file core_feature_eclic.h.
| #define ECLIC_GetInfoVer __ECLIC_GetInfoVer |
Definition at line 248 of file core_feature_eclic.h.
| #define ECLIC_GetLevelIRQ __ECLIC_GetLevelIRQ |
Definition at line 267 of file core_feature_eclic.h.
| #define ECLIC_GetLevelIRQ_S __ECLIC_GetLevelIRQ_S |
Definition at line 294 of file core_feature_eclic.h.
| #define ECLIC_GetMth __ECLIC_GetMth |
Definition at line 253 of file core_feature_eclic.h.
| #define ECLIC_GetPendingIRQ __ECLIC_GetPendingIRQ |
Definition at line 258 of file core_feature_eclic.h.
| #define ECLIC_GetPendingIRQ_S __ECLIC_GetPendingIRQ_S |
Definition at line 285 of file core_feature_eclic.h.
| #define ECLIC_GetPriorityIRQ __ECLIC_GetPriorityIRQ |
Definition at line 269 of file core_feature_eclic.h.
| #define ECLIC_GetPriorityIRQ_S __ECLIC_GetPriorityIRQ_S |
Definition at line 296 of file core_feature_eclic.h.
| #define ECLIC_GetShvIRQ __ECLIC_GetShvIRQ |
Definition at line 263 of file core_feature_eclic.h.
| #define ECLIC_GetShvIRQ_S __ECLIC_GetShvIRQ_S |
Definition at line 290 of file core_feature_eclic.h.
| #define ECLIC_GetSth __ECLIC_GetSth |
Definition at line 283 of file core_feature_eclic.h.
| #define ECLIC_GetTrigIRQ __ECLIC_GetTrigIRQ |
Definition at line 261 of file core_feature_eclic.h.
| #define ECLIC_GetTrigIRQ_S __ECLIC_GetTrigIRQ_S |
Definition at line 288 of file core_feature_eclic.h.
| #define ECLIC_GetVector __ECLIC_GetVector |
Definition at line 319 of file core_feature_eclic.h.
| #define ECLIC_GetVector_S __ECLIC_GetVector_S |
Definition at line 323 of file core_feature_eclic.h.
| #define ECLIC_SetCfgNlbits __ECLIC_SetCfgNlbits |
Definition at line 246 of file core_feature_eclic.h.
| #define ECLIC_SetCtrlIRQ __ECLIC_SetCtrlIRQ |
Definition at line 264 of file core_feature_eclic.h.
| #define ECLIC_SetCtrlIRQ_S __ECLIC_SetCtrlIRQ_S |
Definition at line 291 of file core_feature_eclic.h.
| #define ECLIC_SetLevelIRQ __ECLIC_SetLevelIRQ |
Definition at line 266 of file core_feature_eclic.h.
| #define ECLIC_SetLevelIRQ_S __ECLIC_SetLevelIRQ_S |
Definition at line 293 of file core_feature_eclic.h.
| #define ECLIC_SetModeIRQ __ECLIC_SetModeIRQ |
Definition at line 281 of file core_feature_eclic.h.
| #define ECLIC_SetMth __ECLIC_SetMth |
Definition at line 252 of file core_feature_eclic.h.
| #define ECLIC_SetPendingIRQ __ECLIC_SetPendingIRQ |
Definition at line 257 of file core_feature_eclic.h.
| #define ECLIC_SetPendingIRQ_S __ECLIC_SetPendingIRQ_S |
Definition at line 284 of file core_feature_eclic.h.
| #define ECLIC_SetPriorityIRQ __ECLIC_SetPriorityIRQ |
Definition at line 268 of file core_feature_eclic.h.
| #define ECLIC_SetPriorityIRQ_S __ECLIC_SetPriorityIRQ_S |
Definition at line 295 of file core_feature_eclic.h.
| #define ECLIC_SetShvIRQ __ECLIC_SetShvIRQ |
Definition at line 262 of file core_feature_eclic.h.
| #define ECLIC_SetShvIRQ_S __ECLIC_SetShvIRQ_S |
Definition at line 289 of file core_feature_eclic.h.
| #define ECLIC_SetSth __ECLIC_SetSth |
Definition at line 282 of file core_feature_eclic.h.
| #define ECLIC_SetTrigIRQ __ECLIC_SetTrigIRQ |
Definition at line 260 of file core_feature_eclic.h.
| #define ECLIC_SetTrigIRQ_S __ECLIC_SetTrigIRQ_S |
Definition at line 287 of file core_feature_eclic.h.
| #define ECLIC_SetVector __ECLIC_SetVector |
Definition at line 318 of file core_feature_eclic.h.
| #define ECLIC_SetVector_S __ECLIC_SetVector_S |
Definition at line 322 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 1903 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 1910 of file core_feature_eclic.h.
| #define RESTORE_SSUBM_VAR | ( | ) |
Definition at line 1847 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 1880 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 1887 of file core_feature_eclic.h.
| #define SAVE_SSUBM_VAR | ( | ) |
Definition at line 1846 of file core_feature_eclic.h.
| enum IRQn_Type |
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 206 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 555 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
| __STATIC_FORCEINLINE void __ECLIC_ClearPendingIRQ_S | ( | IRQn_Type | IRQn | ) |
Clear a specific interrupt from pending in supervisor mode.
This function removes the pending state of the specific interrupt IRQn in supervisor mode. IRQn cannot be a negative number.
| [in] | IRQn | Interrupt number |
Definition at line 1177 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 503 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 1468 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 469 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 1434 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 355 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 670 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 1293 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 488 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 1453 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 388 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 404 of file core_feature_eclic.h.
References CLIC_CLICINFO_NUM_Msk, CLIC_CLICINFO_NUM_Pos, and ECLIC.
| __STATIC_FORCEINLINE uint32_t __ECLIC_GetInfoShadowNum | ( | void | ) |
Get number of shadow register groups.
This function gets the number of shadow register groups from the CLICINFO register. This includes both the first-come-first-served dedicated interrupt shadow registers and the shadow registers designed for different interrupt levels. This number represents the total count for M mode; if S Mode is present, the number is the same as M Mode. Note that shadow register 0 is fixed for first-come-first-served m/s-mode interrupt and cannot be configured.
Definition at line 424 of file core_feature_eclic.h.
References CLIC_CLICINFO_SHD_NUM_Msk, CLIC_CLICINFO_SHD_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 371 of file core_feature_eclic.h.
References CLIC_CLICINFO_VER_Msk, CLIC_CLICINFO_VER_Pos, and ECLIC.
| __STATIC_INLINE 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 724 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), and ECLIC_MAX_NLBITS.
| __STATIC_INLINE 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 1348 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 453 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 522 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
| __STATIC_FORCEINLINE int32_t __ECLIC_GetPendingIRQ_S | ( | IRQn_Type | IRQn | ) |
Get the pending specific interrupt in supervisor mode.
This function returns the pending status of the specific interrupt IRQn in supervisor mode.
| [in] | IRQn | Interrupt number |
Definition at line 1160 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
| __STATIC_INLINE 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 785 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), and ECLIC_MAX_NLBITS.
| __STATIC_INLINE 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 1409 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 638 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 1261 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 1125 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 599 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 1221 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 1060 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 1521 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 337 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 654 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 1277 of file core_feature_eclic.h.
References ECLIC.
Referenced by __ECLIC_SetLevelIRQ_S(), and __ECLIC_SetPriorityIRQ_S().
| __STATIC_INLINE 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 690 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), __ECLIC_SetCtrlIRQ(), and ECLIC_MAX_NLBITS.
| __STATIC_INLINE 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 1313 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 1086 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. This threshold is not effective immediately, if you want to safely change it, you need to disable all interrupts first, and then change it, and do fence and then enable all interrupts.
| [in] | mth | Interrupt Level Threshold. |
Definition at line 440 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 538 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
| __STATIC_FORCEINLINE void __ECLIC_SetPendingIRQ_S | ( | IRQn_Type | IRQn | ) |
Set a specific interrupt to pending in supervisor mode.
This function sets the pending bit for the specific interrupt IRQn in supervisor mode.
| [in] | IRQn | Interrupt number |
Definition at line 1141 of file core_feature_eclic.h.
References CLIC_INTIP_IP_Msk, and ECLIC.
| __STATIC_INLINE 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 755 of file core_feature_eclic.h.
References __ECLIC_GetCfgNlbits(), __ECLIC_GetCtrlIRQ(), __ECLIC_SetCtrlIRQ(), and ECLIC_MAX_NLBITS.
| __STATIC_INLINE 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 1379 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 617 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 1240 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 1109 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 576 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 1198 of file core_feature_eclic.h.
References CLIC_INTATTR_TRIG_Msk, CLIC_INTATTR_TRIG_Pos, and ECLIC.
| __STATIC_INLINE 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 1028 of file core_feature_eclic.h.
References __FENCE_I(), __RV_CSR_READ, CSR_MTVT, MFlushDCacheLine(), and MInvalICacheLine().
| __STATIC_INLINE 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 1489 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 1776 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 1835 of file core_feature_eclic.h.
References __RV_CSR_READ, and CSR_MNVEC.
| __STATIC_INLINE rv_csr_t __get_nonvec_entry | ( | void | ) |
Get Non-vector interrupt entry address.
This function get Non-vector interrupt address.
Definition at line 1815 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 1758 of file core_feature_eclic.h.
References __RV_CSR_WRITE, CSR_MTVEC, and ECLIC_MODE_MTVEC_Msk.
| __STATIC_INLINE 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 1793 of file core_feature_eclic.h.
References __RV_CSR_READ, __RV_CSR_WRITE, CSR_MTVEC, CSR_MTVT2, and ECLIC_MODE_MTVEC_Msk.