高通msm8909 平台camera 系统软件架构

转载自:http://blog.chinaunix.net/uid-7213935-id-5749311.html


高通对于 camera 的代码组织大体是遵循 Android 架构的,但对于最核心的 sensor 端底层设
置、ISP 效果参数等进行了单独的剥离,放在 daemon 进程中进行。

一.camera daemon 进程
daemon 进程作为单一进程,main 函数的入口,位置如下:
/project/vendor/qcom/proprietary/mm-camera/mm-camera2/server-imaging/server.c
/project/vendor/qcom/proprietary/mm-camera/mm-camera2/serverimaging/server_process.c
在此函数中,主要做以下几件事情:
1.找到服务节点名称并打开:
boolean get_server_node_name(char *node_name)
2.初始化模块
boolean server_process_module_init
….....temp = modules_list[i].init_mod(modules_list[i].name);....
此处加载 MCT 下的六大模块(树结构下的六大模块)
3.进入主循环处理 HAL 层以及 MCT 的时间和消息,看其枚举定义:
typedef enum _read_fd_type {
RD_FD_HAL, ----------------server_process_hal_event()---返回
真,说明消息传递给 MCT;反之没有;
RD_DS_FD_HAL, ----------server_process_hal_ds_packet()---通过
domain socket 传来自 HAL 层的消息;
RD_PIPE_FD_MCT, ----------------来自 media controller 的消息;
RD_FD_NONE
} read_fd_type;

二.驱动代码架构
camera deamon 代码位于 vendor/qcom/proprietary/mm-camera/mm-camera2 目录下,
在此目录下有 media-controller,server-tuning,server-imaging,我们需要关注的是 mediacontroller 目录,整个树形结构如下:

而在 kernel 部分只是进行了 V4L2 的设备注册,IIC 设备注册等简单的动作,主文件
是 msm.c,负责设备的具体注册和相关方法的填充;在 msm_sensor.c 中,主要是维护一个
sensor 结构体 msm_sensor_ctrl_t,同时吧 dts 文件中的配置信息读出来。




  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值