高通msm8917 37 40(android 7.1) 摄像头框架调用流程
以问答的形式来理解摄像头框架流程
问:aw_camera.xml中配置的多个摄像头在哪里匹配?
答:sensor.c(vendor)通过iotcl到底层在msm_sensor_driver_probe去获取dtsi中配置的g_sctrl
kernel\msm-3.18\drivers\media\platform\msm\camera_v2\sensor\msm_sensor_init.c
msm_sensor_init_subdev_do_ioctl -> msm_sensor_init_subdev_ioctl -> msm_sensor_driver_cmd -> msm_sensor_driver_probe
问:g_sctrl里面的值什么时候赋值?
答:通过平台driver进来解析dts时复制
kernel\msm-3.18\drivers\media\platform\msm\camera_v2\sensor\msm_sensor_driver.c
msm_sensor_driver_platform_probe -> msm_sensor_driver_parse -> msm_sensor_driver_get_dt_data
问:g_sctrl里面的sensor_i2c_client内容关于i2c通讯部分哪里来的?
答:camera_v2\sensor\cci\msm_cci.c中通过platform_driver_register获取i2c相关的配置,msm_sensor_driver_platform_probe里面会对g_sctrl里面的内容都填充
msm_sensor_driver_platform_probe -> msm_sensor_driver_parse -> msm_sensor_init_default_params -> s_ctrl->sensor_i2c_client->i2c_func_tbl =
&msm_sensor_cci_func_tbl;
问:/dev/media*和/dev/video*和/dev/v4l-subdev*在哪里注册的?
答:kernel\msm-3.18\drivers\media\platform\msm\camera_v2\msm.c代码里注册的*0,匹配msm8937-camera.dtsi里面的qcom,msm-cam
驱动里面注册:msm_probe -> media_device_register(/dev/media*)
->video_register_device -> __video_register_device(里面注册了主设备号81的设备和/sys/class/video4linux/video* v4l-subdev*)
kernel\msm-3.18\drivers\media\platform\msm\camera_v2\sensor\msm_sensor_driver.c里面调用camera_init_v4l2注册了真正的摄像头:
msm_sensor_driver_probe -> msm_sensor_driver_create_v4l_subdev -> camera_init_v4l2 -> media_device_register
问:如何解决 mmm libs提示'sensor_lib.h' file not found 或者ALOGE未定义
答:1.#include <utils/Log.h>
2. LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../../../../../../mm-camerasdk/sensor/includes/
问:摄像头的两个相关服务代码分别在哪
答:
server:cameraserver
frameworks\av\camera\cameraserver\main_cameraserver.cpp
server:mm-qcamera-daemon
vendor\qcom\proprietary\mm-camera\mm-camera2\server-imaging\server.c
main -> server_process_module_sensor_init -> module_sensor_init(module_sensor.c)-> sensor_init_probe(sensor_init.c) -> sensor_init_xml_probe -> sensor_probe -> sensor_load_library ->
问:为什么mm-qcamera-daemon是32位的应用程序,编译取决哪里?
答:Android.mk加了下面这句所以编译出来是32位的应用程序
LOCAL_32_BIT_ONLY := true
问:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\sensor\module\sensor.c中调用的ioctrl对应驱动程序的哪里?
答:kernel\msm-3.18\drivers\media\platform\msm\camera_v2\sensor\msm_sensor.c
msm_sensor_subdev_fops_ioctl -> msm_sensor_subdev_do_ioctl -> msm_sensor_subdev_ioctll -> msm_sensor_config32
kernel\msm-3.18\drivers\media\platform\msm\camera_v2\sensor\msm_sensor_driver.c msm_sensor_driver_create_i2c_v4l_subdev中有设置了compat_ioctl32:
问:配置的xml在哪里解析
答:
\vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\chromatix\module\chromatix_manager.c
addLib -> addLib_getSymbol -> load_chromatix (chromatix_sub_module.c)
高通msm8917 37 40(android 7.1) 摄像头框架调用流程相关推荐
- Unity 高通AR发布到Android发生黑屏
这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...
- 高通、猎户机型Android典型bootloader分析
1.bootloader是什么? 简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一 ...
- 使用高通QXDM工具实现Android设备网络制式更改(如仅注册LTE网络)(独家!)
修改网络制式需要用到高通的QXDM工具,该工具包下载链接如下: 链接:https://pan.baidu.com/s/1rRNicFvlRSstUhka2JSiOg 密码:pssp 具体操作步骤如下: ...
- Android驱动之MTP框架与流程
概要 本文的目的是介绍Android系统中MTP的一些相关知识.主要的内容包括: 第1部分 MTP简介 对Mtp协议进行简单的介绍. 第2部分 MTP框架 ...
- 高通Q+A平台 android gcore解析环境搭建
QNX+LA平台在运行过程中可以在android发生crash的时候生成core文件,本文将会介绍如何搭建环境解析gcore文件. 获取gcore文件 在异常情况下或者LA侧手动触发kernel pa ...
- 高通 8917/37 SecueBoot 调试
文章目录 前言 流程 前言 笔记 流程 cd amss/MSM8917.LA.3.0.1/common/sectools/resources/data_prov_assets/General_Asse ...
- (11)高通AP10.4开发者指南——WLAN(2.5 代码流程)
2.5 代码流程(Code Flow) 这部分讲解一些主要的配置通路.收发数据的通路.下面这些颜色,用于区分不同的模块. 2.5.1配置通路(Configuration Path) WLAN驱动的配置 ...
- Android通过ksoap2这个框架调用webservice大讲堂
昨天有人问我Android怎么连接mysql数据库,和对数据库的操作呀,我想把,给他说说json通信,可是他并不知道怎么弄,哎算了吧,直接叫他用ksoap吧,给他说了大半天,好多零碎的知识,看来还是有 ...
- Android通过ksoap2这个框架调用webservice
WebServices简介 Web services是一种部署在Web上的对象或者组件,能够通过Internet进行调用的应用程序.Web services 建立在以XML为主的开放的web规范技术基 ...
最新文章
- mysql+字符串后8位_字符的一字节8位问题
- 世界排名前20的大学毕业生去做银行柜员,柜员工资是不是很高?
- C# 接受MQTT服务器推送的消息
- RabbitMQ服务的安装与使用
- 电磁波与电磁信号、生活中的电磁波
- [湖南集训] 谈笑风生
- 别因为要学的太多反而压垮自己
- jQuery特效:实现抽奖
- error: ‘VPX_IMG_FMT_RGB32’ undeclared (first use in this function); did you mean ‘VPX_IMG_FMT_NV12’?
- 线程池(python)
- python 图片(pil库)将两个图片合成一张
- 无需 Cookie,把 Python 微博爬虫改写成 Chrome 插件
- QQ群发消息怎么发?最全攻略分享
- php收藏影视,十个值得收藏的影视资源网站
- 《人性的弱点》【美】戴尔 卡耐基 读书笔记
- org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest
- win10 microsoft edge 浏览器收藏夹位置
- css美化浏览器滚动条
- 【NISP一级】考前必刷九套卷(五)
- linux USB虚拟串口设备名的修改