我是靠谱客的博主 完美墨镜,最近开发中收集的这篇文章主要介绍第4季5:图像sensor的驱动源码的编译一、sensor的注册接口分析二、黑电平三、sensor驱动编译实验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

本文演示如何修改sensor的驱动源码,修改之后如何编译与运行。

一、sensor的注册接口分析

这部分内容见第4季4:图像sensor的驱动源码解析。

二、黑电平

关于黑电平的概念,见博客:技术科普丨黑电平:你真的懂“黑”吗?

简单点理解,就是LCD显示为黑色时所对应的电平。黑色对应的RGB数值是000,但这里的000并不是说在LCD上施加的电平为0时LCD显示为黑色。LCD要显示黑色的话,实际上需要施加一定的电压,这个电压我们就叫做“黑电平”。

三、sensor驱动编译实验

1、修改黑电平对应的数值

AR0130的黑电平设置函数是cmos_get_isp_black_level,位于mpp/component/isp/sensor/ar0130/ar0130_cmos.c文件中717行附近。

sensor_register_callback                //位于ar0130_cmos.c文件文件
    cmos_init_sensor_exp_function       //位于ar0130_cmos.c文件文件
        cmos_get_isp_black_level        //位于ar0130_cmos.c文件文件

cmos_get_isp_black_level函数内容如下,可知给AR0130设置的黑电平数值是0xC8。这个数值是sensor工程师多次调试得到的最佳数值。我们可以修改这个数值,来看看修改之后的图像质量,这里修改为0x00。

HI_U32 cmos_get_isp_black_level(ISP_CMOS_BLACK_LEVEL_S *pstBlackLevel)
{
    HI_S32  i;
    
    if (HI_NULL == pstBlackLevel)
    {
        printf("null pointer when get isp black level value!n");
        return -1;
    }

    /* Don't need to update black level when iso change */
    pstBlackLevel->bUpdate = HI_FALSE;

    switch (genSensorMode)
    {
        default :
        case WDR_MODE_NONE :
            for (i=0; i<4; i++)
            {
                pstBlackLevel->au16BlackLevel[i] = 0xC8;
                //pstBlackLevel->au16BlackLevel[i] = 0x00;//修改这个数值
            }
            break;

    }

2、生成库形式的“应用层驱动”

这一步主要是编译(进行上述更改后的)sensor层驱动源码,以生成库形式的“应用层驱动”。

首先在mpp/component/isp下执行make(不用执行make clean,因为Makefile感知到源码的修改,会自动更新目标文件(这里的目标是库文件))。

然后可以通过修改时间来确认一下mpp/lib目录下的libsnsxxx.a/so已经被更新。

3、编译sample并运行查看效果

接着我们在mpp/sample_ortp_ar0130/venc目录下执行make clean再执行make(这里就需要先执行make clean,因为之前的操作,没有修改源码sample_venc.c,而只是修改了库文件,该目录下的Makefile不会感知到库文件的更新,从而不会更新sampl_venc。如果不make clean,执行make的时候将不进行任何操作),生成samp_venc这个可执行程序。

接着将sample_venc文件拷贝到虚拟机/home/xjh/iot/hisi_development/hisi_rootfs/目录中,然后将该目录挂载到板载系统的/mnt目录,在/mnt目录下执行“./sample_venc 0”,输入c。

接着在VLC播放器中,选择媒体,打开文件,选择sdp文件(提取码ms4a)(注意这文件里的设置要与实际对应)。此时可以看到实时画面,我们截图进行对比。

黑电平设置为0xC8时的画面:

 黑电平设置为0x00时的画面:

最后

以上就是完美墨镜为你收集整理的第4季5:图像sensor的驱动源码的编译一、sensor的注册接口分析二、黑电平三、sensor驱动编译实验的全部内容,希望文章能够帮你解决第4季5:图像sensor的驱动源码的编译一、sensor的注册接口分析二、黑电平三、sensor驱动编译实验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部