kennylu

kennylu

0个粉丝

17

问答

0

专栏

0

资料

kennylu  发布于  2017-06-21 15:59:45
采纳率 0%
17个问答
4925

sensor 驱动,sensor 初始化

 
        在初始化sensor时, 已经进入了sensor callback 注册,并注册完了,但是,并没有调用到这个callback里面注册的函数,
如sensor_init 函数初始化寄存器, 为什么没进入到sensor_init? 这个是怎么触发的?

sensor_register_callback
{
        ...
       cmos_init_sensor_exp_function(&stIspRegister.stSnsExp);
      s32Ret = HI_MPI_ISP_SensorRegCallBack(IspDev, AR0134_ID, &stIspRegister);
      ...
}

HI_S32 cmos_init_sensor_exp_function(ISP_SENSOR_EXP_FUNC_S *pstSensorExpFunc)
{
    memset(pstSensorExpFunc, 0, sizeof(ISP_SENSOR_EXP_FUNC_S));

    pstSensorExpFunc->pfn_cmos_sensor_init = sensor_init;
    pstSensorExpFunc->pfn_cmos_sensor_exit = sensor_exit;
}

我来回答
回答3个
时间排序
认可量排序

kennylu

0个粉丝

17

问答

0

专栏

0

资料

kennylu 2017-06-21 17:38:23
认可0
调试中,发现,
null pointer when get ae default value
null pointer when get awb default value!
null pointer when set image mode

这几个错误出至
HI_S32 cmos_init_ae_exp_function(AE_SENSOR_EXP_FUNC_S *pstExpFuncs)
{
    memset(pstExpFuncs, 0, sizeof(AE_SENSOR_EXP_FUNC_S));

    pstExpFuncs->pfn_cmos_get_ae_default    = cmos_get_ae_default;
}


static HI_S32 cmos_get_ae_default(AE_SENSOR_DEFAULT_S *pstAeSnsDft)
{
    if (HI_NULL == pstAeSnsDft)
    {
        printf("null pointer when get ae default value!\n");
        return -1;
    }
    ......
}

那么这个参数AE_SENSOR_DEFAULT_S *pstAeSnsDft     在哪初始化呢? 如下是打印log .


-----------SAMPLE_COMM_VI_StartIspAndVi:4098---------------------------------
============= MipiDev 0, SetMipiAttr enWDRMode: 0
-----------SAMPLE_COMM_VI_StartIspAndVi:4121---------------------------------
-----------SAMPLE_COMM_VI_StartIspAndVi:4132---------------------------------
-----------SAMPLE_COMM_ISP_Sensor_Regiter_callback:205---------------------------------
-----------SAMPLE_COMM_ISP_Sensor_Regiter_callback:214---------------------------------
-----------sensor_register_callback:1390---------------------------------
null pointer when get ae default value!
null pointer when get awb default value!
SAMPLE_COMM_ISP_Sensor_Regiter_callback isp_dev = 0
-----------SAMPLE_COMM_VI_StartIspAndVi:4141---------------------------------
Func: SAMPLE_COMM_ISP_Init, Line: 567, WDR Mode: 0
stPubAttr (0, 0, 1280, 960, 54.000000)
null pointer when set image mode
[Func]:HI_MPI_ISP_Init [Line]:289 [Info]:ISP[0] set sensor image mode failed!
Func: SAMPLE_COMM_ISP_Init, Line: 589, ISP Init failedror(0xa01c8040)
[SAMPLE_COMM_VI_StartIspAndVi]-4145: SAMPLE_COMM_VI_StartIspAndVi: ISP init failed!

jay0725

0个粉丝

1

问答

0

专栏

0

资料

jay0725 2019-09-12 13:48:29
认可0
请问你解决了吗?我也碰到相同的问题。

kennylu

0个粉丝

17

问答

0

专栏

0

资料

kennylu 2019-11-08 14:05:38
认可0
结贴:

null pointer when get ae default value!
null pointer when get awb default value!

问题原因,init 未进入这几个问题,是由于3519 里面的定义的callback 函数参数多了一个参数ISP_DEV IspDev。而
AR0134         驱动代码基于3516上做的,上面是没有这个ISP_DEV IspDev参数的,所以在所有的回调函数里面加上这个参数。
如:
void ar0134_init(ISP_DEV IspDev)
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区