Структура, определяющая интерфейс драйвера
#include <hw/i2c.h>typedef struct {size_t size; /* size of this structure */int (*version_info) (i2c_libversion_t *version);void* (*init) (int argc, char *argv[]);void (*fini) (void *hdl);i2c_status_t (*send) (void *hdl, void *buf, unsigned int len,unsigned int stop);i2c_status_t (*recv) (void *hdl, void *buf, unsigned int len,unsigned int stop);int (*abort) (void *hdl, int rcvid);int (*set_slave_addr) (void *hdl, unsigned int addr, i2c_addrfmt_t fmt);int (*set_bus_speed) (void *hdl, unsigned int speed, unsigned int *ospeed);int (*driver_info) (void *hdl, i2c_driver_info_t *info);int (*ctl) (void *hdl, int cmd, void *msg, int msglen,int *nbytes, int *info);} i2c_master_funcs_t;
libi2c-master
Эта структура представляет собой таблицу указателей на функции, которые вы можете предоставить своему оборудованию. Код более высокого уровня вызывает эти функции.
![]() |
ЗОСРВ «Нейтрино»
Библиотека разработки I²C драйверов, i2c_master_funcs_t :: version_info(), i2c_master_funcs_t :: init(), i2c_master_funcs_t :: fini(), i2c_master_funcs_t :: send(), i2c_master_funcs_t :: recv(), i2c_master_funcs_t :: abort(), i2c_master_funcs_t :: set_slave_addr(), i2c_master_funcs_t :: set_bus_speed(), i2c_master_funcs_t :: driver_info(), i2c_master_funcs_t :: ctl()
Предыдущий раздел: Библиотека разработки I²C драйверов