Camera Flash 驱动分析(转载)---加了闪光灯补充和按键灯注意的地方
来源:互联网 发布:网络遥控器怎么用法 编辑:程序博客网 时间:2024/05/22 16:48
原文:http://blog.csdn.net/cherry5211314/article/details/22307043
Camera Flash 驱动分析
一、Flash驱动涉及到的文件包含:
mediatek /custom/common/kernel/flashlight/src/kd_flashlightlist.c
mediatek /custom/huaqin_bsp/at808p/base/kernel/flashlight/constant_flashlight/leds_strobe.c
mediatek /platform/mt6592/hardware/mtkcam/core/featureio/drv/strobe/flashlight_drv.cpp
mediatek/platform/mt6592/hardware/mtkcam/core/featureio/pipe/aaa/flash_mgr/flash_mgr.cpp
mediatek/platform/mt6592/hardware/mtkcam/core/featureio/pipe/aaa/flash_mgr/flash_cct.cpp
mediatek/platform/mt6592/hardware/mtkcam/acdk/src/cct/if/cct_feature.cpp
二、Flash驱动代码流程分析:
i. mediatek /custom/common/kernel/flashlight/src/kd_flashlightlist.c
主要完成设备的注册和初始化。
1.注册一个平台设备:名为"kd_camera_flashlight";
2.注册一个平台驱动,name和我们的devices name同名,这个名字主要用来和HAL层的name做匹配用;
3.对IOCTL的一个填充,供HAL调用;
4.做一个接口主要跟我们实际使用的Flash驱动对接,以kdFlashlightList罗列出来;
ii. mediatek/custom/huaqin_bsp/at808p/base/kernel/flashlight/constant_flashlight/leds_strobe.c
1. 这个文件就是我们实际性的使用的Flash驱动文件,从
mediatek/config/huaqin92_wet_b2a_tdd/xxx/ProjectConfig.mk文件中CUSTOM_KERNEL_FLASHLIGHT配置获取具体使用的Flash驱动。
如:
CUSTOM_HAL_FLASHLIGHT= constant_flashlight
CUSTOM_KERNEL_FLASHLIGHT = constant_flashlight
2. 该文件和kd_flashlightlist.c文件的对接函数为:
323 MUINT32constantFlashlightInit(PFLASHLIGHT_FUNCTION_STRUCT *pfFunc)
3. 这个文件完成的任务是填充以下几个函数:
4. 我们主要分析的是constant_flashlight_ioctl,以为这是跟HAL实际握手的接口。
iii. mediatek/platform/mt6592/hardware/mtkcam/core/featureio/drv/strobe/flashlight_drv.cpp
这个文件完成的任务比较多,主要是一些类的实现和定义。
主要是为flash_mgr.cpp提供接口。
iv. mediatek/platform/mt6592/hardware/mtkcam/core/featureio/pipe/aaa/flash_mgr/flash_mgr.cpp
实现闪光灯模式的设置和获取、拍照/摄像预览的开启和终止、闪光灯设备的打开和关闭等等。
v. mediatek/platform/mt6592/hardware/mtkcam/core/featureio/pipe/aaa/flash_mgr/flash_cct.cpp
调用lash_mgr.cpp中的函数来给cct_feature.cpp提供接口。
vi. mediatek/platform/mt6592/hardware/mtkcam/acdk/src/cct/if/cct_feature.cpp
调用flash_cct.cpp中的函数,并以IOCTL的形式进行封装,供更上一层次调用。具体的没有在继续跟下去,有兴趣的话,可以再往上分析分析。
PS:转载这篇文章后添加几个问题,不作为文章单独列出来了
mediatek /custom/XXX/kernel/flashlight/constant_flashlight/leds_strobe.c
1.闪光灯要注意初始化时设置好GPIO,enable时改变GPIO
有时会通过GPIO来确定是闪光模式还是手电筒模式
2.按键灯
调试按键灯主要是在mediatek/platfrom/mtxxx/kernel/drivers/leds/leds.c
这里要注意的是看下原理图,用的是ISINK0还是ISINK2\3,写错了不会亮
再一个是注意电流不要过大,看一下datesheet里面的最大电流限制
- Camera Flash 驱动分析(转载)---加了闪光灯补充和按键灯注意的地方
- Flash 闪光灯驱动编写
- mini2440按键驱动分析(转载)
- (转载)spring3和spring4的一些需要注意的地方
- linux命令行常用svn命令(转载,又加了自己的要注意点)
- MTK camera 闪光灯Flashlight驱动调试流程
- MTK camera 闪光灯Flashlight驱动调试流程
- MTK camera 闪光灯Flashlight驱动调试流程
- 加极光推送注意的几个地方
- CV界的明星人物们(转载加补充)
- CV界的明星人物们(转载加补充)
- CV界的明星人物们(转载加补充)
- CV界的明星人物们(转载加补充)
- MTK平台闪光灯驱动分析
- 中间层驱动需要注意的地方
- 有限状态机的嵌入式Linux按键驱动设计(转载)
- 开启你的闪光灯:手电筒程序(Flash on)
- MTK6735 camera 闪光灯Flashlight驱动调试流程学习
- 练习12016.5.30
- 远程仓库
- win 7水晶报表中提示已达到系统管理员配置的最大报表处理作业数限制
- 第7章:基于zookeeper的分布式session
- MP1494
- Camera Flash 驱动分析(转载)---加了闪光灯补充和按键灯注意的地方
- flask 如何使用接口以及通过json传递数据
- 从oracle到mysql,主从到分库,一个普通项目数据库架构的变迁
- C函数库ctype.h操作
- LeetCode No.354 Russian Doll Envelopes
- windows下使用cmake+mingw配置makefile(一)
- mysql in不确定参数个数的查询方法
- Android Service详解(二)---StartService
- Spring的BeanNameAware和BeanFactoryAware接口