RZT Flexible Software Package Documentation  Release v2.3.0

 
Inter CPU IRQ Interface

Detailed Description

Interface for INTCPU interrupt.

Summary

The ICU_INTER_CPU_IRQ Interface is for configuring and firing INTCPU interrupts.

Data Structures

struct  icu_inter_cpu_irq_callback_args_t
 
struct  icu_inter_cpu_irq_cfg_t
 
struct  icu_inter_cpu_irq_api_t
 
struct  icu_inter_cpu_irq_instance_t
 

Typedefs

typedef void icu_inter_cpu_irq_ctrl_t
 

Data Structure Documentation

◆ icu_inter_cpu_irq_callback_args_t

struct icu_inter_cpu_irq_callback_args_t

Callback function parameter data

Data Fields
void const * p_context

Placeholder for user data. Set in icu_inter_cpu_irq_api_t::open function in icu_inter_cpu_irq_cfg_t.

◆ icu_inter_cpu_irq_cfg_t

struct icu_inter_cpu_irq_cfg_t

User configuration structure, used in open function

Data Fields

uint8_t channel
 Hardware channel used.
 
uint8_t ipl
 Interrupt priority.
 
IRQn_Type irq
 Interrupt number assigned to this instance.
 
void(* p_callback )(icu_inter_cpu_irq_callback_args_t *p_args)
 
void const * p_context
 
void const * p_extend
 INTCPU hardware dependent configuration.
 

Field Documentation

◆ p_callback

void(* icu_inter_cpu_irq_cfg_t::p_callback) (icu_inter_cpu_irq_callback_args_t *p_args)

Callback provided INTCPU occurs.

◆ p_context

void const* icu_inter_cpu_irq_cfg_t::p_context

Placeholder for user data. Passed to the user callback in icu_inter_cpu_irq_callback_args_t.

◆ icu_inter_cpu_irq_api_t

struct icu_inter_cpu_irq_api_t

ICU_INTER_CPU_IRQ driver structure. ICU_INTER_CPU_IRQ functions implemented at the HAL layer will follow this API.

Data Fields

fsp_err_t(* open )(icu_inter_cpu_irq_ctrl_t *const p_ctrl, icu_inter_cpu_irq_cfg_t const *const p_cfg)
 
fsp_err_t(* generate )(icu_inter_cpu_irq_ctrl_t *const p_ctrl)
 
fsp_err_t(* callbackSet )(icu_inter_cpu_irq_ctrl_t *const p_ctrl, void(*p_callback)(icu_inter_cpu_irq_callback_args_t *), void const *const p_context, icu_inter_cpu_irq_callback_args_t *const p_callback_memory)
 
fsp_err_t(* close )(icu_inter_cpu_irq_ctrl_t *const p_ctrl)
 

Field Documentation

◆ open

fsp_err_t(* icu_inter_cpu_irq_api_t::open) (icu_inter_cpu_irq_ctrl_t *const p_ctrl, icu_inter_cpu_irq_cfg_t const *const p_cfg)

Opens the core to core driver and initializes the hardware.

Parameters
[in]p_ctrlPointer to control block. Must be declared by user. Elements are set here.
[in]p_cfgPointer to configuration structure.

◆ generate

fsp_err_t(* icu_inter_cpu_irq_api_t::generate) (icu_inter_cpu_irq_ctrl_t *const p_ctrl)

Generates INTCPU interrupt.

Parameters
[in]p_ctrlControl block set for this INTCPU interrupt.

◆ callbackSet

fsp_err_t(* icu_inter_cpu_irq_api_t::callbackSet) (icu_inter_cpu_irq_ctrl_t *const p_ctrl, void(*p_callback)(icu_inter_cpu_irq_callback_args_t *), void const *const p_context, icu_inter_cpu_irq_callback_args_t *const p_callback_memory)

Specify callback function and optional context pointer and working memory pointer.

Parameters
[in]p_ctrlPointer to the ICU_INTER_CPU_IRQ control block.
[in]p_callbackCallback function
[in]p_contextPointer to send to callback function
[in]p_working_memoryPointer to volatile memory where callback structure can be allocated. Callback arguments allocated here are only valid during the callback.

◆ close

fsp_err_t(* icu_inter_cpu_irq_api_t::close) (icu_inter_cpu_irq_ctrl_t *const p_ctrl)

Closes the driver and releases the device.

Parameters
[in]p_ctrlPointer to control block set in icu_inter_cpu_irq_api_t::open call.

◆ icu_inter_cpu_irq_instance_t

struct icu_inter_cpu_irq_instance_t

This structure encompasses everything that is needed to use an instance of this interface.

Data Fields
icu_inter_cpu_irq_ctrl_t * p_ctrl Pointer to the control structure for this instance.
icu_inter_cpu_irq_cfg_t const * p_cfg Pointer to the configuration structure for this instance.
icu_inter_cpu_irq_api_t const * p_api Pointer to the API structure for this instance.

Typedef Documentation

◆ icu_inter_cpu_irq_ctrl_t

ICU_INTER_CPU_IRQ control block. Allocate an instance specific control block to pass into the ICU_INTER_CPU_IRQ API calls.