如果需要在liteos平台上添加一款新的摄像头驱动,并点亮摄像头,比如我们要把ov5554添加到系统,需要做如下工作:
1.添加驱动源代码,源代码路径Hi3516EV200_SDK_V5.0.0.1/mpp/component/isp/user/sensor/hi3516ev200,在这个目录下创建ov5554目录,在其它相类似的sensor目录拷贝源码和make文件,其中xxxx_cmos.c中定义回调和上层函数,xxxx_sensor_ctl.c中定义底层硬件相关的寄存器值配置函数。这些需要根据芯片手册和实际情况进行更改。
2. sensor驱动调用,sensor驱动编译完之后会生成xxx.a和xxx.so两个库,一个是静态链接用的,一个是动态链接用的。
这两个文件会被放到Hi3516EV200_SDK_V5.0.0.1/mpp/lib目录下
在mpp平台的事例代码sample_vi中可以追踪到调用处 SAMPLE_COMM_VI_StartVi-->SAMPLE_COMM_VI_CreateIsp->
SAMPLE_COMM_VI_StartIsp->SAMPLE_COMM_ISP_Sensor_Regiter_callback--->pfnRegisterCallback, 最终会调用到sensor驱动中注册的回调函数,这个函数就是对整个sensor初始化,内部封装了操作sensor所需要的函数,(ISP、AE(自动曝光)、AWB(白平衡))其中的cmos_init_sensor_exp_function函数将sensor操作时所需要的函数一一挂接起来,例如初始化调用的sensor_init,这个函数初始化sensor,初始化的方式就是调用i2c函数接口来实现操作sensor内部寄存器。
3. 根据芯片手册配置初始化sensor的寄存器的值,在isp mpp\component\isp重新编译驱动代码,查看是否生成新的目标文件,在mpp平台代码中修改使用的sensor配置,重新编译sample查看效果。