最近又开始看Camera的驱动了,在Linux下通常实用Video4linux框架来实现Video capture/Camera Capture等功能,先说一下设备注册部分,ov7670.c中,注册方法如下: static struct v4l2_i2c_driver_data v4l2_i2c_data = { .name = "ov7670", .probe = ov7670_probe, .remove = ov7670_remove, .id_table = ov7670_id, };
然后这就完了,真的完了么? 兄弟,当然不是;开始看代码的时候找遍了整个文件没有发现谁调用的v4l2_i2c_data结构。这怎么可能?这是一个static变量啊!,于是向上 找,很快就发现我们熟悉的__init module_init对其的调用出现在了v4l2-i2c-drv.h文件中,并声明成了一个static类型,这样其他写v4l2架构驱动的人,就可 以少写不少代码了,NND,这帮人真聪明(还是我太笨?)。 |
|