【Camera专题】qcom-相机停止运行总结_qcom 媒体服务器死机 关闭摄像头-程序员宅基地

技术标签: Camera专题  

问题: [通过霍尔传感器]频繁打开关闭相机,出现一次相机停止运行

crash log

05-28 11:27:36.363 22431 22431 E AndroidRuntime: java.lang.RuntimeException: Fail to connect to camera service
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.hardware.Camera.<init>(Camera.java:587)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.hardware.Camera.open(Camera.java:412)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at com.xtc.camera.app.widget.cameraview.core.Camera1.onStart(Camera1.java:255)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at com.xtc.camera.app.widget.cameraview.core.CameraController$2.run(CameraController.java:201)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:751)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
05-28 11:27:36.363 22431 22431 E AndroidRuntime: 	at android.os.HandlerThread.run(HandlerThread.java:61)

main log
报错原因:130 VIDIOC_MSM_CSID_IO_CFG failed Connection timed out
msm_post_event: Timed out

05-28 11:27:25.779  2944  2944 I input_method: 发送asr.stop事件
05-28 11:27:25.780   411 22688 D mm-camera: c2d_module_start_session:350, info: starting session 2
05-28 11:27:25.780   411 22689 D mm-camera: mct_pipeline_start_session_thread thread_id is 22689
05-28 11:27:25.780   411 22689 E mm-camera-img: module_imglib_start_session:1452 ###Img_Loglevel 0
05-28 11:27:25.785   411 22687 E mm-camera-CORE: af_init: updated HAF func table
05-28 11:27:25.786   411 22687 D mm-camera: gyro_port_init , Enter 
05-28 11:27:25.786   411 22687 D mm-camera: gyro_port_init , EXIT 
05-28 11:27:25.794   411 22691 D mm-camera: c2d_thread_func:45: c2d_thread entering the polling loop... thread_id is 22691
05-28 11:27:25.797   411 22688 D mm-camera: c2d_module_start_session:428, info: session 2 started.

05-28 11:27:25.935   411 22679 E mm-camera-sensor: csid_open:130 VIDIOC_MSM_CSID_IO_CFG failed Connection timed out
05-28 11:27:25.935   411 22679 E mm-camera-sensor: module_sensor_init_session:499 failed rc -1
05-28 11:27:25.935   411 22679 E mm-camera-sensor: eeprom_close:1114 Enter
05-28 11:27:25.935   411 22679 E mm-camera-sensor: eeprom_close:1129 Exit
05-28 11:27:25.935   411 22679 E mm-camera-sensor: sensor_close:3631 VIDIOC_MSM_SENSOR_CFG failed
05-28 11:27:25.936   411 22679 E mm-camera-sensor: module_sensor_init_session:704 failed
05-28 11:27:25.936   411 22679 E mm-camera-sensor: module_sensor_start_session:814 failed
05-28 11:27:25.936   411 22679 E mm-camera-sensor: module_sensor_start_session:828 failed

kernel log

05-28 11:27:25.873368 <3>[46285.965956] wait_for_completion in msm_csid_reset fail rc = 0
05-28 11:27:25.873374 <3>[46285.965962] msm_csid_init:584 msm_csid_reset failed
·
·
·
05-28 11:27:35.703455 <3>[46295.796043] msm_post_event: Timed out
05-28 11:27:35.706273 <3>[46295.798861] Evt_type=8002000 Evt_id=1 Evt_cmd=0
05-28 11:27:35.710640 <3>[46295.803228] Evt_session_id=2 Evt_stream_id=0 Evt_arg=-1
05-28 11:27:35.716013 <3>[46295.808601] camera_v4l2_open : posting of NEW_SESSION event failed
05-28 11:27:35.722169 <3>[46295.814757] camera_v4l2_open : Line 605 rc -110

报错根源:

static int msm_csid_reset(struct csid_device *csid_dev)
{
    
    int32_t rc = 0; 
    //写寄存器
    msm_camera_io_w(csid_dev->ctrl_reg->csid_reg.csid_rst_stb_all,
        csid_dev->base +
        csid_dev->ctrl_reg->csid_reg.csid_rst_cmd_addr);
    //等待信号量
    rc = wait_for_completion_timeout(&csid_dev->reset_complete,
        CSID_TIMEOUT);
    if (rc <= 0) {
     
        pr_err("wait_for_completion in msm_csid_reset fail rc = %d\n",
            rc); 
        if (rc == 0)
            rc = -ETIMEDOUT;
    }    
    return rc;
}
这里
#define CSID_TIMEOUT msecs_to_jiffies(100)

问题在于连接超时超时错误。
解决方案:
#define CSID_TIMEOUT msecs_to_jiffies(100)
改成
#define CSID_TIMEOUT msecs_to_jiffies(500)

Stay hungry,Stay foolish!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/justXiaoSha/article/details/100508691

智能推荐

Spring Cloud Ribbon 原理_spring cloud ribbon原理-程序员宅基地

文章浏览阅读810次。Spring Cloud Ribbon Rule _spring cloud ribbon原理

spring bean的生命周期-程序员宅基地

文章浏览阅读805次。spring bean的生命周期(1)实例化Bean:对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。(2)设置对象属性(依..._springbean的生命周期 csdn

Linux学习——vi编辑器的使用(内附快捷键的使用)(超详细)_linux中vi编辑器的使用-程序员宅基地

文章浏览阅读3.8w次,点赞53次,收藏324次。vi编辑器的使用(内附快捷键的使用)(超详细)JunLeon——go big or go home前言:vi编辑器是Linux系统下标准的编辑器。那么简单的理解,就像是Windows下的记事本。补充:vim是vi的升级版,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。一、vi 命令的使用命令格式: vi 文件名示例: vi a.txt注意:直接输入vi,可以查看vi的版本等信息,还可以直接编辑,但是退出时需要加上文件名,例如 :wq a.tx_linux中vi编辑器的使用

脉冲神经网络原理及应用,脉冲神经网络发展前景_为什么说脉冲神经网络是感知机、前馈网络之后的第三代网络?-程序员宅基地

文章浏览阅读958次。脉冲神经网络(SNN-SpikingNeuronNetworks)经常被誉为第三代人工神经网络。第一代神经网络是感知器,它是一个简单的神经元模型并且只能处理二进制数据。第二代神经网络包括比较广泛,包括应用较多的BP神经网络。但是从本质来讲,这些神经网络都是基于神经脉冲的频率进行编码(ratecoded)。脉冲神经网络,其模拟神经元更加接近实际,除此之外,把时间信息的影响也考虑其中。_为什么说脉冲神经网络是感知机、前馈网络之后的第三代网络?

YUV图像格式详解-程序员宅基地

文章浏览阅读1.2k次,点赞5次,收藏24次。相对于常见且直观的RGB颜色编码,YUV的产生自有其意义,它基于人眼对亮度比色彩的敏感度更高的特点,使用Y、U、V三个分量来表示颜色,并通过降低U、V分量的采样率,尽可能保证图像质量的情况下,做到如下3点:占用更低的存储空间数据传输效率更高兼容黑白与彩色显示具体是怎么做到的,本博文一一讲解_yuv

太原理工java实验报告_太原理工大学-JAVA实验报告.doc-程序员宅基地

文章浏览阅读809次。太原理工大学-JAVA实验报告本科实验报告课程名称: java语言程序设计实验地点: 明向校区综合实验楼专业班级: 软件1302学号:学生姓名: 李国涛指导教师: 李君婵时间:2014年 12 月 31 日实验名称Java语言基础实验目的和要求:通过实验,掌握Java语言程序设计的基本方法。学会Java语言中标示符的命名..._太原理工大学java实验报告

随便推点

英语基本语法_英语基础语法-程序员宅基地

文章浏览阅读1.4w次,点赞8次,收藏40次。1. 名词   名词可以分为专有名词(Proper Nouns)和普通名词 (Common Nouns),专有名词是某个(些)人,地方,机构等专有的名称,如Beijing,China等。普通名词是一类人或东西或是一个抽象概念的名词,如: book,sadness等。普通名词又可分为下面四类:  1)个体名词(Individual Nouns):表示某类人或东西中的个体,如:gun。  2)集体..._英语基础语法

busybox构建根文件系统_busybox mount-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏14次。rootfs有两种格式:nfs方式启动的文件夹形式的rootfs和用来烧录的镜像形式的rootfs。一、busybox移植1、busybox下载busybox是一..._busybox mount

sass-loader版本过高_sass loader-程序员宅基地

文章浏览阅读8.6k次,点赞11次,收藏20次。今天在学习狂神的vue实战上手的时候运行项目就死了,配置了半天终于好了第一个错误:Module build failed: TypeError: loaderContext.getResolve is not a functionsass-loader版本太高 解决:(1和2选一个)修改配置文件,重新安装//1.修改sass-loader的版本为^7.3.1//2.重新安装配置环境npm install卸载当前,重新下载// 卸载当前版本npm uninstall sass_sass loader

C程序设计第五版(谭浩强)-第四章习题_1、什么是算术运算?什么是关系运算?什么是逻辑运算?-程序员宅基地

文章浏览阅读1.7k次,点赞5次,收藏12次。1、什么是算术运算?什么是关系运算?什么是逻辑运算?算术运算:即“四则运算”,是加法、减法、乘法和除法四种运算的统称;关系运算:所谓“关系运算”就是“比较运算”,将两个数值进行比较,判断其比较的结果是否符合给定的条件;逻辑运算:逻辑运算又称布尔运算,有与、或、非三种基本逻辑运算;2、C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?C语言编译系统在表示逻辑运算结..._1、什么是算术运算?什么是关系运算?什么是逻辑运算?

iptables-程序员宅基地

文章浏览阅读65次。iptables介绍和禁icmpnetfilter --> iptables 防火墙名字是netfilter iptables是命令1.filter(过滤包,用的最多的,)内建三个链: 1.INPUT作用于进入本机的包 2.OUTPUT作用于本机送出的包 3.FORWARD作用于那些跟本机无关的包2.nat (主要用处是..._linux iptables 计数器 实现在哪

Win7/10-Anaconda3-【Python3.7】详细安装教程_python3.7版本的anaconda-程序员宅基地

文章浏览阅读1.1w次,点赞19次,收藏89次。Win7/10-Anaconda3-【Python3.7】详细安装教程一.资源下载二.安装过程2.1 详细过程2.2 环境变量三.检查是否安装成功3.1 检查开始菜单3.2 cmd控制台检查一.资源下载第一种方式(镜像下载)由于Anaconda3-python3.7属于老版本的,所以 Anaconda官网已经不存在了,大家可以去清华镜像下载自己所需要的,为什么去清华镜像下载呢?因为下载的快呀~链接: 清华镜像-Anaconda3-python3.7-5.3.1这个版本.第二种方式这个_python3.7版本的anaconda