logo资料库

Qualcomm平台camera移植.pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
1 camera基本代码架构
2 主要移植步骤
2.1 kernel层代码移植
2.2 vendor下代码移植
附录:
参考资料:
Qualcomm 平台 camera 移植 1 camera 基本代码架构 高通平台对于 camera 的代码组织,大体上还是遵循 Android 的框架:即上层应用和 HAL 层交互,高通平台在 HAL 层里面实现自己的一套管理策略;在 kernel 中实现 sensor 的底层 驱动;另外,对于最核心的 sensor 端的底层设置、ISP 效果相关等代码则是单独进行了抽离, 放在了一个 daemon 进程中进行管理: 图 1 Qualcomm 平台 camera 代码架构简图 由于高通把大部分具体的设置及参数放到了 daemon 进程中,所以在 kernel 部分只是进 行了 V4L2 的设备注册、IIC 设备注册等简单的动作: 图 2 kernel 层 camera 主要代码简图 如上图,camera 在 kernel 层的主文件为 msm.c,负责设备的具体注册及相关方法的填充; 在 msm_sensor.c 文件中,主要维护高通自己的一个 sensor 相关结构体—msm_sensor_ctrl_t, 同时把 dts 文件中的配置信息读取出来;kernel 层对于不同的 sensor 对应自己的一个驱动文 件 — xxsensor.c,主要是把 power setting 的设定填充到 msm_sensor_ctrl_t 中。
在 vendor 目录下,高通把各个 sensor 实质性的代码放置在此。一部分代码是高通自己 实现的 daemon 进程和 kernel 层及 HAL 层进行通讯的框架代码;另一部分,则是和 sensor 相关的 chromatix 效果代码和 sensor lib 部分代码(init setting、lens info、output info)。 图 3 vendor 下主要 camera 代码简图 如上图,高通平台通过一个函数指针数组 sub_module_init 来管理 sensor 相关的组件;其中 重要的是 sensor_sub_module_init 和 chromatix_sub_module_init 模块,对于 sensor 模块需要 对应填充 sensor_lib_t 下的接口,对于 chromatix 模块则是通过高通的 chromatix 工具生成。 2 主要移植步骤 2.1 kernel 层代码移植 对于 kernel 层的代码移植,实际上对 dts 文件的移植。因为 kernel 层驱动代码基本已经 被高通的框架以及 vendor 下代码架空,除了一个上电的列表。具体步骤为: 1. 在目录kernel/arch/arm/boot/dts/下的对应dtsi文件 【1】中新增camera节点,主要关注 节点中的IIC地址、sensro的ID信息、电压设定信息:(高通官方解释) 图 4 dtsi 中 camera 中的节点信息截选
2.在目录 kernel/drivers/media/platform/msm/camera_v2/sensor/目录新增 xxsensor.c 文 件,主要填充 msm_sensor_power_setting 结构体:sensor 上电的包含的引脚设定和电压设定, 具体格式可以参考同目录下的其他文件。 3. kernel 下面的相关 mk 文件: 图 5 kernel 目录下 camera 相关配置文件 其他:如果sensor中带有eeprom,需要在dts文件中增加eeprom的节点信息;同样,sensor 带有对焦功能,需要在dts文件中增加actuator节点信息;对于带eeprom的sensor,还需要配 置eeprom的时钟控制代码(有待研究)【2】。 2.2 vendor 下代码移植 Vendor 下面的代码关系着 camera 是否点亮的代码主要是两部分,一个是 sensor_libs 目 录下的 sensor 具体设定文件,另一个是 chromatix 下面的 ISP 效果文件。具体为: 1. sensor_libs目录下文件:包括一个Android.mk文件和一个.c文件。其中Android.mk文 件参考同目录下其他.mk文件修改和对应sensor有关设定即可;.c文件中需要填充的 为一个sensor_lib_t类型的结构体(IMX179 填充示例): 图 6 sensor_lib_t 成员截选图
2. chromatix 目录下相关文件,在对应 sensor 目录下包含 4 个目录和一个 Android 文件, 总共 13 个文件,这些文件都会由 chromatix 调试工具生成。下面为 IMX179 文件实 例: 图 7 vendor 下 chromatix 相关文件示例图 3. vendor 下还有 eeprom 文件,模组自带的 eeprom 数据处理相关;AF 相关文件,调 试工具生成的关于 AF 的效果文件;配置文件,把需要编译的模块填进配置文件中。 图 8 vendor 下其他 camera 文件
附录: 1. 高通关于 camera 的 dts 节点属性值解释:
2. IMX179 的 sensor_lib_t 填充示例: 参考资料: 【1】 http://blog.csdn.net/21cnbao/article/details/8457546 【2】 http://www.niwozhi.net/demo_c446_i72314.html
分享到:
收藏