*总体介绍*
SENSOR 驱动是为了实现不同厂家的 SENSOR,按照自身能力及系统配置的要求输出合适的分辨率、帧率的数据供 ISP 处理,同时需要满足 3A 算法所需要实现的功能,比如调整曝
光时间、调整增益、Slow Shutter 等功能。
文件位置,SENSOR 驱动分四个部分*1. software/linux/kernel/drv/sensors/sensor
下的驱动主体 sensor.ko,该部分由驱动人员
维护更新,系统统一加载 sensor.ko,然后由应用传入 sensor 的驱动数据。
2. software/linux/kernel/drv/sensors/sensor/xxxx_ex
下的驱动外挂逻辑 sensor_ex.ko,该
部分可选,目前支持 5 个功能函数,有 sample 代码 sc1135_ex。
3. software/image/sensor_drv/drv/
下各 sensor 的驱动数据的描述。
4. software/image/sensor_drv/bin/
下各 sensor 的驱动数据发布 bin 及自动检测 sensor
的 bin 文件
增加自己sensor
在software/image/sensor_drv/mksensor.c 中加入 sensor 的数据结构文件

include “drv/SENSOR 名称_reg_tbl.c”

在 sensor 结构中加入
&SENSOR 名称_sensor
创建 drv/SENSOR 名称_reg_tbl.c。


├── bin
│   ├── ar0130_hw.bin
│   ├── ar0230_hw.bin
│   ├── ar0237_hw.bin
│   └── tw9912_hw.bin
├── build
│   ├── arm11-gcc-glibc-linux-GK710XS
│   │   ├── bin
│   │   │   └── sensordetect
│   │   ├── info
│   │   │   └── build-info.txt
│   │   └── obj
│   │       └── sensordetect.o
│   └── arm11-gcc-uClibc-linux-GK710XS
│       ├── bin
│       │   └── sensordetect
│       ├── info
│       │   └── build-info.txt
│       └── obj
│           └── sensordetect.o
├── drv
│   ├── ar0130_reg_tbl.c
│   ├── ar0230_reg_tbl.c
│   ├── sp2307_reg_tbl.c
│   └── tw9912_reg_tbl.c
├── Makefile
├── Makefile.rel
├── mksensor.c
├── mksensor.h
├── run.sh
└── sensordetect.c#include "drv/nt99231_reg_tbl.c"
#include "drv/pseudo_sensor_reg_tbl.c"
#include "drv/nvp6134_reg_tbl.c"GADI_VI_SensorDrvInfoT* sensor[] =
{&imx122_sensor,&imx291_sensor,&imx238_sensor,

创建 drv/SENSOR 名称_reg_tbl.c。

 GADI_VI_SensorDrvInfoT    nvp6134_mach =20 {21     .magic_start        = GADI_SENSOR_HW_INFO_MAGIC_START,22     .version            = GADI_SENSOR_HW_INFO_VERSION,23     .length             = sizeof(GADI_VI_SensorDrvInfoT),24     .file_date          = 0x20171123,25     .HwInfo         =26     {27         .name               = "nvp6134",28         .ctl_type           = GADI_SENSOR_CTL_I2C,29         .addr_len           = sizeof(GADI_U16),30         .data_len           = sizeof(GADI_U8),31         .reset_active_level = GADI_GPIO_LOW,32         .hw_addr            = (0x6C>>1),33         .id_reg =34         {35             {GADI_VI_SENSOR_TABLE_FLAG_END,},36         },37         .reset_reg =38         {39             {GADI_VI_SENSOR_TABLE_FLAG_END,},40         },41     },42     .debug_print        = 0,43 #ifdef PROG_MODE44     .input_format       = GADI_VI_INPUT_FORMAT_YUV_422_PROG,45     .field_format       = 0,46 #endif47 #ifdef INTLC_MODE48     .input_format       = GADI_VI_INPUT_FORMAT_YUV_422_INTLC,49     .field_format       = 2,
成员名称 描述
magic_start 检测驱动使用,固定填写 GADI_SENSOR_HW_INFO_MAGIC_START
version 检测驱动使用,固定填写 GADI_SENSOR_HW_INFO_VERSION
length 数据结构长度,固定填写 sizeof(GADI_VI_SensorDrvInfoT)
file_date 驱动数据文件生成日期,可自行修改,用于区分不同时期的版本
HwInfo 该部分数据也用于自动检测 sensor 使用,参看 GADI_VI_SensorHWInfoT
debug_print 是否开启 debug 信息,非 0 为打开,release 时请关闭。
input_format 输入格式:RGB_RAW一般422_INTLC656隔行输入422_PROGYUV656逐行输入
field_format 暂时全部使用 1
adapter_id 暂时全部使用 0
sensor_id sensor id,需要和 image,adi 全部统一一致
source_type 暂时全部使 GADI_VI_CMOS_CHANNEL_TYPE_AUTO
Input 设备类型: GADI_VI_DEV_TYPE_CMOS 用于一般的Sensor
GADI_VI_DEV_TYPE_CCD暂时不用 GADI_VI_DEV_TYPE_DECODER 用于 656 输入的芯片
video_system 视频数据格式 暂时全部使用 GADI_VIDEO_SYSTEM_AUTO
vs_polarity 帧/场同步信号格式 GADI_VI_RISING_EDGE 表示高电平有效 GADI_VI_FALLING_EDGE 表示低电平有效
hs_polarity 行同步信号格式
GADI_VI_RISING_EDGE 表示高电平有效
GADI_VI_FALLING_EDGE 表示低电平有效
data_edge Data 数据采集的 Pixel CLK 信号格式
GADI_VI_RISING_EDGE 表示上升沿有效
GADI_VI_FALLING_EDGE 表示下降沿有效
emb_sync_switch 是否启用内同步信号开关,一般多用于 656 信号输入
GADI_VI_EMB_SYNC_OFF 表示关
GADI_VI_EMB_SYNC_ON 表示开
emb_sync_loc emb_sync_switch 开时有效
GADI_VI_EMB_SYNC_LOWER_PEL
GADI_VI_EMB_SYNC_UPPER_PEL
GADI_VI_EMB_SYNC_BOTH_PELS
emb_sync_mode emb_sync_switch 开时有效
GADI_VI_EMB_SYNC_ITU_656
define GADI_VI_EMB_SYNC_ALL_ZEROS
max_width 最大 pixel 宽度
max_height 最大 pixel 高度
def_sh_time 默认曝光时间,一般选用 GADI_VIDEO_FPS(50)
fmt_num 视频格式数量,fmt_table、video_info_table、video_mode_table
填写数量必须与 fmt_num 对齐。
auto_fmt 外部设置 vi_mode 为 0 时选用的视频格式,一般为以下 8 种中的一种:
GADI_VIDEO_MODE(1920, 1080, 30, 1)
GADI_VIDEO_MODE(1920, 1080, 25, 1)
GADI_VIDEO_MODE(1280, 960, 30, 1)
GADI_VIDEO_MODE(1280, 960, 25, 1)
GADI_VIDEO_MODE(1280, 720, 60, 1)
GADI_VIDEO_MODE(1280, 720, 50, 1)
GADI_VIDEO_MODE(1280, 720, 30, 1)
GADI_VIDEO_MODE(1280, 720, 25, 1)
参数 1:宽度
参数 2:高度
参数 3:fps
参数 4:1:逐行,0:隔行

国科gk7102s-sensor框架驱动笔记相关推荐

  1. 国科gk7102s上cp2528值i2c触摸按键驱动实现

    /*=============================================================== * @ halecho@163.com * * 文件名称:cp252 ...

  2. SSH框架搭建 笔记 (含spring注解驱动)

    分类: web 开发2014-04-27 12:33 354人阅读 评论(0) 收藏 举报 框架springinterface注解 好久没有搭建框架了,今天整理下以前的知识,整合下SSH,没想到手生了 ...

  3. 嵌入式Linux驱动笔记(十八)------浅析V4L2框架之ioctl【转】

    转自:https://blog.csdn.net/Guet_Kite/article/details/78574781 权声明:本文为 风筝 博主原创文章,未经博主允许不得转载!!!!!!谢谢合作 h ...

  4. Linux-USB驱动笔记(五)--主机控制器驱动框架

    Linux-USB驱动笔记(五)--主机控制器驱动框架 1.前言 2.主机控制器框架 3.重要结构体 3.1.usb_hcd -- 主机控制器驱动 3.2.hc_driver -- 控制器操作函数 3 ...

  5. Linux-USB驱动笔记(六)--设备驱动框架

    Linux-USB驱动笔记(六)--设备驱动框架 1.前言 2.USB设备驱动 3.重要结构体 3.1.usb_driver -- USB设备驱动 3.2.usb_device_id -- 支持的US ...

  6. Linux-USB驱动笔记(四)--USB整体框架

    Linux-USB驱动笔记(四)--协议解析 1.前言 2. USB协议解析 2.1.USB 描述符 2.1.1.设备描述符 2.1.2.配置描述符 2.1.3.接口描述符 2.1.4.端点描述符 2 ...

  7. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

  8. Sensor框架理解

    在这个系列的文章我们只是为了讲清楚Sensor框架的设计和工作原理基于4.0,4.0以下的代码有所区别,尤其是2.2以下根本就没有Binder架构,不讲驱动,也不讲具体的某一个应用该怎么处理Senso ...

  9. 嵌入式Linux驱动笔记--转自风筝丶

    为了阅读学习方便,将系列博客的网址进行粘贴,感谢原博客的分享. 嵌入式Linux驱动笔记(一)------第一个LED驱动程序 嵌入式Linux驱动笔记(二)------定时器 嵌入式Linux驱动笔 ...

最新文章

  1. 【PP】重复制造业务中工作中心变更的问题
  2. 【机器学习】随机森林、GBDT、XGBoost、LightGBM等集成学习代码练习
  3. Error -Cannot add direct child without default aggregation defined for control
  4. 笨方法python_笨方法学习Python(11-20)
  5. 显示android 运行时异常,在android中获取运行时异常
  6. Spring Boot 整合 Netty和Protobuf
  7. 2018年股票操作策略记录(1)
  8. 读取和写入文件的最简单方法
  9. FBI为车主支招:如何预防汽车黑客
  10. tcpdump抓SQL[转]
  11. paip.jquery ajax 请求JSON数据填充SELECT全过程纪录
  12. 利用workbench建立的响应面模型质量很差,该如何解决?求指点
  13. 医疗时鲜资讯:移动医疗 or 互联网医疗 or 远程医疗?
  14. 电力系统分析实验--生成节点导纳矩阵
  15. JAVA之父,詹姆斯·高斯林传奇人生
  16. java创新创业比赛项目教程_java毕业设计_springboot框架的大学生创新创业项目管理...
  17. python 中无限循环_Python中如何解决无限循环的问题
  18. ios视频实现H264硬编码和软编码编译ffmpeg库及环境搭建(附完整demo)
  19. MongoDB Bulk write operation error on server duplicate key error问题解决
  20. Android5.0 下拉通知栏快捷开关的添加(必看)

热门文章

  1. [ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本)
  2. oracle spa性能测试,SPA for 11g 分析性能
  3. MATLAB Mann-Kendall突变检验 (mk突变检验)
  4. matlab怎么分析突变点,小波变换检测信号突变点的MATLAB实现
  5. 深度观察:杭州区块链周,中国版的共识大会
  6. 学生成绩管理系统(完整版)
  7. html写大学课程表
  8. 机房常用动力环境设备远程集中监控及告警方案
  9. python怎么算一元二次方程_Python求一元二次方程解
  10. No qualifying bean of type 'com.xxx.xx.service.xxService' available: expected at leas