F29H85x-SDK  26.00.00
 
Interrupt

Introduction

Data Structures

struct  Interrupt_Config
 
struct  Interrupt_NmiStatus
 

Functions

void Interrupt_defaultHandler (void)
 
void Interrupt_defaultNMIHandler (void)
 
void Interrupt_clearEsmEaFlags (Interrupt_NmiStatus *nmiStatus)
 
static void Interrupt_enableGlobal (void)
 
static void Interrupt_disableGlobal (void)
 
static void Interrupt_enable (uint32_t intNum)
 
static void Interrupt_disable (uint32_t intNum)
 
static void Interrupt_force (uint32_t intNum)
 
static void Interrupt_clearFlag (uint32_t intNum)
 
static void Interrupt_clearOverflowFlag (uint32_t intNum)
 
static void Interrupt_register (uint32_t intNum, void(*handler)(void))
 
static void Interrupt_unregister (uint32_t intNum)
 
static void Interrupt_setThreshold (uint8_t threshold)
 
static void Interrupt_setGroupMask (uint8_t groupMask)
 
static void Interrupt_setPriority (uint32_t intNum, uint8_t priority)
 
static void Interrupt_setContextID (uint32_t intNum, Interrupt_Context contextID)
 
static void Interrupt_setLinkOwner (uint32_t intNum, SSU_Link linkOwner)
 
static void Interrupt_setAPILink (uint32_t intNum, SSU_APILink apiLinkID)
 
static void Interrupt_setActiveContextID (Interrupt_Context contextID)
 
static void Interrupt_enableSupervisorIgnoreINTE (void)
 
static void Interrupt_disableSupervisorIgnoreINTE (void)
 
static void Interrupt_setRTINTSPWarning (uint8_t level, uint8_t priority)
 
static void Interrupt_setINTSP (SSU_Stack stack)
 
static void Interrupt_lockBootLinkUpdates (void)
 
static void Interrupt_lockRegister (uint32_t registers)
 
static void Interrupt_unlockRegister (uint32_t registers)
 
static void Interrupt_commitRegister (uint32_t registers)
 
void Interrupt_initModule (void)
 
void Interrupt_initVectorTable (void)
 
void Interrupt_configChannel (uint32_t intNum, Interrupt_Config config)
 
void Interrupt_configNMI (void(*handler)(void), SSU_Link linkOwner)
 

Enumerations

enum  Interrupt_Context { INTERRUPT_CONTEXTID_0 , INTERRUPT_CONTEXTID_1 , INTERRUPT_CONTEXTID_2 , INTERRUPT_CONTEXT_AGNOSTIC }
 

Macros

#define INTERRUPT_NO_OF_CHANNELS   256U
 Total number of interrupts available in the device.
 
#define INTERRUPT_LINK_REGS   PIPE_LOCK_LINK_LOCK
 
#define INTERRUPT_CONFIG_REGS   PIPE_LOCK_CONFIG_LOCK
 
#define INTERRUPT_GLOBAL_REGS   PIPE_LOCK_GLOBAL_LOCK
 
#define INTERRUPT_VECTOR_REG   PIPE_LOCK_VECT_LOCK
 

Macro Definition Documentation

◆ INTERRUPT_NO_OF_CHANNELS

#define INTERRUPT_NO_OF_CHANNELS   256U

Total number of interrupts available in the device.

◆ INTERRUPT_LINK_REGS

#define INTERRUPT_LINK_REGS   PIPE_LOCK_LINK_LOCK

Values that can be passed to Interrupt_lockRegister(), Interrupt_unlockRegister(), Interrupt_commitRegister() as the registers parameter.

◆ INTERRUPT_CONFIG_REGS

#define INTERRUPT_CONFIG_REGS   PIPE_LOCK_CONFIG_LOCK

◆ INTERRUPT_GLOBAL_REGS

#define INTERRUPT_GLOBAL_REGS   PIPE_LOCK_GLOBAL_LOCK

◆ INTERRUPT_VECTOR_REG

#define INTERRUPT_VECTOR_REG   PIPE_LOCK_VECT_LOCK

Enumeration Type Documentation

◆ Interrupt_Context

Values that can be passed to Interrupt_configChannel() as contextID parameter.

Enumerator
INTERRUPT_CONTEXTID_0 
INTERRUPT_CONTEXTID_1 
INTERRUPT_CONTEXTID_2 
INTERRUPT_CONTEXT_AGNOSTIC 

Function Documentation

◆ Interrupt_defaultHandler()

void Interrupt_defaultHandler ( void )
extern

◆ Interrupt_defaultNMIHandler()

void Interrupt_defaultNMIHandler ( void )
extern

◆ Interrupt_clearEsmEaFlags()

void Interrupt_clearEsmEaFlags ( Interrupt_NmiStatus * nmiStatus)
extern

◆ Interrupt_enableGlobal()

static void Interrupt_enableGlobal ( void )
inlinestatic

Global enable for INT and RTINT.

Returns
None

◆ Interrupt_disableGlobal()

static void Interrupt_disableGlobal ( void )
inlinestatic

Global disable for INT and RTINT.

Returns
None

◆ Interrupt_enable()

static void Interrupt_enable ( uint32_t intNum)
inlinestatic

Enables an interrupt.

Parameters
intNumspecifies the interrupt to be enabled.

The specified interrupt is enabled in the interrupt controller. Other enables for the interrupt (such as at the peripheral level) are unaffected by this function.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None.

◆ Interrupt_disable()

static void Interrupt_disable ( uint32_t intNum)
inlinestatic

Disables an interrupt.

Parameters
intNumspecifies the interrupt to be disabled.

The specified interrupt is disabled in the interrupt controller. Other enables for the interrupt (such as at the peripheral level) are unaffected by this function.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None.

◆ Interrupt_force()

static void Interrupt_force ( uint32_t intNum)
inlinestatic

Force an interrupt

Parameters
intNumspecifies the interrupt to be forced.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None

◆ Interrupt_clearFlag()

static void Interrupt_clearFlag ( uint32_t intNum)
inlinestatic

Clear the interrupt flag

Parameters
intNumspecifies the interrupt flag to be cleared.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None

◆ Interrupt_clearOverflowFlag()

static void Interrupt_clearOverflowFlag ( uint32_t intNum)
inlinestatic

Clear the interrupt overflow flag

Parameters
intNumspecifies the interrupt flag to be cleared.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None

◆ Interrupt_register()

static void Interrupt_register ( uint32_t intNum,
void(* handler )(void) )
inlinestatic

Registers a function to be called when an interrupt occurs.

Parameters
intNumspecifies the interrupt in question.
handleris a pointer to the function to be called.

This function is used to specify the handler function to be called when the given interrupt is asserted to the processor. When the interrupt occurs, if it is enabled (via Interrupt_enable()), the handler function will be called in interrupt context. Since the handler function can preempt other code, care must be taken to protect memory or peripherals that are accessed by the handler and other non-handler code.

The available intNum values are supplied in inc/hw_ints.h.

Returns
None.

◆ Interrupt_unregister()

static void Interrupt_unregister ( uint32_t intNum)
inlinestatic

Unregisters the function to be called when an interrupt occurs.

Parameters
intNumspecifies the interrupt in question.

This function is used to indicate that a default handler Interrupt_defaultHandler() should be called when the given interrupt is asserted to the processor. Call Interrupt_disable() to disable the interrupt before calling this function.

The available intNum values are supplied in inc/hw_ints.h.

See also
Interrupt_register() for important information about registering interrupt handlers.
Returns
None.

◆ Interrupt_setThreshold()

static void Interrupt_setThreshold ( uint8_t threshold)
inlinestatic

Set the Threshold for RTINT

Parameters
thresholdThreshold value (0-255)
Returns
None

◆ Interrupt_setGroupMask()

static void Interrupt_setGroupMask ( uint8_t groupMask)
inlinestatic

Set the Interrupt Group Mask

Parameters
groupMaskGroup mask (0-0xFF)
Returns
None

◆ Interrupt_setPriority()

static void Interrupt_setPriority ( uint32_t intNum,
uint8_t priority )
inlinestatic

Set the Interrupt Priority Level

Parameters
intNumspecifies the interrupt in question.
priorityPriority level (0-255)
Returns
None

◆ Interrupt_setContextID()

static void Interrupt_setContextID ( uint32_t intNum,
Interrupt_Context contextID )
inlinestatic

Set the Interrupt Context ID

Parameters
intNumspecifies the interrupt in question.
contextIDContext ID to be set for the interrupt
  • INTERRUPT_CONTEXTID_0
  • INTERRUPT_CONTEXTID_1
  • INTERRUPT_CONTEXTID_2
  • INTERRUPT_CONTEXT_AGNOSTIC
Returns
None

◆ Interrupt_setLinkOwner()

static void Interrupt_setLinkOwner ( uint32_t intNum,
SSU_Link linkOwner )
inlinestatic

Set the Interrupt Link Owner

Parameters
intNumspecifies the interrupt in question.
linkOwnerLinkOwner to be set for the interrupt (SSU_LINK0..15)
Returns
None

◆ Interrupt_setAPILink()

static void Interrupt_setAPILink ( uint32_t intNum,
SSU_APILink apiLinkID )
inlinestatic

Set the Access protection inheritance link

Parameters
intNumspecifies the interrupt in question.
apiLinkIDAccess protection inheritance link for the interrupt (Use SSU_API_LINK1..15, or SSU_API_DISABLE to disable)
Returns
None

◆ Interrupt_setActiveContextID()

static void Interrupt_setActiveContextID ( Interrupt_Context contextID)
inlinestatic

Set the current Context ID

Parameters
contextIDcan be one of the following :
  • INTERRUPT_CONTEXTID_0
  • INTERRUPT_CONTEXTID_1
  • INTERRUPT_CONTEXTID_2
Returns
None

◆ Interrupt_enableSupervisorIgnoreINTE()

static void Interrupt_enableSupervisorIgnoreINTE ( void )
inlinestatic

Enable Supervisor ignore INTE control

Parameters
None
Returns
None

◆ Interrupt_disableSupervisorIgnoreINTE()

static void Interrupt_disableSupervisorIgnoreINTE ( void )
inlinestatic

Disable Supervisor ignore INTE control

Parameters
None
Returns
None

◆ Interrupt_setRTINTSPWarning()

static void Interrupt_setRTINTSPWarning ( uint8_t level,
uint8_t priority )
inlinestatic

RTINT Stack Warning

Parameters
levelLevel for the RTISP to trigger the warning (0-15)
prioritypriority level for which interrupts will be disabled

Once RTISP >= level the RTINT assertions are only for interrupts higher in priority than the configured priority

Returns
None

◆ Interrupt_setINTSP()

static void Interrupt_setINTSP ( SSU_Stack stack)
inlinestatic

Sets the INT Stack Pointer

Parameters
stackis the INT stack.

CPU will acknowledge the INT only when its current execution stack matched with INTSP

Returns
None

◆ Interrupt_lockBootLinkUpdates()

static void Interrupt_lockBootLinkUpdates ( void )
inlinestatic

Lock the Boot link updates to config registers

Returns
None

◆ Interrupt_lockRegister()

static void Interrupt_lockRegister ( uint32_t registers)
inlinestatic

Lock PIPE registers

Parameters
registersRegisters to be locked. Can be individual or OR of the following -
  • INTERRUPT_LINK_REGS
  • INTERRUPT_CONFIG_REGS
  • INTERRUPT_GLOBAL_REGS
  • INTERRUPT_VECTOR_REG
Returns
None

◆ Interrupt_unlockRegister()

static void Interrupt_unlockRegister ( uint32_t registers)
inlinestatic

Unlock PIPE registers

Parameters
registersRegisters to be unlocked. Can be individual or OR of the following -
  • INTERRUPT_LINK_REGS
  • INTERRUPT_CONFIG_REGS
  • INTERRUPT_GLOBAL_REGS
  • INTERRUPT_VECTOR_REG
Returns
None

◆ Interrupt_commitRegister()

static void Interrupt_commitRegister ( uint32_t registers)
inlinestatic

Commit PIPE registers

Parameters
registersRegisters to be committed. Can be individual or OR of the following -
  • INTERRUPT_LINK_REGS
  • INTERRUPT_CONFIG_REGS
  • INTERRUPT_GLOBAL_REGS
  • INTERRUPT_VECTOR_REG
Returns
None

◆ Interrupt_initModule()

void Interrupt_initModule ( void )
extern

Initializes the PIPE control registers by setting them to a known state.

This function initializes the PIPE control registers. After globally disabling interrupts and enabling the PIPE, it clears all of the PIPE interrupt enable bits and interrupt flags.

Returns
None.

◆ Interrupt_initVectorTable()

void Interrupt_initVectorTable ( void )
extern

Initializes the PIPE vector table by setting all vectors to a default handler function.

Returns
None.

◆ Interrupt_configChannel()

void Interrupt_configChannel ( uint32_t intNum,
Interrupt_Config config )
extern

Configures the interrupt channel

Parameters
intNumspecifies the interrupt in question.
configConfiguration parameters. Refer to the struct Interrupt_Config
Returns
None.

◆ Interrupt_configNMI()

void Interrupt_configNMI ( void(* handler )(void),
SSU_Link linkOwner )
extern

Configures the NMI

Parameters
handleris a pointer to the function to be called.
linkOwneris the linkOwner (INTERRUPT_LINKOWNER_0-15)
Returns
None.