赞
踩
展锐平台的camera sensor驱动代码设计解析(1)
展锐平台的camera sensor驱动代码设计解析(2)
展锐平台的camera sensor驱动代码设计解析(3)
在打开camera调用库的时候会调用到如下函数
void *sensor_ic_open_lib(void)
{
return &g_ov8856_mipi_raw_info;
}
对于.c中的函数接口,里面的所有函数都是如下结构体函数指针对应的函数接口
/*============================================================================== * Description: * all ioctl functoins * you can add functions reference SENSOR_IOCTL_FUNC_TAB_T from sensor_drv_u.h * * add ioctl functions like this: * .power = ov8856_power_on, *============================================================================*/ static struct sensor_ic_ops s_ov8856_ops_tab = { .create_handle = ov8856_drv_handle_create, .delete_handle = ov8856_drv_handle_delete, /*get privage data*/ .get_data = ov8856_drv_get_private_data, /*common interface*/ .power = ov8856_drv_power_on, .identify = ov8856_drv_identify, .ex_write_exp = ov8856_drv_write_exposure, .write_gain_value = ov8856_drv_write_gain_value, #if defined(CONFIG_DUAL_MODULE) .read_aec_info = ov8856_drv_read_aec_info, #endif .ext_ops = { [SENSOR_IOCTL_BEFORE_SNAPSHOT].ops = ov8856_drv_before_snapshot, [SENSOR_IOCTL_STREAM_ON].ops = ov8856_drv_stream_on, [SENSOR_IOCTL_STREAM_OFF].ops = ov8856_drv_stream_off, /* expand interface,if you want to add your sub cmd , * you can add it in enum {@SENSOR_IOCTL_VAL_TYPE} */ [SENSOR_IOCTL_ACCESS_VAL].ops = ov8856_drv_access_val, [SENSOR_IOCTL_CONTRAST].ops = ov8856_drv_set_saturation, } };
static cmr_int ov8856_drv_handle_create(struct sensor_ic_drv_init_para *init_param, cmr_handle* sns_ic_drv_handle)
{
cmr_int ret = SENSOR_SUCCESS;
struct sensor_ic_drv_cxt * sns_drv_cxt = NULL;
void *pri_data = NULL;
ret = sensor_ic_drv_create(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。