国科gk7102s-sensor框架驱动笔记
*总体介绍*
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框架驱动笔记相关推荐
- 国科gk7102s上cp2528值i2c触摸按键驱动实现
/*=============================================================== * @ halecho@163.com * * 文件名称:cp252 ...
- SSH框架搭建 笔记 (含spring注解驱动)
分类: web 开发2014-04-27 12:33 354人阅读 评论(0) 收藏 举报 框架springinterface注解 好久没有搭建框架了,今天整理下以前的知识,整合下SSH,没想到手生了 ...
- 嵌入式Linux驱动笔记(十八)------浅析V4L2框架之ioctl【转】
转自:https://blog.csdn.net/Guet_Kite/article/details/78574781 权声明:本文为 风筝 博主原创文章,未经博主允许不得转载!!!!!!谢谢合作 h ...
- Linux-USB驱动笔记(五)--主机控制器驱动框架
Linux-USB驱动笔记(五)--主机控制器驱动框架 1.前言 2.主机控制器框架 3.重要结构体 3.1.usb_hcd -- 主机控制器驱动 3.2.hc_driver -- 控制器操作函数 3 ...
- Linux-USB驱动笔记(六)--设备驱动框架
Linux-USB驱动笔记(六)--设备驱动框架 1.前言 2.USB设备驱动 3.重要结构体 3.1.usb_driver -- USB设备驱动 3.2.usb_device_id -- 支持的US ...
- Linux-USB驱动笔记(四)--USB整体框架
Linux-USB驱动笔记(四)--协议解析 1.前言 2. USB协议解析 2.1.USB 描述符 2.1.1.设备描述符 2.1.2.配置描述符 2.1.3.接口描述符 2.1.4.端点描述符 2 ...
- mybatis框架--学习笔记(上)
使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...
- Sensor框架理解
在这个系列的文章我们只是为了讲清楚Sensor框架的设计和工作原理基于4.0,4.0以下的代码有所区别,尤其是2.2以下根本就没有Binder架构,不讲驱动,也不讲具体的某一个应用该怎么处理Senso ...
- 嵌入式Linux驱动笔记--转自风筝丶
为了阅读学习方便,将系列博客的网址进行粘贴,感谢原博客的分享. 嵌入式Linux驱动笔记(一)------第一个LED驱动程序 嵌入式Linux驱动笔记(二)------定时器 嵌入式Linux驱动笔 ...
最新文章
- 【PP】重复制造业务中工作中心变更的问题
- 【机器学习】随机森林、GBDT、XGBoost、LightGBM等集成学习代码练习
- Error -Cannot add direct child without default aggregation defined for control
- 笨方法python_笨方法学习Python(11-20)
- 显示android 运行时异常,在android中获取运行时异常
- Spring Boot 整合 Netty和Protobuf
- 2018年股票操作策略记录(1)
- 读取和写入文件的最简单方法
- FBI为车主支招:如何预防汽车黑客
- tcpdump抓SQL[转]
- paip.jquery ajax 请求JSON数据填充SELECT全过程纪录
- 利用workbench建立的响应面模型质量很差,该如何解决?求指点
- 医疗时鲜资讯:移动医疗 or 互联网医疗 or 远程医疗?
- 电力系统分析实验--生成节点导纳矩阵
- JAVA之父,詹姆斯·高斯林传奇人生
- java创新创业比赛项目教程_java毕业设计_springboot框架的大学生创新创业项目管理...
- python 中无限循环_Python中如何解决无限循环的问题
- ios视频实现H264硬编码和软编码编译ffmpeg库及环境搭建(附完整demo)
- MongoDB Bulk write operation error on server duplicate key error问题解决
- Android5.0 下拉通知栏快捷开关的添加(必看)
热门文章
- [ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本)
- oracle spa性能测试,SPA for 11g 分析性能
- MATLAB Mann-Kendall突变检验 (mk突变检验)
- matlab怎么分析突变点,小波变换检测信号突变点的MATLAB实现
- 深度观察:杭州区块链周,中国版的共识大会
- 学生成绩管理系统(完整版)
- html写大学课程表
- 机房常用动力环境设备远程集中监控及告警方案
- python怎么算一元二次方程_Python求一元二次方程解
- No qualifying bean of type 'com.xxx.xx.service.xxService' available: expected at leas