在驱动中怎样区别是手电筒还是闪光灯?
我没有做过,简单的搞法就是在CAM的打开供电LDO的代码地方kd_camera_hw.c中设置一个标志,到了打开LED的代码地方加以判断。
有道理! 再看看有没有人知道 没有就按你的想法搞!
驱动没法区分,只是提供接口。看看上层掉的是那个命令把命令打出来就知道了。
另外兄弟头像比较牛逼!
CUSTOM_HAL_FLASHLIGHT = constant_flashlight 这个是闪光灯
手电筒是
CUSTOM_HAL_FLASHLIGHT = torch_flashlight
这我知道 你理解错了
搞完贴出来哈
这一个,我的理解是,摄像头的闪光灯控制与普通手电筒的控制架构虽然放在同一个leds_strobe.c里面,并且共用硬件资源和软件中的部分资源(比如基本宏定义和基本LED开关函数),但是实际上它们走的是两路软件架构。也就是说在这个.c文件里面,在基本的宏和开关函数之上存在着两个架构:
1,闪光灯:camera的架构里会调用EXPORT_SYMBOL(strobe_VDIrq);这个接口,在这个借口里,直接调用基本的LED开关函数打开LED,并启动定时器,闪光结束后关掉LED,并没有通过
FLASHLIGHT_FUNCTION_STRUCT constantFlashlightFunc=
{
constant_flashlight_open,
constant_flashlight_release,
constant_flashlight_ioctl
};
这个结构体进行操作。
2,手电筒,会通过上面那个结构体进行标准操作,开关LED也是通过结构体封装过的开关函数(ioctl),而不是直接调用最底层的开关函数。
相对而言,闪光灯在这个文件里面只是实现了很简单的架构,就实现了定时器的功能而已。
呵呵!哪我按光辉的想法做算了!谢谢
这个只是看代码得来的,没有实际抓log看过。
明白 !谢谢
constant_flashlight_ioctl 这个函数读入的参数值怎么来的呢?
