4 #ifndef RTOS_I2C_SLAVE_H_
5 #define RTOS_I2C_SLAVE_H_
14 #include <xcore/channel_streaming.h>
17 #include "rtos_osal.h"
18 #include "rtos_driver_rpc.h"
24 #ifndef RTOS_I2C_SLAVE_BUF_LEN
25 #define RTOS_I2C_SLAVE_BUF_LEN 256
32 #define RTOS_I2C_SLAVE_CALLBACK_ATTR __attribute__((fptrgroup("rtos_i2c_slave_cb_fptr_grp")))
126 int waiting_for_complete_cb;
133 streaming_channel_t c;
134 rtos_osal_event_group_t events;
135 rtos_osal_thread_t hil_thread;
136 rtos_osal_thread_t app_thread;
165 unsigned interrupt_core_id,
185 uint32_t io_core_mask,
188 uint8_t device_addr);
#define RTOS_I2C_SLAVE_CALLBACK_ATTR
Definition: rtos_i2c_slave.h:32
#define RTOS_I2C_SLAVE_BUF_LEN
Definition: rtos_i2c_slave.h:25
size_t(* rtos_i2c_slave_tx_start_cb_t)(rtos_i2c_slave_t *ctx, void *app_data, uint8_t **data)
Definition: rtos_i2c_slave.h:87
void rtos_i2c_slave_start(rtos_i2c_slave_t *i2c_slave_ctx, void *app_data, rtos_i2c_slave_start_cb_t start, rtos_i2c_slave_rx_cb_t rx, rtos_i2c_slave_tx_start_cb_t tx_start, rtos_i2c_slave_tx_done_cb_t tx_done, unsigned interrupt_core_id, unsigned priority)
Definition: rtos_i2c_slave.c:206
void(* rtos_i2c_slave_rx_cb_t)(rtos_i2c_slave_t *ctx, void *app_data, uint8_t *data, size_t len)
Definition: rtos_i2c_slave.h:66
void rtos_i2c_slave_init(rtos_i2c_slave_t *i2c_slave_ctx, uint32_t io_core_mask, const port_t p_scl, const port_t p_sda, uint8_t device_addr)
Definition: rtos_i2c_slave.c:250
void(* rtos_i2c_slave_start_cb_t)(rtos_i2c_slave_t *ctx, void *app_data)
Definition: rtos_i2c_slave.h:51
void(* rtos_i2c_slave_tx_done_cb_t)(rtos_i2c_slave_t *ctx, void *app_data, uint8_t *data, size_t len)
Definition: rtos_i2c_slave.h:105
Definition: rtos_i2c_slave.h:112