赞
踩
原文转载自http://blog.csdn.net/g_salamander/article/details/8372571
因为项目比较多,平台支持的 camera 模组已经有 10 多个了,代码比较繁杂,就把 camera 模组端的驱动架构优化了一下。总的思路就是将公共的接口统一起来,减少代码的耦合度,建立新的公共接口文件 cam_core.c 和 cam_core.h。
一、基础数据结构
新建立的数据结构如下:
1、register 接口
模组注册到内核用 init_atxx_cam -> register_cam_device 接口,接口定义如下:
在 cam_core 中主要完成 v4l2 子设备相关的操作,涉及到的数据结构和接口如下:
大部分 camera 寄存器的地址和值都是 8 位或者 16 位数据,因此可以将 i2c 通信接口简化,建立如下结构来描述寄存器地址和值:
封装的 8 位通信接口如下:
在模组驱动中使用示例如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。