![]() |
RA Flexible Software Package Documentation
Release v6.0.0
|
|
Interface for inter-processor communications (IPC).
The IPC interface provides common APIs for IPC HAL drivers. The IPC interface supports the following features:
Data Structures | |
struct | ipc_callback_args_t |
struct | ipc_cfg_t |
struct | ipc_api_t |
struct | ipc_instance_t |
Typedefs | |
typedef void | ipc_ctrl_t |
Enumerations | |
enum | ipc_event_t |
enum | ipc_generate_event_t |
struct ipc_callback_args_t |
IPC Callback parameter definition
Data Fields | ||
---|---|---|
uint32_t | channel | IPC channel. |
uint32_t | message | Received message data. |
ipc_event_t | event | Event code. |
void * | p_context | Context provided to user during callback. |
struct ipc_cfg_t |
IPC Configuration
Data Fields | |
uint32_t | channel |
IPC channel. | |
IRQn_Type | irq |
uint8_t | ipl |
void(* | p_callback )(ipc_callback_args_t *p_args) |
void * | p_context |
User defined context passed into callback function. | |
IRQn_Type ipc_cfg_t::irq |
IPC IRQ number
uint8_t ipc_cfg_t::ipl |
IPC Interrupt priority
void(* ipc_cfg_t::p_callback) (ipc_callback_args_t *p_args) |
Pointer to callback function
struct ipc_api_t |
Interface definition for IPC
Data Fields | |
fsp_err_t(* | open )(ipc_ctrl_t *const p_ctrl, ipc_cfg_t const *const p_cfg) |
fsp_err_t(* | messageSend )(ipc_ctrl_t *const p_ctrl, uint32_t message) |
fsp_err_t(* | eventGenerate )(ipc_ctrl_t *const p_ctrl, ipc_generate_event_t event) |
fsp_err_t(* | callbackSet )(ipc_ctrl_t *const p_ctrl, void(*p_callback)(ipc_callback_args_t *), void *const p_context, ipc_callback_args_t *const p_callback_memory) |
fsp_err_t(* | close )(ipc_ctrl_t *const p_ctrl) |
fsp_err_t(* ipc_api_t::open) (ipc_ctrl_t *const p_ctrl, ipc_cfg_t const *const p_cfg) |
Open IPC instance.
[in,out] | p_ctrl | Pointer to the IPC control block. Must be declared by user. Value set here. |
[in] | p_cfg | Pointer to IPC configuration structure. All elements of this structure must be set by user. |
fsp_err_t(* ipc_api_t::messageSend) (ipc_ctrl_t *const p_ctrl, uint32_t message) |
Send message through the FIFO of the configured IPC channel.
[in] | p_ctrl | Pointer to the IPC control block. |
[in] | message | Message to send. |
fsp_err_t(* ipc_api_t::eventGenerate) (ipc_ctrl_t *const p_ctrl, ipc_generate_event_t event) |
Generate event through configured IPC channel interrupt.
[in] | p_ctrl | Pointer to the IPC control block. |
[in] | event | Event to generate interrupt for. |
fsp_err_t(* ipc_api_t::callbackSet) (ipc_ctrl_t *const p_ctrl, void(*p_callback)(ipc_callback_args_t *), void *const p_context, ipc_callback_args_t *const p_callback_memory) |
Specify callback function and optional context pointer and working memory pointer.
[in] | p_ctrl | Pointer to the IPC control block. |
[in] | p_callback | Callback function |
[in] | p_context | Pointer to send to callback function |
[in] | p_callback_memory | Pointer to volatile memory where callback structure can be allocated. Callback arguments allocated here are only valid during the callback. |
fsp_err_t(* ipc_api_t::close) (ipc_ctrl_t *const p_ctrl) |
Close IPC instance.
[in] | p_ctrl | Pointer to the IPC control block. |
struct ipc_instance_t |
This structure encompasses everything that is needed to use an instance of this interface.
Data Fields | ||
---|---|---|
ipc_ctrl_t * | p_ctrl | Pointer to the control structure for this instance. |
ipc_cfg_t const * | p_cfg | Pointer to the configuration structure for this instance. |
ipc_api_t const * | p_api | Pointer to the API structure for this instance. |
typedef void ipc_ctrl_t |
IPC control block. Allocate an instance specific control block to pass into the IPC API calls.
enum ipc_event_t |
IPC Events
enum ipc_generate_event_t |
IPC Generate Events